当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]1 引言在移动设备大力发展的今天,移动设备间的大量数据交流的需求大大刺激了嵌入式USB主机系统的发展,这必然要求嵌入式系统必须提供USB的主机驱动。而传统意义上的LISB驱

1 引言

在移动设备大力发展的今天,移动设备间的大量数据交流的需求大大刺激了嵌入式USB主机系统的发展,这必然要求嵌入式系统必须提供USB的主机驱动。而传统意义上的LISB驱动程序的开发都是USB外设驱动程序的开发,主控制器驱动大部分由操作系统来提供,开发者所要做的就是调用操作系统提供的驱动程序的接口。两大主流操作系统中,Windows不公开源码而Linux的代码却不方便移植。对于目前使用μCOS,VxWorks和QNX等OS的嵌入式系统和一些无OS的单片机系统来说,建立好一整套方便移植的USB主机驱动程序将会有更大的意义。

2硬件平台

硬件平台的MCU选择的是TMS320 DM642,他是TIC6000产品系列中的一款,基于C64x的内核,工作频率为600 MHz,兼容C6000平台上的代码。他有3个双通道视频口,可以支持多达6路视频输入输出。DM64.2的处理能力较突出,一块单片的DM642可以同时解码4路MPEG2格式的视频流。

USB主控制器选用的是Cypress的一款主/从控制器SL811HS,其既可以工作在主机(Host)模式又可以工作在从机(Slave)模式,能与全速(Full-Speed)和低速(Low-Speed)外设通讯。SL811HS可以与微处理器、微控制器和DSP无缝连接,并可直接连到诸如ISA,PCMCIA等一些总线上,图1是SL811HS的结构框图。SL811HS提供一个长度为256 B内部RAM空间,该空间的前16 B分配给控制寄存器使用,后面的则作为数据缓冲区(最大240 B)。

 

3 USB协议栈的基本知识

3.1 USB设备的拓扑

USB的拓扑结构像金字塔,位于塔尖的是根集线器(Root Hub),根集线器是系统中所有USB端口的起点,根集线器提供了一定数量的USB端口,USB设备和附加的集线器可以连接到那里。

3.2 USB主机驱动框架

主机与外设之间的信息流与互连关系如图2所示,主机与设备都被划分成不同的层次。主机上黑实的箭头是实际的数据流向,设备上对应的接口是基于不同实现的。在主机与设备之间的所有通信最终都是通过USB的电缆进行,然而,在上层的水平层之间是一种逻辑的对应关系,其最终的通信还必须是通过黑实箭头标示的方向。这个结构与TCP/IP协议栈的结构类似,因此也可以用USB协议栈来形象的描述USB主机驱动程序。

 

4 USB协议栈的实现

4.1协议栈的兼容性

为了使协议栈便于移植,整个程序使用C语言编写,将一些诸如进程与互斥操作和数据格式的定义等与操作系统和硬件平台的相关部分从协议栈的核心部分分离开来。在移植到其他操作系统时尽量维持协议栈的核心部分不动或微小改动,只在与操作系统相关程序中添加相关代码即可。

4.2 USB-HOST协议栈的框架

基于图2的USB通信层次图,以对大容量存储设备的支持为例,USB-HOST协议栈的设计如图3所示。

 

文件系统层提供与用户的交互接口。该层提供对文件的一些基本操作,诸如创建文件、删除文件、读写文件等常用操作。为与Windows兼容,可以在该层实现FAT32,FATl6,NTFS等文件系统。

HDM为每个设备建立统一的数据结构和接口提供给文件系统对硬盘进行读写扇区操作。鉴于系统中可静会同时存在IDE硬盘,HDM对两种硬盘进行统一管理,对文件系统掩盖硬盘的细节,使得文件系统在对两种硬盘操作时没有什么不同。

USB设备驱动层目前只实现了大容量设备类驱动对于其他类型的设备类诸如音频设备类、通信设备类、显示设备类、人机接口设备类驱动在本层添加,对大容量存储设备类,USB规范针对不同的设备又选用不同的协议,如:RBC,SCSH-2,UFI,SFF-8020i,QIC-157等,对于USB硬盘,使用SCSI协议。设备类驱动的协议层将来自USB硬盘的读写操作翻译成SCSI命令,而传输层则将命令分解为一个个USB事务发送到USB总线驱动层。

