32 位ARM 嵌入式系统扩展USB 接口设计

发布者:MysticalDreamer最新更新时间:2011-06-13 关键字: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) 多中断模式实现批量和同步传输;[page]

    采用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 嵌入式系统数据通信的吞吐能力,有即插即用特性和多种数据传输模式,方案适合于嵌入式系统的多种应用。文章具体阐述了方案硬件、软件设计的关键问题,并讨论了如何分配USB 总线带宽,实现恒速音频PCM 码流传送,实验结果表明该方案能流畅地接收Windows2000 通过USB 接口输出话音编码信号,方案可行,具有较高参考价值

 

 

关键字:32位ARM  嵌入式系统  USB接口 引用地址:32 位ARM 嵌入式系统扩展USB 接口设计

上一篇:基于ARM和FPGA的全彩独立视频LED系统
下一篇:基于ARM的热敏电阻温度计的设计

推荐阅读最新更新时间:2024-03-16 12:37

基于嵌入式系统的汽车行驶记录仪的设计
  引言   汽车行驶记录仪是能够记录和再现汽车行驶状态的一种数字式电子记录装置,它可以全程记录汽车的行驶数据,并通过对所记录的行驶信息数据的分析,对车辆的行驶状况予以精确的掌控。汽车行驶记录仪可有效预防驾驶员的违章驾驶,降低车辆的交通事故。早在20世纪70年代,欧共体就开始全面强制使用机电模拟式汽车行驶记录仪并使得交通事故率降低了30%-50%。90年代以来,美国、日本、马来西亚、新加坡等国家也纷纷制定汽车行驶记录仪的法规。   我国从20世纪80年代开始进行汽车行驶记录仪的研制。2003年4月15日,由公安部有关部门起草、国家标准化管理委员会、国家经贸委审定通过,国家质量监督检查检疫总局发布了汽车行驶记录仪的国家标准(GB
[单片机]
基于<font color='red'>嵌入式系统</font>的汽车行驶记录仪的设计
嵌入式系统中用FPGA进行开发的几个发展方向
    顾名思义,嵌入式系统指的是嵌入到系统内部的计算机系统,是面向特定应用设计的专用计算机系统。   早期的嵌入式系统一般是以通用处理器或单片机为核心,在外围电路中加入存储器、功率驱动器、通信接口、显示接口、人机输入接口等外围接口,再加上应用软件,有些还加上了嵌入式操作系统,从而构成完整的系统。   随着微电子技术的进步,SoC已经在很多应用中取代了传统的以单片机为中心的架构,将很多外设和存储器集成在一个芯片中,使系统的功耗和体积越来越小,而功能却越来越强。    FPGA在嵌入式系统中的应用前景   现在的MCU和DSP的功能已经非常强了,但处理能力毕竟还是有限的,厂商在推出一款器件的时候,其性能就已经固定了。当某
[嵌入式]
面向对象的嵌入式系统设计方法
摘要:通过UML语言对嵌入式系统建模,急准确地完成了分析人员与用户需形式化层次上的一致性,也为程序开发人员建立了清晰的程序结构和行为准则,大大缩短了系统开发周期,并使系统的升级和重用成为可能。本文通过一个用Atmel 89C52单片机实现简单变频调速器系统,说明UML应用与嵌入式系统的分析设计方法。 关键词:嵌入式系统 面向对象分析设计 UML 有限状态机 1 概述 随着我国装备制造业的发展,嵌入式系统已经成为制造业的核心技术。它被广泛地应用到工业控制、仿真系统、医疗仪器、信息家电、通信设备等众多领域。目前,围绕嵌入式系统展开研究和开发,已经成为计算机软硬件技术发展最活跃的方向之一。 嵌入式系统不同于通常纯粹的软件系统或
[嵌入式]
欧盟统一后的手机USB接口及其EMC测试要求
从2011年1月1日开始,所有在欧盟销售的带usb接口的手机,其接口统一为micro-B USB,手机及配套充电器的接口如下图所示: 手机充电器的接口一直以来都是五花八门,从Micro-B USB到MiniUSB,甚至还有专属充电数据接口存在,这样的设计极大的不方便消费者。很多时候我们急需充电的时候却发现充电接口不一样。针对这一现象,欧盟委员会已经批准了14家手机品牌大厂商达成的一项协议,统一了手机usb接口为micro-B USB,并采用micro-B USB手机充电器新标准。目前支持此项决议的手机厂商包括摩托罗拉、诺基亚、华为、LG、三星、索尼爱立信等。此项协议实施后,消费者就不用再去为充电而烦躁,让生活更加的轻松
[测试测量]
欧盟统一后的手机<font color='red'>USB接口</font>及其EMC测试要求
全面解读USB接口新标准
涨姿势   USB Type-C是最新的USB接口标准,与USB3.1协议接轨,具有更快的传输速度、不区分正反、支持更大的输出功率三大特点。不久的将来,USB Type-C将会成为最常见的USB接口。   2015年3月苹果公司发布了新一代Macbook,其将电源接口、USB接口、DP接口、HDMI接口与VGA接口统一用一个USB-C来承载。发布已有一年的USB Type-C接口终于引起了大众的关注。 USB Type-C是最新的USB接口标准,与USB3.1协议接轨,具有更快的传输速度、不区分正反、支持更大的输
[嵌入式]
新型多总线UART芯片在嵌入式系统设计中的应用
UART产生于上个世纪70年代,是第一块大规模集成电路。1981年的推出的IBM PC采用了8250 UART与外设进行数据通信,直到上个世纪末,UART一直是PC中最主要的串行通信接口。随着高速串行总线USB的出现,USB以其诸多的优点取代了UART成为个人电脑中应用最广泛的串行接口。 而在嵌入式领域,由于UART具有操作简单、工作可靠、抗干扰强、传输距离远(组成485网络可以传输1,200米以上),设计人员普遍认为UART是从CPU或微控制器向系统的其他部分传输数据的最佳方式,因此它们被大量地应用在工业、通信和家电控制等嵌入式领域。通常MCU/CPU都会自带一个UART串口,但实际应用中一个串口往往不够用,需要进行UART串
[应用]
USB无线网络适配器在嵌入式系统中的应用
引言 WLAN技术和嵌入式技术是目前比较热门的两个研究方向,而将二者相结合,即具有无线接入功能的嵌入式系统更具有诱人的发展前景。本文介绍了将IEEE802.11b无线网络适配器与嵌入式主机通过USB总线进行连接的系统设计与实现。系统采用了先进的ARM处理器,除具有10M/100M以太网接口外,还提供USB主接口方便连接具有USB接口的IEEE 802.11b无线网络适配器。 1.系统的总体实现   1.1系统的构成   系统 CPU采用Samsung公司推出的带有ARM7TDMI内核的S3C4510B作为CPU,RAM采用8M 32位SDRAM,ROM采用4M 16 位FLASH。带有一个JTAG接口用于系统调试,一个
[电源管理]
USB无线网络适配器在<font color='red'>嵌入式系统</font>中的应用
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、1
[单片机]
32 位<font color='red'>ARM</font> <font color='red'>嵌入式系统</font>扩展USB 接口设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved