嵌入式系统中 USB 控制的 Host/Slave 模式的应用
引言
目前,USB 设备产品的应用非常广泛,但市场上能够提供 Host/Slave 两种 模式的 USB 控制芯片并不多,本系统采用 CYPRESS 公司的 SL811HST 芯片作 为 USB 接口的控制芯片,实现 Host/Slave 两种工作模式。
系统介绍
本系统是以三星公司的 S3C44B0X 为嵌入式处理器,mClinux 为操作系统的 专用 PDA,通过无线方式实现与上位机的通信,同时也可通过 USB 接口直接 控制 USB 打印机输出。其中 USB 控制芯片采用 CYPRESS 公司的 SL811HST 芯片,它有两种工作模式 Host/Slave。模式的改变是由该芯片 M/S 脚的电平值 决定,其值可以通过软件设置来改变。当置 M/S 脚为低电平时,它是 Host 模 式,可以直接控制打印机;当置 M/S 脚为高电平时,它是 Slave 模式,可以下 载 PC 的最新资料,同时可对 PDA 充电电池充电。
硬件设计
三星公司的 S3C44B0X 是一款专为手持设备和通用设备而设计的,16/32 位 RISC 结构的嵌入式处理器。
CYPRESS 公司的 SL811HST 是嵌入式的 USB 主机或外设接口控制器。其基 本功能如下:
1) 支持 USB 1.1 的全速和低速设备;
2) 虚拟的外部总线,使得仅需占用和外接 CPU 的 1 根地址线 A0,数据线 为 8 位;
3) 16 个内部寄存器,可以对 USB Host 进行充分的控制;内部多达 256 字 节的 RAM,为 USB 传输建立了足够的缓冲区;
4) 操作电压为 3.3V,但是 I/O 端口为 5V Tolerant,因此可以自由地和 5V 或 3.3V 的 CPU 系统连接;
5) 可接 12MHz 或 48MHz 外置晶振,对其操作通过 16 个寄存器来完成。
GPE5 是 Host/Slave 模式控制管脚,它同时同步控制 USB 接口的负载方式。 GPE4 口可以监视 USB 接口上是否有主 USB 设备插入,如果有,VUSB 为高 电平;没有则为低电平。GPE3 口用于显示 USB 设备是否处于就绪或相应的 Host/Slave 模式工作状态 软件设计
在 Linux 操作系统中,驱动程序的加载方式为:
1) 将驱动程序作为可加载的模块(Module),在系统超级用户(Root)权限下使 用 insmod 命令动态加载,使之成为系统核心的一部分。对于 USB 设备而言, 由于可热插拔,一般采用模块化的设备驱动程序。
2) 将设备驱动程序的源代码加进系统内核,编译移植到嵌入式系统,系统启 动后将自动加载驱动。USB
协议栈程序一般采用这种方法加入内核,进而产
生一个叫做“USB 核心”的子系统。这个子系统提供了许多数据结构、宏定义、 功能函数和应用程序接口(API)来对硬件或设备进行支持。tips:感谢大家的阅读, 本文由我司收集整编。仅供参阅!