usb的cdc通信和hid通信

2019-12-21 12:10发布

用usb把从can总线收到的数据传到PC,系统对速度要求不是很苛刻。下位机我把cdc虚拟串口和hid通信都调通了。现在问题是选用哪种通信方式?在调试cdc虚拟串口时,调试助手会因为系统复位而死机,所以用cdc通信,若调试助手(上位机俺不懂,要招人来编)自己编写是否能解决串口死机?用hid也要自己编写上位机,不过它能完全实现即插即用,只要上位机不关掉,对系统断电再上电上位机都能恢复通信。在全速系统,hid和cdc每包都是64字节,速率hid最快也能到64K,够我们系统用,老板觉得cdc是通信类,应该用cdc通信比较合适,但虚拟成串口用,串口号不一定每次都一样,所以他让我看看cdc类是否可以不虚拟成串口而与下位机通信的例子?当然上位机界面我们会自己编写。哪位高手帮忙分析一下?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
54条回答
NemoGu
2019-12-24 12:24
我总结一下:Windows把CDC/HID设备作为系统内置的支持。所以都是使用系统内置的驱动。这样的话,就无法使用libusb来控制。WindowsXP下,所有的USB设备都需要驱动,如果使用CDC驱动的话,就可以作为USB<==>串口设备使用,如果使用libusb生成的驱动的话,就可以使用libusb操作。也就是说上位机不写usb驱动就必须把cdc虚拟成串口,若用libusb自己写驱动就可以不当串口使用?

一周热门 更多>