EDN China > 技术文章 > 嵌入式系统 > 开发工具 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于单片机的USB主控器驱动设计

来源:E代电子?? 2006年11月05日 ?? 收藏0
?????? 1 引言

?????? 在现代社会,嵌入式系统逐渐深入到人们生活的方方面面,各类嵌入式系统产品之间往往通过某种接口进行交互或数据传递。而现在,USB已经成为嵌入式数据交换的最主要的方式,可是各种USB接口的设备都是基于PC机系统的,所以,基于嵌入式系统的USB接口的研究具有实用的价值和意义,特别是起Master作用的HOST端接口的研究。

?????? 解决这一问题的根本办法就是在需要使用USB设备的嵌入式系统中扩展USB Host功能模块,使之具有与USB设备进行数据传输的能力。

?????? USB协议按功能分为2部分,USB HOST(USB主协议)和USB SLAVE(USB从协议)分别应用于USB HOST CONTROLLER(USB主控制器)和USB DEVICE(USB设备)。一般,USB HOST要比USB SLAV

E复杂,对于广大的非PC用户来说,尤其是嵌入式系统用户来说,由于USB协议的不对称性,使得实现USB HOST比USB SLAVE要困难地多,Philips公司的ISP1161A1芯片很好地解决了这种问题,他封装了复杂的USB协议,使得在嵌入式系统中实现USB HOST和USB SLAVE变得简单方便。

?????? 2 USB HOST技术简介

?????? USB的通信可以用图1表示,图1中,左半部分为USB主机端,可以看出,USB主机端由2部分构成,即软件体和硬件体,实际上是3个软件组件组成了USB HOST解决方案,即USB客户驱动程序,USB驱动程序和USB主机控制器驱动程序,应用程序的事务处理是由USB客户驱动程序(设备驱动程序)启动的,客户驱动程序把USB设备当做一个可以被访问的端点集合,他可以被控制并与他的功能单元进行通信,USB系统软件包括USB驱动程序和USB主控制器驱动程序,USB驱动程序负责配置管理、用户管理、总线管理和数据传输,USB主控制器驱动程序负责调度管理,队列管理和控制器管理,以及数据的位编码、封包、循环校验、发送、错误处理等。

USB通信模型


?????? 如图2所示,USB HOST的软件结构分为3大部分,即USB总线驱动(USBD),USB HOST控制器驱动(HCD)、客户软件、其中客户软件处理和设备有关的信息,USBD处理和硬件无关的协议,而HCD则处理与硬件相关的协议,USBD和HCD都包含了一系列管理各种状态的寄存器。

USB软件结构模型


?????? 3 SP1161体系结构

?????? 要实现USB协议,必须要通过一系列寄存器来完成,这些寄存器要能实现USB软件结构中的USBD和HCD,即要完成USB协议状态的控制,还要有一定的缓冲区来存放进出的数据,ISP1161专门针对USB协议设计的特殊硬件结构可方便地实现USB HOST和USB SLAVE。ISP1161的硬件结构主要是3类不同的寄存器,用户通过操作这3种寄存器来达到实现USB传输的目的,这3类寄存器是:

?????? (1)HC control and status registers:USB主控制器控制和状态寄存器,主要用于传输过程中控制命令的存放和状态的读取,可读可写的寄存器有2个地址,只读或只写的寄存器只有1个地址。

?????? (2)Isochronous Transfer List (ITL):同步传输列表缓冲区。

???? ? (3)Acknowledged Transfer List(ATL):接收传输列表缓冲区。

?????? 根据USB协议,数据传输分为4种模式,Control(控制),Bulk(整批),Interrupt(中断)和Isochronous(同步)。其中ITL是为了实现同步传输,ATL则实现其他3种模式的传输。


上一页1234下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

操作系统? USB? 单片机?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