基于HS3282的ARINC429航空通讯总线设计.docx

上传人:b****6 文档编号:4451367 上传时间:2022-12-01 格式:DOCX 页数:16 大小:124.25KB
下载 相关 举报
基于HS3282的ARINC429航空通讯总线设计.docx_第1页
第1页 / 共16页
基于HS3282的ARINC429航空通讯总线设计.docx_第2页
第2页 / 共16页
基于HS3282的ARINC429航空通讯总线设计.docx_第3页
第3页 / 共16页
基于HS3282的ARINC429航空通讯总线设计.docx_第4页
第4页 / 共16页
基于HS3282的ARINC429航空通讯总线设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于HS3282的ARINC429航空通讯总线设计.docx

《基于HS3282的ARINC429航空通讯总线设计.docx》由会员分享,可在线阅读,更多相关《基于HS3282的ARINC429航空通讯总线设计.docx(16页珍藏版)》请在冰豆网上搜索。

基于HS3282的ARINC429航空通讯总线设计.docx

基于HS3282的ARINC429航空通讯总线设计

基于HS3282的ARINC429航空通讯总线设计

摘要:

木丈简要地介绍了航空电子通讯总线ARINGI29接口的唤件设计和软件算法。

系统设计中具有典

型性和实用性.

关键词:

航空电子;差分输出;航空429总线;环形队列

功能相对独立的航空电子系统逐步走向综合,例如将宙达、惯导、GPS和机载i|•算机联合•组成新型航空图寻航系统•备子系统之间的数据通iR变御尤为重要。

航空电『系统Z间最常的通讯总线足ARINCI29和155SB.其屮ARINC429广泛使用在波音(Boeing)系列飞机、欧洲空中$勺[(Airbus)等机种,我国的惯导系统也以ARIXC429为主雯通讯总线,

ARINC429总线简介

ARIXC429规范•又称Marks3数字信息传输系统(DITS―DigitalInformationTransferSystem).是专为航空电子系统通讯而规定的航空丄业标准.解决门京來419规范的许参矛盾和冲突。

它忽略了不同厂家航电系统接口的复杂性,为系统互联提供了统一平台。

根据规范,数字怡息通过•对爪向.養分耦介、双绞屏蔽线传输,木质属于串行通讯范踌。

数据以32-Bit字(Vgd)恪式传送•毎个字包含1-Bit校验位•8-Bit标号.标号(Label)定义了飞行数据的功能•即保持被传输数据的所属类型,例如属于精度数据、纬度数据等•其余的数据位或以数字(一进制或BCD編码儿或以字即编码,根据Labe]而区分成不同的域。

为门吏通讯完全标准化fn防止冲突,所有的飞行功能都已经賦予r辖進的标号和数据粘式・

ARIXC429数据发送时经过一级差分驱动,如图1波形所示。

前级V+、V-是TTL电平,即逻辑1为5V,

逻辑0为0V的正逻辑。

经过驱动的第一级输出VrV-电平和参考电压Vr*有关。

而差分运t?

结果足参考

电压的2倍4图1表示ARIXC429逻辑U“Nui1”空数据和逻辑“0”在差分双绞线上电平定义。

在连续传送数据时•每个32-Bit字之间至少插入4个空(Null)状态进行隔离,亦即字间隙。

字内矗式宦义如表1所示。

注总,其位号从1开始.不是通常的从0开始的习惯。

前级

差分运算

ARINC429数据电平定文

ARINC42932-Bit字格式定义

ARINCBIT#

(数据位)

Function(功能)

备注

18

Label

标号域

910

3DIorData

数据源(Source)s目的(Destination)

或数据的一部分

11

LSB

12-27

}ata

28

ISB

29

3ign

数据的最低有效位

30.31

SSM

数据

32

>aritySxatus

数据的最《有效位

HSS282若片和ARINC429收发设计

目前ARINC129收发器以HARRIS公司的HS3282flJHS3182M为著名,分别和DeviceEngineering公司的DEI1016及BD429完全兼容。

HSS282是高性能的CMOS型429接口,亦能满足类似的时分多路串行数据通讯.图2是其结构框图,整个芯片只需號5VI:

