01总线和总线协议
民用飞机通过A429、A629、A6***、TTP等常见的飞行空总线提供机载系统与飞控、航电等设备之间传输信号的通用路径。,并且可以实现系统内部和系统之间的数据交互。
每条数据总线都定义了一套如何使用的规则,就是“总线协议”。相关的数据收发设备必须遵循相同的“总线协议”才能实现正常通信。
比如A429总线,ARINC(中国航空空***电通信公司)发布了三个总线规范文件。
02总线传输信号的完整性
按照飞机系统的安全评估流程,如果某些信号出现错误或异常,对飞机安全产生重要影响,那么我们通常对这些信号的完整性要求非常高。
根据目前的工业水平和A429、A6***等总线协议的特点,总线传输信号的可用性可以达到1E-4/FH到1E-5/FH之间,完整性可以达到1E-5/FH到1E-6/FH之间(只考虑传输路径,不考虑信号源[/S2]。
关于“可用性”和“完整性”的更多解释,请点击阅读:
“可用性”和“完整性”在飞机系统安全中意味着什么?
如果对信号完整性有更高的要求,可以通过
冗余表决
或
校验应用层CRC
来实现。
冗余投票方案,点击阅读:
民用飞机飞控系统,传感器信号怎么投票?
以
循环冗余校验
(
CRC
)为例,介绍一种常见的信号传输
完整性解决方案
。
03什么是循环冗余校验(CRC)?
是CRC
循环冗余校验
的缩写,全称是
循环冗余校验
。
CRC的基本原理是发送方根据CRC算法对总线上要传输的原始数据进行计算,得到一个
CRC校验码
(简称A),它与原始数据有着内在的联系。发送方将原始数据与校验码A组合,并发送给接收方。
接收端接收到数据后,通过算法独立计算原始数据得到新的CRC校验码(简称B),并
比较两个CRC校验码
(A和B)[S2/]进行验证。如果不一致,说明数据在传输过程中是错误的,从而提高了总线传输数据的完整性。
假设原始数据可以由
n
多项式
P(x)
表示如下:
其中
a
是0或1;
x
用于表示二进制数据的排列位置。例如,10位二进制数1101011011由多项式表示,如下所示:
如下图所示
P(x)
除以一个CRC多项式后,可以得到一个余数
R(x)
,这个余数就是CRC校验码。
CRC算法中常见的
生成多项式
如上图所示。
注意:多项式表示或二进制表示比较繁琐,给交流带来不便,所以实际使用中经常使用十六进制表示法。同时考虑到多项式的最高位是1,并且最高位的位置可以由原始数据的位宽来确定,所以在十六进制记数法中去掉了最高位1。
04 CRC校验码是怎么产生的?
在CRC算法中,多项式的乘除运算可以对应二进制数的
模2运算
,也就是我们通常所说的
异或运算
。
在工程应用中,我们希望余数的位数是固定的,这样在实现时可以节省资源。常见的CRC方案是16位或32位。如果原始数据的长度短于CRC码,则必须将其扩展到16/32位以上,以获得16/32位的余数。通常的做法是在原始数据的右侧添加相应的CRC码位。
下面用一个简单的例子来说明CRC校验码
的
计算过程。
假设原二进制数据为
1101011011
,采用4位CRC校验,则除数多项式为CRC-4,即
10011
。计算过程如下(计算前原始数据加4个零)。
最后的余数是
1110
,这是计算出的4位CRC校验码。16/32位CRC校验码的计算过程类似。
05摘要
理论上32位CRC可以提供
99.9999976716935634613037109375%的检错率,或者传输链路完整性可以达到
2.328E-10
(1/2的
32次方[
当然,CRC只是提高传输信号完整性的一种措施,而不是唯一的。感兴趣的朋友请留言,让我们一起探讨民用飞机的世界!
本文来自长街旧人投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/489946.html