1553B通信协议的可依赖性讨讨论

2017-02-09 07:36杨福宇
单片机与嵌入式系统应用 2017年1期
关键词:条款指令总线

杨福宇

(重庆工业自动化仪表研究所,重庆 400123)



杨福宇

(重庆工业自动化仪表研究所,重庆 400123)

1553B是飞机电传系统的通信协议,由于硬件上抗干扰仅考虑了系统内部自生的干扰,实际环境要严重得多;因为只按奇偶位作校验,所以错字漏检的概率比较大;由于回传状态字内容不全面,在漏检错字时会发生假冒错;由于指令字出错不易纠正,最好情况下靠2次重传,丢帧可能性大。漏检错帧和丢帧多会使多重冗余的表决机制失效,也会使网络管理类指令失效,成为潜伏的故障。通过定量分析,确定了一些情况下的失效率,例如假定取CAN, Profesafe同样的误码率ber=0.01时,除去最大值/最小值再取均值时的4冗余系统因错字漏检引起的每小时失效可达2×10-1次。

1553B;可依赖性;功能安全;电传故障

引 言

1553B是飞机上占主导地位的通信协议,像现役的F15、F16、F18、F22、F35、B52、B1、B2等都采用了此类总线,我国也有对应的标准与应用。由于军用技术十分敏感,飞机毁损后追索原因也十分困难,问题未能深入讨论,便会给人粗略的印象:“由于没有失效的报道,所以它是可靠的”。这个标准是电传系统(x-by-wire,线控系统)的基础,电传系统的故障会导致机毁人亡,加上应用要求在不断提高,所以对其可信赖性进行分析是必要的,本文抛砖引玉,供大家参考。

1 失效实例

1553B失效报道见参考文献[1]:2008年5月13日,NASA航天飞机为STS-124次飞行加氢时发生了4冗余计算机的不一致,为3:1。这个电传系统用的是类似1553B的总线(具体名称未提及),3秒之后分裂为2:1:1,作故障诊断时余下的2台计算机又分裂,成为1:1:1:1。后来查出计算机并没有出错,而是发送消息的通信板上有一个二级管有一个裂隙。文章分析这个故障使二级管变为电容,使总线上信号的幅值有一个充电上升过程,有些节点看到了第一位,而有些节点看不到,出现了拜占廷错(Byzantine error)。结论是:系统不允许有拜占廷错的话,再多的冗余也不够。在这个例子中,元凶是坏了的二级管,过程是出现了拜占廷错,拜占廷错导致系统失效。那么还会有其他可能性导致1553B拜占廷错吗?

[2]讨论了同步对系统的影响,例如数字飞行控制系统有三套,以备有二次故障仍工作,但计算机间不同步,通用动力这样做,考虑是由于电磁干扰或雷击可能导致单点失效。该系统想把控制解耦,实际上,在F16飞行测试时解耦不好会导致有3秒钟的偏离理想情况:侧滑超过20度,正常加速先是-4g后是+7g,攻角先是-10度后是+20度,飞机转了360度,垂直尾翼超载,液压系统和空气传感器出现虚假失效报警。F16 第44次飞行测试中不同步的操作时间变化(skew)和传感器噪声会使每一个通道认为其他通道已经失效。作F16飞行测试的NASA工程师认为几乎所有的失效都与硬件无关,而与计算机不同步运行的设计有关。由此看来,由于同步要通过1553B实现,如果设计是正确的,只是通信出了问题,后果也是非常严重的。

2 1553B的简介

1553B的简介略——编者注。

3 1553B的抗噪声能力

在参考文献[3]中引有1553B的标准,第4.5.2.1.2.4条款规定了终端抗噪声能力的验收指标,这也是对1553B性能的第一印象。

“终端收到的所有字按标准条款4.4验收后最大字错率不超过10-7”,测试条件是叠加1 kHz~4 MHz的高斯噪声,其幅度有效值为140 mV。测试处的信号电平峰-峰值为2.1 V,字错包括所有使状态字错误标志置位错误,以及使终端不响应有效指令字错误。

图1 福特补充的波形F-4

140 mV的噪声有效值幅值相对于信号的余量是非常小的。根据第4.5.2.1.2.1条款,终端输入电压的最小幅度为0.86Vp-p(峰-峰值),所以上述测试的2.1 V有很大的余量,可以用高斯分布来求干扰引起输入小于0.86 V从而引起判断错误的概率。140 mV有效值相当于140 mV×1.41=200 mVp-p,用Matlab的高斯模型,其中6sigma=200 mVp-p,sigma=33 mV=0.033 V,中值mu=2.1 V,模型为obj= gmdistribution(2.1,0.033,1), 那么从0截止到0.86 V的概率为cdf(obj, 0.86)=4.3×10-12,即误码率ber,标准的第10.4条款提到10-12这个数值。字错率wer= 20×ber=8.6×10-11,远小于实际测试的要求。

