这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » arm系统设计及其usb主机扩展方案

共1条 1/1 1 跳转至

arm系统设计及其usb主机扩展方案

菜鸟
2007-12-27 09:01:37     打赏

通用串行总线 (universal serial bus,即usb)是一种目前广泛应用的计算机外围串行通信标准,但是,无论是采用usb1.1还是采用支持高速数据传输的usb2.0所设计的usb系统,都需要以计算机为主机控制数据的传输,而两个设备之间则无法直接进行usb传输,这就大大限制了usb在这些嵌入式设备中的应用。为此,usb otg应运而生,它规范定义了双功能设备,这种设备既具有usb主机的功能,又具有usb外设的功能,这样就可以在诸多的嵌入式设备中使用usb主机的功能,大大方便了设备间的互连[1]

arm(advanced risc machine)
既是一类微处理器的通称,也是设计这种处理器内核的公司的名字。作为一种低功耗、高性能的32位嵌入式微处理器,现在已经被广泛应用在各个领域中,但现在很多以arm为内核的嵌入式设备都只具有usb外设的功能。为了在嵌入式设备中使用usb主机的功能,必须给arm系统外扩一片usb主机控制器芯片。有些arm芯片的生产厂商也在以arm为内核的微处理器中集成了usb主机控制器,但是,更多的arm处理器是不带usb功能的,外部扩展usb控制芯片的方式使选择微处理器的空间更加广阔。

1  系统总体设计方案

    系统的主要功能是在以arm为核心的嵌入式系统中实现usb的主机控制能力,以便在没有计算机介入的情况下对usb设备进行直接的控制及读写操作。如图1所示,系统主要由arm7微处理器、flashsdramusb主机控制芯片和串口组成。arm处理器选用的是三星公司的s3c4510b,这是一款基于arm7内核的微处理器,具有低功耗、高性能的特点 [2][3]flash用来存放uclinux操作系统和一些十分重要的数据,sdram则是操作系统和应用程序的运行空间、数据及堆栈区。usb主机控制芯片选用的是cypress公司的sl811hs,这是一款双功能的控制芯片,既可以用来做主机又可以做外设,系统中主要使用了它作为主机控制器的功能[4]

300)this.width=300" align=middle border=0>

2
  硬件电路设计

21  flash存储器电路

flash存储器是一种可在系统进行电擦写,掉电后信息不丢失的存储器,在嵌入式系统中广泛应用。它在系统中通常用于存放程序代码、常量表、以及一些在系统掉电后需要保存的用户数据等。常用的flash8位或16位的数据宽度,编程电压为单3.3v。系统中选用一片16位的flash存储器am29lv160b,单片存储容量2mb,用于存放操作系统和程序代码,系统上电或复位后从此获得第一条指令并开始执行,因此,应将flash存储器配置到rom/sram/falsh bank0,即将s3c4510bnrcs<0>接到其片选引脚ce#端。将s3c4510bb0size[1:0]置为‘10’,选择rom/sram/falsh bank016位工作方式。

22  sdram 电路

flash存储器相比,sdram不具有掉电保持数据的特性,但其存取速度大大高于flash存储器,因此,它在系统中主要用作程序的运行空间、数据及堆栈区。当系统启动时,cpu首先从复位地址即flash0x0处读取启动代码,在完成系统的初始化后,程序代码将被调入sdram中运行以提高系统的运行速度。同时,系统及用户堆栈、运行数据也都存放在其中。系统中选用hy57v641620,它的存储容量为8mb,工作电压为3.3v16位数据宽度。根据系统需求,可以构建16位或32位的sdram存储系统,但为了充分发挥32cpu的数据处理能力,本系统采用32位的sdram存储系统。选用两片hy57v641620并联构建32位的sdram存储系统。

23  串口电路

串口的主要作用是向计算机传输信息,这些信息可以在计算机的超级终端上显示,以便于调试程序时监测程序的内部变量值;在uclinux操作系统运行时,串口将用来显示它的启动信息和运行状态,向操作系统发送命令对其进行控制也需要通过串口来完成。

24  jtag调试接口

jtag接口主要是用来实现芯片的嵌入式调试及在系统编程的功能,如对flash器件进行编程等。arm公司的集成开发环境ads可以通过jtag下载线或仿真器和系统板上的jtag接口相连,通过jtag接口把在ads中编译好的程序下载到系统板上以进行调试。

25  usb主机控制器sl811hs

