综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章接口电路正文
 
嵌入式数据传输系统的USB接口设计与实现
发布日期:2009-11-06 作者:范晓青 袁中凡 张国华 来源:微计算机信息

摘要: 本文给出了一种基于USB 1.1 总线协议的嵌入式数据传输系统的设计与实现方案。
采用Philips 公司的USB 专用芯片PDIUSBD12 与微控制器LPC2210 构成USB 设备,在
μC/OS-II 操作系统上实现该设备的USB 通信协议。在PC 主机上完成了基于WINDOWS 驱
动程序模型(WDM)的USB 主机驱动程序和应用软件的设计,实现了设备与PC 主机的通信。
经测试,该USB 数据传输系统具有速度快、即插即用、热插拔和低功耗等特点。
关键词:数据传输; USB接口; PDIUSBD12; WDM

随着信息技术的迅速发展,数据采集和处理技术广泛应用于科学研究的各个领域。早期
的计算机系统上通常使用串口或并口来发送数据,每个接口都需要占用计算机内部很多的资
源,传统的接口一般采用PCI总线或RS-232串行总线。PCI总线有较高的传输速率,可达
132Mbit/s,也可以即插即用,但是它们的扩充槽有限且插拔不方便;RS-232串行总线连接
比较方便,但是传输速率太慢,不易用于高速传送数据和传送大量数据。
通用串行总线(Universal Serial Bus,USB)集中了PCI和RS-232串行总线的优点,具有方
便的即插即用和热插拔特性以及较高的传输速率。因此,将USB技术应用于数据采集可以实
现数据采集系统的高速度处理。现在的PC机几乎都配备了USB接口,Microsoft的Windows
以及MacOS、Linux、FreeBSD等流行操作系统都增加了对USB的支持。作为一种通用的串
行标准,USB接口势必将扩大很多技术的应用范围。如果在小体积、低功耗、低成本的嵌入
式平台中实现USB技术,嵌入式设备将会有更大的应用空间。而嵌入式设备的实时、小巧等
特性使得USB的协议栈和总线驱动的开发设计显得尤为重要,因为它的好坏会直接对USB主
机产生影响,从而会对嵌入式系统性能产生较大影响[1]。本设计利用Philips公司生产的USB
专用芯片PDIUSBD12(以下简称D12)与微控制器LPC2210构成USB设备,在μC/OS-II操作系
统上实现该USB设备与PC机通信的USB协议,实现数据传输功能。
1 USB 接口硬件设计
1.1 系统接口芯片的选择
USB 接口控制器是USB 系统的关键,很多半导体生产公司参与了USB 芯片的开发,
形成了多种产品系列。本设计选用了性价比较高的Philips 公司的USB 专用芯片D12,它符
合USB1.1 版规范。此芯片是带有并行总线的全速USB 接口器件,可与任何微控制器实现高速并行接口(2Mb/s),并可用于许多外设。D12 集成了SIE、FIFO 存储器、收发器及电压
调整器;可通过SoftConnectTM 技术软件控制与USB 的连接;采用GoodLink 技术的连接指
示器,在通讯时使LED 闪烁等[2]。
1.2 D12 接口电路
如图1所示,D12的硬件接口和外部存储器的接口很相似,因此,可以把它当作一片外
部RAM芯片来进行访问。对于LPC2210微控制器,它的外部数据总线与地址总线是分开的。
这时,D12的DATA0~DATA7与LPC2210的数据总线的D0~D7直接相连就可以构成访问D12
的数据总线了。D12的AD0连接到LPC2210的A0,当LPC2210在A0引脚输出1时,表示输出
到D12数据总线D0~D7上的数据为命令字,当A0引脚输出0时,表示输出到D12数据总线
D0~D7的数据为数据字。D12使用LPC2210外部存储控制的Bank2部分,其数据地址为
0x82000000(偶数地址),命令地址为 0x82000001(奇数地址) [3]。

其中,C1、C2 和X1 为D12 提供工作所需的时钟输入,为了保证D12 的工作时钟正常,
C1 和C2 必须分别为68pF 和22pF;D+/D-线上应串接18  的匹配电阻[3]。输出(GL-N)
接LED 对其状态进行监控,这个LED 在USB 被连接时会发光,在进行数据传输时会闪烁,
LED 常亮或一直不亮则说明USB 接口出现问题。
USB 设备通过4 条电缆接入主机或USB Hub,这4 条电缆分别是:Vcc(总线电源),
GND(地线),D+和D-数据线。主机通过D+和D-上的电压变化来检测设备的状态变化,
当没有设备连接到USB 端口时,D+和D-线上的下拉电阻就将两条数据线拉到近地,当检测
到任一条数据线电压接近Vcc,而其他保持近地电压,那么主机就知道该设备已准备好了[4]。
2 USB 系统软件设计
USB系统软件结构的特点是分层化和模块化,如图2所示。协议接口以上的程序运行在
PC上位机上,最下面的设备控制器程序运行在基于μC/OS-II操作系统上的嵌入式平台即下位
机上[4]。
2.1 下位机软件设计
USB设备端的程序采用ADS1.2编写,为了使软件可移植性强、易维护,采用分层的方
法编写D12的驱动程序。根据USB1.1协议、D12硬件接线和μC/OS-Ⅱ的结构,采用中断服务
程序处理实时性强的异步事件,体系框架如图3所示。具体工作原理是,当CPU处理前台任
务时,USB的传输可在后台进行,当D12从USB收到一个数据包,就对CPU产生一个中断请
求,CPU立即响应中断。在中断服务程序中,将数据包从D12内部缓冲区移到循环数据缓冲
区,并清空D12内部数据缓冲区,以使能接收新的数据包。CPU可继续当前的任务直到完成,
然后检查循环数据缓冲区是否有新数据[5]。


