1865|3

2015

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

关于双核处理器ARM+DSP的问题 [复制链接]

       针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算法的灵活性,又能提供强大的处理能力。德州仪器(TI)继第一系列Davinci芯片DM644x之后,又陆续推出了DM643x,DM35x/36x,DM6467,OMAP35x,OMAPLx等一系列ARM+DSP或ARM+视频协处理器的多媒体处理器平台。众多有很强DSP开发经验的工程师,以及应用处理开发经验的工程师都转到使用达芬奇或OMAP平台上开发视频监控、视频会议及便携式多媒体终端等产品。基于ARM+DSP的芯片架构,如何进行开发实现做期望的嵌入式应用呢?
      传统的芯片,基本是一个处理器内核,或者是通用处理器如ARM,或者是DSP。对于控制和用户接口,一般用通用处理器实现,算法处理或者媒体处理则依赖于DSP或者硬件芯片,很多系统都是双芯片的架构。开发模式也比较单纯,比如ARM芯片,有ARM的的仿真工具,基于OS之上进行应用开发;DSP有DSP的开发工具,如TI的CCS以及510、560的仿真器,可以进行算法的移植、优化、跟踪、调试等。这时,所需要的经验也比较单一。
        基于ARM+DSP的双核架构,很多工程师不知道如何入手进行开发,提出了很多的疑问,比如对ARM工程师,很困惑的是如何使用DSP的资源?如何进行数据的交互?如何保持双核之间的同步?对DSP工程师,则问到如何进行ARM调试?如何启动DSP?如果进行媒体加速,如何操作外设获取或发送数据等。基于不同的开发经验和基础,ARM工程师和DSP工程师会从完全不同的角度来看SOC的芯片,以至于拿到SOC的芯片根本不知道如何入手,这里就本人的经验与大家分享一下。
首先ARM+DSP的芯片,他是一个双核的,对应ARM和DSP分别是不同的指令集和编译器,可以把SOC的芯片看成是两个单芯片的合成,需要两套不同的开发工具,CCS3.3可以进行芯片级的调试和仿真,但是对应ARM和DSP需要选择不同的平台。一般来说,ARM上面跑操作系统,比如Linux,Wince等,在ARM上的开发,除了bootloader以外,基本都是基于OS的开发,比如驱动,内核裁减,以及上层应用等,需要的调试和仿真主要靠log或者OS提供的调试器,如KGDB,Platform Builder等。基于DSP核的开发和传统单核DSP一样,需要用CCS+仿真器来进行开发调试。
其次,对于芯片的外设接口,ARM核和DSP核都可以访问,典型的情况是ARM控制所有的外设,通过OS上的驱动去控制和管理,这部分和传统的ARM芯片类似;DSP主要是进行算法加速,只是和memory打交道,为了保持芯片的资源管理的一致性,尽量避免由DSP去访问外设。当然,根据具体的应用需求,DSP也是可以控制外设接口进行数据的收发,这时,需要做好系统的管理,避免双核操作的冲突。
       对memory的使用,非易失的存储空间,比如NAND、NORFlash,基本也是由ARM访问,DSP的算法代码作为ARM端OS文件系统的一个文件存在,通过应用程序进行DSP程序的下载和DSP芯片的控制。外部RAM空间,即DDR存储区,是ARM和DSP共享存在的,但是在系统设计的时候,需要把ARM和DSP使用的内存严格物理地址分开,以及预留出一部分用来交互的内存空间。一般情况,ARM是用低端地址,DSP通过CMD文件分配高端地址,中间预留部分空间用来做数据交互,比如在OMAP3的Linux下的DVSDK中,128MB的DDR空间被分成三部分,低端地址从0x8000000到0x85800000-1的88MB空间给Linux内核使用;从0x85800000到0x86800000-1的16MB给CMEM的驱动,用来做ARM和DSP的大块数据交互,从0x86800000到0x88000000-1的24MB是DSP的代码和数据空间。
       芯片的启动也是需要重点考虑的问题,一般情况下,是ARM启动,和传统的单核ARM一样,支持不同的启动方式,比如可以支持NAND,NOR,UART,SPI,USB,PCI等接口启动。DSP默认处于复位状态,只有通过ARM的应用下载代码并且解除复位以后,DSP才能跑起来。有些应用场景,需要DSP直接从外部上电就自启动,有些芯片也是支持这种模式的。
