JuHeng Aero Systems Technology

提 供 专 业 板 级 / 系 统 级 工 业 控 制 设 备 OEM ODM 服 务
产品搜索
客服热线

(010)8217-6803

联系方式

电 话:(010)8217-6803

传 真:(010)8217-6803-801

邮 箱:

服务: service@aerospacesys.com

销售: sales@aerospacesys.com

技术: support@aerospacesys.com

维修: RMA@aerospacesys.com

人力: hr@aerospacesys.com


地 址:北京市海淀区上地6街17号康得大厦5层6510,100085

新闻详情

VMEbus和VME实时工作站

中国科技大学近代物理系快电子学实验室 刘松强

一、前言

80年代中期以来,基于VMEbus背板总线的计算机系统先后得到了世界上300多家厂商的支持,开发出了大量的VME系统软件、CPU模块和I/O模块,使得VME系统成为开放性最好的高性能计算机平台。在VME体系结构下,应用系统设计者可以灵活配置和集成系统,构成满足各种专门需要的VME实时工作站。在国防、科研和工业领域中,这类系统可广泛用于过程控制、数据采集、图像处理和实时仿真。

VME系统在80年代即进入我国,但由于系统的价格较为昂贵,一直没有得到推广。近几年来,一方面由于国家经济实力的提高,另一方面由于人们对高性能实时系统有了进一步的认识和需求,因此,VME系统在国防和高科技领域的应用开始得到了越来越多的关注。

10年来,笔者在国内及欧美的实验室和公司先后从事VME板级电路设计、应用软件开发和系统集成工作,感到目前所有的快电子学实验室对VME硬件、软件和应用系统的开发也十分活跃,希望通过本文的介绍,有助于VME系统在中国的推广和应用。

二、VMEbus简介

1.VMEbus的由来

1979年,Motorola公司为了开发其68000处理器,设计了若干种称为Versa的电路板,相应地定义了VERSAbus总线,并对VERSAbus标准不断地进行修订和补充。其后,Motorola设在德国慕尼黑的欧洲实验室将VERSAbus的电气标准与一种称为欧洲卡(Eurocard)的电路板机械结构标准相结合,形成了一种新标准,称为VERSAbus E,这就是后来的VMEbus A版本。因此,VME就是Versa Module Europe的缩写。VMEbus并不是Motorola公司独家推出的,而是联合了Mostek、Signetics/Philips和Thomson几家公司一起推出的。由一家公司对一种总线做了深入的研究之后,却联合几家公司以开放的形式推出,这还是第一次。这使得VMEbus成为一种非专有的总线系统,因而得到了迅速的发展。1982年提出了VMEbus标准的B版本,1985年提出了C版本,1986年VMEbus成为IEC标准(IEC821),1987年成为IEEE标准(IEEE1014)。时至今日,VMEbus在高性能背板总线市场上已占有主导地位。

2.VMEbus基本结构和特点

VMEbus是一种非复用的32位异步总线。非复用是指它的地址和数据分别有各自的信号线;异步则指它的总线上信号的定时关系是由总线延迟和握手信号来确定,而不是靠系统时钟来协调。

VMEbus模块的尺寸有多种规格,其中标准双高(6U)是最基本的和最常用的尺寸。使用标准19英寸机箱的VME系统最多可插21块VME模块,但是通常所见的都是20槽机箱,空出一个插槽给总线终端器占用。

VMEbus包括两个3列96插针的连接器,在模块上的插头连接器为P1和P2,它们在背板上对应为插座连接器J1和J2。P1是基本连接器,它是单高和双高模块所共有的,包括了16位数据和24位地址线;P2是双高模块的扩展连接器,它的中间一列用于扩展的32位数据和32位地址线,两边二列可由用户定义,通常用于I/O端口。由于接插件的可靠性直接影响计算机系统的可靠性,VMEbus采用高可靠的针式连接器,使得系统的可靠性比采用印刷板板边连接器的系统有极大的提高。

VMEbus可提供±5V、±12V电源。在总线上共有5个插脚用于+5V输入,它们全部使用时,具有向一块电路板提供6A电流的能力。为了使用ECL器件,近年来一些机构还对VMSbus作了非标准扩充,在P1和P2插座之间增添一个插座JAUX,用以提供-2V电源。

