将串行应用移植到USB接口的简便方法.docVIP

将串行应用移植到USB接口的简便方法.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
将串行应用移植到USB接口的简便方法 作者:Microchip Technology Inc. Lucio Di Jasio?? 时间:2008-04-02??来源:电子产品世界?? 浏览评论   您是否注意过最新款笔记本电脑的端口? 如果注意过,那么就会发现过去的真实COM端口没有了。 事实上,最有可能的是原来串口所在位置现在是几个USB端口。 USB总线的设计初衷就是要取代PC机上大多数(如果不是所有的话)传统端口。 当然,由于有很多支持USB的单片机和接口器件,因此对于嵌入式设计人员来说,没有COM端口并不会带来障碍。 只要选择正确的工具和软件解决方案,那么转移到USB可以是非常简单的事情。   硬件补丁解决方案   对那些需要为基于串行端口的老项目提出快速解决方案的设计工程师来说,开始最有吸引力的一种策略是采用一种补丁系统。 这可通过在嵌入式控制器串行接口与PC机USB连接器之间增加一个专用USB-UART转换器来实现。 此类器件通常配有支持各种操作系统的定制驱动程序,可以完全仿真一个标准的串行端口。 这种方法需要重新设计嵌入式应用电路板以腾出空间容纳新的元件,但它不用改变固件和PC应用程序。 拆除了已证明无用的串行端口接收器,而增加的成本只有几美元。两者基本可以抵消,但这样做却失去了采用USB所带来的大部分好处。 事实上,USB能够支持更快的数据传输速度,可达到典型串行端口的100倍(12 Mbps与115 kbps),继续使用UART,实际上会成为设计的主要瓶颈。 此外,由于大部分USB-UART接口器件缺乏灵活性,无法实现灵活的电源管理,而这在许多嵌入式设计中是一个关键特性。   单芯片解决方案   从串行端口转移到USB,更好的硬件选择是采用单芯片解决方案,即选用具有USB接口的单片机,并开发驱动程序(图2)来模仿串行端口。 从硬件角度来看,单芯片解决方案显得非常有吸引力:   ·与通用型号相比,带有USB接口的单片机几乎不需要增加额外成本。   ·由于拆除了串行端口接收器,电路板上元件的数量相应减少,同时在低成本USB连接器与新型兼容USB的单片机的D+/D-引脚间建立直接连接。   ·当通用单片机和兼容USB的单片机引脚互相兼容时,电路板重新设计的成本和工作量可以减小到最低。   ·此外,不必再为那些可以使用USB总线5V电源的应用配备电源适配器,从而可以进一步降低成本。   软件界面   一旦选择了单芯片解决方案,我们就需要为应用开发新的PC驱动程序,甚至可能是新的固件。 幸运的是,软件开发人员有多种选择,可通过重复使用应用界面类的方法来减小开发工作量。   构建到现在PC操作系统中的最常见并获得最好支持的USB接口类可能是所谓的人机接口设备(通常指HID类)。 所有的PC计算机都需要一些像键盘或鼠标这样的人机接口,这些设备的连接已经从串行或者PS/2端口升级进USB。 其驱动程序已经捆绑在Windows、Linux和MAC OS的每个拷贝中,所以所有操作系统都可以很好地支持HID。因此,对于那些想从不太复杂的嵌入式设备中读写少量数据的设计工程师而言,HID是一个非常有吸引力的选择。 不幸的是,应用编程接口(API)没有什么与COM端口接口类似。 因此,将API移植到现有系统上更成问题,特别当PC上已经有一个复杂的应用软件的时候。?   其它像打印机类和海量存储这样的标准USB接口类都可以利用来实现与嵌入式设备进行通讯。 然而,它们也面临同样的问题,即陌生的接口以及必须开发新PC应用软件。   驱动程序开发需要对操作系统底层有深入的了解。 对Windows PC机来说,这意味着要熟悉Windows驱动程序模型(WDM)。 如果没有这方面的专业知识,那么开发一个可基本工作的驱动程序原型也需要花费数月时间。   幸运的是,大部分最新版本Windows都有的一个接口类可以帮助我们摆脱困境。 微软公司原先开发这个名为USB通讯设备类(CDC)的目的是用来支持调制解调器应用。 例如,开发人员可以获得CDC接口的完整源代码,以进行面向PIC18F4550系列闪存USB 8位单片机的开发。   Microchip公司的CDC接口提供以下有用特性:   ·固件库的代码量相对较小,仅3KB;   ·单芯片解决方案;   ·仅占用大约50B的存储器空间(不包括缓冲区);   ·最大吞吐量为每秒80 K字节;   ·完全由USB协议控制数据流量(不需要RS-232 XON/XOFF和硬件流控)。   便捷的固件移植   在下面的讨论中,我们假设原先的串行端口代码是用C语言编写的,并且使用了可访问集成UART外设的公共C语言库。 给定这些条件后,将固件移植到CDC需要进行如下的修改:   ·在主文件头部,用相应的US

文档评论(0)

e71ah65wn9 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档