基于S3C44B0XARM7处理器的嵌入式统扩展USB接口的技术方案

发布者:渤海湾最新更新时间:2023-02-07 来源: elecfans关键字:S3C44B0X  ARM7 手机看文章 扫描二维码
随时随地手机看文章

  常用的主机与嵌入式外设的高速通信接口有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)及特定应用程序。

  基于S3C44B0XARM7处理器的嵌入式统扩展USB接口的技术方

  主控制器的驱动软件由操作系统支持,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) 多中断模式实现批量和同步传输


  基于S3C44B0XARM7处理器的嵌入式统扩展USB接口的技术方

  3 ARM 端USB 设备程序

  设备端程序主要完成:ARM BIOS 和ucLinux 的加载、启动通信进程、USB 控制器初始化、响应主控制器标准PnP 及其他命令、建立USB 端点(End point)逻辑通道、数据传输操作等功能,图3 是基于ARM 的USB 设备与PC 间音频通信的程序功能结构图。

  基于S3C44B0XARM7处理器的嵌入式统扩展USB接口的技术方

  操作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 接口输出话音编码信号,方案可行,具有较高参考价值。


关键字:S3C44B0X  ARM7 引用地址:基于S3C44B0XARM7处理器的嵌入式统扩展USB接口的技术方案

上一篇:基于S3C4510B微处理器和操作系统实现网络通信工程的编写设计
下一篇:教你ARM芯片S3C2410的TFT-LCD驱动方法

推荐阅读最新更新时间:2024-10-09 15:54

ARM7单片机(学习ing)—(六)、SPI接口—02
六、SPI接口 六—(02)、SPI控制数码管(程序里有详细的步骤~~以及注意事项~~) 程序: MDK6_1.c //------------------------------------------------------------------------------ //SPI控制数码管显示 //首先还是先介绍一下大概的操作流程~~ //SPI时钟值计算如下:SPI时钟=Fpclk/SPCCR,式子中,SPCCR的值必须大于8的偶数 //------------------------------------------------------------------------------ //主机SPI的基
[单片机]
<font color='red'>ARM7</font>单片机(学习ing)—(六)、SPI接口—02
ARM7嵌入式系统中Bootloader分析与设计
1.引言 作为一种16/32位的高性能、低成本、低功耗的嵌入式RISC(Reduced Instruction Set Computer)微处理器,ARM(Advanced RISC Machines )微处理器目前已经成为应用最为广泛的嵌入式微处理器 。在嵌入式系统开发中Bootloader常常是嵌入式系统开发中可能遇到的第一个技术难点。应用程序运行环境能否正确构建,内核能否启动成功,都取决于Bootloader能否正确的工作。一个功能完善的嵌入式系统Bootloader还要求能够提供系统更新的能力,以及为了实现这一操作所需要的一个简单的命令控制台。本文在基于ARM7-uClinux嵌入式系统的硬件平台和软件平台基础上,描述了系统
[单片机]
<font color='red'>ARM7</font>嵌入式系统中Bootloader分析与设计
μC/OS-Ⅱ在ARM系列单片机S3C44B0x上的移植
目前,嵌入式系统在工业控制、家用电器、移动通信、PDA等各种领域得到了越来越广泛的应用。由于用户对嵌入式产品的性能要求越来越高,程序设计也变得越来越复杂,这就需要一个通用的嵌入式实时操作系统来对其进行管理和控制。对移植了操作系统的嵌入式系统进行设计和开发,可以大大减小程序员的负担,对于不同的应用可以按照相同的步骤来完成系统的设计。 C/OS-Ⅱ是一种简单高效、源代码公开的嵌入式实时操作系统,具有良好的可扩展性和可移植性,被广泛的应用到各种嵌人式处理器上。 COS-Ⅱ操作系统拥有可固化,可裁剪,可剥夺性的实时内核,可同时管理64个系统任务。利用移植 COS-Ⅱ操作系统的嵌入式微处理器来设计和开发产品,对于提高产品的性能,减少产品的
[单片机]
μC/OS-Ⅱ在ARM系列单片机<font color='red'>S3C44B0x</font>上的移植
ARM7单片机(学习ing)—(四)、定时器—02
只要知道了Startup.s中对单片机时钟的定义~~ 也就是这句话:当外部晶振频率为12MHz时,系统时钟60MHz,外设时钟15MHz~~ 无敌了~~ 感觉一下子好学了好多~~ 不过我还是有点不太清楚就是外设时钟?为什么是15MHz~~ 现在可以先留着~~慢慢来吧~~ 四、定时器 四—(02)、定时控制LED闪烁(应用查询法~~) MDK4_1.c //------------------------------------------------------------------------------ //使用定时器0实现1s定时,控制LED闪烁 //今天使用的是查询法~~ #include lpc210x.
[单片机]
<font color='red'>ARM7</font>单片机(学习ing)—(四)、定时器—02
基于ARM7和DSP的逆变电源设计
引 言   在电气智能化发展无处不在的今天, 无数用电场合离不开 逆变电源 系统( Inverted Pow er Supply System,IPS) 为现场设备提供稳定的高质量电源, 特别在如通信机房、服务器工作站、交通枢纽调度中心、医院、电力、工矿企业等对电源保障有苛刻要求的场合。许多IPS产品因遵循传统设计而不符合或落后于现代电源理念,突出表现为控制模块的单一复杂化, 控制器芯片落后且控制任务繁重, 模拟闭环控制而得不到理想的监控和反馈调节效果, 并由此带来单个控制设备软硬件设计上的隐患, 这对IPS 电源输出造成不利影响, 甚至对用电设备因为供电故障而导致灾难性后果。数字化控制技术日趋成熟, 而且在某些领先理念的
[电源管理]
基于<font color='red'>ARM7</font>和DSP的逆变电源设计
ARM7的MVB_CAN网关设计方案
0 引言 随着网络技术和控制技术的发展,机车信息化控制技术向着更高的方向发展。为此,IEC制定出新的列车通信网路国际标准TCN(机车通信网络),以满足列车微机控制系统中对车载数据通信网提出的新要求。 按照TCN标准,列车通信网可分为两级:第一级是WTB绞线式列车总线(Wired Train Bus),可实现车辆间的数据通信;第二级是MVB(Mul-tifunction Vehicle bus)多功能车辆总线,主要实现同一个车辆内各个功能控制单元之间的数据通信。 多功能车辆总线(MVB)是主要用于有互操作性和互换性要求的互连设备之间进行串行数据通信的一种总线,MVB以其高实时性、高可靠性及可管理性等多方面的优势而广泛的应用在
[单片机]
<font color='red'>ARM7</font>的MVB_CAN网关设计方案
基于ARM的给煤机控制系统的设计
引言 本文设计的给煤机控制系统主要用于火力发电厂的磨煤制粉系统中,它与磨煤机设备配合,承担向系统定量均匀供煤的任务,是火力发电厂重要的辅助设备。这种系统同样可以应用于冶金、化工等部门的散状物料的计量输送系统,对于节约能源和提高经济效益及保证安全方面有重大意义。 图1 自跟踪电源电路 图2 4~20mA电流产生电路 控制系统硬件的设计 该控制系统主要包括称重传感器信号的检测、数字式速度传感器信号的检测、键盘输入信号的扫描、液晶显示屏的显示,以及一些报警装置等。由于本设计对主控制器的要求较高,所以最终采用了Samsung公司的基于ARM7TDMI-S内核的低功耗ARM处理器S3C44B0x作为系统的主控制器。
[单片机]
基于ARM的给煤机控制系统的设计
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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