ARM和LINUX系统下嵌入式USB主机的设计._第1页
ARM和LINUX系统下嵌入式USB主机的设计._第2页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ARM 和 LINUX 系统下嵌入式 USE 主机的设计ARM 和 n LINUX 系统下嵌入式 USE 主机的设计类别:嵌入式系统摘要:根据实际应用中嵌入式系统常需要具备 USB 主机功能而大 多数微处理芯片没有集成这一功能的实际情况,提出了一套基于S3C44B0X 和SL811HST 的系统解决方案。本系统以 ARM7 核心板加 USB 扩展板为硬件实现方 法;在 ucLinux 系统下实现 USB 驱动程序的编写和加载。该系统成本低廉,运 行稳定,适合应用于手持式设备上及野外工作场合。1 引言 通用串行总线(Universal Serial Bus,即 USB 是一种新型的高速串行总线,

2、作为一种快速、灵活的总线接口,已经在电子产品中广泛应用。同时人们对USB 的期望也越来越高,希望 USB 能应用在各种计算机领域中。但是,由于 USB 通信模 型是一种 Host/Slave 主从式结构,经由 USB 总线进行通信的双方必须有一方在 通信控制中担当主机,而两个 USB 设备之间则无法直接进行基于 USB 的数据交 换。这就大大限制了 USB 在嵌入式设备中的应用。ARM( Adva need RISCMach ine)作为一种低功耗、高性能的 32 位嵌入式微处理器,在中高端嵌入式设 备开发中有着广泛的应用。有些 ARM 芯片的生产厂商在以 ARM 为内核的微处理 器中集成了

3、USB 主机控制器,但是,更多的 ARM 处理器是不带 USB 主机功能 的。解决这一问题的方法就是在需要使用 USB 设备的嵌入式系统中外扩一片 USB 主机控制器芯片,使之具有与 USB 设备进行数据传输的能力。本设计考虑 设计一种 USB 主、从机一体化的外部扩展模块,通过简单地改变跳线,使得 ARM 核心的嵌入式设备既可作为USB 主机,又可以作为 USB 从机。2 总体设计 由于目前 USB 从机的硬件及软件方面的开发已经比较成熟,可以直接 使用现有的资源,所以本设计主要讨论 USB 主机功能的实现,目标任务是 ARM 核心板能够读写外接 USB 设备,这里选择最常用的 U 盘,实现

4、读、写 U 盘数 据。系统分为ARM 核心板和 SL811HSTT 展板两大部分。核心板是一个由ARM 微处理器、FLASH SDRAM JTAG 口和串口组成的最小系统。ARM 处理器 选用的是三星公司的 S3C44B0X 这是一款基于 ARM7TDM 内核的微处理器,具 有低功耗、高性能的特点。 Flash 用来存放 ucLinux 操作系统和一些十分重要 的数据,SDRA 则是操作系统和应用程序的运行空间、数据及堆栈区,JTAG 口和串口用于下载和调试。扩展板主要由 USB 主控芯片及其外围电路和 USB 主、 从接口构成。USBi 控制芯片选用的是 Cypress 公司的 SL811H

5、ST 这是一款双 功能的控制芯片,通过设置开关既可以用来做主机又可以做从机。USB 接 口分为主机接口和从机接口,与主控芯片功能配套。3 硬件电路 Flash存储器是一种可在系统进行电擦写,掉电后信息不丢失的存储器。常用的 Flash 为 8位或 16 位的数据宽度,编程电压为单 3.3V。系统中选用一片 16 位 的 Flash 存储器SST39VF1601 单片存储容量 2M 用于存放操作系统和程序代 码,系统上电或复位后从此获得第一条指令并开始执行,因此,应将 Flash 存储器配置到BANK0即将S3C44B0X勺nGCS0接到其片选引脚CEi端;将 S3C44B0X勺 OM1:0置为

6、 10,选择 BANK(为 16 位工作方式。与 Flash 存储器不 同,SDRA 不具有掉电保持数据的特性,但其存取速度大大高于Flash 存储器,因此,它在系统中主要用作程序勺运行空间、数据及堆栈区,系统及用户 堆栈、运行数据也都存放在其中。系统中选用一片HY57V641620H,G 它的存储容量为 8M 工作电压为 3.3V,16 位数据宽度。1620 的 CS 与 S3C44B0X 勺 nGCS6 连接。JTAG 接口主要是用来实现芯片的嵌入式调试及在系统编程的功能,如对 Flash 器件进行编程等。串口的主要作用是向计算机传输信息,这些 信息可以在计算机的超级终端上显示,以便于调试

7、程序时监测程序的内部变量 值; 在 ucLinux操作系统运行时,串口将用来显示它的启动信息和运行状态,向 操作系统发送命令对其进行控制也需要通过串口来完成。ARMS 心板的硬件组成如图 1 所示:图 1 ARM 核心板的构成Cypress 公司的 SL811HST 芯片是一款嵌入式的 USB 主机/从机控制器,它的双功能端口既可作为 USB 主机又 可作为从机来支持全速或低速的 USB 器件,能够与单片机、DSP 和 ARM 等实现 无缝接口。数据线为 8 位,只需要 9 根线用于系统的数据通讯, 1 6 个内部寄存 器,可以对 USBHost 进行充分的控制。内部多达 256 字节的 RA

8、M 为 USB 专输 建立了足够的缓冲区。它的主要优点有:通过其M/S 引脚对主/从模式方便的进行选择;提供全速和低速 2 种 USB 总线速度方式;硬件自动产生帧起始包 SOF 和CRC5/16 校验;片上集成了接口引擎(SIE)、单端口根 Hub USB 攵发器和 256B 的SRAM 其中 0 x000 x0F 共 16 个字节是寄存器区,其余的 240B 是数据 缓冲区。SL811HS 只有一根地址线 A0。A0=1 用于设定偏移量,A0=0 用于读写数据。读写数据应该首先指定偏移量,然后实现读取时序。A0 与 ARM 勺ADDR 相目连。nCS 和 ARM 勺 nGCS 湘连,即把

9、SL811HST 分配到 ARM 勺外部 I/O口 02。SL811HS与 S3C44B0X 勺连接如图 2 所示:图 2 SL811HST 与S3C44B0X 连接图4 软件系统 本设计的软件系统是在 Linux 环境下编写调试运行的,前期工作为下载 ucLinux 内核包,打补丁包等。 ucLinux 是专 门针对如 ARM7 这类无 MMU 勺 CPU 而设计的,它主要由以下几个部分构 成:BootLoader、内核初始化、系统调用函数/捕获函数、设备驱动和文件系 统。其中 BootLoader 被用来初始化系统板上的硬件资源,必须根据系统板上不 同的硬件资源进行相应的配置。本系统中主要

10、是更改了FLASH 和 SDRAMS 容量及数据宽度,开启了外部 I/O 口 2 并设定为 8 位数据宽度以用来配置 SL811HST 并把它的基地址设定为 0 x012000000 完成对源代码的修改之后就可 以进行内核的编译。编译是在装有 Linux 及所需的交叉编译工具链的计算机上 来进行的,编译生成的image.ram 文件可以下载到 SDRAM3直接运行, image.rom 文件可以烧写到 FLASH中,系统上电或重启后,将从 FLASH 勺 0 x0 地址处开始执行,对硬件资源进行初始化后进入 ucLinux 。 从 Linux2.4 内核以后,Linux 的设备驱动中加入了对

11、USB 的支持,ucLinux 也秉承了这一特 点。本设计采用内核编译的方式加载 USE 驱动,将驱动程序的源代码加进 ucLinux 系统内核,编译移植到嵌入式系统,系统启动后将自动加载驱动。编译过程如下:1:在 ucLinux 内核的 USB 驱动目录中添加如下三个文件:s181lh usb.c、sl8llh.h 、s1811husb.h。;2:编辑/uclinux-s2cev40/linux-2.4.x/drivers/usb/config.in文件。修改这个文件的内容加入对 SL811HST 勺描述语句:USB 设备驱动程序被编译进 ucLinux 内核,包含在 image.bin 文件中。在系统启动时,USB 设备驱动就自动执行了。5 总结 本文作者创新点:巧妙利用 ucLinux 内核模块,简化开发过程, 节约成本。本设计以 uclinux 嵌入式操作系统为平台,充分发挥了 SL811HST 芯片的 Host/Slave 两种模式的作用, 整套系统上电运行结果证明,本系统设 计能够顺利的读写

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论