基于VxWorks的多DSP系统的多任务程序设计

发布者:xrmilk最新更新时间:2012-07-14 来源: 单片机与嵌入式系统应用 关键字:多DSP阵列  声纳系统  VxWorks 手机看文章 扫描二维码
随时随地手机看文章

    近年来,计算机产品的应用领域越来越广,数字信号处理器的发展表现得尤为明显。DSP芯片制造商和DSP板开发商利用自身的优势不断开发出多DSP结构的产品来满足这种需求。通常的DSP设备是与嵌入式系统相结合,来实时地完成某一特定任务。随着信号采集速度和处理速度的要求越来越高,许多领域都需要进行多处理器运算,其中包括医学、图像处理、军事、工业控制、电信等许多领域。多处理器系统可以根据所需实现的功能和处理器的性能来调节处理结点的数目,使系统达到最佳的性能价格比。

  实际上,只有从芯片开始仔细设计,才能方便地实现多处理器系统的调节功能。这里选用的是AD公司新出品的SHARC级处理器ADSP21160。

  ADSP21160具有很大的片内存储区、多重内部总线结构、独立的I/O子系统;具有构造多处理器系统的所有特点,能够真正支持处理器数目的可调节功能,十分适合组成高性能浮点的多DSP系统。

VxWorks是目前世界上用户数量最大的实时操作系统。这使它除了具有优越的技术性能之外,还具有丰富的应用软件支持、良好的技术服务和可靠的系统稳定性。由于它具有以上优点,本系统中选用了VxWorks作为MVME167的操作系统。

一、ADSP21160的特点

  ADSP21160 是AD公司采用超级哈佛结构的一种新产品。21160的汇编代码与2106x兼容,处理器具有SIMD(单指令流多数据流)功能;而2106x只具有 SISD(单指令流单数据流)功能。为了充分利用这种新的功能,一些指令做了一些改变。ADSP21160包括1个100/150MHz的运算核、双端片内SRAM、1个支持多处理器的集成在片内的I/O处理器和多重内部总线以消除I/O瓶颈。

  ADSP21160的汇编源代码与2106x兼容。SIMD计算结构:2个32bit的计算单元,其中每一个单元包括乘法器、ALU、移位寄存器及寄存器文件。具有完备的与外围设备接口功能。包括独立的I/O处理器、4Mbit 的片内双端SRAM、可直接连接的多处理器特性及端口(串口、连接口、外总线及JTAG)。

  ADSP21160包括2个运算处理单元,具有SIMD功能。处理单元指的是PEX和PEY。PEX始终是有效的,而PEY的有效是通过设置 MODE1寄存器中的PEYEN位来实现的。当PEY模式有效时,同一条指令在2个处理器单元中都得到执行,但每一个处理器单元中的操作数不同。

