sdjifeng
驱动牛犊
驱动牛犊
  • 注册日期2003-03-29
  • 最后登录2006-03-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:25940回复:75

学USB的一点心得

楼主#
更多 发布于:2003-04-27 21:12
         学USB的一点心得
作者:jifeng       EMAIL:   jifenghome@163.net        jifenghome@tom.com

1目标:用USB取代232。
     原因:1、提高速度,2、适应没有232的电脑笔记本,3、上档次。

2知识点:
    1、USB协议,比起232协议难多了,需要数字通信的基础,难。
    2、USB接口器件的硬件知识和编程,硬件易懂,编程难。  
    3、PC的驱动程序和编程。编驱动极难,厂商通常提供,仅特殊情况时要自己编。
编程用API函数,通常有VC的例子,较难。

3方案:
    1、买世面上出售的232<=>USB线,>100RMB。好处是不用任何学习,但速度提高不多。
用的是一个USB-232的片子,软件是安装一个驱动,就会多出一个Com3来,
实际上也就是USB,然后你照操作普通串口的方式去操作它就很容易了。
    2、用一个USB-232的芯片自己作,比如FTDI公司的FTDI232A。大量应用才有必要。
    3、用其他的USB芯片,那么PC端的程序一定要改动,但是速度可以做得很高。
USB芯片分两类,一种内含MCU例如EZ―USB,另一种不含MCU例如PDIUSBD12。
后一种的开发费用低。线路板一般需要改动,单片机的程序一般也要改。    

4我的方案:
      将d12+89C52放在一个小线路板上,用以取代MAX232。好处是可以塞进现用的机箱
(^_^我的机箱大),并可以继续使用光藕隔离。原有线路板就不用改动了,单片机的程序也不用改
(我把串口速率提高为128000)。 PC那里用软件调用一个DLL(周立功公司作的,速度15KB/s),
仅仅四个函数,很简单的。速度(下行)达到8KB/s,够我用的。试验已经成功了,马上要去做板了。
××谁想要的话告诉我,我可以顺便多作几个。你自己焊上元件就能用它当个试验板,
不过体积小,用起来不一定舒服。

5速度:
        对于USB来说8KB/S的速度是很慢的,USB1.1版速度可达900KB/s。
但是对于89C52的串口来说,这已经很快了(如果是上行难度更大),如果不涉及到串口,
89C52(24MHZ)的通信速度至少可达80KB/s。想再快就要用其他的MCU,比如AVR的8515。
PC机那边要用API函数来作,或者干脆自己用API写一个DLL出来,这样以后使用
比较方便。

6价格:
       D12要20元,89C52要8元,两个晶振(6M、24M),几个小电阻,几个小电容,
一根USB线,一块板,合计大约50元,同时少用一个MAX232和串口线可以省去几元。
如果我当年把D12设计到我的大线路板上价格会更低一些,当然使用一个同MCU控制他的
的代码要增加4K。D12的价格较低且开发设备费低,所以我选它,但是它的PCB封装
在PROTEL里没有,要自己画。

7隔离:
       我的方案最大的好处是隔离,因为用串口传输仅仅要两个光藕,同时小板上的
器件由USB供电,两板之间完全电气隔离。

8即插即用:
        我的设计仍要用驱动,虽然仅仅安装一次,但仍不够酷。其实可以用HID技术,
来实现即插即用,速度可达64KB/S,USB键盘、USB鼠标就用的此技术。等我以后有空时,
自己写一个基于HID的DLL,用起来岂不很酷。

9难度:
      USB开发涉及的相关知识很多,所以难度较大。以我自己的D12开发为例,
需要数字通信,VC++6.0编程,89c51的C编程,API,多线程,等知识。

10工具:
 1、一块 USB SMART 开发板
 2、操作系统Windows 98以上
 3、要求安装VC++ 6.0 和 DDK
 4、89C52的编程器
 5、Keil C或其他C编译器

11结论:
单纯使用USB技术不是很难,但需要广泛的知识和充足的时间,关键是要有数字通信的基础。
欢迎大家来信与我讨论USB技术,最后预祝大家早日在自己的产品里用上USB技术,
届时要将好消息告诉我吆。  

最新喜欢:

lqpcnlqpcn litcrazylitcra... bfirebfire
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-04-27 22:39
不错,可以给ABC以不少指导。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
xiao叮当一号
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2003-06-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-01 10:31
前辈,您的帖子给了我很大的信心。因非典,我的毕设用的usb smarrt开发板一直买不到,有了前辈的足迹,就是黑夜的航标,晚辈有礼了!
请大家多多指教!! 拜托!!
xiongying
驱动牛犊
驱动牛犊
  • 注册日期2003-04-25
  • 最后登录2003-05-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-02 22:45
