cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1794|回复: 0

USB主机(HOST)的介绍与开发过程(转发)(

[复制链接]
发表于 2004-11-6 04:06:07 | 显示全部楼层 |阅读模式
USB主机(HOST)的介绍与开发过程

作者:     Truly      Email: box00@21cn.com       QQ:21298058
发表于  http://www.embedzone.com/bbs/index.asp 嵌入式社区
转载请保留此说明文字,并注明出处

  项目名称:USB HOST(主机)与OTG(ON THE GO移动互联)功能的实现
  项目要求:实现USB HOST功能,并实现相应的设备类的驱动与应用,第一阶段为实现海量
存储设备类(Mass Storage Class)在系统上的应用。以后将增加其它的类设备的驱动与功能,如
HID设备、USB图象设备,USB音频设备……

  本项目将实现USB主机(HOST)功能与USB OTG功能,应用于需要与USB设备连接的场合。由
于USB规范中严格遵从主、从关系,或者说是主机与设备的分类,一切的数据传输与命令的传送都
是由主机发现与控制的,设备间不能直接通信与交换数据,如USB接口的数码相机或者是U盘,就
不能直接通过打印机打印出它所存储的图片与文档,而USB OTG规范的出现,改变了这一限制,
从而使得设备之间的直接连接成为了可能。
  实现设备间的直接连接,有两种方法,一种就是最新的OTG方式的实现。还有就是传统的主、
从结构的连接,而芯片技术的发展与厂商努力的结果,在OTG规范之前,也有可以实现这个要求的
双规范的USB主控/设备芯片,如CYPRESS公司的SL811HS、CY7C637300,PHILIPS ISP1161A1
等,这些芯片是面向嵌入式系统的应用而优化设计的,可以很方便地通过通用的MCU和CPU之间的
控制通信实现用户所需要的主机/设备功能。此外,还有已经把USB主机控制设计到了MCU里面
的,如三星的ARM内核的S3C2410X就集成了两个USB HOST,控制器还可以在软件的控制下实现主
机与设备模式的切换。USB的主机通过主机控制器与USB设备进行数据传输。USB主机一般具有以
下的功能:1.检测USB设备的插拔。2.管理USB主机与USB设备之间的控制流。3.管理USB主机与设
备间的数据流。4.收集USB主机的状态。USB主机包括两个部分:主控器硬件和相应的功能软件。
硬件提供了主机的物理接口;主机上的系统软件管理设备与主机上的该设备软件之间的交互,包
括设备的枚举与配置,总线管理与带宽、电流的分配,各种所需的数据传输过程的管理,如有时
间要求的中断传输,同步(ISO)传输,控制传输,也有需要大量带宽,但时间要求不严格的块
(BULK)传输。
  如上所述,将有若干实现任务要求的硬件方案,一是直接采用已经内嵌了USB HOST的MCU。
二是采用传统成熟的主机功能的芯片与高性能CPU或MCU的搭配。三是采用OTG功能的芯片加上高
性能的CPU或MCU。第一方案的系统集成度与可靠性、性能都相对较高,但价格也相对较高,适合
于高端应用。第二方案在性能方面没有太大的损失,可以满足要求,但系统的集成度相对较低,
价格也适中,适合一般的应用。而第三方案与第二方案相比,功能性能方面相近,但系统有一定
的局限性,而且价格方面也没有优势,除非用户有特别要求,不作为推荐方案。要满足USB HOST
功能,主机方面则最好有25MIPS以上的处理能力,才能保证USB全速通信,包括标准的四种传输
方式(控制、中断、块、同步传输)的支持,以满足不同设备的带宽要求。因此对CPU也有一定的
性能要求。而在嵌入式的硬件平台中,ARM结构的各种衍生MCU、CPU的性能与功能可以满足设计
的要求。所以在本方案中,采用基于ARM内核的高性能多功能与高可扩展性的MCU。这其中因为三
星的各类ARM的推广普及工作上的努力,推出了可以满足用户不同要求的有特色的产品线,加上其
较高的性能-价格比的优势,还有就是市场上货源方面,和用户的认可和支持的程度,都显得三
星的更适合于本方案。对于第一方案,可以采用三星的S3C2410,此为集成了USB HOST等众多功
能,具有很高的扩展性与性能的产品,其32位ARM9内核,具有32KB的CACHE、最高203MHz的运行
频率不单可以满足USB HOST功能,还可以满足用户对多媒体、网络、控制方面的要求。对于第
二方案,可以采用三星的ARM7内核的S3C44B0X(最高66MHz)或者S3C4510(50MHz)的MCU,外
加CYPRESS的SL811HS或者PHILIPS的ISP1161来实现,另外,这个方案也同样可以使用S3C2410外
接USB HOST功能的芯片的方法实现,在开发的实验与调试过程中可以共用一套开发板,对于开
发过程这是一个好的选择。
  为了实现USB主机功能的统一,提高系统的可靠性与可移植性,上游芯片生产厂家在确定USB
标准的同时,也确定了相应的主机规范。现在用得比较广泛的有三种,其中的用于USB2.0高速设
备的EHCI(Enhanced Host Control Interface增强主机控制接口)规范是INTEL用于USB2.0高
速主机的,不是我们今天要讨论的。而同是INTEL推出的UHCI(Universal Host Control
Interface 通用主机)与前Compaq 、Microsoft等推出的OHCI(Open Host Control
Interface开放主机控制接口)可用于全速与低速USB系统中,硬件的要求与系统性能、软件复杂
的要求相对较低,也能够满足大部分的具有USB接口嵌入式系统的要求。因此更具有实现开发意
义,也是今天我们要讨论的。而在UHCI与OHCI的对比中,UHCI对硬件的要求相对较少,但对系统
的处理能力与软件的开发要求相对要高(PC机就较多地采用了UHCI);OHCI则把较多的功能定义
在硬件中,软件需要处理的内容就相对容易,对系统的处理能力和系统资源的要求就低。因此,
在嵌入式的USB HOST功能中,较多地选用了遵循OHCI的规范的硬件,从而简化了系统的设计。
  USB是一个完全规范化与标准化的接口,要实现与各个不同厂家,不同设备间的可靠通信,就
要完全遵守USB的相关规范与标准。这其中包含了硬件的标准和软件的标准、协议。另一方面,相
关规范的完善也降低了USB开发中的难度,只要按照规范实现所需要的功能,就能得到其它标准的
支持。在实现本任务中,我们需要完成的功能主要有USB主机芯片的驱动,USB主机功能的管理、
USB设备的配置与管理,主机与设备间数据通信的发起与控制,用户接口的实现。为了可靠地完成
设计的要求、实现设计的开发性与可扩展性,加快开发的进度,引入一个开放的操作系统是必需
的,而当前的适合于嵌入式应用的操作系统,发展成熟与得到广泛支持的有LINUX、Windows
CE、UCOS II、VxWORK,后三种系统都是有版权的系统,而经过剪裁优化的LINUX操作系统则是
源码开放的系统,不但得到了用户的推崇与喜爱,提供了广泛的发展与扶持,也得到了众多厂家
的推荐、并提供了相应的开发资源,而LINUX系统本身也已经提供了USB的协议栈的支持与众多的
类设备的驱动程序,可以直接实现对设备的驱动和用户接口,为项目的实现提供了便捷。因此本
方案也将采用LINUX系统作为操作系统,并采用相应的设备驱动实现设备功能。这样我们所需要的
就只要实现USB控制器和少部分自定义的非类设备的驱动(而SL811HS已经提供了LIUNX下的主机
控制驱动程序和USBDI的实现代码,更方便了设计过程),从而大大降低了方案实现的难度并提高
了方案的可用程度。
  综合上面所述,本方案的首要目标为实现基于ARM嵌入式硬件平台嵌入式LIUNX操作系统的
USB HOST功能,对于应开发的要求,可以分别高端与一般应用对应两个方案进行,也可以只使
用S3C2410外加SL811HS或ISP1161的方式进行开发与调试。

设计要求:
硬件:    基于ARM的开发板,选择一:S3C2410开发板;选择二:S3C44B0X
    芯片:SL811HS、ISP1161A1
软件:    LINUX系统支持
网络:    INTERNET支持

人员安排:项目负责:
     相关的协助人员

技术要求:1.ARM硬件与底层软件开发与调试,
     2.USB相关协议,USB硬件与驱动程序开发与调试,
     3.LINUX相关知识、LIUNX下驱动程序与应用程序开发与调试
   
开发周期:约13工作周
时间安排:选型准备、器件与工具购买,软件与资料的收集与准备    (1周)
     开发工具与设备调试、资料学习,实验            (2周)
     功能实现与调整、调试                    (8周)
     用户测试程序编写与调试验收                (2周)

附录:
参考资料:
《三星S3C2410数据手册》
《ARM编程》
《USB OHCI(USB开放主机控制接口协议)》
《USB USBDI(USB设备接口协议)》
《LINUX驱动程序开发》
《LINUX应用程序开发》
参考网址:
http://www.usb.org/developers
http://www.linux.org
http://www.uclinux.org
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-4 14:09 , Processed in 0.460262 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表