1、基于HS3282的ARINC429航空通讯总线设计基于H S3 282的A RINC42 9航空通讯总线设计摘要: 木丈简要地介绍了航空电子通讯总线AR I NGI29接口的唤件设计和软件算法。系统设计中具有典型性和实用性.关键词:航空电子;差分输出;航空429总线;环形队列功能相对独立的航空电子系统逐步走向综合,例如将宙达、惯导、GPS和机载i|算机联合组成新 型航空图寻航系统备子系统之间的数据通iR变御尤为重要。航空电系统Z间最常的通讯总线足ARINCI 29和155SB.其屮ARINC 4 29广泛使用在波音(Boeing)系列飞机、欧洲空中$勺(Airbus)等机种,我 国的惯导系统也
2、以ARIXC4 29为主雯通讯总线,ARINC42 9总线简介AR I XC 4 2 9 规范又称Marks3 数字信息传输系统(DITSDigital Information Tr ansf er S y stem).是专为航空电子系统通讯而规定的航空丄业标准.解决门京來419规范的许参矛盾 和冲突。它忽略了不同厂家航电系统接口的复杂性,为系统互联提供了统一平台。根据规范,数字怡息通过 对爪向.養分耦介、双绞屏蔽线传输,木质属于串行通讯范踌。数据以32-Bit字(Vgd)恪式传送 毎个字包含1-Bit校验位 8-Bit标号.标号(Label)定义了飞行数据的功能即保持被传输数据的 所属类型,
3、例如属于精度数据、纬度数据等其余的数据位或以数字(一进制或BCD編码儿或以字即编码, 根据L abe 而区分成不同的域。为门吏通讯完全标准化fn防止冲突,所有的飞行功能都已经賦予r辖進的 标号和数据粘式ARIXC429数据发送时经过一级差分驱动,如图1波形所示。前级V+、V-是TTL电平,即逻辑1为5V,逻辑0为0V的正逻辑。经过驱动的第一级输出Vr V-电平和参考电压Vr*有关。而差分运t?结果足参考电压的2倍4图1表示AR I XC4 2 9逻辑 U “Nui 1 ”空数据和逻辑“0”在差分双绞线上电平定义。 在连续传送数据时每个3 2-Bi t字之间至少插入4个空(Null)状态进行隔离
4、,亦即字间隙。字内矗式宦 义如表1所示。注总,其位号从1开始.不是通常的从0开始的习惯。前级差分运算ARINC429数据电平定文ARINC4 29 3 2-Bi t字格式定义ARINC BIT#(数据位)Fu n ction (功能)备注1 8Label标号域9 1 03D I or Data数据源(So urce) s 目的(Destina t i on)或数据的一部分11LSB12-27ata28ISB293 i gn数据的最低有效位3 0.3 1SSM数据32 a rity S xatus数据的最有效位HSS 2 8 2若片和ARINC429收发设计目前ARINC129收发器以HARRI
5、S公司的HS 3 2 8 2 flJ HS3182 M为著名,分别和D evice Engineer ing公司的DEI 1016及BD429完全兼容。HSS28 2是高性能的CMOS型4 29接口,亦能满足类似的时 分多路串行数据通讯.图2是其结构框图,整个芯片只需號5V I:作iW.它具有2路接收、一路发送。 接收器和发送器相互独立,同时工作。戏通道接收器之间也是独立的并行接收.可以直接连接到AR1NC 4 29总线而不需电平转换。数据字长可以是标准的S 2-Bit或25Bi t,接收数据时进行校验,而发 送数据时产生校验。内部定时器可自动调整字间隙(Word Gap).其发送缓冲是一个8
6、x32Bi t的FIFO。图2 HS3282 DEI1CH6结构框图HS8282和CPU接口比校简叽 发送时经常和HS3182配合。HS 3 1 8 2是满足ARINC429规范的、双 极数据输入的线驱动器。这里不再详细介绍这两个芯片的管脚分配,如需嬰可以参考图3。图3 ARIXC129总线收发的经典电路&复位是低电平有效.外部I:作时钟为1MH2。具有一路接收.即第路接收(Rx429At Rk429A)和第一路接收(Rx42 9 BxRx4 29B-) 具有一路发送.即(Tx429+- TX129-).发送时,HS32S2为前级输出.HS318 2为正式差分输出。C2. C3为6 8pF的电
7、容,这两个电容至 关重要,最好采川商粘度军拮电容。一般作为CPU外fflI/0设备的接口芯片,都有片选.读.写信号和 选择片内寄心器的若干地址线。但HS3282有点特殊.每一个寄存器操作信号都需要对CPU信号进行译码 产生。图4是对HS8282控制逻辑示意亂 选挪CPU时最好直接选捕外部数据总线为I 6-Bit以上的, iai MC80186. F2I0等。如果非要用8 Bit的CPU.则需耍2个8-Bit的锁存器,一次将16-Bit 读弓到锁 器中,然后分别对2个锁心器读写,换件和软件都比较麻烦。控制逻辑以CPU提供的I/O操作信号/IS 和读写信号,RD. / WR以及地址A2A1为输入为
8、HS3282产生操作信号,诸如读第-路接收数据寄存器信号 /RCH29A,第二路/ R D-129B.发送低字选通信号/WR429LW.為字 WR4 29HW.发送使能控制T X429EX等。控制逻辑和CPU同时监视HSS2 82的3个状态信号第一路接收准备好信号/Rx 1 RDY. 第一路/ R X 2RDY,发送准备好/Tx 4 29RDY.这些状态信号一方面可供软件食询,另一方血由控制逻辑产生 /INT中断请求。PCID420D324D225DI26DO2TbTXClKTZ/RCWS7RVCCSLERlEN2GHDEHTXWCPLlKCPL2WCnD15 D14 D13D12Dll DI
9、ORX429A*KX429A-33 RX429A-RX29B*rKET, CLK2135 霸40p-7/RX2RDY30JTX42?RDYVCC i 3RZ429B- - tluTvccIWC42?A*4 RX429B4图3 ARJNC429收发电路设计1614 5+3V+15T 15VCACBg匸T12C4P 0.1 L入31T429*4JDA7A+LOUT#6TX429*32T429-13ATiAKT广otrr-IIP11TX42?-p)015HL5 RX42?B-TX429*tX429-GND GNDVRfif CLKSYNC68p 28在图4和下浙的逻辑描述中都没有体现为CPU提供RE
10、ADY信号的耍求。一般情况下,作为10外设的HS32 82读写速度Lt CPU慢应该川一个状态机进行速度匹配.为CPU产生READY信号。表2是对图彳控制逻雅皿地址的种分配方法,并不是唯一的。在发送使能信号TX429EX控制中简敢地把发送准备 好信号/TX429RDY反郴后输出。亦即只耍HS328 2发送器有空闲,就允许发送 HS3282的发送器包扌舌-个F I FO可以存储8个32-Bi t的4 29数据字。在要求爆发式(Burst)发送时.可以把发送使能TX42 9 EN直接由CPU控制。一股处于禁止状态,7 CPU填充HS 3 2 82的发送F IFO字数达到自定数目(如8个)时.再使能
11、发送,使FIFO中数据帧泻而出。表2 HSS282寄器分配地址啖操作(Read 打操作(W丫 1 te)冇效信号OOH笫一路接收低字寄存器/RD129A = L,Rx4 29ALW(sel=ao=o)0 1 H第路接收岛字寄器/RD-129A = L.Rx 4 29AHV(SEL=AO = 1)02H第一路接收低字寄存器/ RD42 9 A = L,R X 129BLWSL=A 0 =003H第一路接收岛字寄存器悴制奇存器/RD42 9 B =L,R X 42 9 BHWCR4 29 A(SEL=A0= 1 04H发送低字奇存器ZWR-129LW = LTX 429ALW0 5H06H发送ft
12、字奇存器/WR42 9HW = LTX129AHW其实现逻辑如下:IS,RD, WR pi n :/ CPU方的10操作、读写信号皆为低有效.! INT = iRXlRDY 8 :RX2RDY:/ 2路接收准备好,共京中断请求.软件设计上电复位后,软件应在正式工作前初始化HS3282,即向控制器写控制字。初始化时可以设置字长为3 2 -Bit或25Bi to外部提供的工作时钟为iMHz,内部接收和发送速率可以设g为十分之一或八十分之一, 即200Kbps或125Kbp$。也可以设g为自测试模式即HS32 82的发送直接在内部环接到笫一路接 收,反相接到第_路0发送数据,然后比较发送和接收,判断
13、HS3 2 82 X作状况。自测试原理可以参考图1 的框图。在此主要介绍正式工作时软件的一些功能算法3.1原始数据收发在图3和图4的硕件设讣中已经考虑到软件设i|的方便性.软件收发既可以采用査询HS32 8 2的状态 位进行,也可以采用中断驱动。原始数据的收发是整个系统的瓶颈.一般实用程序都采用中斷接收,査询式 发送。中断响应作为核心部分,一股都使川对应嵌入式CPU的汇编语言实现。为清楚起见,采川算法语言 描述。中斷接收数据首先存放到缓冲区,亦即环形队列中.再由主程序读取其结构与算法如下:位S0123 X-2N-1内容R xXumiff PtrRdPtrD a ta B u ffe rEn d
14、 A d d r功能半前接收字数7 佈针读拆针数据缓冲区结束地址/环形队列缓冲区初始化pro C e dure I n itBuf: begin/禁止中断Di s able Inte r r up t ;R X N urn := 0;/接收数目清0VrPtr ;= StartAddr; / / 写指针指向开始地址Rd PtrS t art Addr; H读抬针抬向开始地址Enable Int c r r up t ;/使能中断end;/ ARIXC 4 29环形队列中断接收算法.pr 0 cedure R x 429Int c rr u p tbegx nSave Reg i ster;/保护
15、现场D ataBuf ffrPtr := In p W(Rx429ALW);/ 读 HS3 282 低 1 6-Bit 字ncreament (WrPtr):/写指针加1 ,后移.Da taBufCW rPtr := Inpff (R x 129AH W);/ 读HS3282 1 6-B i t 字I n creame n t(ffr P tr);/写指针加I 后移/禁止更高级中断D i sabl c I nterrupt:Inc r eamen t (R X N u m);/ 修改接收字数,即加1 Enab 1 e Inte rrupt;/开放中if (FrPtr N EndAdd r )
16、then/若写拆针到达队尾.环绕之WrPtr : = S t a r tAddr;/恢复现场R e sto re Re g ist c r : end;/环形队列读取算法.func t ion Rdl29Buf C var LW129,HW4 29: wo rd):boolean ;b ogi nResult ; = F a Ise;i f (R X Num = 0) the n c xit;/如果没有接收数据,则退出Resul t := T rue:LW 4 29 := DataBuf RdP t r:/读队列129低16-Bit字I nc r eame n t (R dPtr);/读指针加
17、1,后移.HW429 := DataBufRd Ptr;I n ere a m e nt (Rd Ptr);/读指针加n后移.Disable Interrupt;/禁止中斷.D c c r eame nt(R xNu m):/修改接收字数.即减1./所读数据有效/开放中断Ena b le I n terr u pt:/若读指针到达队尾.环绕之i f (RdPt r MEndAddr) thenRdPtr=S t ar t Addr:e nd:环形队列初始化应该在系统开放中断前调用接收算法木身就是中断响应,而读収算法在主程序中数据 处理时调用0环形队列缓冲区大小应该和主程序处理速度取得平衡太大则
18、浪费空间,太小则容易溢出,适 成混乱C3.2 多路接收中断共享算法十2路以上接收共亨一个中断时,容易出现覆盖现盘.丢掉某一路数据.或使边沿触发的中斷失效. 不再接收任何数据。这种错误非常隐蔽如图5波形“I在A点第一路准备号/RxlRDY = L. /X I NT 冇效.引起中断 CPU进入中断处理响应,在AB之间已经判定为第一路有效并开始处理。处理到B点时,第 一路接收准备好亦引起中断。但/XINT已经有效不会引起电平变化。中断响应程序继续进行,在C点退 出,没有处理第_路接收。如果中断请求是电平 (Level)墩感中断处理退出后还可以再次进入。但有 相十的系统开销。若中斷请求是边沿(edge
19、)触发在C点退出之后.因未处理第一路接收使得中断请求 /IXT-直保持电平有效但不能产生边沿跳变翻转,中断触发条件水远不能满足.系统死锁。各路数据将无 一幸免的丢失。第_痔 fRxlRDY1人第二路 /Rx2RDYfc中断请求/INT中断处理第一路图5多路接收中断覆盖示意有人解决这个问題时采用“独占中断办法,将每一路接收准备好只对应到-条駛件中断请求上。嵌 入式CPU能提供给外部的坝件中断都比较少,系统外m设备较少时尚能对付,I/O外设和接收通道变多 时就束于无策。实质性解决办法需要“软硕辣施”。如前图4所示,将HS3 2S2的/RxlRDY. /Rx2RDY 等状态信号同时送达CPl组成只读
20、“状态奇存器”,供CPU中斷响应时査询。对中断处理方法如下: /多路共亨中断处理程序算法P r ocedu r e RxSharelRQ begin/保护现场Sa V e R c g i ster:vh i le Data ( / I NT = L) do/ 中断请求信号电平有效beginR C ad SR:Tre a t Receive/读状态寄存器/根据状态.处理对应接收通道。end;/恢复现场Restore Regis t er: end;这个方法已经运州在多个不同种类的系统,证明是非常有效的有人质疑在中断响应中使用循环是否合 适,甚至认为在速度快、路数多的情况下CPU可能全消耗在中断循
21、环中,仍然嬰丢数据。哎呀,怎么得 r” 岂不鸣乎哀哉。其实,路数越乡.这种办法越有效。它进入中斷次数少,系统开销就少.对多路爆发 式数据接收响应快。至于丢数据则更不可能.CPU-股都比外设处理速度快御多。如果CPU速度不足以管 理几路接收,并进行一定的加工处理,还嬰这种“头重脚轻根底注”的系统干什么?3.3 AR IKC 429字与HS3282数据转换ARINC129的32-Bit逻徘字和HS 32 82数拥线卜2个1 6-Bi t的物理字并不完全等同,在数据接 收后的处理和发送前需耍软件进行适半的转换-目前我国在S2 -01规范中规定数字信思传输系统采用H B 6 0 96标准,和上面规定差
22、不多.只是把SDI、LSB、MSB统一规定到数据域,定义如下:D3 2 |d31-D3 0D2 9D28-D9DSD1奇偶位 1状态位符号位20位数据8位标号表3HB6 0 96标准在和上层软件交换数据时.应以ARIXC42 9字格式进行而在控制HS3282收发时应以2个1 6-Bi t物 理字为敢位。底层软件要进行互逆转换0总的转换方法如图6所示注虑,两者的标号逐位逆序对应,即D 7 -D 0等以下是标号转换算法。/ func t ion T r a n s L abel (val u c : b y t e) : by t e;/功能:ARINC429数据标号互换/入口参数:value:原
23、标号值Result =逐位转换后的新标号 functio n Tran s La b el (value: by t c ): b yt o ;b e ginResult0:if ( (value and $01) then R c s u It : = R e suit or $80:/交换DO D7if ( (value and $02) then Re s u ItResult or $ 0 :/交换D 1-D6if C (Labe 1 a nd $01) t hen Resul t : = Resu I t or $20:/交换D2 D5if(C V alue a nd S 0 8 t
24、hen Res u It := Result or $10;(V a u e and $10) th e n R c sul t := Resul t or $08;交换 D4 D3if( thenR c sul t := Re s u It or $ 0 1;/ / 交换 D5 D 2if(value and $40) t h enRc suit := Rc s u It or $02;/ 交换D6 -DI(V a lue and $80) the nResult := Resu 1 t or SOI; / 交换D7 *D0end;至于32-Bi t的ARINC4 29数据和2个16*Bit
25、的HS 3 2 8 2物理字的相互转换,可以参考上面标号互 换方法,不再给出。w flfIMTAUffL_ Q)8 S1 5X?311 79 | 1 ?i 1 js 1 n |3i 1 n 1141 ifl 11/1161 b 11 |i |i7 |n綽1 9屮 |&|9 卜 PUP33 BilARIMC Serial Data Fwrat (Sit 1 i$ Transfnrttod Firel)FUNCTIONBIT13u 1 n 1 111 to| 9 1 B 1 T 1 e H 1 111 ? I卜n 1 i I 11u inK| 39 1 0x2sDWAwaI5IMUor aiABn
26、FUNCTIONWord 2 FormatWort 1 Femai图6 ARINC429与HS3282数据转换四.结束语ns -3 2 82是为ARINC-129度身定做的,而且设il针对现今飞机技术锻苛刻的耍求.所以使用HST2 82來设irARINC-12 g总线既简有效.又严格保证共可黑性。我们已将上述设计应川在多个不同种类的 航空电予系统中,证明是十分有效的。随着航空电f系统之间的通讯标准向ARIXC-1 2 9总线釜拢.HS328 2的应用将更加广泛。429总线定义ARINC是美国航空无线电公司英文字头的缩写,该公司1 977年7月21日出版了 “ARI NC 4 29规范” 一书,
27、42 9规范就是飞机电子系统之间数字式数据传输的标准格式,在飞机 上使用4 2 9总线的电子设备均应遵守这个规范,这样才能保证电子设备之间数据通讯的标 准化通用化。在429规范里规楚了从所选左输出接口发送信息的方法。卅a件之间的连接 线使用由二根线绞结在一起再加上屏蔽保护的专用线,这种传输线称为4 2 9数据总线。4 29 总线只能单向传输数据。徉字位的作用按照A R ING 429总线规宦,每个字格式(二进制或二-十进制)由32位组成:1-8位是标 位(LABE Lh它标记出包括在这个传送字内的信息的类型,也就是传送的代码的意义是什 么。如传送的是VHF信息,则标号为八进制数0 30;若是D
28、ME数据,则标号为八进制数20 1等a9-1 0位是源终端识别(SDI).它指示信息的来源或信息的终端,例如一个控制盒的调谐字要 送至3个甚高频收发机,就需要标示出信息的终端,即把调谐字输送至那个甚高频接收机。11-28或29位是数据组(Data Field),根据字的类型可确宦为是11到28还是1 1 到29。它所代表的是所确宦的特左数据。如标号为03 0 ,则11到29位为频率数据,使用的 是BCD编码数据格式,即位11到2 9。29到30或31位为符号状态矩阵位(SSM),根摇字的类型号为29或30到3 1。它指岀数 据的特性,如南,北,正,负等或它的状态。在甚高频内使用30到31位(B
29、CD编码)。32位为奇偶校验位(P),它用于检查发送的数据是否有效。检查方法是当由位到3 1位所 出现的高电平的位数(即1的数)的总和为偶数时,则在第32位上为“1”。如果为奇数,则 显示为“0”。在发送毎组数据后有四位零周期.它是隔离符号.以便于发送下一组数据。ANINC 429的发送速度有高速(100Kbps)和低速(12.5Kb p $ )两种。意义及硬件要求在航空电子综合化系统中,快速、有效的数据传输对整个航空电子系统的性能有很大的影响, 因此数据总线被称为现代航空电子系统的“竹架”。A R I NC429是航空电子系统之间最 常用的通讯总线之一,它符合航空电子设备数字数据传输标准。要在计算机上实现ARINC 429总线数摇的接收和发送,必须实现4 2 9总线与il算
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1