加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > 技术文章

学USB的一点心得

时间:2012-12-06  来源:123485.com  作者:9stone

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技术不是很难,但需要广泛的知识和充足的时间,关键是要有数字通信的基础。


分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->技术文章
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门