基于ARM7TDMI的OHCI控制器驱动程序设计
2012-07-25裴晓勇赵凯瑞
裴晓勇,李 俨,赵凯瑞
(西北工业大学自动化学院,西安710072)
1 引言
USB设备结构简单,通用性好,因而得到了大规模使用。不仅在PC机上,越来越多的嵌入式应用中也提到了USB。在很多的嵌入式应用中,需要实现USB主机控制器的功能。OHCI(Open Host Control Interface)是Compaq,Microsoft等公司提出的一个USB主机控制器接口规范,广泛应用于嵌入式设备中。目前有关OHCI主机驱动程序的开发,大多数是基于操作系统(Linux或者WinCE)的,参考文献[3,5-6]就是典型实例。由于这种 OHCI驱动程序过于复杂和抽象,而且依赖于特定的操作系统环境,在无操作系统平台上的移植与使用有一定的困难。同时,越来越多的OHCI控制器出现在不能移植复杂操作系统的硬件平台上,比如LCP2478。本文以LPC2478为硬件平台(ARM7TDMI内核),以适用于无操作系统或者轻量级的操作系统(μC/OS-II,freeRTOS)环境为目的,实现了简单而且可靠的基于OHCI的USB主机驱动。
首先介绍USB主机控制器的体系结构,然后着重介绍了OHCI规范的主要细节,最后实现了主机驱动程序,并对所实现的驱动程序进行了验证。
2 USB主控制器体系介绍
USB设备结构简单,通用性好,大量用于电子设备中。在数据采集系统中,可以通过USB总线将采集到的数据保存到U盘,移动硬盘等大容量存储设备中。在此过程中,需要USB主机控制器的参与,才能将数据从主机传输到USB存储设备中。在USB2.0规范中定义了USB主机控制器的体系结构,USB主机控制器负责连接USB设备和上位机。当有USB设备插入USB主机控制器的时候,主机控制器会将此信息通过中断的方式告知上位机;上位机与USB设备的数据交互最终也必须通过USB主机控制器来进行。……
