FlexRay总线网络在导弹发射控制系统中的设计与应用*
2019-06-24梅熹文康隽睿武小舟刘峻池
梅熹文,康隽睿,武小舟,刘峻池,杨 娜
(西安现代控制技术研究所, 西安 710065)
0 引言
目前,以“事件触发”机制为基础的CAN总线的最大通讯速率为1 Mbit/s,随着武器系统对通讯可靠性与实时性要求愈发严格,CAN总线已逐渐不能满足要求。因此需要寻求一种新的总线技术来解决武器系统发射控制设备间实时响应的瓶颈问题,而基于时间触发的FlexRay总线技术作为近年来的一种具有高实时、高容错、通讯速率可达到10 Mbit/s的新型总线技术已经广泛运用在高端汽车领域,但是尚未在武器系统中进行实际应用。文中提供了一种将FlexRay总线网络应用在导弹发射控制系统中的设计,并进行了测试验证,对于FlexRay总线在武器系统领域的研究与推广具有实用价值。
1 FlexRay总线
FlexRay是近年发展出的一种时间触发类型的新型车载网络技术。作为一种高实时性总线,FlexRay总线将通讯时间划分为等长的通讯周期,每个通讯周期中数据都拥有独立的固定位置,其中静态段采用时分多路的信息传输方式,动态段采用柔性时分多路复用方式[1]。静态段被划分为多个相同长度的静态时隙,时隙被分配给网络中各节点,当所分配的时隙到来时该节点才能对数据进行收发。动态段则更加灵活的支持事件触发。文中主要针对静态段进行相关研究。
FlexRay总线的特点主要有以下三个方面[2]:
a)通讯带宽。拥有双通讯通道,单通道带宽可达到10 Mbit/s,相较于CAN总线有很大的提升。
b)确定性。以循环通讯为基础,使用时分多路技术,每个通讯周期中数据都拥有独立的固定位置,以此保证收发的时效性。
c)容错性。拥有确定性的分布式故障容错机制,以此保证多个级别的容错。
基于以上特点,使FlexRay总线网络拥有了很强的实时性以及可靠性,而这些正是衡量武器系统性能的重要指标。
2 FlexRay总线网络的设计与实现
实现FlexRay总线网络,第一步应对每个节点的硬件结构、设备驱动以及上层应用进行设计,随后根据网络拓扑结构搭建网络通讯平台,最后进行多节点测试,验证是否满足设计性能指标。
2.1 节点硬件结构设计
导弹发射控制系统中一个FlexRay网络节点采用微处理器、通讯控制器以及总线收发器组合搭建的结构模式[3],节点架构如图1所示。
图1 FlexRay节点架构图
微处理器。主要实现数据分析处理,是整个节点的核心单元。本次设计采用PowerPC P2020处理器为处理核心。
通讯控制器。主要实现通讯控制功能。采用飞思卡尔公司支持FlexRay 2.1A协议的MFR4310芯片[4]。
总线收发器。用于实现FlexRay信号的转换。采用恩智普公司的TJA1080A芯片。
本研究中,FlexRay波特率为10 Mbit/s,通讯周期10 ms,划分为80个时隙,每个时隙有效长度为100 B。
2.2 节点软件设计
基于VxWorks操作系统的FlexRay节点软件包含底层驱动和上层应用两个部分。上层应用程序主要实现系统流程控制,通过调用驱动接口函数实现FlexRay相关参数配置和数据读写。驱动程序作为上层应用与芯片的桥梁,通过对MFR4310芯片通讯控制寄存器的配置,使总线满足工作要求,并提供数据读写缓存。
2.2.1 驱动层设计
VxWorks操作系统针对驱动设计拥有一套通用架构,主要由以下部分组成[5]:
a)系统设备表。用于保存设备的寄存器基地址、设备状态等重要信息。
b)系统驱动表。用于保存该设备驱动对应的函数指针。
c)系统文件描述符表。用于当设备被打开后,维护其相关文件信息。
针对MFR4310的特点,遵照以上驱动设计的标准架构,设计VxWorks系统下MFR4310的驱动程序。
VxWorks设备驱动程序工作流程如图2所示。
图2 设备驱动程序工作流程
驱动程序主要包含硬件初始化和应用层接口两个部分:
a)硬件初始化。实现MFR4310有效控制的前提是对该设备进行正确读写。首先通过修改系统文件sysLib.c的sysPhysMemDesc结构体实现对内存空间的配置,包括MFR4310的基地址、内存空间大小、读写以及高速缓存特性等。其次通过修改OR和BR寄存器,将读写周期控制在130 ns左右,延长写周期的数据保持时间,实现对读写时序和基地址的配置。随后完成MFR4310复位以及挂接相关中断服务。最后,将MFR4310设备及其驱动分别增添到系统设备表以及系统驱动表之中。
b)应用层接口。经过硬件初始化,实现了对底层函数的挂接、中断初始化以及每个时隙具体信息的定义,随后将设备驱动函数安装在驱动表中,调用过程如图3所示。
图3 FlexRay驱动接口函数挂接结构图
当应用层调用write()函数执行写数据操作时,会通过设备文件描述符调用系统驱动表中的tyWrite()函数,将数据写入对应的输出缓存。随后FlexRayStartup()函数启动中断输出,最后由输出的中断服务程序将字符发给指定的时隙。
当指定时隙接收到其他节点数据时,执行输入中断服务程序,读入数据到对应的缓冲区,随后回调函数tyIRd()会将数据读入输入缓冲区。应用层调用read()函数执行读操作时,会通过设备文件描述符调用系统驱动表tyRead()函数,将数据读入用户缓冲区。
2.2.2 应用层设计
应用层软件由总线初始化和参数配置、启动通讯、数据发送与接收几个部分组成,程序执行步骤如图4所示。
图4 FlexRay应用层架构图
a)初始化和配置
开发板上电后,首先会对硬件环境初始化,满足总线运行环境。在Fr_config_type结构体中定义FlexRay总线通讯速率、时隙数量以及一个周期内的时间分布等[6]。主要控制参数如表1所示。
表1 FlexRay主要控制参数表
使用Fr_mw_config()函数将定义好的结构体传入底层驱动,并写入相关控制寄存器,对缓冲区及FIFO进行初始化。
b)启动通讯
初始化完毕后,总线控制器会向各节点发出控制命令,进入启动程序。调用Fr_mw_start()函数,使节点加入到通讯簇中。
c)数据传输和接收
定义Fr_mw_receive()函数,传入时隙号N以及接收缓冲区的大小,其中缓冲区大小应为静态区时隙负载和动态区时隙负载长度中的较大值加上4 B后的整数倍[7]。将指定时隙接收的数据保存到应用缓冲区,创建时隙N数据接收任务,等待其他节点发送的数据信息。
定义Fr_mw_transmit()函数,传入参数时隙号N以及更新数据的字节数,大小应该是静态区时隙负载和动态区时隙负载长度中较大值的整数倍,创建时隙N数据发送任务,定时向其他节点的接收时隙发送数据。
2.3 总线网络架构
目前一类基于CAN总线的导弹发射控制系统主要由操显终端、任务管理单元、指挥终端、导航系统、卫星定位仪等5个设备组成,文中使用FlexRay替代CAN总线,构建了图5所示的通讯网络架构,其中每个设备各自作为一个FlexRay节点。
图5 基于FlexRay总线网络通讯架构图
3 FlexRay总线网络性能分析
总线传输信号的最坏响应时间(worst case response time,WRCT)是一个重要的网络性能参数,通过得到FlexRay总线的最坏响应时间,可以反映出武器系统在使用FlexRay总线后所造成的数据传输延时。
FlexRay总线一个通讯周期的时间分布结构如图6所示。其中宏节拍MT为通讯周期的基本单位,由多个微节拍μT构成,各节点的晶振频率决定了μT值的大小[8]。
通过配置参数,定义一个静态时隙的持续时间为2 MT,其中一个MT的持续时间为1 μs,激活点偏移量为1 MT/帧[9]。
FlexRay总线的WRCT分别为静态帧和动态帧的WRCT之和[10],假设静态帧和动态帧的WCRT分别为WSTi和WDYNi,静态帧和动态帧在FlexRay总线周期上最坏响应时间的成本函数可以表示为:
(1)
式中:ns为静态帧总数目;nd为动态帧总数目。静态帧最坏响应时间的成本函数可由式(2)得到:
(2)
式中:CST、CDYN、CNIT分别为静态段、动态段和网络空闲时间段NIT的传输时长;Ci为第i帧的通讯时长,其中:
CST=STslot·ns
(3)
CDYN=MS·ndyn
(4)
本次设计假定CNIT网络空闲时间为:
CNIT=200·MT
(5)
由式(2)~式(5)可以得到静态帧的最坏响应时间为:
WSTi=MS·ndyn+STslot·ns+200·MT+Ci
(6)
式中:STslot为静态时隙长度;ns为所有静态时隙数量;MS表示动态微时隙长度;ndyn为所有微时隙的总数目;MT为每个宏节拍中的字节数。
图6 FlexRay总线时间分布结构图
由于本次设计FlexRay通讯周期仅在静态时隙中负载数据,因此由式(6)可知,随着通讯周期不断增加,静态帧比特数线性变大,最坏响应时间增加,最终接近10 ms通讯周期传输时长,满足某武器系统数据传输延时小于20 ms要求。
4 总线网络通讯测试与结果
4.1 实验环境
根据2.3节阐述的网络架构,搭建FlexRay总线测试环境如图7所示。其中5个节点均采用文中设计的软硬件架构,分别模拟发射控制系统中操显终端、任务管理单元、指挥终端、导航装置、卫星定位仪,每个节点的AB通道通过双绞线挂载在FlexRay总线上。使用Vector 公司的CANoe FlexRay软件实时监测FlexRay总线上各时隙数据收发以及总线工作状态。
图7 系统测试环境
4.2 实验方案
本次测试仅使用FlexRay静态段进行通讯,波特率10 Mbit/s,通讯周期为10 ms,划分为80个时隙,每个时隙长度为108 B,有效数据100 B,另包含5 B帧头和3 B帧尾,每个时隙占108 μs,经计算理想条件下传输1 bit数据需0.1 μs,根据某发射控制系统信息交互关系,定义一个周期内各节点时隙分布如表2所示。
表2 节点时隙分布表
4.3 实验结果与分析
使用4.1节中的测试环境,通过FlexRay测试设备对数据收发过程中的丢帧、错误帧进行监测,测试结果如表3所示。
表3 误码率测试表
测试结果表明,FlexRay总线具有很低的误码率,因此有很高的可靠性。
在总线上挂接示波器,观察总线波形如图8、图9所示。
图8 发射控制系统FlexRay总线波形图(整体)
由图8分析可知,FlexRay总线周期间隔10 ms,符合设计要求。
图9 发射控制系统FlexRay总线波形图(局部)
由图9分析可得,FlexRay总线系统每108 μs静态时隙传输一帧数据,数据段大小为100 B,接近理想情况下10 Mbit/s通讯速率要求。
5 结束语
针对导弹发射控制系统对实时性和可靠性的需求,开展了对新型车载网络FlexRay的研究,通过设计并搭建基于FlexRay网络的发射控制系统,测试验证了FlexRay总线能够满足武器系统的性能要求,为今后在导弹发射控制系统中用FlexRay替代CAN总线打下了理论基础。当前研究仍存在一定的不足,在后续研究中通过采用静态段和动态段混合传输方式,总线性能还会有一定提升。