发新帖本帖赏金 2.00元(功能说明)我要提问
返回列表
打印
[技术问题解答]

求USB驱动例程

[复制链接]
楼主: LuoR
手机看帖
扫描二维码
随时随地手机跟帖
41
万利电子| | 2015-12-8 17:53 | 只看该作者 回帖奖励 |倒序浏览
LuoR 发表于 2015-12-8 17:13
你们这个是做外包的吧?我现在是想学习

学习的话HID和(或)CDC方式都不错,任何对设备的访问,对于PC端就open,write和read三个函数接口。

使用特权

评论回复
42
zhanzr21| | 2015-12-8 17:57 | 只看该作者
LuoR 发表于 2015-12-8 17:36
求大神帮我分析一下这个观点是不是可以解释虚拟串口~
MCU向PC发送的是USB协议的数据包,跟串口没有关系。。 ...

串口助手只是你调程序用的工具, 你PC机还是要自己写程序的。

其实搞了半天,你还是核心问题没有搞清楚, 就是到底什么速度能满足你需求。 这个问题搞不清楚, 别人也不知道怎么跟你分析,只能左一句右一句。

楼上的万利电子老兄说的是Bulk模式,这种其实比我说的同步模式还要快, 但是我觉得你这种CAN应用绝对不至于要用到那种模式. 而且Bulk模式搞驱动麻烦得很。

还有一位说的CDC提速, 这样也可以解决问题。但是不知道你甚么速度需求,怎么提速也不好讲。

现在争议在于速度怎样能满足需求, 需要你自己做个实验, 怎么做实验,我前面提出了我的初步思路。

如果你能把速率需求搞清楚, 那么使用哪种模式就很清晰了。现在就是没有搞清楚速率,所以大夥一人一句, USB应用模式好几种,每种都很复杂,够你搞一阵子的了。所以当务之急是搞清楚甚么样的速率达到要求, 不然这帖子再十大热门, 也都反覆说废话而已。

HID 模式: 最慢的模式,但是不需要另外搞驱动, Windows API就可以跟板子通信
CDC模式: 要搞个驱动, 速度可快可慢,最快的肯定超过HID, CAN,很多,  而且上下层都用串口来编程序,对于开发进度来讲很大优势。
中断控制, 同步模式: 不适应你的应用
Bulk模式:应该是最快的模式, 我觉得不适用你的应用。

本人强烈建议你做个实验,确定一下你需求的速率。

使用特权

评论回复
评论
LuoR 2015-12-9 09:06 回复TA
技术过硬,非常专业 
43
zhanzr21| | 2015-12-8 17:59 | 只看该作者
FSL_TICS_Jeremy 发表于 2015-12-8 17:40
没试过,免驱不太可能,因为PC会检查USB 设备的,不告诉PC机这是什么设备,就没有后面的正常通信了吧 ...

免驱肯定是不可能的, 只是说HID这种方式, 能够用系统自带的HID驱动,对于开发者来讲就是"免驱"了。

使用特权

评论回复
44
zhanzr21| | 2015-12-8 18:01 | 只看该作者
LuoR 发表于 2015-12-8 17:37
看了下,现在竟然是第1~

第一有甚么用, 不搞清楚你的问题关键所在, 这个问题永远是个悬案!

使用特权

评论回复
45
21ic小管家| | 2015-12-8 18:45 | 只看该作者
LuoR 发表于 2015-12-8 17:37
看了下,现在竟然是第1~

是的这个排名随时都在变。但是我们是有固定时间打赏的哦~

使用特权

评论回复
46
LuoR|  楼主 | 2015-12-9 08:32 | 只看该作者
21ic小管家 发表于 2015-12-8 18:45
是的这个排名随时都在变。但是我们是有固定时间打赏的哦~

gei it~

使用特权

评论回复
47
LuoR|  楼主 | 2015-12-9 08:34 | 只看该作者
fclmyl2 发表于 2015-12-8 17:11
你USB转串口方式 ,可以用 115200*4或*5倍的速度通信都可以这个相当快的 完全可以处理 好几个 CAN来的报文 ...

好的,受益匪浅,这部分一下懂得很多

使用特权

评论回复
48
LuoR|  楼主 | 2015-12-9 08:44 | 只看该作者
zhanzr21 发表于 2015-12-8 17:57
串口助手只是你调程序用的工具, 你PC机还是要自己写程序的。

其实搞了半天,你还是核心问题没有搞清楚,  ...

谢谢你这么具体的分析,很明确的指出了我的问题,这部分我还需要再明确一下,做出一套具体的解决办法来,关于速率问题我和BOSS在明确一下,最终看需要达到什么要求,然后在继续探讨,当然论坛就是一个探讨分享的平台,贴子热度排名并不重要。

使用特权

评论回复
49
LuoR|  楼主 | 2015-12-9 08:46 | 只看该作者
万利电子 发表于 2015-12-8 17:53
学习的话HID和(或)CDC方式都不错,任何对设备的访问,对于PC端就open,write和read三个函数接口。
...

谢谢万利~

使用特权

评论回复
50
LuoR|  楼主 | 2015-12-9 09:21 | 只看该作者
zhanzr21 发表于 2015-12-8 17:57
串口助手只是你调程序用的工具, 你PC机还是要自己写程序的。

