韓 沖
(中國(guó)商飛有限責(zé)任公司上海飛機(jī)設(shè)計(jì)研究院,上海 200235)
隨著航空電子系統(tǒng)綜合性的增強(qiáng),各個(gè)系統(tǒng)之間的數(shù)據(jù)通訊,變得尤為重要。ARINC429作為最常用的通訊總線,廣泛使用在波音系列飛機(jī)、歐洲空中客車(chē)等機(jī)種,成為機(jī)載設(shè)備之間通訊的主要接口。我國(guó)的慣導(dǎo)系統(tǒng),也以ARINC429為主要通訊總線。ANINC 429數(shù)字信息傳輸規(guī)范(DITS)33為在航空電子設(shè)備之間傳輸數(shù)字信息,制定了航空運(yùn)輸工業(yè)標(biāo)準(zhǔn)。
ANINC 429的發(fā)送速度有高速(100 kbps)和低速(12.5 kbps)兩種。對(duì)于低速發(fā)送,一般的嵌入式處理器(如8051系列單片機(jī))即可滿足;而對(duì)于高速發(fā)送,雖然采用性能更好的80C196單片機(jī)可以滿足,但其外圍電路繁冗,會(huì)影響板卡的性能。
同上述兩種單片機(jī)相比,TMS320F206采用了先進(jìn)的改進(jìn)型哈佛結(jié)構(gòu)及流水線技術(shù),指令執(zhí)行速度快,1個(gè)機(jī)器周期僅為50 ns。同時(shí)TMS320F206的數(shù)據(jù)、地址總線(均為16位)分開(kāi),片內(nèi)帶有32 k字的閃速存儲(chǔ)器和544個(gè)字的RAM。構(gòu)成最小系統(tǒng)時(shí)非常簡(jiǎn)單,不需EPROM、RAM、地址數(shù)據(jù)鎖存器。雖然用其構(gòu)成ANINC 429數(shù)據(jù)傳輸系統(tǒng)時(shí)的指令同80C196類(lèi)似,但由于每條指令的執(zhí)行時(shí)間很短,至少為80C196的1/20,故可使速度提高20多倍。從而不但可以滿足高速ANINC 429數(shù)據(jù)傳輸?shù)囊?,而且能夠減化板卡設(shè)計(jì),提高板卡的性能。
HS3282是HARRIS公司推出的一款高性能的COMS型429總線接口電路,其工作頻率為100 k bit或者12.5 k bit,單電源+5V供電,低功耗,直接與ARINC總線連接,一路發(fā)送,兩路接收。接收器和發(fā)送器相互獨(dú)立,同時(shí)工作。雙通道接收器之間也是獨(dú)立的并行接收,可以直接連接到ARINC429總線,而不需電平轉(zhuǎn)換。字長(zhǎng)25位或者32位,接收數(shù)據(jù)時(shí)進(jìn)行校驗(yàn),而發(fā)送數(shù)據(jù)時(shí)產(chǎn)生校驗(yàn),內(nèi)部定時(shí)器可自動(dòng)調(diào)整字間隙。其發(fā)送緩沖是一個(gè)8×32 Bit的FIFO。
429總線接口板的主要功能,是在429總線和PC機(jī)之間起到橋梁作用,實(shí)現(xiàn)429總線數(shù)據(jù)信息的接收和發(fā)送。當(dāng)有數(shù)據(jù)從429總線上傳輸時(shí),429接口電路能夠準(zhǔn)確地將其接收,并把它送到DSP,經(jīng)DSP處理后,繼續(xù)向PC機(jī)發(fā)送;當(dāng)PC機(jī)的信號(hào)傳輸?shù)絹?lái)時(shí),由DSP進(jìn)行實(shí)時(shí)處理后,控制429收發(fā)模塊將數(shù)據(jù)傳送到429總線上。系統(tǒng)的總體框架如圖1所示。
圖中,主要設(shè)計(jì)模塊有以下部分:
圖1 系統(tǒng)的總體框架
(1)板卡CPU。選用TI公司的TMS320F206,是設(shè)計(jì)成本最低、結(jié)構(gòu)功能復(fù)雜度也較低的定點(diǎn)DSP,其片內(nèi)32 k Flash、4.5 k RAM可以滿足處理規(guī)模適中的應(yīng)用。可省去片外固化存儲(chǔ)器,簡(jiǎn)化接口電路設(shè)計(jì)。但TMS320F206的I/O引腳數(shù)只有4個(gè),遠(yuǎn)不能滿足設(shè)計(jì)需要,因此還需要選用CPLD作為接口的擴(kuò)展,并完成譯碼和部分控制工作。
(2)429總線接口電路。HS3282是ARINC429的協(xié)議芯片,發(fā)送時(shí),常配合HS3182共同作為一組ARINC 429總線的接口電路。本板卡具有4發(fā)8收的功能,根據(jù)上述介紹,這里須要選用4組這樣的總線接口電路。
(3)數(shù)據(jù)緩沖器。為避免PC機(jī)從雙口存儲(chǔ)器中讀取數(shù)據(jù)時(shí),DSP再次對(duì)該數(shù)據(jù)區(qū)進(jìn)行寫(xiě)操作而產(chǎn)生沖突,選用雙端口RAM連接ISA總線和DSP處理器。
(4)譯碼、控制和中斷邏輯。這里采用CPLD來(lái)實(shí)現(xiàn)。因?yàn)镃PLD具有編程方便、集成度高、速度快、價(jià)格低等特點(diǎn),而且CPLD軟件包中有各種輸入工具、仿真工具、版圖設(shè)計(jì)工具和編程器等全線產(chǎn)品,使設(shè)計(jì)人員在很短時(shí)間內(nèi),就可以完成電路的輸入、編譯、優(yōu)化、仿真,直至芯片的制作。
429接口從外部接收到數(shù)據(jù)時(shí),采用中斷方式向F206發(fā)出請(qǐng)求,F(xiàn)206接到中斷請(qǐng)求后,進(jìn)入中斷服務(wù)子程序。F206在處理完接收數(shù)據(jù)及對(duì)相應(yīng)的狀態(tài)進(jìn)行設(shè)置后,向PC機(jī)發(fā)出中斷請(qǐng)求信號(hào)。PC機(jī)接收到中斷請(qǐng)求信號(hào)后,通過(guò)查詢各個(gè)狀態(tài)字來(lái)獲得接收口的通道號(hào)和數(shù)據(jù)量等信息,區(qū)分不同的中斷源,若為接收中斷,則首先通過(guò)查詢緩沖狀態(tài)位來(lái)判斷接收通道,在將數(shù)據(jù)取走后,將此緩沖區(qū)的狀態(tài)位清零。PC機(jī)每隔一段時(shí)間,將要發(fā)送的數(shù)據(jù)(若有數(shù)據(jù))送到相應(yīng)得緩沖區(qū)中,并以中斷的方式通知429板,F(xiàn)206接收到中斷請(qǐng)求后,將中斷請(qǐng)求清除,再將數(shù)據(jù)取走并通知接口板進(jìn)行發(fā)送。
(1)F206向PC機(jī)發(fā)送中斷的邏輯模塊。圖2中,中斷撥碼器的輸出XIRQ的8個(gè)引腳分別與ISA總線的 3,4,5,7,10,11,12,15 這 8 個(gè)中斷引腳相連,通過(guò)撥碼,可以選擇這8個(gè)中的一個(gè)。當(dāng)F206要向PC機(jī)發(fā)送中斷時(shí),通過(guò)A1~A5將中斷入口地址寫(xiě)到中斷寄存器中,并通過(guò)CPLD的譯碼邏輯模塊產(chǎn)生一個(gè)向PC機(jī)的中斷請(qǐng)求INTPC,INTPC經(jīng)過(guò)中斷寄存器產(chǎn)生INTRPC信號(hào)并通過(guò)撥碼器SW產(chǎn)生一個(gè)中斷信號(hào) XIRQx(3,4,5,7,10,11,12,15 中的一個(gè)),發(fā)往 PC機(jī)。PC機(jī)接到F206發(fā)來(lái)的中斷后,產(chǎn)生一個(gè)中斷應(yīng)答信號(hào)CLRINTPC,這個(gè)信號(hào)使中斷寄存器復(fù)位,其作用相當(dāng)于清中斷,以便繼續(xù)接收F206發(fā)來(lái)的中斷。
圖2 F206向PC機(jī)發(fā)送中斷邏輯圖
(2)PC機(jī)向F206發(fā)送中斷的邏輯模塊。同樣,當(dāng)PC機(jī)要向F206發(fā)送中斷時(shí),它也要通過(guò)地址信號(hào)線XA1,XA9~XA13將中斷地址寫(xiě)到中斷寄存器中,并產(chǎn)生中斷請(qǐng)求信號(hào)INTDP。F206接到此中斷請(qǐng)求信號(hào)后,產(chǎn)生中斷應(yīng)答信號(hào)CLRINTDP,使中斷寄存器復(fù)位,清中斷,以便接收PC機(jī)的新的中斷請(qǐng)求信號(hào)(如圖3所示)。
圖3 PC機(jī)向F206發(fā)送中斷邏輯圖
(3)中斷擴(kuò)充邏輯模塊。由于F206的IO引腳數(shù)量及其有限,要在F206上實(shí)現(xiàn)所有的IO中斷是不可能的,所以我們利用CPLD,通過(guò)F206的8個(gè)數(shù)據(jù)線D0~D7對(duì)IO中斷進(jìn)行了擴(kuò)充。邏輯圖如圖4所示。
圖4 中斷擴(kuò)充邏輯模塊
當(dāng)HS3282產(chǎn)生中斷時(shí),F(xiàn)206通過(guò)這8個(gè)數(shù)據(jù)線讀取中斷信號(hào)(/DR11~/DR42,分別對(duì)應(yīng) 4塊HS3282 的 /DR1、/DR2)并傳輸至 F206,進(jìn)行相應(yīng)的中斷控制;同時(shí)這8個(gè)數(shù)據(jù)線還作為F206向HS3282發(fā)出控制信號(hào)/MR1~/MR4(主復(fù)位信號(hào))和ENTX1~ENTX4(允許發(fā)送信號(hào))的傳輸線,將控制信號(hào)傳輸給HS3282,如圖 4(a),顯然,D0~D7 是雙向傳輸?shù)?。所以在設(shè)計(jì)時(shí),采用三態(tài)緩沖器74240和八D觸發(fā)器74273來(lái)實(shí)現(xiàn)它們的雙向傳輸,如圖4(b)。
根據(jù)板卡要求,HS3282的發(fā)射時(shí)鐘有兩個(gè)可選頻率480 k和1M。我們利用一個(gè)48M的外部晶振來(lái)驅(qū)動(dòng),使得它通過(guò)CPLD進(jìn)行100分頻和48分頻分別得到這兩個(gè)頻率。其中100分頻通過(guò)兩個(gè)10分頻邏輯實(shí)現(xiàn),48分頻先后通過(guò)8分頻和6分頻邏輯來(lái)實(shí)現(xiàn)。
除上述幾個(gè)模塊外,CPLD中還集成了板卡地址選擇模塊、HS3282讀寫(xiě)信號(hào)的產(chǎn)生模塊、提高板卡可靠性的復(fù)位模塊等等。由于這些模塊實(shí)現(xiàn)簡(jiǎn)單,在此就不再一一詳述了。
F206與HS3282的接口電路如圖5所示。
圖5 F206與HS3282的接口電路
(1)/MR信號(hào)。主復(fù)位,低脈沖有效,通常只用于加電和系統(tǒng)重啟。
(2)ENTX信號(hào)。發(fā)送使能標(biāo)志,用于從先進(jìn)先出存儲(chǔ)器開(kāi)始數(shù)據(jù)傳輸。
(3)TX/R信號(hào)。發(fā)送器輸出標(biāo)志,表明存儲(chǔ)器空。
(4)/DR11和/DR12/信號(hào)。終端請(qǐng)求,通過(guò)數(shù)據(jù)線D0和D1將終端信號(hào)傳輸給F206。
(5)/RD信號(hào)。F206向HS3282發(fā)出的讀取信號(hào),用于讀取HS3282緩存中的數(shù)據(jù)。
(6)/WR信號(hào)。F206向HS3282發(fā)出的寫(xiě)信號(hào),用于向HS3282緩存中寫(xiě)數(shù)據(jù)。
這只是F206與一片HS3282的接口電路,F(xiàn)206與其他3片HS3282的接口電路與之類(lèi)似。
當(dāng)接口板實(shí)現(xiàn)數(shù)據(jù)的發(fā)送功能時(shí),數(shù)據(jù)首先從ISA總線讀入,并存儲(chǔ)在雙口RAMIDT7025中,當(dāng)適合發(fā)送數(shù)據(jù)時(shí),F(xiàn)206發(fā)出讀取信號(hào),將存儲(chǔ)在IDT7025中的數(shù)據(jù)通過(guò)D0~D15數(shù)據(jù)總線傳輸給HS3282,通過(guò)HS3282控制向429總線發(fā)送數(shù)據(jù);同樣,在接收數(shù)據(jù)時(shí),HS3282接收的數(shù)據(jù)在F206的控制下,通過(guò)數(shù)據(jù)總線D0~D15傳輸?shù)絀DT7025中,最后PC機(jī)通過(guò)ISA總線接收數(shù)據(jù),從而完成數(shù)據(jù)的收發(fā)功能。圖6中,READY為高,表明對(duì)雙口RAM的訪問(wèn)可以結(jié)束,否則將延續(xù)此次訪問(wèn)。
圖6 F206與雙口RAM的接口電路
DSP時(shí)鐘可由外部提供,也可由板上的振蕩器提供。但一般DSP系統(tǒng)中,經(jīng)常使用外部時(shí)鐘輸入,因?yàn)槭褂猛獠繒r(shí)鐘時(shí),時(shí)鐘的精度高、穩(wěn)定性好、使用方便,從而可以保證DSP能夠可靠、穩(wěn)定的工作。而且,使用外時(shí)鐘時(shí),可以通過(guò)改變DIV1、DIV2引腳上的電平,設(shè)置時(shí)鐘方式為×1、×2或×4。這樣,只需用一個(gè)時(shí)鐘,就可以提供DSP的多個(gè)工作時(shí)鐘,增加了系統(tǒng)的靈活性。這里我們選用20M的晶振,并用選擇開(kāi)關(guān)來(lái)成比例的設(shè)置DSP的工作時(shí)鐘。接口電路如圖7所示。
圖7 晶振與F206的接口電路
DSP和CPLD都是通過(guò)仿真接口JTAG進(jìn)行在線編程的。JTAG(Joint Test Action Group)是檢測(cè)PCB和IC芯片的一個(gè)標(biāo)準(zhǔn),通過(guò)這個(gè)標(biāo)準(zhǔn),可對(duì)具有JTAG接口芯片的硬件電路進(jìn)行邊界掃描和故障檢測(cè)。JTAG接口的設(shè)計(jì)比較簡(jiǎn)單,只要根據(jù)芯片所提供的接口類(lèi)型按照相應(yīng)的接口標(biāo)準(zhǔn)即可。
通過(guò)整個(gè)設(shè)計(jì)方案可以看出,用DSP+CPLD模式實(shí)現(xiàn)429總線和ISA總線之間的數(shù)據(jù)通訊,省去了EPROM、RAM、地址數(shù)據(jù)鎖存器等外圍電路,使得原理圖的設(shè)計(jì)簡(jiǎn)單、清晰。合理地使用CPLD,又增強(qiáng)了板卡的集成度和開(kāi)發(fā)的便利性。通過(guò)開(kāi)發(fā)和調(diào)試證明,該板卡能夠滿足高速ARINC 429數(shù)據(jù)傳輸?shù)囊?,并且?zhí)行速度快,體積小,集成度高,可靠性好。
[1]蘇 濤,等.DSP實(shí)用技術(shù)[M].西安:西安電子科技大學(xué)出版社,2002.
[2]朱銘鋯,趙 勇,甘 泉.DSP應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002.
[3]李 剛,等.TMS320F206結(jié)構(gòu)、原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2002.
[4]馮 濤,等.可編程邏輯器件開(kāi)發(fā)技術(shù)-MAXPLUSⅡ入門(mén)與提高[M].北京:人民郵電出版社,2002.
[5]姜立東,等.VHDL語(yǔ)言程序設(shè)計(jì)及應(yīng)用[M].北京:北京郵電大學(xué)出版社,2004.