- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
过去USB仅应用于个人计算机,而在嵌入式系统领域的巨大潜力还没有开发出来,USB在嵌入式系统中的应用包括KVM开关、
数码相机、PDA、打印机、机顶盒以及移动电话等。本文将介绍在嵌入式系统中应用USB时其主机控制器的设计。
嵌入式系统被定义为硬件和固件(独立的或作为更大型系统的一部分)通常带有某种操作系统,操作系统可以是WindowsCE、
VxWorks或其它由“自编代码”构成的更简单系统。根据这样的定义,可以认为任何带有处理器的电子装置均可以作为USB嵌入式主机。
嵌入式系统设计挑战
在基于PC的系统中,USB操作一般需要三种部件,分别是通常作为PCI子系统的主机控制器、USB堆栈以及USB类驱动器。
主机控制器是集成主板芯片组的一部分,USB堆栈则包含主板芯片及通用主机控制器接口(UCHI)和开放主机控制器接口
(OHCI)驱动程序以及USB驱动程序(usbd.sys),在PC上实现USB需要上述领域的专门技术。
在嵌入式USB系统中,其主要组成部分与PC系统类似,如嵌入式主机控制器芯片、带OHCI堆栈的实时操作系统(RTOS)
以及专用驱动程序。现有很多可供选择的主机控制器芯片,有些带有处理器,有些则是基于寄存器的,对器件的选择将影响到其下面两
层。
很多公司都可提供RTOS,最好选择一个能配合在一起工作的处理器和RTOS,然后在其上添加应用代码。如果没有真正的
RTOS,某些控制器则用一个“框架”,可在其上构造应用程序。我们后面将介绍这种框架以及如何在上面构建应用。
在PC上实现USB具有非常丰富的可用资源,包括高达512MB的存储器、20-60GB的硬盘以及2GHz或更快的微处理器。
此外,多年来Windows、MACOS以及Unix等操作系统也一直支持USB,而且世界上还有成千上万的工程师在设计基于PC的USB应
用程序和设备驱动程序。而对嵌入式系统来说,通常只有不超过64K的存储器,以及运行于12MHz~33MHz的处理器,且没有硬盘。
由于USB对嵌入式系统相对较新,因此可能只有为数不多的工程师拥有这方面的经验。
控制器与框架
下面我们以赛普拉斯EZ-Host为例介绍嵌入式系统USB控制器与框架结构。EZ-Host有两个“串行接口引擎”,每个引擎包含
两个USB端口,因此无需使用额外硬件EZ-Host便可控制四个USB设备。
EZ-Host器件具有固件结构,可管理大多数USB主机的详细请求。该结构另一个特点是支持网络集线器。键盘/集线器组合
在一起常常带来这样的问题,即它究竟是带有集线器的键盘还是带有键盘的集线器?答案应该是带有键盘的集线器。因此要了解集线器
后面的键盘,还需要提供集线器支持。幸好,这里的框架代码包含了对集线器的支持。
EZ-Host框架包含所有实现USB主机功能所必需的固件,包括任务调度、设备枚举、带宽分配以及功率管理。另外应用程
序作为固件的一部分,控制专用USB设备并将其数据传递给最终应用。
框架的核心是TD处理器。TD处理器的运行基于一种称为“任务描述器(TD)”的数据结构,使用其信息与USB硬件尤其是“串
行接口引擎(SIE)”进行通信。需要注意的是每个SIE控制两个端口,而且每个SIE具有一个TD处理器。EZ-Host框架使用了多种数据
结构实现其操作,这些结构包括TD和USB请求模块(URB)。
任务描述器是传递给硬件的数据结构,包含特定硬件接口(如SIE)和端口编号的数据字段、终点数、收发数据缓冲器长度、数
据包ID编码以及URB结构指示器。
URB含有TD所需的逻辑信息,该逻辑信息包括USB设备缓冲器、安装软件包以及USB设备结构指示器。
进行USB事务处理时,URB带有事务处理分配及其装入的数据结构,而后URB提交给TD处理器,TD处理器再将URB加
入TD列表。空闲时,TD处理器处理TD列表,安排传输时序,并将设定好的TD传送给EZ-Host硬件进行处理。
为了执行控制转移,可以使用框架函数send_r
文档评论(0)