基于MIL-STD-1553B的通信原理教学软件设计与开发

2023-06-02 06:33周琪栋江志东班海丽
计算机测量与控制 2023年5期
关键词:消息总线原理

周琪栋,江志东,张 弟,周 浩,班海丽

(1.中国人民解放军海军航空大学青岛校区 航空电子工程与指挥系,青岛 266041;2.中国人民解放军91188部队,海口 571122)

0 引言

MIL-STD-1553B总线是第三代战机航空电子系统的“骨架”和“神经”,具有实时性好、可靠性高等诸多优点,在第四代战机中也有局部应用[1]。1553B总线标准自发布以来,逐渐被广泛应用于飞机综合航电系统、外挂物管理与集成系统、飞行控制系统,并逐步扩展到军用车辆、船舰、航天等领域[2]。学习和掌握1553B总线的相关知识,如通信原理、协议组成、传输控制等,是深入学习联合式航电系统的基础。

然而,目前现有1553B总线实验教学系统对理论教学的支撑不足,不能满足学员综合能力和应用创新能力的高阶性培养需求。另外,一线部队维护保障人员对航电总线的理解和维护停留在较浅层次,现有实验系统无法支撑对部队开展有关三代战机主总线的深层原理培训。

针对以上不足,设计开发一款初学者易上手、实验科目难度适宜、实验内容层层深入、人机交互界面友善的1553B总线通信原理演示系统软件尤为重要。基于该软件,可以帮助使用者建立三代机联合式航电系统整体概念,从而满足院校理论与实验辅助教学,同时可为部队开展培训提供支撑。

1 需求分析

目前市面上鲜有用于辅助1553B总线原理教学的实验系统,几乎没有专门针对教学需求开发的1553B总线通信原理实验软件。而1553B总线模块自带的软件系统主要用于其基本功能的演示验证,存在的主要问题如下:

1)部分软件功能单一,不满足1553B总线原理展示及多层次高层次学习的需求,仅能进行简单的通信演示,可视化界面不够友善,其他功能则需要进行二次开发。

2)部分软件功能冗余,操作复杂,且人机交互体验差,缺乏相应提示信息,配置调试过程异常繁琐,不能突出把握学习重点,不能正常投入教学使用。

3)无科目化实验内容设计,不满足分层次学习实践的需求,而且无法开展综合性实验项目,不便于学习者建立联合式航电系统的整体概念。

国内外航空类院校面临无合适1553B总线系统教学辅助软件用的尴尬境地,供求失衡日益突出。无法满足院校学生综合能力与应用创新能力的培养,这是一个需要不断进行学习-思考-实践-再学习-再思考-再实践的过程[3]。基于此,本文设计并开发了基于MIL-STD-1553B的1553B通信原理教学软件。

2 1553B总线通信架构简介

1553B总线拓扑架构和协议结构是实现本文所开发教学软件的理论基础,总线硬件模块是本文教学软件实现的底层硬件基础,上位机开发环境是本文教学软件的开发工具。

2.1 1553B总线拓扑架构

1553B总线系统主要由四大部分组成[4]:

1)总线控制器BC(BusController):负责全局指令发送。用于总线消息传输的控制、扫描和监视[5]。

2)总线监视器BM(BusMonitor):由具备监控功能和信息传输功能的设备担任,监视总线上传输的信息。

3)远程终端RT(Remote Terminal):各子系统与总线网络间的通信桥梁,在BC的指令控制下传输数据。

4)传输介质(双绞屏蔽电缆):负责总线连接组件之间、总线连接组件和终端之间的信号传输。为提高可靠性,一般为双余度(总线电缆A、B),故障时可余度切换。

总线系统整体拓扑架构如图1所示。

图1 1553B总线拓扑架构

2.2 1553B总线协议结构

1553B总线通信系统分为5层,自顶向下分别是应用层、驱动层、传输层、数据链路层和物理层[6]。在5层协议模型中,其中应用层和驱动层位于各航电子系统计算机中,传输层和链路层位于总线接口模块(MBI)。