这140 mV的噪声从何而来?是外部的还是内部的?

根据耦合变压器的线圈匝数比、限流的隔离电阻为0.75特征阻抗值,在忽略传输线衰减时,可以计算出终端输入信号是终端输出信号的25%。第4.5.2.1.1条款规定,终端输出电压的最小幅度为18Vp-p,就可以收到4.5 Vp-p。第4.5.2.1.2条款规定终端输出电压上可以有小于900 mVp-p的畸变和振铃,到达输入端的噪声便有225 mVp-p,即第4.5.2.1.2.4条款测的仅是内部噪声。

1553B的接收是允许有一定量的噪声的,例如第4.5.2.1.2.1条款规定,输入为0.86~14 V,小于0~0.2 V时不响应,就是说大于0.86 V时必须正确识别出跳变,小于0.2 V时必须不能把噪声识别为跳变。环境好的时候还是有一定量的噪声的,如果此时外部的噪声同为140 mV,那么sigma=0.066 V 同样算得的bergood=6.9×10-7,字错率为wergood=1.38×10-5,这说明1553B对噪声是敏感的。

工业现场不同于办公室,有的时候电磁环境恶劣,误码就会比较多,但仍然要安全地工作。例如在CAN总线分析时取的是berbad=0.02[6],profisafe中取的是berbad=0.01[7]。1553B不是在办公室用的,应该参照类似要求,即使取10倍的berbad=0.001,就会有werbad=2×10-2,通常的Manchester 编解码并不能保证标准声称的wer=1×10-7。

4 可能的外来干扰

汽车的线控虽然开始得比飞机晚,但是在电磁干扰方面已有深入的研究。1553B电缆的屛蔽只要求75%,自然会有辐射干扰耦合到信号中,例如汽车ISO7637-3标准描述的干扰。在这里只讨论经由电源系统的传导干扰ISO7637-2标准,其中波形3a、3b代表了开关负载时(例如继电器)产生的干扰脉冲群。对12 V系统干扰峰值可达-150 V(对24 V系统干扰峰值可达-200 V),脉冲宽度为0.1 μs,周期为100 μs。当开关为感性负载时,储存在线圈中的能量要释放,形成反电势,在电源系统中来回反射。福特汽车公司认为应该以实物作测试源[4]:“经验表明,用福特建议的测试可发现通过标准测试而未发现的一些异常。”他们补充测试的波形有A1、A2、B1、B2、C五种,其中A2的细节图形F-4与C引用如下(见图1、图2)。

图2 福特补充的波形C

波形F-4干扰的幅度可达400 V(电源为12 V),而周期接近1 μs。

波形C的幅值是衰减的,较大干扰的周期接近2 μs,可知它们都非常接近1553B的位速率。假定抗干扰措施可使干扰幅度降低200倍,干扰仍可达到与信号接近的大小。航空中用的液压电磁阀的开关也有类似行为,其中阀的返回弹簧储存的势能也要释放,与电能叠加,反电势可能更大。

来自电源的传导干扰可以穿越防错接二级管(1N4000系列二级管反向恢复时间为2~4 μs),经过收发器中打开的门改变输出,波形叠加在正常曼码上就可能形成位错,或者直接改变收发器接收部分的比较器输出。

5 1553B的错误处理方法

1553B的RT在bit级,如果没有采集过0跳变便认为有错;在word级,有奇校验错,指令字有效性检验;在message级,BC可以对RT回送的状态位检验。

RT在检验失败时,如果指令与自己相关,就修改自己的状态出错标志位。BC查到自己在接收RT传送的状态或数据有错时,可以重新执行传送。1553B允许使用广播指令,为了避免多个RT的竞争,在广播传送数据时没有RT状态字的回送,这样就去掉了这种错误检验机制。所以标准的第10.6条款不推荐广播指令。

1553B有两条冗余的电缆连到需要冗余的每个RT上,但是它们不是同时传送同一消息,并不像有些总线那样2选1,只要有一处成功便可,更不像有些设计,必须两个结果相同才认为正确(避免漏检的错帧)。1553B应用中采用的策略往往是“如果一条电缆上传送失败,就在另一条电缆上再试一次,如果再失败,这条消息就不送了,接着服务下一条消息。”