最后,关于芯片的通信和同步,这个是困扰很多工程师的问题,为了便于客户的开发和使用,TI提供了DSPLINK,CODECENGINE的DVSDK开发套件,基于DVSDK可以很方便的进行ARM+DSP的应用开发,下面对DVSDK的软件架构,各个软件模块的功能等做简要介绍。
        DVSDK是多个软件模块的集成,包括纯DSP端的软件模块,ARM的软件模块和双核交互的软件模块。DVSDK的软件包都是基于实时软件模块(Real-Time-Software-Component:RTSC)的,还需要安装RTSC的工具XDC,XDC是TI开源的一个工具,可以支持跨平台的开发,能够最大程度的代码重用;如果需要进行纯ARM的开发,还需要ARM的编译工具以及Linux内核或者Wince的BSP;如果需要进行DSP的算法开发或者DSP端开执行代码生成,还需要安装DSP的编译器cgtools和DSP/BIOS;为了便于配置生成DSP端的可执行代码,通过向导生成Codec的RTSC包和可执行代码,还可以选装ceutils和cg_xml。
       DVSDK的核心是CodecEngine,所有的其他软件模块基本都是围绕Codec Engine的。Codec Engine是连接ARM和DSP的桥梁,是介于应用层(ARM侧的应用程序)和信号处理层(DSP侧的算法)之间的软件模块,在编译DSP端可执行代码和ARM端应用程序时,都需要Codec Engine的支持。Codec Engine主要有两部分:
 ARM端应用适配层,提供了精简的API和对应的库给应用层使用。
 DSP的算法调用层,提供了DSP算法的接口封装规范,是的所有的算法通过简单的配置就可以编译到DSP的可执行程序中。
最终的应用程序需要通过Codec Engine的API接口来下载DSP代码,调用DSP端的封装好的算法,以及进行ARM和DSP的通信。
关于CodecEngine的介绍,可以参考《帮您快速入门Codec Engine》。
Codec Engine底层ARM和DSP的通信是建立在DSP/BIOSLink之上的,DSP/BIOSLink真正实现ARM和DSP交互的软件模块。由于DSP/BIOS Link是跨平台的,也是有ARM部分和DSP部分组成,其中在ARM端,包括基于OS的驱动和供应用调用的库文件,DSP端,必须要用DSP/BIOS,DSP的可执行代码需要包含DSP/BIOSLink的库文件。DSP/BIOSLink常用的主要有如下几部分的软件模块:
 PROC相关的,主要是用来做DSP芯片的控制,比如启动,停止等,下载DSP的可执行代码,以及直接读写DSP端的memory空间
 MSGQ相关,ARM和DSP的通信是基于MSGQ的,MSGQ有轮询等待的方式或者中断的方式,MSG是基于共享内存池的方式。Codec Engine通过MSGQ交互一些关键数据,比如控制,和一些大块数据的地址指针等大量的数据交互需要通过cmem实现
        在ARM端,配合CodecEngine使用的软件模块有LinuxUtils或者WinceUtils,包含cmem,SDMA等,cmem是用来在OS之外分配连续物理内存空间,进行物理地址到虚地址,以及虚地址到物理地址空间转化的。为了避免数据的多次复制,需要开辟一块ARM和DSP共享的数据空间,ARM和DSP都可以直接访问,这部分空间需要通过CMEM管理。对ARM来说,CMEM是OS上的一个驱动程序,需要通过IOCTL来实现内存分配或者地址空间转化。由于DSP可以访问任何物理地址空间,通过ARM传给DSP的指针必须是物理地址
         为了适配一些播放器的接口,DVSDK还提供了DMAI(Digital Media Application Interface),DMAI提供了更为精简的媒体接口和基于OS的音视频捕捉、回放等接口,在Linux下的gstreamer和Wince下的dshow filter都是基于DMAI的。并且DMAI也提供了最基本的测试应用例子,可以很方便的进行修改和测试。
         如果只是调用现成的或者第三方的算法库,可以只了解ARM端的软件模块,Codec Engine或者DMAI已经提供了丰富的应用接口,DSP可以认为是个单纯的媒体加速器,把ARM+DSP的芯片当作ASIC一样使用。如果要充分发挥DSP的性能,就需要对DSP进行开发了。Codec Engine对DSP的算法只是规范了接口,以便于和Codec Engine一起生成DSP的可执行程序。
       开发DSP算法的工程师,和传统的单核的DSP开发模式类似,只需要操作DSP核,基于CCS进行算法开发,最后封装成xDM的接口就可以了。具体如何进行DSP的打包,如何生成DSP的可执行程序,在后续的文章继续讨论。

最新回复