1)应用层。应用层是通信系统的最高层,它实现通信系统的管理和解释功能,包括系统的启动、维护、重构、终止总线通信等功能。

2)驱动层。驱动层是实现主机应用软件与MBI间的接口控制,它实现控制MBI卡的初始化、启动、运行、停止、连接、脱离连接、启动自检、状态监视和数据传输等功能。

3)传输层。传输层用于控制多路数据传输总线上的数据传输,在担任总线控制器的MBI板中实现。传输层规定了在物理层上每条消息的发出顺序。除此之外,传输层还负责故障处理、双余度总线的管理切换及实时时钟RTC同步等。

4)数据链路层。数据链路层规定了命令/响应型介质访问控制协议,定义了3种字格式和十种消息格式,控制每条消息中各类字的传输顺序。

5)物理层。物理层包括物理介质(电缆系统)和处理物理介质上位流的传输,规定了编码格式、数据率、电气特性等,确保只有满足规定物理传输特性的信号才能被传输到数据链路层。

1553B总线通信结构核心内容由编码方式、字格式、消息格式及消息传输四部分构成。在1553B总线上进行数据传输时,字是消息组成的最基本单元,协议字分为三类:命令字、数据字、状态字[7],每个字20位,每一位采用双相曼彻斯特Ⅱ型编码。每种字的前3个比特位为同步头,接着是16个比特位的有效信息数据,最后1位是奇偶校验位[8-9]。

1553B总线定义了数据传输、广播消息(Broadcast)和方式控制(Modecode)三类消息传输格式。数据传输消息格式有3种,包含BC→RT、RT→BC及RT→RT,所有传输均是在BC的控制下完成的[10]。总线传输的消息之间的最小间隔时间为4.0μs,远程终端响应总线控制器有效命令字的间隔时间为4.0 μs~12.0 μs,如果响应时间超出界定值14 μs,则应该做超时处理[11]。在总线上传输的按一定更新频率发送的消息称为周期消息,其余为事件消息。

2.3 1553B总线硬件模块

CAV-1553B-USB为一款便携式USB2.0接口的双通道双冗余的1553B总线适配器,可根据不同的配置实现多种1553B功能,如1553B总线设备和系统的仿真、测试、监控。

在应用时,可以同时实现一个BC、多个RT(最多31个)的通信[12]。其支持1553B总线信号波形采集,可通过测试端口测取总线上传输的实时波形,通过对波形解析,加深对总线通信的理解。本文所使用的CAV-1553B-USB模块如图2所示。

图2 CAV-1553B-USB模块

2.4 开发语言及开发环境

基于通信原理教学软件设计与开发的现实需求,选择以C作为上位机软件开发语言。采用C语言可以方便快捷地实现软件高效率开发,并且质量更高,后期维护更为简单[13]。软件集成开发环境为支持C语言的IDE。IDE开发工具相比较而言更为实用并且功能全面且强大,提供的统一开发平台大大降低软件开发难度,可以实现可视化桌面应用程序开发。

3 1553B通信教学软件总体设计

结合1553B总线通信原理教学需求,以软件工程思想和分层设计思想为指导,立足于上位机软件可视化界面友善、实验项目层次清晰、实验内容合理且具有针对性等特点,设计该教学软件的功能框架和总体开发方案。该软件以期能够满足教学需求并实现高效率教学,贴近日常学习,聚焦实际教学,具有显著创新型和广泛实用性[14]。

3.1 功能框架设计

以系统工程思想和分层设计思想为指导,为满足实验内容先易后难,学习过程层层深入的要求[15],将该软件设计分为三层功能模块:

第一层设置基础实验项目,可一键启动实验并配合使用示波器测取波形,结合配备的理想参考波形进行学习及分析验证;

第二层设置原理实验项目,可自行配置消息参数实现消息传输以调动实验,实现典型消息格式等数据传输内容的深层次高质量学习,进一步加深对1553B通信原理的学习;

第三层设置综合实验项目,学员可通过多消息通信掌握大小周期、事件消息等消息调度内容,并可进行余度备份切换、消息延迟重发等通信机制及故障处理机制的学习。

