2 engolll engolll 于 2014.11.20 18:56 提问

USB协议疑问,USB包五部分与设备请求命令区分

USB包组成五部分:
同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP)

设备请求命令
bmRequestType(1)+bRequest(1)+wvalue(2)+wIndex(2)+wLength(2)

我要问的是,设备请求命令 不属于 包 吗?

如果属于 包 那么 数据跟这些对不上的:同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP)

1个回答

luckywang1103
luckywang1103   2015.04.15 16:07

如果你是上层软件开发的话,SYNC, PID, CRC等字段不需要你管,一般由硬件自己完成的。
要做的是当来ep0的setup中断后,从rx FIFO中读取数据,这个数据就是bmRequest + bRequest + wValue + wIndex + wLength,然后你对这些数据做解析,
如果后面有数据要发送给usb主机,则将数据写到tx FIFO中等待发送。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!