CSR86708675DSP算法EQ动态调节蓝牙耳机音响APP方案         一.BT EQ?概括 按您的听力特性让音乐的音质更棒 为个人聆听体验量身打造的BT EQ?方案 ?每个人的听力状况各不相同, BT EQ?方案可透过先进的技术分析 您的听力,然后针对您的听力调整出最佳的个人化音效设定。 呈现专为您所打造的生动且丰富的音效,创造出不可思议的绝佳聆听体验。 ?BT EQ?让您的耳机独一无二 二.BT EQ? 应用 1.透过BT EQ? APP检测,根据您的听力调校出适合您听力的个人化音效设定。 2.透过照相大数据获得您的大约年龄、血压、最高心率和听力频率敏感度曲线图。 3.聆听最爱的歌曲也可以建立播放列表、聆听音乐等多项功能。   *BT EQ? Basic提供APP template替换服务,可帮客户客制化APP,需要服务费。 三.BT EQ?方案特色 1.领先业界推出BT EQ? APP技术+高通CSR蓝牙双模芯片模块 CSR8670/CSR8675 2.市面上唯一一款为您的耳朵听力而打造的蓝牙耳机,蓝牙音箱及蓝牙接收器方案 *搭配BT EQ? APP测出您的听力曲线,将听力曲线参数储存到蓝牙耳机/音箱/接收器单芯片模块中打造个人专属的的耳机; ?*听音乐、看电视或聆听任何多媒体时,将让您拥有专属个人化的音效设定; ?*透过照相大数据获得您的年龄跟听力敏感度及血压与心跳。 3.可配合客户客制化BT EQ? APP界面 四.BT EQ? IP 授权 BT EQ? IP 授权让CSR 8670/8675 蓝牙(TWS)耳机; 针对您的听力调整出最佳的个人化音效设定。 呈现专为您所打造的生动且丰富的音效,创造出不可思议的绝佳聆听体验。 *1 BT EQ? Basic提供APP template替换服务,可帮客户客制化APP,需要服务费 *2 Dual setting 可以左右耳分开调整EQ及音量 五.BT EQ?+BT Command?-Alexa智能语音蓝牙方案    可以体验到蓝牙音频接收设备EQ动态调节及第三Alexa智能语音互动,产品附加值更高。     六.QualcommCSR8670/CSR8675蓝牙芯片介绍 1.采用QualcommCSR8670蓝牙4.0版本双模芯片;极小的封装芯片(BGA 6.5x6.5mm,CSP 4.73x4.84mm),可塑造极小的产品外观;内置80MIPS高速DSP,语音识别能力强; 2.采用QualcommCSR8670蓝牙4.0版本双模芯片;极小的封装芯片(BGA 6.5x6.5mm,CSP 4.73x4.84mm),可塑造极小的产品外观;内置120MIPS高速DSP,语音识别能力更强; 技术服务交流联系方式:13530996490 qq2582139138 [attach]338022[/attach][attach]338023[/attach]  详情 回复 发表于 2018-1-4 10:38
点赞 关注
 

回复
举报

351

帖子

1

TA的资源

一粒金砂(高级)

沙发
 
学习!
双旦快乐,2018万事如意。
 
 

回复

368

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
ti的软件太多太乱了,我安装的ccs6编译sysbios就不成功,dsp端编译有问题
个人签名zhouyuannian#126.com(#换成@)有问题交流
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

4
 
CSR86708675DSP算法EQ动态调节蓝牙耳机音响APP方案        


一.BT EQ?概括
按您的听力特性让音乐的音质更棒
为个人聆听体验量身打造的BT EQ?方案
?每个人的听力状况各不相同, BT EQ?方案可透过先进的技术分析 您的听力,然后针对您的听力调整出最佳的个人化音效设定。 呈现专为您所打造的生动且丰富的音效,创造出不可思议的绝佳聆听体验。
?BT EQ?让您的耳机独一无二


二.BT EQ? 应用
1.透过BT EQ? APP检测,根据您的听力调校出适合您听力的个人化音效设定。
2.透过照相大数据获得您的大约年龄、血压、最高心率和听力频率敏感度曲线图。
3.聆听最爱的歌曲也可以建立播放列表、聆听音乐等多项功能。  


*BT EQ? Basic提供APP template替换服务,可帮客户客制化APP,需要服务费。


三.BT EQ?方案特色
1.领先业界推出BT EQ? APP技术+高通CSR蓝牙双模芯片模块 CSR8670/CSR8675
2.市面上唯一一款为您的耳朵听力而打造的蓝牙耳机,蓝牙音箱及蓝牙接收器方案
*搭配BT EQ? APP测出您的听力曲线,将听力曲线参数储存到蓝牙耳机/音箱/接收器单芯片模块中打造个人专属的的耳机;
?*听音乐、看电视或聆听任何多媒体时,将让您拥有专属个人化的音效设定;
?*透过照相大数据获得您的年龄跟听力敏感度及血压与心跳。
3.可配合客户客制化BT EQ? APP界面


四.BT EQ? IP 授权
BT EQ? IP 授权让CSR 8670/8675 蓝牙(TWS)耳机;
针对您的听力调整出最佳的个人化音效设定。
呈现专为您所打造的生动且丰富的音效,创造出不可思议的绝佳聆听体验。


*1 BT EQ? Basic提供APP template替换服务,可帮客户客制化APP,需要服务费
*2 Dual setting 可以左右耳分开调整EQ及音量


五.BT EQ?+BT Command?-Alexa智能语音蓝牙方案
   可以体验到蓝牙音频接收设备EQ动态调节及第三Alexa智能语音互动,产品附加值更高。
   
六.QualcommCSR8670/CSR8675蓝牙芯片介绍
1.采用QualcommCSR8670蓝牙4.0版本双模芯片;极小的封装芯片(BGA 6.5x6.5mm,CSP 4.73x4.84mm),可塑造极小的产品外观;内置80MIPS高速DSP,语音识别能力强;
2.采用QualcommCSR8670蓝牙4.0版本双模芯片;极小的封装芯片(BGA 6.5x6.5mm,CSP 4.73x4.84mm),可塑造极小的产品外观;内置120MIPS高速DSP,语音识别能力更强;

技术服务交流联系方式:13530996490 qq2582139138

CSR86708675DSP算法EQ动态调节蓝牙APP方案.pdf (289.82 KB, 下载次数: 0)
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表