引言
随着通信技术的发展, 新一代移动通信设备所提供的服务不仅有话音通信, 还包括移动电子商务、语音识别、音频和活动视频流等复杂的业务。因此新的移动通信设备需要具有更强大的信号处理能力和寿命长、体积更小的电池。这对于设备制造商来说, 就需要有一个既高效又节能的系统解决方案。由TI 公司推出的面向3G 无线终端的开放式的多媒体应用平台(OMAP) 是能满足上述需求的一个较好的解决方案。目前, TI 公司的OMAP 芯片中以OMAP5910 最为典型。OMAP5910 器件结合了DSP 与RISC 内核, 可提供无线多媒体设备独一无二的性能与功能优势。ARM RISC 适用于控制代码, 例如用户界面、操作系统及操作系统应用。而DSP 非常适用于在多媒体使用的实时信号处理应用。
OMAP5910 的硬件架构
OMAP 的硬件架构主要由DSP 核、ARM核以及业务控制器(Traffic Controller) 组成。这3 个部分可以独立地进行时钟管理, 有效地控制功耗。OMAP5910 内具有命令与控制能力的增强型ARM925 核和高性能低功耗的TMS320C55X DSP 核, 以及二者的交互机制、存储器管理模块和系统的各种增强外设。TI 增强型ARM925 是ARM RISC 体系结构的典型代表, 工作主频175 MHz, 片内有1.5 MHz 的内部SRAM, 也可接外部存储器, 为液晶显示提供了大量的数据和代码存储空间。它有13 个内部中断和19 个外部中断, 采用两级中断管理。C5510DSP 具有最佳的功耗性能比, 工作主频200 MHz。内部有32 KB 的双存取DRAM, 48 KB 的单存取SRAM 和12 KB 的高速指令缓存。此外,OMAP1510 芯片具有丰富的外围接口, 例如, 液晶控制器、存储器接口、摄像机接口、GPIO 接口等。
OMAP5910 处理器的双核通信机制
在OMAP5910 器件中, MPU 和DSP 间的通信可以由多种通信机制实现, 其中最主要的是邮箱寄存器、MPU 接口以及共享存储器空间这3 种方式。
MPU/DSP 邮箱寄存器
MPU 和DSP 的处理器, 通过一个邮箱中断机制实现相互间的通信。该机制在处理器间提供了一种非常灵活的软件协议。公共TIPB 空间中, 共有4 套邮箱寄存器, 可由两个处理器共享, MPU 和DSP 都可在它们各自的公共TIPB 空间内访问这些寄存器。
4 套邮箱寄存器中2 个用于MPU 发送信息并对DSP 产生中断, 另外2 个用于DSP 发送信息并对MPU产生中断。每套邮箱寄存器由2 个16 bit 寄存器和1个1 bit 的标志寄存器组成。产生中断的处理器可用一个16 bit 的寄存器传输数据字到被中断的处理器, 并对另一个16 bit 寄存器传输一个命令字。两个处理器间的通信是这样实现的: 当一个处理器将合适的命令字写到命令字寄存器后, 该寄存器会产生中断, 对另一个处理器的标志寄存器进行正确设置。被中断的处理器通过读标志寄存器响应中断并清空标志寄存器。每套邮箱寄存器中, 还有一个附加的数据字寄存器, 可以在每次中断时在处理器间传送两个字的数据。通过命令和数据字通信的信息完全由用户定义。数据字可以用来表示地址指针或状态字。
MPU 接口(MPUI)
MPU 接口为MPU 和系统DMA 控制器与DSP 及其外设的通信提供了桥梁。通过MPUI 可以访问DSP的整个存储空间( 16 MB) 及DSP 的公共外设总线。因此, MPU 和系统DMA控制器都可以访问整个DSP I/O 空间( 128 KB) , 包括DSP 公共外设的控制寄存器。MPUI 端口支持以下特性:( 1) 4 种访问模式; ( 2) 访问超时,对MPU 产生中断; ( 3) 编程决定优先级别(MPU 与DMA) ; ( 4) 数据的打包和解包( 12~32 bit, 反之亦然) ; ( 5) 支持32 bit 单访问; ( 6) 软件控制的端模式转换; ( 7) 对整个DSP 存储空间及DSP 公共外设的系统DMA 访问能力。该端口有多种功能, 比如: 把MPU 的程序代码装入到DSP 的程序空间、在MPU 和DSP 间共享数据、通过共享存储器实现处理器间通信协议, 或者允许MPU使用和控制DSP 的公共TIPB 外设。3.3 MPU/DSP 共享存储器OMAP5910 通过一个通信控制器来实现共享存储器结构。这样, MPU 和DSP 就可以访问同一个共享SRAM存储器( 192 KB) 、EMIFF 以及EMIF 存储空间。通过DSP 存储管理单元(MMU) , MPU 可以控制DSP,访问共享存储器空间中的某个区域, 并定义MPU 和DSP 访问这个共享区的协议, 从而实现处理器间的通信机制。这种方法可用来结合邮箱寄存器产生握手中断, 使MPU 和DSP 能以同步方式访问共享存储器。当希望在MPU 和DSP 间传输的数据大小超过每个邮箱命令和数据寄存器所能提供的2 个16 bit 的限度时,以这种方式使用共享存储器是很有效的。
双核通信在MP3 编码中的具体应用
MP3 编码原理及设计
MP3 是目前世界上最流行的音频格式之一, 其采用了MPEG 层Ⅲ标准压缩编码格式, 遵循MP3 标准的音乐具有很高的压缩率和较高的保真度。它基于感知音频编码技术, 结合了MUSICAM( 掩蔽模式通用子带集成编码与多路复用) 算法和ASPEC( 自适应频谱感知熵编码) 算法的优势, 利用人耳的听觉特性, 在保证高品质音响效果的前提下, 可以把原始的音乐数据压缩为原来的, 目标编码速率为64 Kb/s/声道, 适合于网络上音频数据的传输。编解码算法框图如图1 所示。笔者在TI 的OMAP5910 平台上实现MP3 编码,CODEC 芯片采用TI 的TLV320AIC23, OMAP5910 通过I2C 接口与TLV320AIC23 连接, OMAP5910 作为主设备, TLV320AIC23 作为从设备。TLV320AIC23 的控制接口遵从I2C 标准, 可以用来对寄存器进行编程。OMAP5910 有3 个McBSP 端口:McBSP1 和McBSP3为DSP 的外设, McBSP2 为ARM 的外设。这里使用OMAP5910 的McBSP1 驱动总线的比特时钟(McBSP1.CLK) 和帧同步信号(McBSP1.FSK) , 控制DSP 与TLV320AIC23 之间的数据通信。
由于MP3 编码算法复杂度高、运算量大, 可利用OMAP 中信号处理能力强的DSP 部分来实现。同时,OMAP 的DSP 由ARM 来引导, DSP 的外设时钟由ARM 启动, audio 芯片由ARM 设置, DSP 的代码由ARM装载。另外, 除了DSP 内部存储器, DSP 要访问其它存储器空间, ARM需要设置DSP 的MMU, 所以DSP的MP3 编码程序必须要有ARM端程序来配合。这里ARM和DSP 之间的通信主要用到了共享存储器及邮箱寄存器方式。 |