第4章:ARINC 429 总线硬件接口:收发器芯片、差分信号与终端匹配

各位同学,今天我们聊聊ARINC 429总线的硬件接口。这部分内容,说白了就是物理层的东西。你软件写得再好,协议栈再熟,硬件接口没搞好,数据一样传不出去。

我当年刚入行时,就吃过这个亏。板子调通了,软件逻辑全对,但数据就是收不到。折腾了两天,最后发现是终端电阻焊错了位置。嗯,这种坑,我希望你们别踩。

4.1 收发器芯片:总线的“翻译官”

ARINC 429总线上跑的是差分信号,而我们的CPU或FPGA处理的是TTL/CMOS电平。谁来做这个转换?就是收发器芯片。

市面上常见的型号有HI-8582、HI-8583、DEI1016等。我个人习惯用HI-8582,原因很简单:它集成度高,外围电路少,而且我手头项目里用了七八年,没出过问题。

核心功能:

  • 将TTL电平的32位数据字,转换成ARINC 429标准的差分信号(±10V或±5V)
  • 反过来,把总线上的差分信号,还原成TTL电平给处理器
  • 提供必要的电气隔离和驱动能力

HI-8582的引脚功能,我简单列一下:

引脚 名称 功能说明
1 VCC +5V供电
2 GND
3 TXA 发送数据A(差分正端)
4 TXB 发送数据B(差分负端)
5 RXA 接收数据A(差分正端)
6 RXB 接收数据B(差分负端)
7 EN 使能引脚,高电平有效
8 DATA TTL数据输入/输出

你想想看,一个芯片搞定发送和接收,是不是很方便?但要注意,ARINC 429是单向总线,所以发送和接收是独立的。你不能用同一个收发器同时收发,得分开走。

我的经验:选型时,注意看芯片的驱动能力。长线传输(比如超过30米),建议选驱动电流大一点的型号。HI-8582的驱动电流是±30mA,一般够用。如果距离特别长,可以考虑加一级缓冲。

4.2 差分信号线设计:抗干扰的关键

ARINC 429用的是差分信号传输。为什么用差分?说白了,就是抗干扰能力强。

你想想看,两根线绞在一起,外界噪声同时耦合到两根线上,但接收端只看两根线的电压差。共模噪声被抵消了,信号就干净了。

设计差分线时,有几个要点:

  • 阻抗控制:差分阻抗要求78Ω±5Ω。这个值不是随便定的,是ARINC 429标准规定的。
  • 线对绞合:TXA和TXB要绞在一起,RXA和RXB也要绞在一起。绞距一般每英寸3-5绞。
  • 屏蔽:建议用屏蔽双绞线,屏蔽层单端接地。
  • 长度限制:标准规定最大传输距离100米。但我建议别超过50米,信号质量会更好。

注意:差分线不能走得太长,也不能走直角。我在一个项目中见过,PCB上差分线走了个90度直角,结果信号反射严重,数据误码率飙升。后来改成45度走线,问题就解决了。

另外,差分线的长度要尽量相等。为什么?因为信号在两根线上传播速度一样,如果长度不等,到达接收端的时间就有差异,这叫“时序偏移”。

我曾经在一个机载设备里,差分线长度差了2厘米,结果数据偶尔出错。查了两天才发现是这个问题。嗯,从那以后,我画PCB时都会把差分线长度控制在±1mm以内。

4.3 终端电阻匹配:消除信号反射

终端电阻匹配,是ARINC 429总线设计里最容易忽略、也最容易出问题的地方。

信号在总线上传输,遇到阻抗不连续的地方就会反射。反射回来的信号叠加在原信号上,轻则波形畸变,重则数据错误。

ARINC 429标准规定,总线两端各接一个75Ω电阻到地。为什么是75Ω?因为差分阻抗是78Ω,75Ω是标准值,接近78Ω,匹配效果最好。

正确的接法:

  • 在总线的发送端,TXA和TXB各接一个75Ω电阻到地
  • 在总线的接收端,RXA和RXB各接一个75Ω电阻到地
  • 注意:电阻要尽量靠近芯片引脚,走线越短越好

有人会问:为什么不在两根线之间直接跨接一个电阻?嗯,这个问题我当年也想过。但ARINC 429的电气特性决定了,它是对地参考的差分信号,不是浮地差分。所以电阻必须接到地,而不是跨接。

我曾经在一个项目中,看到有人把终端电阻接成了跨接形式。结果总线信号幅度只有正常的一半,接收端死活解不出数据。后来改成对地接法,一切正常。

避坑指南:电阻的精度要选1%的,别用5%的。75Ω电阻在市场上不太好买,可以用75Ω±1%的贴片电阻。如果实在买不到,用两个150Ω并联也能凑合,但我不建议这么做。

4.4 实际电路设计示例

说了这么多理论,我们来看一个实际电路。这是一个典型的ARINC 429收发接口:

// 发送端电路示意
// HI-8582 发送部分

TXA ----[75Ω]---- GND
TXB ----[75Ω]---- GND

// 接收端电路示意
// HI-8582 接收部分

RXA ----[75Ω]---- GND
RXB ----[75Ω]---- GND

// 注意:发送和接收是独立的
// 发送端接75Ω到地
// 接收端也接75Ω到地

这个电路看起来简单,但细节决定成败。我建议你们在画PCB时,把终端电阻放在靠近连接器的地方,而不是靠近芯片。为什么?因为电阻的作用是匹配传输线的末端阻抗,末端就是连接器那边。

另外,电源去耦也很重要。HI-8582的VCC引脚旁边,要放一个0.1μF的陶瓷电容,再放一个10μF的电解电容。电容要尽量靠近芯片,走线要短。我见过有人把去耦电容放得老远,结果电源噪声耦合到信号线上,数据就乱了。

重要提醒:ARINC 429总线的电压范围是±10V或±5V,具体看你的应用场景。如果供电电压不稳,建议加一个TVS管做保护。我曾经在一个项目里,因为电源浪涌烧掉了三个收发器芯片,后来加了TVS管就再也没出过问题。

4.5 调试与测试要点

硬件设计完了,怎么验证?我一般用示波器看波形。

正常的ARINC 429信号,应该是这样的:

  • 空闲状态:两根线都是0V(或者说是高阻态)
  • 数据“1”:TXA为+10V,TXB为0V(或-10V,取决于具体实现)
  • 数据“0”:TXA为0V(或-10V),TXB为+10V
  • 数据“NULL”:两根线都是0V

用示波器看差分信号时,记得用差分探头。如果没有差分探头,可以用两个通道分别看TXA和TXB,然后用数学功能做减法。但这样精度会差一些。

我曾经用普通探头看过差分信号,结果波形全是噪声。后来换了差分探头,信号干净得像教科书一样。嗯,工具很重要。

我的习惯:调试时先测终端电阻的阻值,确认焊接没问题。然后测芯片供电,确认电压正常。最后才看信号波形。一步一步来,别跳步。

好了,这一章的内容就到这里。ARINC 429的硬件接口,说白了就是收发器芯片、差分线设计和终端电阻匹配这三件事。你把这三点搞明白了,硬件设计就不会出大问题。

下一章,我们讲ARINC 429的数据字格式和编码方式。到时候我会结合一个实际的数据解析案例,带你们一步步分析。记得提前预习一下ARINC 429的32位数据字结构。