CCID协议学习资料.docx_第1页
CCID协议学习资料.docx_第2页
CCID协议学习资料.docx_第3页
CCID协议学习资料.docx_第4页
CCID协议学习资料.docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

名词解释 CCID: Integrated Circuit(s) Cards Interface Device ICC: Integrated Circuit(s) Cards这两天在调CCID的代码,厂家给的Demo,卡片的功能还没有完全调通,但是Demo可以上电成功,并且在USB设备上电枚举之后,自动发送了一个中断,如下所示。然后就特别的困惑,这个50 03的中断是哪里来的?虽然知道是读卡器告诉主机,有卡片动作,但是我明明没有插卡和拔卡的动作呀?想了好久,今天找资料,在网上看到如下:概述当一个CCID插入USB host时,它可以有或者没有一个插入的ICC。CCID模型假设一个ICC被或者可以被插入到设备。这就是slot change中断消息的目的。(这是我今天看到的最为感动的一句话,对呀,CCID规范中,还有两个中断信息,怎么就没想到?)CCID功能特性通信管道控制管道控制管道消息用来控制一个USB设备。这些消息包括标准请求,例如GET_DESCRIPTOR和SET_CONFIGURATION。命令经由默认管道发送,报告信息也经由默认管道返回给主机。如果产生了一个错误,它会产生一个标准的USB错误状态。中断管道CCID模型在中断管道处理异步事件。ICC在线,ICC移除或者硬件错误比如电流太大,这些经由这个管道送出。中断管道对于一个支持ICC插入/移除的CCID是强制的。对于一个只插入没有移除的ICC是可选的。块进,块出管道CCID命令经由BULK-OUT端点发出。每个发送给CCID的命令都有一个相应的响应。一些命令也有过程响应。这些响应从BULK-IN端点发送。所有发送给指定CCID槽位的命令都必须同步发送。一个指定的槽位同时只能接受一条命令。如果一个槽位准备好接受一个新命令那么就认为它是空闲的。协议和参数选择CCID在与主机的底层交互的dwFeatures字段声明TPDU、APDU(短或扩展)或者字符。TPDU层交互对于PPS交互的TPDU格式如下:TPDU命令:FF PPS0 PPS1 PPS2 PPS3 PCK, with PPS1, PPS2, PPS3 optional ISO/IEC7816-3 7TPDU应答:FF PPS0_R PPS1_R PPS2_R PPS3_R PCK_R, with PPS1_R, PPS2_R, PPS3_R optional ISO/IEC7816-3 7.4)APDU层交互APDU命令和应答定义在ISO 7816-4。定义了两种APDU层,短APDU和扩展APDU,这些定义在ISO/IEC 7816-4 5.3.2。字符层交互当TPDU、短APDU或者扩展APDU都没选择时,字符层交互被选中。对于主机和CCID之间的字符层交互,CCID支持与ICC的异步字符交互。挂起行为当从一个挂起的USB恢复时,主机/驱动假设所有的ICC都是不活动的(掉电)。当USB总线挂起时,CCIDs不要求掉电插入的ICCs,但是可以这样做。然而,当USB总线恢复后,CCIDs必须响应给主机好像所有的已经插入的ICCs都掉电并被新插入。在恢复后,CCID会做下面两件事(没有特定是顺序): 发送RDR_to_PC_NotifySlotChange消息告知驱动那个槽位有新插入的卡 CCID会重新恢复ICCs为有效如果这个CCID有“自动启动当插入”特性或者收到来自启动的PC_to_RDR_IccPowerOn消息。注意:当重新恢复时,所有的槽位参数立即恢复为默认。标准USB表述设备详见Universal Serial Bus Specification中第九章“USB Device Framework”。配置详见Universal Serial Bus Specification中第九章“USB Device Framework”。界面偏移字段大小值描述0bLength109h这个描述的字节大小1bDescriptorType104hINTERFACE描述类型2bInterfaceNumber1Number这个界面的数量3bAlternateSetting1Number4bNumEndpoints102h03h这个界面使用的端点数量(除了端点0)对于CCID02h 使用bulk-IN和bulk-OUT03h 使用bulk-IN、bulk-OUT和interrupt-IN5bInterfaceClass10Bh智能卡设备类6bInterfaceSubClass100h子类码7bInterfaceProtocol100h协议码对于CCID00h8iInterface1Index这个界面的索引智能卡设备类描述智能卡设备类描述表定义了一些设备属性或者功能偏移字段大小值描述0bLength136h这个描述的字节大小1bDescriptorType121h功能描述类型2bcdCCID20110hCCID以二进制编码的十进制指定版本号码例:2.10是0210h4bMaxSlotIndex1设备上最高可用槽位的序号。所有槽位起始于00h例:0Fh为设备上有从00h到0Fh共16个槽位5bVoltageSupport1表示CCID可以支持的槽位电压。这是一个按位或运算01h 5.0V02h 3.0V04h 1.8V6dwProtocols4RRRRPPPPRRRR 高字 预留 = 0000hPPPP 低字 支持的协议类型0001h = T00002h = T110dwDefaultClock4默认ICC时钟频率,单位KHz。例:3.58MHz为3580(00000DFCh)14dwMaximumClock4ICC支持的最大时钟频率,单位KHz。18bNumClockSupported1CCID支持的时钟频率个数。如果值为00h,时钟频率和dwDefaultClock定义的一样和dwMaximumClock定义的最大频率。19dwDataRate4默认ICC I/O波特率。例:9600编码为9600(00002580h)。23dwMaxDataRate4ICC I/O支持的最大波特率。例:115.2Kbps编码为115200(0001C200h)。27bNumDataRatesSupported1CCID支持的波特率个数。28dwMaxIFSD4CCID T1的最大IFSD。32dwSynchProtocols4RRRRPPPP=00000000hRRRR- 高字 默认为0000hPPPP 低字 支持的协议类型0001h 支持两线协议0002h 支持三线协议0004h 支持I2C协议注: CCID不支持这些协议所以PPPP = 0000h。36dwMechanical400000000h00000008h这个值是下面值的按位与:00000000h 没有直到那个的特性00000001h 卡接受机制00000002h 卡移除机制00000004h 卡捕获机制00000008h 卡加锁/解锁机制40dwFeatures4xxxxxxxxh这个值指明CCID有什么智能的特性。这个值为以下值的按位与: 00000000h 没有指定的特性 00000002h 根据ATR数据自动配置参数 00000004h 插入时自动使能ICC 00000008h 自动选择ICC电压 00000010h 自动根据主机提供的或自测试的有效参数改变ICC始终频率 00000020h 自动根据主机提供的或自测试的有效参数改变波特率 00000040h 00000080h 00000100h 00000200h 00000400h 00000800h 00001000h 00002000h 00004000h 00008000h 44dwMaxCCIDMessageLength448bClassGetResponse149bClassEnvelope150wLcdLayout2XXYYh52bPINSupport100h-03h指明CCID支持PIN什么特性。这个值是下面值的按位与:01h 支持验证PIN02h 支持修改PIN53bMaxCCIDBusySlots101h-FFh最多可以同时忙的槽位的个数CCID端点除了一个默认(控制)端点CCID至少支持2个端点,一个是bulk-out,一个是bulk-in。报告ICC插入或移除的CCID也必须支持一个interrupt端点。端点方向选项定义Bulk OUTOUT必须CCID命令管道Bulk ININ必须CCID应答管道InterruptIN可选CCID事件通知管道Bulk-OUT端点Bulk Out端点用来发送命令和传送从主机到设备的数据偏移字段大小值描述0bLength107h这个描述的字节大小1bDestriptorType105h端点描述类型2bEndpointAddress101-0Fh这个USB设备的端点地址。这个地址为1到15Bit 0.3 端点号Bit 4.6 预留,必须为0Bit 7 0 = Out3bmAttributes102h这是一个Bulk端点4wMaxPacketSize20xyzh最大传输数据大小可以为8,16,32,64或者512字节6bInterval1Number对全速:忽略对高速:这个值为0到255Bulk-IN端点Bulk In端点用来发送响应和发送从设备到主机应答接受命令管道的回复数据。偏移字段大小值描述0bLength107h这个描述的字节大小1bDestriptorType105h端点描述类型2bEndpointAddress181-8Fh这个USB设备的端点地址。这个地址为1到15Bit 0.3 端点号Bit 4.6 预留,必须为0Bit 7 1 = In3bmAttributes102h这是一个Bulk端点4wMaxPacketSize20xyzh最大传输数据大小可以为8,16,32,64或者512字节6bInterval1Number对全速:忽略对高速:这个值为0到255Interrupt-IN端点中断端点对于一个支持ICC插入/移除的CCID是必须的。对于一个经常插入ICC而不移除的CCID是可选的。如果有一个Interrupt-In端点,那么需要RDR_to_PC_NotifySlotChange消息并且偏移字段大小值描述0bLength107h这个描述的字节大小1bDestriptorType105h端点描

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论