作iW.它具有2路接收、一路发送。

接收器和发送器相互独立,同时工作。

戏通道接收器之间也是独立的并行接收.可以直接连接到AR1NC429总线•而不需电平转换。

数据字长可以是标准的S2-Bit或25・Bit,接收数据时进行校验,而发送数据时产生校验。

内部定时器可自动调整字间隙(WordGap).其发送缓冲是一个8x32Bit的FIFO。

图2HS3282DEI1CH6结构框图

HS8282和CPU接口比校简叽发送时经常和HS3182配合。

HS3182是满足ARINC429规范的、双极数据输入的线驱动器。

这里不再详细介绍这两个芯片的管脚分配,如需嬰可以参考图3。

图3ARIXC129总线收发的经典电路&复位是低电平有效.外部I:

作时钟为1MH2。

具有一路接收.即

第•路接收(Rx429AtRk429A・)和第一路接收(Rx429BxRx429B-)■具有一路发送.即(Tx429+-TX129-).发送时,HS32S2为前级输出.HS3182为正式差分输出。

C2.C3为68pF的电容,这两个电容至关重要,最好采川商粘度军拮电容。

一般作为CPU外fflI/0设备的接口芯片,都有片选.读.写信号和选择片内寄心器的若干地址线。

但HS3282有点特殊.每一个寄存器操作信号都需要对CPU信号进行译码产生。

图4是对HS8282控制逻辑示意亂选挪CPU时最好直接选捕外部数据总线为I6-Bit以上的,iaiMC80186.F2I0等。

如果非要用8"Bit的CPU.则需耍2个8-Bit的锁存器,一次将16-Bit读弓到锁〃器中,然后分别对2个锁心器读写,换件和软件都比较麻烦。

控制逻辑以CPU提供的I/O操作信号/IS和读写信号,RD./WR以及地址A2A1为输入•为HS3282产生操作信号,诸如读第-•路接收数据寄存器信号/RCH29A,第二路/RD-129B.发送低字选通信号/WR429LW.為•字WR429HW.发送使能控制TX429EX等。

控制逻辑和CPU同时监视HSS282的3个状态信号•第一路接收准备好信号/Rx1RDY.第一路/RX2RDY,发送准备好/Tx429RDY.这些状态信号一方面可供软件食询,另一方血•由控制逻辑产生/INT中断请求。

PCI

D4

20

D3

24

D2

25

DI

26

DO

2T

bTXClK

TZ/R

CWS7R

VCC

S£L

ERl

EN2

GHD

EHTX

WC

PLl

KC

PL2

WC

n

D15D14D13

D12

DllDIO

RX429A*

KX429A-

3

3RX429A-

RX«29B*

rKET,⑹>CLK

21

35霸

40

p-

7

/RX2RDY

30

JTX42?

RDY

VCCi3

RZ429B--t

luT

vcc

IWC42?

A*

4RX429B4

图3ARJNC429收发电路设计

16

14"5

+3V

+15T

•15V

CA

CB

g

T

12

C4

P0.1L

31

T429*

4

J

DA7A+

L

OUT#

6

TX429*

32

T429-

13

£>ATiA・

KT广

otrr-

IIP

11

TX42?

-

p

)0

15

HL

5RX42?

B-

TX429*

tX429-

GNDGND

VRfif>CLK

SYNC

68p]

2

8

 

在图4和下浙的逻辑描述中都没有体现为CPU提供READY信号的耍求。

一般情况下,作为10外设的

HS3282读写速度LtCPU慢•应该川一个状态机进行速度匹配.为CPU产生READY信号。

表2是对图彳

控制逻雅皿地址的…种分配方法,并不是唯一的。

在发送使能信号TX429EX控制中•简敢地把发送准备好信号/TX429RDY反郴后输出。

亦即只耍HS3282发送器有空闲,就允许发送°HS3282的发送器包

扌舌-•个FIFO•可以存储8个32-Bit的429数据字。

在要求爆发式(Burst)发送时.可以把发送使能T

X429EN直接由CPU控制。

一股处于禁止状态,7CPU填充HS3282的发送FIFO字数达到自定数目

