赵付轩,杨斌
(西南交通大学 信息科学与技术学院,成都 610031)
赵付轩(硕士生)、杨斌(教授),主要研究方向为单片机与嵌入式系统应用。
如图1所示,BeagleBoard开发板主要由OMAP3530异构双核处理器、MMC模块、电源、I2C总线模块及多通道缓冲串口(McBSP)等部件组成。系统由MMC模块通过SD卡启动Bootloader及QNX操作系统,通过I2C总线模块连接语音模块,通过McBSP连接其他模块。

图1 BeagleBoard开发板
OMAP3530采用一种独特的双核结构,把控制性较强的ARM处理器和高性能、低功耗的DSP结合起来,是一种开放式的可编程体系结构。对于一些运算量大的实时信号,例如图像、音频数据,可以采用DSP进行计算,而对于通信、外设控制等功能,则采用ARM处理器来实现,从而在功耗和复杂应用之间建立了良好的平衡。利用不同的内核(ARM和DSP)和硬件加速器的不同功能,根据性能或功耗的要求将一个算法映射到最佳的处理器引擎,这样分别发挥了DSP和ARM核的优势,与传统只使用ARM核或只使用DSP芯片的移动终端相比,OMAP成功实现了性能与功耗的最佳组合。
ARM与DSP通信结构框图如图2所示。Codec Engine是连接ARM和DSP或协处理器的桥梁[1],是介于应用层(ARM侧的应用程序)和信号处理层(DSP侧的算法)之间的软件模块。ARM应用程序调用Codec Engine的 VISA (Video,Image,Speech,Audio)API,如图2中VIDENC_process(a,b,c)。Codec Engine的stub(ARM侧)会把参数a、b、c以及要调用DSP侧process这个信息打包,通过消息队列(message queue)传递到DSP。Codec Engine的skeleton(DSP侧)会解开这个参数包,把参数a、b、c转换成DSP侧对应的参数x、y、z(比如ARM侧传递的是虚拟地址,而DSP只能认物理地址),DSP侧的server(优先级较低,负责和ARM通信的任务)会根据process这一信息创建一个DSP侧的process(x,y,x)任务最终实现 VIDENC_process(a,b,c)的操作。……