总线驱动层实现USB总线协议,管理USB设备和USB事务管理以及总线枚举。总线驱动层先初始化所有的主控制器,每当成功检测和初始化一个主控制器,并给这个控制器建立一套虚拟根集线器。在初始化主控制器后,注册所有已支持的驱动。如果有支持的设备插入的话,就可以自动找到相应的驱动工作。

硬件抽象层对上层掩盖硬件细节,为了增加软件可移植性,与USB控制器芯片相关的部分放在该层的HCD部分中,在移植到其他平台上时,针对该平台使用的控制器芯片改动HCD的相关内容即可。此外,数据的最终传输也将在这里完成。

4.3 虚拟根集线器VRH(Virtual Root Hub)

一些USB主控制器会集成一些根集线器,但SI811HS并没有集成集线器的功能,为了配合USB的系统拓扑结构,用软件模拟一个根集线器,称为虚拟根集线器,该集线器只有一个端口。虚拟集线器并不能替代集线器的所有功能,他只是为了满足USB的拓扑结构,同时,提供根集线器的接口,方便驱动程序被移植到其他具有根集线器功能的嵌入式系统中去。

4.4 USB带宽

USB是以1 ms的时间片进行数据传输的,在这1 ms的时间片中能传输的数据长度就是USB的带宽,如何保证在1个时间片上有最大数据的传输,则是决定USB传输速率的关键。由于USB可能被多种设备共享,所以在时间片内可能会有多种类型的USB传输,中断和同步传输对实时性要求高,因此他们在带宽的分配上具有优先权,其次是控制传输,BULK优先权最低,使用剩下的带宽。SI811HS的SOF中断标志着一个时间片的开始。在大容量设备的驱动程序中,主要是控制传输和块(bulk)传输,SOF中断开始后,安排数据传输。此外,在块传输中,数据的完整性则相对重要的多,因此,驱动程序必须提供完善的错误检测和重发机制。对于大容量设备来说,传输数据量大,传输速度也是一个很重要的指标,USB 1.1支持的最大传输速率是1.5 MB/s,但由于协议的开销,数据的传输速率却往往达不到这个峰值速率。除了对代码进行优化外,充分利用带宽将是提高速率行之有效的方法。

4.5协议栈的关键进程

4.5.1 主进程

主进程是USB-HOST协议栈最开始的一个进程,除了初始化外,他的主要任务是监测设备。该进程平时处于锁死状态,当被激活时去检测虚拟集线器的端口状态。有设备插入时,中断处理函数改变端口状态并启动主进程,主进程对端口上的设备进行枚举,并为其分配资源。相反,当有设备拔除时,主进程则将与该设备相关的资源释放。

4.5.2 中断处理函数

中断处理函数也可以看成是一个优先级最高的进程,SL811HS的几个重要的中断是:插入/拔除中断(Insered/Removed)检测从设备的插入和拔除操作,SOF定时器中断(SOF Timer)启动一个时间片,传输完成中断(USB Done Interrupt)标志一次传输的完成,中断处理函数的流程如图4所示。

 

4.5.3软件狗进程

当有两个中断同时到达时,处理器可能会丢失掉一个中断没有处理,可以设置一个软件狗进程,定时执行中断处理函数。当有丢失的中断时,软件狗会将这个中断处理掉。

5 结 语

本文主要讨论了嵌入式系统USB-HOST协议栈的设计思路,整个软件基于DSPBIOS系统在CCS的编译环境下调试通过,经过测试,运行稳定。软件的编写采用移植性好的C语言编写,并将与平台相关的部分代码与核心代码分开以增加软件的可移植性。此外,为软件的功能的升级也预留了接口。

如今,随着移动电子产品的大量出现,设备之间直接通信的需求也越来越大,USB占据了嵌人式设备与其他设备之间通信的主要角色。角色也在不停地变化,在这次传输中可能是主机,下次传输就有可能扮演从机的角色,OTG规范在这种需求下诞生,符合USB OTG的设备,既可以作为Host,也可以作为外设来与另一个OTG设备直接实现设备到设备的通信。可预见的将来,嵌入式USB系统的发展趋势将是USB OTG。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