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
1楼-- · 2019-12-26 01:51
NemoGu 发表于 2012-6-13 10:10
inf只是个文本文件而已, sys cat文件才是数字签名的载体

是这样子的,所以如果采用了虚拟串口,sys是系统自带的,但cat文件你是要用微软驱动签名软件做出来的。
benlypan_a
2楼-- · 2019-12-26 04:26
老板同意用hid了,谢谢大家的建议
chengying
3楼-- · 2019-12-26 08:15
 精彩回答 2  元偷偷看……
bbs2009
4楼-- · 2019-12-26 10:06
bbs2009 发表于 2012-6-13 10:27
LZ  要用 HID  就是 为了 免驱动。
既然 速度够用 就好。 LZ 看看 18 楼, 35 楼 的建议。 用 KEIL 的 HID ...

好的谢谢
NemoGu
5楼-- · 2019-12-26 11:40
NemoGu 发表于 2012-6-13 10:30
谢谢解答 不过我在XP/Win7下安装CDC没有遇到警告窗口

你系统安装情况有些不同,如果和我一样是来自z版XP SP3光盘(我们单位的企业授权版本)方式安装的话,usbser.sys是默认不会安装到系统目录的,而且我看过以前预装了XP系统的HP机器,同样是不带这个文件的。当时我做CDC时,得同时提供inf和sys文件,所以我觉得HID更方便。
驱动未签名却没有警告的原因,是你的系统注册表/组策略已经被修改过了,可能是某个驱动安装程序做的(为了让自己未签名驱动直接安装上去),如果是ghost版的话,也有默认就关闭的。原版XP和OEM XP默认是不会关闭这个警告的。
至于以前xp系统签名的制作,首先要用inf2cat根据inf、sys作出cat文件,然后用signtool和证书去给cat、sys及dll文件签名。不过自己签名出来的驱动还是会有警告的,因为自签名的根证书颁发者Root Agency是不受信任的,只有去过WHQL才行。
chengying
6楼-- · 2019-12-26 14:52
最近也在做STM32 CDC虚拟串口,windows上安装了st提供的驱动就可以了。但是windows识别到的是stm32虚拟的串口,请问怎么能通过修改,显示为普通的虚拟COMx呢?

一周热门 更多>