2024年8月13日发(作者:)
基于
MC68HC912D60A的嵌入式USB Host
基于MC68HC912D60A的
嵌入式USB Host
——及其在城市轻轨铁路刹车系统中的应用
1 综述
从问世,到协议规范2.0版本,USB(通用串行总线,简写为USB)在不断
自我完善,并走向成熟。从普通计算机用户,计算机工程师,到硬件芯片生产厂
商,都已经完全认可了USB。厂商对于USB的硬件和软件支持的也越来越完备,
现在开发一个USB外设产品,所需要投入的成本和时间大大降低了,几年前是
没有办法做到这一点的。但是,随着USB应用领域的逐渐扩大,人们对于USB
的期望也越来越高,希望USB能应用在各种计算机领域中,尤其是在移动通讯
领域中,希望能通过PDA等移动设备来直接和USB外设通信,使得USB能应
用在没有PC的领域中。
非PC应用领域?
这正是USB一个致命的弱点。USB的拓扑结构中居于核心地位的是Host
(也称为主机),任何一次USB的数据传输都必须由Host来发起和控制,所有
的USB外设都只能和Host建立连接,任何两个外设之间或是两个Host之间无
法直接通信。而目前,大量的扮演Host角色的是个人电脑PC。因此,“如何将
USB应用到嵌入式领域?如何实现USB点对点的通讯?”等问题,开始进入了
USB开发者的讨论议程。正是在这种新的需求之下,USB Host的嵌入式应用成
了USB领域新的兴奋点。
本项目也就是在嵌入式USB Host技术即将起步发展的背景之下产生的。
传统意义的USB开发,仅仅是对USB外设的开发,USB底层驱动程序和
USB主控制器驱动程序都由Windows等操作系统提供,有关这些驱动程序的细
节过程都蒙着一层神秘的面纱。所以,要设计USB Host,就须设计这两部分驱
动程序,Windows源码不公开,这些细节资料就无从得到。
第1页(共10页)
基于
MC68HC912D60A的嵌入式USB Host
2 项目的工程背景
在与铁道部合作的“城市轻轨铁路辅助刹车系统”项目即将进入收尾阶段。
其中作为列车运行记录的“黑匣子”是较为独立的一个子系统,主要是采集2
路CAN总线上的信息,并进行存储。但是,这样一个系统的弊病是很明显,因
为造价太高!每个系统就要配备一台PC,而用途仅仅是USB和PCI总线的数据
传输,着实“大材小用”,而且运行和维护起来很不方便。试想,每辆轻轨列车
上配置一台PC,让司机去维护、使用,简直是很大的安全隐患。因此,项目的
进一步改进就是要去掉PC,但是,没有了PC,如何来实现USB设备的功能?
设计自己的嵌入式USB Host?这是一个新奇而大胆的想法!
所以,整个项目的重点由最初的“黑匣子”系统搭建(CANUSB
........................
数据采集+
........
存储),转移到了,USB 的设计。因此,方案定为:MC68HC912D60A
............
Host
..........................
作
.
为系统核心控制器,来采集
............
CAN
...
总线的数据,增加
........
USB
...
主控制器芯片,和
........
MC68HC912D60A功能。
.............
接口连接,实现
.......
USB Host
..........
3 系统结构
整个系统的核心由Motorola公司的增强型准16位单片机MC68HC912D60A
和Cypress公司的USB Host/Slave接口芯片SL811HS组成。系统功能如图1所
示。
注:图中虚线箭头表示逻辑连接;实现箭头表示物理连接和实际通信
图1 嵌入式USB Host系统框图
第2页(共10页)
基于
MC68HC912D60A的嵌入式USB Host
由图1可知,整个系统由6大模块组成:
MC68HC912D60A
:系统的核心控制器部分,由基本硬件和编写
.............
模块
..
的系统软件组成。实现3大功能模块,主要包括,USB Host模块,包
括USB Host驱动程序(用于配置和实现USB Host功能),USB Host控
制器接口和驱动程序(用于和SL811HS的物理连接和通信,并对
SL811HS进行配置);USB 设备模块,包括USB设备用户应用程序(在
单片机上实现对外围USB设备的读取,通常是一些API,用于读、写、
格式化等命令),USB海量存储FAT32文件系统(按照Windows标准,
编写外围连接的USB Flash存储器的文件系统,增强了系统的通用性和
扩展性),USB Flash设备驱动程序(即通常PC平台上开发的USB外设
的驱动程序,配置USB外设,实现USB通信,实现USB Host要求的
各项配置和数据传输的要求,接受USB Host的命令来管理USB外设);
CAN总线模块,包括4个CAN模块,采集外部CAN总线上发来的4
路CAN数据,协调每1路的数据,存储在MC68HC912D60A的缓冲区
中,进行USB传输做准备。
SL811HS
模块:基本是USB Host控制器的硬件部分。实现USB Host
.........
的接口,配置下行USB设备,管理USB总线电源。包括的功能模块有,
USB Host控制器(核心逻辑控制部分,实现各种USB Host动作,协调
内容各项功能,与外围主控制器通讯),RAM缓冲区和系统寄存器(存
放传输的USB数据,设置USB传输特性),外围主控制器或CPU接口
(与作为主控制器的MC68HC912D60A接口连接),USB根Hub(管理
USB电源,连接下行USB设备,总共带有4个下行USB设备端口)。
CAN
:收集轻轨铁路CAN总线系统送来的数据。目前,直接
...
总线模块
....
收集一般CAN总线的数据,用于模拟实际的系统。
键盘模块
:通过中断方式和并口与MC68HC912D60A连接。用于系统
....
独立运行时,键入命令,控制整个USB Host的工作。比如,按键1代
表在LCD上显示USB外设的信息、按键2代表从系统中删除USB外
设等。
LCD
:显示USB Host系统的信息。通过SPI来控制。
...
模块
..
SCI
模块:通过RS-232来和PC通讯,用于系统调试。
.....
4 硬件设计
4.1 核心芯片的选用
整个系统的核心芯片是Motorola公司的MC68HC912D60A和Cypress公司
的USB Host接口芯片SL811HS。
USB系统非常复杂,USB Host是整个USB系统的核心,执行的功能非常多,
需要一款处理能力相当强的单片机控制,而且系统需要很强的稳定性,在面对
USB外设端电源变化时,有很强的抗干扰能力。而16位CPU12性能优于8位
和11系列单片机的CPU,而32位的单片机系统过于庞大,因此,选用
MC68HC912D60A是比较合适的选择。
4.2 MC68HC912D60A的特点
第3页(共10页)
基于
MC68HC912D60A的嵌入式USB Host
具有60K Flash。整个USB Host功能复杂,代码量很大,60K正好符合
这一特点,使得充分利用单片机片内资源,不用外扩Flash。而且USB
Host功能的实现需要不断的调试,USB外设的变化,就需要改变USB
Host的代码,这些都充分利用了MC68HC912D60A集成Flash存储介质
的优点。
带有SCI,这样,在系统调试阶段,就可以通过PC串口检测系统运行
情况,便于调试,带来了很大方便。
带有SPI,这样,可以外扩LCD液晶显示器,这样,就可以给“黑盒子”
用户一个友好的界面,便于操作,符合产品的规范。
多达48个GPIO,可以充分的扩展系统资源,比如与USB Host芯片的
通讯,键盘扫描行列的连接。其中部分复用的GPIO,比如AD模块和
PWM模块,为以后系统的扩展留下了充足的余地。
背景调试模式BDM的支持,使得芯片的调试大大方便,加快了产品开
发的周期。
丰富的中断源,为系统在非操作系统支持下运行,提供了充分的保障。
比如,整个USB事件的响应、键盘的扫描、SCI的通讯、CAN的数据
接收与发送都是通过中断来调度的。
带2个CAN模块,包括2个接收和3个发送数据缓冲区,适合“黑盒
子”中数据吞吐量大的特点。循环自检功能,可以最大限的减少系统数
据的错误率,这点很关键。
其他的资源都最大限度的扩展了系统的功能。
因此,选择MC68HC912D60A作为核心控制器,是非常好的选择。
4.3 SL811HS的特点
SL811HS是嵌入式的USB主机或外设接口控制器。支持USB 1.1的全
速和低速设备。
虚拟的外部总线,使得仅需占用外接CPU的1个寻址空间。数据线为8
位。只需要9根线用于系统的数据通讯,正因为如此,整个项目在为
MC68HC912D60A扩展SL811HS芯片时,没有使用MC68HC912D60A
的扩展模式和扩展总线。这样做的好处有两点:一是节省了
MC68HC912D60A的GPIO,整个PORTA和PORTB就可以用来作为普
通的GPIO使用;二是,一旦MC68HC912D60A用于扩展模式,那么其
内容多达60K的Flash就不能用了,这无疑是资源的浪费。但是这样扩
展,也存在一定缺点:主要是芯片间的访问速度受到限制。但考虑的系
统对于USB全速设备的要求不是很高,速度问题非系统设计的首要矛
盾。因此就忽略了上述矛盾。
16个内部寄存器,可以对USB Host进行充分的控制。内部多达256字
节的RAM,为USB传输建立了足够的缓冲区,大大提升了系统性能。
操作电压为3.3V,但是IO断口为5V Tolerant,因此SL811HS可以自由
的和5V或3.3V的CPU系统连接。
4.4 系统用到的其他主要器件:
由于MC68HC912D60A不能直接和3.3V的SL811HS芯片系统直接连接。
因此,系统用了两片74HCT245A做为总线双向控制,一片用5V供电,另一片
第4页(共10页)
基于
MC68HC912D60A的嵌入式USB Host
用3.3V供电,实现了MC68HC912D60A之间的顺畅的连接。
LCD部分使用了74HC164实现串转并,将SPI的串行信号发送给LCD的并
口。LCD采用的HY12864,这是一款中文点阵的LCD,不带中文字库。
4.5 系统各主要模块原理图
4.5.1 SL811HS为核心的USB Host接口电路
如图2所示。
图2 SL811HS外围电路
4.5.2 MC68HC912D60A的最小系统
和最为简单的Motorola系列单片机的外围最小系统一致,包括晶振电路、
RS-232电路、BDM接口等,此处从略。
4.5.3 键盘接口电路
如图3所示。
第5页(共10页)
基于
MC68HC912D60A的嵌入式USB Host
图3 键盘接口电路
4.5.6 LCD接口电路
如图4所示。
图4 LCD接口电路
5 软件设计
系统软件的开发,基于Metrowerks公司的CodeWarrio集成开发环境,采用
C语言编程。
5.1 USB Host协议框架
简单来说,USB系统包括两部分,模型如图5所示:
USB Host,即USB 主机:
USB Slave,即USB外设。
USB系统的通信是由USB Host来控制的。USB Host不单纯指的是硬件,
而是嵌入式或PC系统的软件和硬件的集合。这与以太网中的主机的概念有所不
同。以太网中的Host是一台负责控制网络通信,为网络终端提供服务的计算机。
第6页(共10页)
基于
MC68HC912D60A的嵌入式USB Host
因此,USB Host是一个全新的概念。而设计嵌入式的USB Host尤其要深入把握
和理解USB系统和主机的通新。
图5 USB系统Host与设备系统模型
USB Host分为3个层次:
USB总线接口;
USB系统;
用户。
关于USB 设备的结构已经被大家所熟知,这里不再冗述。
如图6所示,描述了USB软硬件的通信流程。
USB Host为USB系统提供的功能有:
检测USB外设的接入和移出;
管理Host和外设之间进行的USB标准流量控制;
枚举外设;
管理Host和外设之间的数据流;
搜集系统状态和性能的统计信息;
Host与外设之间的电气接口,包括供电。
整个USB Host功能时的简单的软件流程如图7所示。
第7页(共10页)
基于
MC68HC912D60A的嵌入式USB Host
图6 USB Host通信流程
第8页(共10页)
基于
MC68HC912D60A的嵌入式USB Host
图8 USB Host简要软件流程
主要软件包括USB Host和USB外设功能模块。他们既相互独立,但又互相
调用,共同完成嵌入式USB Host的功能。
5.2 其他模块的软件设计
键盘模块采用行扫描法进行设计。8个IO口连接4×4的16键盘。将8个
IO分为两步分,前一半的4个IO口作为输入,后一般的4个IO口作为输出。
一次通过软件实现。此处不再赘述。LCD模块主要是需要建立所需的字库。CAN
模块不是系统的核心,因此,也不作为重点叙述。这里仅是简单的采集总线上的
数据。在项目的后期,就要重点对于采集的正确率、速度等进行调试。
6 项目的应用前景分析
1、经济效益和市场前景
以Motorola 16位单片机MC68HC912D60A为核心的“黑盒子”项目完成后,
将直接应用在马上就要建成的北京城市轻轨铁路系统中,每辆列车安装一部“黑
第9页(共10页)
基于
MC68HC912D60A的嵌入式USB Host
匣子”系统,为北京的城市建设服务。根据论证,如果,系统运行稳定,达到预
期目标的话,将向整个铁路系统推广。中国幅员辽阔,铁路线纵横驰骋,如果每
辆机车上都安装一套这样的“黑匣子”系统,那么需求量将是非常大的,同时将
带来很大的经济效益和市场前景。
2、嵌入式USB Host作为USB的延伸,国外处于刚刚起步的阶段,仅有不
多的半导体公司提供接口芯片,还没有完整的嵌入式USB Host产品上市。厂家
和USB论坛所能提供的Demo也限于依靠嵌入式操作系统WinCE和Linux等。
国内的研究也刚开始起步。因此,项目研究具有一定的领先和前瞻性。这里,以
MC68HC912D60A为核心设计嵌入式USB Host,充分利用16位Motorola单片
机的资源和优势,具有很强的创新性!
3、在开发USB Host,编写底层驱动程序的同时,注意了整个系统的可移植
性,使得有关USB通信的各个任务模块化,尽量编写API。这样,就可以在不
同的操作系统、不同的主控制器CPU上尽量方便的实现USB Host的功能。这就
可以为日后嵌入式USB Host的产品化和进一步研究打好基础。这个工作有待进
一步完善。
4、可以预见,嵌入式USB Host最大市场和增长点在于移动家电,比如PDA
与USB记忆棒传递数据、MP3之间传递歌曲、数码相机连接打印机。因此,系
统的研究具有很强的应用背景和市场前景。以MC68HC912D60A为核心,对于
16位Motorola单片机在数码家电产品中应用将起到推动作用。如图9所示。
图9 USB Host在数码家电中的应用
【参考文献】
1、MC68HC912D60A Technical Data,2001,MOTOROLA
2、SL811HS Datasheet,Cypress,2001
3、SL811HS/SL811HST Application Notes,Cypress,2001
4、Open Host Controller Interface Specification for USB,Compaq,Microsoft,
National Semiconductor,1999
5、Enhanced Host Controller Interface Specification for USB, Intel, 2001
6、USB Specification 1.1,1998
7、MC68HC11单片机开发技术,邵贝贝等编著,清华大学出版社,1995
【致谢】
在这里,感谢邵贝贝教授在整个项目进行期间热情的关怀和巨大的帮助。感
谢龚光华、薛涛、刘永毅、蒋俊峰、龚辉等同学的大力支持和帮助,尤其是薛涛
为项目提供了很多有用的资料。还有,就是要感谢Motorola公司的有关人士,
他们提供了大部分的开发系统,并给予了大力的支持,使我顺利的完成了项目。
第10页(共10页)
发布评论