机载PD火控雷达系统1553B总线驱动层与传输层软件界面分析

   2023-12-16 互联网1610
核心提示:  【摘要】 介绍了总线传输层和驱动层软件的双口RAM接口区及其内部的数据结构,深入分析了总线通讯的读写锁机制、双缓冲区机

  【摘要】 介绍了总线传输层和驱动层软件的双口RAM接口区及其内部的数据结构,深入分析了总线通讯的读写锁机制、双缓冲区机制和应用于系统同步的RTC机制,其目的在于开发可复用的总线通讯软件。
  【关键词】 1553B总线,传输层软件,驱动层软件,机载PD雷达

The Analysis of Interfaces between Transmission Layer
and Drive Layer Software of 1553B Bus in Airborne PD
Fire Control Radar System
Yang Mei
(Nanjing Research Institute of ElectroNIcs Technology
 Nanjing 210013)

  Abstract】  On the basis of descriptions of the dual port RAM connecting the transmission layer and drive layer software and its internal data structure, the paper analyzes the mechanism of reading and writing lock and dual data buffer applied to bus communication and the strategy of RTC used in system synchronization. The goals of such detail analysis is to develop the bus communication software with reusability.
  Key words】 
1553B Bus, transmission layer software, drive layer software, airborne PD radar

1 引言
  多功能机载脉冲多普勒火控雷达(简称PD雷达)是航空电子系统的一个重要组成部分。由于其重要地位和综合处理能力,一些作战飞机直接以PD雷达为中心,为飞行员提供功能齐全、界面友好、制导精确的综合化火控系统,因此现代化的PD雷达往往具有较为复杂的对外接口关系。另一方面,PD雷达需要从强杂波背景中提取目标回波信息,系统也具有相当复杂的内部接口关系。在PD雷达的研制中,内、外部通讯问题一直是影响系统开发的关键技术问题之一。解决通讯问题的有效手段便是在系统中广泛采用总线技术,ARINC429总线、Q总线和位总线等通讯技术均已在国内外PD雷达系统中得到应用,而1553B总线则是80代以来在PD雷达中应用最为普遍的通讯技术。1553B总线通讯系统由一个总线控制器(Bus Controller, BC)和若干个远程终端(Remote Terminal, RT)组成。BC实现整个总线系统的通讯调度和本节点与其它节点之间的通讯,RT仅实现本节点与其它节点之间的通讯,它们的通讯体系结构可以用图1所示的5个层次来表示,某一层的服务就是该层及其以下各层的一种能力,它通过接口提供给更高的一层〔1〕,其中物理层主要指用于信息传输的物理媒体,即双绞线和同轴电缆等;链路层实现在相邻节点间的线路上以帧为单位的信息传输,主要包括实现1553B通讯协议的芯片及辅助电路;传输层实现以数据组或包为单位的信息传输;驱动层实现以报文为单位的信息传输;应用层通过控制调度驱动层实现不同节点上应用进程之间的信息传输。在此5个层次中,物理层和链路层属于硬件范畴,传输层以上属于软件范畴。由于PD雷达计算机中包含多个CPU处理板,所以传输层软件往往单独驻留在专门的总线接口(Multiplex Bus Interface, MBI)板上,而驱动层软件则驻留在被称为宿主机的通用计算机上,它们体现了1553B总线通讯的主要特征,因此对此两个层次之间的软件界面进行深入细致的分析,对于设计高效可靠的总线通讯软件尤为重要。

51.gif (3441 bytes)

图1 1553B总线通讯结构示意图

  本文首先介绍传输层软件与驱动层软件之间的接口区域——双口区的硬件特性及数据结构,随后分析总线通讯过程中的读写锁机制、双缓冲区机制和时钟同步RTC机制,这些因素将决定总线通讯软件的设计要点。

2 双口RAM区
  在机载PD雷达中,1553B总线驱动层与传输层软件之间的信息交换与传输均通过双口RAM(DRAM)进行。所谓双口RAM实际上是两个CPU(宿主机CPU与MBI板CPU)以相同或不同的数据地址读取同一数据区的共享内存。图2所示的便是若干个通过双口RAM区连接的1553B总线节点。

51-.gif (8024 bytes)

