在嵌入式系统的发展历程中,Linux操作系统的源码公开发表,结构明晰,功能强大,可移植性强劲等特点使其在嵌入式领域应用于更加普遍。USB模块的热插拔,即插即用,数据传输可信,拓展便利,成本低等优点使其渐渐沦为嵌入式系统的不可或缺模块之一。
随着嵌入式系统应用领域的大大拓展,人们对其性能的拒绝大大提升,尤其是USB设备的读取速度受到更加多的注目。然而。目前多数嵌入式系统仅有反对基础的USB短距离或加速外设,无法符合人们对高速数据传输的拒绝。为此,基于AT91RM9200平台已完成了高速USB的硬件设计和Linux操作系统下主机末端驱动程序的研发。
1高速USB硬件模块设计 目前的嵌入式系统设计中,USB模块的外阔主要使用微处理器芯片自带的USB控制器,一般只反对短距离和加速协议,无法构建高速数据传输。该设计使用AT91RM9200处理器外阔ISP1761USB控制器方案,解决问题了嵌入式系统下USB设备的传输速度问题。
其USB硬件模块部分电路如图1右图: AT91RM9200是Atmel公司一款基于ARM920T内核的微型处理器。它有非常丰富的系统与应用于外设及标准接口,时钟频率平均180MHz,并且具备低功耗、低成本、高性能,在嵌入式系统中应用于普遍。ISP1761是Philips公司研发的一款高速USBOnTheGo(OTG)控制器,芯片内构建了64KB的高速缓冲器,单次处置数据约32KB,很大地提高了系统的处置性能,并且功耗很低,其内部构建了Slave主机控制器和外设控制器。
此外,ISP761还有可配备的32b/16b异步CPU模块,该设计ISP1761外部数据总线设置为16b模式。 处理器AT91RM9200与外阔USB控制器的相连如图1右图。其中,A[17∶1]为地址线;DATA[15∶0]为数据线;WR_N为读使能;RD_N为写出使能;CS_N片中选信号使用NCS2;AT9lRM9200的中断源1分配给ISP1761作为其中折断信号。
处理器和ISP1761之间的数据传输通过中断方式构建,当USB模块有中断产生时,处理器的中断服务程序通过加载ISP1761的中断寄存器辨别中断来源,从而继续执行适当的读/写出操作者。 2高速USB软件驱动构建 2.1Linux系统中USB驱动结构 USB内核模块是Linux系统中USB子系统的核心模块,它为USB驱动(设备和主控制器)获取了一个统一的模块,以采访和掌控USB硬件。 如图2右图,应用程序收到的USB催促块(URB)经过上层的USB设备驱动和USB内核后抵达USB主控制器。正处于最底层USB主控制器的驱动(HCD)是USB主机必要与硬件交互的软件模块,它将解析URB后,再行将数据发送到登录的USB设备上。
本文来源:雷火体育APP官网入口-www.ycydtz.com