快速实现ARM和DSP的通信和协同工作(一)
2010-01-15 21:32
323 查看
转自:http://www.ed-china.com/ART_8800030596_400005_500005_TS_87b34bc8.HTM,如侵权,请告知,我会立即删除。
视频监控子系统是现代智能机器人设计中必不可少的一个部分,它需要采用DSP并根据某种算法对摄入的图像进行处理和分析,它也需要采用ARM处理器对 DSP进行协同管理和控制工作,目前开发工程师碰到的一个最大设计挑战是:如何最高效率地实现ARM和DSP或协处理器的通信和协同工作?本文将详细为您 介绍解决这一技术挑战的解决方案和实现指南。
德州仪器(TI)的第一颗达芬奇(DaVinci)芯片(处理器)DM6?46已经问世快三年了。继DM6?4x之后,TI又陆续推出了DM6?3x、 DM35x、DM6?67、OMAP353x等一系列ARM+DSP或ARM+视频协处理器的多媒体处理器平台。很多有很强DSP开发经验或ARM开发经 验的工程师都转到达芬奇或通用OMAP(OMAP353x)平台上开发视频监控、视频会议及便携式多媒体终端等产品。大家都面临着同一个问题,那就是如何 实现ARM和DSP或协处理器的通信和协同工作?TI的数字视频软件开发包(DVSDK)提供了Codec Engine这样一个软件模块来实现ARM和DSP或协处理器的协同工作。有很多工程师反馈这个软件模块非常好用,节省了很多开发时间,也有工程师认为 TI提供的资料太多,不知如何快速上手。本文将从一个第一次接触Codec Engine的工程师角度出发,归纳TI提供的相关资源(文档,例程和网络资源),并介绍相关开发调试方法帮您快速入门Codec Engine。
1.Codec Engine概述
如图1所示,Codec Engine是连接ARM和DSP或协处理器的桥梁,是介于应用层(ARM侧的应用程序)和信号处理层(DSP侧的算法)之间的软件模块。ARM应用程序 调用Codec Engine的VISA (Video, Image, Speech, Audio)API,如图1中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)的操作。
作者:崔晶
通用DSP 技术应用工程师
德州仪器半导体技术(上海)有限公司
视频监控子系统是现代智能机器人设计中必不可少的一个部分,它需要采用DSP并根据某种算法对摄入的图像进行处理和分析,它也需要采用ARM处理器对 DSP进行协同管理和控制工作,目前开发工程师碰到的一个最大设计挑战是:如何最高效率地实现ARM和DSP或协处理器的通信和协同工作?本文将详细为您 介绍解决这一技术挑战的解决方案和实现指南。
德州仪器(TI)的第一颗达芬奇(DaVinci)芯片(处理器)DM6?46已经问世快三年了。继DM6?4x之后,TI又陆续推出了DM6?3x、 DM35x、DM6?67、OMAP353x等一系列ARM+DSP或ARM+视频协处理器的多媒体处理器平台。很多有很强DSP开发经验或ARM开发经 验的工程师都转到达芬奇或通用OMAP(OMAP353x)平台上开发视频监控、视频会议及便携式多媒体终端等产品。大家都面临着同一个问题,那就是如何 实现ARM和DSP或协处理器的通信和协同工作?TI的数字视频软件开发包(DVSDK)提供了Codec Engine这样一个软件模块来实现ARM和DSP或协处理器的协同工作。有很多工程师反馈这个软件模块非常好用,节省了很多开发时间,也有工程师认为 TI提供的资料太多,不知如何快速上手。本文将从一个第一次接触Codec Engine的工程师角度出发,归纳TI提供的相关资源(文档,例程和网络资源),并介绍相关开发调试方法帮您快速入门Codec Engine。
1.Codec Engine概述
如图1所示,Codec Engine是连接ARM和DSP或协处理器的桥梁,是介于应用层(ARM侧的应用程序)和信号处理层(DSP侧的算法)之间的软件模块。ARM应用程序 调用Codec Engine的VISA (Video, Image, Speech, Audio)API,如图1中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)的操作。
作者:崔晶
通用DSP 技术应用工程师
德州仪器半导体技术(上海)有限公司
相关文章推荐
- 快速实现ARM和DSP的通信和协同工作(一)
- 快速实现ARM和DSP的通信和协同工作
- 快速实现ARM和DSP的通信和协同工作(转)
- 快速实现ARM和DSP的通信和协同工作
- 快速实现ARM和DSP的通信和协同工作
- 快速实现ARM和DSP的通信和协同工作
- 快速实现ARM和DSP的通信和协同工作(二)
- 快速实现ARM和DSP的通信和协同工作(三)
- 视频监控系统中快速实现ARM和DSP的通信和协同工作
- 快速实现ARM和DSP的通信和协同工作(四)
- 双核处理器ARM+DSP如何实现协同工作
- 双核处理器ARM+DSP如何实现协同工作
- 双核处理器ARM+DSP如何实现协同工作
- ARM核与DSP核通信的解决方案(dvsdk_3_00)
- 关于Qt移植后环境变量的设置 qt移植到arm中文显示问题解决 实现pc与tiny210 arm开发板 udp通信
- 使用 MQTTnet 快速实现 MQTT 通信
- 使用 JSONP 实现跨域通信,第 1 部分: 结合 JSONP 和 jQuery 快速构建强大的 mashup
- JNI——实现Java与C的协同工作(三)
- ARM-AT91RM9200嵌入式核心控制器模块 — 快速实现工业自动化的核心控制
- IceWarp 11.4 新版本隆重发布 企业级邮件、协同工作系统、TeamChat 构建企业通信内环境