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

发布者:alpha11最新更新时间:2006-07-27 来源: 电子系统设计关键字: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进行通信。

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数据结构定义一块数据缓冲区。再调用SendPTD函数发送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缓冲区了。相关的部分伪代码如下:

#define hccport base_address | 0x02
#define hcdport base_address
#define CMD_RD 0x00
#define CMD_WR 0x80
void SendlPTD(UINT16 *pPTDdata){ // pPTDdata指针指向PTD数据内容;
WritePTDtoATL(pPTDdata, 16); //把PTD数据写入ATL缓冲区,16为写入数据字节数;
do {ReadPTDfromATL(pPTDdata, 72); //从ATL缓冲区读取PTD数据,72为读取的字节数;
bfActive = (*pPTDdata) & PTD_ACTIVE; //检查有效位,PTD结束后主控器将把该位清零。
}while(bfActive != 0)}
void WritePTDtoATL(UINT16 *pPTDdata, UINT totalbytes){
WriteHCR_UINT16(IDX_HcTransferCounter, databytes);//向HcTransferCounter寄存器写入要传输的字节数;
*hccport = IDX_HcATLBufferPort | COM_WR; //向ATLBuffer端口写入写命令;
DisableInterrupts(); //禁止所有中断;
for (UINT m= totalbytes; m>0; m -=4 ){ //为了维护PTD数据在ATL缓冲区中的结构,采取每四字节循环
*hcdport = * pwPTDdata ++; //的方式;
*hcdport = * pwPTDdata ++; }
EnableInterrupts();} //使能中断;
void ReadPTDfromATL(UINT16 * pPTDdata, UINT totalbytes){
WriteHCR_UINT16(IDX_HcTransferCounter, totalbytes);
*hccport = IDX_HcATLBufferPort | COM_RD;
DisableInterrupts();
for (UINT m= totalbytes; m>0; m -=4 ){
* pwPTDdata ++ = *hcdport;
* pwPTDdata ++ = *hcdport; }
EnableInterrupts();}

数据结构链表的处理

在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的驱动程序,并按照规定要求实现了指纹数据的采集和传输。

参考文献
[1] 田泽. 嵌入式系统开发与应用教程. 北京航空航天大学出版社,2005.
[2] 肖踞雄,翁铁成,宋中庆. USB技术及应用设计.清华大学出版社,2003.

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

上一篇:ATMEGA48与DS1302组成的定时控制系统
下一篇:基于神经元芯片的远程水温监控系统

推荐阅读最新更新时间:2024-05-13 18:13