SIMD模式在存储区和处理器单元之间的数据传输也是很有作用的。当使用SIMD模式,通过加倍数据带宽来保证处理器单元的操作。在SIMD模式,当使用DAGs来传输数据时,存储区每次访问所传输的是两个数据值。

  ADSP21160包括4Mbit的片内SRAM,分为两块,每一块2Mbit。可以定义为不同字长的指令和数据存储。每一个存储块的双端口结构可以使存储块独立地被运算核处理和I/O处理器访问。21160的存储区最大可以容纳128K的32bit数据,或256K的16bit数据,或85K 的48bit指令,或其他混合字长的数据,但总和最大为4Mbit。所有存储区可以16、32、48、64bit字长的字访问。外端口支持处理器与片外存储器及外设的接口,片外的4G地址空间属于21160的统一地址空间。

  外端口支持同步、异步及同步BURST访问。DMA控制器的操作相对处理器运算核是独立和不可见的,即DMA操作可与执行指令同时进行。DMA 传输可以在内部存储区与外部存储区、外围设备或主机之间进行。21160共有14个DMA通道,其中:连接口(linkport)占6个;串口占4个;外端口(external port)占4个。21160可以通过DMA传输来下载程序,外围异步设备也可以通过DMA请求/应答线来控制2个DMA通道。

  21160具有许多特点支持多DSP系统。外端口与连接口支持多处理器系统的直接连接,外端口支持统一的地址空间,允许DSP之间互相访问。片内具有分布式总线仲裁逻辑,最多支持6片21160和主机连接。外端口的最大数据传输率为400MB/s,广播写信号可以同时发送到各片21160。6个连接口提供了另一种方法实现多处理器之间的通信。连接口的最高传输速率为600MB/s。

  整个系统基于VME总线。VME总线系统作为最早的国际通用开放式总线,自1981年起,经历了近20年的发展。其影响不断扩大,功能不断完善,现已成为性能最好、应用最广的国际总线标准之一。

  根据设计要求,采用了4片ADSP21160。片外共享内存SRAM可以被主机和各片DSP直接访问;EPROM用来存放初始化程序和各片 DSP要运行的程序,在系统上电后这些程序被下载到各片DSP中;LEDs用来显示插件的状态,如reset、normal等。每一片都有1个连接口连到插件的前面板,这样前端采集来的数据就可以很方便地传输到多DSP上,而且也使数据的传输模式更加灵活。

  连接口(linkport)是SHARC系列DSP芯片的一个特点。ADSP21160共有6个8bit连接口提供额外的I/O服务。在 100MHz时钟下运行时,每个连接口可达100MB/s。连接口尤其适合多处理器间点到点的连接。连接口可以独立地同时操作,通过连接口的数据封装成 48/32bit字长后,可以从片内存储区直接被运算核读取或DMA传输。每一个连接口有它自己的双缓冲I/O寄存器,数据传输可编程,硬件由时钟/应答握手线控制。4片DSP使用连接口实现DSP间两两互连。

  21160的主机接口可以很方便地与标准微处理器总线(16/32bit)相连,几乎不需要额外硬件。主机通过21160的外端口对其进行访问,存储区地址映射为统一的地址空间。4个DMA通道可以用于主机接口,代码和数据传输的软件开销很小,主处理器通过HBR、HBG和REDY信号线与 21160进行通信,主机可以对片内存储区进行直接读写。[page]

二、开发环境Tornado

  VxWorks的开发环境是WindRiver公司提供的Tornado。Tornado采用主机-目标机开发方式,主机系统可采用运行Sun Solaris、HP-UX以及Win95/NT的工作站或个人计算机,VxWorks则运行在Intel x86、MC68K、PowerPC或SPARC等处理器上。Tornado支持各种主机-目标机连接方式,如以太网、串行线、在线仿真器和ROM仿真器。

  Tornado的体系结构使得许多强有力的开发工具可以用于各种目标机系统和各种主机-目标机连接方式下,而不受制于目标机的资源和通信机制。同时VxWorks具有良好的可剪裁性。因此它适用于各种嵌入式环境的开发,小到资源极其有限的个人手持式设备如PDA(Personal Digital Assistant);大到多处理机系统,如VME系统。

  Tornado可提供一个直观的、可视化的、用户可扩充的开发环境,极大缩短了开发周期。同时,由于Tornado是一个完全的开放系统,使得集成第三方开发工具变得十分容易。

主机与目标机之间的通信是通过运行各自处理器上的代理进程来完成的,使主机上的开发工具和目标机的操作系统可以完全脱离相互连接的方式。

  为了摆脱主机-目标机通信带宽和目标机资源的限制,Tornado将传统的目标机方的工具迁移到主机上,如shell、loader和符号表等。这样,系统不再需要额外的时间和带宽在主机和目标机之间交换信息,降低了对连接带宽的需求,也避免了目标机的资源(如内存)被工具或符号表大量占用,使得应用程序拥有更多的系统资源。同时这种迁移也使得各种主机开发工具独立于目标机存在,从而使同一主机平台上的工具可以用于所有的目标机系统。

  作为一个应用软件开发环境,Tornado提供了友好的可视化开发界面、交叉编译环境、源码级调试工具、目标机命令解释器和目标机状态监视器等多种应用工具,为应用软件开发提供了一个高效而可靠的平台。

