某型船舶控制系统1553B总线数据监测与分析研究
   来源:现代电子技术     2021年01月24日 12:48

...采用实时数据库和数据软总线的技术,实现对煤矿各种监控、监测...

胡锦晖++胡大斌++肖剑波

摘 要: 通过对1553B通信系统的组成及数据传输指令的分析,设计了一种1553B总线数据监测与分析的方法,在此基础上研制了数据监测与分析软件。以某型船舶控制系统为实例,对其1553B总线数据进行了监测、显示及保存。通过分离出有效数据并加以分析研究,得到了通信数据的报文格式、编码规律和具体含义。研究结果表明,该方法合理可行,为其他类似控制系统的1553B网络数据分析提供了有益借鉴。

关键词: 控制系统; 1553B总线; 数据监测; 解码

中图分类号: TN915.05?34 文献标识码: A 文章编号: 1004?373X(2015)03?0040?05

Study on data monitoring and analysis of 1553B bus in a ship control system

HU Jin?hui, HU Da?bin, XIAO Jian?bo

(Naval University of Engineering, Wuhan 430033, China)

Abstract: By analyzing of composition and data transfer commands of communication system with 1553B bus, a data monitoring and analysis method of 1553B bus was designed. Based on this, the data monitoring and analysis software was developed. Taking a ship control system for example, its 1553B bus data was monitored, displayed and saved. The message format, encoding law and specific meaning were acquired by isolation and research of the valid data. The research results prove that the method is reasonable and feasible. It provided a reference for 1553B bus network data analysis of other similar control systems.

Keywords: control system; 1553B bus; data monitoring; decoding

0 引 言

随着科技的发展,现代武器装备上的电子设备越来越复杂。将电子设备按一定的协议联网并加以有效地综合,使之达到资源和功能共享已成为必然的要求。武器平台上的联网技术不同于一般的局域网络技术,由于其严苛的工作环境及其特殊的战术技术指标,网络的可靠性和实时性的要求特别高。

1553B总线是由美国提出的飞机内部电子系统联网的标准,由于其可靠性高、传输率较高、技术成熟、易于扩展等优点,在航空航天、军事装备等方面得到了广泛应用。

在某引进型舰船控制系统中,数据总线及网络通信系统就采用了1553B总线技术,其中央控制系统与众多分系统相互联接,联接关系十分复杂。由于其具体通信协议未知,系统一旦出现故障,很难对其进行定位与排除,严重影响到装备作战效能的发挥,不利于舰船遂行海上任务。为了使系统在备件测试、维修检测等过程中,对发生的故障或技术问题能够准确定位、及时排除,从而保证系统的正常运行,迫切需要对其1553B通信协议进行分析解码。

本文通过对该型舰船控制系统结构和1553B总线技术的研究,在对远程终端、总线控制器、总线监视器进行分别设计的基础上,构建了1553B数据监测与分析硬件平台,开发了数据监测软件,以导航系统为例对其通信信号进行了监测与分析,得到了通信数据格式、编码规律和具体含义,为协议的解码奠定了基础。

1 1553B通信系统的组成及数据传输指令

1553B总线系统通常由若干子系统通过嵌入式总线接口,经过总线介质互联而成,各个子系统操作独立,资源和功能则可通过网络共享。1553B总线有三种终端:一个总线控制器(BC)来管理和控制总线上的信息传输;一个总线监视器(MT)来接收总线上的信息用于总线的测试;其余的都是远程终端(RT)。每个终端被分配了惟一的总线地址。典型的双冗余1553B数据总线系统如图1所示。

BC发起总线上的数据传输,只有当BC向某RT发出总线指令后,该RT才能参与数据传输。总线指令分为发送指令、接收指令和方式指令,这些指令分别用来命令某RT发送、接收、或执行由方式指令指定的某个动作。BC通过RT回答的状态字来检验传输是否成功。总线上的信息是以消息的形式调制成曼彻斯特码进行传送的。总共有10种消息定义,如BC至RT传输定义、RT至BC传输定义、不带数据字的方式指令定义等。消息由指令字、数据字和状态字组成,其中指令字结构如图2所示。