软件的运行流程如图3所示。

图3 软件运行流程图

3.2 开发方案设计

1553B总线通信教学软件本质为上位机软件,通过板卡提供的基本API与底层的1553B总线模块(即本软件开发所基于的CAV-1553B-USB模块)进行交互。在Visual Studio 2017平台搭建Windows窗体应用程序,调用相应动态链接库以驱动底层1533B硬件[16-17],完成软件各项功能。

4 1553B通信教学软件实现与验证

本章首先对软件主界面实现进行描述,然后依次对基础实验、原理实验及综合实验的实现与验证进行论述。

4.1 软件主界面

主界面具有实验引导功能,可以根据学员的需求,实现其到基础实验页面、原理实验页面及综合实验页面的跳转,以及可以实现从3个实验页面返回主界面功能。主界面主题鲜明,控件元素设置合理且具有提示信息,人机交互程度高,便于学员高效操作使用。

4.2 基础实验实现与验证

1553B总线通信原理涉及到编码方式、字格式、消息格式、消息调度、通信机制、故障及异常处理机制等多元内容,基础实验项目预期实验效果即为促进学员对编码方式的理解,强化对字格式的认识,加深对典型消息格式的了解,为学员后续深入学习1553B总线通信原理打下坚实基础。设计并开发出便捷操作,即学员可在不配置相关参数的前提下,通过一键启动的形式调用演示系统软件固定写好的参数来成功启动实验,直接得到相关实验结果。

实验项目涵盖BC→RT、RT→BC、RT→RT、Broadcast及Modecode消息通信实例。

4.2.1 BC→RT消息格式实验实现与验证

BC→RT消息格式类型实验所实现的总线通信实质为总线控制器BC向远程终端RT发送数据消息。根据1553B消息格式,BC→RT的消息是以BC向RT下达接收命令字开启,然后BC发出一系列数据字,接收方RT收到BC的数据字,校验后向BC发出接收状态字表明数据已成功接收。

基于实验开发平台,BC→RT消息格式实验实现步骤如下:BC初始化→分配MsgBuffers→定义并写入BC Block与 MsgBuffers→启动BC→初始化并使能RT→分配SA Buffers→启动RT。在完成这些步骤后BC→RT消息开始传输,消息传输完毕后关闭BC与RT。对其中重要的步骤论述如下。

BC Block配置写入:要实现1553B总线通信,任何消息的传输都需要进行BC Block的配置写入。配置其结构并写入板卡时,需设置不同的标识符才可调用模块实现不同消息格式传输。如设置BC→RT消息格式时,需设置标识符为BC_BLOCK_TYPE_MSG_BCRT,字符值为“0x00000001”。

线程定时器设置:为了让消息持续不断发送,方便使用示波器测取波形[18],一键启动实验后,需要周期性循环进行消息发送。本实验开发中设置了一定时间间隔的线程定时器,以循环调用发送消息的函数。

BC→RT消息格式实验的界面如图4所示。

图4 BC→RT消息格式实验界面

此界面为主界面选取的“基础实验”项目的跳转,可单击“启动”按钮进行BC→RT消息的一键配置及传输。传输过程中,使用示波器通过测试点测取到实时传输波形如图5所示,总线监视器监控到实时传输的消息如图6所示。

图5 BC→RT消息格式实时传输波形

图6 总线监视器监控消息

可将测取到的传输波形图与界面中的消息格式参考图、字格式参考图、理想波形参考图进行对比验证。实时波形图中的波形可大致分为三段,分别对应命令字波形、数据字波形、状态字波形。可解析出此消息为BC发送接收命令字至RT01,然后发送数据字,经一定消息间隔后,RT01发送状态字至BC,符合BC→RT消息格式。我们以中间段的数据字波形为例进行分析,前三位为同步头,最后一位为奇偶校验位,其余16位可读出数据字为“0x0505”,与预先写入BC Message Buffer的数据一致。

总线监视器监控到总线上实时传输的消息,命令字为“0x0821”,表示终端设备RT01子地址SA01接收1个数据字,紧接着是数据字“0x0505”,终端地址RT01发出的状态字为“0x0800”。完全符合示波器测取的实时波形,与软件实验界面设置的消息格式一致。

