基于LPC2210的ARINIC429總線測試裝置研究
ARINIC429總線是上個世紀80年代商務飛機所廣泛使用的一種航空總線。其信息內容綜合了200多種航空參數,主要是為了解決航空設備中點對點的數據交互。
本文引用地址:http://www.104case.com/article/201611/319042.htmARINIC429總線數據編碼方式可以劃分為二進制位數據編碼(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 (*((volatile uint16 *)0x8300000E))
#define CHB_oe1 (*((volatile uint8 *)0x83000010))
#define CHB_oe2 (*((volatile uint8 *)0x83000012))
……
/*通道A數據發送*/
CHA_ld1 = 429data1;/*高字*/
CHA_ld2 = 429data2;/*低字*/
/*寫入6963命令字節*/
void wirteT6963com(uint8 com){
t6963COM = com;
結語
整個測試裝置采用直流+28V機載電源供電,配備+24V備用電源接口,內部集成DC-DC電源模塊進行變壓,產生+5V、±15V電壓供硬件電路使用,功耗5.2W,滿足國家軍事標準機載B類設備的電源特性要求。通過尖峰沖擊、過壓和欠壓浪涌等電源特性的考核,精度滿足多數外場測試的要求。■
參考文獻
1. 周立功.ARM嵌入式系統基礎教程.北京航空航天大學出版社
2. 周立功.ARM嵌入式系統軟件開發實例.北京航空航天大學出版社
3. LPC2210數據手冊
4. EPM3000A系列數據手冊
評論