主机与多卡座读卡器的通信方法和系统技术方案

技术编号:4251029 阅读:166 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种主机与多卡座读卡器之间的通信方法,涉及智能卡读卡器领域。所述方法包括:将多卡座读卡器识别为多个智能卡设备,所述智能卡功能驱动根据所述主机发送的智能卡操作请求,生成智能卡操作指令,并通过所述读卡器设备总线驱动将所述智能卡操作指令发送给所述多卡座读卡器;读卡器固件程序判断当前读卡器的硬件资源是否被占用;如果被占用,将所述智能卡操作指令挂起,等待硬件资源被释放;如果未被占用,所述读卡器向相应的卡座下发所述智能卡操作指令;相应的卡座中的智能卡执行接收到的所述智能卡操作指令,并返回指令执行结果;所述读卡器设备总线驱动接收所述执行结果,并将所述执行结果向上层应用报告。

【技术实现步骤摘要】

本专利技术IC卡读卡器领域,特别涉及一种主机与多卡座读卡器之间的通信方法和系统。
技术介绍
IC(Integrated Circuit,集成电路)卡是继磁卡之后出现的又一种新型信息工 具。它是将一个微电子芯片嵌入符合ISO 7816标准的卡基中,做成卡片形式。目前,IC卡 已经被广泛地应用到金融、交通、社保等很多领域,例如,我们经常使用的公交车卡就是IC 卡的一种。 IC卡读写器是IC卡与应用系统间的桥梁,在ISO国际标准中称之为 IFD(Interface Device,接口设备)。 一般常见的IC卡采用射频技术与IFD进行通讯,即 IFD内的CPU通过一个接口电路与IC卡相连并进行通信。其中,IC卡接口电路是IC卡读写 器中至关重要的部分,根据实际应用系统的不同,可选择并行通信、半双工串行通信和I2C 通信等不同的IC卡读写芯片。 在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下缺点 当IC卡读卡器包含多个卡座时,主机无法识别这种IC卡读卡器,从而无法实现与该读卡器的数据交换、指令收发等。
技术实现思路
为了使主机能够识别包含多个卡座的智能卡读卡器,本专利技术实施例提供了一种主机与多卡座读卡器之间的通信方法和系统。所述技术方案如下 —种主机与多卡座读卡器之间的通信方法,所述方法包括 多卡座读卡器与主机建立连接,所述主机加载读卡器设备总线驱动; 所述读卡器设备总线驱动获取所述多卡座读卡器的设备信息,并根据所述设备信息创建物理设备对象; 所述主机为每个所述物理设备对象安装并加载智能卡功能驱动,并为每个智能卡 功能驱动注册一个标准的智能卡驱动库; 所述主机中的智能卡服务根据加载的智能卡功能驱动和注册的智能卡驱动库,在 所述智能卡服务的资源管理器中创建新的智能卡设备记录,将所述多卡座读卡器识别为多 个智能卡设备; 所述智能卡功能驱动根据所述主机发送的智能卡操作请求,生成智能卡操作指令,并通过所述读卡器设备总线驱动将所述智能卡操作指令发送给所述多卡座读卡器; 读卡器固件程序判断当前读卡器的硬件资源是否被占用; 如果被占用,将所述智能卡操作指令挂起,等待硬件资源被释放; 如果未被占用,所述读卡器向相应的卡座下发所述智能卡操作指令;相应的卡座中的智能卡执行接收到的所述智能卡操作指令,并返回指令执行结果;所述读卡器设备总线驱动接收所述执行结果,并将所述执行结果向上层应用报告。 所述读卡器设备总线驱动获取所述多卡座读卡器的设备信息,并根据所述设备信 息创建物理设备对象,具体包括 所述读卡器设备总线驱动收到主机下发的获取读卡器设备信息的询问请求; 根据所述询问请求,所述读卡器设备总线驱动获取读卡器设备信息; 所述读卡器设备总线驱动根据获取的读卡器设备信息创建物理设备对象。 所述主机通过即插即用管理器向所述读卡器设备总线驱动下发询问请求。 根据所述询问请求,所述读卡器设备总线驱动获取读卡器设备信息,具体包括 所述读卡器设备总线驱动响应所述询问请求,生成问询指令,并将所述问询指令 发送给所述多卡座读卡器; 所述多卡座读卡器获取其设备描述符,并将所述设备描述符返回给所述读卡器设 备总线驱动。 所述设备描述符中用单个字符表示卡座的类型。 所述物理设备对象的个数与所述多卡座读卡器的卡座数目相同。 将所述多卡座读卡器识别为多个智能卡设备之后,还包括 所述读卡器设备总线驱动发送中断请求给所述多卡座读卡器,并接收所述多卡座 读卡器返回的中断信号; 所述读卡器设备总线驱动解析所述中断信号,并将解析出的中断类型传递给相应 卡座对应的智能卡功能驱动; 所述智能卡功能驱动通过与其对应的智能卡驱动库向智能卡服务报告所述多卡 座读卡器中与其相对应的卡座的状态,所述卡座的状态包括无卡、有卡未上电或有卡已上 电。 所述读卡器设备总线驱动与所述多卡座读卡器之间可以通过两条通信管道进行 通信批量传输管道和中断传输管道; 相应的,所述中断请求和所述中断信号通过所述中断传输管道进行发送。 所述解析所述中断信号,并将解析出的中断类型传递给相应卡座对应的智能卡功能驱动,具体包括 所述读卡器设备总线驱动对所述中断信号进行解析,得到所述中断信号对应的中 断类型、智能卡设备和智能卡功能驱动; 更新所述读卡器设备总线驱动中的子设备状态列表,所述子设备状态列表用于记 录所述多卡座读卡器各个卡座状态; 通过所述子设备状态列表将所述多卡座读卡器各个卡座状态映射到所述智能卡 功能驱动。 所述智能卡功能驱动根据所述主机的智能卡操作请求生成智能卡操作指令,具体 包括 服务管理器根据所述主机的上层应用发送的智能卡请求调用函数 DeviceIOControl,并在所述函数的参数中指示具体的操作; 智能卡驱动库解析所述函数后,向智能卡功能驱动派遣函数传递数据; 所述智能卡功能驱动将接收到的数据封装生成符合CCID协议的智能卡操作指令,所述智能卡操作指令中的第6个字节表示所述智能卡功能驱动所对应的读卡器卡座的 编号。 所述读卡器卡座中的智能卡执行完毕接收到的操作指令后,通过批量传输管道将 指令的执行结果发送给所述读卡器设备总线驱动,并释放所述多卡座读卡器的硬件资源。 所述硬件资源被释放的同时,被读卡器固件程序挂起的下一条指令的卡座获得所 述硬件资源。—种通信系统,所述系统包括主机和多卡座读卡器; 所述主机包括 加载模块,用于当所述多卡座读卡器与所述主机建立连接时,加载读卡器设备总 线驱动; 获取模块,用于通过所述读卡器设备总线驱动获取所述多卡座读卡器的设备信 息; 创建模块,用于通过所述读卡器设备总线驱动根据所述设备信息创建物理设备对 象; 安装模块,用于为每个所述物理设备对象安装并加载智能卡功能驱动; 注册模块,用于为每个智能卡功能驱动注册一个标准的智能卡驱动库; 识别模块,用于通过所述主机中的智能卡服务根据加载的智能卡功能驱动和注册的智能卡驱动库,在所述智能卡服务的资源管理器中创建新的智能卡设备记录,将所述多卡座读卡器识别为多个智能卡设备; 生成指令模块,用于通过所述智能卡功能驱动根据所述主机发送的智能卡操作请 求,生成智能卡操作指令; 发送模块,用于将所述智能卡功能驱动生成的智能卡操作指令通过所述读卡器设 备总线驱动发送给所述多卡座读卡器; 接收模块,用于通过所述读卡器设备总线驱动接收所述多卡座读卡器发送的执行 结果,并将所述执行结果向上层应用报告; 所述多卡座读卡器包括 判断模块,用于通过所述多卡座读卡器的读卡器固件程序判断当前读卡器的硬件 资源是否被占用; 挂起模块,用于当所述判断模块的判断结果为被占用时,将所述智能卡操作指令 挂起,等待硬件资源被释放; 收发模块,用于当所述判断模块的判断结果为未被占用时,所述读卡器向相应的 卡座下发所述智能卡操作指令;并接收所述卡座返回的执行结果,发送给所述主机。 所述主机的获取模块,具体包括 接收单元,用于所述读卡器设备总线驱动收到主机下发的获取读卡器设备信息的 询问请求; 获取单元,用于根据所述询问请求,所述读卡器设备总线驱动获取读卡器设备信息。 所述主机的发送模块还用于 读卡器设备总线驱动发送中断请求给所述多卡座读卡器;所述主机的接收模块还用于接收所述多卡座读卡器返回的中断信号; 相应的,所述主机还本文档来自技高网...

