嵌入式系统中USB主机控制器的实现
扫描二维码
随时随地手机看文章
通用串行总线(usb)接口具有简单灵活、高带宽、易于扩展和热插拔等优点,它目前已成为数码设备的标准接口之一,小到u盘、mp3,大到数码相机、打印机,usb接口的身影无处不在。但我们目前所使用的usb移动设备多为usb的外设(device) , 比如usb的移动硬盘、usb接口的数码相机,一般只能在pc上使用,即只能通过pc实现文件和数据的交换。 业界和用户的需求呼唤usb主机的嵌入式化,因此在嵌入式系统中实现usb主机功能成了usb设计领域的热点之一。 迄今为止,嵌入式usb主机的最大市场和增长点在移动消费电子设备领域, 比如pda与usb记忆棒传递数据、mp3之间传递歌曲、数码相机连接打印机等。 嵌入式usb主机也逐渐用于工业测控领域,用来实现数据的采集和交换。原来数据采集和交换大多是使用软盘、串行接口(rs232/rs485)或以太网等方式。软盘存储容量小、可靠性差,而串行接口或以太网都需要布线施工,接入成本大,而且不具备移动性。现在,越来越多的嵌入式系统采用通过usb总线连接的测控设备。 usb控制器isp1161简介 一个usb系统一般由一个usb主机(host)、一个或多个usb集线器(hub)和一个或多个usb设备节点(node)组成。usb协议规定了usb主机与usb设备的主从关系,所以usb接口产品的应用离不开usb主机的开发。usb主机是包含usb软件驱动和usb主机硬件功能接口的计算机系统实体。usb主机硬件是指usb主机控制器,它规定了usb主机硬件接口,因而在设计usb协议栈时必须了解相关的usb主机控制器规范。 针对嵌入式系统应用的usb主机控制器规范是康柏、微软、松下等公司提出的ohci(开放式主机控制器接口)标准。 飞利普公司的isp1161芯片支持ohci标准,它是一个符合usb2.0全速规范的单片主机控制器和设备控制器。isp1161可以仅作为主机控制器或设备控制器使用,也可以同时作为主机和设备控制器使用。 isp1161可分为四大功能模块: 1)主机控制器模块:实现主机控制器的功能。提供两个下行端口,每个下行端口都有自己的过流检测输入管脚和电源转换控制输出管脚。 2)设备控制器模块:实现设备控制器的功能。提供一个上行端口,有其自身的vbus检测输入管脚。 3)微处理器接口模块:两个usb控制器共用一个微处理器总线接口,它们有相同的数据总线,i/o地址不同。它们也有各自的中断请求输出管脚和独立的dma通道。 4)电源调整和上电复位模块:除了可以软件复位外,还可以通过reset_n管脚实现硬件复位。isp1161只接受5v或3.3v的电压,当输入5v电压时,电源调整器会将其调整为3.3v。 isp1161 主机控制器子模块的功能框图示于图1,主机控制器的下行端口可与任意一个符合usb 规范的usb 设备和包含usb 上行端口的usb 集线器相连。类似地,设备控制器的上行端口可与任意一个符合usb 规范的usb主机和包含usb 下行端口的usb 集线器相连。 相关嵌入式应用系统的架构 本文涉及的嵌入式系统是一个指纹验证系统,其总体结构如图2所示。系统采用英特尔公司的32位400mhz微处理器pxa255以满足指纹识别系统计算量大的需要,pxa255具有丰富的外围接口,如:lcd控制器、串口、cf卡接口、usb客户端口,但 没有usb 主机控制器。此外,硬件平台还包括存储模块、数据采集模块、usb模块、网络通信模块和调试及下载接口模块,系统总体结构框图如图2所示。
32位微处理器pxa255中央处理器结合一个51单片机完成对整个系统的控制操作。8m的flash和32m的sdram用作存储模块。具有usb设备接口的富士通公司指纹传感器芯片mbf200实现对指纹数据的采集和转换。通过usb主机接口实现嵌入式系统与usb设备——mbf200之间的通信。鉴于该指纹验证系统要实现网络化,因而配置了cf接口无线网卡。通过pxa255本身的串口控制器与pc通信,用于调试和下载windows ce镜像文件。人机交互用于显示运行结果和注册/增删指纹数据。