三、程序设计

  我们选用的DSP开发工具是AD公司提供的VisualDSP。这是一个集成开发环境,支持对SHARC系列DSP芯片的开发。实时操作系统 VxWorks的开发工具是WindRiver公司的Tornado集成开发工具。VisualDSP可以C语言或汇编语言编写的DSP代码,最新版本的 VisualDSP还支持C++。它还有1个优点,就是可以编译多片DSP的源代码,并产生下载文件,这就可以很方便地进行多DSP系统的软件模拟。

  ADSP21160阵列的设计结构使它既可以构成单指令流多数据流(SIMD)的并行处理机,也可以构成多指令流单数据流(MISD)或多指令流多数据流(MIMD)的流水线处理机,视用户的要求而定。这两种并行方案的选择,简单来说就是选择分割数据流还是分割处理工序。SIMD方案的原理如图 1所示。

  以下介绍我们实验室承担的水声信号处理系统。本系统以VME总线为系统开发平台,前端调理模件、模数转换模件和前端控制模件等为VME插件,采用SHARC级DSP芯片阵列完成声纳信号实时处理,基于嵌入式实时操作系统VxWorks及X窗口系统的中央控制和显示。

  图2是4片DSP的任务分配图。从前端采集来的信号,经波束形成和复解调,再经过窄带滤波后的信号分为两路,一路送去进行幅度检波,一路做频域处理。幅度检波就是对复信号求模,根据信号幅度判决有无目标存在。频域处理分两种情况:当发射信号为单频脉冲时,进行功率谱估计,然后根据多普勒频移估计目标速度;当发射信号为双曲调频信号时,进行相关处理。

  声纳综合数据处理主要包括主动声纳信号处理和被动声纳信号处理。其中,主动声纳信号处理又根据发射信号的不同,分为非相干处理、相干处理、功率谱处理。声纳综合数据处理主要完成:目标自动检测、目标参数测定和动目标跟踪。

四、操作流水线

  操作流水线是模块内数据计算与I/O的流水线,物理上表现为CPU与I/O端口的DMA之间的并行。在前端处理中由于数据率高,通信开销很大。以通信任务最为繁重的复解调和多普勒补偿模块为例,输入数据率为2Mw/s,输出数据率为4Mw/s,高速连接口LinkPort最高速率为100Mw /s,如果采用串行传输的话,通信时间就将占用60%以上的处理时间,计算时间显然严重不足。所以必须采用并行执行,流程图如图3所示。这也是一种异步流水线方式,每次传送和计算完成都须要设置标志以通知下一操作。

结束语

  在VxWorks实时操作系统下,4片ADSP21160上的程序已经通过模拟输入和系统测试。采用SHARC DSP 阵列能够很好地完成声纳信号实时处理,每一片DSP至少有10%的计算裕量,基本达到设计要求。

关键字:多DSP阵列  声纳系统  VxWorks 引用地址:基于VxWorks的多DSP系统的多任务程序设计

上一篇:解放军女专家梦里获得编程灵感 成功后昏迷三天
下一篇:基于NOR FLASH存储器的嵌入式文件系统的设计

推荐阅读最新更新时间:2024-05-02 22:12

VxWorks下UDP协议栈效率的研究与改进
1 使用VxWorks标准UDP协议栈存在的问题   在VxWorks标准的IP协议实现的前提下,其UDP协议的实现存在于IP层。在VxWorks中有一个网络任务(亦即进程),用于完成以太网包的收发处理及与各种网络协议的接口,其名为tNetTask,优先级低于一般的系统任务而高于应用程序任务。系统的上层网络协议,如Telnet、FTP等,在服务器端有一个相应的任务,处理网络任务转交过来的数据报。   应用程序想要实现UDP数据报的收发,就要使用操作系统提供的socket编程接口,主要包括创建socket,绑定socket和源IP与端口号,发送UDP数据报和接收socket中收到的内容。在VxWorks中有4个函数与之相对应,分别
[网络通信]
基于嵌入式操作系统VxWorks的SCSI硬盘高速记录系统
摘要:介绍了由基于VxWorks的实时嵌入式操作系统、多个SCSI硬盘阵列以及高帧频CCD数字相机构成的嵌入式高速记录系统。 关键词:VxWorks 实时 嵌入式 SCSI CCD 在一些特别的科学研究和工程应用领域,需要采用高帧频、大面阵的CCD相机以获取高质量的图像数据,用于对变化较快的观测对象的运动轨迹及其变化特性分析或实时计算。由此可产生高达50MB/s以上的实时数据流,需要持续地实时记录,以便于事后分析。 本文介绍中科院光电技术研究所针对高速实时图像记录任务的要求,专门设计开发的VxWorks嵌入式操作系统下的高速嵌入式SCSI硬盘阵列记录系统。 在本系统中采用的高帧频CCD数字相机其工作帧频为:200帧/秒,分
[应用]
基于VxWorks嵌人式操作系统的C/S模式网络编程
  1 嵌入式操作系统VxWorks简介   VxWorks操作系统是美国WindRiver 公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,使其在嵌入式实时操作系统领域占据一席之地。他以良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。   2 VxWorks的特点   2.1 可靠性   稳定、可靠是VxWorks的一个突出优点,因而他得到了越来越多的用户的认可。   2.2 实时性   实时性是指能够在限定时间内执行完规定的功能并