【技术保护点】
一种主机与多卡座读卡器之间的通信方法,其特征在于,所述方法包括:    多卡座读卡器与主机建立连接,所述主机加载读卡器设备总线驱动;    所述读卡器设备总线驱动获取所述多卡座读卡器的设备信息,并根据所述设备信息创建物理设备对象;    所述主机为每个所述物理设备对象安装并加载智能卡功能驱动,并为每个智能卡功能驱动注册一个标准的智能卡驱动库;    所述主机中的智能卡服务根据加载的智能卡功能驱动和注册的智能卡驱动库,在所述智能卡服务的资源管理器中创建新的智能卡设备记录,将所述多卡座读卡器识别为多个智能卡设备;    所述智能卡功能驱动根据所述主机发送的智能卡操作请求,生成智能卡操作指令,并通过所述读卡器设备总线驱动将所述智能卡操作指令发送给所述多卡座读卡器;    读卡器固件程序判断当前读卡器的硬件资源是否被占用;    如果被占用,将所述智能卡操作指令挂起,等待硬件资源被释放;    如果未被占用,所述读卡器向相应的卡座下发所述智能卡操作指令;相应的卡座中的智能卡执行接收到的所述智能卡操作指令,并返回指令执行结果;所述读卡器设备总线驱动接收所述执行结果,并将所述执行结果向上层应用报告...