由如上结构可以看出,一个BC最多带30个RT,每个RT又可以分为30个子地址,并且通过此字结构就可区分是发送指令、接收指令还是方式指令。

2 控制系统数据监测总体设计

2.1 数据监测系统设计原则

要实现对该控制系统数据传输网络有效地监测,必须开发出智能化的、易用的、易维护、高可靠性且能够满足实际需求的监测系统。在系统设计中,需要满足以下要求:

(1) 数据采集方式的便利性。由于舰船空间的限制,不能安装大量的传感器和测试设备,而且对系统主干网络不能改动。

(2) 数据接收的实时性。数据监测的一个重要特征就是在对总线数据监测期间,能实时接收到总线数据并保存。

(3) 可靠性和容错技术。监测系统的一个重要特性就是长时间可靠工作,还要避免系统瘫痪、数据丢失、漏采误报等情况,而且系统本身的故障不能对被测设备产生影响。

(4) 良好的人机交互性。要求操作界面简洁明了,易于操作,减少现场的软、硬件的维护,提高系统的智能化和使用的灵活性。

2.2 数据监测系统硬件结构

该控制系统通过1553B 总线进行联系的设备有中央控制台、数据交换仪和导航系统中的部分设备,结构简图如图3所示。各设备通过数据交换仪连接组成系统的1553B网络结构,采用便携式工控机作为监控计算机,利用1553B总线三端耦合器接入网络。

便携式工控机和EP?H6273 PCI板卡如图4所示。EP?H6273是一款高性能的MIL?STD?1553B接口模块,可以应用于1553B总线系统的测试、仿真。该板卡提供了双通道的多功能模块,允许在同一时刻运行BC、BM和RTs的任意组合,可用于系统的测试或仿真等多种功能。

3 系统软件设计

3.1 软件流程及部分软件模块设计

1553B总线数据监测软件主要完成两个方面的工作,一是实现1553B总线数据的模拟通信,二是对总线数据进行监测并保存。软件采用Borland C++ Builder编制。

根据1553B总线的特点,软件设计首要实现的是最基本的通信功能,既能在工控机上实现BC、BM、RT功能,又能实现各功能模块的通信。软件设计总体框图如图5所示。

图5 软件设计总体框图

软件的主程序部分,通过中断判断诸如BC、BM或RT等需要响应的事件,对板卡的功能进行选择。

3.1.1 1553B总线远程终端RT

(1) 在设置RT模式时要求先对全局参数进行设置,全局设置包含:Eph6273_SetBroadcast()和Eph6273_SetSa31()。

(2) 调用API函数Eph6273_RT_Init()初始化RT操作模式,初始化操作设置RT的初始值和分配存储器。

(3) RT设置

① 设置RT地址Buffer,在Eph6273_RT_AbufWrite()函数中设置BUSA、BUSB允许位,同时设置RT状态字和BIT字;

② 设置RT控制Buffer,调用函数Eph6273_RT_ CbufWrite();

③ 初始化RT数据Buffer,Eph6273_RT_MessageWrite()函数设置中断允许位和写入发送数据。

(4) 调用函数Eph6273_RT_StartStop()开始RT仿真。

(5)应用程序在RT开始仿真后,调用函数Eph6273_GetMessageid()将memory地址转换成RT Buffer地址。利用函数Eph6273_RT_MessageRead()从Memory Buffer读RT消息。

(6) 利用函数Eph6273_RT_StartStop()停止所有RT的仿真。

3.1.2 1553B总线控制器BC

总线上所有消息的传输都由BC激励和控制,是总线通信的开关。因此,其软件设计的好坏关系到整个系统的性能。其设计思路为:

(1) Eph6273板卡初始化

调用API函数Eph6273_Init()。

(2) 初始化BC

调用API函数Eph6273 _BC_Init()初始化BC设置,并进行Minor Frame频率设置、不响应时间设置、最迟响应时间和重试条件设置。

(3) 初始化BC消息

调用API函数Eph6273_ BC_MessageWrite()初始化消息队列。

(4) 定义帧

(5) 启动BC

通过调用函数Eph6273_BC_StartStop()开始BC操作,flag为1时开始BC操作。