图2 1553B总线系统中的双口RAM

  双口区的容量一般为8K×16位,通常被划分为若干个功能区域,主要用于存放多路总线数据接收和发送到总线上的各种信息及总线协议执行过程中的通讯命令表,建立起总线上数据传输的双向缓存机制,因此双口区数据结构的分配和设计是否合理,将影响整个总线系统数据传输速率和效果。

3 双口区数据结构

52.gif (3081 bytes)

图3 双口区数据结构示意图

  图3所示的就是双口区的主要数据结构。由图中可见,此数据区基本上是一个树形结构,其中状态区是结构中的树根,由此可以引入两个分枝,而总线通讯表分枝又可以引入数据发送和接收两个枝叶,这样便形成了驱动层和传输层软件之间的控制、通讯和中断的基本框架结构。

  状态区——状态区是双口区数据结构中的首要环节,驱动层软件通过状态区设置MBI板工作状态,控制传输层软件工作。传输层以特定单元查询方式获得驱动层控制命令,并将执行结果返回状态区,驱动层根据传输层反馈信息获得总线系统工作状况。表1列出了状态区的详细数据内容。

表1 总线状态区内容

控制方向状态字名称功  能
驱动层传输层工作方式字定义MBI板BC/RT方式
终端(RT)号码置RT地址号
总线通讯表地址标识子系统总线通讯表首址
工作状态标志字 控制MBI板工作状态
传输层驱动层故障标志字MBI板自检返回信息
传输故障标志字说明故障消息块
终端故障字说明RT故障
中断标志字说明中断性质
MBI命令执行标志字说明MBI执行命令状态
矢量字存放RT矢量字

  状态区中的数据单元分为驱动层对传输层的控制指令和传输层向驱动层的反馈状态两大类,其中工作方式字用于定义MBI板作为BC或RT;终端号码仅对RT有效,它标识RT的终端地址号,同一总线系统中任两个RT节点不能有相同的地址号;总线通讯表地址用于标识总线通讯表的首地址,其长度则由通讯表内部的结束标志确定;工作状态标志字是状态区中动态变化较多的数据单元,它用于控制MBI的工作状态,如初始化、自检测、启动数据传输和停止工作等;故障标志字是传输层软件反馈的MBI板自检信息,它主要包括MBI板上的器件故障信息;传输故障标志字给出在传输过程中发生故障的消息块在总线表中的首地址,此标志字仅对BC有效;终端故障字给出在传输过程中发生故障的RT地址及相应的故障标识,此标志字也仅对BC有效;中断标志字是MBI板在向宿主机发出中断前置入的标识信息,主要用于说明此中断的性质;MBI命令执行标志字是传输层执行驱动层命令后返回的结果信息,内容包括完成、超时、通讯错误等;矢量字用于动态总线调度,它标明请求加入传输的消息块号,使用此机制可以节省正常的总线通讯开销。
  总线表——总线通信表具有总线表和通信表两种不同的形态,其中总线表是在BC上根据系统应用任务需求构造,用于管理和组织系统中各节点间有效的数据传输〔2〕。总线表是一个环形结构(图4),它由所有通过总线传输的消息块的命令组组成,每一命令组共8个字,其中首指针就是该命令组的首地址的偏移量;控制字包含了消息传输状态、消息剪裁标志(SKIP)、重试标志、传输方向标志、延迟时标等控制信息;命令字1是接收方RT的地址号、消息子地址号、消息长度等信息的组合,命令字2则是发送方RT的地址号、消息子地址号、消息长度等信息的组合,当发送或接收方有一个为BC时,相应的接收或发送命令置0;数据表指针只对RT与BC之间的传输有效,它标识此消息块在BC双口区内的地址;状态字1和状态字2分别对应于命令字1和命令字2,用于反馈RT执行该消息传输的结果状态,内容包括消息出错位、子系统忙位等;尾指针指向下一命令组的首址,特别是最后一个尾指针指向总线表的首址。
  通信表——由于RT和BC性质上的区别,RT上用于控制消息传输的通信表与BC上的总线表相比更为简单,每个子系统根据本子系统数据传输的需求填写数据输入输出结构,驱动层软件根据数据结构生成子系统所需的总线通讯表并存入通信表区。输入输出数据结构主要给出信息存放的逻辑号,说明数据存放的子地址、传输消息长度、数据是否允许覆盖及紧急消息标志等。
  数据接收区——数据接收区包含两个可以交替使用的数据缓冲区,其中每个缓冲区包括32个数据块,每一块的长度是32字,它们存放接收到的总线系统数据。
  数据发送区——数据发送区的组成与数据接收区一样,用于存放子系统准备发送到总线系统的数据。

