APP下载

MVB总线故障注入方法研究与实现

2016-12-01仲康正徐惠勇

电子技术应用 2016年8期
关键词:故障注入断路寄存器

仲康正,徐惠勇

(中国地质大学(北京)信息工程学院,北京 100083)

MVB总线故障注入方法研究与实现

仲康正,徐惠勇

(中国地质大学(北京)信息工程学院,北京 100083)

为满足列车通信网络(TCN)中多功能车辆总线(MVB)设备的测试验证要求,基于一般总线测试方法,结合MVB总线协议特点,提出一种基于故障注入技术的测试方法。通过对板卡寄存器的定义与配置,开发了基于VS平台的MVB故障注入设备驱动程序,从电气层、物理层、协议层三方面,详细给出了MVB总线故障注入方法和部分驱动程序。通过Wireshark抓取报文的方式,验证了故障注入的准确性,证明了此方法的可行性和正确性。

多功能车辆总线;故障注入;寄存器

0 引言

多功能车辆总线(Multifunction Vehicle Bus,MVB)是针对车辆环境下,车辆内部功能设备数据通信的现场总线,是列车通信网络系统(Train Communication Network,TCN)的核心部分之一。随着微电子技术和分布式现场总线技术的发展,MVB的应用日益广泛,此类列车可通过网络实现对车载设备的集散式监控和管理,逐步实现了列车控制系统的智能化、网络化与信息化[1]。

MVB介质访问控制的优点在于,它将总线上的时间分为固定大小的基本周期,每个基本周期又由周期相和偶发相组成,这样既可传送对时间有确切要求的数据,同时也可以处理偶发紧急数据[2]。为了保证总线系统的高可靠性,总线测试必不可少,然而由于国外对MVB技术的垄断,国内尚没有统一高效的测试方案。本文基于故障注入技术,提出了一种总线测试方案,并通过软件注入的方式,进行试验验证。

1 故障注入技术

故障注入是进行产品测试性实验的重要技术手段,在产品检测中,通过故障注入可以验证被测产品的机内测试、外部测试的诊断能力[3]。与传统的测评方法相比,故障注入技术具有应用范围广、结果精确度高、节省时间等优点[4]。特别是在有关国防安全的航空航天系统中,最为关键的系统都采用高可靠性的容错计算机系统。在过去近20年中,故障注入的研究对容错系统的设计和应用起到了重要作用[5]。

故障注入主要分为硬件注入和软件注入两种。与硬件注入相比,软件故障注入具有易于控制、成本低、方便灵活等优点,逐渐成为故障注入技术的发展方向和研究热点。

2 故障注入方法

本文通过挂接在总线系统中的故障注入设备,在不改变设备激励以及被测信号的前提下,从MVB故障注入板卡底层寄存器、内存开始,通过软件实现对板卡内寄存器、存储器值的修改,模拟输入信号的故障情况,从而实现相应的故障注入。故障注入过程中,利用分析软件 Wireshark抓取以太网报文,检测设备的故障注入情况,从而验证系统的容错性能。

MVB故障注入设备包含核心板寄存器配置和2个MVB通信节点寄存器配置,寄存器地址共32 bit,由 8 bit保留位(R)、3 bit板卡地址CardAddr、5 bit通道地址port_ num和16 bit偏移地址 OffsetAddr组成,寄存器地址=R+ CardAddr+port_num+OffsetAddr。

在故障注入时,考虑到系统的合理性及高效性,将MVB板卡内寄存器定义为核心板全局配置寄存器、子版全局配置寄存器、通道级寄存器3种类型。结合其他总线的相关经验和理论,将MVB总线的故障概括为3个层面:电气层、物理层与协议层。

2.1电气层

电气层故障配置项包括断路故障、短路故障、串行、并行阻抗等,FPGA接收软件的指令,处理采样所得的信号,控制继电器矩阵和电阻网路,以实现对应故障注入。以断路故障项为例说明。断路故障 Memory偏移地址为0x0200,port_number为0x00,故障参数bit位说明见表1。

表1 断路故障参数说明

根据表1中内容,在程序中定义断路故障参数结构体和对应的位域结构体。断路故障寄存器位域结构体如下:

2.2物理层

物理层故障配置项包括幅值调节故障项配置、占空比调节、总线延时故障等8项。幅值故障寄存器偏移地址为0x0218,portnumber为0x00。故障配置参数见表2。

根据表中内容定义类似电气层的结构体,在驱动开发时以实现相关故障参数的配置及赋值实现。

2.3协议层

协议层故障项参数配置包括2个内容:匹配策略信息Memory、故障策略信息Memory。MVB总线传输数据帧的两种类型具有不同的帧结构和帧标识符。协议层故障由客户端根据需要选择主帧还是从帧故障相关参数配置。

表2 幅值故障参数说明

匹配策略信息配置参数主从帧一致,位域结构体只需要区分结构体名称即可。0位对应Fcode_mask,当值为1时,对功能码进行匹配,匹配对象为 Fcode_data(31-28 bit);1位为Addr_mask,当值为1时,对地址进行匹配,匹配对象为Addr_data(27-16 bit)。可根据Addr_mask_x(x为0-11,占据2-13 bit)选择需要匹配的地址bit位。

故障策略匹配信息 Memory大小为:位宽 32 bit,深度128。160个32 bit深度的数据共分为32组,每组5个32 bit的数据,对应 32组故障策略,包括功能码、校验码、位反转、位毛刺等故障参数配置。

3 故障注入的实现

鉴于 Windows系统的高普及性,本文根据定义的MVB故障注入设备寄存器说明,基于 VS2010开发环境,利用C语言开发故障注入驱动。利用Wireshark抓取以太网报文的方式验证API的正确性,然后通过故障注入软件调用检验后的API,完成对设备的故障注入。

3.1Wireshark

Wireshark是一个网络封包分析软件,其功能是撷取网络分包,并尽可能显示最为详细的网络封包资料。Wireshark使用 WinPCAP作为接口,直接与网卡进行数据报文交换。

3.2以太网报文

UDP报文中,源端口、目的端口、UDP长度、校验和大小为2B,用户数据根据具体操作与信息,占据若干字节,包括 4B的消息包头、4B的地址、若干字节(4B整数倍)的具体数据。

发送时,将消息总线数据组合成以太网报文,总线数据以4 B为单位,先发送最低字节,再发送次低字节,最后发送高字节。消息总线数据格式为:

消息包头(Type+Opcode+R+DataLEN)

地址域(R+cardaddr+portnum+OffsetAddr)

数据域(one or more 32 bits)

Type为固定值 0x1D,占6 bit;Opcode为操作码,占6 bit,表示信息类型,对应读、写寄存器(Memory);R为保留位,占7 bit,DataLen为数据长度,包括信息包头,占13 bit。

3.3Memory操作格式

与消息总线数据格式一致,写Memory包括n×4B的数据内容。第一行 4B数据为消息包头,Type为固定值0x1D,Opcode为固定值0x0C,加上 7 bit保留位和13 bit的DataLen;第二行为地址域 R+cardaddr+port_num+OffsetAddr;第三行开始为 32 bit整数倍的数据域,数据域长度与DataLen大小对应。

3.4故障注入驱动

为方便对各项故障的选择性注入,利用选择结构编写驱动程序。为了规范化测试步骤,在故障注入开始前,先进行扫描,确认在线设备数量及地址端口,然后利用驱动打开设备,开始相关故障注入。在整体的测试流程中,需要包括打开、关闭、复位、暂停等一系列操作。

物理层故障注入部分代码如下:

3.5实验结果与分析

驱动编译完成后,通过以太网连接设备运行编写的Demo程序,调用相关API,实现故障注入。本文以断路、幅值故障注入情况为例,结合以太网报文,验证驱动准确性。

Demo调用断路故障设置函数,通过对断路故障项配置定义的结构体内参数赋值,实现对设备的断路故障注入。对断路时间赋值2(其他默认值为0)时的报文如图1。

图1 断路故障注入报文

从第三行14 00 c0 74开始为用户配置数据段。翻译为:

74 c0 00 14:对应写memory操作,DataLen为5B。