4.2.2 基础实验其余消息格式实验实现与验证

RT→BC、RT→RT、Broadcast及Modecode消息格式实验开发流程与BC→RT开发流程类似。根据选取的消息格式,将BC Block和 BC Message Buffer写入不同参数实现通信。

在RT→BC、RT→RT实验开发步骤中,除了与BC→RT开发流程类似的过程,还需要进行RT SA Buffer的内存分配和配置写入。本实验开发中主要配置的参数如下:配置输入检测m_legalWc为“0xFFFFFFFF”表示输入数据合法;中断使能字m_intEnable为“0x00010000”表示记录相应的中断;32个16bit数据data_wds[32]中data_wds[0]设置为“0x1111”,其余31个数据暂不设置,使用默认“0x0000”。

RT→BC、RT→RT、Broadcast及Modecode消息格式界面及实验功能验证与BC→RT界面及验证类似,不再赘述。

中世纪奠定了近代西方市民社会的基础。 首先,出现了政治国家和社会组织相分离的现象。 在这一时期基督教产生,它反对古典时期赋予国家道德上的认可,认为国家是一种压迫性的政治组织,为反对这种压迫,教会便以神权为基础将自己发展成了社会组织,逐渐地以神权自居的教会所形成的社会组织从以国家为代表的政治组织中分离了出来。 其次,商品经济的不断发展,一批与新的生产关系有关的“市民”在封建制度内部得到了培育。 十一世纪,西欧商品经济带来生产力的提高,手工业和农业产生了分离,专职工商业者离开农村后聚集起来形成了工商业“特区”,社会分工产生了简单的交换关系。

4.3 原理实验实现与验证

人机交互技术作为人与计算机之间信息交流的接口和以人为中心指导系统开发的方法论,能够使系统更好满足用户功效性和情感性的需求,提高用户与计算机之间的交互质量和用户体验[19]。

按照人机交互的指导要求,区别于基础实验的一键操作,原理实验在界面上设置鼠标和键盘的输入端口,使学员可以自行配置相关消息通信参数,以便调动学员积极性,实现更高效率的学习,并且教员可使用该项目设置问题以检验学员掌握程度,从而及时对教学做出调整。

4.3.1 原理实验实现

原理实验项目承上启下,可进一步有效强化学员对1553B总线通信原理的学习,并为后续综合实验项目的学习做准备。原理实验项目包含BC→RT、RT→BC、RT→RT、Broadcast消息通信实例。在原理实验项目中,学员可以自行选择不同的消息通信类型,选择相应参数以配置命令字,启用数据编辑板块进行相应传输数据的编辑,最终完成消息通信参数配置以完成实验。实验开发依次包含两大工作:通信参数准备工作和消息通信实现工作。

通信参数准备工作详细步骤如下。

1)通信消息类型写入:实现通信消息类型配置,主要是Label控件与commoBox控件配置使用。使用commoBox控件选择BC→RT、RT→BC、RT→RT及Broadcast消息传输类型之一。

2)命令字参数写入:命令字的16 bit有效信息数据中,5 bit为远程终端地址RT,1 bit为收发参数RT,5 bit为子地址SA,5 bit为数据字个数WC。通过commoBox控件依次设置以上4个参数的字符串,将字符串转换为16位无符号整数,写入硬件板卡CAV-1553B-USB中。

3)通信总线及帧周期选择与写入:1553B总线有BusA总线和BusB总线两条总线,当其中一条总线出现故障时可自动切换到另一条总线上进行通信[20]。通过radioButton控件选择BusA或BusB总线任一进行通信。选择板卡CAV-1553B-USB的子帧模式进行通信,设置其帧周期即可实现周期通讯。

