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

发布者:WanderlustGlow最新更新时间:2014-10-23 来源: dzsc关键字:嵌入式系统  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镜像文件。人机交互用于显示运行结果和注册/增删指纹数据。

  对于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为低时,微处理器向指令端口写入一个指令,或向数据端口写入数据。

  USB主机软件设计

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

       ISP1161软件模型

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

   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。

  ISP1161数据传输的具体过程为:硬件初始化完成后,调用HCD的MakePTDdata函数在系统存储器中以PTD数据结构定义一块数据缓冲区。再调用S

 

endPTD函数发送PTD数据,其中的WritePTDtoATL函数将数据复制到ATL或ITL缓冲区。通过ISP1161硬件扫描ATL或ITL缓冲区以实现与USB终端设备进行通信。

  硬件扫描过程就是把数据发送到总线上,以硬件扫描ATL缓冲区为例:当HCD通过HcTransferCounter寄存器向ATL缓冲区写入HcATLBufferPort寄存器指定的字节数时,主机控制器硬件开始扫描ATL缓冲区;当操作完成后,HcBufferStatusPort寄存器中的位ATLBufferFull被置位,ATLBufferFull位从逻辑0到逻辑1的跳变使硬件开始扫描ATL缓冲区内的PTD;当ATLInt中断产生时,表明硬件停止扫描ATL缓冲区,HcBufferStatus寄存器中的位ATLBufferDone被置位,HCD又可以访问ATL缓冲区了。相关的部分伪代码如下:

点击看原图

       数据结构链表的处理

  在HCD将PTD从系统内存复制到ATL或ITL缓冲区之前,HCD必须通过集合数据结构来建立和追踪PTD。HCD的责任是追踪所有已连接设备的每个端点的属性,如端点最大封包大小、端点地址和该端点从属的设备地址。另外,HCD必须管理每个端点新的PTD的产生和已经完成的PTD的处理。所以使用一个有效的数据结构体系可以加快主机控制器的操作。本设计实现的数据结构类似于OHCI中定义的数据结构,如图4所示。此数据结构由三部分组成:三种类型端点的队列(控制传输端点、批量传输端点和中断传输端点)、每种端点的一个PTD列和一个完成队列。每个列队由一个全局指针指定,这个全局指针保持队列中第一个端点(EP)队列头的地址。每个EP队列头指向一个PTD列。一个PTD列保留着等待被主机控制器处理的PTD。在控制、批量和中断传输中,PTD被复制到ATL缓冲区。一旦PTD被放入ATL缓冲区,主机控制器就在下一帧中处理该PTD。

       结束语

  在USB主机端功能实现后,我们又开发了USB设备——指纹传感器MBF200的驱动程序,并按照规定要求实现了指纹数据的采集和传输。

关键字:嵌入式系统  USB  主机控制器 引用地址:嵌入式系统中USB主机控制器的实现

上一篇:基于USB接口的无线数据传输系统的设计
下一篇:基于MCU与USB设备控制器IP核的设计方案

推荐阅读最新更新时间:2024-03-16 13:43

L-com 多种适配器现货库存,全面匹配USB、以太网等接口
作为L-com诺通的授权分销商,Heilind可为市场提供相关的产品服务与支持,此外也供应多家世界顶级制造商的产品,涵盖25种不同元器件类别, 并重视所有的细分市场和所有的顾客,不断寻求广泛的产品供应来覆盖所有市场。 适配器是连接系统中常见的产品之一,它不仅需要满足日常的接口转接,更要面对不同应用环境确保稳定传输。L-com诺通900多种适配器产品,不仅包含了USB、以太网、光纤、同轴、音视频、D-Sub等热门接口,也可选IEEE-488 GPIB等适配器,快速满足客户的紧急连接需求。 L-com受欢迎的适配器产品包括: 热门类别包括:以太网、同轴、USB、光纤、D-Sub、音视频等 D-Sub适配器可选9针
[网络通信]
L-com 多种适配器现货库存,全面匹配<font color='red'>USB</font>、以太网等接口
STM32USB的枚举过程简介
之前的说明: 文中大量引用网上资料,在文后已给出资料的引用说明。文件涉及到的USB各种传输包各个位的含义以及USB标准设备请求的含义都没有做说明,推荐看《圈圈教你玩USB》里面有详细的说明 一、枚举前的工作 系统上电后,程序开始运行,简单介绍一下USB的初始化 根据STM32的USB库做移植,介绍枚举过程 SetSystem函数是一些初始化化设置,因为我在之前已经做了初始化的操作,所以把这个函数就删了。 首先系统执行USB中断设置:USB_Interrupts_Config();//设置中断向量表,设置优先级 然后执行USB时钟设置:Set_USBClock();//时钟设置
[单片机]
STM32<font color='red'>USB</font>的枚举过程简介
USB3.0过电流保护PPTC组件应用解决方案
    随着高新技术的不断提升,外围设备也在不断更新换代,在USB应用方面,USB3.0除了提升速度外,同时对电力的供应也有所提高。针对业界常用的过电流保护组件高分子正温度系数热敏电阻(PPTC)做介绍,并于在USB 3.0的应用下比较与低电压半导体开关的差别。       此外,我们将对USB 3.0与USB 2.0的差异,提出USB 3.0过电流保护 PPTC 组件应用建议,并以新一代薄型低电阻表面粘着PPTC组件为例说明新的导体材料开发进程,透过运用新材料,可为当前的超薄型电子产品提供良好过电流保护。     由于电子产品对速度、功率的要求不断提高,自去年11月USB 3.0规格底定后,除了速度提升至5Gbps外,对电力供