BC也可以执行简单的OneShot模式,在OneShot模式中只发送一次指定的消息队列。在执行OneShot模式时要求设置OneShot参数Eph6273_BC_OneShotInit()和执行OneShot消息Eph6273_BC_OneShotExecute()。

(6) 组织RT发送及接收信息

通过调用函数Eph6273_BC_MessageRead()和Eph6273_BC_MessageWrite()读写信息。

(7) 停止BC操作

调用Eph6273_BC_StartStop()函数结束BC操作。

(8) 停止线程运行

通过调用函数Eph6273_Close()停止所有正在运行的线程。

3.1.3 1553B总线监视器BM

BM模式提供了监视和记录所有消息的功能,也可以过滤掉某些消息。同时BM提供了消息的时间标记和命令、数据、状态的错误信息。

BM记录所有出现在总线上的消息。BM存储所有收到的命令、数据和状态到BM数据存储区,每个BM Buffer可以存储10 240个BM消息,BM Buffer是一个首尾相连的存储空间,当存储到Buffer尾时自动从头开始,此时将覆盖原来的消息。Microcode根据消息状态和BM中断允许WORD,判断是否将消息指针加入中断队列。BM可以在中断控制下工作,Windows在响应中断时可以获得中断类型和存储器地址,用Eph6273_BM_GetMessageid()函数将存储器地址转换为BM Buffer消息地址,应用程序用Eph6273_BM_MessageRead()从存储器读BM消息。

Microcode在存储BM消息到BM Buffer时,不判断存储器是否有数据和是否已被读出,在应用程序中要考虑消息接收速度和BM消息访问速度,如果消息访问速度远小于消息接收速度,将会出现丢失消息的可能。

在BM初始化时,默认是记录所有消息,也可以过滤掉不关心的数据。过滤是基于命令字处理的(在RT to RT是基于第一个命令字的)。Microcode可以禁止/允许各类消息存储到BM Buffer中,另外过滤选项可以设置记录指定消息的第几条。

应用程序也可以指定一个或多个触发条件。在BM触发之前,Microcode不记录1553B总线上的消息,当触发条件满足时,Microcode开始记录BM消息。

对于每个BM消息,Microcode存储以下几项到BM Buffer中:消息中的每一个WORD(命令字、数据字、状态字);消息时间标记(命令字的Parity Bit出现时的时间点);消息传输中的错误信息,另外,BM测量RT的响应时间,同时存入到BM Buffer。

BM接收的消息是以命令字开始的,不同的消息类型在命令字后的内容不同,可能是数据字、状态字,甚至命令字。在此设备中,所有这些都在Microcode中处理,对于应用程序来说处理都是统一长度和固定格式的数据块API_BM_MBUF。

BM软件的设置如下:

(1) 用Eph6273_Init或Eph6273_AutoConnectFirst函数初始化模块,在调用所有的函数之前,都需要先初始化模块。

(2) 调用Eph6273_BM_Init()函数,此函数设置BM操作。

在默认操作下Microcode记录所有消息,可以根据需要过滤掉不关心的问题。利用函数Eph6273_BM_FilterWrite()可编辑过滤消息,此函数可以过滤掉RT address/Sub address/ receive?transmit flag相匹配的消息。默认情况下BM记录所有信息,而不必调用Eph6273_BM_FilterWrite()函数。可以通过API函数Eph6273_BM_TriggerWrite()改变触发条件,当触发后Microcode开始记录消息。默认的触发条件是从第一条消息开始记录。

(3) 所有设置完成以后调用Eph6273_BM_StartStop()开始记录BM消息(根据触发条件),当收到消息时根据中断条件产生中断。消息记录从触发后开始,一直到调用[Eph6273_BM_StartStop()]停止记录或Eph6273_API_ Close()。

总线监视器(BM)软件设计流程图如图6所示。

图6 总线监视器(BM)软件工作流程图

3.2 用户界面设计

用户界面包含界面管理。界面管理是将系统中各个子系统功能模块之间有机结合起来的“纽带”,负责系统中各个子系统之间的协调控制和调度。用户可以通过友好的人机界面,自然语言环境下利用键盘、鼠标向系统、计算机发出各种指令完成对总线上的信号的监测,并在硬盘上进行存储。所设计的软件主界面如图7所示。

