广州地铁2号线、深圳地铁1号线、上海地铁1号线延长线的列车均采用了符合IEC61375 TCN标准的德国总线控制系统。该系统由列车总线(WTB)和多功能车辆总线(MVB)两部分组成, 单元(整个列车6辆车为一个编组, 3辆车为1个单元)内用MVB总线连接, 两个单元间用WTB总线连接, MVB总线实现车辆控制, WTB总线实现列车控制。

1 MVB 总线的物理层和链路层

MVB 总线模型是在开放系统互联 OSI 模型的基础上进行了简化。OSI 具有 7 层参考模型, 而 MVB 只有其中的物理层和链路层。

1.1 物理层

MVB总线的物理层有3种:

  • ESD(电的短距离传输介质), 使用双绞屏蔽线, 按RS-485标准, 最多支持32个设备, 最大总线长度20m
  • EMD(电的中距离传输介质), 使用双绞屏蔽线, 最多支持32个设备, 最大总线长度200m。允许使用变压器连接
  • OGF(光纤媒介), 使用总线连接器, 传输距离可达2km

MVB 总线系统是分级控制系统。系统设备共分 5 个级别, 6 种能力:

  • 1 级设备具有的能力有设备状态和过程数据。设备端口地址一般与设备地址一致
  • 2 级设备具有的能力有设备状态, 过程数据, 信息数据, 是智能设备可以通过总线配置, 但不能编程
  • 3 级设备具有的能力有设备状态, 过程数据, 信息数据和用户编程
  • 4 级设备具有的能力有设备状态、过程数据、信息数据和总线管理器。用户编程具有可选性
  • 5 级设备具有的能力有设备状态、过程数据、信息数据、网关和总线管理器。具有总线管理器的网关能与各种总线同步
1.2 链路层数据
1.2.1 帧和报文格式

有效的帧格式见图 1

VxWorks MVB effective Frame

MVB总线在地铁列车控制系统中的应用

1) 主帧格式: 以主起动定界符开始, 接着是 16 位报文数据, 然后是 8 位校验序列。4 位 F_code 码限制下面的12 位并指示从帧大小, 如图 2 所示。

摘要:本文基于VxWorks 系统探讨和研究了嵌入式实时PLC 的设计方法,主要包括基于嵌入式系统的实时PLC 系统结构,基于PPC 的嵌入式处理器设计以及BSP 的改造等等关键技术,为工业PLC 设计提供了一个新的解决方案。

0、前言

随着数字信息技术和网络技术的高速发展,人类正步入一个崭新的后 PC 时代。这个时代的主要特点是嵌入式系统无处不在,并不断地向科研生产及人类生活的各个方面渗透。而可编程控制器(PLC)对机床开关量信号进行控制时可靠性高,使用方便,在大多数数控机床,特别是经济型数控机床中,要求的输入输出点数不多的情况下得到广泛应用。在兼用PC 机系统资源的情况下,采用非实时多任务操作系统(如Windows)时,Win32 API 的设计可以满足多控制点复杂的数控功能要求,但由于Windows 的分时性,没有考虑到实时环境的开发用途,其系统调用的效率不高,不能满足数控系统高实时场合PLC 控制的实时性要求。

VxWorks 作为一运行在目标机上的高性能、可裁减的嵌入式实时操作系统,目前以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域。

本文基于 VxWorks 操作系统,提出了基于VxWorks 的嵌入式实时PLC 设计的方法与应用,利用VxWorks 的开放性、模块化和可扩展性的系统结构特性以及多线程/多任务的系统环境来达到高实时要求的PLC 控制,在保证实时性的同时,实现多点位、复杂功能的PLC系统控制目标。

1、传统 PLC 系统的结构

相比较传统的的基于通用工业 PC 的工业PLC,其数控系统嵌入式PLC 硬件包括:工控机及其外围设备,基于ISA 总线的开关量输入输出接口卡,光电隔离模块,继电器输出模块。其结构如图1 所示。

PC PLC

