1 引言
随着移动存储业的发展及数码产品的普及,数据采集系统、工控行业和嵌入式用户对移动存储的需求越来越大,也对数据移动存储盘提出了更高的应用要求,包括到地矿数据采集行业用户、水文系统数据采集行业用户、仪器仪表制造行业用户、铁路、长途汽运等交通系统数据采集用户、油田数据采集系统用户、单板系统的软件升级用户、纺织系统数据采集用户、银行等。但由于之前多数数据采集设备、工控机及嵌入式系统不具备USB数据输入输出标准接口,所以在USB数据存储方面一直得不到很好的普及。业界和用户的需求使得嵌入式USB主机的研究成为USB研究领域的一个新的方向。
本文介绍了一种基于TTL串口的USB主机系统,通过TTL串口(或并口)转接出USB接口,系统原理图如图1所示。嵌入式设备需要通过TTL串口,按照USB主机系统的串口通信协议与USB主机系统进行数据传输和通信,主机系统负责优盘的检测和数据的存储。本文详细介绍了该系统的设计思路,并给出了硬件设计和USB 主机的底层驱动软件的设计方法。

2 USB主机工作原理
对于我们设计嵌入式USB主机,可以参照PC上的USB主机。对于PC上的USB主机,其硬件方面由一个USB主机接口芯片控制,这个接口芯片在通过PCI总线与PC机通讯,其余还有电源管理部分;软件方面主要有三部分:USB接口驱动程序,负责CPU与USB主机接口芯片的通讯,负责底层USB包的接收和发送;USB协议栈驱动程序,负责解析设备驱动程序对USB的各种操作命令,并在解码后发给底层驱动程序;设备驱动程序,也就是上层的应用程序,包括操作系统提供给用户的API,以及用户自定义的对USB设备的操作,比如发送设备特有的USB命令请求。PC上的USB主机端软件结构图如图2所示。

3.系统结构
整个系统的核心芯片选用Motorola公司的DSP56f803和TDI公司的USB HOST控制器UHC124。整个系统由DSP56f803模块、UHC124模块、UART串口模块。
3.1 DSP56f803模块
系统的核心控制器,包括基本硬件和编写的固件。实现的功能包括:实现与UHC124的物理连接和通讯,并且配置UHC124的控制寄存器;配置USB外设,实现USB通信,实现USB Host要求的各项配置和数据传输的要求,接受USB Host的命令来管理USB外设;实现FAT16文件系统。
3.2 UHC124模块
USB HOST控制器的硬件部分。实现USB Host的接口,配置下行USB设备,管理USB总线电源。实现的功能包括:实现各种USB Host动作,协调内容各项功能,与外围主控制器通讯;存放传输的USB数据,设置USB传输特性;与作为主控制器的DSP56f803接口连接;管理USB电源,连接下行USB设备,总共带有4个下行USB设备端口。
3.3 UART串口模块
与用户通过串口进行协议通讯的固件部分。实现自定义的串口通讯协议,即根据自定义的串口通讯协议,解析串口通讯数据包,调用相应的文件操作接口函数,实现客户的文件操作命令。
4.硬件设计
4.1硬件架构
硬件主要模块包括USB HOST、主控芯片、外部SRAM、译码指示和电源部分。主控芯片和USB HOST芯片连接,控制USB HOST芯片与移动存储盘通讯。考虑到需要给用户预留数据Buffer,所以外扩SRAM。因为芯片工作电源不同,所以要提供两组直流电源,译码指示电路采用3个LED指示灯,一个电源指示,一个指示移动存储盘的接入,另一个指示了工控机与移动存储盘通讯工作中。

4.2 USB主控芯片的选型
对于主控芯片的选型应该会有多种选择,只要带有UART接口,程序存储空间足够,程序的执行效率可以满足系统的功能需求即可。对于USB主控芯片,目前市面上出现的主要有3种:Sypress公司的SL811、
Philips公司的ISP1161和TDI公司的UHC124。其中,SL811较为常见,笔者也曾用过此芯片进行过第一代产品的开发,综合各方面的选型因素考虑,第二代产品选用了UHC124。
UHC124与其他两款芯片的主优势在于:支持包传送,最多可一次性传送16个USB 协议交互数据,而不会向CPU产生中断,而SL811是每次都会产生中断,大大占用了CPU的资源;支持所有的USB传输类型,包括控制传输、块传输、中断传输和同步传输,且数据包最大可达到1023字节;具有2K的数据存储区。