(如8个)时.再使能发送,使FIFO中数据帧泻而出。

表2HSS282寄器分配

地址

啖操作(Read>

打操作(W丫1te)

冇效信号

OOH

笫一路接收低字寄存器

/RD129A=L,

Rx429ALW

(sel=ao=o)

01H

第•路接收岛•字寄〃器

/RD-129A=L.

Rx429AHV

(SEL=AO=1)

02H

第一路接收低字寄存器

/RD429A=L,

RX129BLW

S£L=A0=0

03H

第一路接收岛字寄存器

悴制奇存器

/RD429B=L,

RX429BHW

CR429A

(SEL=A0=1>

04H

发送低字奇存器

ZWR-129LW=L

TX429ALW

05H

06H

发送ft字奇存器

/WR429HW=L

TX129AHW

其实现逻辑如下:

IS,RD,WRpin:

//CPU方的10操作、读写信号•皆为低有效.

!

INT=iRXlRDY8:

RX2RDY:

//2路接收准备好,共京中断请求.

 

软件设计

上电复位后,软件应在正式工作前初始化HS3282,即向控制器写控制字。

初始化时可以设置字长为32-Bit或25・Bito外部提供的工作时钟为iMHz,内部接收和发送速率可以设g为十分之一或八十分之一,即200Kbps或12・5Kbp$。

也可以设g为自测试模式•即HS3282的发送直接在内部环接到笫一路接收,反相接到第_路0发送数据,然后比较发送和接收,判断HS3282X作状况。

自测试原理可以参考图1的框图。

在此主要介绍正式工作时软件的一些功能算法•

3.1原始数据收发

在图3和图4的硕件设讣中已经考虑到软件设i|•的方便性.软件收发既可以采用査询HS3282的状态位进行,也可以采用中断驱动。

原始数据的收发是整个系统的瓶颈.一般实用程序都采用中斷接收,査询式发送。

«中断响应作为核心部分,一股都使川对应嵌入式CPU的汇编语言实现。

为清楚起见,采川算法语言描述。

中斷接收数据首先存放到缓冲区,亦即环形队列中.再由主程序读取•其结构与算法如下:

位S

0

1

2

3…X-2

N-1

内容

RxXum

iffPtr

RdPtr

DataBuffer

EndAddr

功能

半前接收字数

7•佈针

读拆针

数据缓冲区

结束地址

//环形队列缓冲区初始化

proCedureInitBuf:

begin

//禁止中断

DisableInterrupt;

RXNurn:

=0;

//接收数目清0

 

VrPtr;=StartAddr;//写指针指向开始地址

RdPtr

StartAddr;H读抬针抬向开始地址

EnableIntcrrupt;

//使能中断

end;

//ARIXC429环形队列中断接收算法.

pr0cedureRx429Intcrrupt

begxn

SaveRegister;

//保护现场

DataBuf[ffrPtr]:

=InpW(Rx429ALW);

//读HS3282低16-Bit字

ncreament(WrPtr):

//写指针加1,后移.

DataBufCWrPtr]:

=Inpff(Rx■129AHW);

//读HS328216-Bit字

Increament(ffrPtr);

//写指针加I•后移•

//禁止更高级中断・

DisablcInterrupt:

Increament(RXNum);

//修改接收字数,即加1•

Enab1eInterrupt;

//开放中

if(FrPtrNEndAddr)then

//

若写拆针到达队尾.环绕之

 

WrPtr:

=StartAddr;

//恢复现场

RestoreRegistcr:

end;

//环形队列读取算法.

functionRdl29BufCvarLW129,HW429:

word):

boolean;

bogin

Result;=FaIse;

 

if(RXNum=0)thencxit;

//

如果没有接收数据,则退出

Result:

=True:

LW429:

=DataBuf[RdPtr]:

//读队列129低16-Bit字

Increament(RdPtr);

//读指针加1,后移.

HW429:

=DataBuf[RdPtr];

Inereament(RdPtr);

//读指针加n后移.

DisableInterrupt;

//禁止中斷.

Dccreament(RxNum):

//修改接收字数.即减1.

//所读数据有效

//开放中断

EnableInterrupt:

//若读指针到达队尾.环绕之

