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