您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

SHARC阵列板的VMEBus通信分析与应用

时间:2007-1-20栏目:电子通信论文

  摘要:分析在Apex软件环境下,SHARC处理器阵列板与MVME2700单板机基于VME总线的交互通信机制;利用该机制在VxWorks操作系统下,实现MVME2700单板机对DSP阵列板的被动触式工作时序控制。
  关键词:嵌入式系统SHARC实时性VxWorks
  
  目前,许多信号处理系统DSP都采用AnalogDevice公司的SHARC系列产品。随着DSP计算能力与应用范围的不断增强和扩大,越来越要求DSP具有实时控制能力以及具备多种通信接口。特别随着网络技术的不断发展,基于网络控制的DSP应用已成为主流;而嵌入式单板机(SignalBoardComputer)显然在实时控制与多通信接口及网络应用方面具有及大的优势。因此,通常在DSP处理机前端利用单板机设置通信控制器,加强对DSP系统的实时控制与外围通信接口扩展。DSP系统与其前端通信控制器之间是否具有良好的实时通信,决定了其整体性能的优良程度。本文利用Motorola公司的MVME2700单板机作为DSP信号处理机的前端通信控制器,实现了对DSP系统的实时通信控制。
  
  1DSP及其前端控制
  
  在需要高强度信号处理能力的领域,一般可采用多块具有拓扑结构的SHARC处理器VMEBus阵列板作为信号处理机。各阵列板通过连接线连接,具有很强的信号处理能力。SHARC阵列板虽具有强大的计算功能,但是却不适合加载实时操作系统,因此其自身管理功能并不强大,并且通信接口扩展性较差,不利于功能扩展和网络控制。为了对其实施合理的工作时序控制并增强外围通信功能,在其前端配置一块单板机,利用VxWorks作为操作系统,并安装控制程序对SHARC阵列板实施控制。由于单板机具有良好的通信接口扩展性,该单板机作为信号处理系统的前端机可以外接网络接口、视频接口、I/O接口等等,使得信号处理机可作为一个完整的分系统接入控制网络;利用单板机的强大的实时控制功能和网络功能,使信号处理机发挥最大功效。下面给出SHARC阵列板与其前端的单板机组成的通信处理系统,如图1所示。
  
  该嵌入式系统基于标准的VME总线结构,SHARC处理器为ADSP21060,其时钟频率为40MHz,晶体振荡器的频率为25.6MHz。每一个SHARC处理器都支持高达240MB/s的高速通信。对SHARC的软件开发采用Apex(Advancedparallelexcutive),即高级并行执行指令,由SignalSpectrum公司开发的SHARC指令高级开发语言。
  
  Apex提供了性能优良的、灵活的并行处理器指令集,以及对DSP硬件的便捷访问功能。同时,Apex还提供了基于VME总线的通信机制,允许从主机下装SHARC代码到客户机,并且具备在主机和客户机之间进行数据传输的功能。本文采用美国Motorola公司生产的单板机MVME2700,中央处理器PowerPCMPC750作为Melbourne的前端通信控制器。MVME2700是一个高度集成计算机系统,适用于要求高度实时控制管理的系统环境。它所使用的操作系统就是嵌入式的实时操作系统中的佼佼者VxWorks。VxWorks是具有高性能的实时操作系统内核。该内核使用中断驱动、抢占优先级的任务调配机制,这种机制使得VxWorks具有高性能的实时特性。MVME2700的通信控制程序通过Tornado软件在Windows环境下进行程序开发。
  
  2SHARC的VME总线通信机制分析
  
  如果要实现MVME2700对SHARC的实时控制,则必须了解SHARC是如何基于VME总线对外访问的。由于MVME2700对SHARC阵列板起着程序下载、引导和控制作用,在Apex开发环境下视其为主机,而SHARC阵列板则称为目标机。对于SHARC阵列板而言,一般只有根部SAHRC处理器参与VME总线通信。Apex支持两类主机与SHARC系统进行VME通信的方式:一类方式是在主机应用程序和SHARC阵列板根部处理之间进行的较低层的数据块拷贝,类似于简单的本地数据拷贝标准C程序当中的memcpy;另一类则以客户端/服务端交互的形式在主机与SHARC之间建立通信,利用中断实现同步,并且可以多路传输。下面对这两种方式加以分析。
  
  2.1同存块拷贝方式
  
  Apex提供主机与SHARC目标机的任何内存地址拷贝数据的函数:cpy_to_SHARC()和cpy_from_SHARC()。给出SHARC阵列板上SHARC-0(根部处理器)的本地地址和主机上的本地址,即可进行内存块拷贝。本质上,这是一种基于VME总线的共享内存DMA方式,函数cpy_to_SHARC()和cpy_from_SHARC()自动将主机与目标机的本地址释放成VME总线地址,通过共享内存进行数据传输,因此可以不必关心低层具体的VME总线映射关系,而将重点在上层数据传输。不过,某些情况下需要获得VME映射关系的时候,例如主机需要通过VME总线对SHARC的控制寄存器进行操作,此时应当利用VxWorks的函数sysLocaltoBusAddr()来主动获得该寄存器的VME地址映射,对该VME地址进行位操作。要做到这一点,在NT操作系统下则显得要麻烦得多。由于SHARC与MVME2700的数据拷贝通过VME总线传输,其数据传输速率是非常高的;同时,由于采取了DMA方式,几乎不需要CPU介入,从而可提高程序执行效率。
  
  2.2
  
  
  
  客户/服务的阻塞交互方式
  
  该方式要求每次客户端申请获得服务的时候,向系统提供一个服务请求。该请求包括标签和一同发送的数据包,其结构体数据格式如

[1] [2] [3] 下一页

下页更精彩:1 2 3 4 下一页