如前所说,VMEbus协议是一个异步协议,只要总线信号所表达的功能被确认有效后,信号就立即被激活。这样,无论是快的还是慢的器件,新的或老的技术,都可用于VMEbus,总线的速度自动与器件的速度相适配。这是异步总线的最大优点。

VMEbus是数据和地址非复用的,总线的地址周期和数据周期可以重叠,这样就可以用地址流水线的方式使一个访问周期与下一个访问周期相重叠,加快处理速度。VMEbus可以传输32位、16位和8位数据。VMEbus具有数据块传输方式,一个单一的地址周期之后可以跟随许多数据周期,使得数据传输大为加快。最大块传输为256字节。在传输单一数据时最大速率为19MB/s,传输数据块时最大速率为30MB/s。

由于在数据块传输中,第一个地址周期之后地址线被闲置,因此可以充分利用这一部分总线带宽来传输64位数据块:低32位数据置于D0~D31数据线,而高32位数据置于A0~A31地址线。换言之,可以改用地址/数据线复用的方式来传输64位数据。这一方法已被用于64位VME标准(VME64)之中。

VMEbus具有7条菊花链中断线,处理机模块上的中断发生器和中断处理器功能部件分别用于请求中断和处理中断请求。

三、VME实时工作站

1.实时系统的基本概念

实时系统的定义是:能够在确定的时间内执行计算或处理功能并对外部的异步事件作出响应的计算机系统。应注意到,"确定的时间"是最根本的要求,系统的正确性不仅取决于处理结果逻辑上的正确性,更取决于获得该结果所需的时间。

实时系统是一个控制系统,它执行两类典型的工作:

(1)在预期的时间间隔内,确认和响应分立的事件。

(2)处理和储存大量的来自被控系统的数据。

对于第一类工作,任务响应时间、中断等待时间和中断处理能力是最重要的,我们将它称为中断型的;第二类是计算型的工作,要求很好的处理速度和吞吐能力。在实际应用中经常遇到的是兼具两种要求的中断/计算混合型的实时系统。

不同的实时应用,对任务响应时间、中断等待时间、计算和吞吐能力有不同的要求,例如对一个能源管理系统,主要是监测和控制各种环境因素,诸如温度和气流等。这一类应用的采样速率低,系统中影响变化的元件的响应慢,因此对响应时间和吞吐能力要求都不高。然而对于一个核电站,它对数据采集和处理的要求就高的多,必须密切地、连续地监测和控制电站设备和各项功能,以防止突然的停电、关机或核事故,响应时间稍有不足,就会对安全生产或发电成本有很大影响,又如对于实时图像处理,重点是对计算和吞吐能力的要求。

根据对系统的不同要求,实时系统可以分为强实时系统和弱实时系统。简单地说,强实时系统的基本特征是,要求的响应时间和处理时间既短又确定,如果超出规格所要求的时间,产生的结果就不可用。弱实时系统对于响应时间和处理时间的要求较低,如果时间超出,仅仅是不符合规格,所产生的结果仍然是可用的。典型的弱实时系统是所谓的联机事物处理系统,例如银行计算机系统、飞机订票系统等,它们的响应时间一般在秒级。

我们通常谈论的实时系统都是指强实时系统,根据具体系统的性能不同,它们的响应时间通常在几十微秒到几百毫秒之间。

对于实时系统,有几个概念需要加以澄清。首先应认识到,"实时"和"快速"是两个不同的概念。一个计算机系统处理速度的快慢,主要取决于硬件系统的设计,尤其是所采用的处理器的性能。而对一个硬件结构已确定的计算机系统,它的实时性能完全取决于采用什么样的操作系统。例如一个计算机的处理速度无论怎样高,但如果采用通用分时UNIX操作系统,就毫无实时性可言。

其次,我们谈论实时系统,总是和"多任务"联系在一起。如果一个计算机系统只运行一台任务,则它永远是在实时地执行着这个任务,这就没有讨论的必要了。

我们说,实时系统的核心是实时多任务操作系统,而实时多任务操作系统的核心则是它的任务(或称进程)的调度方式。一个实时操作系统的任务调度器必须能随时打断正在内核中执行着的任务,对内部和外部发生的事件在确定的时间里做出响应。也就是说,它必须具有 "内核抢先"的功能。

