



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
32 位ARM 嵌入式系统扩展USB 接口设计 常用的主机与嵌入式外设的高速通信接口有LPT 并行口、USB、1394 及10/100M 以太网等接口。RS232 不适合高速数据传送,1394 接口需要专门的适配器接口成本过高,一般较少使用,USB 接口被广泛用于高、中、低不同速度设备与主机通信,USB2.0 的最高速度可达480Mb/s, 可传送高清晰数字视频码流,完全可以替代1394 接口,USB 与以太网接口相比,采用主从结构,有即插即用特性,驱动程序丰富,互操作性好等优点。 USB(Universal Serial Bus,通用串行总线)接口是1994 年Intel、Microsoft 等多家公司联合推出的计算机外设互连总线协议。USB 接口支持1.5Mb/s、12Mb/s 和480Mb/s 的数据传输速率,支持控制、中断、批量与实时4 种数据传输模式,让外围设备可以有弹性的选择。不管是交换少量或是大量的数据,还是有无时效的限制,都有合适的传输类型。USB的实时同步数据传输模式适合于高速实时音视频数据流的传送。 基于ARM(Advanced RISC Machines)处理器的32 位嵌入系统具有极高运算速度和大容量的数据处理能力,常需要设计高速接口与其他设备通信,为此本文讨论基于S3C44B0XARM7 处理器的嵌入式统扩展USB 接口(设备端)的技术方案。1 USB 接口原理 USB1.1 规范将USB 分为5 部分:控制器、控制器驱动程序、USB 芯片驱动程序、USB设备以及针对不同USB 设备的客户端驱动程序。(1) 控制器(Host Controller)主要负责执行由控制器驱动程序发出的命令。(2) 控制器驱动程序(Host Controller Driver), 在控制器与USB 设备间建立通信管道(Pipe)。(3) USB 驱动程序(USB Driver),提供对不同USB 设备及芯片的支持。(4) USB 设备(USB Device), 有两类USB 设备:一类称为功能设备(Function),另一类是称为USB 集线器(HUB),可以连接多个USB 设备。(5) USB 设备驱动程序(Client Driver Software)及特定应用程序。 主控制器的驱动软件由操作系统支持,USB 设备开发人员一般只需编写客户驱动程序,实现特定功能,设备端所有功能软件需要全面设计。 USB 的四种数据传输模式分别是:控制型传输、中断型传输、批量型传输、实时型传输。第一种在缺省通道中传输USB 接口本身的配置等控制信息,后面三种用于功能部件传输数据。中断型用于键盘等的异步输入输出少量数据传输,批量传输主要用于象硬盘等块设备的数据传输,在中断和批量的传输过程中要传递交互握手信号,确保数据准确无误。 实时传输对带宽有严格要求,但允许有一定误码,省去了交互握手信号的传递,常用于音视频码流数据传输。四种类型数据都按带宽要求分配在1ms 一帧的数据帧内进行传输,USB1.0 实时传输可得到的最大带宽10.24Mbps。2 嵌入式系统USB 接口设计 要满足高性能ARM嵌入式系统的要求,扩展USB接口必须选择高性能USB控制器芯片,Philips公司的PDISUBD12 USB器件,是与微处理器配合使用的高性能USB接口器件,性价比很高。PDIUSBD12主要特性有:(1) 符合USB 1.1 技术规范;(2) USB控制器并行接口与处理器间的数据传输速度高达2M 字节/秒;(3) 在批量模式和同步模式下均可实现1M 字节/秒的数据传输速率;(4) 集成了FIFO存储收发器,支持DMA 操作;(5) 内置时钟倍频PLL电路,可编程时钟频率输出;(6) 多中断模式实现批量和同步传输; 采用PDIUSBD12 USB标准组件与S3C44B0X接口,减小了开发的时间、风险以及费用,是最快捷、最经济的方法实现ARM嵌入式系统扩展USB的解决方案之一。PDIUSBD12与S3C44B0X ARM7处理器的电路图见图2。因ARM7用存储器影射方法扩展I/O接口,一般按16bit方式寻址,所以U2的A0连到U1的Addr1引脚, 片选信号nGCS1的基地址是0x0200_0000。3 ARM 端USB 设备程序 设备端程序主要完成:ARM BIOS 和ucLinux 的加载、启动通信进程、USB 控制器初始化、响应主控制器标准PnP 及其他命令、建立USB 端点(End point)逻辑通道、数据传输操作等功能,图3 是基于ARM 的USB 设备与PC 间音频通信的程序功能结构图。操作USB 芯片的接口函数的宏定义为:typedef unsigned short int U16 ;#define pD12_CMD ( ( U16 *) 0x02000002 ) /指向D12 命令寄存器指针#define pD12_DAT ( ( U16 *) 0x02000000 ) /指向D12 数据寄存器指针#define D12WriteCmd( data ) (*p D12_CMD = (U16)(data) & 0xff )#define D12WriteData( data ) (* pD12_DAT = (U16)(data) & 0xff )#define D12ReadData() (* pD12_DAT & 0xff )4 音频码流USB 设备驱动程序 Windows2000 中各种USB 设备客户驱动程序结构框架基本相同,可以从Windows2000DDK 中获得USB 设备驱动程序范例代码,对范例代码作少量修改就可以满足特定功能需要。图1 显示了驱动程序各层间的数据传递关系,底层USB 主控制器驱动程序(USB Host Driver)由操作系统提供支持,设备驱动程序只需要对USB Host Driver 上传的I/O 数据包IRP 作出响应,并把要输出数据以IRP 形式下传给USB Host Driver 即可。 在ISO(实时型)模式下传输音频码流,USB 客户程序除了WDM(Windows Driver Model)驱动常规处理外,必须计算好带宽,并为驱动程序在非分页存储区内分配好环行缓冲区(Ringbuffer),以便USB 主控制器可以不间断输出实时数据。RingBuffer 的大小按下式计算:每帧字节数 每缓冲帧数 缓冲区数 ; 每传完一缓冲区,USB Host Driver 回调(CallBack)一次客户驱动程序,USB 带宽按每1ms 传送1 帧数据来分配,要实现8kHz 采样频率、8bits 编码的音频PCM 码流传输,帧数据包大小必须设为8Bytes,若设置4 个缓冲区交替工作,每缓冲区分20 帧传送, 则RingBuffer 的大小为640Bytes,那么USB 主控制器每20ms 的频率中断回调一次客户驱动程序是合适的。 驱动程序通过IoSetCompletionRoutine()函数给每个IRP 设置回调函数入口地址,每完成一个IRP 缓冲区数据传送操作,回调一次该地址指向的函数,以便把下一缓冲包数据压入到IRP 栈,直到全部数据流传送完毕或人为终止传送。5 结束语 扩展USB 接口,大幅提升了32 位ARM 嵌
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 销售外包合同
- 呼和浩特市人民医院过敏休克应急处理考核
- 晋城市人民医院护理科研项目申报考核
- 中介服务合同
- 婚礼跟拍要不要签合同
- 水果购销合同
- 暂定价格合同
- 重庆市中医院国际诊疗标准对接考核
- 保定市人民医院创伤骨科科研能力评估
- 农产品销售合同
- 2025昆明幼儿师范高等专科学校引进高层次人才(6人)考试模拟试题及答案解析
- 徐志摩的诗课件
- 浙江省浙南名校联盟2025-2026学年高三上学期10月联考化学试题
- 2025浙江杭州市发展和改革委员会所属事业单位招聘高层次、紧缺人才4人笔试模拟试题及答案解析
- 2025年专升本政治真题及答案
- 九上历史知识点总结(表格版)
- 幼儿园大班综合《我们和手机》课件
- 招贴设计 课件完整版
- 河南科学技术出版社小学信息技术三年级上册教案
- 【2022秋】人教版(PEP)五年级英语上册教学计划(含进度表)
- 《外婆的澎湖湾》教学课件(共27p)
评论
0/150
提交评论