53.gif (9961 bytes)

图4 BC总线表环形结构

  中断记录表——中断记录表是由若干个中断记录组成的链形结构(图5),它向驱动层软件提供各个通过中断实现通讯的消息块的信息,每个记录中的中断状态字包含了中断的有效性、及时性、正确性和消息分类等信息;消息指针标识了BC命令块指针或MT(Monitor Terminal)消息块指针或RT描述符空间指针;尾指针指向下一中断记录。

53-.gif (3611 bytes)

图5 中断记录表结构

4 通讯机制
  在雷达系统1553B总线中,应用层软件之间的每一次数据通讯都必须经过两次传输层与驱动层软件之间的通讯才能得以实现,所以传输层与驱动层之间的消息通讯的一致性、完整性和实时性都是建立总线通讯机制中必须考虑的重要问题。
  读写锁机制——由于驱动层软件和传输层软件分别驻留在宿主机和MBI两个CPU系统中,除少数紧急消息通过中断实现通讯外,其它均采用异步通信方式,因此它们之间的数据通讯必须首先解决一致性问题。例如,设雷达系统在t时刻输出的目标测量数据为距离R(t)、速度V(t)、方位A(t)和俯仰E(t),它们应该具有某种函数关系

F(R(t),V(t),A(t),E(t),t)=0

当总线通讯中每一组数据内的目标数据均具有相同的时间参量时,(1)式便能成立;而当这组数据不具有相同的时间参量时,(1)式便不能成立。在某些情形,这种不匹配的时间关系会导致严重的后果,这就是数据传输的一致性问题。解决此问题的一个有效的方法就是建立消息缓冲区的读写锁机制。
  传输层与驱动层软件通信中的每一个消息缓冲区都对应于一个读写锁,此锁对发送方是写锁,对接收方是读锁,发送方将一个完整的消息写入缓冲区后,置位写锁,对接收方而言相当于打开读锁,此时该缓冲区只可读,不可写;接收方将这个完整的消息读出缓冲区后,置位读锁,对接收方而言相当于打开写锁,此时该缓冲区只可写,不可读,这样便可保证数据通信的一致性。
  双缓冲区机制——在1553B总线系统中,传输层消息传输与应用层消息更新的周期一般设置为相同,这样既能够充分利用总线系统的效率,又可以降低应用软件的计算负荷。但是由于传输层和驱动层软件位于不同CPU的时钟管理之下,且各个处理机上每一周期内应用任务的时间开销也不可能完全相同,因此图6所示的情形是经常出现的。

54.gif (1906 bytes)

图6 双机收发时序关系

  在图6中,T为总线传输和数据更新周期,S1、S2、S3分别为发送方的数据更新事件,R1、R2、R3分别为接收方的查询采样事件,由于任务负载的不均匀性,S1、S2和S3以及R1、R2和R3之间几乎不可能以等间隔发生,所以在采用单缓冲区进行数据传输时为保证数据传输的一致性而应用读写锁机制以后,消息S2将由于S1尚未被接收而被丢弃;采样R3又由于未收到任何消息而耗费一个周期,在这样的系统中,理论上数据丢失率可能会达到50%,对离散的工作命令,数据的丢失将影响系统的正常工作;对连续变化的状态参数,如此高的丢失率实际上使得系统的传输率下降一倍,这也会影响系统的工作精度。解决数据丢失问题的主要方法是采用双缓冲区机制。
  双缓冲区机制就是对每个消息块建立A、B两个缓冲区,A区写锁关闭、读锁打开时,B区读锁关闭、写锁打开。可以证明,只要不出现超时,任何消息都可通过A、B两个缓冲区中的一个进行传输,并且不会被丢失。例如,在图6中,若消息S1通过A区被R2接收,则S2会通过B区被R3接收,不会发生S2丢失的问题。
  采用读写锁和双缓冲区机制的传输过程可以描述为:
  发送方:                接收方:
if(写指针指向A区){             if(A区读锁已打开){
  if(A区读锁已关闭){             读A区消息块;
    发送消息块至A区;关闭A区读锁;
    打开A区读锁;            }
    写指针指向B区;           else if (B区读锁已打开){
  }读B区消息块;
  else{关闭B区读锁;
    置超时标志:             }
  }
}
else{
  if(B区读锁已关闭){
    发送消息块至B区;打开B区读锁;
    写指针指向A区;
  }
  else{
    置超时标志;
  }
}

5 RTC同步机制
  机载PD火控雷达是综合火控系统中最主要的传感器之一,它一方面依赖于其它机载设备提供的高精度飞机运动参数才能进行正常工作,另一方面也要向显示控制及火控计算机等子系统提供高精度的目标数据,才能进行有效的武器控制,因此精度问题是影响综合火控系统工作的根本问题之一。
  影响数据精度的因素很多,如传感器误差和子系统的计算方法等。在总线通讯系统设计中需要考虑的则主要是传输延迟引起的误差,对此系统设计者必须考虑到几个主要问题:其一是传输延迟的模型问题,其二是系统同步问题,其三是延迟误差修正算法问题。早期的火控系统往往忽略传输延迟或将传输延迟简单地考虑为固定延迟,因而同步问题和算法问题都可得到简化,这对慢速运动的载机和目标而言是可以接受的。然而,总线通讯中的传输延迟除一部分可以预知的固定延迟外,还有相当复杂的随机延迟,当问题空间中速度和机动提高时,上述的的简化方法便会引起很大的精度损失,因此必须提供有效的方法以解决延迟误差,尤其是随机延迟误差问题,其中系统同步便是解决其它所有问题的前提。
  事实上,航空电子系统的各个子系统都建立了本身的局部时钟,其精度可达微秒量级,但是由于1553B总线通讯的周期是十毫秒量级的,因此如果通过应用软件之间的消息传输来建立系统的全局时钟机制,那么这样的时钟其精度最高也只能是十毫秒量级的,这对系统中一些时间要求较高的处理是不足的。解决此问题的主要途径是使用总线RTC(Real Time Clock)同步机制。
  RTC是一分辨率为20μs并以递增方式计数的32位数据,精度可达±50PPM(Parts per million),在各个MBI加电复位时RTC置“0”,并开始根据自己的局部时钟累积计数,必要时还可利用“不带数据字同步”方式指令对RTC进行复位。在系统工作过程中,作为BC的子系统CPU加载RTC,并利用每一次消息通讯将其RTC发送到各RT。因此,在RT的MBI中既有自身的RTC数据,也有该RTC与BC的RTC之差△RTC,这样各个子系统便可读取RTC及△RTC,从而建立起子系统时钟与全局时钟之间的对应关系。在数据传输中,每个发送子系统可在发送消息中附上采样时标,接收子系统收到此消息时虽已经过一定的延迟,利用时标能够准确地对这些数据进行外推处理,尽可能地减少因系统不同步造成的计算误差,提高系统的精度。所以RTC能够为航空电子系统的同步提供支持并为系统维护及事后数据处理提供依据。

6 结束语
  1553B总线通讯技术已经在国内外机载PD雷达系统中得到充分应用,本文所提出的若干分析结果和设计思想也已运用于我国自行研制的机载PD火控雷达系统中。可以预见,在今后相当长的一段时间内,1553B总线仍将是机载PD雷达内、外部通讯的主要手段之一。随着微电子技术的发展,CPU及1553B协议芯片正不断地升级、换代和改型,但是为保证总线通讯软件的继承性和复用性,机载PD雷达中传输层和驱动层软件之间的接口界面应该相对稳定,并且这样的界面设计完全可以适应机载雷达发展的新的需求。

参考文献
1 谢希仁等.计算机网络.北京:电子工业出版社,1994
2 航空航天部第三○一研究所.MIL-HDBK-1553多路传输数据总线应用手册.北京:1988年11月
3 阮淑芬.1553B总线在机载火控雷达中的设计途径.现代雷达,1996,18(3): 37~45


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