工控机采用 Windows 等非实时操作系统,数控系统的人机界面、数控代码处理、轨迹划、参数管理以及PLC 控制都通过工控机由软件来实现,不需要独立的NC 控制器,减少了数控系统对硬件的依赖,有利于提高系统的开放性。I/O 输入输出信息通过PC 机I/O 接口卡实现主机与伺服接口模块和I/O 接口模块之间的信息交换,PC 机I/O 接口卡基于ISA或PCI 的总线。虽然其相较最初的单片机的控制加入了工业PC 来拓展其开放性,但是由于没有充分利用PC 机系统资源,而开发和运行都采用的非实时多任务操作系统(如Windows,Linux)时,其设计没有考虑到实时环境的开发用途,其系统调用的效率不高,数控系统PLC控制不能满足一些高精度场合的实时性要求。

摘要:实现跟踪雷达系统中各子系统之间的实时通讯,重点是信号处理子系统中信号处理板和网络间的实时通讯。在实时操作系统VxWorks平台下,编写PCI设备的驱动程序和网络通讯程序,以完成通讯功能。VxWorks的高可靠性和强实时性在应用中得到了充分的验证,在VxWorks平台的支持下,信号处理子系统完成了信号处理和网络之间的实时通讯。

跟踪雷达在跟踪高速目标时,需要有足够快的反应速度,这不仅对它自身的硬件系统的实时性要求较高,而且对相应软件系统的实时性要求也较高。用实时操作系统VxWorks作为跟踪雷达系统中的操作系统,可以满足软件对实时性需求。

本系统中,跟踪雷达各分机设备在相应处理计算机、控制计算机控制下协调工作,完成对目标的跟踪和测量雷达的引导,各分控计算机之间通过以太网接口相互通讯。跟踪雷达软件按功能分为主控、显示、信号处理、伺服控制、高频控制、光电控制六个子系统,分别对应不同的计算机。其中主控、信号处理、伺服控制、高频控制、光电控制子系统上都使用VxWorks操作系统,如图1所示。

Radar Tracking

1 VxWorks简介

目前市场上比较著名的实时操作系统有:VxWork雷达跟踪VxWorks、pSoS、Nucleus、VRTX、Windows CE、Palm OS、QNX、PowerTV、JavaOS、LynxOS等。其中,VxWorks是美国WRS(Wind River System)公司推出的一个具有微内核、可裁剪的高性能强实时操作系统,在实时操作系统市场上处于领导地位。它在航空、广播、运输、医疗、自动化生产和科学研究等领域中有着广泛的应用,尤其是在国防和军事上一些高精尖技术及实时性要求极高的领域中,体现出了其优越的性能。在1997年4月发射的火星探测器上也使用到了VxWorks。

(1) VxWorks的主要特点

VxWorks具有高度可剪裁的微内核结构,它需要的存储器空间大约为8KB~488KB(ROM)、620B~29.3KB(RAM)。可见VxWorks有着极好的可伸缩性,用户可以利用工具或直接修改内核源文件来配置内核。VxWorks能进行高效的多任务调度,它支持中断驱动的优先级抢占式调度和时间片轮转调度,并具有确定的、快速的上下文切换能力,确定的、微秒级的中断延迟时间。这些使得内核具有非常强的实时性。

(2) VxWorks应用程序开发

除了性能出众的操作系统外,WRS公司还提供了优秀的实时操作系统开发工具Tornado。Tornado包含三个高度集成的组件:Tornado工具,一套强大的交叉开发工具;VxWorks实时操作系统;一整套主机-目标间的通讯选项,例如以太网、串行线路、在电路仿真(ICE)和ROM仿真等。

当前,SoC 向着面积更小,速度更高的方向发展,百兆网通信已不能满足人们的生产和工作需要,用千兆网通信成为工作中迫切的要求,用FPGA实现千兆网的通信,有二种模式可以选择,其一,编写一个IP软核,其二,用FPGA内嵌的MAC内核。方法一的灵活性大,但要实现并不容易,因此,赛灵公司将其归为收费IP;方法二中的MAC的三态可配置特性为我们实现千兆网通信提供了可能,本文就是基于此内嵌的Ethernet MAC模块,在VxWorks操作系统下成功实现了千兆网的通信。

1 Virtex4 FX系列FPGA中内嵌的千兆通信硬核架构