【技术特征摘要】
一种主机与多卡座读卡器之间的通信方法,其特征在于,所述方法包括多卡座读卡器与主机建立连接,所述主机加载读卡器设备总线驱动;所述读卡器设备总线驱动获取所述多卡座读卡器的设备信息,并根据所述设备信息创建物理设备对象;所述主机为每个所述物理设备对象安装并加载智能卡功能驱动,并为每个智能卡功能驱动注册一个标准的智能卡驱动库;所述主机中的智能卡服务根据加载的智能卡功能驱动和注册的智能卡驱动库,在所述智能卡服务的资源管理器中创建新的智能卡设备记录,将所述多卡座读卡器识别为多个智能卡设备;所述智能卡功能驱动根据所述主机发送的智能卡操作请求,生成智能卡操作指令,并通过所述读卡器设备总线驱动将所述智能卡操作指令发送给所述多卡座读卡器;读卡器固件程序判断当前读卡器的硬件资源是否被占用;如果被占用,将所述智能卡操作指令挂起,等待硬件资源被释放;如果未被占用,所述读卡器向相应的卡座下发所述智能卡操作指令;相应的卡座中的智能卡执行接收到的所述智能卡操作指令,并返回指令执行结果;所述读卡器设备总线驱动接收所述执行结果,并将所述执行结果向上层应用报告。2. 如权利要求1所述的方法,其特征在于,所述读卡器设备总线驱动获取所述多卡座 读卡器的设备信息,并根据所述设备信息创建物理设备对象,具体包括所述读卡器设备总线驱动收到主机下发的获取读卡器设备信息的询问请求; 根据所述询问请求,所述读卡器设备总线驱动获取读卡器设备信息; 所述读卡器设备总线驱动根据获取的读卡器设备信息创建物理设备对象。3. 如权利要求2所述的方法,其特征在于,所述主机通过即插即用管理器向所述读卡 器设备总线驱动下发询问请求。4. 如权利要求2所述的方法,其特征在于,根据所述询问请求,所述读卡器设备总线驱 动获取读卡器设备信息,具体包括所述读卡器设备总线驱动响应所述询问请求,生成问询指令,并将所述问询指令发送 给所述多卡座读卡器;所述多卡座读卡器获取其设备描述符,并将所述设备描述符返回给所述读卡器设备总 线驱动。5. 如权利要求4所述的方法,其特征在于,所述设备描述符中用单个字符表示卡座的 类型。6. 如权利要求1所述的方法,其特征在于,所述物理设备对象的个数与所述多卡座读 卡器的卡座数目相同。7. 如权利要求1所述的方法,其特征在于,将所述多卡座读卡器识别为多个智能卡设 备之后,还包括所述读卡器设备总线驱动发送中断请求给所述多卡座读卡器,并接收所述多卡座读卡 器返回的中断信号;所述读卡器设备总线驱动解析所述中断信号,并将解析出的中断类型传递给相应卡座 对应的智能卡功能驱动;所述智能卡功能驱动通过与其对应的智能卡驱动库向智能卡服务报告所述多卡座读 卡器中与其相对应的卡座的状态,所述卡座的状态包括无卡、有卡未上电或有卡已上电。8. 如权利要求7所述的方法,其特征在于,所述读卡器设备总线驱动与所述多卡座读 卡器之间可以通过两条通信管道进行通信批量传输管道和中断传输管道;相应的,所述中断请求和所述中断信号通过所述中断传输管道进行发送。9. 如权利要求7所述的方法,其特征在于,所述解析所述中断信号,并将解析出的中断 类型传递给相应卡座对应的智能卡功能驱动,具体包括所述读卡器设备总线驱动对所述中断信号进行解析,得到所述中断信号对应的中断类 型、智能卡设备和智能卡功能驱动;更新所述读卡器设备总线驱动中的子设备状态列表,所述子设备状态列表用于记录所 述多卡座读卡器各个卡座状态;通过所述子设备状态列表将所述多卡座读卡器各个卡座状态映射到所述智能卡功能 驱动。10. 如权利要求1所述的方法,其特征在于,所述智能卡功能驱动根据所述主机的智能 卡操作请求生成智能卡操作指令,具体包括服务管理器根据所述主机的上层应用发送的智能卡请求调用函数DeviceIOControl,并在所述函数的参数中指示具体的操作;智能卡驱动库解析所述函数后,向智能卡功能驱动派遣函数传递数据; 所述智能卡功能驱动将接收到的数据封装生成符合CC...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:北京飞天诚信科技有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利