1553B设置有后备BC,主BC失电或内部自测有问题时由后备接替,交接是由两个BC间的直接连接实现(由应用者设计而非1553B的标准功能)。

6 漏检错处理的问题

1553B只有奇偶校验,检错能力很弱,只要有两个错就检不出了,形成错字漏检。

由于避免使用广播指令,可能会产生多台计算机在个别传送中收到不同的漏检数据字。4冗余系统只能剔除一个错,有两个错时2:2分裂,输出就含有出错的内容。以同一消息送4次为例,出2个数据字漏检错的概率为Psys=4×3/2×Pres.w2×(1- Pres.w)2。其中Pres.w=17×16/2×berbad2×(1-berbad)15为字漏检错率,如果berbad=0.01,Pres.w=1.36×10-2,Psys=1.1×10-3就非常危险了。例如控制周期为20 ms时,每小时要用到该数据为3 600×50=1.8×105次,坏状态占0.001时,冗余系统每小时失效数为2×10-1次。

指令字由5位RT地址、1位收发指令、5位RT子地址、5位传送字数和1位奇偶位构成。1553B的状态字只含有RT地址,子地址错时回送检验就查不到。发生错字漏检时,例如子地址和检验位中有两个错,那么传送的内容就会送错地方或取错地方。例如取了别的传感器的值、送到了错误的控制界面,或者采用多次签名重传解决拜占廷错的容错算法时[5],存取错了地址就会使整个算法出错,也会使算法崩溃,这种情况的概率为Pres.w=1.36×10-2。

指令字的子地址取00000或11111时,后接的5位域被解释为模式控制指令。当指令字发生两个错而漏检时,便可能把对RT送出子地址的数据收发指令变为对RT的模式管理指令,或者两个错都发生在模式控制指令内容中时,造成指令的错误执行。例如要求RT“传送状态字”(00010)被误解为“关断另一个通道的发送器”(00100),就会使冗余通道失效。又如要求RT进行一次“同步”(00001)被误解为要求RT“复位”(01000),这个RT就会因自检、初始化等停止相当一段时间的例行工作,出现此类问题的概率是Pres.w=1.36×10-2。

状态字前5位为发送该状态字的RT1的地址,后面各位各有定义,其中第10位为工具位(instrumentation),它是可选项。出现两位错时,RT1发送的状态字可能被RT2(地址与RT1相差1位或2位)理解为指向自己的指令字。RT2回送的状态字和RT1后继的数据字便会在总线上冲突,或者与BC下一个指令字冲突。冲突要在总线空闲时才会结束,冲突何时结束与BC的调度表有关,也与竞争结果有关:冲突中是否会启动在第二条电缆上的传送与情景有关;冲突是否引起指令字解释为总线管理类指令也与当时的情景有关。冲突中的异常指令、数据没有被丢弃的保证,是否不会使故障扩大也无保障,出现此类问题的概率Pres.w=1.36×10-2。

7 可检出错处理的问题

1553B第4.4.3.3条款处理无效指令字时存在丢帧可能。

当总线空闲时发生毛刺,引起虚假的指令字sync段,如果时间小于12 μs接着有正确指令字,RT会认为有无效指令字;如果指令字传送中有错,RT也会认为有无效指令字。第4.4.3.3条款规定:RT对无效指令字将不作响应,即不会发送状态字。

第4.4.3.3条款没有规定RT要将自己状态字中的出错标志(message error flag)置位。而其他情况下,例如第4.4.3.4条款规定有非法指令字时,RT要将出错标志置位并回应状态字,第4.4.3.6条款规定,RT收到无效数据字时要置位出错标志不发状态字。根据参考文献[2]的解释,因为指令字中的错误使RT无法知道这条指令字是发给自己的。从其他系统的经验得知,往往会由节点的出错计数器机制(例如CAN总线)来惩罚有错节点,以使后续的系统降级运行有依据。既然不能判定是发给自己的,不设出错标志也是合理的。

丢帧也会形成拜占廷错,丢帧、冗余系统的输出出错、控制系统不同通道之间不同步、对象失稳成为故障传播的链条。

细读参考文献[1]所举例子的图,可知它是非标准的1553B协议(它的字长为28位),先收到指令字,然后发送数据字时波形有错。文章没提到二极管在什么线路中,根据见到的其他资料,有将二极管加在收发器输出和变压器(中心抽头接地)接头之间的接法。当二极管断为电容时,收发器的一个输出便经电容接变压器,输出电压的正负极就有不对称的充电了,从测试图可看到这一点。此时同步过0点的电压差为0.65 V,即文章所称的1/2值,不能保证所有节点都能识别。即使不使用广播指令,因传送逐一犯错而丢帧时,4台计算机就会一一表决分裂。

