基于arm9的linux下音频总线驱动程序的设计内容摘要:

随着 WS 信号的改变,导出一个 WSP 脉冲信号,进入并行移位寄存器,从而输出数据被激活。 串行数据的默认输入是 0,因此所有位于最低位 (LSB)后的数据将被设置为 0。 随着第一个 WS 信号的改变, WSP 在 SCK 信号的下降沿重设计数器。 在 “ 1 out of n” 译码器对计数器数值进行译码后,第一个串行的数据 (MSB)在 SCK 时钟信号的上升沿被存放进入 B1,随着计数器的增长,接下来的数据被依次存放进入 B2 到 Bn 中。 在下一个 WS 信号改变的时候,数据根据 WSP 脉冲的变化被存放进入左 (声道 )锁存器或者右 (声道 )锁存器,并且将 B2 一 Bn 的数据清除以及计数器重设,如果有冗余的数据则最低位之后的数据将被忽略。 注意:译码器和计数器 (虚线 内的部分 )可以被一个 n 比特移位寄存器所代替。 IIS 总线接口可作为一个编码解码接口与外部 8/16 位的立体声音频解码电路( CODEC IC)相连,从而实现微唱片和便携式应用。 它支持 IIS 数据格式和 MSBJustified 数据格式。 IIS总线接口为先进先出队列 FIFO的访问提供 DMA传输模式来取代中断模式,可同时发送和接收数据,也可只发送或接收数据。 第二章 ARM 嵌入式系统 嵌入式系统概述 嵌入式系统一般指非 PC 系统,有计算机功能但又不称之为计算机的设备或器材。 它是以应用为中心,软硬件可裁减的,适 应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。 简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于 PC 中 BIOS 的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。 嵌入式系统主要由嵌入式处理器、相关支撑硬件、第二章 嵌入式系统 5 嵌入式操作系统及应用软件系统等组成,它是可独立工作的 “ 器件 ”。 嵌入式系统几乎包括了生活中的所有电器设备,如掌上 PDA、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全 系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。 嵌入式系统的硬件部分,包括处理器 /微处理器、存储器及外设器件和 I/O 端口、图形控制器等。 嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用 EPROM、 EEPROM 或闪存 (Flash memory)作为存储介质。 软件部分包括操作系统软件 (要求实时和多任务操作 )和应用程序编程。 应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。 嵌入式处理器 嵌入式系统的核心是嵌入式微处理 器。 嵌入式微处理器一般具备 4 个特点: ( 1) 对实时和多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时操作系统的执行时间减少到最低限度; ( 2) 具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断; ( 3) 可扩展的处理器结构,以能迅速地扩展出满足应用的高性能的嵌入式微处理器; ( 4) 嵌入式微处理器的功耗必须很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入 式系统更是如此,功耗只能为 mw 甚至 μw 级。 据不完全统计,目前全世界嵌入式处理器的品种总量已经超过 1000 种,流行的体系结构有 30 多个系列。 其中 8051 体系占多半,生产这种单片机的半导体厂家有 20 多个,共 350 多种衍生产品,仅 Philips 就有近 100 种。 现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理器设计部门。 嵌入式处理器的寻址空间一般从64Kb 到 16Mb,处理速度为 ~2020MIPS,常用封装 8~144 个引脚。 根据现状,嵌入式计算机可分成下面几类 [1]。 ( 1) 嵌入式微处 理器 (Embedded MicroProcessor Unit, EMPU) 嵌入式微处理器采用 “增强型 ”通用微处理器。 由于嵌入式系统通常应用于环境比较恶劣的环境中,因而嵌入式微处理器在工作温度、电磁兼容性以及可靠性方面的要求较通用的标准微处理器高。 但是,嵌入式微处理器在功能方面与标准的微处理器基本上是一样的。 根据实际嵌入式应用要求,将嵌入式微处理器装配在专门设计的主板上,只保留和嵌入式应用有关的主板功能,这样可以大幅度减小系统的体积和功耗。 和工业控制计算机相比,嵌入式微处理器组成的系统具有体积小、重量轻、成 本低、可靠性高的优点,但在其电路板上必须包括 ROM、 RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。 由嵌入式微处理器及其存储器、总线、外设等安装在一块电路主板上构成一个通常所说的单板机系统。 嵌入式处理器目前主要有 AM186/8 386ex、 sc400、 Power 基于 ARM9 的 LINUX 下音频总线驱动程序的设计 6 PC、 68000、 MIPS、 ARM 系列等。 ( 2) 嵌入式微控制器 (MicroController Unit, MCU) 嵌入式微控制器又称单片机,它将整个计算机系统集成到一块芯片中。 嵌入式微控制器一般以某种微处理器内核 为核心,根据某些典型的应用,在芯片内部集成了ROM/EPROM、 RAM、总线、总线逻辑、定时 /计数器、看门狗、 I/O、串行口、脉宽调制输出、 A/D、 D/A、 Flash RAM、 EEPROM 等各种必要功能部件和外设。 为适应不同的应用需求,对功能的设置和外设的配置进行必要的修改和裁减定制,使得一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都相同,不同的是存储器和外设的配置及功能的设置。 这样可以使单片机最大限度地和应用需求相匹配,从而减少整个系统的功耗和成本。 和嵌入式微处理器相比,微控制器的单片化使应 用系统的体积大大减小,从而使功耗和成本大幅度下降、可靠性提高。 由于嵌入式微控制器目前在产品的品种和数量上是所有种类嵌入式处理器中最多的,而且上述诸多优点决定了微控制器是嵌入式系统应用的主流。 微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。 通常,嵌入式微处理器可分为通用和半通用两类,比较有代表性的通用系列包括 805 P51XA、MCS25 MCS96/196/29 C166/16 68300 等。 而比较有代表性的半通用系列,如支持 USB 接口的 MCU 8xc930/93 C5 C541;支持 I2C、 CAN 总线、 LCD 等的众多专用 MCU 和兼容系列。 ( 3) 嵌入式 DSP 处理器 (Embedded Digital Signal Processor, EDSP) 在数字信号处理应用中,各种数字信号处理算法相当复杂,这些算法的复杂度可能是O(nm)的,甚至是 np 的,一般结构的处理器无法实时的完成这些运算。 由于 DSP 处理器对系统结构和指令进行了特殊设计,使其适合于实时地进行数字信号处理。 在数字滤波、fft、谱分析等方面, DSP 算法正大量进入嵌入式领域, DSP 应用正从在通用单片机中以普通指令实现 DSP 功能,过渡到采用嵌入式 DSP 处理器。 嵌入式 DSP 处理器有两类:(1)DSP 处理器经过单片化、 EMC 改造、增加片上外设成为嵌入式 DSP 处理器, TI 的TMS320c2020/c5000 等属于此范畴; (2)在通用单片机或 So 中增加 DSP 协处理器,例如intel 的 MCS296 和 Infineon (Siemens)的 TriCore。 另外,在有关智能方面的应用中,也需要嵌入式 DSP 例如各种带有智能逻辑的消费类产品,生物信息识别终端,带有加解密算法的键盘, ADSL 接入、实时语音压解系统,虚拟现实显示等。 这类智能化算 法一般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是 DSP 处理器的优势所在。 嵌入式 DSP 处理器比较有代表性的产品是 TI 的 TMS320 系列和 Motorola 的 DSP56000系列。 TMS320 系列处理器包括用于控制的 c2020 系列、移动通信的 c5000 系列,以及性能更高的 c6000 和 c8000 系列。 DSP56000 目前已经发展成为 DSP56000、 DSP56100、DSP56200 和 DSP56300 等几个不同系列的处理器。 另外, Philips 公司最近也推出了基于可重置嵌入式 DSP 结构,采用低成 本、低功耗技术制造的 R. E. A. L DSP 处理器,其特点是具备双 Harvard 结构和双乘 /累加单元,应用目标是大批量消费类产品。 第二章 嵌入式系统 7 ( 4) 嵌入式片上系统 (System on Chip, SoC) 随着 EDI 的推广和 VLSI 设计的普及化,以及半导体工艺的迅速发展,可以在一块硅片上实现一个更为复杂的系统,这就产生了 SoC 技术。 各种通用处理器内核将作为 SoC设计公司的标准库,和其他许多嵌入式系统外设一样,成为 VLSI 设计中一种标准的器件,用标准的 VHDL、 Verlog 等硬件语言描述,存储在器件库中。 用户只需定 义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。 这样除某些无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简单,对于减小整个应用系统体积和功耗、提高可靠性非常有利。 SoC 可分为通用和专用两类,通用 SoC 如 Infineon(Siemens)的 TtrCore、 Motorola 的 MCore,以及某些 ARM 系列器件,如 Echelon 和 Motorola 联合研制的 neuron 芯片等;专用 SoC 一般专用于某个或某类系统中,如 Philips 的 Smart XA,它将 XA 单片机内核和支持超过 2048 位复杂 RSA算法的 CCU 单元制作在一块硅片上,形成一个可加载 JAVA 或 C 语言的专用 SoC,可用于互联网安全方面。 嵌入式操作系统 嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统 (包括硬、软件系统 )极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等 Browser。 嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程 序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序。 与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点 [2]。 嵌入式操作系统的种类 一般情况下,嵌入式操作系统可以分为两类,一类是面向控制、通信等领域的实时操作系统。 如 WindRiver 公司的 VxWorks、 ISI 的 pSOS、 QNX 系统软件公司的 QNX、 ATI的 Nucleus 等;另一类是面向消费电子产品的非实时操作系统 ,这类产品包括个人数字助理 (PDA) 、移动电话、机顶盒、电子书、 WebPhone 等 ( 1)非实时操作系统 早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。 在这种情况下,通常把嵌入式程序分成两部分,即前台程序和后台程序。 前台程序通过中段来处理事件,其结构一般为无限循环;后台程序则掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。 这就是通常所说的前后台系统。 一般情况下,后台程序也叫任务级程序,前台程序也叫事件处理级程序。 在程序运行时,后台程序检查每个任务是否具备运行条件,通过一定 的调度算法来完成相应的操作。 对于实时性要求特别严格的操作通常由中断来完成,仅在中断服务程序中标记事件的发生,不再做任何工作就退出中断,经过后台程序的调度,转由前台程序完成事件的处基于 ARM9 的 LINUX 下音频总线驱动程序的设计 8 理,这样就不会造成在中断服务程序中处理费时的事件而影响后续和其他中断。 实际上,前后台系统的实时性比预计的要差。 这是因为前后台系统认为所有的任务具有相同的优先级别,即是平等的,而且任务的执行又是通过 FIFO 队列排队,因而对那些实时性要求高的任务不可能立刻得到处理。 另外,由于前台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任 务崩溃,使得整个任务队列中的其他任务得不到机会被处理,从而造成整个系统的崩溃。 由于这类系统结构简单,几乎不需要 RAM/ROM 的额外开销,因而在简单的嵌入式应用被广泛使用。 ( 2)实时操作系统 实时系统是指能在确定的时间内执行其功能并对外部的异步事件做出响应的计算机系统。 其操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关。 “在确定的时间内 ”是该定义的核心。 也就是说,实时系统是对响应时间有严格要求的。 实时系统对逻辑和时序的要求非常严格,如果逻辑和时序出现偏差将会引起严重后果。 实时系统有两 种类型:软实时系统和硬实时系统。 软实时系统仅要求事件响应是实时的,并不要求限定某一任务必须在多长时间内完成;而在硬实时系统中,不仅要求任务响应要实时,而且要求在规定的时间内完成事件的处理。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。