在我们通常所看到的通用操作系统中,MSDOS是一个单任务的、内核不可重入的系统,当然不是实时操作系统;通用UNIX系统采用分时调度策略,也不是实时操作系统;Windows NT虽然采用抢先调度策略,但不能在内核中抢先,因此也不是实时操作系统,只能用于联机事物处理系统一类弱实时应用之中。

除了调度策略之外,一个实时操作系统还应具有许多其他的性能方面的要求。衡量一个实时系统的性能,最基本的指标是它的进程派遣等待时间(即任务响应时间)和中断等待时间。

2.用于VME的实时多任务操作系统

用于VME的商品化实时多任务操作系统多达数10种,它们总体上可分为两类:UNIX实时操作系统和"类UNIX"实时操作系统。

在标准的通用UNIX环境里,工作在系统空间进程是不能被抢先的,一个运行中的系统调用,即使它是被一个低优先级的进程所调用,也无法被打断,要一直执行到它被阻塞或者完成为止。这可能要花费好几秒钟时间。实现实时UNIX的方法之一是修改通用的UNIX内核,在其中插入抢先点或抢先区。抢先点建立在内核之中,因此,系统调用可以不必等到被阻塞或完成,就能放弃控制。这样就可以减小高优先级进程开始(或者恢复)执行的延迟。不过,由于抢先点之间有时间间隔,所以仍然会有毫秒级的延迟。这个时间延迟相当于两个抢先点之间的最长时间间隔。在到达抢先点时,操作系统做一个快速的检查,看看有否更高优先级的实时进程准备好运行,如果有,则调度器调入这个进程执行。UNIX实时操作系统的设计目标是在保证系统与通用UNIX系统兼容的前提下实现实时性,由于要保证这种兼容性,它们的实时性能多少受到一定影响。这一类通过修改内核插入抢先点的实时UNIX操作系统,其任务响应时间约在几毫秒至几百毫秒量级。

值得特别指出的是LynxOS实时多任务操作系统。它是在保有通用UNIX接口的同时,从头开发的实时U-NIX内核,内部实现完全是专有的,而接口却与标准UNIX操作系统在二进制码级完全兼容。LynxOS是目前完全满足POSIX各项标准的实时操作系统,它是通过POSIX1003.1测试的第一个实时操作系统,也是到目前唯一支持POSIX 1003.4(实时扩充)和POSIX1003.a(多线程接口)的操作系统。LynxOS操作系统的响应时间在数10微秒量级。从综合开放性(即与通用UNIX的兼容性)和实时性指标来考虑,它是目前性能最高的实时操作系统。

类UNIX实时操作系统是专有的或者具有专有内核的操作系统,它们的许多功能乃至名词术语都类似于UNIX操作系统,因此称为"类UNIX"操作系统。类UNIX实时操作系统的响应时间通常在10微秒量级,是当前实时性能最高的一类操作系统,但开放性较差 ,直接从UNIX移植应用软件要复杂一些。常见的类UNIX实时操作系统可以归为两种,一种是以主机-目标机方式工作的系统,典型的代表是VxWorks操作系统;另一种是具有一体化开发和运行环境的系统,典型的代表为OS9操作系统。

WindRiver公司开发的VxWorks是采用所谓主机-目标机方式的实时多任务操作系统,它的开发环境在宿主机,实时内核及运行环境在目标机(即VME处理机模块)。VxWorks是一个性能优越的实时操作系统,从内部特性来看,它从第5版开始采用了微内核结构;从外部特性来看,它的优越性能不仅体现在实时性上,还体现在丰富的功能(例如各种二进制信号灯机制和网络功能)以及优越的开发工具上,其诊断和分析工具Wi ndView尤为出色,解决了实时时间分析的难题。

Microware公司开发的OS9是具有一体化开发和运行环境的实时操作系统,应用的开发和运行在同一台计算机上进行,因此,它真正完整地具有自己的文件系统和编译工具。此外,OS9也支持主机-目标机方式的开发。OS9是一个性能价格比最好、最为流行的实时操作系统。它的应用已从实时工作站扩展到CD-I(激光唱/视盘系统)和HDTV(高清晰度电视)等嵌入式应用领域。