4)编辑传输数据:单独设置数据编辑页面,具有输入限制、数据转换、一键清除等功能方便学员快速输入。编辑框限制只能输入合法的四位二进制数据,需要实现textBox无法输入字母以及无法输入超过4位数字。数据编辑部分设置二进制数据输入端口,需要实现4个4位二进制数据转化为1个4位十六进制数据,从而写入消息传输程序中。为了满足学员输入数据后便捷清零的需求,实现学员高效率使用本辅助教学软件,故在数据编辑功能中设置“清零”按钮。“清零”功能的实现主要借助button控件及groupBox控件。

原理实验消息通信的实现工作与基础实验中所述步骤基本一致,不再赘述。

4.3.2 原理实验验证

结合原理实验项目界面,并选择BC→RT消息通信实例进行参数配置,并将验证过程进行展示。其余消息通信实例配置及验证过程与之相似,不再论述。

BC→RT消息通信实例参数配置界面如图7所示。选择BC→RT消息时由于BC仅需要下达接收RT命令字,因此“命令字2”将变灰不可用。学员可根据场景配置“命令字1”以定义接收RT的地址、子地址SA和传输的数据量WC。假设配置接收RT地址为10,SA为24,WC为4。选择“BusA”通道,配置帧周期为100ms,点击“启动”。点击“数据编辑”,进入数据编辑界面,依次进行4个数据字内容的编辑,将前4个数据字设为“0x1111”、 “0x2222”、“0x3333”和“0x4444”,如图8所示。

图7 BC→RT消息通信实例参数配置界面

图8 数据编辑界面

完成数据编辑之后,点击“确定”,软件跳转到参数配置界面。点击配置界面的“运行”启动通信,软件按照所选消息格式和数据字调度板卡开始消息传输。传输过程中,使用示波器通过测试点测取到实时传输波形如图9所示,总线监视器监控到实时传输的消息与基础实验类似,不再赘述。

图9 BC→RT消息格式实时传输波形

按照曼彻斯特II编码解析,实时波形依次为:0x5304(命令字),0x1111、0x2222、0x3333、0x4444(4个数据字),0x5000(状态字)。符合BC向终端RT10的子地址SA24传输所设置的4个数据字,并收到RT10发出的通信正常状态字反馈,与软件原理实验界面配置的消息类型和消息数据内容一致。

4.4 综合实验实现与验证

设计开发基础实验和原理实验,并不能完成1553B总线通信原理完全意义上的教学。基础实验和原理实验可以辅助学员理解1553B总线命令响应的控制机制,实现的是任意两个终端之间的通信,而1553B总线实现的是多个终端在同一套总线上的有序通信,对于如何确保多个终端在同一套总线上通信不冲突毫无涉及。

综合实验项目的目的就是辅助学员理解1553B总线的通信机理,即采用大小周期的时分制调度机制。在实际通信过程中,有时还会涉及到非周期消息的触发,而且根据不同情况也会出现余度备份切换和消息延迟重发等机制。因此设计开发能够实现大小周期、非周期消息等消息调度教学内容,实现深层次余度备份切换和消息延迟重发等通信协议和故障排除机制教学功能,能够帮助学员建立三代机联合式航电系统整体概念的综合实验项目就显得格外重要。

4.4.1 综合实验实现

综合实验项目实现总线消息通信实际内容,按周期传输固定消息,并且引入的非周期消息发送,支持学员自行触发非周期消息,学员可通过多个终端界面读取每个终端实时接收到的消息,通过每个终端实时接收到的消息以分析得出每个消息的消息周期,并推测出大小周期。通过设置典型故障,可辅助学员理解故障处理机制,如某终端子系统一根总线断开,消息会在另一条备份总线上重发;如果将某个终端关闭,模拟终端故障,消息可在当前通道重发、以及切换通道重发。

综合实验项目是在参考某型战机航电系统拓扑结构的前提下,通过开发实现一个总线控制器BC(显示控制管理子系统DCMS)、5个终端设备RT(RT1为雷达子系统RD;RT2为外挂物管理子系统SMS;RT3为惯导子系统INS;RT4为大气数据子系统ADC;RT5为任务计算子系统MC)不同子界面,多终端子系统同时启动、配合实现该型战机完成一次空空火力打击消息传输全过程[21],有助于学员对三代机联合式航电系统整体概念进行理解。假设战机执行某次空空火力打击任务过程中,所需传输的总线消息如表1所示。

