一種智能化ARINC429通訊卡設(shè)計(jì)與實(shí)現(xiàn)
摘要:介紹了一種基于ARM微處理器的ARINC429航空總線通訊卡的設(shè)計(jì)方法,以實(shí)現(xiàn)兩發(fā)四收的信息控制。該設(shè)計(jì)以LPC3250作為嵌入式微處理器,采用DEI106/BD429芯片組構(gòu)建ARINC429總線通訊系統(tǒng),為航空電子系統(tǒng)提供了高效可靠的通信平臺(tái)。
本文引用地址:http://www.ex-cimer.com/article/201610/305450.htmARINC429總線廣泛用于航空電子系統(tǒng)內(nèi)各設(shè)備間大量數(shù)據(jù)信息的傳輸。傳統(tǒng)的ARINC429通訊卡依賴通信平臺(tái)處理機(jī)來(lái)完成控制與處理工作,增加了平臺(tái)處理機(jī)的負(fù)擔(dān),降低了數(shù)據(jù)傳輸速率,系統(tǒng)可靠性及效率不高。為了解決這一工程難題,本文做了深入研究,結(jié)合現(xiàn)有研究成果,致力于設(shè)計(jì)一種新的通訊卡,提高通信板卡智能化水平,減輕系統(tǒng)通訊負(fù)擔(dān),降低協(xié)議通信的控制難度,為航空電子系統(tǒng)構(gòu)筑一個(gè)可靠高效的ARINC429總線通信平臺(tái)。
1 ARINC429通訊卡設(shè)計(jì)
通訊卡主要完成以下任務(wù):完成兩路ARINC429接收數(shù)據(jù)的串并轉(zhuǎn)換;實(shí)現(xiàn)兩路ARINC429發(fā)送數(shù)據(jù)的并串轉(zhuǎn)換;支持中斷方式、查詢方式接收和發(fā)送數(shù)據(jù)。
根據(jù)通訊卡所要完成的功能設(shè)計(jì)系統(tǒng)整體結(jié)構(gòu)如圖1所示。
目前常用的ARINC429收發(fā)器主要有DEI1016/BD429和HS3282/3182兩種芯片組,本次設(shè)計(jì)采用DEI1016/BD429構(gòu)建ARINC429總線通訊系統(tǒng)。DEI1016是美國(guó)DDC公司生產(chǎn)的ARINC429總線接口芯片,提供有標(biāo)準(zhǔn)航空串行數(shù)據(jù)和16bit寬數(shù)據(jù)總線接口。
DEI1016在發(fā)送時(shí)按協(xié)議完成發(fā)送數(shù)據(jù)的并-串轉(zhuǎn)換并發(fā)送;接收時(shí)完成電平轉(zhuǎn)換并按協(xié)議完成接收數(shù)據(jù)的串-并轉(zhuǎn)換;在初始化時(shí)進(jìn)行數(shù)據(jù)格式、波特率、奇偶校驗(yàn)等設(shè)置。一塊DEI1016芯片可實(shí)現(xiàn)一路ARINC429數(shù)據(jù)發(fā)送及兩路ARINC429數(shù)據(jù)接收功能。
1.1 DEI1016的數(shù)據(jù)發(fā)送與接收
DEI1016的發(fā)送器電路包括一個(gè)發(fā)送緩存器和一個(gè)控制邏輯。發(fā)送緩存器是一個(gè)8*32 bit的FIFO,數(shù)據(jù)的載入由LD1和LD2兩個(gè)信號(hào)控制。LD1有效時(shí)載入第一個(gè)16位,LD2有效時(shí)載入第二個(gè)16位,而且在每個(gè)數(shù)據(jù)字載入過(guò)程中LD1必須在LD2之前到來(lái)。另外,數(shù)據(jù)載入時(shí)發(fā)送器是處于禁止?fàn)顟B(tài)的。而控制邏輯則允許ARM微處理器給發(fā)送器寫數(shù)據(jù)塊,并通過(guò)ARM微處理器使能發(fā)送器,即置ENTX信號(hào)有效來(lái)使該數(shù)據(jù)塊自動(dòng)發(fā)送出去。數(shù)據(jù)在TTL電平格式下,經(jīng)過(guò)BD429電平轉(zhuǎn)換然后發(fā)送出去。值得注意的是每8個(gè)數(shù)據(jù)字間的發(fā)送并不是連續(xù)的,而是具有由DEI1016自動(dòng)產(chǎn)生的4個(gè)字時(shí)鐘間隔時(shí)間。
ARINC429信號(hào)的接收通過(guò)接收字間隔時(shí)序電路采樣產(chǎn)生一個(gè)數(shù)據(jù)字。接收采樣頻率是正常數(shù)據(jù)速率的10倍,以保證不會(huì)出現(xiàn)含混的數(shù)據(jù)字。采樣得到的數(shù)據(jù)被存進(jìn)一個(gè)32位的移位寄存器中,并由控制寄存器內(nèi)容決定是否接收該字。數(shù)據(jù)字長(zhǎng)度由控制寄存器的“WLSEL”確定。保持寄存器中的數(shù)據(jù)以2個(gè)16位字的形式放在數(shù)據(jù)總線上。數(shù)據(jù)應(yīng)及時(shí)讀出,以避免新的數(shù)據(jù)將原來(lái)的數(shù)據(jù)覆蓋。讀取數(shù)據(jù)時(shí),先將接收選擇線SEL拉低,且使能OE讀出低字,再將SEL拉高并使能OE時(shí)讀取高字。
1.2 DEI1016/BD429外圍電路設(shè)計(jì)
BD429芯片為ARINC429的發(fā)送驅(qū)動(dòng)器,與DEI1016配套使用。發(fā)送驅(qū)動(dòng)器的作用是將ARINC429協(xié)議芯片送出的TTL邏輯電平轉(zhuǎn)換為符合ARINC429協(xié)議信號(hào)電平要求的信號(hào)進(jìn)行發(fā)送。設(shè)計(jì)應(yīng)用電路如圖2所示。
該應(yīng)用電路中的兩個(gè)68 pF的電容很重要,會(huì)影響到ARINC429信號(hào)上升和下降的斜率,容值過(guò)大會(huì)使斜率變小,反之容值過(guò)小會(huì)使斜率變大。
在設(shè)計(jì)中采用DEI1016輸出的429信號(hào)作為其輸入信號(hào),輸出數(shù)據(jù)速率通DEI1016確定,而不采用SYNC、CLOCK和DATA信號(hào)相與的方法調(diào)整,因此直接把SYNC和CLOCK信號(hào)拉高。1MCK由16M晶振經(jīng)CPLD分頻給出,在CPLD邏輯中分頻系數(shù)可調(diào),因而數(shù)據(jù)速率在12.5~100k之間可調(diào)。SEL信號(hào)直接連至微處理器的最低地址位A0,由地址的變化控制數(shù)據(jù)讀取時(shí)的高低16位選擇。MR信號(hào)控制由阻容復(fù)位電路實(shí)現(xiàn)。其余發(fā)送與接收控制信號(hào)如OE、LD等均與CPLD相連,由CPLD譯碼控制。
2 DEI1016/BD429與CPLD的接口設(shè)計(jì)
2.1 DEI1016/BD429與CPLD的接口電路設(shè)計(jì)
為了靈活實(shí)現(xiàn)ARINC429數(shù)據(jù)的發(fā)送與接收,采用一片CPLD芯片進(jìn)行控制。在CPLD邏輯中應(yīng)實(shí)現(xiàn)地址譯碼和時(shí)鐘分頻功能,完成對(duì)某路發(fā)送或接收及ARINC429協(xié)議時(shí)鐘的設(shè)定;通過(guò)設(shè)置ARINC429協(xié)議控制字進(jìn)行自檢;對(duì)中斷屏蔽或使能等。CPLD器件采用ALTERA公司的EPM3064A實(shí)現(xiàn),該芯片具有3.3VI/O特性,可容忍5V,適合應(yīng)用于5V、3.3V多電壓應(yīng)用的場(chǎng)合。由于LPC3250為3.3 V I/O特性,而所選用的ARINC 429接口芯片DEI1016為單一5 V供電,所以需要對(duì)微處理器與ARINC429數(shù)據(jù)和地址總線進(jìn)行電壓轉(zhuǎn)換。這里選用四片SN74LVC4245DBL驅(qū)動(dòng)器來(lái)實(shí)現(xiàn)16 bit數(shù)據(jù)總線和地址總線的電壓轉(zhuǎn)換。由于地址總線是單向的,即只能由處理器到ARINC429接口芯片,故負(fù)責(zé)地址總線電壓轉(zhuǎn)換的兩片SN74LVC4245-DBL芯片DIR引腳可以接死;而負(fù)責(zé)雙向數(shù)據(jù)總線電壓轉(zhuǎn)換的兩片SN74LVC4245-DBL芯片DIR腳則需要通過(guò)CPLD進(jìn)行邏輯控制。
2.2 DEI1016/BD429與CPLD的接口邏輯設(shè)計(jì)
ARINC429通訊卡片選由LPC3250的CS1和地址BA11~BA4共同控制,即當(dāng)CS1有效且BA(11 to 4)=“00000000”時(shí)選通,全譯碼,地址空間為E100 0000-E100000F
1)數(shù)據(jù)發(fā)送邏輯設(shè)計(jì)
DEI1016是16位數(shù)據(jù)線,所以32位數(shù)據(jù)字必須分成兩個(gè)16位寫入,而控制字只需一次寫入即可。以下VHDL代碼實(shí)現(xiàn)了對(duì)429數(shù)據(jù)發(fā)送的控制:
LD_1(0)=‘0’WHEN WR=‘0’AND A=X“4”ELSE‘1’;--第1片429發(fā)送低字
LD_1(1)=‘0’WHEN WR=‘0’AND A=X“5”ELSE‘1’;--第1片429發(fā)送高字
LDCW_1=‘0’WHEN WR=‘0’AND A=X“6”ELSE‘1’;--裝載控制字
評(píng)論