(1)主循环层检查事件标志,再调用对应的处理函数做进一步处理;
(2)中断服务程序处理由D12产生的中断,它检索从D12内部FIFO存储器发给MCU存储器
的数据,然后设立适当的事件标志以通知主循环程序进行处理;
(3)协议层处理USB1.1协议的标准设备请求;
(4)功能层包括实现外设功能的子程序;
(5)D12硬件提取层是底层电路直接通信的物理模块,可以完成硬件访问D12相关I/O口的
功能;
(6)系统硬件提取层包含外设的底层代码,用于完成硬件的初始化,MCU对I/O口的访问
等。
2.2 上位机软件设计
上位机软件主要包含USB 客户应用程序,USB 客户驱动程序和USB 主控制器驱动程
序。
2.2.1 USB 客户应用程序
USB 客户应用程序负责与设备使用者的交互,包括接收用户的命令,向USB 客户驱动
程序发送命令,以及获取返回的数据等。USB 客户应用程序的设计在Visual C++ 6.0 开发环
境下进行。主要功能包括检测USB 设备、开启/关闭USB 设备、获取设备信息集、设置数
据传输端口、显示实时传输的数据,程序流程图如图4 所示。
2.2.2 USB 客户驱动程序
USB 客户驱动程序接收USB 客户应用程序的命令,把读/写命令变成规范的USB 请求
包传给下一层驱动程序。客户驱动程序要解析设备的各种描述符,掌握设备的性质和功能,
制订与其功能相适应的软件结构和算法,为上层应用程序提供API 接口。
该USB 驱动程序采用WDM(Windows Driver Mode)驱动程序模型设计,提供USB 的底
层驱动和驱动程序接口USBDI。USB 客户驱动程序是由多个模块构成,每个模块相互独立,负责专门的事务。USB 客户驱动程序主要包括初始化、即插即用和设备I/O 控制三个模块[4]。
2.2.3 USB 主控制器驱动程序
USB 主控制器驱动程序属底层驱动程序,负责对主控制器进行操作,完成最底层的数
据通信工作。USB 主控制器驱动程序直接或间接地接收客户驱动程序发送来的USB 请求包,
完成底层通信协议的操作。USB 主控制器驱动程序由操作系统提供[4]。


3 系统调试
采用100Hz的采样频率对信号发生器产生的三角波进行采集传输测试,结果如图5所示。
说明此系统可以正确的识别USB设备,并有效完成数据传输任务。


4 结束语
本设计中使用USB1.1作为接口部分,具有传输速度快、即插即用和热插拔等优点。应
用程序充分利用VC的MFC框架比较丰富的资源进行数据采集和控制,具有界面友好、功能
丰富等特点。经实际测试证明,本系统设计合理,使用方便,数据传输稳定可靠。本文创新
点:设计和实现了基于ARM微处理器LPC2210的嵌入式USB接口,通过对LPC2210芯片组成
的嵌入式USB的具体实践, 证明了硬件设计和软件测试方案的可行性。
参考文献
[1]马军,李玉林.基于PDIUSBD12的USB接口设计[J].微计算机信息.2006,22(7-2),285-287.
[2]Philips PDIUSBD12 Product data Rev. 08-20[Z],2001.
[3]周立功.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005.
[4]胡晓军,张爱成.USB接口开发技术[M],西安:西安电子科技大学出版社,2005.


[5]颉瑞昌,张根保,朱福益,王戈.基于PDIUSBD12的通用Fireware结构及设计[J]. 计算机应用研究.2005.9.
[附]
作者简介:范晓青(1986-),女,山东平邑人,硕士,四川大学制造学院,专业:生物医学工程;
Biography:FAN Xiao-qing (1986-),female(Han),Shandong Province Pingyi County,Master, studying in School of
manifesting science and engineering of Sichuan University. Major: medical information and instrument.
 


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
基于PDIUSBD12的无线USB接口收发器的设计 (08-07)
USB 接口在数据采集系统中的应用 (09-02)
基于USB接口的数据采集系统设计 (03-01)
基于DSP平台的USB接口设计 (02-27)
基于USB和多线程的实时数据采集系统 (02-27)
基于PDIUSBD12芯片的USB接口的研究与开发 (10-20)
电池充电状态智能测试系统的设计 (10-31)
PDIUSBD12芯片在USB接口电路中的应用 (04-07)
基于PDIUSBD12芯片的USB接口设计 (04-28)
USB串口服务器的设计与实现 (02-15)
智能仪器中数据高速传输的USB实现 (01-10)
基于USB的接口卡 (11-05)
基于PDIUSBD12的USB数据采集系统的设计 (08-23)
关于我们 ┋ 友情链接


深圳市南山科技园深南花园A座14D
电话:0755-26615872 传真:0755-26612880
Copyright©2005-2010 无忧电子开发网版权所有

粤ICP备05064233号