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

求USB驱动例程

[复制链接]
楼主: LuoR
手机看帖
扫描二维码
随时随地手机跟帖
61
huangqi412| | 2015-12-9 10:50 | 只看该作者 回帖奖励 |倒序浏览
LuoR 发表于 2015-12-8 15:13
我这边是要收发CAN报文,之前用CDC类来做的,但是BOSS觉得速度不行,叫做USB驱动,HID的应该也不行吧~ ...

CAN底层波特率才1M,  USB速度不要太富裕,伦家可是12M的身价哦,碾压你个1M小屌丝。  CDC本身速度理论不限,实际随便拿个片子轻松上500K字节大约等于5M,虽然可能连12M的一半都没用到,依然轻松碾压CAN屌丝,别说抱腿,让它脚跟都啃不到。         HID理论速度就限制了64K字节。。。

使用特权

评论回复
62
LuoR|  楼主 | 2015-12-9 10:51 | 只看该作者
huangqi412 发表于 2015-12-9 10:44
赶紧先把板子和代码扔下,读USB几个参数再说。   连USB,HID,CDC的包和速度参数都没瞄过就敲代码也是够可 ...

    是呀,感觉自己顶的帽子太大了,有些力不从心,毕竟之前一点没接触过,硬件也不懂,只是硬件给了个板子和JLINK,IDE也是现安装现学,之前看手册看到晕,主要是自己起步学这个,找不到具体的方向,不知道侧重点和突破口,遇到问题就会选择避让,因为不知道如何下手解决~
     读几个USB参数具体指什么,举几个例子

使用特权

评论回复
63
huangqi412| | 2015-12-9 10:53 | 只看该作者
CDC串口除了USB版本限制(12M)+芯片本身速度限制(比如500K字节)外,波特率是浮云,除非你做真USB转串口,波特率作用到UART_TX UART_RX硬件引脚。  假USB转串口就算你在PC用串口助手9600波特率通信,依然让你飚500K字节速度

使用特权

评论回复
64
LuoR|  楼主 | 2015-12-9 10:53 | 只看该作者
huangqi412 发表于 2015-12-9 10:40
搞定HID和CDC可以满足绝大多数需求了,花费精力非常小,  再想搞别的内容花费精力会增加,需求也不多。   ...

圈圈的那个书我初略的读了下,领悟不多,我用的IDE是KDS,还是比较懒惰,想直接找到相应的做参考,看来还是得精读,细细琢磨,不然时间也都是这么浪费掉的

使用特权

评论回复
65
huangqi412| | 2015-12-9 11:01 | 只看该作者
LuoR 发表于 2015-12-9 10:53
圈圈的那个书我初略的读了下,领悟不多,我用的IDE是KDS,还是比较懒惰,想直接找到相应的做参考,看来还 ...

让飞思卡尔那堆自己折腾的开发环境滚蛋吧, 说不定哪天又没了又折腾个新玩意出来。用主流的MDK/IAR比较好。KL25开发板带了一个CDC_DEMO.  得看手册才知道K22和KL25的模块是否兼容。 USB随便网上搜个博文,或者圈圈说都有讲USB基本的参数,基本的介绍。 如果你已经粗看过圈圈的书还说这话,我感觉这个项目你还是别做下去了。。。

使用特权

评论回复
66
LuoR|  楼主 | 2015-12-9 11:01 | 只看该作者
huangqi412 发表于 2015-12-9 10:50
CAN底层波特率才1M,  USB速度不要太富裕,伦家可是12M的身价哦,碾压你个1M小屌丝。  CDC本身速度理论不 ...

      之前进入误区,以为CDC就是按照波特率的设置进行传输,按照那个速率,后来读贴子发现CDC是按照USB的速率进行传输的,而波特率对其没有影响,只是在USB转串口的过程时起到作用,这才对这个速率有些感悟。
     就是说HID最大是64K,0.6M<CAN报文的1M,所以还是要用CDC,CAN底层波特率1M,这个我在手册里没有关注到,有相关资料吗,贴一下~

使用特权

评论回复
67
LuoR|  楼主 | 2015-12-9 11:04 | 只看该作者
huangqi412 发表于 2015-12-9 11:01
让飞思卡尔那堆自己折腾的开发环境滚蛋吧, 说不定哪天又没了又折腾个新玩意出来。用主流的MDK/IAR比较好 ...

不要这么打击我,我就花半天时间算是浏览,没领会书中精华,毕竟是一个人在搞,没人引路也是很头疼,在论坛和大侠们探讨起来学到的快的多,唉,能力有限,项目又不能不做~MDK/IAR也都没接触过,只能先用KDS,BOSS叫安装的这个我就现学的这个~

使用特权

评论回复
68
huangqi412| | 2015-12-9 11:05 | 只看该作者
LuoR 发表于 2015-12-9 11:01
之前进入误区,以为CDC就是按照波特率的设置进行传输,按照那个速率,后来读贴子发现CDC是按照USB ...

手册手册手册。。。重读,

使用特权

评论回复
69
huangqi412| | 2015-12-9 11:06 | 只看该作者
任何一个讲CAN模块的单片机手册都有这句  CAN 2.0A/B  UP TO 1M BIT/S

使用特权

