微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于LPC2210的ARINIC429总线测试装置研究

基于LPC2210的ARINIC429总线测试装置研究

时间:11-20 来源:互联网 点击:
  ARINIC429航空总线简介

ARINIC429总线是上个世纪80年代商务飞机所广泛使用的一种航空总线。其信息内容综合了200多种航空参数,主要是为了解决航空设备中点对点的数据交互。

ARINIC429总线数据编码方式可以划分为二进制位数据编码(BNR)和二到十进制8421编码(BCD),使用32位的双极性非递归“1”“0”组成,其中最高32位为奇偶校验位,每一帧的尾部加上4位静寂间隔位,码速率分为100Kbps和12.5Kbps两种。一般正常情况下接收端电平为+6V。+5V~+13V被认为是逻辑“高”;-6.5V~-13V被认为是逻辑“低”;-2.5V~+2.5V被认为是逻辑“空”,为数据无效状态。

每一帧ARINIC429数据都由五个部分组成,分别为:标号(LABEL)、识别符(SDI)、数据域(DATA)、符号矩阵状态位(SSM)和奇偶校验位(P)。具体意义为:

标号(LABEL): ARINIC429总线数据对每一个航空参数都规定了一成不变的标号,如真空速度标号永远是230。

识别符(SDI):标识数据来自什么数据源,发往哪个目的设备。

数据域(DATA):用于具体说明参数值,使用BCD或BNR编码填充。

符号矩阵状态位(SSM):说明数据属性和发送装置的工作状态。

奇偶校验位(P):ARINIC429数据的奇数校验。

硬件设计说明

如图1所示为ARINIC429总线接收测试装置原理框图,整个设备设计了两路ARINIC429总线收发通道。可以同时发送2路ARINIC429信号,中断接收4路ARINIC429信号。

图1 接收测试装置原理框图

装置核心处理器采用了ARM7T内核的LPC2210。LPC2210具有开放式外部总线结构和JTAG下载调试仿真功能,支持ADS1.2开发环境仿真下载,这些都极大地方便了用户对于实际产品的开发。芯片内部集成16K的RAM,144引脚LQPF封装。外围3.3V供电,核电压1.8V。外部还集成了I2C、PWM、UART等接口总线。

如图2所示,LPC2210使用了11.0592MHz晶振,经过内部PLL控制寄存器,倍频成为60MHz以上的时钟主频。外部存储总线上配置了一片4Mb的SRAM(IS61VL25616编址Ox80000000- Ox8007ffff)和1片16Mb的FLASH(SST39VF160编址Ox81000000- Ox811fffff)。为了方便调试,LPC2210的CE0和CE1片选都加了跳针。如图3所示。调试时程序代码映射到片外SRAM中运行,产品定型后,将程序固化到片外的FLASH运行。系统的总线宽度BOOT[1:0]由跳线控制。

图2 LPC2210处理器部分原理框图

图3 外部存储器件原理图

整个ARINIC429发送环节由HS3182和HS3282器件组成一个ARINIC429收发通道。HS3282是ARINIC429的协议芯片,HS3182是ARINIC429物理层的驱动芯片,工作时需要±15V的差动电压。LPC2210通过一片可编程逻辑器件EPM3064ATC100-6对处理器的数据线、地址线进行编址,并访问外部HS3282芯片。由于LPC2210引脚接口电压为+3.3V,而可编程逻辑器件等其它外围器件I/O引脚电压是+5V,因此每一个引脚串接了一个470W电阻,进行电路保护。EPM3064ATC100-6具体逻辑设计如图4描述。

图4 HS3282逻辑控制框图

LPC2210片选CE3用作地址的锁存控制信号,地址通过锁存器后开始进行逻辑译码。分别使HS3282的CWSTR(命令字读写)、LD1、LD2(发送使能)等关键控制信号有效,完成对ARINIC429收发的时序使能操作。LPC2210数据总线直接连接HS3282的数据线。此外,EPM3064ATC100-6还将外部一个4MHz的时钟源分频成为两路1MHz的时钟供HS3282芯片使用。HS3282发送出TTL电平的信号驱动HS3182,将信号电压抬升至符合ARINIC429总线要求的标准。HS3182工作时需要+15V、-15V电压。

为了便于同用户的交互测试,装置设计了LCD显示屏和操纵键盘。LPC2210的片选CE2编址控制一块240×128点阵T6963控制器的单色液晶显示屏,其接口原理如图5所示,命令字和数据字编址分别为0x82000002、0x82000000。LPC2210操纵T6963控制器进行点阵式的图形显示。

图5 LCD显示器接口原理图

软件设计

本测试装置的软件设计主要流程图如图6所示。

图6 软件流程图

一些主要环节的代码如下:

#include "config.h"

#define t6963COM (*((volatile uint8 *)0x82000002))

#define t6963DAT (*((volatile uint8 *)0x82000000))

#define CHA_ld1 (*((volatile uint8 *)0x83000000))

#define CHA_ld2 (*((volatile uint8 *)0x83000002))

#define CHA_cwstr (*((volatile uint16 *)0x83000004))

#define CHA_oe1 (*((volatile uint8 *)0x83000006))

#define CHA_oe2 (*((volatile uint8 *)0x83000008))

#define CHB_ld1 (*((volatile uint8 *)0x8300000A))

#define CHB_ld2 (*((volatile uint8 *)0x8300000C))

#define CHB_cwstr (*(

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

网站地图

Top