当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]一种嵌入式USB MiniHost系统设计与实现

摘要:设计并实现了一个嵌入式USB主机系统的硬件和软件,用于解决USB设备不能脱离PC主机的问题。并在设计的硬件和软件基础上利用嵌入式C语言编制了具有USB Host功能通用固件库。并利用这个固件库实现一个具有并口到USB接口的打印转换器。
关键词:嵌入式系统;通用串行总线(USB);USB主机;USB设备

    在USB的拓扑机构中居于核心地位的是主机(Host),任何一次USB的数据传输都必须由主机来发起和控制,所有USB设备都只能和主机建立连接,任何两个外设之间或是两个主机之间无法直接通信。而目前,大量扮演主机角色的是个人电脑PC。目前所买到和使用的USB设备基本都是只具备USB设备的功能而不具备主机功能,比如USB接口的移动硬盘、数码相机、打印机等。所有这些设备都只能在USB Host上使用,也就是通常只能通过PC来进行相互的文件和数据交换。没有了PC主机,这些设备是不能互联的。

1 USB系统模型和拓扑结构
    最简单的USB系统模型组成是以USB主机为核心,以外围的USB设备为特定功能的设备模块。即USB提供的是主机和设备中间的一种数据通信服务。此外,为了构建更复杂的USB系统,还需要加上USB集线器(Hub)。
    USB主机包括PC或嵌入式系统两种类型,每一次USB数据通信都必须是由USB主机来发起的(远程唤醒模式除外),主机管理着每个USB设备。即使新兴的USB On-The-Go设备,其核心部分仍然是嵌入了USB主机的功能。本方案主要是基于嵌入式USB主机的USB系统模型。
    USB的拓扑体系由3种元素组成:主机、Hub和设备,通过Hub的级联,构成了层次化的星形结构。USB的拓扑结构如图1所示。



2 硬件设计
2.1 电源电路
    电源电路的组成如下:
    系统采用双电压给电方式;触发器采用3.3 V给电;1284收发器采用5 V和3.3 V的双电压给电方式。在交流适配器中将干扰过滤后,提供5 V直流电压。3.3 V直流电压由固定输出电源模块来提供。电源系统结构如图2所示。


2.2 USB接口电路
    为了给USB总线安全的提供电源,采用电源管理芯片,利用MCU来管理USB总线的电源。系统reset时,为了使与其连接的USB设备不进行误操作,关闭USB电源;总线电路异常而导致过流(over current)时,系统自动关闭电源并通知MCU。并且还采用压敏电阻(vatistor)来防止静电(ESD);采用共模轭流线圈(Common Mode Choke Coil)来减少对总线差模数据的干扰。USB Host接口部分的电路如图3所示。

[!--empirenews.page--]
2.3 MCU程序下载电路
    由RS232端口来下载MCU程序,对应的电路图如图4所示。


    DR9插座和MAX232置于单独的下载板上,利用8PIN插座和主板(SPP/USB转换主板)来连接。异步串行接口下载程序时,各管脚设置如下所示:
    P60=‘L’,P61=‘L’;
    MD0,MD1,MD2=‘HHL’。
2.4 Reset电路
    在MB90F337内部有上电复位(power on reset)功能,在外部reset电路发生外部reset请求。外部reset电路的初步想法如图5所示。使用的复位芯片(reset chip)是PST9231。reset时间利用外部电容,设置为40~50 ms之间。



3 USB Host库设计
    MiniHost部分负责USB Host部分的操作,它将完成如下功能:初始化MiniHost部分电路;支持USB 2.0高速和低速设备;注册回调函数;设备的枚举,包括BUS Reset、SETADDRESS请求以及设定控制端点的最大包的大小:SETUP请求操作;Bulk传输请求操作。
3.1 Time Module部分
    设置一个PWCTimer,使其再0.1ms中断一次,在这个中断处理程序中对记录时间的全局变量加1,也就是说系统中时间的单位是0.1ms。如果记录时间的全局变量溢出,则将这个变量的值设置为0。[!--empirenews.page--]
    初始化定时器代码如下:
    
3.2 MiniHost部分
    MiniHost Module主流程图如图6所示。


    当一个新的传输请求开始处理时,将会执行如图7所示流程。

