为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > [高速usb主控制器下载]嵌入式Linux下高速USB主控制器的设计与实现

[高速usb主控制器下载]嵌入式Linux下高速USB主控制器的设计与实现

2017-10-11 3页 doc 14KB 9阅读

用户头像

is_321635

暂无简介

举报
[高速usb主控制器下载]嵌入式Linux下高速USB主控制器的设计与实现[高速usb主控制器下载]嵌入式Linux下高速USB主控制器的设计与实现 [高速usb主控制器下载]嵌入式Linux下高 速USB主控制器的设计与实现 篇一 : 嵌入式Linux下高速USB主控制器的设计与实现 在嵌入式系统的发展历程中,Linux操作系统的源码公开,结构清晰,功能强大,可移植性强等特点使其在嵌入式领域应用越来越广泛。USB接口的热插拔,即插即用,数据传输可靠,扩展方便,成本低等优点使其逐渐成为嵌入式系统的必备接口之一。随着嵌入式系统应用领域的不断扩展,人们对其性能的要求不断提高,特别是USB设备的读写速...
[高速usb主控制器下载]嵌入式Linux下高速USB主控制器的设计与实现
[高速usb主控制器下载]嵌入式Linux下高速USB主控制器的与实现 [高速usb主控制器下载]嵌入式Linux下高 速USB主控制器的设计与实现 篇一 : 嵌入式Linux下高速USB主控制器的设计与实现 在嵌入式系统的发展历程中,Linux操作系统的源码公开,结构清晰,功能强大,可移植性强等特点使其在嵌入式领域应用越来越广泛。USB接口的热插拔,即插即用,数据传输可靠,扩展方便,成本低等优点使其逐渐成为嵌入式系统的必备接口之一。随着嵌入式系统应用领域的不断扩展,人们对其性能的要求不断提高,特别是USB设备的读写速度受到越来越多的关注。然而。目前多数嵌入式系统仅支持基础的USB低速或全速外设,不能满足人们对高速数据传输的要求。为此,基于AT91RM9200平台完成了高速USB的硬件设计和Linux操作系统下主机端驱动程序的开发。 目前的嵌入式系统设计中,USB接口的外扩主要采用微处理器芯片自带的USB控制器,一般只支持低速和全速协议,无法实现高速数据传输。该设计采用AT91RM9200处理器外扩ISP1761 USB控制器方案,解决了嵌入式系统下USB设备的传输速度问。其USB硬件接口部分电路如图1所示: AT91RM9200是Atmel公司一款基于ARM920T内核的微型处理器。它有丰富的系统与应用外设及标准接口,时钟频率可达180 MHz,并且具有低功耗、低成本、高性能,在嵌入式系统中应用广泛。ISP1761是Philips公司开发的一款高速USB On The Go控制器,芯片内集成了64 KB的高速缓冲,单次处理数据达32 KB,极大地提升了系统的处理性能,并且功耗很低,其内部集成了Slave主机控制器和外设控制器。此外,ISP761还有可配置的32 b/16 b异步CPU接口,该设计ISP1761外部数据总线设置为16 b模式。 处理器AT91RM9200与外扩USB控制器的连接如图1所示。其中,A[17?1]为地址线;DATA[15?0]为数据线;WR_N为读使能;RD_N为写使能;CS_N片选信号采用NCS2;AT9lRM9200的中断源1分配给ISP1761作为其中断信号。处理器和ISP1761之间的数据传输通过中断方式实现,当USB接口有中断产生时,处理器的中断服务程序通过读取ISP1761的中断寄存器判断中断2.1 Linux系统中USB驱动结构 USB内核模块是Linux系统中USB子系统的核心模块,它为USB驱动提供了一个统一的接口,以访问和控制USB硬件。 如图2所示,应用程序发出的USB请求块经过上层的USB设备驱动和USB内核后到达USB主控制器。处于最底层USB主控制器的驱动是USB主机直接与硬件交互的软件模块,它将解析URB后,再将数据发送到指定的USB设备上。 2.2 ISP1761主控制器驱动的实现 图3为ISP1761与操作系统相连接的接口框图。图5中,ISP1761 要完成操作系统与USB设备的通信。驱动部分主要分两个层次:ISP1761硬件抽象层和主控制器驱动层。前者,通过GPIO接口和操作系统平台的相关函数来完成访问ISP1761硬件的功能;后者,主要实现将数据传输给连接的USB设备,并管理根集中器端口的功能。 因此,该设计的软件驱动部分主要由以下两个层次来完成USB主机端的驱动功能。 ISP1761的HAL层。首先初始化设备结构,并添加设备到系统的设备层。其中,初始化部分主要完成ISP1761资源的初始化设置和AT91RM9200处理器的初始化设置,为后期注册驱动程序做准备。如果系统成功添加了设备,在加载和卸载ISP1761主控制器驱动程序到内核时,就会进一步执行平台驱动程序的注册,否则将不能注册驱动程序。一旦注册成功,驱动程序就已经和设备绑定,任何用户态程序要操作此设备都可以通过platform_driver结构所定义的函数进行。下面给出该系统注册的platform_driver结构: 其中,在设备探测和注销等函数中调用了如下一个重要的结构体isp1761_dev。该结构体主要包含了ISP1761设备驱动的基本信息和中断处理例程指针。 ISP1761的HCD层。Philips公司的ISP1761主控制器芯片遵循EHCI标准。该层在加载和卸载ISP1761主控制器驱动到内核时被调用,主要负责与连接的USB设备进行数据传输,并管理根集中器端 口。具体包括主控制器例程、内存管理、根集中器和中心集中器的管理、数据传输等。 其中,pehci_hcd_urb_enqueue函数是该部分所要实现的重点函数,主要用于完成将来自USB core层的urb传输请求转换成EHCI可识别的传输描述结构。然后安排到EHCI的periodic schedule list或者asynchronous schedule list的合适位置。当HC完成urb对应的传输后,EHCI HCD通过urb?cornplete通知USB core对应的传输结果,最终完成通信过程。该函数的原型如下:
/
本文档为【[高速usb主控制器下载]嵌入式Linux下高速USB主控制器的设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索