基于通道控制的雙余度DSP設(shè)計(jì)與實(shí)現(xiàn)
引言
具有自動(dòng)控制功能的電子設(shè)備已廣泛應(yīng)用于我國(guó)多型機(jī)上,用于飛機(jī)上各機(jī)載設(shè)備的控制、調(diào)節(jié)等功能。如圖1所示,其控制系統(tǒng)主要由傳感器信號(hào)輸入、核心控制板及經(jīng)過(guò)處理驅(qū)動(dòng)后的控制信號(hào)輸出,最后輸出到機(jī)上的具體應(yīng)用。本文將主要介紹如何利用通道復(fù)用技術(shù)設(shè)計(jì)實(shí)現(xiàn)具有雙余度DSP的控制板部件,重點(diǎn)描述如何實(shí)現(xiàn)系統(tǒng)的雙余度DSP設(shè)計(jì)、雙DSP間如何通訊以及DSP的故障判定法則等。
控制板硬件設(shè)計(jì)
控制板的硬件框圖如圖2所示,主要由外部信息采集單元、雙余度DSP模塊、應(yīng)用處理及其輸出單元等組成。其中,雙余度單元的CPU選用16位定點(diǎn)DSP TMS320LF2407A,其運(yùn)行最高速率可達(dá)40MHz、片內(nèi)集成多種外設(shè)。
圖中,兩個(gè)DSP通過(guò)CAN總線及I/O口進(jìn)行控制信息交換及數(shù)據(jù)通信。兩個(gè)DSP分別與收發(fā)器1、收發(fā)器2相連,這兩個(gè)通道與外部數(shù)據(jù)或控制總線是相連的,即共享一個(gè)外部接口,通道控制邏輯使同一時(shí)刻只能有一個(gè)通道打開(kāi),保證系統(tǒng)工作的穩(wěn)定性。其中DSP1是控制邏輯的主控制機(jī),在正常工作的情況下由它控制著相應(yīng)通道的通斷及當(dāng)前主控CPU。每個(gè)DSP都有自己的EEPROM存儲(chǔ)器,用于存儲(chǔ)系統(tǒng)的各種即時(shí)信息,并通過(guò)CAN總線在雙機(jī)間進(jìn)行傳輸??刂瓢骞ぷ鲿r(shí)采集傳感器及外部控制信息,通過(guò)CPU運(yùn)算處理后由其對(duì)應(yīng)的通道輸出控制信息到相應(yīng)控制盒,控制相應(yīng)設(shè)備的動(dòng)作。[!--empirenews.page--]
雙余度DSP模塊硬件設(shè)計(jì)
雙余度DSP模塊是本設(shè)計(jì)的重點(diǎn),其硬件原理如圖2的雙余度DSP模塊。它由雙DSP核及通道控制邏輯兩部分組成。其中DSP1為主CPU,DSP2為輔CPU。當(dāng)系統(tǒng)上電啟動(dòng)后主CPU通過(guò)I/O口通知輔CPU進(jìn)行自檢并采集其自檢信息,同時(shí)當(dāng)主CPU的EEPROM內(nèi)容發(fā)生改變時(shí),主CPU通過(guò)CAN總線發(fā)送相應(yīng)的數(shù)據(jù)給輔CPU以更新輔CPU的EEPROM內(nèi)容,如圖3所示。圖中CAN收發(fā)器為兩個(gè)對(duì)連的CAN總線收發(fā)器,負(fù)責(zé)實(shí)現(xiàn)雙機(jī)間系統(tǒng)即時(shí)信息的傳送,并存儲(chǔ)于各自對(duì)應(yīng)的EEPROM中,供維護(hù)和查詢。
通道控制邏輯決定著整個(gè)系統(tǒng)的當(dāng)前工作CPU,即當(dāng)其中一個(gè)CPU被認(rèn)為有故障時(shí),通道控制邏輯將主動(dòng)或是被動(dòng)地切換到系統(tǒng)認(rèn)為沒(méi)有故障的CPU,或決定由其中的一個(gè)CPU強(qiáng)制工作。通道控制邏輯的硬件原理如圖4所示。所謂的主動(dòng)切換是指當(dāng)主DSP通個(gè)自檢發(fā)現(xiàn)自身有故障(包括其對(duì)應(yīng)的通道故障),而其程序能正常工作的情況下,由其程序產(chǎn)生的通過(guò)控制I/O口的邏輯電平而產(chǎn)生的通道切換。被動(dòng)切換是指非DSP自檢的因素產(chǎn)生,而是由于通道控制邏輯本身硬件故障引起的通道意外切換。通道控制邏輯硬件由門(mén)電路組成,能有效地防止雙機(jī)的搶權(quán)問(wèn)題。同時(shí)控制邏輯返回給兩個(gè)DSP一個(gè)“CTL_BACK”狀態(tài)回讀信號(hào),用于判斷當(dāng)前的通道情況。
主DSP通過(guò)控制輸入端口的邏輯狀態(tài)來(lái)使能相應(yīng)的通道,只有當(dāng)兩個(gè)控制端同時(shí)有效時(shí)選通主通道,此時(shí)主DSP工作。其他任何狀態(tài)都將打開(kāi)輔通道??梢杂行П苊庥捎谥骺谼SP I/O口失效而產(chǎn)生不能切換的后果。同時(shí)主DSP不斷檢測(cè)“CTL_BACK”狀態(tài)回讀信號(hào)的狀態(tài),否則將產(chǎn)生被動(dòng)切換,說(shuō)明通道控制邏輯硬件故障。輔DSP上電后不斷檢測(cè)“CTL_BACK”狀態(tài)回讀信號(hào),若檢測(cè)到為有效,則說(shuō)明通道已經(jīng)切換到了輔通道,輔DSP開(kāi)始工作。
應(yīng)用處理及其輸出單元
針對(duì)于不同的應(yīng)用其處理及輸出單元具有各自的特殊性,本應(yīng)用要求輸出多路電壓控制信號(hào),主要由帶SPI接口的16路模數(shù)轉(zhuǎn)換芯片及驅(qū)動(dòng)電路組成,并通過(guò)DSP的I/O口控制D/A的復(fù)位、清零等操作。[!--empirenews.page--]
系統(tǒng)軟件
系統(tǒng)軟件設(shè)計(jì)主要基于CCS2.2 Code Composer Studio集成開(kāi)發(fā)環(huán)境,主程序采用匯編語(yǔ)言編寫(xiě),軟件調(diào)試及仿真完成??刂瓢錎SP軟件流程框圖如圖5所示,系統(tǒng)軟件主要實(shí)現(xiàn)雙機(jī)間的通訊及故障判別并切換,并完成控制任務(wù)處理。包括主DSP軟件及輔DSP軟件兩部分,其中任務(wù)控制處理功能部分是相同的,重點(diǎn)在于雙機(jī)間的交互問(wèn)題。
在雙機(jī)交互的切換問(wèn)題中,起主要作用的是通道的切換,當(dāng)前打開(kāi)的通道具有最高優(yōu)先權(quán),不管產(chǎn)生DSP切換的原因是什么,其最終的結(jié)果都將是當(dāng)前只有一個(gè)通道是打開(kāi)的,通道的切換可能是由主DSP程序主動(dòng)控制而切換,或是控制邏輯本身的硬件原因,但是只有這個(gè)對(duì)應(yīng)的打開(kāi)通道的DSP能真正控制外部的輸出,這即所謂的通道分用。切換依據(jù)如圖5所示。
系統(tǒng)應(yīng)用控制軟件主要實(shí)現(xiàn)系統(tǒng)的具體的應(yīng)用功能,主要由以下功能子程序組成:系統(tǒng)自檢子程序、雙機(jī)交互及故障判斷切換子程序、控制應(yīng)用功能子程序等。其中主DSP、輔DSP雙機(jī)交互軟件流程如圖6a、圖6b所示。
結(jié)語(yǔ)
雙余度DSP系統(tǒng)在對(duì)控制器要求較高的場(chǎng)合具有很好的實(shí)用意義,其基于通道復(fù)用的硬件設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單且易于實(shí)現(xiàn),有效地解決了雙機(jī)共同工作的權(quán)限問(wèn)題。本設(shè)計(jì)中所提出的雙余度DSP設(shè)計(jì)可以很方便地移植到其他的雙余度系統(tǒng)中。