关于C#:如何识别USB ISO-Transfer中用于CRC(校验和)的数据字节?

 2021-04-09 

How to identify the data bytes used for CRC(checksum) in an USB ISO-Transfer?

我正在使用libusb从USB音频设备实时获取数据。我的最大数据包大小为196字节。我知道该字节中的4个被添加为校验和。我想确定用于校验和的字节,因此我只能存储传输的有用数据,但是我有一些疑问:

1)这些字节是在数据包的开头还是结尾添加的?

2)这些字节是否有保留值?

3)如果在传输中丢失一些数据字节。对于用于校验和的字节,应该使用哪些注意事项?

编辑1

我有这些疑问,因为我的特定设备具有一个接口和alt设置,可以以48 KHz的采样率,2个通道,16位深度和196字节的最大数据包大小工作。

因此有48个样本* 2个通道中的2个* 2字节= 192字节

因此,我的数据包应该为192字节,但是当我将设备设置为与该接口一起使用并进行alt设置时,我开始接收196字节的数据包。
OUT ISO端点的相应接口和替代设置以48 KHz的采样率,2个通道,16位深度,最大包大小为192字节工作。

4)如果这些字节不是来自校验和,为什么要添加这些字节?


enter