表1 一次空空火力打击总线消息表

参照战机的1553B传输层消息调度方式对以上总线消息进行调度排列,形成的总线消息调度时间轴如图10所示。

图10 一次空空火力打击总线消息调度

一次空空火力打击中一个大周期(240 ms)传输的消息约40条(Msg1--Msg12消息流向接收发送的子地址不同而会重复发送多条),类型可分为BC→RT、RT→BC、RT→RT,根据消息周期不同形成消息链表。

所有消息传输都在BC(显示控制管理子系统DCMS)的管理下完成,软件中通过应用层算法模拟传输层的消息调度,首先计算大小周期分别为240 ms和30 ms,然后依据优先级(非周期消息优先级高、周期消息优先级相同)、消息编号、消息周期生成静态总线表,供BC依照表进行调度[22]。实现时,需将生成的总线表配置到BC BLOCK并写入板卡中。其中非周期消息需要添加触发条件并定义优先级进行发送,与实际应用需求一致。

5个终端系统RT也需依次进行发送或接收消息的配置,需依次分配和配置子地址的SA BUFFER,并写入板卡。

4.4.2 综合实验验证

在显示控制管理子系统BC界面上,点击“启动”按钮可启动DCMS。在各接收RT均处于启动状态时,点击“发射”按钮即可触发非周期消息的发送。通过下拉菜单可依次选择不同消息进行接收并显示到下方消息框中。右侧状态框可对操作过程进行记录,如图11所示。

图11 综合实验项目BC端界面

这里以显示控制管理子系统(BC)与雷达子系统(RT1)通信为例演示通信结果,其余子系统过程相似。

雷达子系统(RT1)界面如图12所示。子系统界面的下拉菜单“选择接收消息”可筛选不同发送端发来的消息。此时选择的是由惯导子系统(RT3)发送、雷达子系统(RT1)接收的目标跟踪指引消息Msg6(消息RT3_3→RT1_2中的3和2代表子地址),可以发现消息周期约为60 ms。

图12 雷达子系统界面接收目标跟踪指引消息

将各子系统之间的所发的第一个大周期(<240 ms)进行消息次序统计,与理论上分析所得的消息次序(图10)一致,且每条消息的周期与预先设置(表1)一致,验证了综合实验设置的消息调度算法,为学员掌握这一难点提供实践手段。同时,总线监视器上监控到的总线上传输的所有消息,分析其消息序列和消息中的数据字值,与总线消息表一致。

综合实验中还模拟了1553B总线通讯异常,仿真了消息延迟重发、总线余度切换和终端下线功能。所实现功能为:当消息首次传输异常(状态字响应时间超过14 μs),则进行一次消息延迟重发;若重发后恢复正常则认为是偶然故障,进行弹窗提示;若首次重发后依然通信异常则将切换到余度线缆重发,并在控制器端提示。若余度总线切换后发送也出现传输异常,则调用板卡API使终端下线,并进行弹窗提示。

通过综合实验,学员将在1553B总线单条消息传输的基础上,学习多条消息的时分制调度策略。通过一个模拟机载应用实例,彻底掌握抽象的1553B总线传输层调度策略,达到预期的进阶学习效果。

5 结束语

本文结合1553B总线通信原理实际教学需求,通过三类实验项目引导学员层层深入,有效达到掌握1553B总线通信原理的教学目标,满足深层次、高效率的教学需求。

在软件使用过程中,将结合新的教学需求不断对其进行优化和迭代。后续可进一步优化界面,完善各个实验功能,并可将综合实验中的通信数据设为具有实际意义的物理量,添加ICD转换这一过程。另外,还将完善各子系统的二级仿真界面,进一步贴合实战实装,达到更好的教学效果。

猜你喜欢
消息总线原理
了解咳嗽祛痰原理,有效维护健康
一张图看5G消息
平均场正倒向随机控制系统的最大值原理
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
化学反应原理全解读
通信原理教学改革探索
多通道ARINC429总线检查仪
消息
消息