评论回复
70
huangqi412| | 2015-12-9 11:11 | 只看该作者
LuoR 发表于 2015-12-9 11:04
不要这么打击我,我就花半天时间算是浏览,没领会书中精华,毕竟是一个人在搞,没人引路也是很头疼,在论 ...

鼓励吧。继续浏览圈圈书,熟悉USB参数和特性能纸上谈兵。  找个KL25例程包,看看USB模块是否兼容,兼容可以挪过来学习。不过我想K22本身例程包也带USB—CDC例程的,不用去找KL25例程包。学习例程结合实际了解USB_CDC   还是建议用MDK,大路货简单方便好用,别用那种他们自己搞的东西,这个别听BOOS的。

使用特权

评论回复
71
LuoR|  楼主 | 2015-12-9 11:12 | 只看该作者
huangqi412 发表于 2015-12-9 11:06
任何一个讲CAN模块的单片机手册都有这句  CAN 2.0A/B  UP TO 1M BIT/S

Programmable bit rate up to 1 Mb/sec 。找到了
我觉得从我接收这个任务,到现在,读英文手册的时候自己就没头绪,不知道该关注哪些部分,所以粗读了很多,但是又印象不深,用的时候感觉就是空的~唉~
对各位大神的技术碾压~真是膜拜~

使用特权

评论回复
72
LuoR|  楼主 | 2015-12-9 11:15 | 只看该作者
huangqi412 发表于 2015-12-9 11:11
鼓励吧。继续浏览圈圈书,熟悉USB参数和特性能纸上谈兵。  找个KL25例程包,看看USB模块是否兼容,兼容可 ...

       大侠果然霸气,官方有例程,现在我就处在看那些代码,模模糊糊的知道是干啥用的,但是叫自己编起来就废的状态。
       能和大侠做好友吗,非常喜欢和你交流,感觉一针见血,直刺我的软肋,不要嫌弃渣渣

使用特权

评论回复
73
huangqi412| | 2015-12-9 13:44 | 只看该作者
LuoR 发表于 2015-12-9 11:15
大侠果然霸气,官方有例程,现在我就处在看那些代码,模模糊糊的知道是干啥用的,但是叫自己编起 ...

:funk:  不敢当

使用特权

评论回复
74
zhanzr21| | 2015-12-9 13:45 | 只看该作者
CAN总线极限才有1M的速度, 但这不是你系统的速度.
虽然你自己也不清楚你的系统的速率, 但是我敢肯定你的系统达不到这个速度

其实我是想推荐你用HID方式, 这样对你开发难度, 最终用户使用 有很大的好处,省一堆麻烦

但是你总是说速率不够,但又不知道到底怎样才够, 导致我的思路被逼入死角

用HID的话, PC编程就是把设备当做文件打开, Write, Read, 就可以了, 还有想做的更智能一点,抓一抓设备插入,插出的Windows Message

用CDC的话, 波特率**于你ARM端的代码设置,PC端程序就是打开串口进行通信,其实也是读写,只不过这种例子更好找
其馀的通信模式, 先别看了,  把脑袋看得一头浆糊, 整个USB协议内容很多, 你现在这种基础,一步步来不是更好吗?

使用特权

评论回复
75
huangqi412| | 2015-12-9 13:49 | 只看该作者
LuoR 发表于 2015-12-9 11:15
大侠果然霸气,官方有例程,现在我就处在看那些代码,模模糊糊的知道是干啥用的,但是叫自己编起 ...

设置+状态+中断+读写

使用特权

评论回复
76
LuoR|  楼主 | 2015-12-9 14:39 | 只看该作者
zhanzr21 发表于 2015-12-9 13:45
CAN总线极限才有1M的速度, 但这不是你系统的速度.
虽然你自己也不清楚你的系统的速率, 但是我敢肯定你的系 ...

是的,以我的基础,一步一步能学起来就很知足了,就是说用HID进行传送的话,其实还是按照USB协议的速度走的,就不涉及波特率的问题了,这部分我在细节化的学习一下

使用特权

评论回复
77
zhanzr21| | 2015-12-9 14:57 | 只看该作者
准确应该说是USB HID协议 他是为求简化 人为的限制了传输速度 但是我觉得你的应用 用这个应该够
先从这个出发 不够再搞CDC
你应该能把这些跟你们老板一条一条解释清楚

使用特权

评论回复
78
LuoR|  楼主 | 2015-12-9 15:45 | 只看该作者
zhanzr21 发表于 2015-12-9 14:57
准确应该说是USB HID协议 他是为求简化 人为的限制了传输速度 但是我觉得你的应用 用这个应该够
先从这个出 ...

OK~

使用特权

评论回复
79
LuoR|  楼主 | 2015-12-9 16:35 | 只看该作者
zhanzr21 发表于 2015-12-9 14:57
准确应该说是USB HID协议 他是为求简化 人为的限制了传输速度 但是我觉得你的应用 用这个应该够
先从这个出 ...

有没有好的教学视频?

使用特权

评论回复
80
leihen0525| | 2015-12-14 13:07 | 只看该作者
这个功能我早就已经实现了,USB转CAN,不方便给你源代码,我使用的是libusb 开源驱动实现的,我发过帖子里面有做这个时候的几个关键性问题,如果你有兴趣可以参考一下,对新手来说,USB这部分太复杂了,

使用特权

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

本版积分规则