以4冗余系统同一消息送4次为例,当消息传送结束,BC没有等到RT的状态字时,采用的策略是在另一条电缆上再试一次,如果再失败,这条消息就不送了,接着服务下一条消息,这仍然是一种丢帧的结果,只是概率小一点。两次传送仍丢帧的概率为Plost=wer2,系统出2个指令字错(丢帧)的概率为Psys=6×Plost2×(1-Plost)2。werbad=2×10-1时,Plost=4×10-2,Psys=9.6×10-3,坏状态占0.001时,采用再发一次的冗余系统每小时失效数为9.6×10-3×1.8×105×10-3=1.7次。

有些丢帧并不进入冗余系统,例如管理类的模式指令对系统也极为重要(例如同步指令使飞机中有关的时基同步、节点复位等),丢帧会直接影响导航、武器目标精度。采用发两次再丢帧的方案失效的概率是比较大的,werbad=2×10-1,Plost=(werbad)2=4×10-2,如果每小时只传送10次模式管理命令,坏状态占0.001时,也会有失效数为4×10-1次,丢帧也会成为潜伏故障,发展为更严重的安全失效。

结 语

1553B协议设计上的薄弱环节多,可依赖性不够,如果考虑将来采用270 V的电源,其干扰的幅度会更大,1553B则更难适应。但是由于系统存量大,在不改协议的条件下寻求改善的方案是当务之急,这种改进是有可能的。

但是随着功能安全要求的严格、各种漏洞的深究、电磁环境的恶化,CAN总线也显得不足,正在探讨称为IntCAN的改进方案,以减少错帧漏检率、改善一致性、提供降额运行方案、提高抗黑客攻击能力和改善诊断维修效率。总之,老的协议存在不足才会有新的协议推出。

如需与作者联系,可以发邮件到:yfy812@163.com。

参考文献

[1] Keven Driscoll,Brendan Hall.NASA VVFS and Related Experience as an AADL Development Driver[C]//SAE AS-2C,2012.

[2] John Rushby.Rafety,Fault Tolerance,Verification,and Certification for Embedded Systems[C]//guest lecture,2009.

[3] AIM Gmbh.MIL-STD-1553B Tutorial,2010.

[4] Ford Motor Company.Component and Subsystem Electromagnetic Compatibility Worldwide Requirements and Test Procedures ES-XW7T-1A278-AC,2003.

[5] 杨福宇.分布式嵌入式系统中的交互一致性[J].单片机与嵌入式系统应用,2011(3):4-7.

[6] J Unruh,H J Mathony,K H Kaiser.Error Detection Analysis of Automotive Communication Protocols[C]//SAE Int Congress,Detroit,USA,1990.

[7] PROFIsafe System Description [EB/OL].[2016-09].http://www.profibus.com/nc/downloads/downloads/profisafe-technology-and-application-system-description/download/9594.

Yang Fuyu

(Chongqing Institute of Industrial Automation and Instrumentation,Chongqing 400123,China)

1553B is a communication protocol used in x-by-wire system.The noise margin considered in hardware is just its internal produced part.The real EMI is far more serious than that.The error check in word is just a parity bit,hence the undetected error rate will be large.The status word just includes part contents of the command word.The masquerade error will happen due to undetected error.The bus command node is hard to correct the error in command word transmission.It can retry twice at most.This will lead to the message lost.Undetected erroneous message and message lost will cause corruption of multiple redundant systems.They also can cause network management fail and form a latent fault.In undetected error case,if ber=0.01(like that in CAN and Profisafe),a quadruple redundant system (drop maximum and minimum inputs,take average of rest two inputs as output) may fail 2×10-1times in an hour.

1553B;dependability;functional safety;failure of x-by-wire

TP302

A

�士然

2016-09-08)

猜你喜欢
条款指令总线
性侵未成年人新修订若干争议条款的理解与适用
正确审视“纽约假期”条款
On Knock-for-Knock Principle:Analysis of SUPPLYTIME 2017 Clause 14(a)
ARINC661显控指令快速验证方法
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
杀毒软件中指令虚拟机的脆弱性分析
中断与跳转操作对指令串的影响
制定一般反滥用条款:达成平衡
多通道ARINC429总线检查仪