如何定义usb传输数据的封装格式
发布网友
发布时间:2022-05-14 10:03
我来回答
共1个回答
热心网友
时间:2023-10-13 13:56
USB传输方式
1.块传输:适合对速度没要求,传输数据量大的设备
每个数据包长度高速的时候为512字节,低速设备最大64个字节;用 于主机与USB设备之间的批量数据传输,通常一次块传输需要分解成若干个块传输事务。显然,一次块传输的方向是单一的,对主机而言,要么是输入,要么是输 出。因此,一次块传输是由若干个IN事务或由若干个OUT事务组成的。对 于要进行输入的块传输,一般要执行若干个IN事务。每执行一个IN事务时,主机都首先发出IN令牌包。设备端点收到后做出响应,一般是回送一个数据包。如 果不能回送数据,则回送NAK包或STALL包。NAK表示设备暂时不能回送数据;STALL表示端点一直停着或需要IJSB系统软件进行干预;如果主机 收到合法数据包,则回以ACK握手包;如果主机在接收数据时发现有错,则不给设备任何回音。
对于要进行输出的块传输,一般要执行若干个 OUT事务。每执行一个OUT事务时,主机都首先发出OUT令牌包,接着发出数据包。设备在收到数据包后,根据情况回以握手包;回以ACK表示数据已接收 无误,并通知主机可开始下一个0UT事务,以便传送下一个数据包;回以NAK表示数据已接收无误,但是主机不要再送数据,因为设备暂时不能接收(如缓冲区 满);如果端点已终止,则回以STALL,通知主机不要再重发数据,因为设备出现了故障;如果接收时出现CRC校验错,则不发任何握手包。如果需要输入、输出同时进行,则需要使用2个端点。