
2010年6月
山东科学SHANDONG SCIENCE Vol.23No.3Jun.2010
收稿日期:2010-
04-09基金项目:山东省重大科技专项(2007ZHZX10503)
作者简介:侯冬冬(1977-),男,硕士,助理研究员,主要从事嵌入式系统开发。E-
mail :houdd2005@yahoo.com.cn 文章编号:1002-4026(2010)03-0071-03基于DSP 的嵌入式USB 主机系统设计
侯冬冬,李明强,于良杰,庄汝科,王知学
(山东省科学院自动化研究所,山东省汽车电子技术重点实验室,山东济南250014)
摘要:提出了一种在无操作系统的小型智能设备中实现USB 主机功能的方法,所设计的嵌入式USB 主机系
统,可以应用在实时数据采集、电话录音、监视录像等大容量数据移动存储的场合。
关键词:USB 主机;DSP ;海量存储
中图分类号:TP334.7文献标识码:B
USB 与其它通信接口比较,最大特点是易于使用,其理论传输速率远高于一般的串行总线接口[1]。从
普通计算机用户、计算机工程师,到硬件芯片生产厂商,都已经完全认可了USB 接口。厂商对于USB 的硬件和软件支持也越来越完善,现在开发一个USB 外设产品,所需要投入的成本和时间大大降低。但是,随着USB 应用领域的逐渐扩大,人们希望USB 能应用在各种非计算机领域中,尤其是在移动通讯、嵌入式系统领域,希望能通过PDA (Personal Digital Assistant ,个人数字助理)等移动设备来直接和USB 外设通信。然而,非PC 领域的应用,正是USB 的一个致命弱点。这是由USB 总线的拓扑结构决定的,见图1。
图1USB 总线的拓扑结构从USB 的拓扑结构可以看出:USB 通信中居于核心地位的是USB Host
(USB 主机),任何一次USB 的数据传输都必须由USB 主机来发起和控制,
所有的USB 外设都只能与USB 主机建立连接,任何两个外设之间或是两
个主机之间是无法直接通信的[2],而目前大量的扮演USB 主机角色的是计
算机。因此,如何将USB 应用到嵌入式领域、如何实现USB 点对点(Peer to
Peer )的通讯,开始成为当今研究的热点。
1嵌入式USB 主机系统硬件设计
USB 协议非常复杂,微处理器又是整个系统的核心,执行的功能非常多,而当USB 设备端电源变化时,系统也需要很强的稳定性。因此最好选
一款处理能力相当强的处理器,16位CPU 性能优于8位,而32位的微处理器当然更好,但价格也较昂贵。
因此,我们认为16位的处理器是比较好的选择。我们选用的就是Motorola 公司的16位微处理器DSP56F807(160引脚),它具有60K 的Flash 程序存储空间,这正好符合USB 功能复杂、代码多这一特点,再
就是片内资源丰富(2路SCI 、1路SPI 、8路12位精度的A /D ,32个GPIO 引脚等等),支持在线编程、调试,通
过Motorola 的开发环境和串口可以监测程序运行情况,调试非常方便[3]。
对于USB Host 芯片,可以选择的余地并不多。现在比较常用的只有两种:Cypress 公司SL811HS /SL811HST 和沁恒公司的CH375。在这两者当中,SL811HST 是应用最早最多的。这两种芯片的功能是完全一样的,都实现了USB 主控制器的硬件接口。DSP56F807与SL811HST 芯片的简化接口电路如图2所示。
山东科学2010
年
图2DSP56F807与SL811HST 芯片的简化接口电路
2嵌入式USB 主机系统软件设计
传统意义的USB 开发,仅仅是对其外设的开发,
PC 机的USB 底层驱动程序和USB 主控制器驱动程序都是由Windows 等操作系统提供,
有关这些驱动程序的细节都被集成在Windows 操作系统中。由于Windows 源码不公开,这些细节资料就无从得到。所以,要设计USB 主机,就必须自己设计USB 主机驱动程序
。
图3PC 中USB 主机与设备的结构体系模型2.1
基于PC 的USB 主机系统分析PC 上完整的USB 系统结构如图3所
示。
从图3中可以看出,
USB 系统的软硬件资源可分为3个层次,即功能层、设备层
和接口层。
接口层就是具体的物理层,主要实现
物理信号和数据包的交互,也就是主机端
的USB 主控制器和设备端的USB 总线接
口之间实际数据流的传输。设备层主要提
供USB 基本的协议栈,执行通用的USB 的各种操作和请求命令,从逻辑上讲,就是USB 系统软件与USB 逻辑设备之间的数据交换。最后,功能层提供每个USB 设备所需的特定的功能,主机端的这个功能由用户软件和设备类驱动程序提供,而设备端是由设备的功能单元来实现。
2.2嵌入式USB 主机系统软件设计
嵌入式USB 主机系统软件结构体系如图4所示。从图中可以看出:这里的USB 主控制器就是USB Host 芯片,应用程序是基于微处理器DSP 的。由于在不同的场合,采用的微处理器是不同的。从理论上说,任何一种CPU 都可以成为USB 主机系统的核心。因此,为了使设计出的USB 主机系统具有通用性,整个系统的软件设计就不再依赖于任何操作系统。通过微处理器的中断来调度程序的风格完全可以满足USB 主机系
27
第3期侯冬冬,等:基于DSP 的嵌入式USB 主机系统设计图4嵌入式USB 主机系统软件结构
统的要求,且不依赖于任何操作系统,可移植性好。
(1)USB 主机通过简单的数据线上的电平变化来检测USB 设备的接入或移出,
如果是设备接入,则主机给设备供电→主机复位设备→设备通过缺省地址0与主机
通讯→主机给设备分配地址→主机请求设备的一系列功能和设备描述符→主机得到
设备描述符并进行分析→主机根据分析结果对设备进行配置。因此,通过顺序的编
程和中断的调度,利用汇编和C 语言完全可以实现主机系统标准的USB 活动。这是
USB 主机软件的第一部分,主要实现读取USB 设备的信息,并对USB 设备进行配置,
从而判断是哪一类USB 设备,并确定下一步应加载哪一类设备类程序。
(2)实现设备类的协议软件。USB 协议规定了人机接口设备类(HID )、大容量存
储设备类(Mass Storage )和音频类等一系列的设备类型,
用于支持不同类型的USB 设备。由于PC 拥有足够的RAM 和大容量的磁盘存储空间,因此,可以支持几乎所有的USB 设备类,而我们设计的USB 主机系统是基于微处理器的,限于系统的性能、要求及成本,只需要支持一种或很少的几种设备类就可以了。USB 的每种设备类都有其专门的协议,在此就不一一介绍。
(3)用户软件。我们应该根据用户不同的需求编制不同的数据处理软件。如果USB 主机系统需要支持USB 移动存储设备,也就是USB Mass Storage 设备类,由于这个设备类要求支持FAT 文件系统,要以文件的形式管理和存储数据。因此,作为用户,除了要设计自己的数据处理程序以外,还要建立一个完整的文件系统。3应用前景
根据以上方法所设计的嵌入式USB 主机系统,完全可以实现数码相机与USB 接口的打印机直接连接,也可以应用在实时数据采集、电话录音、监视录像等大容量数据移动存储的场合。另外,软件经过很少的修
改就可应用到ucos-II 、eCos 等嵌入式系统平台中,实现USB 主机和设备的通信。因此,基于DSP 的嵌入式
USB 主机系统有着很好的市场前景。
参考文献:
[1]韩喜春.计算机总线技术应用实例[
M ].北京:化学工业出版社,2010.[2]胡晓军.USB 接口开发技术[
M ].西安:西安电子科技大学工业出版社,2005.[3]邵贝贝.Motorola DSP 型16位单片机原理与实践[M ].北京:航天航空大学工业出版社,2003.37