图7 1553B总线监测软件主界面

软件启动后,进入图7所示界面。在当前界面单击“连接设备”,若弹出对话框显示“Connect Successfully”,则代表设备连接成功,接下来即可进行数据监测。用鼠标单击“BM初始化”,开始监测总线数据。在BM显示窗口里显示监测到的总线数据,而在右侧BM小窗口显示的是消息类型、命令字、中断状态、RT状态、时间等信息。

4 数据监测与分析实例

实船数据的获取是检验所研究的1553B数据监测与分析软件工作正常与否的重要方面之一。利用1553B总线三端耦合器,将安装有EP?H6273 PCI板卡的便携式工控机置于实船被监测系统网络中,通过上述数据分析软件对采集到的1553B数据进行采集、显示及保存。试验流程图如图8所示。

由于选用的EP?H6273板卡是多功能的,通过软件还可以在便携式工控机上实现1553B总线数据的仿真传输功能,即同时实现BC、BM、RT间的数据通信。

以某采集过程为例:通过在中央控制台手动输入参数,获得导航系统经由数据交换仪与中央控制台之间进行通信的数据包A1,A20。由相关资料可知,数据包A1是以1 Hz的频率发送的,其内容为:日期、定位时间、本船纬度、本船经度、流速、流向、位置误差、航向误差、绝对速度误差、相对速度误差、龙骨水下深度等;数据包A20是以20 Hz的频率发送的,其内容为:本船航向、航迹、横倾、纵倾、指北速度分量、指东速度分量、绝对速度、相对速度、定位时间、校验码。试验通过改变某一参数来确定与之对应的代码,之后多次改变输入参数,进行多次采样。所采集到的数据以文本格式导出并保存,便于利用相关软件进行数据处理。

由监测到的数据得知:以0200为标志符的数据包出现20次后,紧接着出现一个以0100为标识符的数据包,由此知以0200为标志符的数据包就是A20数据包,以0100为标志符的数据包就是A1数据包。

总线数据代码与实际参数的对应关系包括许多数据常数,可分为经纬度常数、角度常数、距离常数、速度常数、时间常数等。从数据格式的表示可知,数据的范围为0~ffff。对不同类别的数据可通过一定的比例因子进行转换表示。如下式所示:

[y=a?i=14xi?116i]

式中:[a]为比例因子;[xi]为十六进制数据的从左边起第[i]位数;[y]为十进制数。

通过对键盘输入参数与相应存储器的数据比较进行分析。比如,求取纬度与其总线数据代码关系的方法时,根据采集到的数据,利用Matlab工具编程可得到比例因子[a=180°×2-31。]依次类推,可计算出大部分常数的比例因子,如纬度、经度、流速、流向、位置误差、航向误差、绝对速度误差、航向、航迹、横倾、纵倾等。

5 结 语

本文通过对1553B通信系统的组成及数据传输指令的分析,设计了一种1553B总线数据监测与分析的方法,在此基础上研制了数据监测与分析软件。以某型船舶控制系统为实例,对其1553B总线数据进行了监测、显示及保存。通过分离出有效数据并加以分析研究,得到了通信数据的报文格式、编码规律和具体含义,有助于实现系统各分设备之间的信号调试与检测等工作,并为处理其他类似问题提供了有益借鉴。

参考文献

[1] 熊鹰.MIL?STD?1553B总线控制器在SST中的应用[D].北京:中国科学院研究生院,2002.

[2] 杨春英.1553B数据总线的设计[J].舰船科学技术,1998(5):61?65.

[3] 石红梅.用FPGA实现1553B总线接口中的曼彻斯特编码器[J].单片机与嵌入式系统应用,2004(4):42?46.

[4] 侯青剑,缪栋.1553B总线及其在测控网络中的实现[J].计算与测量技术,2005,32(3):24?26.

[5] 刘云峰,缪栋,刘凡军.1553B总线及其在电液伺服系统中的应用[J].机床与液压,2004(9):106?108.

[6] 王锦超,李飞,沈明玉.网络数据包的协议分析算法设计与实现[J].计算机技术与发展,2006,16(4):30?32.

总线 数据 消息