可以说,VxWorks和OS9是两种最流行的实时操作系统,几乎所有重要的VME处理机模块都支持它们。另外,VRTX32、pSOS+和PDOS等实时操作系统(或内核)也较为流行。值得一提的是VMExec,它是Motorola公司提供的实时开发环境,采用pSOS+实时内核。VMExec在80年代末随Motorola公司的VME硬件产品一起进入我国,因此,pSOS+是在国内应用较多的一种实时内核。

3.VME系统中处理器的选择

VME处理机模块中所采用的微处理器有68K系列、i960、Sparc、88100、MIPS和 PowerPC等。这些微处理器除了68K系列是CISC型的,其余均为RISC型。实际应用中,采用68K系列微处理器的VME实时工作站占压倒多数。这主要是由于大多数的实时任务都是中断型的,要求有良好的中断处理能力,而RISC型CPU的中断处理能力都存在这样或那样的问题。简单地说,RISC处理器的目标是"快速"而不是"实时",它们在实时方面的问题可以归结于以下几种原因:首先,多数RISC型CPU主要采用软件方法来处理中断;其次,RISC型处理器中所用的寄存器远多于CISC型处理器,发生中断时要保存大量寄存器;此外,RISC型处理器采用多流水线处理,并有更加多的执行单元。

在RISC型处理器中,i960和MIPS的R3000/R4000处理器相对而言具有较好的中断处理能力。i960借用了CISC处理器的技术,当中断发生时利用硬件方法(微码程序)来切换CPU内容。尽管如此,采用i960的系统的实时响应仍然逊于68040处理器。

还有其他一些因素不利于RISC型CPU的实时应用。例如实时系统通常采用线性地址空间,虚拟地址空间对它没有多大意义,而RISC型CPU的存储管理单元(MMU)却通常是为建立虚拟地址空间设计的,68K系列处理器的MMU则可以建立线性存储映射空间。从市场因素来看,68K系列CPU使用时间长,积累了丰富的软件,老用户在更新换代时仍然会首选68K系列;由于68K系列的用户量大,集成到使用68K系列的VME模块上的系统软件经受了大量用户的充分检验,因而可靠性和稳定性好,用户乐于采用。所有这些都使得68K系列处理器目前在VME实时领域中具有不可替代的地位。

总结起来,在设计VME实时工作站时,主处理器的选用完全取决于应用的目的,对于大多数实时应用,68040/68060处理器是首选型号。对于计算型或计算/中断混合型实时应用,RISC型处理器仍然有用武之地。

近年来,使用DSP处理器的VMEbus模块也发展得很快,它们多用于和主处理机模块一起组成多处理机系统。用于DSP处理器的实时多任务操作系统最流行的是SPOX,它也是以主机-目标机方式工作,支持各种主流的DSP芯片并具有与VxWorks和OS9操作系统协同工作的功能。

4.VME实时工作站

VMEbus背板总线系统的基本优点就是可以灵活配置,组建针对专门应用的实时工作站。VME实时工作站由处理机模块、存储器模块和I/O模块组成。VME主处理机模块多数是具有大容量本地内存(ROM、动态和静态RAM)和各种通用外设接口(串行口、SCSI接口和Ethernet接口等)的单板计算机。VME系统的特色则体现在形形色色的I/O模块上。由于得到数百个厂商的支持,VMEbus有数以千计的商业化I/O模块产品,包括存储器、网络通信、SCSI、数字I/O、模拟I/O和图形控制等各种功能模块。此外,还有众多的实验室在研究和开发各种用于专用系统的模块,例如笔者所在的快电子学实验室,就先后为国内外实验室开发了高速数据采集和预处理、纳秒定时、VME-PC桥接和高速数字储频等专用模块。

在分布式控制系统中,VME实时工作站经常被用作前端计算机,它通过网络或数据总线与下层的各个控制子系统相连接,同时通过网络与通用工作站共同组成控制系统的上层。在这样的配置中,VME实时工作站专门用于处理实时任务,而其他的上层任务诸如人机交互图形界面、通用数据库、与其他系统的通信等任务则由通用工作站来管理。另外一种配置方法是上层只使用VME实时工作站,在U-NIX实时操作系统下执行各种实时和非实时任务,这样配置的系统,结构较简单,但其实时性逊于前一种配置。

VME实时系统也经常作为嵌入式系统,用于一些专门的实验设备以及车载、机载和舰载系统之中。

5.VME系统的实时数据通信

分布式系统中,数据通信是核心任务之一。VME实时工作站与其他系统之间的数据通信,可以通过数据总线和/或局域网来进行。

