• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 57
    • 下载费用:30 金币  

    重庆时时彩官方开奖结果: 一种模拟读卡器的工作方法和模拟通信系统.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201310287585.5

    申请日:

    2013.07.10

    公开号:

    CN103365701A

    公开日:

    2013.10.23

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 9/455申请日:20130710|||公开
    IPC分类号: G06F9/455; G06F11/36 主分类号: G06F9/455
    申请人: 飞天诚信科技股份有限公司
    发明人: 陆舟; 于华章
    地址: 100085 北京市海淀区学清路9号汇智大厦B楼17层
    优先权:
    专利代理机构: 代理人:
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201310287585.5

    授权公告号:

    103365701B||||||

    法律状态公告日:

    2017.05.03|||2013.11.20|||2013.10.23

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明公开一种模拟读卡器的工作方法和模拟通信系统,该方法应用于包括模拟读卡器、芯片操作系统、指令收发器和智能卡寄存器的系统中,模拟读卡器检测自身与所述指令收发器之间的通讯状态以及智能卡寄存器的状态,根据通讯状态和智能卡寄存器的状态,对智能卡寄存器进行读写操作,并对智能卡寄存器的状态进行更新。芯片操作系统对智能卡寄存器的状态进行检测,根据检测结果对智能卡寄存器进行读写操作,并对智能卡寄存器的状态进行更新。本发明通过模拟读卡器建立芯片操作系统与指令收发器之间的模拟通信,能够在不使用硬件仿真器件的情况下,达到向芯片操作系统输入终端数据的目的,扩展了仿真功能的范围,节省了硬件资源,且降低了仿真功耗。

    权利要求书

    权利要求书
    1.  一种模拟读卡器的工作方法,其特征在于,应用于包括模拟读卡器、芯片操作系统、指令收发器和智能卡寄存器的系统中,所述方法包括以下步骤:
    A1、所述模拟读卡器检测自身与所述指令收发器之间的通讯状态,如果通讯状态为可读状态,则执行步骤A2;如果通讯状态为可写状态,则执行步骤A4;如果通讯状态为无效状态,则执行步骤A6;
    A2、所述模拟读卡器判断所述智能卡寄存器的状态是否为空闲状态,如果是,则执行步骤A3;否则,返回步骤A1;
    A3、所述模拟读卡器从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并返回步骤A1;
    A4、所述模拟读卡器判断所述智能卡寄存器的状态是否为写状态,如果是,则执行步骤A5;否则,返回步骤A1;
    A5、所述模拟读卡器从所述智能卡寄存器中读取响应数据,将读取到的响应数据发送给所述指令收发器,将所述智能卡寄存器的状态设置为空闲状态,并返回步骤A1;
    A6、所述模拟读卡器执行复位操作;
    所述模拟读卡器将所述智能卡寄存器的状态设置为读状态之后,还包括:
    所述芯片操作系统检测到所述智能卡寄存器的状态为读状态后,从所述智能卡寄存器中读取APDU数据,将读取到的APDU数据存储到APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态;
    所述模拟读卡器从所述智能卡寄存器中读取响应数据之前,还包括:
    所述芯片操作系统对所述APDU缓冲区中的APDU数据进行处理,得到所述响应数据,并在检测到所述智能卡寄存器的状态为空闲状态后,向所述智能卡寄存器写入所述响应数据,将所述智能卡寄存器的状态设置为写状态。

    2.  如权利要求1所述的方法,其特征在于,所述模拟读卡器检测自身与所述指令收发器之间的通讯状态,具体为:
    所述模拟读卡器对自身与所述指令收发器之间的连接状态进行检测,并判断所述通讯缓冲区中是否有数据,如果所述通讯缓冲区中有数据,则确定所述通讯状态为可读状态;如果所述通讯缓冲区中没有数据且所述模拟读卡器与所 述指令收发器保持连接状态,则确定所述通讯状态为可写状态;如果所述模拟读卡器与所述指令收发器之间已断开连接,则确定所述通讯状态为无效状态。

    3.  如权利要求1所述的方法,其特征在于,所述模拟读卡器将所述智能卡寄存器的状态设置为读状态,具体为:所述模拟读卡器将读写标记寄存器中的数据修改为第一预设值;
    所述芯片操作系统检测到所述智能卡寄存器的状态为读状态,具体为:所述芯片操作系统检测到所述读写标记寄存器中的数据为所述第一预设值;
    所述芯片操作系统将所述智能卡寄存器的状态设置为写状态,具体为:所述芯片操作系统将所述读写标记寄存器中的数据修改为第二预设值;
    所述模拟读卡器判断所述智能卡寄存器的状态是否为写状态,具体为:所述模拟读卡器判断所述读写标记寄存器中的数据是否为所述第二预设值;
    所述将所述智能卡寄存器的状态设置为空闲状态,具体为:将所述读写标记寄存器中的数据修改为第三预设值;
    所述芯片操作系统检测到所述智能卡寄存器的状态为空闲状态,具体为:所述芯片操作系统检测到所述读写标记寄存器中的数据为所述第三预设值。

    4.  如权利要求1所述的方法,其特征在于,还包括:
    B1、所述模拟读卡器等待接收来自所述指令收发器的指令;
    B2、所述模拟读卡器对接收到的指令进行判断,如果是连接指令,则执行步骤B3;如果是断开指令,则执行步骤B6;
    B3、所述模拟读卡器判断自身是否已与所述指令收发器建立连接,如果是,则执行步骤B4;否则执行步骤B5;
    B4、所述模拟读卡器拒绝所述连接指令,并返回步骤B1;
    B5、所述模拟读卡器与所述指令收发器建立连接,并返回步骤B1;
    B6、所述模拟读卡器断开与所述指令收发器之间的连接,并返回步骤B1。

    5.  如权利要求1所述的方法,其特征在于,所述模拟读卡器从通讯缓冲区读取APDU数据之前,还包括:
    所述模拟读卡器对协议标志位进行判断;
    所述模拟读卡器从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到所述智能卡寄存器中,具体为:
    当所述协议标志位的取值为第四预设值时,所述模拟读卡器从所述通讯缓冲区读取一个字节的APDU数据,将读取到的所述一个字节的APDU数据存储到所述智能卡寄存器中;
    所述芯片操作系统从所述智能卡寄存器中读取APDU数据,将读取到的APDU数据存储到APDU缓冲区中,具体为:
    所述芯片操作系统从所述智能卡寄存器中读取一个字节的APDU数据,将读取到的所述一个字节的APDU数据存储到所述APDU缓冲区中;
    所述芯片操作系统向所述智能卡寄存器写入所述响应数据,具体为:
    所述芯片操作系统向所述智能卡寄存器写入一个字节的响应数据;
    所述模拟读卡器从所述智能卡寄存器中读取响应数据,将读取到的响应数据发送给所述指令收发器,具体为:
    所述模拟读卡器从所述智能卡寄存器中读取一个字节的响应数据,将读取到的所述一个字节的响应数据发送给所述指令收发器。

    6.  如权利要求5所述的方法,其特征在于,所述模拟读卡器将读取到的所述一个字节的APDU数据存储到所述智能卡寄存器中之后,还包括:所述模拟读卡器对校验标识进行置位;
    所述芯片操作系统从所述智能卡寄存器中读取一个字节的APDU数据之后,还包括:
    所述芯片操作系统判断所述校验标识是否被置位,如果是,则将所述校验标识复位;否则,进入校验异常处理;
    所述芯片操作系统将读取到的所述一个字节的APDU数据存储到APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,具体为:
    当所述芯片操作系统判断出所述校验标识被置位时,所述芯片操作系统将读取到的所述一个字节的APDU数据存储到APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态。

    7.  如权利要求1所述的方法,其特征在于,所述模拟读卡器从通讯缓冲区 读取APDU数据之前,还包括:
    所述模拟读卡器对协议标志位进行判断;
    所述模拟读卡器从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到所述智能卡寄存器中,具体为:
    当所述协议标志位的取值为第五预设值时,所述模拟读卡器从所述通讯缓冲区读取多个字节的APDU数据,根据读取到的所述多个字节的APDU数据生成一个传输分组,将所述传输分组存储到所述智能卡寄存器中;
    所述芯片操作系统从所述智能卡寄存器中读取APDU数据,具体为:所述芯片操作系统从所述智能卡寄存器中读取一个传输分组;
    所述芯片操作系统向所述智能卡寄存器写入所述响应数据,具体为:
    所述芯片操作系统从所述APDU缓冲区中读取多个字节的响应数据,根据读取到的所述多个字节的响应数据生成一个传输分组,将生成的传输分组存储到所述智能卡寄存器中;
    所述模拟读卡器从所述智能卡寄存器中读取响应数据,将读取到的响应数据发送给所述指令收发器,具体为:
    所述模拟读卡器从所述智能卡寄存器中读取一个传输分组,对读取到的传输分组进行解析,将解析得到响应数据发送给所述指令收发器。

    8.  如权利要求7所述的方法,其特征在于,所述模拟读卡器根据读取到的所述多个字节的APDU数据生成一个传输分组,具体为:
    所述模拟读卡器生成组头字段和组尾字段,将所述多个字节的APDU数据作为信息字段,将所述组头字段、所述信息字段和所述组尾字段组装成所述传输分组;
    所述芯片操作系统根据读取到的所述多个字节的响应数据生成一个传输分组,具体为:所述芯片操作系统生成组头字段和组尾字段,将所述读取到的响应数据作为信息字段,将所述组头字段、所述信息字段和所述组尾字段组装成传输分组。

    9.  如权利要求7所述的方法,其特征在于,所述模拟读卡器根据读取到的所述多个字节的APDU数据生成一个传输分组之后,还包括:
    所述模拟读卡器将生成的传输分组存储到第一发送缓冲区;
    所述芯片操作系统从所述智能卡寄存器中读取一个传输分组之后,还包括:
    所述芯片操作系统对读取到的传输分组进行校验,如果校验通过,则对所述读取到的传输分组进行解析,将解析得到的APDU数据存储到所述APDU缓冲区,生成第一成功响应,将所述第一成功响应存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态;如果校验未通过,则生成第一重传命令,将所述第一重传命令写入到所述智能卡寄存器中,将所述智能卡寄存器设置为写状态;
    所述模拟读卡器将所述智能卡寄存器的状态设置为读状态之后,还包括:
    B1、所述模拟读卡器判断所述智能卡寄存器的状态是否为写状态,如果是,则执行步骤B2;否则,返回步骤B1;
    B2、所述模拟读卡器从所述智能卡寄存器中读取数据,对读取的数据进行判断,如果所述读取到的数据为所述第一成功响应,则执行步骤B3;如果所述读取到的数据为所述第一重传命令,则执行步骤B4;
    B3、所述模拟读卡器将所述智能卡寄存器的状态设置为空闲状态;
    B4、所述模拟读卡器从所述第一发送缓冲区中读取一个传输分组,将读取到的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并返回步骤B1。

    10.  如权利要求7所述的方法,其特征在于,所述模拟读卡器从所述通讯缓冲区读取多个字节的APDU数据之后,还包括:
    所述模拟读卡器将读取到的所述多个字节的APDU数据存储到第一发送缓冲区;
    所述芯片操作系统从所述智能卡寄存器中读取一个传输分组之后,还包括:
    所述芯片操作系统对读取到的传输分组进行校验,如果校验通过,则对所述读取到的传输分组进行解析,将解析得到的APDU数据存储到所述APDU缓冲区,生成第一成功响应,将所述第一成功响应存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态;如果校验未通过,则生成第一重传命令,将所述第一重传命令写入到所述智能卡寄存器中,将所述智能卡寄存器设置为写状态;
    所述模拟读卡器将所述智能卡寄存器的状态设置为读状态之后,还包括:
    C1、所述模拟读卡器判断所述智能卡寄存器的状态是否为写状态,如果是,则执行步骤C2;否则,返回步骤C1;
    C2、所述模拟读卡器从所述智能卡寄存器中读取数据,对读取的数据进行判断,如果所述读取到的数据为所述第一成功响应,则执行步骤C3;如果所述读取到的数据为所述第一重传命令,则执行步骤C4;
    C3、所述模拟读卡器将所述智能卡寄存器的状态设置为空闲状态;
    C4、所述模拟读卡器从所述第一发送缓冲区中读取所述多个字节的APDU数据,根据读取到的所述多个字节的APDU数据生成一个传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并返回步骤C1。

    11.  如权利要求9或10所述的方法,其特征在于,所述芯片操作系统对读取到的传输分组进行校验,具体为:
    所述芯片操作系统对所述传输分组进行解析,得到所述传输分组中的组尾字段所包含的差错检测码,根据所述传输分组中除所述差错检测码之外的其余数据计算检测码,判断计算得到的检测码是否与所述差错检测码相同,如果相同,则确定校验通过;否则,确定校验未通过。

    12.  如权利要求7所述的方法,其特征在于,所述芯片操作系统根据读取到的所述多个字节的响应数据生成一个传输分组之后,还包括:
    所述芯片操作系统将所述传输分组存储到第二发送缓冲区;
    所述模拟读卡器从所述智能卡寄存器中读取一个传输分组之后还包括:
    所述模拟读卡器对所述传输分组进行校验,如果校验通过,则对所述传输分组进行解析,将解析得到的响应数据发送给所述指令收发器,生成第二成功响应,将所述第二成功响应存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态;如果校验未通过,则生成第二重传命令,将所述第二重传命令写入到所述智能卡寄存器中,将所述智能卡寄存器设置为读状态;
    所述芯片操作系统将所述传输分组存储到所述智能卡寄存器中之后,还包括:
    所述芯片操作系统在检测到所述智能卡寄存器的状态为读状态后,从所述智能卡寄存器中读取数据,并对读取到的数据进行判断,如果所述读取到的数据为所述第二成功响应,则继续对所述智能卡寄存器的状态进行检测;如果所述读取到的数据为所述第二重传命令,则从所述第二发送缓冲区中读取一个传输分组,将读取到的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并继续对所述智能卡寄存器的状态进行检测。

    13.  如权利要求7所述的方法,其特征在于,所述芯片操作系统从所述APDU缓冲区中读取多个字节的响应数据之后,还包括:
    所述芯片操作系统将读取到的所述多个字节的响应数据存储到第二发送缓冲区;
    所述模拟读卡器从所述智能卡寄存器中读取一个传输分组之后还包括:
    所述模拟读卡器对所述传输分组进行校验,如果校验通过,则对所述传输分组进行解析,将解析得到的响应数据发送给所述指令收发器,生成第二成功响应,将所述第二成功响应存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态;如果校验未通过,则生成第二重传命令,将所述第二重传命令写入到所述智能卡寄存器中,将所述智能卡寄存器设置为读状态;
    所述芯片操作系统将所述传输分组存储到所述智能卡寄存器中之后,还包括:
    所述芯片操作系统在检测到所述智能卡寄存器的状态为读状态后,从所述智能卡寄存器中读取数据,并对读取到的数据进行判断,如果所述读取到的数据为所述第二成功响应,则继续对所述智能卡寄存器的状态进行检测;如果所述读取到的数据为所述第二重传命令,则从所述第二发送缓冲区中读取所述多个字节的响应数据,根据读取到的所述多个字节的响应数据生成一个传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并继续对所述智能卡寄存器的状态进行检测。

    14.  如权利要求12或13所述的方法,其特征在于,所述模拟读卡器对所述传输分组进行校验,具体为:
    所述模拟读卡器对所述传输分组进行解析,得到所述传输分组中的组尾字 段所包含的差错检测码,根据所述传输分组中除所述差错检测码之外的其余数据计算检测码,判断计算得到的检测码是否与所述差错检测码相同,如果相同,则确定校验通过;否则,确定校验未通过。

    15.  如权利要求12所述的方法,其特征在于,所述芯片操作系统判断所述读取到的数据为所述第二成功响应之后,还包括:
    所述芯片操作系统判断所述APDU缓冲区中是否存储有响应数据,如果是,则从所述APDU缓冲区中读取多个字节的响应数据,根据读取到所述多个字节的响应数据生成一个传输分组,将所述传输分组存储到所述智能卡寄存器中;否则,继续对所述智能卡寄存器的状态进行检测。

    16.  如权利要求5或7所述的方法,其特征在于,所述模拟读卡器对协议标志位进行判断之前,还包括:所述模拟读卡器根据自身与所述指令收发器连接的端口类型,设置所述协议标志位。

    17.  如权利要求5或7所述的方法,其特征在于,所述协议标志位为所述模拟读卡器从所述指令收发器接收的数据。

    18.  如权利要求1所述的方法,其特征在于,所述芯片操作系统向所述智能卡寄存器写入所述响应数据,具体为:
    当所述芯片操作系统判断所述APDU缓冲区中存储有响应数据时,所述芯片操作系统向所述智能卡寄存器写入所述响应数据;
    所述芯片操作系统向所述智能卡寄存器写入所述响应数据之前,还包括:所述芯片操作系统判断所述APDU缓冲区中是否存储有响应数据;
    所述芯片操作系统判断APDU缓冲区中没有存储响应数据之后,还包括:所述芯片操作系统继续对所述智能卡寄存器的状态进行检测。

    19.  如权利要求1所述的方法,其特征在于,所述芯片操作系统将读取到的APDU数据存储到APDU缓冲区中之后,还包括:
    所述芯片操作系统判断是否需要继续接收数据,如果是,则继续对所述智 能卡寄存器的状态进行检测;否则,将所述APDU缓冲区中的数据作为APDU命令进行处理,将处理得到的响应数据存储到所述APDU缓冲区。

    20.  如权利要求19所述的方法,其特征在于,所述芯片操作系统判断是否需要继续接收数据,具体为:
    所述芯片操作系统判断 所述APDU缓冲区中的数据是否为完整的APDU命令,如果是,则确定不需要继续接收数据,否则确定需要继续接收数据。

    21.  一种模拟通信系统,其特征在于,包括模拟读卡器、芯片操作系统、指令收发器和智能卡寄存器,其中,
    所述模拟读卡器包括:
    第一检测???,用于检测所述模拟读卡器与所述指令收发器之间的通讯状态;
    第一判断???,用于在所述第一检测??榧觳獾剿鐾ㄑ蹲刺啥磷刺?,判断所述智能卡寄存器的状态是否为空闲状态,在判断出所述智能卡寄存器的状态不是空闲状态时,触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    第一处理???,用于在所述第一判断??榕卸铣鏊鲋悄芸拇嫫鞯淖刺障凶刺?,从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    第二判断???,用于在所述第一检测??榧觳獾剿鐾ㄑ蹲刺尚醋刺?,判断所述智能卡寄存器的状态是否为写状态,并在判断出所述智能卡寄存器的状态不是写状态时,触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    第二处理???,用于在所述第二判断??榕卸铣鏊鲋悄芸拇嫫鞯淖刺醋刺?,从所述智能卡寄存器中读取响应数据,将读取到的响应数据发送给所述指令收发器,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    第一复位???,用于在所述第一检测??榧觳獾剿鐾ㄑ蹲刺扌ё刺?,执行复位操作;
    所述芯片操作系统,包括:
    第二检测???,用于检测所述智能卡寄存器的状态;
    第三处理???,用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺磷刺?,从所述智能卡寄存器中读取APDU数据,将读取到的APDU数据存储到APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?;
    第四处理???,用于对所述APDU缓冲区中的APDU数据进行处理,得到所述响应数据;
    第五处理???,用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺障凶刺?,向所述智能卡寄存器写入所述响应数据,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?。

    22.  如权利要求21所述的系统,其特征在于,
    所述第一检测???,具体用于对所述模拟读卡器与所述指令收发器之间的连接状态进行检测,并判断所述通讯缓冲区中是否有数据,如果所述通讯缓冲区中有数据,则确定所述通讯状态为可读状态;如果所述通讯缓冲区中没有数据且所述模拟读卡器与所述指令收发器保持连接状态,则确定通讯状态为可写状态;如果所述模拟读卡器与所述指令收发器之间已断开连接,则确定所述通讯状态为无效状态。

    23.  如权利要求21所述的系统,其特征在于,
    所述第一处理???,具体用于在所述第一判断??榕卸纤鲋悄芸拇嫫鞯淖刺障凶刺?,从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到所述智能卡寄存器中,将读写标记寄存器中的数据修改为第一预设值,并触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    所述第二处理???,具体用于在所述第二判断??榕卸纤鲋悄芸拇嫫鞯淖刺醋刺?,从所述智能卡寄存器中读取响应数据,将读取到的响应数据发送给所述指令收发器,将读写标记寄存器中的数据修改为第三预设值,并触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    所述第三处理???,具体用于在所述第二检测??榧觳獾剿鲋悄芸拇?器的状态为读状态时,从所述智能卡寄存器中读取APDU数据,将读取到的APDU数据存储到APDU缓冲区中,将读写标记寄存器中的数据修改为第三预设值,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?;
    所述第五处理???,具体用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺障凶刺?,向所述智能卡寄存器写入所述响应数据,将读写标记寄存器中的数据修改为第二预设值,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?;
    所述第一判断???,具体用于在所述第一检测??榧觳獾剿鐾ㄑ蹲刺啥磷刺?,对所述读写标记寄存器中的数据进行判断,如果所述数据为所述第三预设值,则确定所述智能卡寄存器的状态为空闲状态;如果所述数据不是所述第三预设值,则确定所述智能卡寄存器的状态不是空闲状态,触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    所述第二判断???,具体用于在所述第一检测??榧觳獾剿鐾ㄑ蹲刺尚醋刺?,对所述读写标记寄存器中的数据进行判断,如果所述数据为所述第三预设值,则确定所述智能卡寄存器的状态为写状态;如果所述数据不是所述第三预设值,则确定所述智能卡寄存器的状态不是写状态,触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    所述第二检测???,具体用于对所述读写标记寄存器中的数据进行判断,如果所述数据为所述第一预设值,则确定所述智能卡寄存器的状态为读状态;如果所述数据为所述第三预设值,则确定所述智能卡寄存器的状态为空闲状态。

    24.  如权利要求21所述的系统,其特征在于,所述模拟读卡器,还包括:
    第一接收???,用于接收来自所述指令收发器的指令;
    第三判断???,用于对所述第一接收??榻邮盏降闹噶罱信卸?;
    第四判断???,用于在所述第三判断??榕卸纤鼋邮盏降闹噶钗又噶钍?,判断所述模拟读卡器是否已与指令收发器建立连接;
    拒绝???,用于在所述第四判断??榕卸纤瞿D舛量ㄆ饕延胫噶钍辗⑵鹘⒘邮?,拒绝所述连接指令;
    连接???,用于在所述第四判断??榕卸纤瞿D舛量ㄆ饕延胫噶钍辗⑵鹘⒘邮?,与所述指令收发器建立连接;
    断开???,用于在所述第三判断??榕卸纤鼋邮盏降闹噶钗峡噶钍?,断开与所述指令收发器之间的连接。

    25.  如权利要求21所述的系统,其特征在于,所述模拟读卡器,还包括:
    第五判断???,用于对协议标志位进行判断;
    所述第一处理???,具体用于在所述第一判断??榕卸纤鲋悄芸拇嫫鞯淖刺障凶刺?,且所述第五判断??榕卸纤鲂楸曛疚坏娜≈滴谒脑ど柚凳?,从所述通讯缓冲区读取一个字节的APDU数据,将读取到的所述一个字节的APDU数据存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    所述第三处理???,具体用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺磷刺?,从所述智能卡寄存器中读取一个字节的APDU数据,将读取到的所述一个字节的APDU数据存储到所述APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?;
    所述第五处理???,具体用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺障凶刺?,向所述智能卡寄存器写入一个字节的响应数据,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?;
    所述第二处理???,具体用于在所述第二判断??榕卸纤鲋悄芸拇嫫鞯淖刺醋刺?,从所述智能卡寄存器中读取一个字节的响应数据,将读取到的所述一个字节的响应数据发送给所述指令收发器,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?。

    26.  如权利要求25所述的系统,其特征在于,所述模拟读卡器,还包括:
    置位???,用于在所述第一处理??榻寥〉降乃鲆桓鲎纸诘腁PDU数据存储到所述智能卡寄存器中后,对校验标识进行置位;
    所述芯片操作系统,还包括:
    第六判断???,用于在所述第三处理??榇铀鲋悄芸拇嫫髦卸寥∫桓鲎纸诘腁PDU数据后,判断所述校验标识是否被置位;
    第二复位???,用于在所述第六判断??榕卸纤鲂Q楸晔侗恢梦皇?,将所述校验标识复位;
    异常处理???,用于在所述第六判断??榕卸纤鲂Q槟?槊挥斜恢梦皇?,执行校验异常处理;
    所述第三处理???,具体用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺磷刺?,从所述智能卡寄存器中读取一个字节的APDU数据,在所述第六判断??榕卸纤鲂Q楸晔侗恢梦皇?,将读取到的所述一个字节的APDU数据存储到所述APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?。

    27.  如权利要求21所述的系统,其特征在于,所述模拟读卡器,还包括:
    第五判断???,用于对协议标志位进行判断;
    所述第一处理???,具体用于在所述第一判断??榕卸纤鲋悄芸拇嫫鞯淖刺障凶刺?,且所述第五判断??榕卸纤鲂楸曛疚坏娜≈滴谖逶ど柚凳?,从所述通讯缓冲区读取多个字节的APDU数据,根据读取到的所述多个字节的APDU数据生成一个传输分组,将所述传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    所述第三处理???,具体用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺磷刺?,从所述智能卡寄存器中读取一个传输分组,将所述传输分组中的多个字节的APDU数据存储到所述APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?;
    所述第五处理???,具体用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺障凶刺?,从所述APDU缓冲区中读取多个字节的响应数据,根据读取到的所述多个字节的响应数据生成一个传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?;
    所述第二处理???,具体用于在所述第二判断??榕卸纤鲋悄芸拇嫫鞯淖刺醋刺?,从所述智能卡寄存器中读取一个传输分组,对读取到的传 输分组进行解析,将解析得到响应数据发送给所述指令收发器,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?。

    28.  如权利要求27所述的系统,其特征在于,
    所述第一处理???,具体用于在所述第一判断??榕卸纤鲋悄芸拇嫫鞯淖刺障凶刺?,且所述第五判断??榕卸纤鲂楸曛疚坏娜≈滴谖逶ど柚凳?,从所述通讯缓冲区读取多个字节的APDU数据,生成组头字段和组尾字段,将所述多个字节的APDU数据作为信息字段,将所述组头字段、所述信息字段和所述组尾字段组装成所述传输分组,将所述传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    所述第五处理???,具体用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺障凶刺?,从所述APDU缓冲区中读取多个字节的响应数据,生成组头字段和组尾字段,将所述多个字节的响应数据作为信息字段,将所述组头字段、所述信息字段和所述组尾字段组装成传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?。

    29.  如权利要求27所述的系统,其特征在于,所述模拟读卡器,还包括:
    第一存储???,用于将所述第一处理??樯傻拇浞肿榇娲⒌降谝环⑺突撼迩?;
    所述芯片操作系统,还包括:
    第一校验???,用于对所述第三处理??槎寥〉降拇浞肿榻行Q?,如果校验通过,则对所述读取到的传输分组进行解析,将解析得到的APDU数据存储到所述APDU缓冲区,生成第一成功响应,将所述第一成功响应存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态;如果校验未通过,则生成第一重传命令,将所述第一重传命令写入到所述智能卡寄存器中,将所述智能卡寄存器设置为写状态;
    所述模拟读卡器,还包括:
    第一读取???,用于在所述第二判断??榕卸纤鲋悄芸拇嫫鞯淖刺醋刺?,从所述智能卡寄存器中读取数据;
    第六判断???,用于对所述第一读取??槎寥〉氖萁信卸?;
    第六处理???,用于在所述第六判断??榕卸纤龆寥〉氖菸谝恢卮钍?,从所述第一发送缓冲区中读取一个传输分组,将读取到的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第二判断??榧绦卸纤鲋悄芸拇嫫鞯淖刺欠裎醋刺?;
    第一设置???,用于在所述第六判断??榕卸纤龆寥〉氖菸谝怀晒ο煊κ?,将所述智能卡寄存器的状态设置为空闲状态。

    30.  如权利要求27所述的系统,其特征在于,所述模拟读卡器,还包括:
    第二存储???,用于将所述第一处理??槎寥〉降乃龆喔鲎纸诘腁PDU数据存储到第一发送缓冲区;
    所述芯片操作系统,还包括:
    第一校验???,用于对所述第三处理??槎寥〉降拇浞肿榻行Q?,如果校验通过,则对所述读取到的传输分组进行解析,将解析得到的APDU数据存储到所述APDU缓冲区,生成第一成功响应,将所述第一成功响应存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态;如果校验未通过,则生成第一重传命令,将所述第一重传命令写入到所述智能卡寄存器中,将所述智能卡寄存器设置为写状态;
    所述模拟读卡器,还包括:
    第一读取???,用于在所述第二判断??榕卸纤鲋悄芸拇嫫鞯淖刺醋刺?,从所述智能卡寄存器中读取数据;
    第六判断???,用于对所述第一读取??槎寥〉氖萁信卸?;
    第七处理???,用于在所述第六判断??榕卸纤龆寥〉氖菸谝恢卮钍?,从所述第一发送缓冲区中读取所述多个字节的APDU数据,根据读取到的所述多个字节的APDU数据生成一个传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第二判断??榧绦卸纤鲋悄芸拇嫫鞯淖刺欠裎醋刺?;
    第一设置???,用于在所述第六判断??榕卸纤龆寥〉氖菸谝怀晒?响应时,将所述智能卡寄存器的状态设置为空闲状态。

    31.  如权利要求29或30所述的系统,其特征在于,
    所述第一校验???,具体用于对所述第三处理??槎寥〉降拇浞肿榻薪馕?,得到所述传输分组中的组尾字段所包含的差错检测码,根据所述传输分组中除所述差错检测码之外的其余数据计算检测码,判断计算得到的检测码是否与所述差错检测码相同,如果相同,则确定校验通过;否则,确定校验未通过。

    32.  如权利要求27所述的系统,其特征在于,所述芯片操作系统,还包括:
    第三存储???,用于将所述第五处理??樯傻拇浞肿榇娲⒌降诙⑺突撼迩?;
    所述模拟读卡器,还包括:
    第二校验???,用于对所述第二处理??槎寥〉降拇浞肿榻行Q?,如果校验通过,则对所述传输分组进行解析,将解析得到的响应数据发送给所述指令收发器,生成第二成功响应,将所述第二成功响应存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态;如果校验未通过,则生成第二重传命令,将所述第二重传命令写入到所述智能卡寄存器中,将所述智能卡寄存器设置为读状态;
    所述芯片操作系统,还包括:
    第二读取???,用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺磷刺?,从所述智能卡寄存器中读取数据;
    第七判断???,用于对所述第二读取??槎寥〉降氖萁信卸?,在判断出所述读取的数据为所述第二成功响应时,触发所述第二检测??榧绦运鲋悄芸拇嫫鞯淖刺屑觳?;
    第八处理???,用于在所述第七判断??榕卸纤龆寥〉降氖菸诙卮钍?,从所述第二发送缓冲区中读取一个传输分组,将读取到的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测??榧绦运鲋悄芸拇嫫鞯淖刺屑觳?。

    33.  如权利要求27所述的系统,其特征在于,所述芯片操作系统,还包括:
    第四存储???,用于将所述第五处理??槎寥〉降乃龆喔鲎纸诘南煊κ荽娲⒌降诙⑺突撼迩?;
    所述模拟读卡器,还包括:
    第二校验???,用于对所述第二处理??槎寥〉降拇浞肿榻行Q?,如果校验通过,则对所述传输分组进行解析,将解析得到的响应数据发送给所述指令收发器,生成第二成功响应,将所述第二成功响应存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态;如果校验未通过,则生成第二重传命令,将所述第二重传命令写入到所述智能卡寄存器中,将所述智能卡寄存器设置为读状态;
    所述芯片操作系统,还包括:
    第二读取???,用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺磷刺?,从所述智能卡寄存器中读取数据;
    第七判断???,用于对所述第二读取??槎寥〉降氖萁信卸?,在判断出所述读取的数据为所述第二成功响应时,触发所述第二检测??榧绦运鲋悄芸拇嫫鞯淖刺屑觳?;
    第九处理???,用于在所述第七判断??榕卸纤龆寥〉降氖菸诙卮钍?,从所述第二发送缓冲区中读取所述多个字节的响应数据,根据读取到的所述多个字节的响应数据生成一个传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测??榧绦运鲋悄芸拇嫫鞯淖刺屑觳?。

    34.  如权利要求32或33所述的系统,其特征在于,
    所述第二校验???,具体用于对所述第二处理??槎寥〉降拇浞肿榻薪馕?,得到所述传输分组中的组尾字段所包含的差错检测码,根据所述传输分组中除所述差错检测码之外的其余数据计算检测码,判断计算得到的检测码是否与所述差错检测码相同,如果相同,则确定校验通过;否则,确定校验未通过。

    35.  如权利要求32所述的系统,其特征在于,所述芯片操作系统,还包括:
    第八判断???,用于在所述第七判断??榕卸纤龆寥〉氖菸龅诙晒ο煊κ?,判断所述APDU缓冲区中是否存储有响应数据,如果没有,则触发所述第二检测??榧绦运鲋悄芸拇嫫鞯淖刺屑觳?;
    所述第五处理???,具体用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺障凶刺?,且所述第八判断??榕卸纤鯝PDU缓冲区中存储有响应数据时,从所述APDU缓冲区中读取多个字节的响应数据,根据读取到的所述多个字节的响应数据生成一个传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?。

    36.  如权利要求25或27所述的系统,其特征在于,所述模拟读卡器,还包括:
    第二设置???,用于根据所述模拟读卡器与所述指令收发器连接的端口类型,设置所述协议标志位。

    37.  如权利要求25或27所述的系统,其特征在于,所述模拟读卡器,还包括:
    第二接收???,用于接收来自所述指令收发器的所述协议标志位。

    38.  如权利要求21所述的系统,其特征在于,所述芯片操作系统,还包括:
    第九判断???,用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺障凶刺?,判断所述APDU缓冲区中是否存储有响应数据,并在判断所述APDU缓冲区中没有存储响应数据时,触发所述第二检测??榧绦运鲋悄芸拇嫫鞯淖刺屑觳?;
    所述第五处理???,具体用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺障凶刺?,且所述第九判断??榕卸纤鯝PDU缓冲区中存储有响应数据时,向所述智能卡寄存器写入所述响应数据,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?。

    39.  如权利要求21所述的系统,其特征在于,所述芯片操作系统,还包括:
    第十判断???,用于在所述第三处理??榻寥〉降腁PDU数据存储到APDU缓冲区中后,判断是否需要继续接收数据,并在判断出需要继续接收数据时,触发所述第二检测??榧绦运鲋悄芸拇嫫鞯淖刺屑觳?;
    所述第四处理???,具体用于在所述第十判断??榕卸喜恍枰绦邮帐菔?,将所述APDU缓冲区中的数据作为APDU命令进行处理,将处理得到的响应数据存储到所述APDU缓冲区。

    40.  如权利要求39所述的系统,其特征在于,
    所述第十判断???,具体用于判断所述APDU缓冲区中的数据是否为完整的APDU命令,如果是,则确定不需要继续接收数据,否则,则确定需要继续接收数据。

    说明书

    说明书一种模拟读卡器的工作方法和模拟通信系统
    技术领域
    本发明涉及通信技术领域,特别涉及一种模拟读卡器的工作方法和模拟通信系统。
    背景技术
    目前,COS(Chip Operating System,芯片操作系统)开发过程中的硬件和软件调试是分别进行的,大多数情况下,软件调试依赖硬件平台,需要使用仿真软件在硬件平台上配合ICE(In Circuit Emulator,在线仿真器)进行。
    然而,现有技术中的仿真功能仅仅局限于对COS内部的寄存器的仿真,局限性较大,且会带来较大的损耗。
    发明内容
    本发明提供了一种模拟读卡器的工作方法和模拟通信系统,以解决现有技术中仿真局限性较大的缺陷。
    本发明提供了一种模拟读卡器的工作方法,应用于包括模拟读卡器、芯片操作系统、指令收发器和智能卡寄存器的系统中,所述方法包括以下步骤:
    A1、所述模拟读卡器检测自身与所述指令收发器之间的通讯状态,如果通讯状态为可读状态,则执行步骤A2;如果通讯状态为可写状态,则执行步骤A4;如果通讯状态为无效状态,则执行步骤A6;
    A2、所述模拟读卡器判断所述智能卡寄存器的状态是否为空闲状态,如果是,则执行步骤A3;否则,返回步骤A1;
    A3、所述模拟读卡器从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并返回步骤A1;
    A4、所述模拟读卡器判断所述智能卡寄存器的状态是否为写状态,如果是,则执行步骤A5;否则,返回步骤A1;
    A5、所述模拟读卡器从所述智能卡寄存器中读取响应数据,将读取到的响应数据发送给所述指令收发器,将所述智能卡寄存器的状态设置为空闲状态, 并返回步骤A1;
    A6、所述模拟读卡器执行复位操作;
    所述模拟读卡器将所述智能卡寄存器的状态设置为读状态之后,还包括:
    所述芯片操作系统检测到所述智能卡寄存器的状态为读状态后,从所述智能卡寄存器中读取APDU数据,将读取到的APDU数据存储到APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态;
    所述模拟读卡器从所述智能卡寄存器中读取响应数据之前,还包括:
    所述芯片操作系统对所述APDU缓冲区中的APDU数据进行处理,得到所述响应数据,并在检测到所述智能卡寄存器的状态为空闲状态后,向所述智能卡寄存器写入所述响应数据,将所述智能卡寄存器的状态设置为写状态。
    本发明还提供了一种模拟通信系统,包括模拟读卡器、芯片操作系统、指令收发器和智能卡寄存器,其中,
    所述模拟读卡器包括:
    第一检测???,用于检测所述模拟读卡器与所述指令收发器之间的通讯状态;
    第一判断???,用于在所述第一检测??榧觳獾剿鐾ㄑ蹲刺啥磷刺?,判断所述智能卡寄存器的状态是否为空闲状态,在判断出所述智能卡寄存器的状态不是空闲状态时,触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    第一处理???,用于在所述第一判断??榕卸铣鏊鲋悄芸拇嫫鞯淖刺障凶刺?,从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    第二判断???,用于在所述第一检测??榧觳獾剿鐾ㄑ蹲刺尚醋刺?,判断所述智能卡寄存器的状态是否为写状态,并在判断出所述智能卡寄存器的状态不是写状态时,触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    第二处理???,用于在所述第二判断??榕卸铣鏊鲋悄芸拇嫫鞯淖刺醋刺?,从所述智能卡寄存器中读取响应数据,将读取到的响应数据发送给所述指令收发器,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第一检测??榧绦觳馑鐾ㄑ蹲刺?;
    第一复位???,用于在所述第一检测??榧觳獾剿鐾ㄑ蹲刺扌ё刺?时,执行复位操作;
    所述芯片操作系统,包括:
    第二检测???,用于检测所述智能卡寄存器的状态;
    第三处理???,用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺磷刺?,从所述智能卡寄存器中读取APDU数据,将读取到的APDU数据存储到APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?;
    第四处理???,用于对所述APDU缓冲区中的APDU数据进行处理,得到所述响应数据;
    第五处理???,用于在所述第二检测??榧觳獾剿鲋悄芸拇嫫鞯淖刺障凶刺?,向所述智能卡寄存器写入所述响应数据,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测??榧绦觳馑鲋悄芸拇嫫鞯淖刺?。
    本发明提供的技术方案中,通过软件开发系统中加载的模拟读卡器建立芯片操作系统与指令收发器之间的模拟通信,能够在不使用硬件仿真器件的情况下,达到向芯片操作系统输入终端数据的目的,扩展了仿真功能的范围,节省了硬件资源,且降低了仿真功耗。
    附图说明
    图1为本发明实施例中的一种模拟通信系统的结构示意图;
    图2为本发明实施例中的一种模拟读卡器的工作方法的流程图;
    图3为本发明实施例中的模拟读卡器初始化的流程图;
    图4为本发明实施例中的模拟读卡器与指令收发器建立连接和断开连接的流程图;
    图5为本发明实施例中的模拟读卡器对智能卡寄存器进行读写操作的流程图;
    图6为本发明实施例中的芯片操作系统对智能卡寄存器进行读写操作的流程图;
    图7为本发明实施例中的模拟读卡器基于T=0协议对智能卡寄存器进行读写操作的流程图;
    图8为本发明实施例中的芯片操作系统基于T=0协议对智能卡寄存器进行读写操作的流程图;
    图9为本发明实施例中的模拟读卡器基于T=1协议或T=CL协议,对智能卡寄存器进行读写操作的流程图;
    图10为本发明实施例中基于T=1协议的传输分组的结构示意图;
    图11为本发明实施例中基于T=CL协议的传输分组的结构示意图;
    图12为本发明实施例中的芯片操作系统基于T=1协议或T=CL协议,对智能卡寄存器进行读写操作的流程图;
    图13为本发明实施例中的一种模拟读卡器的结构示意图;
    图14为本发明实施例中的一种芯片操作系统的结构示意图;
    图15为本发明实施例中的另一种模拟读卡器的结构示意图;
    图16为本发明实施例中的另一种芯片操作系统的结构示意图;
    图17为本发明实施例中的又一种模拟读卡器的结构示意图;
    图18为本发明实施例中的又一种芯片操作系统的结构示意图。
    具体实施方式
    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例?;诒痉⒚髦械氖凳├?,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明?;さ姆段?。
    本发明实施例提供了一种模拟读卡器的工作方法,应用于包括芯片操作系统、智能卡寄存器、模拟读卡器和指令收发器的系统中,如图1所示。模拟读卡器为芯片操作系统的软件开发系统启动时所加载的插件,可根据接收到的指令,与指令收发器建立连接或断开连接,并在与指令收发器建立连接后,与指令收发器进行APDU的传输。模拟读卡器和指令收发器之间的通讯机制可以是socket通讯机制,也可以是共享内存机制,还可以是其他类型的通讯机制。其中,在socket通讯机制中,模拟读卡器作为服务器端,指令收发器作为客户端。此外,模拟读卡器和芯片操作系统可以使用T=0协议、T=1协议、T=CL协议或中断等方式对智能卡寄存器进行读写操作。
    本发明实施例中,软件开发系统加载模拟读卡器后,模拟读卡器的工作方 法如图2所示,包括以下步骤:
    步骤201,模拟读卡器执行初始化操作。
    步骤202,模拟读卡器接收来自指令收发器的连接指令,与该指令收发器建立连接,并执行复位操作。
    具体地,模拟读卡器与指令收发器建立连接后,可以调用软件开发系统的复位接口,对卡片复位数据进行初始化,并触发芯片操作系统执行相应的复位操作。其中,卡片复位数据包括功耗管理???、时钟控制???、非接触卡和SCD(Smart Card Device,智能卡设备)的状态信息;相应地,模拟读卡器可以将功耗管理???、时钟控制???、非接触卡和SCD的状态信息分别设置为相应的默认值。
    此外,模拟读卡器可以根据接收连接指令的端口的信息,确定自身与芯片操作系统之间的传输协议,也可以根据接收连接指令的端口的信息和连接指令中包含的协议类型信息,确定自身与芯片操作系统之间的传输协议。模拟读卡器根据确定出的传输协议的类型,设置与智能卡寄存器相关的配置信息,该配置信息可以包括智能卡寄存器的大小。相应地,芯片操作系统执行复位操作时,可以根据模拟读卡器确定出的传输协议的类型,对协议标识位进行相应的设置。
    步骤203,模拟读卡器接收来自指令收发器的APDU数据,将该APDU数据存储到智能卡寄存器中。
    具体地,指令收发器可以将APDU命令发送到通讯缓冲区中,模拟读卡器在检测到通讯缓冲区中有数据可读时,可以从通讯缓冲区读取一个字节或多个字节的APDU数据,并将读取到的APDU数据存储到智能卡寄存器中。
    例如,指令收发器将APDU命令“00 A4 04 00 08 D1 56 00 01 32 00 04 01”发送到通讯缓冲区中,模拟读卡器可以以一个字节为单位,将“00 A4 04 00 08 D1 56 00 01 32 00 04 01”分13次存储到智能卡寄存器中;也可以将“00 A4 04 00 08 D1 56 00 01 32 00 04 01”一次性地存储到智能卡寄存器中,还可以按照其他的数据长度为单位,将“00 A4 04 00 08 D1 56 00 01 32 00 04 01”分多次存储到智能卡寄存器中。
    步骤204,芯片操作系统从智能卡寄存器中读取APDU数据,将读取到的APDU数据存储到APDU缓冲区。
    具体地,当模拟读卡器将一个字节的APDU数据存储到智能卡寄存器中后, 芯片操作系统确定智能卡寄存器中有数据可读时,可以根据协议标识位的取值,从智能卡寄存器中读取一个字节的APDU数据,并将读取到的APDU数据存储到APDU缓冲区。
    当模拟读卡器将多个字节的APDU数据存储到智能卡寄存器中后,芯片操作系统确定智能卡寄存器中有数据可读时,可以根据协议标识位的取值,从智能卡寄存器中读取多个字节的APDU数据,并将读取到的APDU数据存储到APDU缓冲区,其中,芯片操作系统从智能卡寄存器中读取的APDU数据的大小,可以与模拟读卡器在步骤203中存储到智能卡寄存器中的APDU数据的大小相等。
    例如,模拟读卡器将APDU数据“01”存储到智能卡寄存器中后,芯片操作系统可以从智能卡寄存器中读取“01”,将“01”存储到APDU缓冲区。模拟读卡器将APDU数据“04 01”存储到智能卡寄存器中后,芯片操作系统可以从智能卡寄存器中读取“04 01”,将“04 01”存储到APDU缓冲区。
    步骤205,芯片操作系统判断是否需要继续接收数据,如果是,则返回步骤204;否则,执行步骤206。
    具体地,芯片操作系统可以判断APDU缓冲区中的数据是否为完整的APDU命令,如果是,则确定不需要继续接收数据,否则确定需要继续接收数据。
    例如,APDU缓冲区中的数据为“00 A4 04 00 08 D1 56 00 01 32 00 04 01”时,芯片操作系统判断出APDU缓冲区中的数据为完整的APDU命令,确定不需要继续接收数据。
    步骤206,芯片操作系统将APDU缓冲区中的数据作为APDU命令进行处理,将处理得到的响应数据存储到APDU缓冲区。
    例如,APDU缓冲区中的数据为“00 A4 04 00 08 D1 56 00 01 32 00 04 01”时,芯片操作系统对“00 A4 04 00 08 D1 56 00 01 32 00 04 01” 进行处理,将处理得到的响应数据“90 00”存储到APDU缓冲区。
    步骤207,芯片操作系统将APDU缓冲区中的响应数据存储到智能卡寄存器中。
    具体地,芯片操作系统确定智能卡寄存器的状态为空闲状态时,可以将APDU缓冲区中的一个字节的响应数据存储到智能卡寄存器中,也可以将APDU缓冲区中的多个字节的响应数据存储到智能卡寄存器中。
    例如,APDU缓冲区中存储有响应数据“90 00”时,芯片操作系统可以从APDU缓冲区中读取一个字节的响应数据“90”,将“90”写入智能卡寄存器中;也可以从APDU缓冲区中读取2个字节的响应数据“90 00”,将“90 00”写入智能卡寄存器中。
    步骤208,模拟读卡器从智能卡寄存器中读取响应数据,将该响应数据发送给指令收发器。
    具体地,当芯片操作系统将一个字节的响应数据存储到智能卡寄存器中后,模拟读卡器可以从智能卡寄存器中读取一个字节的响应数据,并将读取到的响应数据存储到通讯缓冲区中,并发送给指令收发器。
    当芯片操作系统将多个字节的响应数据存储到智能卡寄存器中后,模拟读卡器可以从智能卡寄存器中读取多个字节的响应数据,并将读取到的响应数据存储到通讯缓冲区中,并发送给指令收发器。其中,模拟读卡器从智能卡寄存器中读取的响应数据的大小,可以与芯片操作系统在步骤207中存储到智能卡寄存器中的响应数据的大小相等。
    例如,芯片操作系统将APDU缓冲区中的响应数据“90”写入智能卡寄存器后,模拟读卡器从智能卡寄存器中读取响应数据“90”,将响应数据“90”存储到通讯缓冲区中;芯片操作系统将APDU缓冲区中的响应数据“90 00”写入智能卡寄存器后,模拟读卡器从智能卡寄存器中读取响应数据“90 00”,将响应数据“90 00”存储到通讯缓冲区中。
    步骤209,模拟读卡器接收来自指令收发器的断开指令,断开与该指令收发器的连接,并执行复位操作。
    需要说明的是,在执行完步骤203之后,模拟读卡器可以继续对自身与指令收发器之间的通讯状态进行轮询,在检测到通讯状态为可读状态,即通讯缓冲区中有数据可读时,可以继续从通讯缓冲区读取一个字节或多个字节的APDU数据,将读取到的APDU数据存储到智能卡寄存器中,并执行步骤203之后的操作步骤。
    另外,在执行完步骤207之后,芯片操作系统可以继续对智能卡寄存器的状态进行轮询,在确定智能卡寄存器的状态为空闲状态时,可以继续将APDU缓冲区中的响应数据存储到智能卡寄存器中,并执行步骤207之后的操作步骤。
    此外,上述201,可以细化为如图3所示的流程图,包括以下步骤:
    步骤301,模拟读卡器获取软件开发系统中的基本函数的调用地址。
    其中,所述基本函数可以包括第一预设函数、第二预设函数、第三预设函数和第四预设函数。
    步骤302,模拟读卡器通过调用第一预设函数,对智能卡寄存器的地址进行初始化。
    本实施例中,第一预设函数可以为AgsiDefineSFR函数;相应地,模拟读卡器可以通过调用AgsiDefineSFR函数,初始化智能卡寄存器的地址。
    其中,智能卡寄存器可包括读寄存器、写寄存器和读写标记寄存器。优选地,读寄存器和写寄存器可以为同一寄存器。
    步骤303,模拟读卡器通过调用第二预设函数,设置与智能卡寄存器对应的回调函数。
    具体地,模拟读卡器可以通过调用第二预设函数,将第一回调函数、第二回调函数和第三回调函数分别设置为与读寄存器、写寄存器以及读写标记寄存器相对应。
    当芯片操作系统从读寄存器中读取数据时,第一回调函数被调用,读取通讯缓冲区中的数据,并将读取到的数据写入读寄存器中;当芯片操作系统向写寄存器中写入数据时,第二回调函数被调用,从写寄存器中读取数据,并将读取到的数据写入通讯缓冲区;当芯片操作系统查询读写标记寄存器中的内容时,第三回调函数被调用,根据模拟读卡器与指令收发器之间的通讯状态进行相应的设置。本实施例中,第二预设函数可以为AgsiSetWatchOnSFR函数,第一回调函数为_watch_data_read_cb函数,第二回调函数为_watch_data_write_cb函数,第三回调函数为_watch_flags_read_cb函数。
    步骤304,模拟读卡器通过调用第三预设函数,定义属性配置菜单。
    具体地,模拟读卡器可以通过调用第三预设函数,定义属性配置菜单的内容以及属性配置菜单在软件开发系统的菜单中的位置,其中,属性配置菜单的内容包括端口信息、芯片操作系统中的不同寄存器的位置和长度、相关中断的配置,以及NVM(Non-Volatile Memory,非易失性存储器)读写延迟等内容。本实施例中,第三预设函数可以为AgsiDefineMenuItem函数。
    步骤305,模拟读卡器添加读卡器属性配置对话框,根据该对话框中的信息,配置自身与指令收发器之间的通讯属性信息。
    具体地,模拟读卡器可以根据读卡器属性配置对话框中系统默认的配置信息,配置自身与指令收发器之间的通讯属性信息;也可以根据用户输入到读卡器属性配置对话框中的配置信息,配置自身与指令收发器之间的通讯属性信息。
    当模拟读卡器和指令收发器之间的通讯机制为socket通讯机制时,模拟读卡器可以根据读卡器属性配置对话框中系统默认的配置信息或用户输入到读卡器属性配置对话框中的配置信息,设置socket端口的地址,并根据该socket端口的地址创建socket监听线程。其中,socket端口用于接收数据,socket监听线程可以包括socket连接线程和数据处理线程。socket 连接线程用于处理socket连接请求,在用户选择启动监听时,开始运行;在用户选择停止监听时或程序退出时,终止运行。数据处理线程用于处理芯片操作系统与socket之间的操作数据,在socket连接后,开始运行;在socket断开后,终止运行。
    需要说明的是,本发明实施例中,模拟读卡器完成初始化操作后,可以根据来自指令收发器的连接指令,与指令收发器建立连接,其具体过程,如图4所示,包括以下步骤:
    步骤401,模拟读卡器等待接收来自指令收发器的指令。
    具体地,当模拟读卡器和指令收发器之间的通讯机制为socket通讯机制时,模拟读卡器可以使用socket连接线程对socket端口进行监听。
    步骤402,模拟读卡器对接收到的指令进行判断,如果是连接指令,则执行步骤403;如果是断开指令,则执行步骤406。
    步骤403,模拟读卡器判断自身是否已与指令收发器建立连接,如果是,则执行步骤404;否则执行步骤405。
    具体地,模拟读卡器判断自身与发送连接指令的指令收发器之间的通讯状态是否为有效,如果为有效,则确定自身已与该指令收发器建立连接;否则确定自身没有与该指令收发器建立连接。本实施例中,模拟读卡器可以对预设的变量区域中的数据进行判断,如果该数据为预设的实体值,则确定自身与指令收发器之间的通讯状态为有效,即自身已与该指令收发器建立连接;如果该数据为默认值,则确定自身与指令收发器之间的通讯状态为无效,即自身没有与该指令收发器建立连接。
    步骤404,模拟读卡器拒绝连接指令,并返回步骤401。
    步骤405,模拟读卡器与指令收发器建立连接,并返回步骤401。
    具体地,模拟读卡器可以将自身与指令收发器之间的通讯状态设置为有效。本实施例中,模拟读卡器可以在预设的变量区域写入预设的实体值,以达到将通讯状态设置为有效的目的。
    步骤406,模拟读卡器断开自身与指令收发器之间的连接,并返回步骤401。
    具体地,模拟读卡器可以将自身与指令收发器之间的通讯状态设置为无效。本实施例中,模拟读卡器可以在预设的变量区域写入默认值,以达到将通讯状态设置为无效的目的。
    需要说明的是,在执行完步骤405之后,模拟读卡器通过调用第四预设函数,执行复位操作。本实施例中,第四预设函数可以为AgsiTriggerReset函数;相应地,芯片操作系统也会执行相应的复位操作。
    此外,模拟读卡器与指令收发器建立连接后,可以对自身与指令收发器之间的通讯状态进行轮询,并根据轮询结果,对智能卡寄存器进行相应的读写操作,其具体流程,如图5所示,包括以下步骤:
    步骤500,模拟读卡器检测自身与指令收发器之间的通讯状态,如果通讯状态为可读状态,则执行步骤501;如果通讯状态为可写状态,则执行步骤503;如果通讯状态为无效状态,则执行步骤505。
    具体地,模拟读卡器可以使用数据处理线程检测自身与指令收发器之间的通讯状态,当检测到通讯缓冲区中有数据时,则确定通讯状态为可读状态;如果检测到通讯缓冲区中没有数据且模拟读卡器与指令收发器保持连接状态,则确定通讯状态为可写状态;如果检测到模拟读卡器与指令收发器之间已断开连接,则确定通讯状态为无效状态。
    步骤501,模拟读卡器判断智能卡寄存器的状态是否为空闲状态,如果是,则执行步骤502;否则,返回步骤500。
    步骤502,模拟读卡器从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到智能卡寄存器中,将智能卡寄存器的状态设置为读状态,并返回步骤500。
    具体地,模拟读卡器可以先将从通讯缓冲区读取到的APDU数据存储到读寄存器中,再将智能卡寄存器的状态设置为读状态。模拟读卡器也可以先将智能卡寄存器的状态设置为读状态,芯片操作系统检测到智能卡寄存器的状态为 读状态后,对读寄存器中的数据进行读取,并在读取数据之前触发第一回调函数。当第一回调函数被调用时,模拟读卡器从通讯缓冲区读取APDU数据,并将读取到的APDU数据存储到读寄存器中,供芯片操作系统读取。本实施例中,模拟读卡器可以通过将读写标记寄存器中的数据修改为第一预设值的方式,将智能卡寄存器的状态设置为读状态。
    例如,通讯缓冲区中的APDU数据为“00 A4 04 00 08 D1 56 00 01 32 00 04 01”,第一预设值为“01”时,模拟读卡器可以从通讯缓冲区读取1个字节的APDU数据“00”,将“00”存储到读寄存器中,将读写标记寄存器中的数据修改为“01”;也可以从通讯缓冲区读取2个字节的APDU数据“00 A4”,将“00 A4”存储到读寄存器中,将读写标记寄存器中的数据修改为“01”。
    需要说明的是,芯片操作系统将读寄存器中的APDU数据读取完毕后,可以将智能卡寄存器的状态设置为空闲状态。具体地,芯片操作系统可以通过将读写标记寄存器中的数据修改为第二预设值的方式,将智能卡寄存器的状态设置为空闲状态。此外,芯片操作系统检测到智能卡寄存器的状态为空闲状态,且APDU缓冲区中存储有响应数据时,可将APDU缓冲区中的响应数据存储到写寄存器中,并将智能卡寄存器的状态设置为写状态。芯片操作系统可以通过将读写标记寄存器中的数据修改为第三预设值的方式,将智能卡寄存器的状态设置为写状态。
    例如,第二预设值为“02”,第三预设值为“03”时,芯片操作系统将读寄存器中的APDU数据“00”读取完毕后,将读写标记寄存器中的数据修改为“02”。当芯片操作系统检测到读写标记寄存器中的数据为“02”,且APDU缓冲区中存储有响应数据“90 00”时,芯片操作系统可以从APDU缓冲区中读取一个字节的响应数据“90”,将“90” 存储到写寄存器中,将读写标记寄存器中的数据修改为“03”;也可以从通讯缓冲区读取2个字节的响应数据“90 00”,将“90 00”存储到写寄存器中,将读写标记寄存器中的数据修改为“03”。
    步骤503,模拟读卡器判断智能卡寄存器的状态是否为写状态,如果是,则执行步骤504;否则,返回步骤500。
    步骤504,模拟读卡器从智能卡寄存器中读取响应数据,将该响应数据发送给指令收发器,将智能卡寄存器的状态设置为空闲状态,并返回步骤500。
    具体地,模拟读卡器可以从写寄存器中读取响应数据,将该响应数据发送 给指令收发器,通过将读写标记寄存器中的数据修改为第二预设值的方式,将智能卡寄存器的状态设置为空闲状态。
    例如,第二预设值为“02”,写寄存器中的响应数据为“90”时,模拟读卡器从写寄存器中读取响应数据“90”,将“90”发送给指令收发器,将读写标记寄存器中的数据修改为“02”。
    步骤505,模拟读卡器执行复位操作。
    具体地,模拟读卡器检测到自身与指令收发器之间的通讯状态为无效状态时,确认自身与指令收发器已断开连接,通过调用第四预设函数,执行复位操作,将预设的变量区域中的数据恢复为默认值。本实施例中,第四预设函数可以为AgsiTriggerReset函数;相应地,芯片操作系统也会执行相应的复位操作。
    基于上述实施例中模拟读卡器对智能卡寄存器的读写操作,芯片操作系统对智能卡寄存器的操作流程,如图6所示,包括以下步骤:
    步骤601,芯片操作系统对智能卡寄存器的状态进行检测,如果智能卡寄存器的状态为读状态,则执行步骤602;如果智能卡寄存器的状态为空闲状态,则执行步骤605;如果智能卡寄存器的状态为写状态,则返回步骤601。
    具体地,芯片操作系统可以对读写标记寄存器中的数据进行读取,并对读取到的数据进行判断,如果读取到的数据为第一预设值,则确定智能卡寄存器的状态为读状态;如果读取到的数据为第二预设值,则确定智能卡寄存器的状态为空闲状态;如果读取到的数据为第三预设值,则确定智能卡寄存器的状态为写状态。
    步骤602,芯片操作系统从智能卡寄存器中读取APDU数据,将读取的APDU数据存储到APDU缓冲区;芯片操作系统或模拟读卡器将智能卡寄存器的状态设置为空闲状态。
    具体地,芯片操作系统开始从读寄存器中读取APDU数据之前,触发第一回调函数。当第一回调函数被调用时,模拟读卡器从模拟读卡器从通讯缓冲区中读取APDU数据,并将读取到的APDU数据写入到读寄存器中。芯片操作系统将读寄存器中的APDU数据读取完毕后,芯片操作系统或模拟读卡器可以通过将读写标记寄存器中的数据修改为第二预设值的方式,将智能卡寄存器的状态设置为空闲状态。
    例如,第二预设值为“02”,读寄存器中的APDU数据为“01”时,芯片操作系统从读寄存器中读取APDU数据“01”,将读写标记寄存器中的数据修改为“01”。
    步骤603,芯片操作系统判断是否需要继续接收数据,如果是,则返回步骤601;否则,执行步骤604。
    具体地,芯片操作系统可以判断APDU缓冲区中的数据是否为完整的APDU命令,如果是,则确定不需要继续接收数据,否则,则确定需要继续接收数据。
    例如,APDU缓冲区中的数据为“00 A4 04 00 08 D1 56 00 01 32 00 04 01”时,芯片操作系统判断出APDU缓冲区中的数据为完整的APDU命令,确定不需要继续接收数据。
    步骤604,芯片操作系统将APDU缓冲区中的数据作为APDU命令进行处理,将处理得到的响应数据存储到APDU缓冲区,并返回步骤601。
    例如,APDU缓冲区中的数据为“00 A4 04 00 08 D1 56 00 01 32 00 04 01”时,芯片操作系统对“00 A4 04 00 08 D1 56 00 01 32 00 04 01” 进行处理,将处理得到的响应数据“90 00” 存储到APDU缓冲区。
    步骤605,芯片操作系统判断APDU缓冲区中是否存储有响应数据,如果有,则执行步骤606;否则,返回步骤601。
    步骤606,芯片操作系统将APDU缓冲区中的响应数据存储到智能卡寄存器中,将智能卡寄存器的状态设置为写状态,并返回步骤601。
    具体地,芯片操作系统将APDU缓冲区中的响应数据存储到写寄存器中完毕后,可以通过将读写标记寄存器中的数据修改为第三预设值的方式,将智能卡寄存器的状态设置为写状态。
    例如,APDU缓冲区中存储有响应数据“90 00”,第三预设值为“03”时,芯片操作系统可以从APDU缓冲区中读取一个字节的响应数据“90”,将“90”写入写寄存器中,将读写标记寄存器中的数据修改为“03”;也可以从APDU缓冲区中读取2个字节的响应数据“90 00”,将“90 00”写入写寄存器中,将读写标记寄存器中的数据修改为“03”。
    需要说明的是,在本发明的其他实施方式中,芯片操作系统可以根据写寄存器的地址,将响应数据写入到写寄存器中,并触发第二回调函数,当第二回调函数被调用时,模拟读卡器根据写寄存器的地址,从该写寄存器中读取响应 数据,将读取到的数据写入通讯缓冲区并发送给指令收发器。模拟读卡器将写寄存器中的响应数据读取完毕后,可以通过将读写标记寄存器中的数据修改为第二预设值的方式,将智能卡寄存器的状态设置为空闲状态,同样可以实现本发明的发明目的。
    此外,模拟读卡器与芯片操作系统之间还可采用中断的方式传输APDU,同样可以实现本发明的发明目的。具体地,模拟读卡器检测到自身与指令收发器之间的通讯状态为可读状态时,从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到智能卡寄存器中,并触发第一中断。当第一中断被响应时,芯片操作系统从智能卡寄存器中读取APDU数据,将读取到的APDU数据存储到APDU缓冲区。芯片操作系统APDU缓冲区中的数据是否为完整的APDU命令,如果不是,则继续等待;如果是,则将APDU缓冲区中的数据作为APDU命令进行处理,将处理得到的响应数据存储到APDU缓冲区。芯片操作系统将APDU缓冲区中的响应数据存储到智能卡寄存器中后,触发第二中断。当第二中断被响应时,模拟读卡器从智能卡寄存器中读取响应数据,将该响应数据发送给指令收发器。
    本发明实施例中,模拟读卡器从通讯缓冲区读取APDU数据之前,可以对协议标志位进行判断,如果协议标志位的取值为第四预设值,则选择T=0协议作为模拟读卡器和芯片操作系统之间的传输协议;如果协议标志位的取值为第五预设值,则选择T=1协议或T=CL(非接触)协议作为模拟读卡器和芯片操作系统之间的传输协议。相应地,模拟读卡器可以在初始化阶段对协议标志位进行设置,也可以根据自身与指令收发器连接的端口类型,设置所述协议标志位。此外,协议标志位还可以为模拟读卡器从指令收发器接收的数据。
    当选择T=0协议作为模拟读卡器和芯片操作系统之间的传输协议时,模拟读卡器对智能卡寄存器的读写操作流程,如图7所示,包括以下步骤:
    步骤700,模拟读卡器检测自身与指令收发器之间的通讯状态,如果通讯状态为可读状态,则执行步骤701;如果通讯状态为可写状态,则执行步骤704;如果通讯状态为无效状态,则执行步骤706。
    步骤701,模拟读卡器判断智能卡寄存器的状态是否为空闲状态,如果是,则执行步骤702;否则,返回步骤700。
    步骤702,模拟读卡器从通讯缓冲区读取一个字节的APDU数据,将读取到的一个字节的APDU数据存储到智能卡寄存器中,对校验标识进行置位。
    例如,当选择T=0协议,通讯缓冲区中的APDU数据为“00 A4 04 00 08 D1 56 00 01 32 00 04 01”时,模拟读卡器从通讯缓冲区读取1个字节的APDU数据“00”,将“00” 存储到智能卡寄存器中,对校验标识进行置位。
    步骤703,模拟读卡器将智能卡寄存器的状态设置为读状态,并返回步骤700。
    需要说明的是,芯片操作系统检测到智能卡寄存器的状态为读状态后,从智能卡寄存器中读取一个字节的APDU数据,将智能卡寄存器的状态设置为空闲状态,并判断校验标识是否被置位,如果被置位,则将校验标识复位,将读取到的APDU数据存储到APDU缓冲区;否则,抛出异常。芯片操作系统检测到智能卡寄存器的状态为空闲状态,且APDU缓冲区中存储有响应数据时,从APDU缓冲区中读取一个字节的响应数据,将该响应数据写入智能卡寄存器中,并将智能卡寄存器的状态设置为写状态。
    例如,芯片操作系统检测到智能卡寄存器的状态为读状态后,从智能卡寄存器中读取一个字节的APDU数据“00”,将智能卡寄存器的状态设置为空闲状态,并判断校验标识是否被置位,如果被置位,则将校验标识复位,将读取到的数据“00”存储到APDU缓冲区;否则,抛出异常。
    芯片操作系统检测到智能卡寄存器的状态为空闲状态,且APDU缓冲区中存储有响应数据“90 00”时,从APDU缓冲区中读取一个字节的响应数据“90”,将“90”写入智能卡寄存器中,并将智能卡寄存器的状态设置为写状态。
    步骤704,模拟读卡器判断智能卡寄存器的状态是否为写状态,如果是,则执行步骤705;否则,返回步骤700。
    步骤705,模拟读卡器从智能卡寄存器中读取一个字节的响应数据,将该响应数据发送给指令收发器,将智能卡寄存器的状态设置为空闲状态,并返回步骤700。
    例如,模拟读卡器从智能卡寄存器中读取一个字节的响应数据“90”,将“90”发送给指令收发器,将智能卡寄存器的状态设置为空闲状态。
    步骤706,模拟读卡器执行复位操作。
    基于上述实施例,当选择T=0协议作为模拟读卡器和芯片操作系统之间的传输协议时,芯片操作系统对智能卡寄存器的读写操作流程,如图8所示,包括以下步骤:
    步骤801,芯片操作系统对智能卡寄存器的状态进行检测,如果智能卡寄存器的状态为读状态,则执行步骤802;如果智能卡寄存器的状态为空闲状态,则执行步骤808;如果智能卡寄存器的状态为写状态,则返回步骤801。
    步骤802,芯片操作系统从智能卡寄存器中读取一个字节的APDU数据。
    例如,芯片操作系统从智能卡寄存器中读取一个字节的APDU数据“01”。
    步骤803,芯片操作系统判断校验标识是否被置位,如果是,则执行步骤804;否则,执行步骤807。
    步骤804,芯片操作系统将校验标识复位,将读取的APDU数据存储到APDU缓冲区,将智能卡寄存器的状态设置为空闲状态。
    例如,芯片操作系统将读取的一个字节的APDU数据“01” 存储到APDU缓冲区,将智能卡寄存器的状态设置为空闲状态。
    步骤805,芯片操作系统判断是否需要继续接收数据,如果是,则返回步骤801;否则,执行步骤806。
    具体地,芯片操作系统可以判断APDU缓冲区中的数据是否为完整的APDU命令,如果是,则确定不需要继续接收数据,否则确定需要继续接收数据。
    例如,APDU缓冲区中的数据为“00 A4 04 00 08 D1 56 00 01 32 00 04 01”时,芯片操作系统判断出APDU缓冲区中的数据为完整的APDU命令,确定不需要继续接收数据。
    步骤806,芯片操作系统将APDU缓冲区中的数据作为APDU命令进行处理,将处理得到的响应数据存储到APDU缓冲区,并返回步骤801。
    例如,APDU缓冲区中的数据为“00 A4 04 00 08 D1 56 00 01 32 00 04 01”时,芯片操作系统对“00 A4 04 00 08 D1 56 00 01 32 00 04 01” 进行处理,将处理得到的响应数据“90 00”存储到APDU缓冲区。
    步骤807,芯片操作系统进入校验异常处理,结束流程。
    步骤808,芯片操作系统判断APDU缓冲区中是否存储有响应数据,是则执行步骤809;否则,返回步骤801。
    步骤809,芯片操作系统从APDU缓冲区中读取一个字节的响应数据,将 读取到的数据存储到智能卡寄存器中,将智能卡寄存器的状态设置为写状态,并返回步骤801。
    例如,APDU缓冲区中存储有响应数据“90 00”时,芯片操作系统从APDU缓冲区中读取一个字节的响应数据“90”,将“90”写入智能卡寄存器中,并将智能卡寄存器的状态设置为写状态。
    本发明实施例中,当选择T=1协议或T=CL协议作为模拟读卡器和芯片操作系统之间的传输协议时,模拟读卡器对智能卡寄存器的读写操作流程,如图9所示,包括以下步骤:
    步骤900,模拟读卡器检测自身与指令收发器之间的通讯状态,如果通讯状态为可读状态,则执行步骤901;如果通讯状态为可写状态,则执行步骤908;如果通讯状态为无效状态,则执行步骤913。
    步骤901,模拟读卡器判断智能卡寄存器的状态是否为空闲状态,如果是,则执行步骤902;否则,返回步骤900。
    步骤902,模拟读卡器从通讯缓冲区读取多个字节的APDU数据,根据读取到的APDU数据生成一个传输分组,将该传输分组存储到智能卡寄存器和第一发送缓冲区中,将智能卡寄存器的状态设置为读状态。
    具体地,模拟读卡器可以生成组头字段和组尾字段,将从通讯缓冲区读取多个字节的APDU数据作为信息字段,将组头字段、信息字段和组尾字段组装成传输分组,并将该传输分组分别存储到智能卡寄存器和第一发送缓冲区中。
    其中,当选择T=1协议作为模拟读卡器和芯片操作系统之间的传输协议时,传输分组的结构如图10所示,组头字段包括1字节的NAD(Node Address,节点地址)字段、1字节的PCB(Protocol Control Byte,协议控制字节)和1字节的长度字段,NAD字段包含该传输分组的目标地址和源地址,PCB用于控制和管理传输协议,长度字段的取值为信息字段的长度;组尾字段包含2字节的EDC (Error Detection Code,差错检测码),该EDC是根据该传输分组中的组头字段和信息字段的内容计算得到的。
    当选择T=CL协议作为模拟读卡器和芯片操作系统之间的传输协议时,传输分组的结构如图11所示,组头字段包括1字节的PCB,还可进一步包括1字节的CID(Card Identifier,卡标识符)和1字节的NAD字段,CID为指定的PICC (Proximity Integrated Circuit Card,邻近集成电路卡)的标识符,PCB用于控制和管理传输协议,NAD字段包含该传输分组的目标地址和源地址;组尾字段包含2字节的EDC,该EDC是根据该传输分组中的组头字段和信息字段的内容计算得到的。
    例如,当选择T=1协议或T=CL协议,通讯缓冲区中的APDU数据为“00 A4 04 00 08 D1 56 00 01 32 00 04 01”时,模拟读卡器从通讯缓冲区读取7个字节的APDU数据“00 A4 04 00 08 D1 56”,生成3字节的组头字段“00 20 07”和2字节的组尾字段“08 01”,将“00 A4 04 00 08 D1 56”作为信息字段,将组头字段、信息字段和组尾字段组装成传输分组“00 20 07 00 A4 04 00 08 D1 56 08 01”,将该传输分组分别存储到智能卡寄存器和第一发送缓冲区中。
    需要说明的是,芯片操作系统检测到智能卡寄存器的状态为读状态后,从智能卡寄存器中读取一个传输分组,对该传输分组进行校验,如果校验通过,则将解析得到的APDU数据存储到APDU缓冲区,生成第一成功响应,将该第一成功响应存储到智能卡寄存器中,将智能卡寄存器的状态设置为写状态;如果校验未通过,则生成第一重传命令,将该第一重传命令存储到智能卡寄存器中,将智能卡寄存器的状态设置为写状态。
    步骤903,模拟读卡器判断智能卡寄存器的状态是否为写状态,如果是,则执行步骤904;否则,返回步骤903。
    步骤904,模拟读卡器从智能卡寄存器中读取数据。
    步骤905,模拟读卡器对读取的数据进行判断,如果该数据为第一成功响应,则执行步骤906;如果该数据为第一重传命令,则执行步骤907。
    步骤906,模拟读卡器将智能卡寄存器的状态设置为空闲状态,并返回步骤900。
    例如,模拟读卡器接收到第一成功响应“00 90 00 90”后,将智能卡寄存器的状态设置为空闲状态。
    步骤907,模拟读卡器从第一发送缓冲区中读取一个传输分组,将该传输分组存储到智能卡寄存器中,将智能卡寄存器的状态设置为读状态,并返回步骤903。
    例如,模拟读卡器接收到第一重传响应“00 20 00 20”后,从第一发送缓冲区中读取一个传输分组“00 20 07 00 A4 04 00 08 D1 56 08 01”,并将该传输分组存 储到智能卡寄存器中,将智能卡寄存器的状态设置为读状态。
    需要说明的是,芯片操作系统检测到智能卡寄存器的状态为空闲状态,且APDU缓冲区中存储有响应数据时,可根据APDU缓冲区中的多个字节的响应数据生成一个传输分组,将该传输分组写入智能卡寄存器中,并将智能卡寄存器的状态设置为写状态。
    步骤908,模拟读卡器判断智能卡寄存器的状态是否为写状态,如果是,则执行步骤909;否则,返回步骤900。
    步骤909,模拟读卡器从智能卡寄存器中读取一个传输分组。
    例如,模拟读卡器从智能卡寄存器中读取一个传输分组“00 00 02 90 00 92”。
    步骤910,模拟读卡器对读取到的传输分组进行校验,如果校验通过,则执行步骤911;如果校验未通过,则执行步骤912。
    具体地,模拟读卡器可以对读取到的传输分组进行解析,得到该传输分组中的组尾字段所包含的EDC,根据该传输分组中除EDC之外的其余数据计算检测码,判断计算得到的检测码是否与传输分组中包含的EDC相同,如果相同,则确定校验通过;否则,确定校验不通过。
    例如,当模拟读卡器读取到的传输分组为“00 00 02 90 00 92 01”时,模拟读卡器解析得到该传输分组包含的EDC“92 01”,并根据传输分组中除EDC之外的其余数据“00 00 02 90 00”计算得到检测码“92 01”,判断出计算得到的检测码与传输分组中包含的EDC相同,确定校验通过。
    步骤911,模拟读卡器对读取到的传输分组进行解析,将解析得到的响应数据发送给指令收发器,生成第二成功响应,将该第二成功响应写入到智能卡寄存器中,将智能卡寄存器的状态设置为读状态,并返回步骤900。
    具体地,模拟读卡器可以将传输分组中的信息字段的内容作为解析得到的响应数据发送给指令收发器。
    例如,模拟读卡器对传输分组“00 00 02 90 00 92”校验通过后,将传输分组中的信息字段的内容“90 00”发送给指令收发器,生成第二成功响应“00 90 00 90”,将该第二成功响应写入到智能卡寄存器中,将智能卡寄存器的状态设置为读状态。
    步骤912,模拟读卡器生成第二重传命令,将该第二重传命令写入到智能卡寄存器中,将智能卡寄存器设置为读状态,并返回步骤900。
    例如,模拟读卡器对传输分组“00 00 02 90 00 92”校验未通过后,生成第二重传响应“00 20 00 20”,将该第二重传命令写入到智能卡寄存器中,将智能卡寄存器设置为读状态。
    步骤913,模拟读卡器执行复位操作。
    需要说明的是,在本发明的其他实施方式中,模拟读卡器检测自身与指令收发器之间的通讯状态为可读状态,且从通讯缓冲区读取多个字节的APDU数据后,也可以将读取的多个字节的APDU数据存储到第一发送缓冲区中;相应地,当模拟读卡器从智能卡寄存器中读取到第一重传命令时,根据第一发送缓冲区中的APDU数据,生成一个传输分组,将该传输分组存储到智能卡寄存器中,将智能卡寄存器的状态设置为读状态,同样可以实现本发明的发明目的。
    基于上述实施例,当选择T=1协议或T=CL协议作为模拟读卡器和芯片操作系统之间的传输协议时,芯片操作系统对智能卡寄存器的读写操作流程,如图12所示,包括以下步骤:
    步骤1201,芯片操作系统对智能卡寄存器的状态进行检测,如果智能卡寄存器的状态为读状态,则执行步骤1202;如果智能卡寄存器的状态为空闲状态,则执行步骤1209;如果智能卡寄存器的状态为写状态,则返回步骤1201。
    步骤1202,芯片操作系统从智能卡寄存器中读取数据。
    步骤1203,芯片操作系统对读取到的数据进行判断,如果该数据为一个传输分组,则执行步骤1204;如果该数据为第二成功响应,则返回步骤1209;如果该数据为第二重传命令,则执行步骤1211。
    步骤1204,芯片操作系统对读取到的传输分组进行校验,如果校验通过,则执行步骤1205;如果校验未通过,则执行步骤1208。
    具体地,芯片操作系统可以对读取到的传输分组进行解析,得到该传输分组中的组尾字段所包含的EDC,根据该传输分组中除EDC之外的其余数据计算检测码,判断计算得到的检测码是否与传输分组中包含的EDC相同,如果相同,则确定校验通过;否则,确定校验不通过。
    例如,当芯片操作系统读取到的传输分组为“00 20 07 00 A4 04 00 08 D1 56 08 01”时,芯片操作系统解析得到该传输分组包含的EDC“08 01”,并根据传输分组中除EDC之外的其余数据“00 20 07 00 A4 04 00 08 D1 56”计算得到检测码 “08 01”,判断出计算得到的检测码与传输分组中包含的EDC相同,确定校验通过。
    步骤1205,芯片操作系统对读取到的传输分组进行解析,将解析得到的APDU数据存储到APDU缓冲区,生成第一成功响应,将该第一成功响应存储到智能卡寄存器中,将智能卡寄存器的状态设置为写状态。
    具体地,芯片操作系统可以将传输分组中的信息字段的内容作为解析得到的APDU数据存储到APDU缓冲区,生成第一成功响应,将该第一成功响应存储到智能卡寄存器中,将智能卡寄存器的状态设置为写状态。
    例如,芯片操作系统对传输分组“00 20 07 00 A4 04 00 08 D1 56 08 01”校验通过后,将传输分组中的信息字段的内容“00 A4 04 00 08 D1 56” 存储到APDU缓冲区,生成第一成功响应“00 90 00 90”,将该第一成功响应写入到智能卡寄存器中,将智能卡寄存器的状态设置为写状态。
    步骤1206,芯片操作系统判断是否需要继续接收数据,如果是,则返回步骤1201;否则,执行步骤1207。
    具体地,芯片操作系统可以判断APDU缓冲区中的数据是否为完整的APDU命令,如果是,则确定不需要继续接收数据,否则,则确定需要继续接收数据。
    例如,当APDU缓冲区中的数据为“00 A4 04 00 08 D1 56”时,芯片操作系统判断“00 A4 04 00 08 D1 56”不是完整的APDU命令,确定需要继续接收数据;当APDU缓冲区中的数据为“00 A4 04 00 08 D1 56 00 01 32 00 04 01”时,芯片操作系统判断“00 A4 04 00 08 D1 56 00 01 32 00 04 01”是完整的APDU命令,确定不需要继续接收数据。
    步骤1207,芯片操作系统将APDU缓冲区中的数据作为APDU命令进行处理,将处理得到的响应数据存储到APDU缓冲区,并返回步骤1201。
    例如,芯片操作系统判断出不需要继续接收数据后,对APDU缓冲区中的数据“00 A4 04 00 08 D1 56 00 01 32 00 04 01”进行处理,得到响应数据“90 00”,将该响应数据存储到APDU缓冲区中。
    步骤1208,芯片操作系统生成第一重传命令,将该第一重传命令写入到智能卡寄存器中,将智能卡寄存器设置为写状态,并返回步骤1201。
    例如,芯片操作系统对传输分组“00 20 07 00 A4 04 00 08 D1 56 08 01”校验未通过后,生成第一重传响应“00 20 00 20”,将该第一重传命令写入到智能卡寄 存器中,将智能卡寄存器设置为写状态。
    步骤1209,芯片操作系统判断APDU缓冲区中是否存储有响应数据,是则执行步骤1210;否则,返回步骤1201。
    步骤1210,芯片操作系统从APDU缓冲区中读取多个字节的响应数据,根据读取到的响应数据生成一个传输分组,并将该传输分组存储到智能卡寄存器和第二发送缓冲区中,将智能卡寄存器的状态设置为写状态,并返回步骤1201。
    具体地,芯片操作系统可以生成组头字段和组尾字段,将从APDU缓冲区读取多个字节的响应数据作为信息字段,将组头字段、信息字段和组尾字段组装成传输分组,并将该传输分组存储到智能卡寄存器中。
    其中,当选择T=1协议作为模拟读卡器和芯片操作系统之间的传输协议时,组头字段包括1字节的NAD字段、1字节的PCB和1字节的长度字段,NAD字段包含该传输分组的目标地址和源地址,PCB用于控制和管理传输协议,长度字段的取值为信息字段的长度;组尾字段包含2字节的EDC,该EDC是根据该传输分组中的组头字段和信息字段的内容计算得到的。
    当选择T=CL协议作为模拟读卡器和芯片操作系统之间的传输协议时,组头字段包括1字节的PCB,还可进一步包括1字节的CID和1字节的NAD字段,CID为指定的PICC的标识符,PCB用于控制和管理传输协议,NAD字段包含该传输分组的目标地址和源地址;组尾字段包含2字节的EDC,该EDC是根据该传输分组中的组头字段和信息字段的内容计算得到的。
    例如,当选择T=1协议或T=CL协议,APDU缓冲区中的数据为“90 00”时,芯片操作系统从APDU缓冲区中读取2字节的响应数据“90 00”,生成3字节的组头字段“00 00 02”和2字节的组尾字段“92 01”,将“90 00”作为信息字段,将组头字段、信息字段和组尾字段组装成传输分组“00 00 02 90 00 92 01”,将该传输分组分别存储到智能卡寄存器和第二发送缓冲区中。
    步骤1211,芯片操作系统从第二发送缓冲区中读取一个传输分组,将该传输分组存储到智能卡寄存器中,将智能卡寄存器的状态设置为写状态,并返回步骤1201。
    例如,芯片操作系统接收到第二重传响应“00 20 00 20”后,从第二发送缓冲区中读取一个传输分组“00 00 02 90 00 92 01”,并将该传输分组存储到智能卡寄存器中,将智能卡寄存器的状态设置为写状态。
    本发明实施例通过软件开发系统中加载的模拟读卡器建立芯片操作系统与指令收发器之间的模拟通信,能够在不使用硬件仿真器件的情况下,达到向芯片操作系统输入终端数据的目的,扩展了仿真功能的范围,节省了硬件资源,且降低了仿真功耗。
    需要说明的是,在本发明的其他实施方式中,芯片操作系统判断APDU缓冲区中存储有响应数据,并从APDU缓冲区读取多个字节的响应数据后,也可以将读取的多个字节的响应数据存储到第二发送缓冲区中;相应地,芯片操作系统从智能卡寄存器中读取到第二重传命令后,可以根据第二发送缓冲区中的响应数据,生成一个传输分组,将该传输分组存储到智能卡寄存器中,将智能卡寄存器的状态设置为写状态,同样可以实现本发明的发明目的。
    如图13、14所示,分别为本发明实施例中的一种模拟读卡器和芯片操作系统的结构示意图,其中,模拟读卡器包括:
    第一检测???301,用于检测所述模拟读卡器与所述指令收发器之间的通讯状态;
    具体地,上所述第一检测???301,具体用于对所述模拟读卡器与所述指令收发器之间的连接状态进行检测,并判断所述通讯缓冲区中是否有数据,如果所述通讯缓冲区中有数据,则确定所述通讯状态为可读状态;如果所述通讯缓冲区中没有数据且所述模拟读卡器与所述指令收发器保持连接状态,则确定通讯状态为可写状态;如果所述模拟读卡器与所述指令收发器之间已断开连接,则确定所述通讯状态为无效状态。
    第一判断???302,用于在所述第一检测???301检测到所述通讯状态为可读状态时,判断所述智能卡寄存器的状态是否为空闲状态,在判断出所述智能卡寄存器的状态不是空闲状态时,触发所述第一检测???301继续检测所述通讯状态;
    具体地,上述第一判断???302,具体用于在所述第一检测???301检测到所述通讯状态为可读状态时,对所述读写标记寄存器中的数据进行判断,如果所述数据为所述第三预设值,则确定所述智能卡寄存器的状态为空闲状态;如果所述数据不是所述第三预设值,则确定所述智能卡寄存器的状态不是空闲状态,触发所述第一检测???301继续检测所述通讯状态;
    第一处理???303,用于在所述第一判断???302判断所述智能卡寄存器的状态为空闲状态时,从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测???301继续检测所述通讯状态;
    具体地,上述第一处理???303,具体用于在第一判断???302判断所述智能卡寄存器的状态为空闲状态时,从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到所述智能卡寄存器中,将读写标记寄存器中的数据修改为第一预设值,并触发所述第一检测???301继续检测所述通讯状态;
    第二判断???304,用于在所述第一检测???301检测到所述通讯状态为可写状态时,判断所述智能卡寄存器的状态是否为写状态,并在判断出所述智能卡寄存器的状态不是写状态时,触发所述第一检测???301继续检测所述通讯状态;
    具体地,上述第二判断???304,具体用于在所述第一检测???301检测到所述通讯状态为可写状态时,对所述读写标记寄存器中的数据进行判断,如果所述数据为所述第三预设值,则确定所述智能卡寄存器的状态为写状态;如果所述数据不是所述第三预设值,则确定所述智能卡寄存器的状态不是写状态,触发所述第一检测???301继续检测所述通讯状态;
    第二处理???305,用于在所述第二判断???304判断所述智能卡寄存器的状态为写状态时,从所述智能卡寄存器中读取响应数据,将读取到的响应数据发送给所述指令收发器,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第一检测???301继续检测所述通讯状态;
    具体地,上述第二处理???305,具体用于在所述第二判断???304判断所述智能卡寄存器的状态为写状态时,从所述智能卡寄存器中读取响应数据,将读取到的响应数据发送给所述指令收发器,将读写标记寄存器中的数据修改为第三预设值,并触发所述第一检测???301继续检测所述通讯状态;
    第一复位???306,用于在所述第一检测???301检测到所述通讯状态为无效状态时,执行复位操作;
    进一步地,上述模拟读卡器,还包括:
    第一接收???307,用于接收来自所述指令收发器的指令;
    第三判断???308,用于对所述第一接收???307接收到的指令进行判断;
    第四判断???309,用于在所述第三判断???308判断所述接收到的指令为连接指令时,判断所述模拟读卡器是否已与指令收发器建立连接;
    拒绝???310,用于在所述第四判断???309判断所述模拟读卡器已与指令收发器建立连接时,拒绝所述连接指令;
    连接???311,用于在所述第四判断???309判断所述模拟读卡器已与指令收发器建立连接时,与所述指令收发器建立连接;
    断开???312,用于在所述第三判断???308判断所述接收到的指令为断开指令时,断开与所述指令收发器之间的连接。
    进一步地,上述模拟读卡器,还包括:
    第二接收???313,用于接收来自所述指令收发器的协议标志位。
    第五判断???314,用于对协议标志位进行判断;
    相应地,上述第一处理???303,具体用于在所述第一判断???302判断所述智能卡寄存器的状态为空闲状态,且所述第五判断???314判断所述协议标志位的取值为第四预设值时,从所述通讯缓冲区读取一个字节的APDU数据,将读取到的所述一个字节的APDU数据存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测???301继续检测所述通讯状态;
    上述第二处理???305,具体用于在所述第二判断???304判断所述智能卡寄存器的状态为写状态时,从所述智能卡寄存器中读取一个字节的响应数据,将读取到的所述一个字节的响应数据发送给所述指令收发器,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第一检测???301继续检测所述通讯状态。
    相应地,芯片操作系统,包括:
    第二检测???401,用于检测所述智能卡寄存器的状态;
    具体地,上述第二检测???401,具体用于对所述读写标记寄存器中的数据进行判断,如果所述数据为所述第一预设值,则确定所述智能卡寄存器的状态为读状态;如果所述数据为所述第三预设值,则确定所述智能卡寄存器的状态为空闲状态。
    第三处理???402,用于在所述第二检测???401检测到所述智能卡寄存 器的状态为读状态时,从所述智能卡寄存器中读取APDU数据,将读取到的APDU数据存储到APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第二检测???401继续检测所述智能卡寄存器的状态;
    具体地,上述第三处理???402,具体用于在所述第二检测???401检测到所述智能卡寄存器的状态为读状态时,从所述智能卡寄存器中读取APDU数据,将读取到的APDU数据存储到APDU缓冲区中,将读写标记寄存器中的数据修改为第三预设值,并触发所述第二检测???401继续检测所述智能卡寄存器的状态;
    上述第三处理???402,还可具体用于在所述第二检测???401检测到所述智能卡寄存器的状态为读状态时,从所述智能卡寄存器中读取一个字节的APDU数据,将读取到的所述一个字节的APDU数据存储到所述APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第二检测???401继续检测所述智能卡寄存器的状态;
    第四处理???403,用于对所述APDU缓冲区中的APDU数据进行处理,得到所述响应数据;
    第五处理???404,用于在所述第二检测???401检测到所述智能卡寄存器的状态为空闲状态时,向所述智能卡寄存器写入所述响应数据,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测???401继续检测所述智能卡寄存器的状态。
    具体地,上述第五处理???404,具体用于在所述第二检测???401检测到所述智能卡寄存器的状态为空闲状态时,向所述智能卡寄存器写入所述响应数据,将读写标记寄存器中的数据修改为第二预设值,并触发所述第二检测???401继续检测所述智能卡寄存器的状态。
    所述第五处理???404,具体用于在所述第二检测???401检测到所述智能卡寄存器的状态为空闲状态时,向所述智能卡寄存器写入一个字节的响应数据,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测???401继续检测所述智能卡寄存器的状态;
    进一步,上述模拟读卡器,还可以包括:
    置位???315,用于在所述第一处理???303将读取到的所述一个字节的APDU数据存储到所述智能卡寄存器中后,对校验标识进行置位;
    相应地,上述芯片操作系统,还包括:
    第六判断???405,用于在所述第三处理???402从所述智能卡寄存器中读取一个字节的APDU数据后,判断所述校验标识是否被置位;
    第二复位???406,用于在所述第六判断???405判断所述校验标识被置位时,将所述校验标识复位;
    异常处理???407,用于在所述第六判断???405判断所述校验??槊挥斜恢梦皇?,执行校验异常处理;
    上述第三处理???402,具体用于在所述第二检测???401检测到所述智能卡寄存器的状态为读状态时,从所述智能卡寄存器中读取一个字节的APDU数据,在所述第六判断???405判断所述校验标识被置位时,将读取到的所述一个字节的APDU数据存储到所述APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第二检测???401继续检测所述智能卡寄存器的状态。
    本发明实施例通过软件开发系统中加载的模拟读卡器建立芯片操作系统与指令收发器之间的模拟通信,能够在不使用硬件仿真器件的情况下,达到向芯片操作系统输入终端数据的目的,扩展了仿真功能的范围,节省了硬件资源,且降低了仿真功耗。
    如图15、16所示,分别为本发明实施例中的另一种模拟读卡器和芯片操作系统的结构示意图,其中,模拟读卡器包括:
    第一检测???501,用于检测所述模拟读卡器与所述指令收发器之间的通讯状态;
    第一判断???502,用于在所述第一检测???501检测到所述通讯状态为可读状态时,判断所述智能卡寄存器的状态是否为空闲状态,在判断出所述智能卡寄存器的状态不是空闲状态时,触发所述第一检测???501继续检测所述通讯状态;
    第一处理???503,用于在所述第一判断???502判断所述智能卡寄存器的状态为空闲状态时,从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测???501继续检测所述通讯状态;
    第二判断???504,用于在所述第一检测???501检测到所述通讯状态为可写状态时,判断所述智能卡寄存器的状态是否为写状态,并在判断出所述智能卡寄存器的状态不是写状态时,触发所述第一检测???501继续检测所述通讯状态;
    第二处理???505,用于在所述第二判断???504判断所述智能卡寄存器的状态为写状态时,从所述智能卡寄存器中读取响应数据,将读取到的响应数据发送给所述指令收发器,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第一检测???501继续检测所述通讯状态;
    第一复位???506,用于在所述第一检测???501检测到所述通讯状态为无效状态时,执行复位操作;
    相应地,芯片操作系统,包括:
    第二检测???601,用于检测所述智能卡寄存器的状态;
    第三处理???602,用于在所述第二检测???601检测到所述智能卡寄存器的状态为读状态时,从所述智能卡寄存器中读取APDU数据,将读取到的APDU数据存储到APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第二检测???601继续检测所述智能卡寄存器的状态;
    第四处理???603,用于对所述APDU缓冲区中的APDU数据进行处理,得到所述响应数据;
    第五处理???604,用于在所述第二检测???601检测到所述智能卡寄存器的状态为空闲状态时,向所述智能卡寄存器写入所述响应数据,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测???601继续检测所述智能卡寄存器的状态。
    进一步地,上述模拟读卡器,还包括:
    第五判断???507,用于对协议标志位进行判断;
    相应地,上述第一处理???503,具体用于在所述第一判断???502判断所述智能卡寄存器的状态为空闲状态,且所述第五判断???507判断所述协议标志位的取值为第五预设值时,从所述通讯缓冲区读取多个字节的APDU数据,根据读取到的所述多个字节的APDU数据生成一个传输分组,将所述传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测???501继续检测所述通讯状态;
    具体地,上述第一处理???503,还可具体用于在所述第一判断???502判断所述智能卡寄存器的状态为空闲状态,且所述第五判断???507判断所述协议标志位的取值为第五预设值时,从所述通讯缓冲区读取多个字节的APDU数据,生成组头字段和组尾字段,将所述多个字节的APDU数据作为信息字段,将所述组头字段、所述信息字段和所述组尾字段组装成所述传输分组,将所述传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测???501继续检测所述通讯状态;
    上述第三处理???602,具体用于在所述第二检测???601检测到所述智能卡寄存器的状态为读状态时,从所述智能卡寄存器中读取一个传输分组,将所述传输分组中的多个字节的APDU数据存储到所述APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第二检测???601继续检测所述智能卡寄存器的状态;
    上述第五处理???604,具体用于在所述第二检测???601检测到所述智能卡寄存器的状态为空闲状态时,从所述APDU缓冲区中读取多个字节的响应数据,根据读取到的所述多个字节的响应数据生成一个传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测???601继续检测所述智能卡寄存器的状态;
    具体地,上述第五处理???604,还可具体用于在所述第二检测???601检测到所述智能卡寄存器的状态为空闲状态时,从所述APDU缓冲区中读取多个字节的响应数据,生成组头字段和组尾字段,将所述多个字节的响应数据作为信息字段,将所述组头字段、所述信息字段和所述组尾字段组装成传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测???601继续检测所述智能卡寄存器的状态。
    上述第二处理???505,具体用于在所述第二判断???504判断所述智能卡寄存器的状态为写状态时,从所述智能卡寄存器中读取一个传输分组,对读取到的传输分组进行解析,将解析得到响应数据发送给所述指令收发器,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第一检测???501继续检测所述通讯状态。
    进一步地,上述模拟读卡器,还包括:
    第一存储???508,用于将所述第一处理???503生成的传输分组存储到 第一发送缓冲区;
    第一读取???509,用于在所述第二判断???504判断所述智能卡寄存器的状态为写状态时,从所述智能卡寄存器中读取数据;
    第六判断???510,用于对所述第一读取???509读取的数据进行判断;
    第六处理???511,用于在所述第六判断???510判断所述读取的数据为第一重传命令时,从所述第一发送缓冲区中读取一个传输分组,将读取到的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第二判断???504继续判断所述智能卡寄存器的状态是否为写状态;
    第一设置???512,用于在所述第六判断???510判断所述读取的数据为第一成功响应时,将所述智能卡寄存器的状态设置为空闲状态。
    相应地,上述芯片操作系统,还包括:
    第一校验???605,用于对所述第三处理???602读取到的传输分组进行校验,如果校验通过,则对所述读取到的传输分组进行解析,将解析得到的APDU数据存储到所述APDU缓冲区,生成第一成功响应,将所述第一成功响应存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态;如果校验未通过,则生成第一重传命令,将所述第一重传命令写入到所述智能卡寄存器中,将所述智能卡寄存器设置为写状态;
    具体地,上述第一校验???605,具体用于对所述第三处理???602读取到的传输分组进行解析,得到所述传输分组中的组尾字段所包含的差错检测码,根据所述传输分组中除所述差错检测码之外的其余数据计算检测码,判断计算得到的检测码是否与所述差错检测码相同,如果相同,则确定校验通过;否则,确定校验未通过。
    进一步地,上述芯片操作系统,还包括:
    第三存储???606,用于将所述第五处理???604生成的传输分组存储到第二发送缓冲区;
    第二读取???607,用于在所述第二检测???601检测到所述智能卡寄存器的状态为读状态时,从所述智能卡寄存器中读取数据;
    第七判断???608,用于对所述第二读取???607读取到的数据进行判断,在判断出所述读取的数据为所述第二成功响应时,触发所述第二检测???601 继续对所述智能卡寄存器的状态进行检测;
    第八处理???609,用于在所述第七判断???608判断所述读取到的数据为第二重传命令时,从所述第二发送缓冲区中读取一个传输分组,将读取到的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测???601继续对所述智能卡寄存器的状态进行检测。
    相应地,上述模拟读卡器,还包括:
    第二校验???513,用于对所述第二处理???505读取到的传输分组进行校验,如果校验通过,则对所述传输分组进行解析,将解析得到的响应数据发送给所述指令收发器,生成第二成功响应,将所述第二成功响应存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态;如果校验未通过,则生成第二重传命令,将所述第二重传命令写入到所述智能卡寄存器中,将所述智能卡寄存器设置为读状态;
    具体地,上述第二校验???513,具体用于对所述第二处理???505读取到的传输分组进行解析,得到所述传输分组中的组尾字段所包含的差错检测码,根据所述传输分组中除所述差错检测码之外的其余数据计算检测码,判断计算得到的检测码是否与所述差错检测码相同,如果相同,则确定校验通过;否则,确定校验未通过。
    进一步地,上述芯片操作系统,还包括:
    第八判断???610,用于在所述第七判断???608判断所述读取的数据为所述第二成功响应时,判断所述APDU缓冲区中是否存储有响应数据,如果没有,则触发所述第二检测???601继续对所述智能卡寄存器的状态进行检测;
    相应地,上述第五处理???604,具体用于在所述第二检测???601检测到所述智能卡寄存器的状态为空闲状态,且所述第八判断???610判断所述APDU缓冲区中存储有响应数据时,从所述APDU缓冲区中读取多个字节的响应数据,根据读取到的所述多个字节的响应数据生成一个传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测???601继续检测所述智能卡寄存器的状态。
    进一步地,上述模拟读卡器,还包括:
    第二设置???514,用于根据所述模拟读卡器与所述指令收发器连接的端口类型,设置所述协议标志位。
    本发明实施例通过软件开发系统中加载的模拟读卡器建立芯片操作系统与指令收发器之间的模拟通信,能够在不使用硬件仿真器件的情况下,达到向芯片操作系统输入终端数据的目的,扩展了仿真功能的范围,节省了硬件资源,且降低了仿真功耗。
    如图17、18所示,分别为本发明实施例中的另一种模拟读卡器和芯片操作系统的结构示意图,其中,模拟读卡器包括:
    第一检测???701,用于检测所述模拟读卡器与所述指令收发器之间的通讯状态;
    第一判断???702,用于在所述第一检测???701检测到所述通讯状态为可读状态时,判断所述智能卡寄存器的状态是否为空闲状态,在判断出所述智能卡寄存器的状态不是空闲状态时,触发所述第一检测???701继续检测所述通讯状态;
    第一处理???703,用于在所述第一判断???702判断所述智能卡寄存器的状态为空闲状态时,从通讯缓冲区读取APDU数据,将读取到的APDU数据存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测???701继续检测所述通讯状态;
    第二判断???704,用于在所述第一检测???701检测到所述通讯状态为可写状态时,判断所述智能卡寄存器的状态是否为写状态,并在判断出所述智能卡寄存器的状态不是写状态时,触发所述第一检测???701继续检测所述通讯状态;
    第二处理???705,用于在所述第二判断???704判断所述智能卡寄存器的状态为写状态时,从所述智能卡寄存器中读取响应数据,将读取到的响应数据发送给所述指令收发器,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第一检测???701继续检测所述通讯状态;
    第一复位???706,用于在所述第一检测???701检测到所述通讯状态为无效状态时,执行复位操作;
    相应地,芯片操作系统,包括:
    第二检测???801,用于检测所述智能卡寄存器的状态;
    第三处理???802,用于在所述第二检测???801检测到所述智能卡寄存 器的状态为读状态时,从所述智能卡寄存器中读取APDU数据,将读取到的APDU数据存储到APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第二检测???801继续检测所述智能卡寄存器的状态;
    第四处理???803,用于对所述APDU缓冲区中的APDU数据进行处理,得到所述响应数据;
    第五处理???804,用于在所述第二检测???801检测到所述智能卡寄存器的状态为空闲状态时,向所述智能卡寄存器写入所述响应数据,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测???801继续检测所述智能卡寄存器的状态。
    进一步地,上述模拟读卡器,还包括:
    第五判断???707,用于对协议标志位进行判断;
    相应地,上述第一处理???703,具体用于在所述第一判断???702判断所述智能卡寄存器的状态为空闲状态,且所述第五判断???707判断所述协议标志位的取值为第五预设值时,从所述通讯缓冲区读取多个字节的APDU数据,根据读取到的所述多个字节的APDU数据生成一个传输分组,将所述传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测???701继续检测所述通讯状态;
    具体地,上述第一处理???703,还可具体用于在所述第一判断???702判断所述智能卡寄存器的状态为空闲状态,且所述第五判断???707判断所述协议标志位的取值为第五预设值时,从所述通讯缓冲区读取多个字节的APDU数据,生成组头字段和组尾字段,将所述多个字节的APDU数据作为信息字段,将所述组头字段、所述信息字段和所述组尾字段组装成所述传输分组,将所述传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第一检测???701继续检测所述通讯状态;
    上述第三处理???802,具体用于在所述第二检测???801检测到所述智能卡寄存器的状态为读状态时,从所述智能卡寄存器中读取一个传输分组,将所述传输分组中的多个字节的APDU数据存储到所述APDU缓冲区中,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第二检测???801继续检测所述智能卡寄存器的状态;
    上述第五处理???804,具体用于在所述第二检测???801检测到所述智 能卡寄存器的状态为空闲状态时,从所述APDU缓冲区中读取多个字节的响应数据,根据读取到的所述多个字节的响应数据生成一个传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测???801继续检测所述智能卡寄存器的状态;
    具体地,上述第五处理???804,还可具体用于在所述第二检测???801检测到所述智能卡寄存器的状态为空闲状态时,从所述APDU缓冲区中读取多个字节的响应数据,生成组头字段和组尾字段,将所述多个字节的响应数据作为信息字段,将所述组头字段、所述信息字段和所述组尾字段组装成传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测???801继续检测所述智能卡寄存器的状态。
    上述第二处理???705,具体用于在所述第二判断???704判断所述智能卡寄存器的状态为写状态时,从所述智能卡寄存器中读取一个传输分组,对读取到的传输分组进行解析,将解析得到响应数据发送给所述指令收发器,将所述智能卡寄存器的状态设置为空闲状态,并触发所述第一检测???701继续检测所述通讯状态。
    进一步地,上述模拟读卡器,还包括:
    第二存储???708,用于将所述第一处理???703读取到的所述多个字节的APDU数据存储到第一发送缓冲区;
    第一读取???709,用于在所述第二判断???704判断所述智能卡寄存器的状态为写状态时,从所述智能卡寄存器中读取数据;
    第六判断???710,用于对所述第一读取???709读取的数据进行判断;
    第七处理???711,用于在所述第六判断???710判断所述读取的数据为第一重传命令时,从所述第一发送缓冲区中读取所述多个字节的APDU数据,根据读取到的所述多个字节的APDU数据生成一个传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态,并触发所述第二判断???704继续判断所述智能卡寄存器的状态是否为写状态;
    第一设置???712,用于在所述第六判断???710判断所述读取的数据为第一成功响应时,将所述智能卡寄存器的状态设置为空闲状态。
    相应地,上述芯片操作系统,还包括:
    第一校验???805,用于对所述第三处理???802读取到的传输分组进行 校验,如果校验通过,则对所述读取到的传输分组进行解析,将解析得到的APDU数据存储到所述APDU缓冲区,生成第一成功响应,将所述第一成功响应存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态;如果校验未通过,则生成第一重传命令,将所述第一重传命令写入到所述智能卡寄存器中,将所述智能卡寄存器设置为写状态;
    具体地,上述第一校验???805,具体用于对所述第三处理???802读取到的传输分组进行解析,得到所述传输分组中的组尾字段所包含的差错检测码,根据所述传输分组中除所述差错检测码之外的其余数据计算检测码,判断计算得到的检测码是否与所述差错检测码相同,如果相同,则确定校验通过;否则,确定校验未通过。
    进一步地,上述芯片操作系统,还包括:
    第四存储???806,用于将所述第五处理???804读取到的所述多个字节的响应数据存储到第二发送缓冲区;
    第二读取???807,用于在所述第二检测???801检测到所述智能卡寄存器的状态为读状态时,从所述智能卡寄存器中读取数据;
    第七判断???808,用于对所述第二读取???807读取到的数据进行判断,在判断出所述读取的数据为所述第二成功响应时,触发所述第二检测???801继续对所述智能卡寄存器的状态进行检测;
    第九处理???809,用于在所述第七判断???808判断所述读取到的数据为第二重传命令时,从所述第二发送缓冲区中读取所述多个字节的响应数据,根据读取到的所述多个字节的响应数据生成一个传输分组,将生成的传输分组存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测???801继续对所述智能卡寄存器的状态进行检测。
    相应地,上述模拟读卡器,还包括:
    第二校验???713,用于对所述第二处理???705读取到的传输分组进行校验,如果校验通过,则对所述传输分组进行解析,将解析得到的响应数据发送给所述指令收发器,生成第二成功响应,将所述第二成功响应存储到所述智能卡寄存器中,将所述智能卡寄存器的状态设置为读状态;如果校验未通过,则生成第二重传命令,将所述第二重传命令写入到所述智能卡寄存器中,将所述智能卡寄存器设置为读状态;
    具体地,上述第二校验???713,具体用于对所述第二处理???705读取到的传输分组进行解析,得到所述传输分组中的组尾字段所包含的差错检测码,根据所述传输分组中除所述差错检测码之外的其余数据计算检测码,判断计算得到的检测码是否与所述差错检测码相同,如果相同,则确定校验通过;否则,确定校验未通过。
    进一步地,上述芯片操作系统,还包括:
    第九判断???810,用于在所述第二检测???801检测到所述智能卡寄存器的状态为空闲状态时,判断所述APDU缓冲区中是否存储有响应数据,并在判断所述APDU缓冲区中没有存储响应数据时,触发所述第二检测???801继续对所述智能卡寄存器的状态进行检测;
    相应地,上述第五处理???804,具体用于在所述第二检测???801检测到所述智能卡寄存器的状态为空闲状态,且所述第九判断???810判断所述APDU缓冲区中存储有响应数据时,向所述智能卡寄存器写入所述响应数据,将所述智能卡寄存器的状态设置为写状态,并触发所述第二检测???801继续检测所述智能卡寄存器的状态。
    进一步地,上述芯片操作系统,还包括:
    第十判断???811,用于在所述第三处理???802将读取到的APDU数据存储到APDU缓冲区中后,判断是否需要继续接收数据,并在判断出需要继续接收数据时,触发所述第二检测???801继续对所述智能卡寄存器的状态进行检测;
    具体地,上述第十判断???811,具体用于判断所述APDU缓冲区中的数据是否为完整的APDU命令,如果是,则确定不需要继续接收数据,否则,则确定需要继续接收数据。
    相应地,上述第四处理???803,具体用于在所述第十判断???811判断不需要继续接收数据时,将所述APDU缓冲区中的数据作为APDU命令进行处理,将处理得到的响应数据存储到所述APDU缓冲区。
    本发明实施例通过软件开发系统中加载的模拟读卡器建立芯片操作系统与指令收发器之间的模拟通信,能够在不使用硬件仿真器件的情况下,达到向芯片操作系统输入终端数据的目的,扩展了仿真功能的范围,节省了硬件资源,且降低了仿真功耗。
    结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件???,或者二者的结合来实施。软件??榭梢灾糜谒婊娲⑵鳎≧AM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
    以上所述,仅为本发明的具体实施方式,但本发明的?;し段Р⒉痪窒抻诖?,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的?;し段е?。因此,本发明的?;し段вλ鲆匀ɡ蟮谋;し段?。

    关 键 词:
    一种 模拟 读卡器 工作 方法 通信 系统
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:一种模拟读卡器的工作方法和模拟通信系统.pdf
    链接地址://www.4mum.com.cn/p-5779124.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03