00 4002 00:对应32 bit地址域,8 bit保留位,3 bit卡位号,5 bit通道号,16 bit偏移地址(0x0200)

00 0200 00:对应32 bit断路故障寄存器位,报文显示与驱动赋值结果一致。

00 0000 00:空数据字节

00 0000 00:空数据字节

幅值故障注入参数赋值,vppEn=1,vppValue=3.4,得以太网报文如图2。

图2 幅值故障注入报文

数据翻译如下:

74 c0 00 14:对应写memory操作,DataL为5 B。

00 4002 18:对应32 bit地址域,8 bit保留位,3 bit卡位号,5 bit通道号,16 bit偏移地址(0x0218)

00 0080 02:对应 32 bit幅值故障 Memory位,报文显示与驱动赋值结果一致。

00 0000 00:空数据字节

00 0000 00:空数据字节

与断路、幅值故障项类似,分别对电气层、物理层和协议层各故障寄存器位赋值,用 Wireshark抓取报文验证。实验中,报文显示结果均与驱动注入值相匹配,验证了驱动对设备故障注入的有效性、可控性。

4 结束语

随着我国高铁技术的不断进步发展,MVB总线技术在国内的应用将逐步扩大。本文结合MVB总线协议特点和通信方式,探讨适用于MVB总线设备的故障注入方法,并开发出相应的故障注入驱动,弥补了MVB总线故障注入手段的不足。

故障注入驱动对各类设备的高度兼容性、适应性是故障注入技术的发展方向。本文提出的测试方法,可适用于大部分MVB总线设备,且与其他总线设备也具有共通性。如何利用此扩展性,开发出适用于各类总线设备测试的故障注入驱动,值得深入研究。

[1]杨昌休.多功能车辆总线MVB关键技术的研究[D].成都:西南交通大学,2012.

[2]宋娟,王立德,严翔,等.MVB协议分析装置设计及其实时性分析[J].铁道学报,2011(11):41-45.

[3]石君友,李郑,骆明珠,等.故障注入控制软件的设计与实现[J].测控技术,2008(4):65-67,70.

[4]李志宇,黄考利,连光耀.基于测试性设计的软件故障注入研究综述[J].计算机测量与控制,2013(5):1112-1114,1117.

[5]孙天竹,吴小兵.采用故障注入技术提高系统可靠性[J].信息技术,2004(6):85-86.

Research and implementation of MVB bus fault injection method

Zhong Kangzheng,Xu Huiyong
(Department of Information Engineering,China University of Geoscience(Beijing),Beijing 100083,China)

To meet the test and validate requirements of multifunction vehicle bus devices in train communication network,based on the test method of general bus and combining with the characteristics of the MVB bus protocol,this paper presents a test method based on fault injection technique.By means of the definition and configuration of the card registers,Multifunction vehicle bus fault injection device driver,based on VS platform,was developmented.MVB bus fault injection method and part of the driver are given in detail,in terms of physical,electrical,and protocol.Through the way of Wireshark graping messages to verify accuracy of fault injection,and prove the feasibility and correctness of this method.

multifunction vehicle bus;fault injection;registers

TP336

A

10.16157/j.issn.0258-7998.2016.08.017

仲康正(1993-),男,硕士研究生,主要研究方向:自动控制。

徐惠勇(1965-),男,博士,副教授,主要研究方向:自动控制。

中文引用格式:仲康正,徐惠勇.MVB总线故障注入方法研究与实现[J].电子技术应用,2016,42(8):74-76,83.

英文引用格式:Zhong Kangzheng,Xu Huiyong.Research and implementation of MVB bus fault injection method[J].Application of Electronic Technique,2016,42(8):74-76,83.

猜你喜欢

故障注入断路寄存器
模拟训练装备故障注入系统研究
对机电设备电气断路故障的深析
Lite寄存器模型的设计与实现
SM4算法前四轮约减轮故障注入分析
采用修改-回放原理的1553B故障注入方法
电路故障的判断
分簇结构向量寄存器分配策略研究*
乏燃料水池缺乏虹吸断路开孔事件经验反馈
列车MVB总线故障注入研究
电气控制线路常见断路故障排除浅析