快速实现ARM和DSP的通信和协同工作(精)
基于双核ARM和DSP的通信接口驱动设计与实现研究
基于双核ARM和DSP的通信接口驱动设计与实现研究摘要:随着市场对监控终端产品的需求越来越大,越来越多的人开始关注这个新兴产业,基于此,介绍了一种自行研究开发的基于ARM 和DSP双处理器芯片为硬件平台,在ARM处理器上采用了源代码公开的嵌入式Linux作为操作系统嵌入视频监控终端,详细分析该系统中两个处理器芯片DSP与ARM之间HPI数据传输模式和驱动接口,并结合实际出现的传输性能的问题进行了详细的分析和研究。
关键词:嵌入式ARM DSP 双核心HPI随着视频处理、计算机、通信、自动化控制等相关技术的不断发展,也随着社会环境的不断变化,出现了以数字化、智能化、网络化为主要特征的监控系统。
监控系统可以用于校园安全监控,考试监控,城市交通监控等方面,能够给人们带来良好的生活环境。
嵌入式视频监控系统主要是由采集部分,编码部分,传输部分,显示部分和控制部分组成[1]。
而基于ARM处理器的嵌入式系统以其自身资源丰富、功耗低、价格低廉、支持厂商众多的缘故,越来越多地应用在各种需要复杂控制和通信功能的嵌入式系统中。
作为数字处理专用电路,DSP的数字信号处理能力十分强大,但对诸如任务管理、通信、人机交互等功能的实现较为困难。
如果将这两者结合起来,即由DSP结合采样电路采集并处理信号,由ARM处理器作为平台,将经过DSP运算的结果发送给用户程序进行进一步处理,然后提供图形化友好的人机交互环境完成数据分析和网络传输等功能,就会最大限度的发挥两者所长[2]。
本文介绍了一种我们自行研究开发的基于双核ARM和DSP的嵌入式视频监控系统。
该系统ARM处理器采用的是Cirrus Logic公司的EP9315,DSP采用的是TI公司的TM320DM642。
这样既可以充分利用DSP强大的数据处理能力,又能发挥ARM处理器在控制方面的优势。
1 TMS320DM642的HPI接口在传统的单片机与主机进行接口时,需要外扩必要的硬件电路。
DSP与单片机的一种高速通信实现方案
DSP与单片机的一种高速通信实现方案摘要:介绍了一种利用双口RAM实现DSP与单片机高速数据通信的方法,给出了它们之间的接口电路以及软件实现方案。
关键词:DSP;双口RAM;接口电路;数据通信1 引言数字信号处理器(DSP)是一种适合于实现各种数字信号处理运算的微处理器,具有下列主要结构特点:(1)采用改进型哈佛(Harvard)结构,具有独立的程序总线和数据总线,可同时访问指令和数据空间,允许实际在程序存储器和数据存储器之间进行传输;(2)支持流水线处理,处理器对每条指令的操作分为取指、译码、执行等几个阶段,在某一时刻同时对若干条指令进行不同阶段的处理;(3)片内含有专门的硬件乘法器,使乘法可以在单周期内完成;(4)特殊的指令结构和寻址方式,满足数字信号处理FFT、卷积等运算要求;(5)快速的指令周期,能够在每秒钟内处理数以千万次乃至数亿次定点或浮点运算;(6)大多设置了单独的DMA总线及其控制器,可以在基本不影响数字信号处理速度的情况下进行高速的并行数据传送。
由一片DSP加上存储器、模/数转换单元和外设接口就可以构成一个完整的控制系统,但这种方案要达到高速实时控制是不可行的。
因为一个实时控制系统一般需要完成数据采集、模/数转换、分析计算、数/模转换、实时过程控制以及显示等任务,单靠一片DSP来完成这些工作势必会大大延长系统对控制对象的控制周期,从而影响整个系统的性能。
所以我们添加一个CPU,负责数据采集、模/数转换、过程控制以及人机接口等任务,使DSP专注于系统控制算法的实现,充分利用它的高速数据处理能力。
从性能价格比的角度出发,这个CPU采用8位的51系列单片机。
这时,两个CPU 之间的数据共享就成了一个重要的问题。
采用双口RAM(简称DRAM)是解决CPU之间的数据共享的有效办法。
与串行通信相比,采用双口RAM不仅数据传输速度高,而且抗干扰性能好。
在笔者实验室研制的电力有源滤波器中,选用了TI公司的第三代DSP芯片TMS320C32和51系列单片机89C52作为控制系统的CPU。
嵌入式机器视觉系统中ARM与DSP的数据通信方法
( .郑 州 大 学 电气 工 程 学 院 ,河 南 郑 州 4 0 0 ;2 郑 州 市供 电公 司试 验 所 河 南 郑 州 4 0 0 ) 1 50 1 . 5 0 7
摘 要 :为 了在 嵌 入 式 机 器 视 觉 系统 中 实现 A M 处 理 器 ¥ C 4 0与 D P处 理 器 T S 2 C 4 2之 间 的 实 时 数 据 通 R 3 24 S M 30 5 0
e
, h nzo 5 0 1 C ia Z eghu4 0 0 , hn ;
2 Z e g h u E e t c P w rC . h n z o 5 0 7,C ia) . h n z o lc r o e o ,Z e g h u 4 0 0 i hn
Ab t a t n o d r t e l e r a— me d t O sr c :I r e o r ai e lt a a C z i mmu i ai n b t e n ARM ¥ C 4 0 a d DS M¥ 2 C 4 2,a d s n c t ew e o 3 2 4 n P T 3 0 5 0 ei me h d,va HP ne fc to i Ii tra e,i p o o e . h mb d e c i e vso y t m ’ o e a l c e s i t d c d。t e c r ut s rp s d T e e e d d ma h n iin s se S v r l s ห้องสมุดไป่ตู้ me i n r u e o h i i c o ad a e i tra e i d sg e fh r w r n e c s e in d,HP o k p i cp e a d f n t n fr gse sa e d s rb d i e al n r e sb s d f 1w r r i l n u c i so e i r r e c i e n d t i,a d d i r a e n o t v O i u p r t n s se a ed s n d P a t a a p i ain r v h tt eh s c mp t r n L n x o e a o y tm r e i e . r ci l p l t sp o e t a h o t o u e i g c c o ARM a c e salr gse so c n a c s l e itr f D P p o e s ra d t e ma i m r n miso a e i 1 Mb t .I c n me tt e r q i me t o mb d e c ie vso S r c s o n h xmu t s s in r t S a 0 i s t a e h e ur / e ns fe e d d ma h n iin
ARM加DSP嵌入式双架构系统的设计与实现
兰
州
交
通
大
学
学
报
Vo 1 No 3 L3 .
Jun l f az o ioo gUnvri o r a o n h uJ tn iest L a y
J n 0 2 u e2 1
文章编号 :0 14 7 (0 2 0 —1 80 10 —3 3 2 1 )30 3—4
式多媒体应用程序平台 ( MA , pnMut ei O P O e lm d i a A pi t n l f m) T 公司推 出的专 门为支 plaos a o 是 I c i P tr 持第 3 (G 无线终端应用而设计的应用处理器 代 3) 体系结构 , 但这类芯片价格昂贵, 不适合完成某些特
定专 业领 域 的处理 . 了适 合 用户 自己的应用 需求 , 为
研究 基 于 AR 加 DS M P双 处理 器 的 架构 , 充 分 的 能
公司的高性能产 品. 系统设计采用 T 的高性 能数 I 字信 号处理 器 T 30 6 1T。芯 片 , 的核 心 主 MS 2C 4 6 [ ] 它 频能达到 1G , HZ 并且具有 丰富的片上 资源, 能够
ARM 加 D P嵌 入式 双 架构 系统 的设计 与 实现 S
赵 晶 , 王新 楼
70 7 ) 3 0 0
( 兰州交通大学 电子与信 息工程学 院, 甘肃 兰州
摘
要 : ¥C 40 在 3 2 4 A与 ¥ 2 C 4 6 30 6 1T芯 片为处理核心的基础上 , 出了一种基 于 AR 加 DS 提 M P双 架构 系统的软硬
件解决方案 , 为嵌 入 式信 号 处理 提 供 了新 的 设 计 理 念 和 实现 方 法 , 于 此 系统 可 以扩 展 开 发 出其 他 各 种 复 杂 的 信 基
ARM+DSP结构设计与实现
ARM+DSP结构设计与实现关键词:ARM处理器,嵌入式系统,DSP1 引言ARM(Advanced RISC Machine)是英国ARM公司设计开发的通用32位RISC微处理器体系结构,其主要优势在于简单的设计和高效的指令集。
ARM的设计目标是微型化、低功耗、高性能的微处理器实现[1]。
ARM 已经成为嵌入式系统主控制器的首选。
DSP(Digital Signal Processor)具有运算速度高、功耗低和智能化外设等特点,在数字信号处理方面显示了强大的实力。
由于ARM与DSP所具有的微型化、低功耗、高效性等共同特点和各自的独特优势,以ARM+DSP结构为核心的嵌入式系统在PDA、STB、DVD等消费类电子产品以及GPS、航空、勘探、测量等军方产品中得到了广泛的应用。
本文设计了基于ARM S3C2410与TMS320C5510 DSP的ARM+DSP结构的接口电路,并给出了其软件实现。
ARM+DSP结构以ARM为主控制器,DSP为协处理器,方案如图1所示。
ARM完成系统的流程调度、任务处理、中断处理以及提供显示、通信、远程控制等人机接口;DSP主要完成数字滤波、编码解码、数字调制解调等功能。
ARM与DSP利用了DSP提供的HPI口的进行通信,方便、灵活,接口电路设计简单。
ARM+DSP结构把ARM处理器和DSP处理器有机地结合起来,既能满足信号数据实时性要求,又便于系统的控制操作与升级,提高了系统的整体性能。
ARM+DSP结构具有很强的通用性,几乎不修改硬件和修改少量软件代码就可以轻松实现不同系统间的移植。
3 ARM S3C2410与TMS320C5510 DSP硬件接口设计TMS320C5510 DSP提供了一个16位宽的并行端口HPI(host port interface),通过HPI口,主机可以直接访问TMS320C5510 DSP的存储器,有关TMS320C5510 DSP的HPI口详细情况请参考资料[2][3]。
DSP和ARM通信
DSP与ARM之间的通信
1.CAN总线:
CAN通信是串行通信。
这图为买来2812板子上面的CAN的模块。
CAN的控制部分已经在2812芯片内部。
SN65HVD230是一个电平转换器。
简单的说就是讲逻辑的0和1表达在CANH和CANL上。
CANH 和CANL有电压差的时候代表逻辑1.
这图是ARM上面的CAN接口。
DSP和ARM的can模块都差不多。
电路比较简单
个人看法:
简述:电路简单,编程简单。
串行口通信,实时性稍微比较差。
假如只有DSP和ARM两个芯片,就浪费了CAN这个功能了,假如后期假如了更多的芯片,CAN总线的功能能更好体现。
2.HPI通信
HIP通信是并行通信,占用的端口比较多。
下图是ARM和DSP的HIP通信。
这种方式的速度比较快,但是实验室买的2812似乎不支持HIP通信。
所以这个方法可以ban掉了。
看法:似乎不大可行
3.采用CPLD通信
在CPLD中划出一部分作为RAM缓存。
这个是并行通信,可以在2812中实现。
原理自己都想的清楚。
看法:实时性比较高。
由于从未涉及过CPLD,编程CPLD会比较麻烦。
接口比较多,辅助,这个也提高了编程难度。
4.SPI通信
SPI通信也是串行口通信。
具体的还没看完。
待定…,似乎也是一个好方法…..
参考文献
都是知网上一搜索就出的文件!待定。
嵌入式Linux下ARM处理器与DSP的数据通信
嵌入式Linux下ARM处理器与DSP的数据通信基于核心处理器的系统以其自身资源丰盛、功耗低、价格低廉、支持厂商众多的缘故,越来越多地应用在各种需要复杂控制和通信功能的嵌入式系统中。
内核源码开放的与ARM体系处理器相结合,可以发挥Linux系统支持各种协议及存在多进程调度机制的优点,从而使开发周期缩短,扩展性增加。
作为数字处理专用,的数字信号处理能力非常强大,但对诸如任务管理、通信、人机交互等功能的实现较为困难。
假如将这三者结合起来,即由DSP结合采样电路采集并处理信号,由ARM处理器作为平台,运行Linux操作系统,将经过DSP运算的结果发送给用户程序举行进一步处理,然后提供应图形化友好的人机交互环境完成数据分析和网络传输等功能,就会最大限度的发挥三者所长。
2 系统结构
该系统硬件由二部分组成,其中一部分为若干块DSP板,各自自立承接数据采集和信号处理。
另一部分为以ARM为核心处理器的CPU板。
系统硬件框图1所示(仅接口部分)。
3 接口硬件部分设计
3.1 HPI接口简介
HPI接口是TI公司新一代、高性能DSP上用以完成与主机或其他DSP 之间数据交换的接口,这里主要介绍实际电路中用法的控制引脚和时序。
HCNTL0和HCNTL1为拜访控制挑选。
用来确定主机(ARM)毕竟对TMS320C6711中的哪一个HPI寄存器举行处理。
详细功能如表1所列。
HR/W:读写挑选控制。
为“1”表示是从DSP中读,反之则为写。
HHWIL:半字节定义挑选,与H寄存器中的HWOB位举行协作可以挑选当前传输的是高半字还是低半字。
低电平是第一个半字,高电平是其
第1页共9页。
DSP与单片机的一种高速通信实现方案
DSP与单片机的一种高速通信实现方案
一种常见的高速通信实现方案是使用SPI(串行外设接口)协议。
SPI是一种同步串行数据传输协议,常用于连接微控制器和外部设备,可以实现理论上的最高速率。
在DSP和单片机之间实现高速通信,可以按照以下步骤进行:
1. 确定通信的硬件接口:DSP和单片机必须有相应的硬件接口来实现SPI通信。
通常,SPI需要使用四根线进行通信,包括主时钟(SCLK)、主输出从输入(MOSI)、主输入从输出(MISO)、片选(SS)等。
2. 配置SPI控制器:DSP和单片机的SPI控制器需要进行适当的配置,包括通信速率、数据位宽、传输模式(主从模式)、时钟极性和相位等。
3. 实现通信协议:根据通信需求,在DSP和单片机之间定义一种通信协议。
协议包括命令和数据的格式、传输顺序、通信协议等。
通常情况下,DSP作为主设备发送命令
和数据给单片机从设备。
4. 编写软件驱动:在DSP和单片机上编写软件驱动程序来控制SPI接口,实现通信协议。
DSP的驱动程序负责发送命令和数据给单片机,单片机的驱动程序负责接收和处
理命令和数据,并向DSP返回相应的响应。
5. 进行通信测试:完成以上步骤后,进行通信测试来验证通信的可靠性和稳定性,确
保数据能够正确地在DSP和单片机之间传输。
需要注意的是,通信速率和系统时钟频率之间有一定的关系,通信速率受限于系统时
钟频率和SPI控制器的能力。
因此,在设计系统时,需要选择合适的时钟频率来满足
通信要求。
ARM与DSP的通信接口研究和设计要点_图文.
《工业控制计算机》2007年20卷第2期ARM与DSP的通信接口研究和设计要点ARMandDSPC0mmunlcatiOnsInterfaceResearchandDesignEIements王彬王冰峰(电子科技大学自动化学院,四川成都610000)摘要主要讨论在嵌入式系统中ARM和DSP通信时用到的HPI通信接口硬件设计要点和驱动编写要点。
给出了一个比较通用的硬件设计方案。
给出了在VxWorks实时操作系统下HPl驱动程序的设计要点。
关键词:ARM,DSP。
HPI,VxWORKSAbstractThispaperinlfoducesinanembeddedsystem,IiketheARMandDSPcOmmunicationsHPIcommunicationsinterfacehardwaredesignelemenlsanddriVenbypOints.ProVidingamoregenericdesignOftheprogramme.ProVidingareal—limeOperatingsysteminVxWOrksHPI—driVenprOcessofthedesjgnfeatures.KeywOrds:ARM,DSP,HPI,V×WOrks从嵌入式系统的发展可以看出早期比较简单的控制功能用8位单片机可以实现。
但是到了现在很多产品功能呈现了多样化、智能化同时也在设计时体现为复杂化。
现在很多系统都把ARM强大的控制功能和DSP的数据处理功能结合起来。
32位ARM处理器以其高性价比得到了广泛的运用,而DSP由于其特殊的结构、专门的硬件乘法器和特殊的指令,使其能快速地实现各种数字信号处理及满足各种高实时性要求。
设计这样的系统时就不得不面对这样一个阀题:”由予ARM和DSP各有不同的硬件特点,如何要使得他们在数据交换时有高效率,做到系统功能稳定,功耗小,让两者的工作达到最好的状态?笔者所做的项目为基于电力线载波远程监控系统,由于要传输一定数量的视频和音频信号以及变电站的关键信息,既要求系统有一定的数据处理能力和处理速度故采用DSP来做数据处理,又要求有很好的实时性故选用了V×Works操作系统来做多任务的协调。
DSP + ARM架构处理器为机器视觉带来强大运算和控制能力
DSP + ARM 架构处理器为机器视觉带来强大运算和控制能力一些工业、航空电子控制、视觉应用和高端测量测试,如生物影像处理等在实现控制、显示的同时,还需要较强的运算和信号处理能力。
德州仪器(TI) 近日宣布在现有DSP + ARM 产品的成功基础上推出Integra 系列处理器C6A816x,集成了高性能ARM Cortex-A8 内核和高达1.5 GHz 的单内核浮点与定点DSP 性能。
“有很多算法在DSP 平台可以实现,在ARM 上也可以;但有些特定的算法,如数据滤波、图像处理等放在DSP 上运行的效率会高很多,可能达到60%以上。
因此DSP + ARM 的组合架构堪称理想架构”,TI 数字信号处理系统业务拓展经理程自清说,因为DSP 可专门用于处理密集型信号处理需求、复杂的数学函数以及影像处理算法,而ARM 则可用于实现图形用户界面(GUI)、网络连接、系统控制以及多种操作系统下的应用处理。
另外,ARM 资源可以空出来做更多的应用,总体性能会大大提高。
在某些高端的应用场合,ARM+DSP 会起到事半功倍的效果。
C6A816x 有两个系列,两个芯片里都具有1.5GHz 单核浮点、定点DSP 和Cortex-A8 内核,区别在于C6A8168 配有3D 加速器,C6A8167 则没有。
有些场合需要高浮点和定点运算处理器,并支持多种操作系统,对显示、网络、存储都有很高的要求,这些都适用于C6A816x 处理器。
C6A816x 处理器不仅可提供各种不同的网络连接选择和存储选项,还能在片上及片外实现快速的数据传输。
如此高的集成度不仅使客户能够显着提升性能,同时还可通过更少的芯片数量(其中包括节约分立式存储器成本以及印刷电路板空间)将物料清单(BOM) 成本锐降50%。
arm与dsp通信详解教程
ARM-DSP通信的多种方式本文档描述了TI多核设备上的通信方式。
应用程序中的单个核心可以承担主机/设备或主/从的角色。
这里的讨论假设主机/主集群是运行SMP/Linux的ARM集群,而设备/从服务器是运行TI-RTOS的C6xx DSP集群。
1.OpenCLOpenCL是一个框架,用于编写跨异构系统执行的程序,以及用于表示跨异构设备分派并行计算的程序。
这是一个开放的,没有版税的标准,由Khronos财团管理。
在异构SoC上,OpenCL将其中一个可编程核心视为主机,将其他核心视为设备。
运行在主机(即主机程序)上的应用程序管理设备上代码(内核)的执行,并且还负责使数据可供设备使用。
设备由一个或多个计算单元组成。
在ARM和DSP SoC上,每个C66xDSP都是一个计算单元。
OpenCL运行时由两个组件组成:(1)用于主机程序创建和提交内核以供执行的API;(2)用于表示内核的跨平台语言--OpenCL C--它基于C99 C,并附加和限制了OpenCL支持数据并行和任务并行编程范例。
数据并行执行使设备上的计算单元并行执行。
任务并行执行允许向每个计算单元异步分派任务。
有关更多信息,请参阅OpenCL用户指南。
从运行Linux或RTOS的ARM到DSP的卸载计算优点方便设备之间的移植,不需要理解内存体系结构,不需要担心MPAX和MMU,不需要担心一致性,不需要在ARM和DSP之间建立/配置/使用IPC,无需成为DSP 代码、体系结构或优化方面的专家缺点:不能控制系统内存布局等,以处理优化的DSP代码2.DCE (Distributed Codec Engine) 分布式编解码引擎DCE框架为用户在设备(如AM57xx)上编写应用程序提供了一种简单的方法,该设备具有用于图像和视频的硬件加速器。
它为从核上的音频和视频编码和解码提供了对硬件加速的远程访问。
基于ARM用户空间GStreer的多媒体应用程序使用GStreer库加载并与TI GStreer插件接口,该插件处理硬件加速器所特有的所有细节。
基于OMAP3530硬件平台的ARM和DSP协同开发方法
) L j 8 【 : l I i ; l 深 E m b e d d e d T e c h n 。 ・ 。 g y
基于 O MA P 3 5 3 0 硬件 平 台的 A R M 和 D S P协 同开发 方法 术
林上升 , 韩 润 萍
( 北 京服 装 学 院 信 息 工 程 学 院 , 北京 1 0 0 0 2 9)
De v e l o p me n t me t h o d s o f e s t a b l i s h i n g c o o p e r a t i o n b e t we e n ARM a n d DS P b a s e d o n OM AP 3 5 3 0 h a r d wa r e p l a t f o r m
Ab s t r a c t: T a k i n g OMAP 3 5 3 0 a s t h e h a r d wa r e p l a f t o m a r n d DVS DK a s s o f t wa r e t o o l s ,t h i s p a p e r i n t r o d u c e s h o w t o e s t a b l i s h
hi t s pa p e r .
Ke y wo r d s: OMAP 3 5 3 0; ARM ; DS P; DVS DK ; C o d e c En g i n e
DSPARM双核系统的通信接口设计(1).
DSP ARM双核系统的通信接口设计 (1)DSP/ARM双核系统的通信接口设计嵌入式系统的核心是嵌入式微处理器和嵌入式操作系统。
早期的嵌入式系统硬件核心是各种类型的8位和16位单片机;而近年来32位处理器以其高性能、低价格,得到了广泛的应用。
近年来,又出现了另一类数据密集处理型芯片DSP。
DSP由于其特殊的结构、专门的硬件乘法器和特殊的指令,使其能快速地实现各种数字信号处理及满足各种高实时性要求。
随着现代嵌入式系统的复杂度越来越高,操作系统已成为嵌入式系统不DSP/ARM双核系统的通信接口设计嵌入式系统的核心是嵌入式微处理器和嵌入式操作系统。
早期的嵌入式系统硬件核心是各种类型的8位和16位单片机;而近年来32位处理器以其高性能、低价格,得到了广泛的应用。
近年来,又出现了另一类数据密集处理型芯片DSP。
DSP由于其特殊的结构、专门的硬件乘法器和特殊的指令,使其能快速地实现各种数字信号处理及满足各种高实时性要求。
随着现代嵌入式系统的复杂度越来越高,操作系统已成为嵌入式系统不可缺少的部分。
免费的嵌入式操作系统,如 Linux等,随着自身不断的改善,得到了飞速的发展。
Linux是一个免费的、强大的、可信赖的、具有可伸缩性与扩充性的操作系统。
Linux实现了许多现代化操作系统的理论,并且支持完整的硬件驱动程序、网络通信协议与多处理器的架构,其源码的公开更有利于操作系统嵌入式应用。
基于上述分析,笔者开发了基于ARM和DSP芯片的双核嵌入式系统。
系统充分利用了ARM和DSP的各自特点,既可以使用ARM和DSP芯片进行协同开发,也可以利用ARM或DSP进行独立开发。
操作系统选用了Linux,以利于充分发挥系统的效能。
1 系统的总体设计由于ARM芯片的控制性能较强,在嵌入式系统中ARM主要用于控制和少量的数据处理。
这样,一方面要求CPU要低功耗和有足够的时钟频率来运行操作系统,以满足便携式的要求;另一方面也要求其有足够种类的接口,以利于性能的扩展。
ARM与DSP的SPI通信设计实现.
56ARM与DSP的SPI通信设计实现ARM与DSP的SPI通信设计实现CommunicationBetweenARMandDSPThroughSPIBus张岩马旭东张云帆(东南大学自动化学院,江苏南京210096)摘要提出一种测量仪器的多处理机分布式控制方案,并对DSP与移植了Linux操作系统的ARM之间SPI通信设计进行了着重阐述。
对于这样的特定系统,首先要完成Linux下的SPI驱动程序开发,然后才能进行ARM和DSP下的应用程序开发。
对这几个方面进行了详细介绍,给出了一种ARM与DSP通信的通信协议,并基于此协议实现了ARM与DSP的SPI通信。
关键词:SPI总线,ARM,DSP,SPI驱动程序AbstractThispaperbringsupadistributedcontrolmethodbasedonmultipleprocessorsofsurveyinginstruments,andputstheemphasisondiscussingthecommunicationbetweenDSPandARMwithaLinuxOS.Forthespecificsystem,todesigntheSPIdevicedriverofembeddedLinuxisthefirststep,thencomplicatetheapplicatedprograminbothARMandDSP.Allthesepartsaredescribedindetailinthispaper,andacommunicationprotocolbetweenARMandDSPisgiven,basedwhichtheARMandDSPcommunicatethroughSPIbusisaccomplished.Keywords:SPIbus,ARM,DSP,SPIdevicedriver对于现代测量仪器,不仅需要具备实时性的控制、测量功能,还需要具备非实时性的人机交互界面、数据管理、打印等功能。
基于CAN总线实现DSP与ARM通信
在 多核 的 嵌 入 式 处 理 系统 中 , 处 理 器之 各 间如何 进行 及 时有 效的 通信 十 分重要 。
本文 以光 伏 并 网逆 变 电源 的 设 计 为平 台 ,
介 绍 了D P 片 T S 2 F 8 2和 A M7 片 S芯 M 60 2 1 R 芯
L C 4 8的 C N 制 器的 结 构 特 点 ,给 出 P27 A 控 了利 用 C N总 线 实现 O P A M通 信 的硬 A S和 E
C AN总线模块 , 能够实现 灵活稳定的 串行
通 信 接 口I 。
pa f r lto m o t e h tv l&c r iv re s f h P o o ot ( g i n et r’ d d 8 n t( a d t} ∞p ra∞ V ste h rwae ej a j g 柏, a f e e j e h ad r e cr dc i d g a n ot r ein m to l ti rut i r m a d sfwa ed s eh d e c a g
定 、可 靠 传 输 。
线 实现 DS P和 AR 的数 据 传输 。 M
2 系统 总体 设计 _
该 系统的总体设计方案 图 1 所示 ,其 中 DS 1 P 完成的功能 为实现对太 阳能 电池
板 最大 功 率 点 的 跟 踪 ,DS 2的 功 能 为控 P
键 词
≥ 篆 篓 鬟
o t e f h CAN c n r i r n h c i o DS o t ol i t e h p f e P
制逆变 器的输 出 电流 与市电电压的频率 、 相 位保持一致 , 从而使 逆变电源 能够 以较
图 2e A C N模块 内部结构与接 口设计 TMS 2 F2 2内部集成 了增强型 3 0 8 1
DSP与单片机的一种高速通信实现方案
DSP与单片机的一种高速通信实现方案摘要:介绍了一种利用双口RAM实现DSP与单片机高速数据通信的方法,给出了它们之间的接口电路以及软件实现方案。
关键词:DSP;双口RAM;接口电路;数据通信1引言数字信号处理器(DSP)是一种适合于实现各种数字信号处理运算的微处理器,具有下列主要结构特点:(1)采用改进型哈佛(Harvard)结构,具有*的程序总线和数据总线,可同时访问指令和数据空间,允许实际在程序存储器和数据存储器之间进行传输;(2)支持流水线处理,处理器对每条指令的*作分为取指、译码、执行等几个阶段,在某一时刻同时对若干条指令进行不同阶段的处理;(3)片内含有专门的硬件乘法器,使乘法可以在单周期内完成;(4)特殊的指令结构和寻址方式,满足数字信号处理FFT、卷积等运算要求;(5)快速的指令周期,能够在每秒钟内处理数以千万次乃至数亿次定点或浮点运算;(6)大多设置了单独的DMA总线及其控制器,可以在基本不影响数字信号处理速度的情况下进行高速的并行数据传送。
由一片DSP加上存储器、模/数转换单元和外设接口就可以构成一个完整的控制系统,但这种方案要达到高速实时控制是不可行的。
因为一个实时控制系统一般需要完成数据采集、模/数转换、分析计算、数/模转换、实时过程控制以及显示等任务,单靠一片DSP来完成这些工作势必会大大延长系统对控制对象的控制周期,从而影响整个系统的*能。
所以我们添加一个CPU,负责数据采集、模/数转换、过程控制以及人机接口等任务,使DSP专注于系统控制算法的实现,充分利用它的高速数据处理能力。
从*能价格比的角度出发,这个CPU采用8位的51系列单片机。
这时,两个CPU之间的数据共享就成了一个重要的问题。
采用双口RAM(简称DRAM)是解决CPU之间的数据共享的有效办法。
与串行通信相比,采用双口RAM不仅数据传输速度高,而且抗干扰*能好。
在笔者实验室研制的电力有源滤波器中,选用了TI公司的第三代DSP芯片TMS320C32和51系列单片机89C52作为控制系统的CPU。
嵌入式机器视觉系统中ARM与DSP的数据通信方法.
嵌入式机器视觉系统中ARM与DSP的数据通信方法DSP对数字信号和数值算法具有强大的运算处理能力,因而在信号采集与处理中被广泛应用,但其在任务管理、实时控制、人机交互等方面不占优势。
而ARM微控制器则控制功能强大,可以加载嵌入式操作系统,且能够提供良好的人机交互、任务管理、网络通信等方面功能。
因此,发挥DSP和ARM处理器各自的优势,采用ARM+DSP结构的设计方案已成为嵌入式系统的研究热点,倍受关注。
通过嵌入式机器视觉系统的设计实例,阐述ARM与DSP有机结合的设计DSP对数字信号和数值算法具有强大的运算处理能力,因而在信号采集与处理中被广泛应用,但其在任务管理、实时控制、人机交互等方面不占优势。
而ARM微控制器则控制功能强大,可以加载嵌入式操作系统,且能够提供良好的人机交互、任务管理、网络通信等方面功能。
因此,发挥DSP和ARM处理器各自的优势,采用ARM+DSP结构的设计方案已成为嵌入式系统的研究热点,倍受关注。
通过嵌入式机器视觉系统的设计实例,阐述ARM与DSP有机结合的设计思想,重点研究ARM与DSP之间的数据通信。
1嵌入式机器视觉系统总体方案采用ARM+DSP结构的机器视觉系统总体结构如图l所示。
以三星公司高性能ARM处理器S3C2440作为主控制器,配置并移植Linux操作系统,同时以TI公司的DSP芯片TMS320C5402为图像处理的协处理器,通过对DSP芯片自带的HPI接口的硬件连接方案和驱动程序设计,将二者有机地结合起来,各自发挥其独特优势,协调配合,完成目标采集、处理与视觉跟踪。
首先由智能摄像机采集现场运动目标的图像,由ARM控制将数据存放在ARM与DSP的公共存储区域中,并通知信号处理模块DSP调用各种算法(帧间差分、图像分割、特征提取、形心计算等)对视频图像进行处理,完成目标的识别与定位,并将结果信息传给ARM处理器,由ARM控制步进电机,调整PTZ摄像机位姿(水平转动P-Pan、垂直转动T-Tilt、景深伸缩Z-Zoom),使其对准运动目标,实现实时跟踪。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
快速实现ARM和DSP的通信和协同工作德州仪器(TI)的第一颗达芬奇(DaVinci)芯片(处理器)DM6446已经问世快三年了。
继DM644x之后,TI又陆续推出了DM643x,DM35x,DM6467,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的操作。
图1 达芬奇软件结构框图通过第一部分的介绍,我们知道了TI数字视频软件开发包(DVSDK)中的Codec Engine软件模块可以帮助我们轻松地实现ARM和DSP或协处理器的协同工作,以及Codec Engine软件模块的概要情况,下面我们将告诉你如何走完Codec Engine入门的第一步和第二步。
2. Codec Engine入门第一步从Codec Engine发布说明文档(release notes)开始。
有些初学者认为Codec Engine文件包结构复杂,很难找到自己想找的文档或例子。
其实在Codec Engine文件包的根目下有一个发布说明文档,比如Codec Engine 1.20 根目录下的release_notes_codec_engine_1_20.html。
这个文档就是你了解Codec Engine的开始,里面有关于该版本Codec Engine的介绍、相关文档资料的链接、新的功能、支持哪些芯片、已知的bug、修正了哪些bug 及例子等等的具体说明。
具体如图2蓝色字体所示。
浏览该文档后,初学者至少可以知道哪里可以找到自己想要的文档或例子。
举例来说,如果想找相关的文档,点击 Documentation就可以看到这个Codec Engine文件包里的文档的链接。
图2 Codec Engine 1.20 Release Notes截图3. Codec Engine入门第二步了解Codec Engine的运行环境及依赖的软件模块和工具。
点击Codec Engine的发布说明文档(如图2)的Validation Info,我们可以知道Codec Engine 1.20需要和以下软件模块和工具配合使用:✈ Framework Components 1.20.02✈ xDAIS 5.21✈ XDC Tools 2.93.01✈ DSP/BIOS Link 1.40.05, configured for the DM6446 EVM❑C6x Code Generation Tools version 6.0.8❑DSP/BIOS 5.31.05❑MontaVista Linux v4.0❑Red Hat Enterprise Linux 3 (SMP因此,我们需要在该Codec Engine安装的DVSDK文件包下面检查上面提到的软件模块和工具是否安装,版本是否正确。
否则,可能会编译不过 Codec Engine的例子。
那么,什么是 Framework Components,什么是xDAIS,什么又是XDC Tools 呢?你可以分别到它们的根目录下浏览它们各自的发布说明文档,做一个总体的了解。
这里我们简单介绍一下,可以帮助大家尽快找到和自己相关的重点及资源。
1 Framework Components是TI提供的一个软件模块,负责DSP侧的memory和DMA资源管理。
因此,DSP算法工程师需要了解这个软件模块。
/wiki/index.php?title=Framework_Components_FAQ2 xDAIS 是一个标准,它定义了TI DSP算法接口的标准。
这样大大提高了DSP算法软件的通用性。
DSP算法工程师要写出能被ARM通过Codec Engine 调用的算法,必须保证自己的算法接口符合这个标准。
因此,DSP算法工程师也必须了解这个软件模块。
/wiki/index.php?title=Category:XDAIS3 XDC Tools和gmake类似,是一个工具。
XDC根据用户定义的一套build指令,通过调用用户指定的ARM 工具链(Tool Chain)和DSP编译器(C6x Code Generation Tools )build出ARM侧和DSP侧的可执行文件。
可以先不必细究这个工具,只需通过编Codec Engine的例子,知道如何设置build指令就可以了。
4 DSP/BIOS Link是实现ARM和DSP之间通信的底层软件,Codec Engine就是建立在这个底层软件之上。
在修改系统内存分配(缺省是256MB的DDR2)时,DSP/BIOS Link 1.38版本的用户需要修改DSP/BIOS Link的配置文件,并重新build DSP/BIOS Link。
而DSP/BIOS Link 1.40版本以后的用户就无需此操作。
/wiki/index.php?title=DSPLink_Overview/index.php?title=Changing_the_DVEVM_memory_map5 C6x Code Generation Tools是Linux环境下C6000系列DSP的编译器。
我们用CCS开发DSP时都是用的Windows环境下的DSP编译器。
6 DSP/BIOS是TI 免费提供的DSP实时操作系统。
和上面C6x Code GenerationTools一样,这里的DSP/BIOS也是Linux环境下的版本。
DSP系统工程师需要了解这个操作系统。
/wiki/index.php?title=Category:DSPBIOS4. Codec Engine入门第三步根据自己的角色参考相关的文档和例子进行开发。
开发ARM+DSP平台需要三类工程师:ARM应用程序工程师、DSP算法工程师和DSP系统工程师。
而开发ARM+协处理器平台只需要ARM应用程序工程师。
下面就让我们针对这三类工程师做分别介绍。
如果您使用的是TI或TI第三方的编解码算法,就不需要关注DSP算法工程师的部分。
如果使用ARM+协处理器平台,就只需关心ARM应用工程师的部分。
4.1. DSP算法工程师应该如何着手?这里我们不讨论如何开发DSP算法,只讨论DSP算法工程师怎样让自己的算法可以被ARM通过Codec Engine调用。
(参考/litv/pdf/sprued6c,这个文档会讲到codec package及相关的.xs和.xdc文件,Codec Engine1.20及以上版本的用户可以先不细究这些内容,后面会介绍工具帮您自动生成这些文件。
)1 熟悉xDAIS和xDM标准xDM只是xDAIS的扩展,因此,需要先了解xDAIS。
在xDAIS 软件包根目录下的发布说明文档里,可以很快找到关于xDAIS和xDM的文档链接。
/lit/ug/spruec8b/spruec8b.pdf在xDAIS安装路径下的examples/ti/xdais/dm/examples/g711有一个g711_sun_internal.c,这个算法不符合xDAIS标准。
在同一个路径下的g711dec_sun_ialg.c (decoder和g711enc_sun_ialg.c (encoder是封装成符合xDM标准之后的编解码算法。
可以通过这个例子学习和了解如何把自己算法封装成符合xDM标准的算法。
xDAIS 6.10及其以后的版本,包含了一个工具QualiTI,可以检查您的DSP算法是否满足xDAIS标准(但不会检查是否满足xDM)。
具体请参考:/wiki/index.php?title=QualiTI_XDAIS_Compliance_Tool2 熟悉Framework ComponentsFramework Components主要包括两个模块DSKT2和DMAN3,它们分别负责DSP 侧的memory 和EDMA资源管理。
DSP算法使用的memory必须是先向DSKT2提出申请并由DSKT2分配得到的。
同样DSP算法使用的EDMA通道也是向DMAN3申请并由DMAN3分配得到的。
而关于QDMA的操作,是通过ACPY3这个模块实现的。
这样的好处是很容易对DSP侧不同的算法做整合,不同的算法之间不用担心资源(Memory和EDMA)的冲突问题。
在Framework Components 软件包根目录下的发布说明文档里,可以很快找到相关文档的链接。
在Framework Components安装路径下packages\ti\sdo\fc\dman3\examples有一个Fast Copy的例子,可以帮您理解如何基于Framework Components的ACPY3模块实现QDMA的操作。
另外,有些用户DSP侧的算法比较简单,在确保不和ARM侧EDMA资源冲突的前提下在算法里直接操作EDMA不使用DMAN3也是可以的。
这样做的弊端是和其它算法做整合时会遇到资源使用冲突的问题。