基于DSP和FPGA的機(jī)載總線接口板研究
目前國(guó)內(nèi)對(duì)民用飛機(jī)機(jī)載數(shù)據(jù)總線ARINC429接口板的設(shè)計(jì)一般都是基于HARRIS公司的HS3282芯片完成的,它的缺點(diǎn)是路數(shù)有限、非常不靈活。因此對(duì)ARINC429總線接口板的研制,實(shí)現(xiàn)多通道ARINC429總線數(shù)據(jù)的接收和發(fā)送,成為目前對(duì)飛機(jī)機(jī)載總線接口研究的重點(diǎn),具有非常重要的現(xiàn)實(shí)意義和應(yīng)用前景。
1 ARINC429總線簡(jiǎn)介
在現(xiàn)代民用飛機(jī)上,系統(tǒng)與系統(tǒng)之間、系統(tǒng)與部件之間需要傳輸大量信息。ARINC規(guī)范就是為了在航空電子設(shè)備之間傳輸數(shù)字?jǐn)?shù)據(jù)信息而制定的一個(gè)航空運(yùn)輸?shù)墓I(yè)標(biāo)準(zhǔn)。
ARINC429(以下簡(jiǎn)稱429)總線協(xié)議是美國(guó)航空電子工程委員會(huì)(Airlines Engineering Committee)于1977年7月提出的,并于同年發(fā)表并獲得批準(zhǔn)使用。它的全稱是數(shù)字式信息傳輸系統(tǒng)DITS。協(xié)議標(biāo)準(zhǔn)規(guī)定了航空電子設(shè)備及有關(guān)系統(tǒng)間的數(shù)字信息傳輸要求。ARINC429廣泛應(yīng)用在先進(jìn)的民航客機(jī)中,如B-737、B-757、B-767,俄制軍用飛機(jī)也選用了類似的技術(shù)。我們與之對(duì)應(yīng)的標(biāo)準(zhǔn)是HB6096-SZ-01。ARINC429總線結(jié)構(gòu)簡(jiǎn)單、性能穩(wěn)定,抗干擾性強(qiáng)。最大的優(yōu)勢(shì)在于可靠性高,這是由于非集中控制、傳輸可靠、錯(cuò)誤隔離性好。
429總線采用雙絞屏蔽線傳輸信息,通過(guò)一對(duì)雙絞線反相傳輸,具有很強(qiáng)的抗干擾能力。而調(diào)制方式則采用雙極歸零制的三態(tài)碼方式,即信息由“高”、“零”和“低”狀態(tài)組成的三電平狀態(tài)調(diào)制。429電纜上的信號(hào)及經(jīng)電平轉(zhuǎn)換后的信號(hào)如圖1所示。429總線每一個(gè)字為32位,它的字同步是以傳輸周期至少4位的時(shí)間間隔也就是4位碼字為基準(zhǔn)的。
圖1 429信號(hào)及電平轉(zhuǎn)換后的波形
2 系統(tǒng)總體方案
429總線接口板的主要功能是在429信號(hào)及相關(guān)外設(shè)之間起到橋梁作用,它既能接收雙極歸零制的429信號(hào)并將其轉(zhuǎn)換為數(shù)字信號(hào)送入計(jì)算機(jī)或其它設(shè)備,又可將計(jì)算機(jī)或其它設(shè)備發(fā)出的數(shù)字信號(hào)轉(zhuǎn)換為429信號(hào)輸出。本文介紹的總線接口板采用FPGA和DSP實(shí)現(xiàn)四路429信號(hào)接收通道和四路429信號(hào)發(fā)送通道,且每路通道之間相互獨(dú)立。在這個(gè)接口板中,每?jī)蓚€(gè)數(shù)據(jù)字之間的時(shí)間間隔可調(diào),每一個(gè)收發(fā)通道能單獨(dú)定義字間隔長(zhǎng)度,每個(gè)通道校驗(yàn)方式可單獨(dú)定義為奇校驗(yàn)或偶校驗(yàn),數(shù)據(jù)發(fā)送可以選擇單幀發(fā)送或自動(dòng)重復(fù)發(fā)送(重復(fù)發(fā)送某一幀)。
整個(gè)接口板由調(diào)制電路、解調(diào)電路、FPGA、DSP和雙口RAM組成,如圖2所示。
圖2 接口板硬件結(jié)構(gòu)圖
3 硬件電路設(shè)計(jì)
3.1 調(diào)制解調(diào)電路設(shè)計(jì)
429信號(hào)進(jìn)入接口板后,首先要把429信號(hào)轉(zhuǎn)換為數(shù)字電路可以識(shí)別的TTL電平。這里采用HOLT公司的HI-8482實(shí)現(xiàn)信號(hào)的解調(diào),將標(biāo)準(zhǔn)的429總線信號(hào)轉(zhuǎn)換成5V TTL數(shù)字信號(hào)。為了降低干擾,在429總線信號(hào)的四個(gè)輸入管腳分別接入39pF的高精度軍品電容;采用HOLT公司的HI-8585芯片實(shí)現(xiàn)信號(hào)的調(diào)制,將TTL數(shù)字電平轉(zhuǎn)換為標(biāo)準(zhǔn)的429信號(hào)。
3.2 FPGA內(nèi)部邏輯設(shè)計(jì)
按照429信號(hào)的編碼格式、特點(diǎn)、傳輸規(guī)則以及協(xié)議要求,選用一片ALTERA公司的ACEX1K型的FPGA發(fā)送和接收四路數(shù)據(jù)。每一路分為接收部分和發(fā)送部分。
接收部分的主要作用是通過(guò)串/并轉(zhuǎn)換將串行數(shù)據(jù)轉(zhuǎn)換為32位并行數(shù)據(jù),并對(duì)收到的數(shù)據(jù)自動(dòng)實(shí)行差錯(cuò)控制。對(duì)于字間隔、位間隔出錯(cuò)等錯(cuò)誤能進(jìn)行自動(dòng)檢測(cè),若無(wú)錯(cuò)誤,則將數(shù)據(jù)分兩次送至DSP的16位數(shù)據(jù)總線上,以供讀取。接收模塊結(jié)構(gòu)框圖如圖3所示。
圖3 接收模塊結(jié)構(gòu)框圖
發(fā)送部分的主要功能是將DSP送入的數(shù)據(jù)暫存在FPGA內(nèi)部的FIFO中,等待發(fā)送命令。一旦接到發(fā)送控制指令,F(xiàn)IFO輸出數(shù)據(jù)并通過(guò)并/串轉(zhuǎn)換將并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),同時(shí)加入預(yù)先設(shè)定的間隔。用戶可通過(guò)寫(xiě)控制寄存器選擇發(fā)送模式(即單幀發(fā)送或自動(dòng)重復(fù)發(fā)送)、發(fā)送通道延遲設(shè)定、發(fā)送通道字間隔設(shè)定,還可通過(guò)讀取狀態(tài)位檢查它的工作狀態(tài)(發(fā)送緩沖器空、發(fā)送緩沖器滿和是否正在發(fā)送)。發(fā)送模塊結(jié)構(gòu)框圖如圖4所示。
圖4 發(fā)送模塊結(jié)構(gòu)框圖
FPGA內(nèi)部結(jié)構(gòu)是基于SRAM的,因此需要一片配置芯片固化內(nèi)部邏輯。為了便于調(diào)試,采用JTAG模式和被動(dòng)串行模式(PS)兩種配置模式,調(diào)試時(shí)使用JTAG模式直接將邏輯寫(xiě)入FPGA內(nèi)部,調(diào)試好后再用PS模式將程序?qū)懭肱渲眯酒?。通過(guò)對(duì)FPGA和配置芯片上的引腳進(jìn)行跳線,可選擇不同的配置方式。跳線電路如圖5所示。
圖5 FPGA配置跳線設(shè)置
FPGA作為DSP的一個(gè)I/O外設(shè),必然要對(duì)它的寄存器地址統(tǒng)一編址。在此將FPGA編址在DSP的I/O空間。由于FPGA的接收通道和發(fā)送通道是共用DSP的16位數(shù)據(jù)線的,故接收通道和發(fā)送通道的數(shù)據(jù)寄存器可以占用一個(gè)地址。表1是FPGA各通道寄存器分配的地址。
表1 FPGA內(nèi)部各通道寄存器地址
3.3 DSP與FPGA及外部設(shè)備的通信
DSP(digital signal processor)是一種獨(dú)特的微處理器,是以數(shù)字信號(hào)來(lái)處理大量信息的器件。其工作原理是接收模擬信號(hào),轉(zhuǎn)換為0或1的數(shù)字信號(hào)。再對(duì)數(shù)字信號(hào)進(jìn)行修改、刪除、強(qiáng)化,并在其他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實(shí)時(shí)運(yùn)行速度可達(dá)每秒數(shù)以千萬(wàn)條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過(guò)通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片。它的強(qiáng)大數(shù)據(jù)處理能力和高運(yùn)行速度,是最值得稱道的兩大特色。
在整個(gè)系統(tǒng)的設(shè)計(jì)中,DSP主要用于控制FPGA工作、數(shù)據(jù)中轉(zhuǎn)、與外設(shè)主機(jī)通信。利用DSP向FPGA寫(xiě)控制字,其中包含幀間隔長(zhǎng)度大小等信息,可對(duì)FPGA進(jìn)行控制;另外,根據(jù)FPGA的反饋狀態(tài),可做出相應(yīng)的控制調(diào)整??紤]到用于控制FPGA的I/O口比較多,選用的DSP是TI公司的TMSLF2407A。TMSLF2407A的復(fù)用外圍I/O口多達(dá)39個(gè)[2],圖6是DSP與FPGA之間的具體連接。
圖6 DSP與FPGA的連接示意圖
DSP提供I/O操作信號(hào)/IS、讀寫(xiě)選定信號(hào)R/W、讀使能信號(hào)/RD、寫(xiě)使能信號(hào)/WE以及地址線低四位A0、A1、A2、A3。通過(guò)這些控制邏輯信號(hào)可區(qū)分四路通道及每路通道的高低字。
DSP和FPGA提供的其它輔助的控制和狀態(tài)信號(hào)還包括:四路發(fā)送使能信號(hào)/ENTX[03],低電平有效;四路發(fā)送停止信號(hào)/TXT[03],低電平有效;接收數(shù)據(jù)到達(dá)信號(hào)/RER[03],用于告知DSP準(zhǔn)備接收某一路通道已經(jīng)到達(dá)的數(shù)據(jù);發(fā)送數(shù)據(jù)準(zhǔn)備好信號(hào)/TXR[03]信號(hào),用于告知各個(gè)發(fā)送通道中是否還有未發(fā)出的數(shù)據(jù)暫存在FIFO里,低電平表示沒(méi)有數(shù)據(jù);發(fā)送通道FIFO滿信號(hào)FUL[03],高電平有效;GLOBCLRN信號(hào),用于FPGA初始化時(shí)對(duì)其內(nèi)部進(jìn)行全局清零;TESTREQ信號(hào),用于對(duì)整個(gè)系統(tǒng)的自檢。
整個(gè)電路板是通過(guò)雙口RAM與外設(shè)主機(jī)進(jìn)行通信的,雙口RAM負(fù)責(zé)暫存外設(shè)要發(fā)送的數(shù)據(jù)和暫存FPGA處理過(guò)的數(shù)據(jù)??砂阉笾路譃?個(gè)區(qū),每一個(gè)區(qū)負(fù)責(zé)存放四路接收通道和四路發(fā)送通道中的一路數(shù)據(jù)及控制字。利用雙口RAM左右兩中斷的信箱可指揮接口板進(jìn)行相應(yīng)的操作。
4 軟件設(shè)計(jì)
軟件的設(shè)計(jì)主要是DSP編程,DSP程序的主要任務(wù)就是初始化、管理DSP外圍電路、控制FPGA的收發(fā)數(shù)據(jù)以及與外設(shè)交互。DSP的主程序流程圖如圖7所示。
圖7 DSP主程序流程圖
整個(gè)接口電路板調(diào)試通過(guò)后,經(jīng)過(guò)測(cè)試可以同時(shí)接收和發(fā)送四路ARINC429信號(hào)。這就解決了以往接口電路板通道數(shù)太少的瓶頸。
本系統(tǒng)利用FPGA密度高、結(jié)構(gòu)靈活、設(shè)計(jì)時(shí)間短和可編程的優(yōu)點(diǎn),實(shí)現(xiàn)了對(duì)某路ARINC429信號(hào)的獨(dú)立處理,再加上TI公司2000系列DSP豐富的I/O接口和較普通單片機(jī)更快的速度,實(shí)現(xiàn)了對(duì)FPGA的控制管理及與外設(shè)的通信。因此本系統(tǒng)對(duì)當(dāng)今民用飛機(jī)機(jī)載數(shù)據(jù)通信總線互聯(lián)提供了一種新型、先進(jìn)的方法,具有相當(dāng)普遍的實(shí)用意義。