小弟现在已经是深切的体会到学懂学精一门知识(目前就是指弄懂驱动的机制以及自己做驱动 ;))真的是很难,但我同时也深受鼓舞,谢谢老大指点!我有动力了! :D
maomaochongpymt
驱动牛犊
驱动牛犊
  • 注册日期2002-12-13
  • 最后登录2003-05-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-04 20:40
 大虾,我做的usb也较酷,就是速度慢,有高招吗?
bluestaring
驱动牛犊
驱动牛犊
  • 注册日期2002-12-25
  • 最后登录2006-08-23
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-05 18:19
遥想当年,偶亦一USB懵懂少年,后购YANYANG开发板,始初通此道,后几番改良,换DDK驱动,固件以汇编加速,速度至400KB,今读老兄帖,同感颇多,忽忆苏芮歌曰:“因为路过你的路,因为苦过你的苦……”,路漫漫,与兄共勉。
IT的冬天到了,春天还会远吗?
flyycs
驱动牛犊
驱动牛犊
  • 注册日期2003-03-31
  • 最后登录2007-12-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-05 20:51
我也要做PCI的驱动程序,高手也给我一份吧,非常感谢。
flyycs@eyou.com
luchang
驱动牛犊
驱动牛犊
  • 注册日期2003-04-30
  • 最后登录2003-05-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-06 11:15
如果能再告诉我做USB的MODEM驱动还需要什么知识就好了啊。
目前有这么一个项目,没搞过驱动的我该怎么对付它啊! :(
sdjifeng
驱动牛犊
驱动牛犊
  • 注册日期2003-03-29
  • 最后登录2006-03-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-05-06 14:10
谢谢大家的厚爱!我可不是高手,仅仅是有点心的胡乱讲讲罢了。大家问我要板子,我也想给大家,但它是不能用Emill发给大家的呀。我也刚入此道不久,有些朋友的问题我也答不上来。但我想经过自身的努力,大家一定可以克服困难的。
\"usb smarrt开发板一直买不到\",不会吧,我可以给你一个图,你自己作。
没用的卡百利
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-05-07 13:24
好的 :P
cuit_steel
驱动牛犊
驱动牛犊
  • 注册日期2003-05-09
  • 最后登录2003-05-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-05-09 11:22
楼上的朋友你们好:
    开发d12接口板,怎么可以实现 与优盘的实时存储。
    多多赐教。
wj5459
驱动牛犊
驱动牛犊
  • 注册日期2003-05-09
  • 最后登录2003-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-05-09 21:00
说USB2.0速度能达到480Mbps,实际上能达到这个速度么?实际速度都是根那些因素有关呢?请教各位大虾
lbcat
驱动牛犊
驱动牛犊
  • 注册日期2002-03-19
  • 最后登录2007-09-27
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-05-09 22:29
    480mbps只是理论上的吧(12mbps×40??)我想实际上只能接近
这个速度。
    楼顶那位兄弟能否介绍一下用d12作接口芯片时提高传输速度的
经验吗?我现在用d12+msp430,传输极限速度才100来kb/s,我想应该远不至此的,毕竟430是用8M晶振的,不知是不是pc端的程序不够
优化(驱动是用周立功评估板的驱动,应用程序自己开发的),请
各位高手指教一下!!
             :D
lgsky
驱动牛犊
驱动牛犊
  • 注册日期2003-01-04
  • 最后登录2003-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-05-15 12:03
一般达不到480 吧
sdjifeng
驱动牛犊
驱动牛犊
  • 注册日期2003-03-29
  • 最后登录2006-03-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-05-15 19:10
理论上是425.984MB/S
rmr0427
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2003-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-05-15 23:33
不错?
jec017
驱动太牛
驱动太牛
  • 注册日期2002-08-22
  • 最后登录2008-01-09
  • 粉丝0
  • 关注0
  • 积分91分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-05-16 10:18
说那么多都不到点子上,
检重要的技术细节说就行了‘
何必如此罗嗦。 :P
Landway
驱动牛犊
驱动牛犊
  • 注册日期2003-05-16
  • 最后登录2005-06-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-05-16 16:28
请教PDIUSBD12可以直接由串口转成USB吗?能不能给我发一份原理图?
qinlong
驱动牛犊
驱动牛犊
  • 注册日期2003-03-24
  • 最后登录2009-02-01
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-05-18 19:58
能给我一份你的设计资料吗?非常感谢你了!我也想学习。
qinlong@vip.sina.com
sdjifeng
驱动牛犊
驱动牛犊
  • 注册日期2003-03-29
  • 最后登录2006-03-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-05-19 23:15
请教PDIUSBD12可以直接由串口转成USB吗?
答:我先用C52接受,然后用C52的串口发.
其实,D12还是用并口方式通信较好,我的做法其实没有发挥出他的速度.
上一页
游客

返回顶部