RSS订阅 | 匿名投稿
您的位置:网站首页 > 服务支持 > 正文

USB CCID理解

作者:habao 来源: 日期:2018-5-11 13:25:18 人气: 标签:智能卡设备枚举服务

  MJL007:你好,请问你的智能卡用在什么系统上的?我现在要开发一款USB CCID协议的智能卡,要用在Andr...

  然后就特别的困惑,这个50 03的中断是哪里来的?虽然知道是读卡器告诉主机,有卡片动作,但是我明明没有插卡和拔卡的动作呀?想了好久,今天找资料,在网上看到如下:

  CCID模型假设一个ICC被或者可以被插入到设备。这就是slot change中断消息的目的。

  (这是我今天看到的最为的一句话,对呀,CCID规范中,还有两个中断信息,怎么就没想到???)

  控制管道消息用来控制一个USB设备。这些消息包括标准请求,例如GET_DESCRIPTOR和SET_CONFIGURATION。命令经由默认管道发送,报告信息也经由默认管道返回给主机。如果产生了一个错误,它会产生一个标准的USB错误状态。

  CCID模型在中断管道处理异步事件。ICC在线,ICC移除或者硬件错误比如电流太大,这些经由这个管道送出。

  中断管道对于一个支持ICC插入/移除的CCID是强制的。对于一个只插入没有移除的ICC是可选的。

  CCID命令经由BULK-OUT端点发出。每个发送给CCID的命令都有一个相应的响应。一些命令也有过程响应。这些响应从BULK-IN端点发送。

  所有发送给指定CCID槽位的命令都必须同步发送。一个指定的槽位同时只能接受一条命令。如果一个槽位准备好接受一个新命令那么就认为它是空闲的。

  CCID在与主机的底层交互的dwFeatures字段声明TPDU、APDU(短或扩展)或者字符。

  当USB总线挂起时,CCIDs不要求掉电插入的ICCs,但是可以这样做。然而,当USB总线恢复后,CCIDs必须响应给主机好像所有的已经插入的ICCs都掉电并被新插入。

  这个值是下面值的按位与:00000000h – 没有直到那个的特性00000001h – 卡接受机制

  不管是USB设备还是USB接口,都会被注册到同一个bus上,也就是usb_bus_type,其之间的区别会在match函数中区分,之后再去绑定不同的driver。 当一个USB设备被插入的时候,USB设备驱动,也就是usb_generic_driver会跟USB设备交互,得到其所有的各种描述符,并为每个接口都定义成为一个device,之后再加载到usb_bus上,让其去匹配其对应的接口驱动程序。

  

读完这篇文章后,您心情如何?
0
0
0
0
0
0
0
0
本文网址: