基于嵌入式ARM9的USB设计与实现(精选合集).docx 立即下载
2025-08-26
约2.1万字
约37页
0
30KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

基于嵌入式ARM9的USB设计与实现(精选合集).docx

基于嵌入式ARM9的USB设计与实现(精选合集).docx

预览

免费试读已结束,剩余 32 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于嵌入式ARM9的USB设计与实现(精选合集)

第一篇:基于嵌入式ARM9的USB设计与实现基于嵌入式ARM9的USB设计与实现引言USB(UniversalSerialBus)是通用串行总线的缩写,因其具有方便易用,动态分配带宽,容错性优越和高性价比等特点,现已成为计算机的主流接口。随着嵌入式系统的广泛应用,各种小型终端需要开发出与外界联系的USB接口。目前,常用的技术有两种。基于单片机的USB接口,特点是需要外置芯片,电路复杂,留下的CPU资源不多;基于ARM的USB接口,特点是资源丰富,但ARM系列产品较多,如果选型不当,还需要搭接较多的外围电路,且不能很好地发挥CPU性能。USB接口原理USB1.1规范[1]将USB分为5部分:控制器、控制器驱动程序、USB芯片驱动程序、USB设备以及针对不同USB设备的客户端驱动程序。(1)控制器(HostController)主要负责执行由控制器驱动程序发出的命令。(2)控制器驱动程序(HostControllerDriver),在控制器与USB设备间建立通信管道(Pipe)。(3)USB驱动程序(USBDriver),提供对不同USB设备及芯片的支持。(4)USB设备(USBDevice),有两类USB设备:一类称为功能设备(Function),另一类是称为USB集线器(HUB),可以连接多个USB设备。(5)USB设备驱动程序(ClientDriverSoftware)及特定应用程序。主控制器的驱动软件由操作系统支持,USB设备开发人员一般只需编写客户驱动程序,实现特定功能,设备端所有功能软件需要全面设计。USB的四种数据传输模式分别是:控制型传输、中断型传输、批量型传输、实时型传输。第一种在缺省通道中传输USB接口本身的配置等控制信息,后面三种用于功能部件传输数据。中断型用于键盘等的异步输入输出少量数据传输,批量传输主要用于象硬盘等块设备的数据传输,在中断和批量的传输过程中要传递交互握手信号,确保数据准确无误。实时传输对带宽有严格要求,但允许有一定误码,省去了交互握手信号的传递,常用于音视频码流数据传输。四种类型数据都按带宽要求分配在1ms一帧的数据帧内进行传输,连到端点(EndPoint)通道.1.1嵌入式系统USB接口设计要满足高性能ARM嵌入式系统的要求,扩展USB接口必须选择高性能USB控制器芯片,Philips公司的PDISUBD12USB器件,是与微处理器配合使用的高性能USB接口器件,性价比很高[2][4]。PDIUSBD12主要特性有:(1)符合USB1.1技术规范;(2)USB控制器并行接口与处理器间的数据传输速度高达2M字节/秒;(3)在批量模式和同步模式下均可实现1M字节/秒的数据传输速率;(4)集成了FIFO存储收发器,支持DMA操作;(5)内置时钟倍频PLL电路,可编程时钟频率输出;(6)多中断模式实现批量和同步传输;1.2音频码流USB设备驱动程序Windows2000中各种USB设备客户驱动程序结构框架基本相同,可以从Windows2000DDK中获得USB设备驱动程序范例代码,对范例代码作少量修改就可以满足特定功能需要。图1显示了驱动程序各层间的数据传递关系,底层USB主控制器驱动程序(USBHostDriver)由操作系统提供支持,设备驱动程序只需要对USBHostDriver上传的I/O数据包IRP作出响应,并把要输出数据以IRP形式下传给USBHostDriver即可[5][6]。在ISO(实时型)模式下传输音频码流,USB客户程序除了WDM(WindowsDriverModel)驱动常规处理外,必须计算好带宽,并为驱动程序在非分页存储区内分配好环行缓冲区(Ringbuffer),以便USB主控制器可以不间断输出实时数据。RingBuffer的大小按下式计算:每帧字节数×每缓冲帧数×缓冲区数;每传完一缓冲区,USBHostDriver回调(CallBack)一次客户驱动程序,USB带宽按每1ms传送1帧数据来分配,要实现8kHz采样频率、8bits编码的音频PCM码流传输,帧数据包大小必须设为8Bytes,若设置4个缓冲区交替工作,每缓冲区分20帧传送,则RingBuffer的大小为640Bytes,那么USB主控制器每20ms的频率中断回调一次客户驱动程序是合适的。驱动程序通过IoSetCompletionRoutine()函数给每个IRP设置回调函数入口地址[6],每完成一个IRP缓冲区数据传送操作,回调一次该地址指向的函数,以便把下一缓冲包数据压入到IRP栈,直到全部数据流传送完毕或人为终止传送。S3C2440A特点S3C2440A的CPU部分主要集成了电源模块、复位和时钟模块、触摸屏和小键盘模块、程序存储器和数据存储器模块。同
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

基于嵌入式ARM9的USB设计与实现(精选合集)

文档大小:30KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用