微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 嵌入式USB主机的硬件设计

嵌入式USB主机的硬件设计

时间:11-18 来源:互联网 点击:
通常情况下,打印机、海量存储等设备是由普通PC机来驱动的,由于大量的测控、医疗等系统需要存储、打印数据,因此开发这类设备的嵌入式驱动是非常有实用价值的。目前,各种嵌入式设备基本上是通过软盘存储,并口打印的,而它们的存储容量、数据传输速度已大大落后当前各类嵌入式系统的需求。因此,开发基于USB接口的嵌入式海量存储设备和打印机驱动已成当务之急。

USB(Universal Serial Bus)是最近几年逐步在PC领域广为应用的新型串行接口技术,它通用性好、实时性强、传输方式多样、成本低、易于扩展和使用,这些优点使它受到许多硬件厂商的青睐,各种类型的USB设备产品大量涌入市场。USB通讯必须是主机和外设通讯,每次通讯都是由主机发起,外设只是被动地执行主机发过来的命令。而市场上所买到和使用的USB 移动设备, 都是USB 的外设(device) , 如USB 的移动硬盘、USB 接口的数码相机、打印机等。这些设备通常只能通过PC 来进行相互的文件和数据交换,没有了PC 机, 这些设备就无法进行数据交换。而实际上并非每个地方都拥有PC机或者适合使用PC机,因此业界和用户需求USB 主机的嵌入式化。也就是开发和设计嵌入式的USB 主机。

根据具体医疗仪器(酶标仪)的实际需要,我们在三星的ARM7处理器 S3C44B0X上移植了实时操作系统(RTOS)——µC/OS-II,并编写了基于USB主控制器芯片SL811的底层驱动。为了能将酶标仪所检测的数据保存到外设(如U盘、移动硬盘)中,研究了对应的文件系统和UFI传输协议,实现了对FAT文件系统的海量存储设备的读写。同时,为了打印霉标仪的检测结果,研究了EPSON打印机的ESC/P打印语言,实现了EPSON C63系列、C65系列、ME1打印机基于USB通讯的嵌入式打印机驱动。

2 嵌入式USB主机硬件设计

酶标仪的硬件平台核心为三星公司的S3C44B0X(主频最高可达66MHz),它集成了ARM7TDMI核,LCD控制器,是一款适用于中端应用的微控制器。系统扩展包括:存储器(8MB SRAM、2MB NOR Flash)、USB主从机(SL811HS)和按键等硬件资源。其中USB部分硬件连接如图1所示。



图1:硬件连接图

SL811HS 是Cypress公司推出的一款嵌入式USB Host/S1ave芯片。支持USB1.1的全速和低速设备。提供USB主机的硬件接口及总线管理的物理机制。带有在片的SIE和USB发送器以及在片的根集线器Hub。因此, 满足了嵌入式USB 主机系统所需要的功能, 即由主机接口芯片来完成总线底层物理数据包的发送、接收, 并能检测总线状态, 发出中断请求。所以, 选择SL811HS 作为本系统的USB接口芯片是合适的。

如图2所示,ARM通过Cs3片选SL811HS来确定SL811HS的基地址。D0-D7为数据和地址的复用线,并通过A0来区分,当A0为“0”的时候,D0-D7上传输的是偏移地址;反之,当A0为“1”的时候,D0-D7作为数据线用。

3 嵌入式USB主机的软件设计

3.1 嵌入式USB主机的软件总体框架

系统的软件平台核心为µC/OS-II,它是一个源码公开的、占先式多任务管理的实时操作系统内核,其性能完全可与许多商业产品竞争,已在相当多的系统中得到成功应用,是一个经实践证明稳定可靠的内核,且其核心代码短小精悍,简单易学。

USB 主机为USB系统提供的功能有:(1) 检测USB 外设的接入和移出;(2) 管理主机和外设之间进行的USB 标准流量控制;(3) 枚举外设; (4) 管理主机和外设之间的数据流; (5) 搜集系统状态和性能的统计信息;(6) 主机与外设之间的电气接口,包括供电。

USB协议规定了人机接口设备HID 类、MassStorage 类、音频类和打印类等一系列的设备类型, 用于支持不同的设备。根据实际需要,我们开发了USB接口的海量存储类设备和基于ESC/P打印语言的EPSON打印机嵌入式驱动程序。具体驱动程序栈如图2所示。该系统支持热插拔,可以知道识别插上是哪种设备,并调用对应的驱动。



图2:USB驱动程序栈

 
3.2 USB Mass Storage 类协议框架的实现

USB Mass Storage 类是USB 协议所定义的用来磁盘管理及大容量数据传输的。USB定义了两种海量存储传输协议,它们分别是Buck-only Transport 和Control/Bulk/Interrupt(CBI) Transport。由于目前市场上所出现的海量存储设备基本上都采用前者传输协议,即读写数据都是通过块传输来实现通讯。在命令包CBW (Command Block Wrapper)中包含了标志信息,数据长度以及UFI命令等信息。其中UFI命令含有格式化磁盘、读磁盘、写磁盘和读磁盘容量等一系列磁盘管理命令。

大部分移动存储设备都采用FAT文件系统来管理文件。整个文件系统通过Mass Storage 的UFI 命令与外设的磁盘建立联系。FAT文件系统将海量存储设备上的数据大致分成5个部分:MBR区(主引导区)、DBR区(系统引导区)、FAT区(文件分配表)、FDT区(文件目录表)和DATA区(数据区)。当有USB接口的海量存储设备插上后,系统读取MBR区和DBR区来获得每扇区字节数,每簇扇区数,FAT表个数等文件系统基本信息。获取这些基本信息后从海量存储设备读取一个文件的流程如图3示。因写文件和读文件的流程没有很大的差别,在此就不累述了。



3.3 基于ESC/ P打印控制语言的打印机驱动设计

EPSON公司的打印机基本上都是基于ESC/ P打印控制语言的,不同系列的打印机的控制语言没有太大的差别。因此,我们开发的驱动程序具有比较强的通用性,针对EPSON的C63系列打印机开发的驱动完全适用C65系列和ME1打印机。

各种型号打印机的编程手册可以到EPSON的开发网站上下载。编程手册对各种控制命令作了详细介绍,如初始化打印机(ESC @)、选择图形方式( ESC (C nL nH m )、设置单元大小(ESC (U nL nH m )、打印光

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top