[嵌入式]
新思科技与SMIC合作推出USB PHY IP
-- 用于中芯65纳米 LL 工艺技术,获得 USB 标志认证 -- 通过芯片验证的 DesignWare PHY IP 降低了风险,易于集成到系统芯片中 美国加利福尼亚州山景城和中国上海2010年5月13日电 /美通社亚洲/ -- 全球半导体设计制造软件和知识产权领先企业新思科技有限公司(纳斯达克交易代码:SNPS)和全球领先的半导体制造商中芯国际集成电路有限公司(中芯国际,纽约证券交易所交易代码:SMI,香港联交所交易代码:0981.HK)今天宣布开始提供用于中芯国际65纳米 (nanometer) 低漏电 (Low-Leakage)工艺技术的新思科技经硅验证的和获得 USB 标志认证的DesignWare(R) US
[半导体设计/制造]
单片机应用于嵌入式系统设计方案
1 概述 随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从4位、8位、16位到32位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。 然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等价格不菲的电子设备外,开发过程也较繁琐。如图1所示,用户程序需要在硬件完成的情况下才能进行联调,如果在调试过程中发现需修改硬件,则要重新制板。因此无论从硬件成本还是开发周期来看,其高风险、低效率的特性显露无遗。来自英国
[单片机]
单片机应用于<font color='red'>嵌入式系统</font>设计方案
汽车内部噪声智能控制系统的设计
噪声主动控制基本思想是由德国物理学家Paul Lueg于1936年发明“电子消声器”时首次提出的。噪声主动控制技术相对传统的被动控制,具有对中、低频段噪声控制效果明显、系统轻巧、实时性强等优点,具有潜在的工程应用价值。 噪声控制为实时控制,需要较大的计算量,普通的单片机难以实现。20世纪80年代,数字信号处理(DSP)芯片的问世为信号的实时控制开辟了广阔的发展空间。随着芯片技术的不断成熟和发展,DSP已成为现代智能控制器的核心部件。 本文采用DSP芯片TMS320F2812设计了既可以脱机独立自主运行又可以通过USB接口在线仿真的智能控制器,并以该控制器为核心设计了汽车内部噪声主动智能控制系统。 智能控制系统的电路设计 1
[应用]
细说嵌入式领域的那些专业厂商认证
回首刚刚过去的2010年,不难注意到:物联网、云计算产业已经悄然进入高速发展的阶段,而作为这些产业中核心技术的嵌入式系统,其健康发展的状况更是成为整个信息产业发展的关键环节。2010年是嵌入式系统成为IT行业未来10年主流发展方向的开端之年,目前众多专业人士及广大技术爱好者对嵌入式领域的关注程度,也无疑达到了前所未有的高度。 回首刚刚过去的2010年,不难注意到:物联网、云计算产业已经悄然进入高速发展的阶段,而作为这些产业中核心技术的 嵌入式 系统,其健康发展的状况更是成为整个信息产业发展的关键环节。可以毫不夸张地说:2010年是 嵌入式 系统成为IT行业未来10年主流发展方向的开端之年,目前众多专业人士及广大技术爱好
[嵌入式]
细说嵌入式领域的那些专业厂商认证
TE Connectivity USB 3.0 连接器
作为USB设计学会(USB-IF)的资深会员,TE Connectivity推出全新的USB 3.0连接器及全面产品解决方案。该系列产品包括标准A型/B型接口和插口、增强供电B型接口和插口、迷你B型和AB型接口和插口及线缆组件等。TE Connectivity拥有优秀的线路设计团队,可为您提供优质的定制服务,以满足您不同的需求。同时,作为全球领先的无源器件制造商之一,TE Connectivity拥有先进的自动化制线机。高效的生产线管理及先进的工艺流程,使我们的产品更加稳定、更加可靠。
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved