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

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

ID:28025211

大小:160.08 KB

页数:6页

时间:2018-12-07

基于单片机的usb主控器驱动设计_第1页
基于单片机的usb主控器驱动设计_第2页
基于单片机的usb主控器驱动设计_第3页
基于单片机的usb主控器驱动设计_第4页
基于单片机的usb主控器驱动设计_第5页
资源描述:

《基于单片机的usb主控器驱动设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于单片机的USB主控器驱动设计1引言在现代社会,嵌入式系统逐渐深入到人们生活的方方而而,各类嵌入式系统产品之间往往通过某种接U进行交互或数据传递。而现在,USB已经成为嵌入忒数据交换的鉍主要的方式,可是各种USB接U的设备都是基于PC机系统的,所以,基于嵌入式系统的USB接门的研究具冇实用的价值和意义,特别是起Master作用的HOST端接门的研宄。解决这一问题的根木办法就是在需耍使用USB设备的嵌入式系统中扩展USBHost功能模块,使之其有与USB设备进行数据传输的能力。USB1办议按功能分为2部分,USBHOST(USB主协议)和USBSLAVE(USB从协议)分别应川于US

2、BHOSTCONTROLLER(USB主控制器)和USBDEVICE(USB没&)。一般,USBHOST要比USBSLAVED杂,对于广大的非PC用户來说,尤其•是嵌入式系统用户来说,由于USB协议的不对称性,使得实现USBHOST比USBSLAVE要闲难地多,Philips公司的ISP1161A1芯片很好地解决了这种问题,他封装丫复杂的USB协议,使得在嵌入式系统屮实现USBHOST和USBSLAVE变得简单方便。2USBHOST技术简介USB的通信可以用图1表示,图1屮,左半部分为USB主机端,可以看出,USB主机端由2部分构成,即软件体和硬件体,实际上是3个软件组件组成了USB

3、HOST解决方案,即USB客户驱动程序,USB驱动程序和USB主机控制器驱动程序,应川程序的事务处理足由USB客户驱动程序(设备驱动程序)启动的,客户驱动程序把USB没备当做一个可以被访问的端点集合,他可以被控制并与他的功能单元进行通信,USB系统软件包拈USB驰动程序和USB主控制器驰动程序,USB驱动程序负贵配置管理、用户管理、总线管理和数据传输,USB主抟制器驱动程序负贵调度管理,队列管理和控制器管理,以及数据的位编码、封包、循环校验、发送、错误处理等。職拿tLSB系统USB%t11机押M沿◄_►usBiimgii<==>-~>疆華Chil^ft^b困1室[NextPage]如

4、图2所示,USBHOST的软件结构分为3大部分,即USB总线驱动(USED),USBHOST控制器驭动(HCD)、客户软件、其屮客户软件处理和设备宥关的信息,USBD处理和硬件无关的协议,而HCD则处理与硬件相关的协议,USBD和IICD都包含了一系列管理各种状态的寄存器。3SPII6I体系结构要实现USB协议,必须要通过一系列寄存器来完成,这些寄存器要能实现USB软件结构屮的USBD和HCD,即要完成USB协议状态的控制,还耍有•-定的缓冲区來存放进出的数据,ISP1161专门针对USB协议设计的特殊硬件结构可方便地实现USBHOST和USBSLAVE。ISP1161的硬件结构主要

5、是3类不同的寄存器,用户通过操作这3种寄存器來达到实现USB传输的目的,这3类寄存器是:(1)HCcontrolandstatusregisters:USB卞.控制器控制和状态寄存路,主要用于传输过程屮控制命令的存放和状态的读取,可读可写的寄存器有2个地址,只读或只写的寄存器只有1个地址。(2)IsochronousTransferList(ITL):M步传输列表缓冲区。(3)AcknowledgedTransferList(ATL):接收传输列表缓冲区《>根据USB协议,数据传输分力4种模式,Control(控制),Bulk(赞批),Interrupt(巾断)和Isochronou

6、s(同步)。其中ITL是为了实现同步传输,ATL则实现其他3种模式的传输。4ISP1161x主控制器编程实现没计ISP1161X主控制驱动程序主要涉及以下2个重要内容,下而详细介绍:4.1读/写ATL和KTL缓冲区ATL和ITL缓冲区的位于ISP1161x内部的FIFO缓冲RAM之中,每个缓冲区包含许多PTD(PhilipsTransferDescriptor),而PTD用于主控制器硬件发送或接收USB包从USB设备,作为调度USB传输的一部分,HCD在系统内存中购建PTD。然后HCD将购建好的PTD移入ATL或者ITL缓冲区,主控制器硬件允许软件去访问每一个缓冲区,就像他们足分离的

7、硬件缓冲区,HCD访问ATL缓冲区通过硬件寄存器HcTransferCounter(22H/A2H)和HcATLBufferPort(41H/C1H),而ITL缓冲区则由HcTransferCounter和HcITLBufferPort(40H/C0H)访问。下而-段示例代码取自于木项H,其功能是向ATL缓冲区写数掘,hci—>hp—>atl_len表示,ATL则在内存屮还没卷发送的数据的长度,hci—>hp—Ml表示缓冲区的地址。[NextPage]if

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。