1. 引言
在嵌入式计算机领域,背板总线一般指通过分时复用的方式,将信息从一个或多个源部件传送到一个或多个目的部件的一组传输线,它是各功能部件之间信息传送的公共通信干线。按照传输方式分类,可以将背板总线分为并行总线(如ISA、VME、PCI等)和串行总线(如RapidIO、PCI Express等),而按照通信触发协议分类,可以将背板总线分为事件触发总线和时间触发总线(如Flexray、ARINC659等)。在当前航天器综合电子系统中,背板总线作为计算机内部连接各个功能电路和模块的“通道和桥梁”尚未形成统一的标准,功能的划分和标准选用也比较混乱,成为长期以来制约星载电子设备向标准化、模块化方向发展的瓶颈。
ARINC659总线是美国ARINC (航空无线电公司)公司1993年制定的标准背板数据总线规范 [1] 。它基于时间触发机制在背板上建立起各功能模块之间的高数据吞吐量、严格的故障隔离、完备的冗余容错、确定的数据传输路径,并借助其标准、通用、高效合理、高可靠等优点逐步成为航天器综合电子系统计算机背板总线的理想选型,为综合电子系统的标准化、规范化、通用化、可扩展提供了技术保障,也为综合电子系统为整星提供开放、高效的通信资源、计算资源和存储资源奠定了基础 [2] 。
2. ARINC659标准背板总线介绍
2.1. ARINC659总线接口组件组成
ARINC659是一种基于时间触发的线型连接多点串行通信数据总线,由数据总线和测试总线组成 [3] 。ARINC659总线及其接口组件采用“对–对”的配置方式,即整个总线上的数据传输由一对总线接口单元(BIUx和BIUy)进行控制,同时整个ARINC659数据总线由总线对A和B组成,A和B又分别配置“x”和“y”2条总线,形成四条总线,即Ax、Ay、Bx、By,每一条总线(Ax,Ay,Bx,By)有各自的1条时钟线和2条数据线,完整的数据总线由12条线组成;测试总线由总线对J和K组成,采用标准1149.5协议,分别实现对BIUx和BIUy的表程序加载和回读测试。BIUx和BIUy与数据总线和测试总线也采用配对的连接方式,即BIUx数据总线Ax和Bx以及测试总线J,而BIUy连接数据总线Ay和By以及测试总线K。
在综合电子系统计算机中,挂接在ARINC659总线上的各个功能模块均配置一组ARINC659总线接口组件,由这些组件完成表驱动程序的存储、加载、执行以及电平转换等操作。ARINC659总线及其接口组件的组成如图1所示。
2.2. ARINC659总线运行机制
ARINC659总线的通信基于时间触发机制,采用表驱动比例访问 [4] [5] ,所有的总线接口单元(BIU)执行相同的表程序,通过表程序将ARINC659总线的操作划分为一系列的窗口,并定义了每个窗口的长度以及由哪个功能模块进行传输、接收或者忽略总线消息。总线传输周期被组织成周期性循环的帧,帧周期长度为总的窗口长度和,每一窗口中消息的数据源和目的地址包含在表存储器中,而不是通过总线进行传输,也就是哪个功能模块在哪个窗口发送消息或者接收消息由表程序指定,而ARINC659总线的所有带宽都用于传送有效数据,这节省了总线的带宽,消除了消息传输过程中有可能的地址冲突,具体如图2所示。
在ARINC659总线启动运行时,会经过以下过程使得ARINC659总线按照规划的时间窗口进行数据传输:
(1) 上电初始化过程中,总线接口单元将表程序从外部存储器加载至BIU内部表程序存储器,加载成功后,表程序开始运行;
(2) 总线接口单元进行ARINC659总线初始同步消息的传输和接收,根据初始同步消息在各ARINC659总线通信组件之间建立同步关系;
(3) 总线接口单元在建立同步关系后,从内部RAM中读取表程序并开始表程序的运行;
(4) 当需要通过ARINC659总线发送数据时,HOST控制芯片将数据写入BIUx和BIUy后,写启动发送控制寄存器,BIUx和BIUy在执行到表程序中对应的窗口命令时自动将数据发送出去;总线发送过
![](//html.hanspub.org/file/5-2980075x9_hanspub.png)
Figure 1. Composition diagram of ARINC659 bus and interface components
图1. ARINC659总线及接口组件组成框图
![](//html.hanspub.org/file/5-2980075x10_hanspub.png)
Figure 2. Communication mechanism of ARINC659
图2. ARINC659总线通信机制
程中BIUx通过x总线发送,BIUy通过y总线发送,每一条总线都有独立的收发控制器,其中只有在发送时BIU才会使能总线驱动器的发送使能信号,其余时间均禁止总线驱动器的发送;
(5) 如果表程序中的指令指示当前窗口为接收窗口,当BIUx和BIUy从ARINC659总线上接收数据后,会设置接收数据更新状态寄存器,由主机HOST据此完成接收数据的读取;总线接收过程中,BIUx和BIUy同时接收所有4条总线的数据,为进行差错检测和纠错,BIUx与BIUy对接收到的4条总线上的数据进行以下比较逻辑:Ax = Ay,Bx = By,Ax = By,Bx = Ay,由于有4对信号参与差错控制,因此其容错性能好于传统的双余度,而复杂性小于传统的四余度。
3. ARINC659总线接口组件抗单粒子翻转加固设计
3.1. 单粒子翻转效应敏感环节分析
根据ARINC659总线接口组件的组成结构和运行机制,建立总线组件系统的单粒子翻转效应故障树,并结合地面辐射效应摸底试验,识别出ARINC659总线组件中单粒子翻转效应敏感环节如下:
(1) 外部表程序存储器:如果存储器中的表程序数据发生单粒子翻转,将导致表程序无法加载或加载后运行错误,引起总线通信异常;
(2) BIU内部表程序存储器:表程序加载后将一直存储在该存储器中,一旦发生单粒子翻转将导致表程序运行错误;
(3) BIU发送控制寄存器:如果发生单粒子翻转,有可能出现要发送的数据不再发送,或者已经发送的数据再次发送;
(4) BIU接收数据更新状态寄存器:如果发生单粒子翻转,有可能出现“假”接收数据,或者已更新的数据误认为没有数据更新;
(5) 总线驱动器发送使能控制:发生单粒子效应将导致发送数据时不能使能驱动器而导致数据错误,或不发送数据时驱动器输出而干扰总线通信;
(6) BIU内部数据存储器:存储发送或接收的数据,如果发生单粒子翻转导致收发数据错误。
3.2. 抗单粒子翻转加固设计
3.2.1. 外部程序存储及加载过程加固设计
ARINC659总线接口组件的运行类似于处理器的运行方式,在系统加电或者复位后,首先将外部的表程序存储器中的表程序加载到ARINC659总线接口单元中,之后ARINC659总线接口单元将按照加载的表程序依次执行ARINC659总线时间规划命令,此可见外部表程序存储器的抗单粒子性能将直接影响整个ARINC659总线接口功能组件的运行正常与否。
ARINC659总线表程序在编译完成后所占空间只有几K字节,而一般存储器的容量可从几十K到几十M字节,因此在对访问外部表程序存储器进行设计时,充分利用外部表程序存储器的存储空间,对外部的表程序存储器的存储空间进行分区管理,共分为8个区域,每个区域进一步划分为3个子区。外部表程序存储器分区管理具体如图3所示。
(1) 在对外部表程序存储器的分区管理中,每个区域中的3个子区存储相同的表程序,在上电或者复位后,从外部表程序存储器加载表程序时同时加载3个子区中的表程序,将其进行三取二后使用;
(2) 为了防止FLASH类型存储器件受空间辐射环境影响,导致某一地址线上的所有存储空间均损坏的情况,将整个存储空间分为8个区域,由存储器的高三位地址线译码实现,当一个区域中的存储的表程序无法使用时,可以切换到另外一个区域,从而保证了外部表程序存储器中表程序的安全;
(3) 通过1149.5测试总线,既可以实现对外部表程序存储器的编程,将表程序数据写入存储器,同时也能够对外部表程序进行回读校验,能够发现任意子区中表程序的错误,可及时对错误的表程序进行回写纠正;
(4) 在表程序加载过程中,BIU会对从外部表程序存储器中加载的表程序进行校验操作,只有校验通过的表程序才能写入BIU内部表程序存储器,BIU才能正常运行,避免表程序错误导致的BIU运行异常,以及对整个系统和设备中ARINC659总线运行的影响。
3.2.2. 内部存储器加固设计
在ARINC659总线BIU内部含有表程序存储器SRAM和数据收发存储器SRAM,其中在BIU正常运行期间,均按照BIU内部表程序存储器中的表程序运行,一旦BIU内部表程序存储器SRAM中的表程序发生单粒子翻转,将导致BIU运行异常,并有可能对ARINC659总线上其他功能模块之间的通信产生干扰和影响,而且由于BIU运行期间内部表程序存储器SRAM中的表程序内容始终不会改变,如果不采取一定的加固设计,很容易产生单粒子翻转效应的累积,而产生多比特翻转。同样地,对于BIU内部的数据收发存储器SRAM,一旦发生单粒子翻转,也将会使得传输数据的错误,有可能对系统中与时间
![](//html.hanspub.org/file/5-2980075x11_hanspub.png)
Figure 3. Diagram of partition management of table program memory
图3. 外部表程序存储器分区管理示意图
触发和时间规划有关的运行电路产生影响。
对ARINC659总线BIU内部存储器SRAM的设计通过EDAC (Error Detection And Correction,错误检测与纠正)设计实现,按字节实现纠一检二功能,在发现单比特错误后,电路会自动进行回写纠正,在发现不可纠正错后,电路输出错误指示信号,上报主机。BIU内部存储器SRAM的EDAC实现电路如图4所示。
3.2.3. 双互锁存单元设计加固
ARINC659总线接口单元为全数字电路,而在数字电路中存在大量寄存器,这些寄存器对单粒子翻转特别敏感。一般对已寄存器的加固设计采用空间三模冗余或时间三模冗余方式实现,但是三模冗余设计会导致寄存器单元的增多和控制的复杂,从而带来ARINC659总线接口单元尺寸的增大和功耗的增加。为此在ARINC659总线接口单元设计中采用双互锁存(Dual Interlocked Storage Cell, DICE)结构单元进行加固设计。DICE电路结构原理如图5所示。
![](//html.hanspub.org/file/5-2980075x12_hanspub.png)
Figure 4. Design diagram of inner memory with EDAC
图4. 片内存储器EDAC设计加固示意图
![](//html.hanspub.org/file/5-2980075x13_hanspub.png)
Figure 5. Schematic of DICE circuit structure
图5. DICE电路结构原理图
上图中N,P反相器分别代表N型和P型单管反相器,四个结点X0~X3存储了两对互补的数据(如1010或者0101) [6] 。每个结点的状态都由相邻对角的结点控制,而这对角的结点并不互相联系,它们的状态也由其他的相邻对角的结点的状态控制 [7] 。结点Xi(i = 0~3)通过晶体管Ni − 1和Pi + 1互补反馈的控制相应的对角上互补的两个结点Xi − 1和Xi + 1,i为以4为模的1位整数。当一个负的翻转脉冲出现在任意一个敏感结点Xi(I = 0~3)时,都会通过P-型反馈晶体管Pi + 1在结点Xi + 1上产生一个正的脉冲扰动,传输到结点Xi + 1的正的脉冲扰动不会通过晶体管Pi + 2进一步的传输,使结点Xi − 1和Xi + 2被隔离,保持着他们的逻辑状态不受影响。因此,逻辑状态的扰动仅仅是暂时的在结点Xi和Xi + 1上引起变化,这种扰动在单粒子事件之后很快就会消除,从而保证寄存器单元中保存的数据不会因单粒子而发生翻转。
3.2.4. 其他设计加固
(1) 针对发送窗口写发送使能、接收窗口数据更新标识、接收窗口状态子等关键寄存器采用多bit大数判决,可有效防护3 bit以内的翻转不会产生错误;针对复位、自启动等关键寄存器采取三取二设计,防止单个寄存器的翻转影响总线运行;
(2) ARINC659总线驱动器为数模混合集成电路,针对数字电路设计部分采用三模冗余设计,保证器件不会因单粒子效应产生的翻转和瞬态对输出信号以及输出使能信号产生干扰,从而保证ARINC659总线驱动器不会在ARINC659总线正常运行过程中向总线上输出不期望的脉冲信号导致总线通信失败;
(3) HOST主机系统实时监测ARINC659总线接口组件输出的“不可纠正错误标识”信号,通过自动复位以及改变表程序加载分区等措施完成组件程序的重新加载和恢复。
4. ARINC659总线接口组件单粒子翻转效应试验验证
为了获得ARINC659总线组件单粒子翻转的LET阈值,验证ARINC659总线接口组件抗单粒子翻转加固设计的效果,对ARINC659总线组件进行单粒子效应模拟试验。
4.1. 辐射源选择
ARINC659总线接口组件单粒子试验辐射源采用中国科学院HI-13加速器(北京)产生的Ge、Ti和Cl离子,离子特性如表1所示。
4.2. 试验方案
ARINC659总线接口组件单粒子试验采用通信比对方式完成,在ARINC659总线上配置两个通信节点,通过在两个通信节点间的通信以及ARINC659总线的同步状态监控等操作对ARINC659总线接口组件发生的单粒子翻转事件进行监控。单粒子效应试验系统的硬件构成如图6所示。
远程上位机通过以太网线(大于20 m)连接至靠近近处上位机和电源的集线器,集线器分别通过两根以太网线连接近处上位机及电源,近处上位机通过DB9插头以串口的方式连接被测板,远程上位机通过远程登陆的方式控制近处上位机,通过近处上位机的串口发出指令控制被测板的工作模式,并把被测信息返回给远程上位机。测试母版提供ARINC659总线背板通信环境,并负责完成整个试验过程中的状态监视和测试。
试验过程中被测器件运行典型功能向量,检测器件内部寄存器、数据存储器、程序存储器和通信情况,若器件通信中断,则记录一次功能中断,复位电路后继续进行试验,若功能中断次数达到5次或离子总注量达到107离子/cm2,则停止辐照,试验结束。
4.3. 试验结果
分别采取Cl离子、Ti离子、Ge离子进行试验,在粒子总注量达到1 × 107个/cm2时,停止试验,试验结果如表2所示,试验过程中,仅Ge离子辐照情况下,BIU内部数据存储器发生了一次不可纠正错误
![](//html.hanspub.org/file/5-2980075x14_hanspub.png)
Figure 6. Hardware composition of experiment system
图6. 试验系统的硬件构成
表1. 离子特性
表2. 试验数据记录
(单bit错误自动纠正),系统没有发生功能中断,表明ARINC659总线接口组件单粒子翻转和功能中断的LET阈值均达到37 MeV∙cm2/mg,证明了加固设计的有效性和正确性,为ARINC659总线在航天器上推广应用奠定了技术基础。
5. 结束语
本文针对ARINC659总线特点和工作机制提出了接口组件器件级和系统级相结合的抗单粒子翻转设计方案,基于国内成熟的抗辐照工艺进行了芯片设计和实现,并通过地面模拟试验验证了加固设计的正确性和有效性,为ARINC659标准背板总线在航天器综合电子系统中的可靠应用提供了技术和数据支撑,解决了ARINC659总线接口组件无抗辐射器件可用的局面,直接推动了ARINC659总线在航天器型号中的应用,为航天器综合电子系统的标准化、通用化和可扩展起到了十分重要的作用。
基金项目
国家自然科学基金资助项目(91438102),空间信息网络业务特征与流量分析理论研究。