吴佳驹 闫建国 遆好建
摘 要: 1553B总线广泛应用于国内外航空电子系统。在简要介绍1553B总线通信的基础上,对1553B总线在飞控半物理仿真平台中实现总线数据调度、监视、存储及终端模拟等功能进行了详细的说明。目标机采用VxWorks实时操作系统,给出软件典型模块的设计方法,该设计方法提高了总线数据传输效率,显著减小总线负载率。仿真结果显示,1553B总线调度软件在飞控半物理仿真平台中有效实现预定功能,工作性能稳定,为研究1553B总线在其他半物理仿真平台中的应用和移植提供参考。
关键词: 1553B; 飞控半物理仿真平台; 软件设计方法; 移植
中图分类号: TN967?34 文献标识码: A 文章编号: 1004?373X(2015)11?0020?04
Method of 1553B bus scheduling based on flight control semi?physical simulation platform
WU Jia?ju, YAN Jian?guo, TI Hao?jian
(Automation College, Northwestern Polytechnical University, Xian 710129, China)
Abstract: 1553B bus is widely used in domestic and international avionics systems. On the basis of a brief introduction on 1553B bus communication, the implementation of bus data scheduling, monitoring, storage and terminal emulation functions are described detailed based on flight control semi?physical simulation platform with 1553B bus. VxWorks real?time operating system is adopted by target machine. The design method of software typical module is given, which improves the efficiency of bus data transmission and reduces the bus loading rate significantly. Simulation results show that the intended functions can be implemented in flight control semi?physical simulation platform with 1553B bus scheduling software effectively, and its working performance is stable. It provides a reference for studying of 1553B bus applications and transplanting in other semi?physical simulation platform.
Keywords: 1553B; flight control semi?physical simulation platform; software design method; transplanting
0 引 言
飞控半物理仿真平台将真实飞机子系统的一部分以实物方式引入仿真回路,其余部分以数学模型描述,进行实物和数字联合仿真,为飞行控制与管理系统的设计提供了地面测试环境,缩短项目的研发周期,减少项目的研发经费。
在飞控半物理仿真平台中,1553B作为一种串行数据总线标准负责飞控计算机与其余终端设备进行数据通信。相比ARINC?429,ARINC?629,SCI,AFDX,HSDB等机载数据总线,1553B总线具有如下突出优点:线性局域网络结构、冗余容错能力、支持“哑”节点和“智能”节点、高水平的电器保障性能、良好的器件可用性、实时可确定性[1]。
1 1553B通信系统组成
从通信系统的角度,1553B总线可分为三种模式,通信系统组成如图1所示。
BC:总线控制器(Bus Controller)。对总线进行控制和管理,是所有消息的调用控制者,负责发送命令、参与数据的传输、接收状态响应和监测总线系统。
BBC:备用总线控制器(Backup Bus Controller)。当总线控制器故障时,备用总线控制器开始工作,与总线控制器实现的功能一样。
RT:远程终端(Remote Terminal)。总线上挂载的负载,通过总线进行各个远程终端之间的信息交流,对从总线上控制接收到的有效命令做出响应,并在一定时间内回送状态字,完成相应动作。
BM:总线监视器(Bus Monitor)。监听和记录总线上传输的命令和数据的终端,受BC控制,通过设定相应参数,可以记录特定类型的信息,不参与任何总线传输,只起到记录总线数据的作用。
1553B信息流由一串1553B消息构成,1553B规范中规定一个完整的消息包括命令字、数据字、状态字三种类型,所有1553B字都是20 b长,其中有效位为16位,每个字都为:
3位同步位+16位数据/命令/状态位+1位奇偶校验
同步和奇偶校验位被1553B硬件用于确定信息格式和数据错误。在同步位中(第1到第3位)1个半比特位为高电平,1个半比特位为低电平;命令字和状态字的同步位相同,先高电平再低电平;而数据字则相反,先是低电平再高电平[2]。三种字结构如图2所示。
2 系统拓扑结构
1553B总线设计为多总线拓扑结构,其硬件组成包括:总线耦合器、总线接线器、总线线缆和综合设计在相应设备中的接口板卡,两条1553B总线电缆实现各终端设备A、B通道的物理连接,各终端均采用变压器耦合方式挂接在1553B总线上[3]。
飞控半物理仿真平台采用分布式仿真系统布局设计,同时具备独立仿真和联合仿真的能力。各分布式仿真系统由综合管理计算机、飞控计算机和其他终端设备组成,拓扑结构如图3所示。
仿真环境下,综合管理计算机作为BC,其他终端作为总线上的RT,BC通过总线调度程序对各终端进行调度。飞参记录器作为总线上的BM,负责监控飞控半物理仿真平台中1553B总线上的数据通信,并进行通信数据存储,通过对存储文件进行解码可以还原整个通信过程。
3 总线控制器软件设计
鉴于飞控半物理仿真平台对实时性和可靠性的严格要求,本飞控半物理仿真平台的下位机使用VxWorks嵌入式实时操作系统[4]。
现今,国内外有关1553B的文章仅仅介绍总线控制器和远程终端的单独软件流程,而半物理仿真试验的功能往往需要基于两种单独软件流程拓深来实现,本文给出半物理仿真试验中软件典型模块的设计流程。
实际半物理仿真试验既有周期性消息的同步通信要求,又有非周期性消息的异步通信要求,同步通信与异步通信的组合调度方法对1553B总线的性能、负载率、稳定性产生重要影响,因此,合理的组合调度方法十分重要。
3.1 同步通信与异步通信的组合
在仿真过程中,异步通信是在有请求的时候插入到同步通信中,具有较高的实时性和重要性。因此,在周期性消息同步通信的同时,完成非周期性消息的异步通信有实际意义。
由于非周期指令发送的时刻由终端决定,总线控制器给外设终端周期性发送方式代码,相应的外设终端接收方式代码后,会返回一个矢量字。外设终端接收方式代码时有三种不同的类型:
(1) 外设提前将相应的矢量字写入缓存区
如果外设终端提前将矢量字写入缓存区,当BC发送方式代码到该终端时,该终端将会返回相应的矢量字,BC根据返回的矢量字执行相应的操作。
(2) 外设没有将相应的矢量字写入缓存区
如果外设终端没有向缓存区写入矢量字,当BC发送方式代码到该终端时,该终端将会返回一个默认的矢量字,BC接收到默认的矢量字将不做任何处理,转向下一数据帧的帧头。
(3) 外设向缓存区写入矢量字后未及时清除
如果外设向缓存区写入相应的矢量字,则BC根据返回的矢量字执行相应的操作。如果下一数据帧外设没有及时清除缓存区中的矢量字,则BC会继续收到此矢量字,从而不断执行此非周期性命令。
综合以上三种情况,如果要执行同步、异步混合通信,外设应提前将矢量字写入缓存区,BC周期性地向外设发送方式代码,对外设回送的矢量字进行判断,如果与预定的矢量字一致,则执行一次非周期性指令,然后转向下一帧调度数据,否则直接转向下一帧调度数据。此后外设将缓存区中的矢量字清除,下一数据帧BC接收不到相应的矢量字,BC执行一次非周期性调度指令。
周期、非周期组合调度程序流程如图4所示。
3.2 多个非周期性指令的调度方法
当同一个外设终端执行多条非周期性命令时,BC发送方式代码到对应的远程终端,远程终端回送不同的矢量字,BC根据矢量字执行相应的控制命令,可以采用以下两种方法执行多个非周期性指令的调度方法。
(1) 每一数据帧发送多个方式代码
如果某远程终端对应[n]条非周期性指令,每一数据帧BC发送[n]个方式代码,远程终端将回送[n]个矢量字,将这[n]个矢量字分别与该远程预定的矢量字进行对比。若与某个预定的矢量字相等时,BC执行相应的控制指令。
(2) 每一数据帧发送一个方式代码
每一个数据帧,BC向该远程终端发送一个方式代码,将回送的矢量字分别与预定的[n]个矢量字比较,当回送的矢量字与其中某一个矢量字相等时,BC执行相应的控制指令。
实际编程时,方法(2)总线负载率小、实时性高,调度子程序流程图如图5所示。
非周期调度时,BC和各远程终端的时间必须同步,即两边基于VxWorks的时间片设置需要相同,才能保证数据通信的同步性,否则会产生丢包、数据通信延迟等现象。
3.3 副帧数据的实现
进行飞控半物理仿真时,同一个地址往往交替发送某几类数据,即包含副帧数据。例如,综合管理计算机向某一终端发送的数据副帧数为2,即综合管理计算机将向该终端周期、循环地发送两类数据。
(1) BC发送副帧数据
BC向某一终端发送的数据在总线调度表中设置,人为改动创建的总线调度表,如果有两个副帧,BC交替执行对应的调度指令;如果有多个副帧,依次执行每个调度指令。此种方法满足飞控半物理仿真平台的数据调度。其他仿真系统中,如果BC向某一终端发送的副帧数非常多,创建中断子程序,BC每执行一个数据帧便进入中断子程序,根据进入中断子程序的次数决定执行对应的副帧数据。
例如,BC向某一终端发送m帧数据,中断子程序执行次数为n,n%m∈[0,m-1],共m种不同的余数,因此该时刻BC应该执行((n%m)+1)条副帧数据。
半物理仿真环境下,BC发送副帧数据的难点在于BC更新副帧数据与BC调度两个进程相协调,如果协调不好,会出现调度数据延迟现象,约40~160 ms,具体任务划分可以参考H.Gomma总结的六条原则[5]。
(2) RT发送副帧数据
如果某远程终端向外发送的数据具有副帧,则该远程终端应周期性地将副帧数据写入缓存区。此时,BC周期性地调度该远程终端向其他外设发送不同的副帧数据。此处难点在于总线控制器调度时间与远程终端写入副帧时间的同步,否则会出现大量丢包和数据通信延迟现象。
3.4 BM模块
飞行参数记录仪作为BM监控飞控半物理仿真平台中1553B数据通信,监视总线调度的正确性,并将监视的通信数据存储到建立的文件中,根据相应的解码原则可以还原整个1553B总线通信过程。
(1) 监视模块
在飞控半物理仿真平台中,BC每一条调度指令执行时间约1 ms,为了保障BM能监视到1553B总线上每一条通信信息,设定BM运行周期为1 ms。在VxWorks的主函数下开启一个监视任务,通过1553B总线的API(Application Programming Interface,应用程序编程接口)函数BusTools_BM_ReadLastMessageBlock()周期性地监视总线上是否有数据通信。
(2) 存储模块
在VxWorks操作系统下创建文件observe.txt用来存储数据。当1553B监视到总线上有数据通信时,将数据存储到observe.txt文件中。存储模块用到的VxWorks I/O应用接口函数为creat(),open(),write(),read()等,接口函数库为ioLib。
4 总线负载率
查询相关国军标资料[6],可知1553B各条指令每次执行花费的时间如表1所示。
1553B传输方式为半双工,同一时刻总线上只能有一个方向的数据传输,可以通过时间来计算总线负载率。设置数据帧间隔为10 μs,通过计算,飞控半物理仿真平台中1553B总线通信的负载率为49.8%,满足技术要求指标。
5 结 语
本文详细介绍了基于飞控半物理仿真平台中1553B总线调度软件典型模块的设计原则。经过实际仿真试验,该调度软件实现了数据调度、软件监视、数据存储、终端模拟等功能,工作性能稳定,为研究1553B总线在其他半物理仿真平台的应用和移植提供依据。
参考文献
[1] 廖文彬.MIL?STD?1553多功能总线测试卡的实现[D].成都:电子科技大学,2009.
[2] 颜猛,蒋轩祥.1553总线BC/BBC配置下总线管理软件的研究与实现[J].微电子学与计算机,2003,20(1):20?22.
[3] 支超有.机载数据总线技术及其应用[M].北京:国防工业出版社,2009.
[4] 周启平,张扬,吴琼,等.VxWorks开发指南与Tornado实用手册[M].北京:中国电力出版社,2004.
[5] 罗国庆.VxWorks与嵌入式软件开发[M].北京:机械工业出版社,2003.
[6] 国防科学技术工业委员会.5186.6?2005数字式时分制指令相应型多路传输数据总线测试方法[EB/OL].北京:国防科学技术工业委员会,2006.