侵权投诉
当前位置:

OFweek电子工程网

嵌入式设计

正文

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

导读: 针对现有嵌入式Linux系统下USB读/写速度慢的问题,结合AT91RM9200处理器的开发实例,介绍一种基于Philips公司的USB接口控制芯片ISP1761来实现低成本高速USB主机控制器的硬件设计方法。在此基础上,给出了驱动程序的设计方案及相应驱动的配置、编译、下载使用等过程。

  在嵌入式系统的发展历程中,Linux操作系统的源码公开,结构清晰,功能强大,可移植性强等特点使其在嵌入式领域应用越来越广泛。USB接口的热插拔,即插即用,数据传输可靠,扩展方便,成本低等优点使其逐渐成为嵌入式系统的必备接口之一。随着嵌入式系统应用领域的不断扩展,人们对其性能的要求不断提高,特别是USB设备的读写速度受到越来越多的关注。然而。目前多数嵌入式系统仅支持基础的USB低速或全速外设,不能满足人们对高速数据传输的要求。为此,基于AT91RM9200平台完成了高速USB的硬件设计和Linux操作系统下主机端驱动程序的开发。

 

  1 高速USB硬件接口设计

 

  目前的嵌入式系统设计中,USB接口的外扩主要采用微处理器芯片自带的USB控制器,一般只支持低速和全速协议,无法实现高速数据传输。该设计采用AT91RM9200处理器外扩ISP1761 USB控制器方案,解决了嵌入式系统下USB设备的传输速度问题。其USB硬件接口部分电路如图1所示:

 

  

 

  AT91RM9200是Atmel公司一款基于ARM920T内核的微型处理器。它有丰富的系统与应用外设及标准接口,时钟频率可达180 MHz,并且具有低功耗、低成本、高性能,在嵌入式系统中应用广泛。ISP1761是Philips公司开发的一款高速USB On The Go(OTG)控制器,芯片内集成了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 高速USB软件驱动实现

 

  2.1 Linux系统中USB驱动结构

  USB内核模块是Linux系统中USB子系统的核心模块,它为USB驱动(设备和主控制器)提供了一个统一的接口,以访问和控制USB硬件。

  如图2所示,应用程序发出的USB请求块(URB)经过上层的USB设备驱动和USB内核后到达USB主控制器。处于最底层USB主控制器的驱动(HCD)是USB主机直接与硬件交互的软件模块,它将解析URB后,再将数据发送到指定的USB设备上。

 

  

1  2  下一页>  
声明: 本文由入驻OFweek公众平台的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

我来说两句

(共0条评论,0人参与)

请输入评论

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号