• 基于HI-8582的ARINC429总线设计
    电子产品世界

    摘要:简要介绍了ARINC429总线和HI-8582芯片的特点,给出了基于HI-8582的ARINC429总线设计思路和方法。最后结合工程实际给出了单片机AT89C52的数据收、发程序实例。
    关键词:HI-8582,ARINC429接收,ARINC429发送,AT89C52
    1 ARINC429总线及协议芯片HI-8582简介
    1.1 ARINC429航空总线简介
        ARINC429总线是美国航空无线电公司制定的民用航空数字总线传输标准,它规定了使用该总线的航空电子设备的信息流向和ARINC429基本数据字的格式。ARINC429为单向传输总线,信息只能从通信设备的发送口输出,经传输总线传至与它相连的需要该信息的其他设备的接收口。在需要两个通信设备间双向传输时,则在每个方向各用一根独立的传输总线。ARINC429通信采用带有奇数奇偶校验的32位信息字,信息字通过标牌识别,最多具备256个标牌。采用双极性归零制的三态码调制方式,即调制信号由“高”、“零”和“低”状态组成的三电平状态调制。
    1.2 HI-8582简介
        目前在机载设备中使用的ARINC429总线协议芯片较多,相比之下,HOLT INTEGRATED CIRCUITS公司生产的HI-8582是一款性能价格比较高的ARINC429协议芯片。该器件的主要功能如下:
    ●符合ARINC429总线协议;
    ●具有独立的双向接收和发送接口;
    ●无需驱动,可直接上ARINC429总线;
    ●标牌可程序化识别;
    ●串行数据速率可设位为100kbps或12.5kbps;
    ●对接收的数据可进行奇偶状态校验;并可对发送数据奇偶状态进行设置;
    ●可自动产生字与字之间的间隔; 
    ●52脚PQFP封装,节省印制板空间。
    2 AT89C52与HI-8582的接口设计
    2.1 接口原理介绍

        由于AT89C52是8位处理器,而HI-8582是16位接口芯片,在接口设计中利用一片CPLD实现接口,设计中选用了ALTERA公司的EPM7128作为接口电路。电路框图见图1。
    图1中,D1为单片机AT89C52,其中P0端口用于数据的的交换,P2端口用于控制,利用两个外中断INT0、INT1接收收到的429信号,单片机的复位信号是硬件看门狗产生的,图1中没有画出,复位信号RST作为CPLD的输入信号,单片机的时钟选用12MHz,同时12MHz作为CPLD的时钟源。D2为CPLD器件EPM7128,主要完成8位总线和16位总线的转换、数据交换、编译码、产生HI-8582的时钟和复位信号。D3为ARINC429接口电路HI-8582,BD00~BD11为双向数据总线与EPM7128相接,其余均为离散量。

    2.2 CPLD的控制逻辑

    图2 接口电路的CPLD控制逻辑

    图2 接口电路的CPLD控制逻辑

    CPLD的控制逻辑见图2。U12为反向器,单片机的复位信号反向后送HI-8582的MR管脚,复位HI-8582中的寄存器。U6~U11构成了分频电路,将12MHz的时钟频率分为1MHz,作为HI-8582的时钟信号。U1~U5为三态8D触发器,由OE控制输出,CLK为时钟控制,上升沿锁存数据,低电平保持,当OE为高电平时输出为高阻状态。
    2.3 HI-8582的复位及初始化
        电路上电后,单片机首先复位RST管脚(高电平有效),同时RST反向后复位HI-8582,然后把控制字写到16位数据总线上,此后便可接收和发送数据。一般情况下,当既不能接收又不能发送数据时,应怀疑初始化过程。初始化程序如下:
     
    CLR 7BH;CWSTR清0
    MOV P0,2FH;
    SETB P2.0;
    CLR P2.0;上升延锁存
    CLR P2.2;设置8582为输出模式
    MOV P0,#31H;
    SETB P2.3;上升延锁存控制字低8位
    CLR P2.3;
    MOV P0,#0E0H;
    SETB P2.1;上升延锁存控制字高8位
    CLR P2.1;
    SETB 7BH;
    MOV P0,2FH    ;
    SETB P2.0;上升延锁存
    CLR P2.0;
    SETB P2.2;设置8582为输入模式
     
    2.4 HI-8582的数据发送过程
        HI-8582发送数据时,首先应置ENTX引脚为低电平,再将PL1置低,将低16位数据写到16位数据总线上,之后,将PL1置高,再将PL2置低,将高16位数据写到16位数据总线上,数据写完之后,将ENTX置高。HI-8582的发送存储器最多可装载16个32位字长的数据,HI-8582采用的是先进先出的发送顺序。发送程序如下:
     
    MOV R0,#0A0H;
    CLR 7CH;ENTX置低
    MOV P0,2FH;
    SETB P2.0;
    CLR P2.0;
    CLR 7EH;PL1置低
    MOV P0,2FH;
    SETB P2.0;
    CLR P2.0;
    CLR P2.2;设置8582为输出模式
    MOV A,@R0;读入8位数据
    MOV P0,A;
    SETB P2.3;
    CLR P2.3;
    INC R0;
    MOV A,@R0; 读入8位数据
    MOV P0,A;
    SETB P2.1;
    CLR P2.1;
    INC R0;
    SETB 7EH;PL1置高
    MOV P0,2FH;
    SETB P2.0;
    CLR P2.0;
    SETB P2.2;
    CLR 7DH;PL2置低
    MOV P0,2FH;
    SETB P2.0;
    CLR P2.0;
    CLR P2.2;
    MOV A,@R0;读入8位数据
    MOV P0,A;
    SETB P2.3;
    CLR P2.3;
    INC R0;
    MOV A,@R0; 读入8位数据
    MOV P0,A;
    SETB P2.1;
    CLR P2.1;
    SETB 7DH;PL2 HIGH
    MOV P0,2FH;
    SETB P2.0;
    CLR P2.0;
    SETB 7CH;ENTX置高
    MOV P0,2FH;
    SETB P2.0;
    CLR P2.0;
    SETB P2.2; 
    2.5 HI-8582的数据接收过程
        当接收器1接收到数据后,系统会置HF1低电平,而当接收器2接收到数据后,系统将置HF2为低电平。欲使接收器1将接收数据的字1送至16位数据总线上,应先置SEL为低电平,再置EN1为低电平,而后再置EN2为高电平,SEL为高电平,便可将字2送至16位数据总线。要使接收器2的数据送至位数据总线上,则置EN2为低电平,EN1为高电平即可。接收程序如下:
     
    CLR 7AH;从FIFO中读数据
    MOV P0,2FH;SEL置低
    SETB P2.0;
    CLR P2.0;
    CLR 78H;EN2置低
    MOV P0,2FH;
    SETB P2.0;
    CLR P2.0    ;
    SETB P3.3    ;
    CLR P3.3    ;
    CLR P2.6;设置8582低8位输入
    SETB P2.7    ;
    CLR P2.7;锁存8582低8位输入
    MOV A,P0;读429第1字节(8位)
    MOV R2,A;保存数据
    SETB P2.6;设置第一字节输入为高阻
    CLR P2.5;设置第二字节为输入
    SETB P2.4;
    CLR P2.4;锁存8582第二字节输入
    MOV A,P0;读429第2字节(8位)
    MOV R3,A; 保存数据
    SETB P2.5;高阻状态
    SETB 78H;EN2 HIGH
    MOV P0,2FH;
    SETB P2.0;
    CLR P2.0;
    SETB 7AH;SEL置高
    MOV P0,2FH;
    SETB P2.0;
    CLR P2.0;
    CLR 78H;EN2置低
    MOV P0,2FH;
    SETB P2.0;
    CLR P2.0;
    CLR P2.6;
    SETB P2.7;
    CLR P2.7;
    MOV A,P0;读429第3字节(8位)
    MOV R4,A;保存数据
    SETB P2.6;高阻状态
    CLR P2.5;设置低8位为输入
    SETB P2.4;
    CLR P2.4;
    MOV A,P0;读429第4字节(8位)
    MOV R5,A;保存数据
    SETB P2.5;高阻状态
    SETB 78H;EN2置高
    MOV P0,2FH;
    SETB P2.0;
    CLR P2.0; 
    以上程序采用中断接收数据,当HI-8582的FIFO满后,HF1或HF2将变为低电平,产生中断,按以上程序处理结束后,HF1或HF2将变为高电平,从而完成一次数据的接收流程。
    3 结束语
        按照本文介绍的方法已成功实现HI-8582的ARINC429航空总线接口设计,设计的机载设备已批量装备现役飞机,效果良好。
    参考文献:
    1 SZ-01数字信息传输系统,HB6096-86,中华人民共和国航空工业部标准.
    2 HI-8582,ARINC 429 System on a Chip, HOLT INTEGRATED CIRCUITS.
    3 MAX 7000 Programmable Logic Device Family Data Sheet,Altera Corporation.




     
     
    网站首页  |  关于我们  |  联系我们  |  广告服务  |  版权隐私  |  友情链接  |  站点导航