[!--empirenews.page--]
    1)发送SETUP阶段请求;
    2)发送块请求(BULK Request);
    当一个传输请求在一个阶段处理不完时,将会执行图8所示流程。比如控制传输(Control Transfer)需要3个阶段。
    3)控制传输(Control Transfer)结束,向EndPoint结构体中写入传送完成的结果,并根据传输的类型做相应处理。
    4)块传输(BULK Transfer)结束,向EndPoint结构体中写入传送完成的结果,并向并口上发送ACK BUSY信号。

4 并口到USB接口打印转换器实现
4.1 打印转换器功能描述
    利用上述系统,设计一个能够把并口转换为USB接口的打印转换器,这个转换器只是把从并口收到的数据转发到USB接口上,然后根据USB接口规范,把数据重新包装后发送给USB打印机,转换器中并不需要对并口的数据内容进行解释,只是转发。
4.2 并口打印机数据传输过程
    并口打印机采用IEEE1284标准进行通讯。IEEE1284标准为PC和外设之间的通讯定义了双向通讯协议,通过该协议PC和外设之间的双向数据传输率可以比以前提高20到50倍,同时该协议保持了软件的向下兼容性。IEEE1284标准一共定义了5种数据传输模式,即正向传输模式(兼容模式),两种反向传输模式(半字节模式和字节模式),两种双向传输模式(EPP模式一高速增强并行端口和ECP模式-扩展并行端口)。
打印电缆我们采用D25接口,并行口一般有25个引脚,其中包括8位数据线,5位打印机状态线,4位控制线。
4.3 USB接口打印机数据传输过程
    打印设备它们能够把页面描述语言(PDL)转换为人们能够读懂的打印页面。因此需要制定打印机如何来接收这些PDL格式的数据,如何能够返回打印机的状态信息。常规的并口打印机用一个双向打印端口来只认识这些语言。USB用一个Bulk OUT端点来发送这些数据到打印机,并用一个Bulk IN端点来发送状态信息或其他数据。对于现已存在的方式来说,能够在主机中通过Bulk IN端点使用查询机制来检索并口的状态信息。一些PDL允许打印机返回大量的数据,诸如一些字体定义等信息。如果打印机实现了这个功能,它将使用用于传送回状态信息的Bulk IN端点来传送回这些数据。
4.4 功能设计
    1)并口部分功能
    ①为了方便处理打印并口只支持IEEE 1284-1994 SPP模式。
    ②打印数据只支持单方向(数据:PC→转换器)。
    ③BUSY和ACK的信号时序类型为A-B(Ack-in-Busy)。
    2)USB打印机接口功能
    ①支持USB Ver2.0 Full Speed。
    ②符合Universal Serial Bus Specification 2.0。
    ③符合Universal Serial Bus Device Class Definition for Printing Devices规范。
    ④控制传送的数据最大值为64字节。
    ⑤批量(Bulk)传送的数据最大值为64字节。
    ⑥不处理USB Hub。
    3)内部功能
    ①定期取得打印机的状态(以1秒为单位),反映到并口信号线中(利用USB控制传送的GET_PORT_STATUS)。
    ②并口的收信缓冲存储为64字节,接收到64字节后由USB接口传送给打印机。
    ③并口的收信处理中设置了超时(1秒),一旦超时发生,接收到的数据由USB接口传送给打印机。
4.5 并口模块
    负责和并口相关的工作。从并口读取数据放入数据缓冲区。设置和读取并口状态和控制端口。通过读取时间,来生成并口的时序。使用中断(Interrupt)对并口的InputPrime信号进行相应的处理。使用中断(Interrupt)对并口的nStrobe信号进行相应的处理。
4.6 主模块(Main Module)
    主模块负责初始化整个系统,包括Parallel Module,MiniHost Module以及整个系统的变量。编写一个回调函数,此函数在设备状态(连接或断开)改变时调用。在检测到设备连接后,调用MiniHost Module枚举功能,枚举打印机,并把打印机设置为某种模式。检查是否要发送的控制或批量传送。如果要,则把它们发送出去。

5 结束语
    本论文设计了一种嵌入式USB主机系统,并完成了该系统的硬件和固件的实现和调试。为了验证系统,实现了打印机IEEE 1284中的SPP模式协议到USB打印设备类协议转换器。在硬件设计中,系统采用富士通90330系列MCU中的MB90F337完成中央控制器和USB Host控制器,电路设计简洁。文章为其他嵌入式USB Host设备的开发提供了设计参考。

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

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 信息技术
关闭
关闭