标识码有哪些?
如同前面所说的标识码由四位数据组成,因此可以表示十六种标识码,在USB1.1规范里面,只用了十种标识码,USB2.0使用了十六种标识码,标识码的作用是用来说明包的属性的,标识码是和包联系在一起的,首先简单介绍一下数据包的类型,数据包分为令牌包、数据、握手包和特殊包四种,标识码分别有以下十六种:
令牌包 :
0x01 输出(OUT)启动一个方向为主机到设备的传输,并包含了设备地址和标号
0x09 输入 (IN) 启动一个方向为设备到主机的传输,并包含了设备地址和标号
0x05 帧起始(SOF)表示一个帧的开始,并且包含了相应的帧号
0x0d 设置(SETUP)启动一个控制传输,用于主机对设备的初始化
数据包 :
0x03 偶数据包(DATA0),
0x0b 奇数据包(DATA1)
握手包:
0x02 确认接收到无误的数据包(ACK)
0x0a 无效,接收(发送)端正在忙而无法接收(发送)信息
0x0e 错误,端点被禁止或不支持控制管道请求
特殊包 0x0C 前导,用于启动下行端口的低速设备的数据传输
USB的编码方案?
USB采用不归零取反来传输数据,当传输线上的差分数据输入0时就取反,输入1时就保持原值,为了确保信号发送的准确性,当在USB总线上发送一个包时,传输设备就要进行位插入操作(即在数据流中每连续6个1后就插入一个0),从而强迫NRZI码发生变化。这个了解就行了,这些是由专门硬件处理的。