if(RdPtrMEndAddr)then

RdPtr

=StartAddr:

end:

环形队列初始化应该在系统开放中断前调用•接收算法木身就是中断响应,而读収算法在主程序中数据处理时调用0环形队列缓冲区大小应该和主程序处理速度取得平衡•太大则浪费空间,太小则容易溢出,适成混乱C

3.2多路接收中断共享算法

十2路以上接收共亨一个中断时,容易出现覆盖现盘.丢掉某一路数据.或使边沿触发的中斷失效.不再接收任何数据。

这种错误非常隐蔽•如图5波形“I在A点第一路准备号/RxlRDY=L./XINT冇效.引起中断•CPU进入中断处理响应,在AB之间已经判定为第一路有效并开始处理。

处理到B点时,第一路接收准备好亦引起中断。

但/XINT已经有效•不会引起电平变化。

中断响应程序继续进行,在C点退出,没有处理第_路接收。

如果中断请求是电平(Level)墩感•中断处理退出后还可以再次进入。

但有相十的系统开销。

若中斷请求是边沿(edge)触发■在C点退出之后.因未处理第一路接收使得中断请求/IXT-直保持电平有效•但不能产生边沿跳变翻转,中断触发条件水远不能满足.系统死锁。

各路数据将无一幸免的丢失。

第_痔fRxlRDY—1人

第二路/Rx2RDY

fc

中断请求/INT

中断处理第一路

图5多路接收中断覆盖示意

有人解决这个问題时采用“独占中断"办法,将每一路接收准备好只对应到-•条駛件中断请求上。

嵌入式CPU能提供给外部的坝件中断都比较少,系统外m设备较少时尚能对付,I/O外设和接收通道变多时就束于•无策。

实质性解决办法需要“软硕辣施”。

如前图4所示,将HS32S2的/RxlRDY./Rx2RDY等状态信号同时送达CPl^组成只读“状态奇存器”,供CPU中斷响应时査询。

对中断处理方法如下:

//多路共亨中断处理程序算法

ProcedureRxSharelRQbegin

//保护现场

SaVeRcgister:

 

vhileData(/INT=L)do

//中断请求信号电平有效

 

begin

RCadSR:

TreatReceive

//读状态寄存器

//根据状态.处理对应接收通道。

end;

//恢复现场

RestoreRegister:

end;

这个方法已经运州在多个不同种类的系统,证明是非常有效的•有人质疑在中断响应中使用循环是否合适,甚至认为在速度快、路数多的情况下CPU可能全消耗在中断循环中,仍然嬰丢数据。

"哎呀,怎么得r”•岂不鸣乎哀哉。

其实,路数越乡.这种办法越有效。

它进入中斷次数少,系统开销就少.对多路爆发式数据接收响应快。

至于丢数据则更不可能.CPU-股都比外设处理速度快御多。

如果CPU速度不足以管理几路接收,并进行一定的加工处理,还嬰这种“头重脚轻根底注”的系统干什么?

3.3ARIKC429字与HS3282数据转换

ARINC129的32-Bit逻徘字和HS3282数拥•线卜・2个16-Bit的物理字并不完全等同,在数据接收后的处理和发送前需耍软件进行适半的转换-目前我国在S2-01规范中规定数字信思传输系统采用HB6096标准,和上面规定差不多.只是把SDI、LSB、MSB统一规定到数据域,定义如下:

D32|d31-D30

D29

D28-D9

DS—D1

奇偶位1状态位

符号位

20位数据

8位标号

表3

HB6096标准

在和上层软件交换数据时.应以ARIXC429字格式进行•而在控制HS3282收发时应以2个16-Bit物理字为敢位。

底层软件要进行互逆转换0总的转换方法如图6所示•注虑,两者的标号逐位逆序对应,即D7-D0等・以下是标号转换算法。

//functionTransLabel(valuc:

byte):

byte;

//功能:

ARINC429数据标号互换

//入口参数:

value:

原标号值

Result=逐位转换后的新标号functionTransLabel(value:

bytc):

byto;

begin

Result

0:

if((valueand$01)thenRcsuIt:

=Resuitor$80:

//

交换DOD7

if((valueand$02)thenResuIt

Resultor$0:

//交换D1

-D6

ifC(Labe1and$01)thenResult:

=ResuItor$20:

//

交换D2D5

if

(CValueandS08>thenResuIt:

=Resultor$10;

((Va]ueand$10)thenRcsult:

=Resultor$08;

〃交换D4D3

if

then

Rcsult:

=ResuItor$01;

//交换D5—D2

if

((valueand$40)then

Rcsuit:

=RcsuItor$02;

//交换D6--DI

 

((Valueand$80)then

Result:

=Resu1torSOI;//交换D7—*D0

end;

至于32-Bit的ARINC429数据和2个16*Bit的HS3282物理字的相互转换,可以参考上面标号互换方法,不再给出。

wflf

IMTA

UffL

_Q)

8S

15

X?

311»

79

»|»1?

i1js1n|3i1n1141ifl11/1161b11«|i]|i7|n

綽19

屮|&|9卜PUP

33BilARIMCSerialDataFwrat(Sit1i$TransfnrttodFirel)

FUNCTION

BIT

13

u1n1111to|91B1T1eH1<111?

I

n1i

uin

K»|3

9

'10

x

2

s

DWA

w

a

£

I

5

IMU

§

oraiA

Bn

FUNCTION

Word2Format

Wort1Femai

图6ARINC429与HS3282数据转换

四.

结束语

ns-3282是为ARINC-129度身定做的,而且设il•针对现今飞机技术锻苛刻的耍求.所以使用HST282來设irARINC-12g总线既简有效.又严格保证共可黑性。

我们已将上述设计应川在多个不同种类的航空电予系统中,证明是十分有效的。

随着航空电f系统之间的通讯标准向ARIXC-129总线釜拢.HS3282的应用将更加广泛。

429总线

定义

ARINC是美国航空无线电公司英文字头的缩写,该公司1977年7月21日出版了“ARINC429规范”一书,429规范就是飞机电子系统之间数字式数据传输的标准格式,在飞机上使用429总线的电子设备均应遵守这个规范,这样才能保证电子设备之间数据通讯的标准化•通用化。

在429规范里规楚了从所选左输出接口发送信息的方法。

卅a件之间的连接线使用由二根线绞结在一起再加上屏蔽保护的专用线,这种传输线称为429数据总线。

429总线只能单向传输数据。

徉字位的作用

按照ARING429总线规宦,每个字格式(二进制或二-十进制)由32位组成:

1-8位是标位(LABELh它标记出包括在这个传送字内的信息的类型,也就是传送的代码的意义是什么。

如传送的是VHF信息,则标号为八进制数030;若是DME数据,则标号为八进制数201等a

9-10位是源终端识别(SDI).它指示信息的来源或信息的终端,例如一个控制盒的调谐字要送至3个甚高频收发机,就需要标示出信息的终端,即把调谐字输送至那个甚高频接收机。

11-28或29位是数据组(DataField),根据字的类型可确宦为是11到28还是11到29。

它所代表的是所确宦的特左数据。

如标号为030,则11到29位为频率数据,使用的是BCD编码数据格式,即位11到29。

29到30或31位为符号状态矩阵位(SSM),根摇字的类型号为29或30到31。

它指岀数据的特性,如南,北,正,负等或它的状态。

在甚高频内使用30到31位(BCD编码)。

32位为奇偶校验位(P),它用于检查发送的数据是否有效。

检查方法是当由]位到31位所出现的高电平的位数(即1的数)的总和为偶数时,则在第32位上为“1”。

如果为奇数,则显示为“0”。

在发送毎组数据后有四位零周期.它是隔离符号.以便于发送下一组数据。

ANINC429的发送速度有高速(100Kbps)和低速(12.5Kbp$)两种。

意义及硬件要求

在航空电子综合化系统中,快速、有效的数据传输对整个航空电子系统的性能有很大的影响,因此数据总线被称为现代航空电子系统的“竹架”。

ARINC429是航空电子系统之间最常用的通讯总线之一,它符合航空电子设备数字数据传输标准。

要在计算机上实现ARINC429总线数摇的接收和发送,必须实现429总线与il•算

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1