楊 明,張涇周,李 輝,張廣標(biāo)
(西北工業(yè)大學(xué) 自動化學(xué)院,陜西 西安 710129)
隨著現(xiàn)代電子科技的不斷發(fā)展更新,航空電子設(shè)備日趨數(shù)字化、網(wǎng)絡(luò)化、綜合化。各電子設(shè)備間穩(wěn)定的、可靠的數(shù)據(jù)交換,以及源設(shè)備向各目標(biāo)設(shè)備傳送控制命令、傳感數(shù)據(jù)信息實時采集等,都迫切需要一種簡單、可靠、抗干擾性強(qiáng)的通信總線[1]。ARINC429在這樣的背景下產(chǎn)生了,這是一種非集中控制、傳輸可靠、錯誤隔離性好的通信總線。其憑借上述優(yōu)勢在航空通信領(lǐng)域尤其是大型民用飛機(jī)和慣性導(dǎo)航、航空器外部環(huán)境數(shù)據(jù)采集中受到廣泛應(yīng)用[2],已然成為了民用航空領(lǐng)域的主流通信總線。
本文就是建立在ARINC429總線協(xié)議基礎(chǔ)上,從制造經(jīng)濟(jì)、調(diào)試簡單、使用方便、可靠工作的角度考慮,使用MCS-51單片機(jī)和DEVICE ENGINEERING公司的DEI1016芯片為處理核心單元設(shè)計的一種可進(jìn)行標(biāo)準(zhǔn)429數(shù)據(jù)收發(fā)的通信模塊,其亦可通過RS232總線與上位計算機(jī)進(jìn)行相連以實現(xiàn)數(shù)據(jù)交換。
429數(shù)據(jù)總線上傳輸?shù)臄?shù)據(jù)不同于其他通信方式,屬于異步串行、廣播式通信。每幀32位或25位(根據(jù)通信需求設(shè)置),每一位都有其不可取代的作用,429通信充分利用了總線波特率和有效數(shù)據(jù)位,實現(xiàn)了數(shù)據(jù)控制完整性和高通信速率的統(tǒng)一[3]。傳輸速率分高速(100 kbit/s)和低速(12~14.5 kbit/s)兩種。其32位數(shù)據(jù)幀格式如圖1所示。
圖1 ARINC429數(shù)據(jù)幀格式Fig.1 Data format of ARINC429 communication
由圖1可看出,ARINC429數(shù)據(jù)幀被分為5個數(shù)據(jù)場:
LABEL:標(biāo)簽/標(biāo)志位,此8位用來表示當(dāng)前這一幀數(shù)據(jù)的意義或數(shù)據(jù)類型,使得接收器在正確接收后能夠?qū)⒋藬?shù)據(jù)用作正確的用途。如在某航空通信中,標(biāo)簽為0b01100001的一幀數(shù)據(jù)表示計算空速。
S/D Or DATA:源/目標(biāo)識別符(當(dāng)不用做識別符時,可以看做正常數(shù)據(jù)),當(dāng)需要將特定數(shù)據(jù)發(fā)送給多設(shè)備中的某一特定接收器,或多設(shè)備系統(tǒng)中的源設(shè)備需要根據(jù)字的內(nèi)容被接收器識別時,可以使用此識別符功能,接收到此數(shù)據(jù)的其他設(shè)備會因識別符不匹配而放棄數(shù)據(jù)。
DATA:數(shù)據(jù)部分,表示以LABEL指定的數(shù)據(jù)類型的數(shù)值大小和符號(由第29位符號位決定)。
SSM:符號/狀態(tài)矩陣,SSM場用于記錄硬件設(shè)備狀態(tài)(故障/正常),運行模式(功能測試),或者數(shù)據(jù)字內(nèi)容(驗證的/非計算數(shù)據(jù))的有效性。
PARITY:奇偶校驗位,若通信中需要奇偶校驗,則此位必須根據(jù)校驗方式被置位或清零,以滿足數(shù)據(jù)奇偶性,接收器通過接收到數(shù)據(jù)的這一位判斷數(shù)據(jù)的正誤。
ARINC429的25位通信數(shù)據(jù)格式使用了使數(shù)據(jù)幀產(chǎn)生意義的最簡格式,數(shù)據(jù)場只有LABEL(8—1位,同32位格式)和DATA(25—9位)兩部分,使得在其他控制位可以省去的情形下最大限度提高數(shù)據(jù)傳輸效率。
429通信的數(shù)據(jù)發(fā)送和接收方通過雙絞屏蔽線連接,受驅(qū)動能力的限制,一條數(shù)據(jù)總線上連接的接收器不應(yīng)超過20個。這種通信采用RZ雙極性歸零調(diào)制方式,由高、零、低狀態(tài)組成,發(fā)送和接收通道都采用差分方式,大大提高了通信抗干擾能力。一般,當(dāng)發(fā)送器開路時,指定輸出端能被可靠識別的不同的輸出信號電壓應(yīng)為:高電平,A對B端+6.5 ~ +13 V;“零”,A對B端-2.5 ~+2.5 V;低電平,A對 B 端 -13~-6.5 V 。
而429的編碼邏輯也提高了其數(shù)據(jù)傳輸可靠性和穩(wěn)定性。如果A端在位區(qū)間開始后處于高電平,并且在區(qū)間結(jié)束前又回到“零”,且B端信號恰好與其互補(bǔ)(電平和為零),則此位表示邏輯“1”;如果A端在區(qū)間開始后處于低電平,并且在區(qū)間結(jié)束前又回到“零”,且B端信號恰好與其互補(bǔ),則此位表示邏輯“0”[4]。429通信數(shù)據(jù)的傳輸電平與信號邏輯關(guān)系如圖2所示。
圖2 ARINC429信號編碼邏輯Fig.2 Coding logic of ARINC429 data
能夠?qū)崿F(xiàn)429數(shù)據(jù)格式通訊的集成電路有很多,如DEI1016、HS-3282以及我國自行研制的EP-H3280。[5]從工作穩(wěn)定、應(yīng)用經(jīng)驗豐富的角度考慮,在這里我們選用DEVICE ENGINEERING的DEI1016芯片。
DEI1016是一款具有兩路接收和一路發(fā)送通道、單一低壓供電的CMOS工藝集成電路,支持429,571,575,706等航空通信規(guī)范。其發(fā)送通道具有8個32位FIFO緩沖器。在工作時,只需要在復(fù)位后對16位控制寄存器進(jìn)行設(shè)置便可選擇需要的工作模式。圖3是DEI1016芯片內(nèi)部結(jié)構(gòu)框圖:2
圖3 DEi1016芯片內(nèi)部框圖Fig.3 DEi1016 block diagram
雖然ARINC429總線上的數(shù)據(jù)字格式已被定為通用標(biāo)準(zhǔn),但是DEI1016從用戶使用方便,數(shù)據(jù)組合簡單明晰的角度考慮,對圖1中的數(shù)據(jù)格式進(jìn)行了重組,并將32位數(shù)據(jù)表述為字2(高16位)和字1(低16位),重組原則為將數(shù)據(jù)和其他控制位分開放在兩個字中,重組前后對照如圖4:
圖4 DEi1016字2字1與32位串行數(shù)據(jù)映射關(guān)系Fig.4 Mapping of serial data to/from word1 and word2
由上圖可見,DEI1016將一幀中的計量數(shù)據(jù)放至字2和字1的高三位,字1低13位為數(shù)據(jù)流的各控制位,方便數(shù)據(jù)分析和提取。用戶應(yīng)注意到在寫發(fā)送數(shù)據(jù)的時候和處理接收數(shù)據(jù)的時候應(yīng)按照字2字1的格式進(jìn)行。
DEI1016具有數(shù)據(jù)收發(fā)自測、校驗控制、源/目標(biāo)碼檢測、數(shù)據(jù)速率選擇等適應(yīng)429數(shù)據(jù)格式的控制功能,均可通過寫控制字來實現(xiàn)。芯片復(fù)位后可以在寫控制字信號/LDCW的下降沿將控制字寫入。然后便可進(jìn)行數(shù)據(jù)操作,其數(shù)據(jù)收發(fā)流程如下:
數(shù)據(jù)發(fā)送:在TXR有效的情況下,可以向發(fā)送緩沖器中按先字1后字2的順序?qū)懭胫炼?個32位字,TXR信號自動復(fù)位,而后由外部使能ENTX。發(fā)送器將先根據(jù)用戶設(shè)置的校驗方式對校驗位進(jìn)行設(shè)置,而后發(fā)送電路將重組后(見圖3)的數(shù)據(jù)逐位送至總線,在一個長字全部送出后,發(fā)送電路會自動插入4個間隔位區(qū)間以表示一幀數(shù)據(jù)發(fā)送完[6]。
數(shù)據(jù)接收:在接收器n接收到一組數(shù)據(jù)后,若用戶激活了源/目標(biāo)碼檢測功能,則接收器n將收到數(shù)據(jù)中的S/D兩位和用戶寫入控制字中的Xn、Yn兩位進(jìn)行對比,若不匹配則拒絕接收數(shù)據(jù),若匹配,再根據(jù)用戶設(shè)置的校驗方式進(jìn)行數(shù)據(jù)校驗,若校驗成功,則將校驗位置0表示數(shù)據(jù)無誤,若失敗則將其置1表示數(shù)據(jù)有誤,但無論正誤都將/DRn置0通知上層單元讀取數(shù)據(jù),數(shù)據(jù)被讀走后再置1。
MCS-51單片機(jī)質(zhì)優(yōu)價廉,與DEI1016芯片進(jìn)行并行連接可充分發(fā)揮其特性,單片機(jī)可由上位機(jī)接收要發(fā)送的數(shù)據(jù)也可根據(jù)用戶程序產(chǎn)生要發(fā)送的數(shù)據(jù),將其合理地送至DEI1016并發(fā)出。單片機(jī)也可對接收到的數(shù)據(jù)進(jìn)行加工處理后換為其他格式再傳至上位機(jī),也可根據(jù)對接收到的數(shù)據(jù)進(jìn)行解析判斷要執(zhí)行的任務(wù)。與其他微控制器不同的是,51單片機(jī)是8位機(jī),數(shù)據(jù)只能分時送至DEI1016,則需要對一部分或全部數(shù)據(jù)進(jìn)行鎖存,本文提出了一種便捷,高效的數(shù)據(jù)交換方法。還需注意到,DEI1016發(fā)送通道的數(shù)據(jù)電平范圍為+5V~-5V,那么在輸出端應(yīng)該添加電平匹配電路,將其抬至+10V~-10V,與DEI1016同時產(chǎn)生的BD429便能很好地做到這一點。而接收通道具有內(nèi)部電平轉(zhuǎn)換功能,可直接與總線連接。本文的通信模塊電路原理圖如圖5所示。
從圖中可以看出,僅使用了兩片74HC573對讀寫數(shù)據(jù)進(jìn)行鎖存,其中U3鎖存寫數(shù)據(jù)時的低8位,U4鎖存讀數(shù)據(jù)時的低8位。讀寫高8位數(shù)據(jù)不需要進(jìn)行鎖存。在譯碼邏輯電路中通過A8地址線來對兩片鎖存器片選及鎖存信號進(jìn)行控制,對每個鎖存器,片選和鎖存信號都是同步的,即片選為高時,鎖存為高,片選為低時,鎖存為低[7],這樣是為了使鎖存器直通的時候不能輸出數(shù)據(jù),可以輸出數(shù)據(jù)的時候要進(jìn)行鎖存。由于控制信號分別包括/WR和/RD,兩片鎖存器的控制信號不會沖突。其中鎖存信號均由或非門產(chǎn)生是為了保證在未讀或未寫的狀態(tài)下鎖存信號為低,防止無效數(shù)據(jù)進(jìn)入。DEI1016的數(shù)據(jù)準(zhǔn)備好信號/DR1和/DR2經(jīng)與門連接至單片機(jī)中斷0口,并且分別接至P1.1和P1.2引腳,收到數(shù)據(jù)時,應(yīng)在中斷程序中查看是哪個接收器引起的中斷。發(fā)送器空信號TXR連接至P1.4口,同時經(jīng)非門送至中斷1口,發(fā)送數(shù)據(jù)時可用查詢或中斷方式,在軟件中可以設(shè)置。
圖5 ARINC429通信模塊原理圖Fig.5 Schematic of ARINC429 communication module
在寫數(shù)據(jù)時,先使DEI1016相應(yīng)數(shù)據(jù)存儲單元選通控制信號(如/LDCW)無效,并使A8=0,此時U3輸出高阻態(tài),但/LE1信號為高,低8位數(shù)據(jù)已寫入鎖存器。后再使該控制信號有效,并使A8=1,此時U3輸出數(shù)據(jù)并鎖存,同時在控制信號的下降沿將低8位和高8位數(shù)據(jù)一同打入指定位置。
在讀數(shù)據(jù)時,先使相應(yīng)接收器選通控制信號(如/OE1)有效,并使A8=0,A9(SEL)=0,選擇讀字1,此時U4已進(jìn)入數(shù)據(jù)但輸出高阻態(tài),因此先讀走的是高8位數(shù)據(jù)。后再使控制信號無效,并使A8=1,此時高8位為高阻態(tài),之前進(jìn)入U4的數(shù)據(jù)被送出,此時可讀出低8位數(shù)據(jù)。
實際數(shù)據(jù)操作如下:
寫控制字:在復(fù)位信號(P1.3)低脈沖后,按照上述寫數(shù)據(jù)順序,先使/LDCW無效,那么基地址可選為B800H(電路中未用到的地址),A8=0,則寫地址亦為B800H,數(shù)據(jù)寫入U3但不送出。后再使/LDCW有效,A8=1,則寫地址為A100H,將16位數(shù)據(jù)一同打入。
發(fā)送數(shù)據(jù):按照上述寫數(shù)據(jù)順序,先使/LD1無效,A8=0,同寫控制字低8位,地址為B800H。再使/LD1有效,A8=1,寫地址為9900H,16位數(shù)據(jù)寫入字1。同理,寫字2針對/LD2信號操作,寫低8位地址為B800H,高8位地址為9100H。
接收數(shù)據(jù):按照上述讀數(shù)據(jù)順序,讀接收器1時,先使/OE1有效,基地址為8800H,A8=0,SEL(A9)=0選擇字1,則讀高8位地址亦為8800H,再使/OE1無效,可選基地址B800H,A8=1,則讀低8位地址為B900H。讀字2時,與讀字1不同點在于SEL=1,于是可得出讀字2高8位地址為8A00H,讀低8位地址仍為B900H。讀接收器2與接收器1完全類似,可得出讀字1高8位地址為8000H,讀字1低8位地址為B900H,讀字2高8位地址為8200H,讀字2低8位地址為B900H。對429模塊數(shù)據(jù)收發(fā)操作的單片機(jī)外部地址總結(jié)于表1:
表1 收發(fā)數(shù)據(jù)的外部地址列表Tab.1 Address list of receiving/sendding data
由圖5可見,電路原理中還包括232通訊模塊,方便與上位機(jī)進(jìn)行數(shù)據(jù)傳輸。使得使用232接口對429接口數(shù)據(jù)的操作可以方便地實現(xiàn),模塊與RS232總線掛接示意如圖6。
按照上述提到的操作步驟,下面用經(jīng)成功驗證的程序段對操作做進(jìn)一步說明:
圖6 ARINC429通信模塊與RS232總線連接示意圖Fig.6 Connection between ARINC429 module and RS232 bus
3.3.1 寫控制字
3.3.2 發(fā)送數(shù)據(jù)
以下是采用查詢方式發(fā)送數(shù)據(jù)的程序段,若采用中斷方式,則無需第一行判斷語句。
3.3.3 接收數(shù)據(jù)(只對接收器1說明,接收器2類似)
本模塊結(jié)構(gòu)簡單,電路穩(wěn)定可靠,PCB面積大小適中,與其它具有ARINC429通信接口的設(shè)備連接方便。特別是需要在其它類型通信方式和429通信方式間進(jìn)行轉(zhuǎn)換時,可以利用常用的RS232接口經(jīng)過該模塊進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換(如圖6)。假設(shè)單片機(jī)12 MHz晶振頻率計算,按照3.3節(jié)的數(shù)據(jù)處理程序,每裝滿一次DEI1016的FIFO只需要27×8=216 μs(微秒), 從接收器讀取一次數(shù)據(jù)僅需28 μs, 與429數(shù)據(jù)以高速率(100 kbit/s)傳送時一個字需要的(32+4)×10=360 μs相比,已完全滿足實時收發(fā)的要求。
與基于DSP、FPGA及一些高端控制器設(shè)計的ARINC429通信接口相比,該設(shè)計具有經(jīng)濟(jì)、實用、硬件資源利用充分、操作簡單等優(yōu)點,特別適合應(yīng)用在基于232總線的429通信測試模塊中。模塊已經(jīng)在某型航空發(fā)電機(jī)控制器地面綜合測試系統(tǒng)中得到成功應(yīng)用,在高通信速率下數(shù)據(jù)誤碼率極低,通信可靠。實踐證明,數(shù)據(jù)收發(fā)快速穩(wěn)定,模塊工作良好。
[1]寇明延.現(xiàn)代航空通信技術(shù)[M].北京:國防工業(yè)出版社, 2011.
[2]趙國輝,王小鵬,王杰. TMS320F2812與ARINC429數(shù)據(jù)總線之間的通信設(shè)計[J]. 電子設(shè)計工程, 2011, 19(1):87-90.
ZHAO Guo-hui, WANG Xiao-peng, WANG Jie. Design of communication between TMS320F2812 and ARINC429 data bus[J].Electronic Design Engineering, 2011, 19(1):87-90.
[3]王德周,李登科. 基于PCI總線的ARINC429接口卡設(shè)計[J].電子設(shè)計工程, 2012,20(7):184-186.
WANG De-zhou, LI Deng-ke. Design of ARINC429 interface board based on PCI bus[J]. Electronic Design Engineering,2012,20(7):184-186.
[4]高揚(yáng),徐景碩.實現(xiàn)ARINC429總線數(shù)據(jù)傳輸?shù)姆椒╗J].測控技術(shù), 2002,21(8):64-68.
GAO Yang, XU Jing-shuo. Method to realize the ARINC429 bus datatransmission[J].Measurement & Control Technology,2002,21(8):64-68.
[5]周前柏,馬偉勃. ARINC429通信方式的研究與實現(xiàn)[J]. 航空計算技術(shù) , 2010,40(4):121-124.
ZHOU Qian-bai, MA Wei-bo. Research and implementation of ARINC429 communication[J]. Aeronautical Computing Technique.2010,40(4):121-124.
[6]危淑敏,苗克堅,王毅航.基于DEI1016及BD429的總線接口設(shè)計[J].長春理工大學(xué)學(xué)報:自然科學(xué)版,2008,31(1):111-114.
WEI Shu-min, MIAO Ke-jian, WANG yi-hang.Design of ARINC429 bus interface based on DEI1016 and BD429[J].Journal of Changchun University of Science and Technology,2008,31(1):111-114.
[7]馬淑華,王鳳文,張美金. 單片機(jī)原理與接口技術(shù)[M]. 北京:北京郵電大學(xué)出版社, 2005.