您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术嵌入式系统中USB主机控制器的实现 正文
嵌入式系统中USB主机控制器的实现

嵌入式系统中USB主机控制器的实现

点击数:7987 次   录入时间:03-04 11:56:05   整理:http://www.55dianzi.com   嵌入式系统-技术

        通用串行总线( 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 集线器相连。

主机控制器子模块的功能框图示

点击看原图

 



www.55dianzi.com

       相关 嵌入式 应用系统的架构

       本文涉及的嵌入式系统是一个指纹验证系统,其总体结构如图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镜像文件。人机交互用于显示运行结果和注册/增删指纹数据。

       对于PXA255处理器而言,ISP1161类似于一个具有16位数据总线的存储设备。ISP1161工作在并行I/ O(PIO)模式,只占用两个I/O端口和微处理器两个内存空间。微处理器用两根地址线A0和A1来读写ISP1161内部寄存器和FIFO缓冲RAM。地址线A0用来选择传输命令数据:A0=1,处理器访问ISP1161的命令端口;A0=0,处理器访问ISP1161的数据端口。地址线A1用来选择主机控制器或设备控制器模式:A1=0,切换至主机控制器模式;A1=1,切换至设备控制器模式。本系统中ISP1161和PXA255的硬件接口如图3所示。用可编程I/O模式实现数据通信,即ISP1161的数据总线经总线驱动接到PXA255的数据总线D[0:15],A0和A1分别接到PXA255的A1和A2以实现主机和设备、命令和数据端口的选择。I/O口地址的完全解码包括芯片选择信号CS及地址线A1和A0。I/O口的访问方向由RD及WR信号控制:当RD为低时,微处理器从ISP1161A1 数据口读取数据;当WR为低时,微处理器向指令端口写入一个指令,或向数据端口写入数据。

ISP1161和PXA255的硬件接口

       USB主机软件设计

       系统的软件平台是微软公司的Windows CE。

       ISP1161软件模型

      USB主机软件系统包括通用串行总线驱动程序(USBD)、主机控制器驱动程序(HCD)和客户端软件。客户端软件是应用代码或USB类驱动程序。USBD和HCD共同用作USB主机堆栈。USBD以I/O请求包的形式指定某一特定通道传输数据,并把请求分解成多个事务。HCD与ISP1161之间以PTD(Philips Transfer Description)的形式进行通信。I/O请求包的数据在底层被打包成PTD的格式后再与ISP1161进行通信。

       ISP1161只提供了一部分符合OHCI标准的寄存器,而其硬件是支持OHCI标准的。所以为使它完全符合OHCI标准,我们设计时在系统内存中定义一套完全符合OHCI规范的操作寄存器和HCCA控制器通信区,软件读写其中数据,以软件模拟硬件来实现完整的OHCI规范,并按照OHCI规范的要求,在系统内存中维护了一套完整的数据结构,以完成对主机控制器初始化、状态读取并收集USB主机与设备通信的详细信息。

       ISP1161的数据传输模式

       ISP1161提供了HC控制和状态寄存器、ATL缓冲区和ITL缓冲区。其中HC控制和状态寄存器包括一套可操作的符合OHCI的寄存器(32位)和一套ISP1161特定的寄存器(16位)。通过对相应寄存器的操作,主机控制器驱动程序就可以完成对主机控制器初始化和配置工作。ATL缓冲区和ITL缓冲区用来实现USB系统支持的四种不同数据传输:控制传输、批量传输、中断传输和实时传输。ITL是实时传输的缓冲的FIFO,而ATL是USB其它三种类型传输的缓冲FIFO。

[1] [2]  下一页


本文关键字:控制器  嵌入式  主机  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术