OMAP5912双核通信及数字音频系统实现
1OMAP5912平台简介
开放式多媒体应用平台(()pen MuItimedia Appli一cations PIatform,OMAP)是针对第三代手机开发的高性能多媒体处理器。除具有性能/功耗比的优势外,还提供丰富的外围接口,支持几乎所有流行的有线和无线接口标准。因其出色表现,该平台一直得到世界主要移动设备制造商(如诺基亚、爱立信、索尼等)的青睐。
0MAP5912采用独特的双核结构,内含1个实现控制功能的带有TI增强型ARM926EJ-S内核的处理器和1个实现数据处理功能的高性能、低功耗TMS320C55x DSP内核。ARM处理器可用来实现各种通信协议、控制和人机接口;DSP具有多条数据地址总线,非常适合数据密集的多媒体处理(如视频编解码),并具有极低的功耗[l]。为结合这两个处理器的优势,使其发挥最大效率,双核通信机制起了至关重要的作用。
2 OMAP5912的双核间通信方式
在0MAP5912中实现ARM和DSP双核通信方式有共享邮箱寄存器、共享存储空间2种,在实际应用中需要配合使用这些双核通信方式。如双核通信中的握手联络,其数据量小,可用传递消息及时可靠的共享邮箱用来实现;当需要传输大量数据(如图像数据)时,通常要使用高效率的共享存储空间这种通信方式。
2.1共享邮箱寄存器方式
双核间可相互中断并通过邮箱寄存器传递少量数据。共有4套邮箱寄存器,每套邮箱寄存器由2个16 bit寄存器和1个1 bit寄存器组成。当一个处理器将合适的命令字写到命令字寄存器后,该寄存器会产生中断,对另一个处理器的标志寄存器进行正确设置。被中断的处理器通过读标志寄存器响应中断并清空标志寄存器。每套邮箱寄存器中,还有1个附加的数据字寄存器,可在每次中断时在处理器间传送2个字的数据。通过命令和数据字通信的信息完全由用户定义。数据字可用来表示地址指针或状态字。
2.2共享存储器方式
共享存储器有2种方式。第一种方式由ARM通过主机接口(MPU Interface,MPUI)获取对DSP存储空间和I/O空间的访问权,由ARM完成数据在双核间的搬移。MPUI为MPU和系统DMA控制器与DSP及其外设的通信提供了桥梁,通过MPuI可访问DSP的整个存储空间及其公共外设总线。
另一种方式是ARM通过对DSP存储管理单元(Memoy Management Unit,MMU)的设置将DSP的外部存储空间映射到OMAP5912系统存储资源中,由DSP完成双核间的数据传输。OMAP5912通过通信控制器(Traffic Controller,TC)实现共享存储器,这样ARM和DSP可访问共享的静态随机存储器(StaticRAM,SRAM)、高速外部存储器接口(I,Zxteraaal:Mem0ryInterface Fast,EMIFF)以及低速外部存储器接口(Ex-terhal Memory Interface Slow,EMIFS)的存储空间[2]。
3 双核间通信的基础应用程序
为降低上层应用开发者的实现难度和节省设计时间,采用双核间通信的基础应用程序--DSP/BIOSLINK[3],其为上述两种双核通信方式的实现。开发人员在进行上层应用程序开发时,只需使用DSP/BIOSLINK提供的接口函数。DSP/BIOS LINK允许开发人员在ARM端利用一套标准API进入和控制DSP的运行环境;用于非对称的、由一个通用处理器(如ARM)和一个或多个DSP组成的处理器环境。图1为DSP/BIOSLINK的软件体系结构图。
DSP/BIOS LINK为开发人员提供的服务有:基本的处理器控制(启动、执行、停止)、基于逻辑通道(CHANNEL)的数据传输、消息(基于MSGQ模块)。由PROC,CHNL,MSGQ3个组件组成。PROC是PROCESSCONTROL的缩写,负责DSP处理器在应用程序用户空间的操作,主要功能有:DSP初始化、DSP端程序的加载、执行和停止。CHNL是CHANNEL的缩写,表示ARM和DSP间数据流的逻辑通道,负责ARM和DSP间的数据传输。CHNL是ARM和DSP之间的逻辑实体,实现二者的物理连接。MSGQ是MESSAGEQUEUE的缩写,负责ARM和DSP间长短不一的消息的交互和通信。消息的接收和发送是通过消息队列实现的[4]。
4 基于OMAP5912的数字音频系统买现
笔者以基于OMAP5912_的数字音频系统为例介绍OMAP双核间通信的具体应用。系统在RF6(ReferenceFramework Level 6)框架基础上实现,整个系统将输入的立体声音频信号按照给定的采样率和量化精度转化为左、右两声道数据帧,再对其进行有限脉冲滤波器FIR算法和声音控制VOL算法处理,然后合成立体声输出。整个系统划分为ARM端应用程序和DSP端算法2部分。
评论