Virtex4 FX 系列FPGA中内嵌了多个用于千兆通信的硬核,以XC4VFX20为例,它通过一个主机接口连接了二个EMAC核。二个EMAC可以一起使用,也可以只使用其中的一个。

Virtex4中嵌入的Ethernet MAC硬核主要有以下特点:

  • 支持半双工和/或全双工操作
  • 设计符合IEEE 802.3-2002标准/li>
  • 支持3种不同的操作模式:1 Gbps、100 Mbps、10Mbp
  • 支持MII,GMII,RGMII,SGMII通信方式
  • 为不限长度的VLAN帧和JUMBO帧提供技术支持
  • 提供了可选的网络管理特性,包括基于每个分组的统计数据矢量和流程控制
  • 可以通过一个与处理器无关的接口对TEMAC核进行配置和监控,其为用户选择适合其应用的理想处理器提供了附加的灵活性

在1Gigabit模式下,TEMAC支持千兆位级媒体独立接口(GMII)和降低千兆位级媒体独立接口(RGMII)。 GMII是一个运行速率为125 MHz的字节宽并行SDR接口,而RGMII是一个运行速率为25 MHz的半位元组款并行DDR接口,可以提供的总带宽为1 Gbps。 而且,在100和10 Mbps模式下,TEMAC均支持MII接口。 MII接口是4-bit宽,在100MBps模式下其工作速率为25 MHz。 在10MBps模式下,MII接口的工作速率为2.5MHz。

由于Virtex4中嵌入了Ethernet MAC硬核,同时,FX系列还嵌入了PowerPC,这样,就可以用PowerPC控制Ethernet MAC实现千兆网的通信。

2 VxWorks下BSP的移植

VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它采用微内核的结构,具有支持多种处理器,丰富的网络协议,良好的兼容性和裁减性等特点,同时具有程序动态链接和下载的功能。自从80年代问世以来,以其不断推出的升级版本,高性能内核以及友好的用户开发环境,在嵌入式实时操作系统领域逐渐占据一席之地,尤其以成功应用于火星探测车和爱国者导弹等高科技产品而声名鹊起。VxWorks的板级支持包BSP(Board Support Package)是介于底层硬件和上层软件之间的底层软件开发包,它主要功能是为屏蔽硬件,提供操作系统的驱动,具体功能包括:

  • 单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持
  • 为操作系统提供设备驱动程序和系统中断服务程序
  • 定制操作系统的功能,为软件系统提供一个实时多任务的运行环境
  • 初始化操作系统,为操作系统的正常运行做好准备

而在嵌入式系统设计中,BSP的开发是一项非常复杂而繁琐的工作 ,Xilinx公司提供的EDK套件,可以在很大程度上减轻开发者的工作。EDK中的BSP生成器(BSPgen)可以根据不同的微处理器、外设和RTOS组合自动产生用户可裁剪的BSP。它包含了系统所必需的支持软件,包括Boot代码、设备驱动和RTOS的初始化。利用BSPgen可以把Xilinx器件驱动打包到BSP的子目录下,并且把Xilinx器件驱动与VxWorks及其Tornado集成开发环境无缝集成,充分减少开发周期。

但是,BSPgen生成的BSP只是一个固定的BSP模板,并不能正确的反应RAM/ROM的存储器映射,不支持用户通过BSPgen流程自定义的核/驱动等。因此还需要对BSPgen产生的BSP进行修改裁剪。

对于BSP开发人员来讲,借助EDK的BSPgen,还必要做以下几项工作:

概述:

本文介绍Power PC处理器MPC8247与EEPROM(RTC)芯片X1226的通信在vxworks下的实现。

芯片简介:

MPC8247是一款功能丰富的通信处理器,它集成了一个高性能的PowerPC RISC微处理器,一个灵活的系统集成单元,以及许多可用于不同应用的通信外围控制器,特别是通信和网络系统。

X1226 是一个带有时钟,日历,两路报警,512 x 8位的EEPROM,振荡器补偿和电池切换的实时时钟。振荡器使用一个外部的,低价格的32.768Khz的晶体。

硬件电路:

MPC8247, RTC X1226

MPC8247, RTC X1226

1) 晶振为32.768K

2) I2C_SCL和I2C_SDA为漏极开路,接上拉电阻

原理分析: