SHARC阵列板的VMEBus通信分析与应用
发布时间:2008/5/29 0:00:00 访问次数:376
摘要:分析在apex软件环境下,sharc处理器阵列板与mvme2700单板机基于vme总线的交互通信机制;利用该机制在vxworks操作系统下,实现mvme2700单板机对dsp阵列板的被动触式工作时序控制。
关键词:嵌入式系统 sharc 实时性 vxworks
目前,许多信号处理系统dsp都采用analog device公司的sharc系列产品。随着dsp计算能力与应用范围的不断增强和扩大,越来越要求dsp具有实时控制能力以及具备多种通信接口。特别随着网络技术的不断发展,基于网络控制的dsp应用已成为主流;而嵌入式单板机(signal board computer)显然在实时控制与多通信接口及网络应用方面具有及大的优势。因此,通常在dsp处理机前端利用单板机设置通信控制器,加强对dsp系统的实时控制与外围通信接口扩展。dsp系统与其前端通信控制器之间是否具有良好的实时通信,决定了其整体性能的优良程度。本文利用motorola公司的mvme2700单板机作为dsp信号处理机的前端通信控制器,实现了对dsp系统的实时通信控制。
1 dsp及其前端控制
在需要高强度信号处理能力的领域,一般可采用多块具有拓扑结构的sharc处理器vmebus阵列板作为信号处理机。各阵列板通过连接线连接,具有很强的信号处理 能力。sharc阵列板虽具有强大的计算功能,但是却不适合加载实时操作系统,因此其自身管理功能并不强大,并且通信接口扩展性较差,不利于功能扩展和网络控制。为了对其实施合理的工作时序控制并增强外围通信功能,在其前端配置一块单板机,利用vxworks作为操作系统,并安装控制程序对sharc阵列板实施控制。由于单板机具有良好的通信接口扩展性,该单板机作为信号处理系统的前端机可以外接网络接口、视频接口、i/o接口等等,使得信号处理机可作为一个完整的分系统接入控制网络;利用单板机的强大的实时控制功能和网络功能,使信号处理机发挥最大功效。下面给出sharc阵列板与其前端的单板机组成的通信处理系统,如图1所示。
该嵌入式系统基于标准的vme总线结构,sharc处理器为adsp21060,其时钟频率为40mhz,晶体振荡器的频率为25.6mhz。每一个sharc处理器都支持高达240mb/s的高速通信。对sharc的软件开发采用apex(advanced parallel excutive),即高级并行执行指令,由signal spectrum公司开发的sharc指令高级开发语言。
apex提供了性能优良的、灵活的并行处理器指令集,以及对dsp硬件的便捷访问功能。同时,apex还提供了基于vme总线的通信机制,允许从主机下装sharc代码到客户机,并且具备在主机和客户机之间进行数据传输的功能。本文采用美国motorola公司生产的单板机mvme2700,中央处理器powerpc mpc750作为melbourne的前端通信控制器。mvme2700是一个高度集成计算机系统,适用于要求高度实时控制管理的系统环境。它所使用的操作系统就是嵌入式的实时操作系统中的佼佼者vxworks。vxworks是具有高性能的实时操作系统内核。该内核使用中断驱动、抢占优先级的任务调配机制,这种机制使得vxworks具有高性能的实时特性。mvme2700的通信控制程序通过tornado软件在windows环境下进行程序开发。
2 sharc的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总线映射关系,
摘要:分析在apex软件环境下,sharc处理器阵列板与mvme2700单板机基于vme总线的交互通信机制;利用该机制在vxworks操作系统下,实现mvme2700单板机对dsp阵列板的被动触式工作时序控制。
关键词:嵌入式系统 sharc 实时性 vxworks
目前,许多信号处理系统dsp都采用analog device公司的sharc系列产品。随着dsp计算能力与应用范围的不断增强和扩大,越来越要求dsp具有实时控制能力以及具备多种通信接口。特别随着网络技术的不断发展,基于网络控制的dsp应用已成为主流;而嵌入式单板机(signal board computer)显然在实时控制与多通信接口及网络应用方面具有及大的优势。因此,通常在dsp处理机前端利用单板机设置通信控制器,加强对dsp系统的实时控制与外围通信接口扩展。dsp系统与其前端通信控制器之间是否具有良好的实时通信,决定了其整体性能的优良程度。本文利用motorola公司的mvme2700单板机作为dsp信号处理机的前端通信控制器,实现了对dsp系统的实时通信控制。
1 dsp及其前端控制
在需要高强度信号处理能力的领域,一般可采用多块具有拓扑结构的sharc处理器vmebus阵列板作为信号处理机。各阵列板通过连接线连接,具有很强的信号处理 能力。sharc阵列板虽具有强大的计算功能,但是却不适合加载实时操作系统,因此其自身管理功能并不强大,并且通信接口扩展性较差,不利于功能扩展和网络控制。为了对其实施合理的工作时序控制并增强外围通信功能,在其前端配置一块单板机,利用vxworks作为操作系统,并安装控制程序对sharc阵列板实施控制。由于单板机具有良好的通信接口扩展性,该单板机作为信号处理系统的前端机可以外接网络接口、视频接口、i/o接口等等,使得信号处理机可作为一个完整的分系统接入控制网络;利用单板机的强大的实时控制功能和网络功能,使信号处理机发挥最大功效。下面给出sharc阵列板与其前端的单板机组成的通信处理系统,如图1所示。
该嵌入式系统基于标准的vme总线结构,sharc处理器为adsp21060,其时钟频率为40mhz,晶体振荡器的频率为25.6mhz。每一个sharc处理器都支持高达240mb/s的高速通信。对sharc的软件开发采用apex(advanced parallel excutive),即高级并行执行指令,由signal spectrum公司开发的sharc指令高级开发语言。
apex提供了性能优良的、灵活的并行处理器指令集,以及对dsp硬件的便捷访问功能。同时,apex还提供了基于vme总线的通信机制,允许从主机下装sharc代码到客户机,并且具备在主机和客户机之间进行数据传输的功能。本文采用美国motorola公司生产的单板机mvme2700,中央处理器powerpc mpc750作为melbourne的前端通信控制器。mvme2700是一个高度集成计算机系统,适用于要求高度实时控制管理的系统环境。它所使用的操作系统就是嵌入式的实时操作系统中的佼佼者vxworks。vxworks是具有高性能的实时操作系统内核。该内核使用中断驱动、抢占优先级的任务调配机制,这种机制使得vxworks具有高性能的实时特性。mvme2700的通信控制程序通过tornado软件在windows环境下进行程序开发。
2 sharc的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总线映射关系,