微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 一种多通道ARINC429总线收发容错方法的研究

一种多通道ARINC429总线收发容错方法的研究

时间:06-15 来源:互联网 点击:

Kb/s速率时的半个位周期的计数值也为32,会出现错误。所以,选择33为传输结束的计数值。
3.3 信号调理
接收模块接收到的ARINC429信号去掉了负电平,如图5中的busa和busb。对每一位信号,前半个位周期为数据周期,若busa为“1”且bush为“0”,则所要表达的数据为“1”,反之为“0”。后半个位周期为时钟周期,busa和busb均为“0”。所以,通过将busa和busb进行或非运算,如图中clk_429,在前半个位周期(数据)时为“0”,在后半个位周期(时钟)为“1”。从而提取出了时钟,并以此接收数据。同时,在每一位前半个周期提取出数据,在后半个周期锁存上半个周期数据,得到数据信号bus_d。从信号调理仿真图中可以看出,在每个时
钟信号clk_429的上升沿触发时,可以从bus_d中采集到相应的数据信号。

3.4 校验
校验主要包括奇偶校验和字校验。奇偶校验主要是将所有数据逐位异或,再根据校验方式将异或结果和校验位相比较。
由于ARINC429总线的时钟、数据和字同步信息都由两个差分的信号线来表达,当出现干扰时会使时钟混乱,而字校验则是校验传输中是否有干扰,使传输的数据混乱。

如图6所示,在busa的数据周期出现了干扰信号,导致通过busa运算得到的时钟clk_429也出现了错误,在错误处插入了一位数据,并使后面的数据全部移位。而这种情况,有可能无法被奇偶校验检验出来,则需要通过位检验来检验出来。
位校验是通过校验一个周期的时间是否正确,来判断是否出现干扰信号。位校验信号onebit在接收模块空闲时置0,当busa或busb上升沿到来时取反,并计数其为1时的时间。表2中列出了1位周期的计数值,考虑到传输误差,当计数值满足条件:cnt_one∈|x|7≤x≤9或63≤x ≤65}时,传输无误,反之则视为错误数据,将位错误标志位wrongbit置1,在接收完成后将此数据舍掉。

4 倍频容错的自适应速率接收方法
在前面提出的数据接收方法中,如遇到干扰信号,经位检测检测到后,则把该数据舍去。虽然保证了数据传输的正确性,但无法保证数据的有效传输,需要多次反复传输,来确保把所需传输的数据都传输到接收方。干扰信号无处不在,无法在根本杜绝,但是却可以通过算法来修正错误的数据。
这里使用的容错数据接收方法,电平转换电路、端口定义和状态转换都与以上的方法相同,但不采用ARINC429总线提供的时钟采集数据,而是对ARINC429总线的两根信号线分别进行8倍频的采样。通过检测中前4次时钟周期的平均值来计算出数据的传输速率,对后面的数据选择相应的接收频率来接收。对于每一根信号线,当每一位采样得到的数据不一致时,即由于干扰导致产生波动时,采用投票的方式表决;
再将两根信号线的信息进行综合比对,纠正错误信号;如还有错误位,且只有1位错误,则运用校验位信息计算出该错误位的实际信息,否则才舍掉此数据。
4.1 传输速率自动识别
普通的ARINC429接收模块设计中没有检测传输速率,是因为无需通过传输速率来识别数据传输结束时的四位时钟周期。而本文所介绍的方法,则需通过速率来选择采样频率。当传输速率为100 Kb/s时,用800 kHz的时钟采样;当传输速率为12.5 Kb/s时,为使时钟统一采用800 kHz的时钟,但用计数器计数,计数值为8才采样一次,以实现100 kHz采样。
在接收模块处于接收状态时,累加前4个周期时钟周期,即busa和busb均为0的周期的计数值,然后将此累加和除以4,即右移2位,从而计算出了前4个时钟周期的平均值,并据此计算出速率。因此,在前4个周期,用800 kHz的时钟采样。计算出传送速率后,若为12.5Kb/s,则切换为100 kHz采样时钟。
4.2 采样数据处理
采用8倍频对信号进行采样,这样对每一位而言,前半个周期的数据采样了4次,后半个周期的归零时钟也采样了4次。将对数据采样4次得到的4个数据进行对比,若4个数据一致,则传输无错误;若4个数据有3个一样,则采用投票的方式,采信3个一样的数据;若两个数据为0,而另两个数据为1,则无法判断此位数据的值,记为错误位。
由于ARINC429总线采用差分方式传输,即同时接收到两组数据。可同时对这两组数据做位检测,并对其进行综合判断。
若经位检测,测得A线为1,B线为z,则B线实际为0,即逻辑“1”;因为A线为1时,B线只能为0,来表达逻辑“1”,A、B线均为1的情况不存在。同理,测得A线为z,B线为1,则A线实际为0,即逻辑“0”。然而,若A或B线中,一个为0,另一个为z,则无法判断其值;因为A、B线同时为0的情况存在,表示的是时钟,只能将其记为错误位,如表3所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top