[嵌入式]
基于VxWorks实时嵌入式PLC设计
前言   可编程控制器(PLC)对机床开关量信号进行控制时可靠性高,使用方便,在大多数数控机床,特别是经济型数控机床中,要求的输入输出点数不多的情况下得到广泛应用。在兼用PC 机系统资源的情况下,采用Windows 的分时性,没有考虑到实时环境的开发用途,其系统调用的效率不高,不能满足数控系统高实时场合PLC 控制的实时性要求。   VxWorks 作为一运行在目标机上的高性能、可裁减的嵌入式实时操作系统,目前以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域。   本文基于 VxWorks 操作系统,提出了基于VxWorks 的嵌入式实时PLC 设计的方法与应用,利用Vx
[工业控制]
基于<font color='red'>VxWorks</font>实时嵌入式PLC设计
VxWorks操作系统下ComPactPCI总线驱动程序设计
引言     VxWorks是美国Wind River公司专门为嵌入式处理器设计的一种模块化、高性能的实时多任务操作系统。嵌入式软件多采用交叉开发的方式,即主机运行开发工具Tonado,通过某种连接方式连接目标机,硬件平台为PC/104+架构。这里提出一种VxWorks操作系统下CompactPCI总线驱动程序的设计及实现。该设计使用德国Kontron DT-64,它是一款高性能嵌入式计算机。采用Dual PentiLim 3 CPU,工作频率高达866 MHz,具有128 KB一级高速缓存和128 KB二级高速缓存。KontronDT-64与PC/AT标准完全兼容,并遵从PC/104+标准。具有PC/104结构的优点,适用于
[嵌入式]
基于VxWorks的无人直升机控制系统设计
1  前言    自主飞行无人直升机的研究是现今多学科交叉研究的热点与难点。无人直升机在炮兵射击训练、战场监视、输电线路巡视,森林火灾状况观测等军用与民用方面都有着广泛的作用。自从1917年英国研制出世界上第一架无人机,无人机已经经历了无人靶机、预编程序控制无人侦察机、指令遥控无人侦察机、复合控制和自主飞行多用途无人机的发展过程,现今无人直升机研究在于自主飞行控制。现今无人直升机任务多样化和远距离作业需求,对无人直升机远距离通信和控制提出了更高要求【1】。     在无人直升机控制系统设计中采用实时操作系统是现今研究的重点与热点。VxWorks是专门为实时嵌入式系统设计开发的32位操作系统,它高性能内核和友好用户开发界面使
[嵌入式]
基于VxWorks的T比特路由器2.5GPOS接口板设计
1. 引言 作为因特网的枢纽,路由器正在朝速度更快、服务质量更好和更易于综合化管理的三个方向发展。现在芯片速度每18个月翻一翻,而因特网的流量是每六个月翻一翻。大家对路由器的研究也重点体现在提高路由器的处理速度上,相续提出了千兆位交换路由器(GSR,Gigabit Switch Router)和太位交换路由器(TSR,Terabit Switch Router)。 随着IP的核心地位逐渐被认同,IP over ATM、然后ATM over SDH 的方式被IP直接over SDH的方式取代。传输速度也很快从OC-12 ( 622Mbps ) 跳到OC-48 ( 2.5Gbps )。POS技术已经广泛用于骨干网中
[单片机]
基于<font color='red'>VxWorks</font>的T比特路由器2.5GPOS接口板设计
航空业的“新航道”:拥抱物联网
物联网正在全球不断扩张版图,相信 上帝 也不能阻止它的 疯狂 了,传统的航空业也面临着物联网的洗礼。虽然一般来说传统行业会较慢地融入物联网(例如工业预计要到2020年),而航空业是个例外。首先因为历史上很多最好的技术都是先从航空业开始的,其次因为航空的基础技术之一就是 无线通信 ,飞机与飞机、飞机与地面的互联是必须的,卫星与地面控制中心的通信也是必不可少的,可以说航空业是物联网的鼻祖。因此,当物联网来临时,航空业者是一定不能排斥的,而是要拥抱物联网,让自己的设备、系统与物联网的优势相结合,创造新 航道 。 物联网交通系统可以更可靠、更安全地运行。飞机间可以互相报告紊流情况,此外它们还能与基于云端的中央控制系统进行沟
[工业控制]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved