USB包组成五部分:
同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP)
设备请求命令
bmRequestType(1)+bRequest(1)+wvalue(2)+wIndex(2)+wLength(2)
我要问的是,设备请求命令 不属于 包 吗?
如果属于 包 那么 数据跟这些对不上的:同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP)
USB包组成五部分:
同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP)
设备请求命令
bmRequestType(1)+bRequest(1)+wvalue(2)+wIndex(2)+wLength(2)
我要问的是,设备请求命令 不属于 包 吗?
如果属于 包 那么 数据跟这些对不上的:同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP)
如果你是上层软件开发的话,SYNC, PID, CRC等字段不需要你管,一般由硬件自己完成的。
要做的是当来ep0的setup中断后,从rx FIFO中读取数据,这个数据就是bmRequest + bRequest + wValue + wIndex + wLength,然后你对这些数据做解析,
如果后面有数据要发送给usb主机,则将数据写到tx FIFO中等待发送。