USB 最主要的的是要理解 USB主机发送命囹给设备设备要对主机的命令进行响应, USB通讯的基本单位为 “包” 理解好“包”这个概念是学习USB的关键所在
分别是令牌包、数据包、握手包和特殊包(其实是由PID决定的)
令牌包:可分为输入包、输出包、设置包和帧起始包(注意这里的输入包是用于设置输入命令的,输絀包是用来设置输出命令的而不是放据数的)其中输入包、输出包和设置包的格式都是一样的:
数据包:分为DATA0包和DATA1包,当USB发送数据的时候当一次发送的数据长度大于相应端点的容量时,就需要把数据包分为好几个包分批发送,DATA0包和DATA1包交替发送即如果第一个数据包是DATA0,那第二个数据包就是DATA1但也有例外情况,在同步传输中(四类传输类型中之一)所有的数据包都是为DATA0,格式如下:
握手包:结构最为簡单的包格式如下
下面举几个例子来说明USB的通讯过程:
1:主机想要向设备传送一串数据。 过程如下:
(1) 主机向从机发送 “令牌包”囹牌包的类型为输出包,表示主机要向从机发送数据了
(2) 主机向从机发送完令牌以后,USB处理器件根据发送的令牌会将中断状态寄存器标志置位,从机CPU通过查询USB处理器件的中断状态寄存器对主机的令牌包进行响应
(4) 从机准备好了,于是主机开始发送“数据包” 这时USB处理器件会自动将从主发送过来的数据放如它的内部缓冲区内,接收完这个数据包后从机向主机发送“应答包”
这就是一个完整的通訊过程。
由以上可以看出USB若是想要传送数据,那么主机必须先发一个 IN 或OUT的令牌包然后发送DATA0,或DATA1数据包
USB 最主要的的是要理解 USB主机发送命令给设备,设备要对主机的命令进行响应 USB通讯的基本单位为 “包” 理解好“包”这个概念是学习USB的关键所在。
分别是令牌包、数据包、握手包和特殊包(其实是由PID决定的)
令牌包:可分为输入包、输出包、设置包和帧起始包(注意这里的输入包是用于设置输入命令的輸出包是用来设置输出命令的,而不是放据数的)其中输入包、输出包和设置包的格式都是一样的:
数据包:分为DATA0包和DATA1包当USB发送数据的時候,当一次发送的数据长度大于相应端点的容量时就需要把数据包分为好几个包,分批发送DATA0包和DATA1包交替发送,即如果第一个数据包昰DATA0那第二个数据包就是DATA1。但也有例外情况在同步传输中(四类传输类型中之一),所有的数据包都是为DATA0格式如下:
握手包:结构最為简单的包,格式如下
下面举几个例子来说明USB的通讯过程:
1:主机想要向设备传送一串数据 过程如下:
(1) 主机向从机发送 “令牌包”,令牌包的类型为输出包表示主机要向从机发送数据了。
(2) 主机向从机发送完令牌以后USB处理器件根据发送的令牌,会将中断状态寄存器标志置位从机CPU通过查询USB处理器件的中断状态寄存器,对主机的令牌包进行响应
(4) 从机准备好了于是主机开始发送“数据包” 这時,USB处理器件会自动将从主发送过来的数据放如它的内部缓冲区内接收完这个数据包后,从机向主机发送“应答包”
这就是一个完整的通讯过程
由以上可以看出,USB若是想要传送数据那么主机必须先发一个 IN 或OUT的令牌包,然后发送DATA0或DATA1数据包。
USB主机向设备发送令牌包的时候接收令牌是有USB器件来完成的,而不是有从机CPU来完成的如主机发送一个如下的令牌:
USB器件回根据PID的类型来判断是哪种类型的令牌 根据ADDR嘚值来判断是否是和自己通讯,根据ENDP的值来判断是和哪个端点进行通讯根据校验来判断,数据传送是否无误根据以上的令牌包信息,USB器件会将其内部的中断状态寄存器相应的位置位从机CPU可以查询这个中断状态寄存器来进行相应的操作。
USB 最主要的的是要理解 USB主机发送命囹给设备设备要对主机的命令进行响应, USB通讯的基本单位为 “包” 理解好“包”这个概念是学习USB的关键所在
分别是令牌包、数据包、握手包和特殊包(其实是由PID决定的)
令牌包:可分为输入包、输出包、设置包和帧起始包(注意这里的输入包是用于设置输入命令的,输絀包是用来设置输出命令的而不是放据数的)其中输入包、输出包和设置包的格式都是一样的:
数据包:分为DATA0包和DATA1包,当USB发送数据的时候当一次发送的数据长度大于相应端点的容量时,就需要把数据包分为好几个包分批发送,DATA0包和DATA1包交替发送即如果第一个数据包是DATA0,那第二个数据包就是DATA1但也有例外情况,在同步传输中(四类传输类型中之一)所有的数据包都是为DATA0,格式如下:
握手包:结构最为簡单的包格式如下
下面举几个例子来说明USB的通讯过程:
1:主机想要向设备传送一串数据。 过程如下:
(1) 主机向从机发送 “令牌包”囹牌包的类型为输出包,表示主机要向从机发送数据了
(2) 主机向从机发送完令牌以后,USB处理器件根据发送的令牌会将中断状态寄存器标志置位,从机CPU通过查询USB处理器件的中断状态寄存器对主机的令牌包进行响应
(4) 从机准备好了,于是主机开始发送“数据包” 这时USB处理器件会自动将从主发送过来的数据放如它的内部缓冲区内,接收完这个数据包后从机向主机发送“应答包”
这就是一个完整的通訊过程。
由以上可以看出USB若是想要传送数据,那么主机必须先发一个 IN 或OUT的令牌包然后发送DATA0,或DATA1数据包