嵌入式浏览器Konqueror/E的实现
摘 要 : Konqueror/embedded是针对嵌入式Linux的开放源码浏览器,也是符合GNU条款的自由软件。本文首先对该浏览器技术核心做了简要分析,然后详细介绍了Konqueror/embedded在ARM-Linux操作系统上的移植和汉化过程。 关键词 :  Konqueror   嵌入式浏览器   ARM-Linux    移植   汉化 1 Konqueror/E概述     随着网络科技的进步,因特网与无线网络的融合将成为必然趋势。要在嵌入式设备上访问因特网,浏览器是必不可少的。目前,嵌入式浏览器已经逐渐成为高端手机和PDA的标准配置。嵌入式浏览器的另一大作用就是在网页中利用CGI(CommonGatew
[嵌入式]
基于嵌入式WinCE的远程数据采集系统
1 引言     传统数据采集系统一般利用各种数据采集卡或是多串口卡,编制相应的定制软件,将外 部信号采集到工控机或普通PC 机。由于硬件结构的限制,传统的数据采集系统体积大、实 时性差、信号衰减严重、外挂设备数量有限,无法满足微型化、大容量、高实时性、多参数 和高稳定性的要求。随着计算机技术和网络技术的发展,各种新的数据采集的实现方案不断 出现,其中,以TCP/IP 通信机制的远程数据采集系统具有较好的使用前景 。本文以基于 WinCE 的嵌入式设备为核心,取代传统意义上的PC 机,采用TCP/IP 通信机制搭建的远程 数据采集系统,结合嵌入式设备和网络技术的优点,将信号采集、信号传输和数据处理相对 分离,提高了系统的抗干扰
[嵌入式]
基于Qt/E的嵌入式GUI的研究及其移植
1 引言 图形用户界面系统(GUI)是系统级的底层软件,它可以和文件系统、操作系统内核等一起构成一个完整的操作系统。GUI 为用户提供了与应用系统交互的可视化通道,同时GUI为程序员提供了一种编程模式,即GUI负责系统的可视化界面的生成、管理以及系统与用户之间的信息交互,而程序员只需专注于对实际应用的分析。 嵌入式GUI除了以上特点,还要求简单、直观、可靠、占用资源小且反应快速,以适应嵌入式系统硬件资源有限的条件。另外,由于嵌入式硬件本身的特殊性,嵌入式GUI应具备高度可移植性和可裁剪性,以适应不同硬件平台的需求。 2 国内外几种嵌入式GUI系统实现方式与特点 为了适应日益扩大的嵌入式Linux市场的需求,国内外的
[嵌入式]
TDK扩展嵌入式电机控制器系列,内置Arm M3电机驱动器
产品特性: HVC 4222F 和 HVC 4422F 属于基于 Arm M3 的电机驱动器,具有 32k 和 64k 两种闪存 完全指定,经过高达 160°C 结温测试 目标应用包括汽车驱动系统和热管理系统 TDK Corporation 对其 Micronas 嵌入式电机控制器系列产品进行了扩展,以实现高温环境应用。HVC 4222F 和 HVC 4422F 专门针对环境温度要求高达 150 °C 的应用中智能执行器的操作开发研制而成。HVC 4222F 具有 32k 闪存,而 HVC 4422F 则具有 64k 闪存,可应用于更加复杂的软件。这些高温装置主要应用于内燃机驱动系统,以及新兴的电动和混合动力汽车热管理
[嵌入式]
TDK扩展<font color='red'>嵌入式</font>电机控制器系列,内置Arm M3电机驱动器
凌华科技智能云端服务平台荣获中国工控网“智能产品奖”
2016年3月1日,北京讯。 全球智能云端服务平台、网关、嵌入式计算机及行业应用平台供应商 凌华科技的SEMA Cloud智能云端服务平台,荣获中国工控网第十四届自动化年度评选的 智能产品奖 ,从此单一平台可对多点设备做监控、管理、更新,提供全面工业级物联网(IIOT)解决方案,得到业内资深专家与大众评选用户的信赖与赞同。 SEMA Cloud是由云端服务器架构组成,对门户提供物联网服务管理。SEMA Cloud 云端解决方案包含网关软件,配合一个堆栈应用于智能型SEMA中间件上,使嵌入式设备能够安全地连接至采用先进加密技术的云端,而无需额外的设计。SEMA Cloud是一个灵活、弹性的管理平台,随时可应用或开放给需
[工业控制]
凌华科技智能云端服务平台荣获中国工控网“智能产品奖”
ARM Cortex-M3的嵌入式网络播放系统设计应用
ARM Cortex-M3的嵌入式网络播放系统设计应用 随着网络应用的普及,为普通嵌入式系统增加网络功能,能更好满足消费者对网络资源的需求。这里采用基于ARM Cortex-M3的微控制器LM3S1138实现一种具备网络功能的播放终端系统,该系统不仅具有良好的播放效果,还可从网络音乐服务器上点播音乐并实时播放。 1 网络播放系统的设计方案 该网络播放系统由服务器、用户终端和音响设备组成。其中,服务器通过以太网提供音乐资源,用户终端通过网络下载音频数据再实现音频解码,音响设备实现音乐播放。图1给出该系统设计框图。 该系统设计采用基于ARM Cortex-M3的控制器LM3Sll38作为主控制器。该控制器改进了代码密度,减少中断延
[单片机]
ARM Cortex-M3的<font color='red'>嵌入式</font>网络播放系统设计应用
新老应用合力助推,嵌入式软件发展闪现契机
     随着电子技术的日益成熟,电子设备之间的 差异化 越来越小,如何使自己的产品在众多同类产品中脱颖而出,令电子设备厂商以及嵌入式系统设计厂商大伤脑筋。此时,软件差异化的优势逐渐显露出来。从传统的3C(Communication, Consumer Electronics, Computer; 通信、消费电子、计算机)和工业领域,到近几年崛起的汽车、 医疗电子 等新兴领域, 嵌入式软件 的应用浪潮席卷了整个电子产业。当前,新的一轮应用热潮已然来临,新老应用将为嵌入式软件的发展注入新动力。 传统应用力挺,3C、工业等传统应用仍是主流      作为嵌入式软件最主要的需求群体,嵌入式软件在3C、工业等这些传统领
[工业控制]
嵌入式SoCIC的设计方法和流程
    摘要: 在介绍嵌入式SoC IC概念的基础上,介绍基于重用(re-use)的SoC IC设计方法和流程,涉及满足时序要求、版图设计流程和测试设计的问题,并给出设计计划考虑项目。     关键词: 嵌入式系统 SoC 重用 一、系统集成芯片(SoC)是IC设计的发展趋势 (1)随着微电子技术和半导体工业的不断创新和发展,超大规模集成电路和集成度和工艺水平不断提高,深亚微米(deep-submicron)工艺,如0.18 μm 、0.13 μm 已经走向成熟,使得在一个芯片上完成系统级的集成已成为可能。 (2)各种电子系统出于降低成本、减少体积的要求,对系统集成提出了更高的要求。 (3)
[嵌入式]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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