由于s3c4510b本身不带usb控制电路逻辑模块,所以必须外扩一片usb控制芯片以实现usb传输。系统中使用的sl811hs主要有以下几点特性:

l         能工作在两种模式下——主模式或从模式,可以通过硬件或者软件进行控制。

l         符合usb1.1标准。

l         8位双向数据总线,采用i/o端口传输方式,在从模式下还支持dma方式。

如图2所示,它主要由cpu接口、中断控制、主/从模式控制、usb sie、时钟模块、sram及根集线器等模块组成。

300)this.width=300" align=middle border=0>

它与s3c4510b的主要信号接口电路如图3所示:

       300)this.width=300" align=middle border=0>

    sl811hs采用了数据线和地址线复用的方式,当a0为低且处于写状态时,armsl811hs的片内地址指针寄存器写入地址值,当a0变为高时,则可对写入的地址中的数据进行读写。a0armaddr2相连,因此对sl811hs写地址时应将arm的地址总线低位置为0x0,而读写数据时应将其置为0x4ncsarmnecs0相连,即把sl811hs分配到arm的外部i/o0

3  系统软件

31  uclinux操作系统

    为了降低硬件成本及运行功耗,有一类cpu在设计中取消了内存管理单元mmuuclinux就是专门针对这类cpu而设计的,它主要由以下几个部分构成:boot loader、内核初始化、系统调用函数/捕获函数、设备驱动和文件系统。

其中boot loader被用来初始化系统板上的硬件资源,可见,这部分代码是硬件相关的,必须根据系统板上不同的硬件资源进行相应的配置。uclinux源代码中针对s3c4510b的片内特殊功能寄存器以及其他相关硬件信息的定义位于linux-2.4.xincludeasm-armnommuarch-snds100hardware.h中,而对这些硬件进行初始化的代码则位于linux-2.4.xarcharmnommuootcompressedhead.s中,通过对这两个文件进行适当的修改,即可使uclinux适合于不同的系统板。本系统中主要是更改了flashsdram的容量及数据宽度,开启了外部i/o0并设定为8位数据宽度以用来配置sl811hs,并把它的基地址设定为0x01400000

完成对源代码的修改之后就可以进行内核的编译。编译是在装有linux及所需的交叉编译工具链的计算机上来进行的,编译生成的image.ram可以下载到sdram中直接运行,image.rom可以烧写到flash中,系统上电或重启后,将从flash0x0地址处开始执行,对硬件资源进行初始化后进入uclinux

32          usb驱动程序

    linux2.4内核以后,linux的设备驱动中加入了对usb的支持,uclinux也秉承了这一特点。uclinux中的usb驱动程序由主机控制器驱动程序(hcd)、usb核心驱动程序(usbd)、usb设备驱动程序(包括集线器驱动程序)3个部分组成。由于usb主机控制器主要有ohciuhci两大标准,所以uclinux分别为符合这两种标准的主机控制器提供了相应的驱动程序。但是sl811hs是为嵌入式系统设计的,它不符合主要是为计算机而制定的ohciuhci标准,因此,必须为它提供专门的驱动程序。

    uclinux中内置了cypress公司为自己的sl811hs编写的linux下的驱动程序,但这个驱动是为strongarm sa1100而编写的,而sa1100上可以运行linux而不能运行uclinux,因此这个驱动程序并不适合uclinux,在编译中无法通过。因此,本系统没有使用cypress提供的代码,而选择自己编写代码。

    sl811hs驱动程序的总体结构如图4所示,最底层是其寄存器和数据缓冲区的读写函数,供上层的函数调用。通过对sl811hs的寄存器及数据缓冲区的一系列读写操作,可以实现进行usb传输所需要的设置事务、输入事务和输出事务[5]usb的四种传输方式,控制传输、中断传输、批量传输和同步传输就是由上述三种事务所构成。有了这些底层的函数之后,就可以对sl811hs进行初始化,然后对设备进行枚举以获取该设备的一系列描述符,最后就可以配置设备并实现各种传输协议。

    300)this.width=300" align=middle border=0>

    文中讲述了以arm为核心微处理器的usb主机控制系统的一般设计方法,并对其上运行的操作系统及驱动程序做出初步分析。arm在嵌入式系统中现在已经取得了广泛的应用,而usb设备端口在嵌入式系统中也是十分普遍。随着usb otg的推出,必将有越来越多的外设具有usb主机端的功能,实现外设之间直接的数据传输。




关键词: 系统     设计     及其     主机     扩展     方案     控制     数据         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]