其实搞了半天,你还是核心问题没有搞清楚,  ...

我先接着问一点,就当先给我科普一下,这个CDC提速,我比较关注,因为之前参考例程就是CDC相关的。
1.提速只是简单的改写下位机和PC端的波特率就能达到更高的速率吗?
2.CDC模式下的驱动及官方提供的或者网上下载的inf文件,它本身的设计的不同也同样会影响到速率吧?
3.之前考虑过中断传输,还有bulk模块,为什么不适合我的应用?是它们速率太高,没必要应用到我这个上面吗
4.用CDC做的话,我上位机用VC做一个串口接收就可以,那如果改成非CDC的,自己在ARM里写代码来发送,上位机的抓包同样用VC来做,就应该按照@万利电子说的那样用read write  API函数吧 ,这时候USB的识别就不是靠COM口了,那么上位机怎么识别到这个USB应用?

使用特权

评论回复
51
LuoR|  楼主 | 2015-12-9 09:23 | 只看该作者
万利电子 发表于 2015-12-8 17:53
学习的话HID和(或)CDC方式都不错,任何对设备的访问,对于PC端就open,write和read三个函数接口。
...

用CDC做的话,我上位机用VC做一个串口接收就可以,那如果改成非CDC的,自己在ARM里写代码来发送,上位机的抓包同样用VC来做,就应该用read write  API函数吧 ,这时候USB的识别就不是靠COM口了,那么上位机怎么识别到这个USB应用?

使用特权

评论回复
52
LuoR|  楼主 | 2015-12-9 09:26 | 只看该作者
fclmyl2 发表于 2015-12-8 17:11
你USB转串口方式 ,可以用 115200*4或*5倍的速度通信都可以这个相当快的 完全可以处理 好几个 CAN来的报文 ...

1.提速只是简单的改写下位机和PC端的波特率就能达到更高的速率吗?
2.CDC模式下的驱动及官方提供的或者网上下载的inf文件,它本身的设计的不同也同样会影响到速率吧?

使用特权

评论回复
53
FSL_TICS_Jeremy| | 2015-12-9 09:48 | 只看该作者
LuoR 发表于 2015-12-9 09:26
1.提速只是简单的改写下位机和PC端的波特率就能达到更高的速率吗?
2.CDC模式下的驱动及官方提供的或者网 ...

inf应该不会影响速度,个人觉得inf就像原来的介绍信一样,告诉PC机,我是谁,我要做什么工作吧,提醒一点,FSL提供的inf文件只是用于测试代码,不可应用于实际产品中,不然出现连接不稳定或者发生接收,发生问题,自行负责。

使用特权

评论回复
54
LuoR|  楼主 | 2015-12-9 09:54 | 只看该作者
FSL_TICS_Jeremy 发表于 2015-12-9 09:48
inf应该不会影响速度,个人觉得inf就像原来的介绍信一样,告诉PC机,我是谁,我要做什么工作吧,提醒一点 ...

这样呀,就是说一个成熟的应用,其实是要自己开发一个INF,之前我把第二种方法和USB驱动搞混了,USB驱动就是针对上位机的“介绍信”,起到识别应用的作用

使用特权

评论回复
55
huangqi412| | 2015-12-9 10:30 | 只看该作者
LuoR 发表于 2015-12-8 14:10
HID不是人工设备嘛,可以应用于传数据吗?我也是初学者,不是很明白

任何USB设备难道不是用来通信的么  通信难道不传数据可以完成么。

使用特权

评论回复
56
huangqi412| | 2015-12-9 10:31 | 只看该作者
哈,发现肥死卡尔名字都改成娘希匹了

使用特权

评论回复
57
LuoR|  楼主 | 2015-12-9 10:38 | 只看该作者
huangqi412 发表于 2015-12-9 10:30
任何USB设备难道不是用来通信的么  通信难道不传数据可以完成么。

嗯嗯~你说的对,但是我想实现的是特定的报文发送

使用特权

评论回复
58
LuoR|  楼主 | 2015-12-9 10:38 | 只看该作者
huangqi412 发表于 2015-12-9 10:31
哈,发现肥死卡尔名字都改成娘希匹了

现在简称牛叉P了~

使用特权

评论回复
59
huangqi412| | 2015-12-9 10:40 | 只看该作者
LuoR 发表于 2015-12-9 10:38
嗯嗯~你说的对,但是我想实现的是特定的报文发送

搞定HID和CDC可以满足绝大多数需求了,花费精力非常小,  再想搞别的内容花费精力会增加,需求也不多。   HID和CDC例子参考圈圈的书和各厂家的例程,自己做实验,很快的。

使用特权

评论回复
60
huangqi412| | 2015-12-9 10:44 | 只看该作者
LuoR 发表于 2015-12-8 14:43
HID速度能达到多少,之前用虚拟串口达不到要求,所以才要做USB驱动的

赶紧先把板子和代码扔下,读USB几个参数再说。   连USB,HID,CDC的包和速度参数都没瞄过就敲代码也是够可怕的。   这跟连K22的供电电压都没看就直接上电一样吓人。

使用特权

评论回复
发新帖 本帖赏金 2.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则