MIL-1553B数据总线是VME实时工作站常用的串行数据通信总线。笔者11年前参与开发的第一个VMEbus模块就是MIL-1553B通信模块,如今这种模块早已是标准的VMEbus产品,在高能物理、核物理和军事领域都有广泛的应用。MIL-1553B标准最初是美国空军为其机载控制系统开发的,可能是最早形成标准的实时数据通信总线之一,它可以归为一种早期的现场总线标准。其基本设备是控制器(CT)和远程终端(RT)。通信可以在CT与RT之间进行,也可以在RT与RT之间进行。一个CT可以通过总线连接31个RT,而每个RT又可以分接30个子系统。

MIL-1553B通信协议包括信息传输格式和字格式。信息传输包括CT到RT传输、RT到CT传输、RT到RT传输、模式命令等格式,它们又可分为点到点方式和广播方式两类。每个传输格式都由命令字、数据字和状态字所组成,每个字的长度是20位。

MIL-1553B系统的最大特点是它的驱动器和接收器既可以是直接耦合,也可以是变压器隔离耦合,这使得系统具有极强的抗干扰性能。系统使用隔离双绞线,最大传输速率为1MBit/s。

VME实时工作站与其他系统可以通过局域网相互连接起来,最常用的局域网是Ethernet(IEEE802.3)。应该指出,采用总线拓扑的Ethernet网不是实时网络,它的CSMA/CD介质访问技术是一种"谦让"式协议,具有访问的不确定性,这就规定了Ethernet协议毫无实时性可言。但是尽管如此,由于Ethernet是最广泛使用的局域网协议,几乎每一种VME处理机模块都具有Ethernet功能,因而,这种网络经常被当作一种弱实时网络用于对通信的实时性要求不严的分布式实时应用中。在这种应用中,应注意保证网络负荷(利用率)尽量地小,一般认为不应超过10%。

一般地说,对于总线拓扑结构的分布式控制系统,如果要真正具有实时性,通常采用以下两种方式之一:

(1)主从式结构的数据总线,它无需考虑共享问题。主设备发出命令,从设备才做出响应 ,在任何时间只有主设备和与之通信的从设备在网络上传输数据。这种控制技术显然与许多分布式控制系统通常所具有的主-从式关系是相匹配的。采用这种方式,比较适用于组成所谓的pull系统,即只有上级机发出要求,下级机才上报数据的系统。

(2)采用优先级方式裁决总线冲突的网络。当两个节点同时向网络发送数据时,优先级低的节点主动停止发送,而优先级高的节点可以不受影响的继续发送。这样,就保证了优先级高的数据传输具有确定的传输时间,亦即实时性。与主-从方式的数据总线相比,这种优先级方式要灵活得多,是一种网络方法,易于构成多机备份(容错)系统,当最高优先级的主机出故障时,次高优先级的主机就接替中央控制任务。由于所有节点都具有主动发送的能力,因此下级机也具有上报数据的主动权,这样就比较适于组成所谓push系统,即下级机主动上报数据的系统。

采用令牌方式的环型拓扑网络,它的介质访问控制技术可以保证确定的传输时间,因此是真正具有实时性的网络。例如ARCnet就是一种实时令牌环网,尽管它的实时性指标并不高。

对于实时指标要求很高的VME实时系统,可以采用环形拓扑的FDDI网以及目前最先进的实时网络技术:RFM异步传送模式。此外,一些先进的数据通信或接口模式,例如HIPPI(高性能光纤并行接口)和SCI(规模可调一致性接口)等,也都用于VME系统之中。

四、结束语

以上简单地介绍了VME实时工作站系统集成设计的一些基本知识。对于VME实时系统设计的一些重要课题,例如容错系统和强健(robust)系统等,限于篇幅在本文中没有涉及。当然,VMEbus并不只限于组建实时系统,它在通用计算机系统尤其是多处理机系统中有很多用途。在实时系统方面,它也不仅用于实时工作站一级的系统,例如有一种称为IndustryPack的夹层总线系列产品,与VME单板计算机模块相配合,被广泛用于较廉价的嵌入式系统之中。

(注, 本文引自中国科技大学近代物理系快电子学实验室 刘松强老师, 作为技术学习参考)

文章分类: VME/VXS