一種高可信賴測控計(jì)算機(jī)的設(shè)計(jì)與實(shí)現(xiàn)
測控設(shè)備在信號檢測、工業(yè)控制、醫(yī)療儀器、航空航天等領(lǐng)域應(yīng)用十分廣泛。目前測控系統(tǒng)大多是以工業(yè)控制計(jì)算機(jī)作為控制中心。但是這種方法主要有以下缺點(diǎn):一是工業(yè)控制計(jì)算機(jī)控制通信功能相對比較弱,要增強(qiáng)控制通信功能就必須外加很多電路,從而使系統(tǒng)設(shè)計(jì)復(fù)雜,系統(tǒng)可靠性難以提高;二是工業(yè)控制計(jì)算機(jī)體積較大,不能滿足某些特定行業(yè)的需要;三是工業(yè)控制計(jì)算機(jī)不適合于環(huán)境惡劣和可靠性要求很高的場合。
在航空領(lǐng)域中,有眾多的測控儀器。這些儀器不僅要求可靠性高、重量輕、體積小,而且要求計(jì)算機(jī)抗惡劣環(huán)境能力強(qiáng)、能夠與各種不同的航電設(shè)備通信。而機(jī)載燃油測控計(jì)算機(jī)就是一種典型的航空測量儀器,它為航空器駕駛員和其它航空設(shè)備提供重要的信息。它的工作是否可靠,直接關(guān)系到人民的生命財(cái)產(chǎn)安全。
針對以上情況,我們采用了通信功能強(qiáng)大的芯片MPC860為主要處理器,設(shè)計(jì)了一種以硬件容錯(cuò)為基礎(chǔ)的高可信賴的專用計(jì)算機(jī)。
1 硬件容錯(cuò)模型
容錯(cuò)技術(shù)主要是依靠資源的冗余和系統(tǒng)重構(gòu)資源的精心組織來完成的。隨著半導(dǎo)體元件體積的縮小及成本的下降,以及超大規(guī)模集成電路的發(fā)展,在計(jì)算機(jī)容錯(cuò)系統(tǒng)的設(shè)計(jì)中采用硬件冗余成為當(dāng)前比較常用的方法。硬件冗余分為被動(dòng)硬件冗余、主動(dòng)硬件冗余和混合硬件冗余。
被動(dòng)硬件冗余又稱為靜態(tài)硬件冗余。它應(yīng)用了故障掩蔽的概念,即是指冗余結(jié)構(gòu)并不隨故障情況變化的冗余形式。通常采用的結(jié)構(gòu)是三模冗余TMR(Triple Modular Redundancy)和二模冗余結(jié)構(gòu)。為了進(jìn)一步提高系統(tǒng)的可靠性,可以采用N模冗余(NMR)。NMR與TMR的原理相同,只是采用N個(gè)相同的模塊。N一般為奇數(shù),以方便進(jìn)行多數(shù)表決。NMR可以容忍(N一1)/2個(gè)故障模塊。
主動(dòng)硬件冗余又稱為動(dòng)態(tài)硬件冗余,主要采用重組技術(shù)。它通過故障檢測、故障定位及故障恢復(fù)來達(dá)到容錯(cuò)的一種技術(shù)。主動(dòng)硬件冗余的形式有雙機(jī)比較、備用替換和成對備用。 帶熱備份的雙機(jī)比較系統(tǒng)是在增強(qiáng)型雙機(jī)比較系統(tǒng)的基礎(chǔ)上,增加了一個(gè)熱備計(jì)算機(jī),通常系統(tǒng)中帶有進(jìn)行故障定位的自診斷程序。系統(tǒng)的工作原理是,系統(tǒng)開始以雙機(jī)運(yùn)行,當(dāng)雙機(jī)比較系統(tǒng)出現(xiàn)故障時(shí),啟動(dòng)自診斷程序進(jìn)行故障定位,定位故障后,切換開關(guān)將故障機(jī)器從系統(tǒng)中切除并換上處于正常工作狀態(tài)的熱備計(jì)算機(jī)。系統(tǒng)繼續(xù)以雙機(jī)模式運(yùn)行。
根據(jù)上述增強(qiáng)型雙機(jī)比較系統(tǒng)模型及實(shí)際課題應(yīng)用要求,我們?nèi)サ袅吮容^器,熱備份計(jì)算機(jī),提出了圖1所示的簡化雙機(jī)熱備系統(tǒng)結(jié)構(gòu)模型,并加以實(shí)現(xiàn)。
圖1中,系統(tǒng)啟動(dòng)時(shí)默認(rèn)將計(jì)算機(jī)A作為主系統(tǒng)輸出,計(jì)算機(jī)B作為熱備機(jī)使用。A機(jī)與B機(jī)并行執(zhí)行相同的計(jì)算,且A機(jī)和B機(jī)各有獨(dú)自的外圍控制邏輯和外設(shè),既不會(huì)引起系統(tǒng)資源的競爭,又增加了整體系統(tǒng)的穩(wěn)定性。當(dāng)然,這樣是以花費(fèi)更多的硬件設(shè)施為代價(jià)的。主備用機(jī)之間的切換用專門設(shè)計(jì)的仲裁檢測電路來實(shí)現(xiàn)。仲裁檢測電路根據(jù)A機(jī)與B機(jī)周期向它發(fā)送的自檢信號來判斷A機(jī)系統(tǒng)與B機(jī)系統(tǒng)運(yùn)行的狀況,并控制切換開關(guān)K1、K2的操作。①如果A機(jī)與B機(jī)均正常運(yùn)行,則將A機(jī)的運(yùn)行結(jié)果作為系統(tǒng)輸出;②如果A機(jī)正常而B機(jī)故障,亦將A機(jī)的運(yùn)行結(jié)果作為系統(tǒng)輸出,同時(shí)將B機(jī)的運(yùn)行故障狀態(tài)報(bào)告給A機(jī),并向B機(jī)進(jìn)行復(fù)位控制操作;③如果A機(jī)故障,B機(jī)正常,則進(jìn)行開關(guān)切換操作,將B機(jī)的運(yùn)行結(jié)果作為系統(tǒng)輸出,同時(shí)將A機(jī)的運(yùn)行故障狀態(tài)報(bào)告給B機(jī),并向A機(jī)進(jìn)行復(fù)位控制操作(所有的操作過程均作為日志文件保存在系統(tǒng)內(nèi),停機(jī)后根據(jù)日志記錄將故障機(jī)轉(zhuǎn)入維修);④如果A機(jī)與B機(jī)均故障,則由仲裁電路發(fā)出報(bào)警信號,表明系統(tǒng)不可用。
2 設(shè)計(jì)方案及系統(tǒng)結(jié)構(gòu)
本系統(tǒng)的設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)一個(gè)機(jī)載燃油測量嵌入式容錯(cuò)管理控制系統(tǒng),用于機(jī)載燃油系統(tǒng)的測量、管理和控制,采用雙機(jī)熱備系統(tǒng)模型。設(shè)計(jì)內(nèi)容主要包括熱備份雙工的硬件設(shè)計(jì),數(shù)據(jù)采樣和驅(qū)動(dòng)程序設(shè)計(jì),并提供在嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)之上的應(yīng)用編程接口。系統(tǒng)的主要功能包括提供系統(tǒng)基本狀態(tài)自診斷(自測試)、系統(tǒng)硬件監(jiān)控、系統(tǒng)總線超時(shí)監(jiān)控、提供系統(tǒng)單點(diǎn)故障容錯(cuò)、系統(tǒng)雙機(jī)切換等。同時(shí),為了與其它最新的航空設(shè)備進(jìn)行數(shù)據(jù)交換,系統(tǒng)還要求提供ARNIC429和1553B等高級接口。
采用的方案系統(tǒng)框圖如圖2所示。在圖2中,數(shù)據(jù)采集到A/D轉(zhuǎn)換后,A、B兩機(jī)同時(shí)對采集到的數(shù)據(jù)進(jìn)行處理。當(dāng)某一通道發(fā)生故障時(shí),系統(tǒng)自動(dòng)切換到另一通道進(jìn)行工作。仲裁電路自動(dòng)使故障通道的數(shù)據(jù)輸出設(shè)置為高阻態(tài),將其它接口的使能端設(shè)置為無效。
2.1 主控機(jī)系統(tǒng)
主控機(jī)系統(tǒng)采用的系統(tǒng)時(shí)鐘為50MHz的MPC860P。它的總線接口的工作電壓是 3.3V,兼容5V TTL電平。
MPC860 PowerQLJlCC微處理器是一個(gè)多用途的通用芯片,內(nèi)部集成了微處理器和常用外圍組件,可用于各種控制領(lǐng)域,特別適用于通信產(chǎn)品。MPC860集成了嵌入式PowerPC核和一個(gè)為通信使用的專門的RISC的通信處理器模塊(CPM)。MPC860的CPM支持6個(gè)串行通道(4個(gè)串行通信控制器SCC、2個(gè)串行管理控制器SMC、1個(gè)I2C(Inter-Integrated Circuit)接口和1個(gè)串行外圍接口電路(SPI)。MPC860還提供1個(gè)快速以太網(wǎng)控制器,可以支持10Mbps到100Mbps的以太網(wǎng)。由于CPM分擔(dān)了嵌入式PowerPC核的外圍工作任務(wù),這種雙處理器體系結(jié)構(gòu)比傳統(tǒng)體系結(jié)構(gòu)的處理器具有更高的效率和更高的可靠性。圖3為主控系統(tǒng)結(jié)構(gòu)。
圖3中,MPC860P內(nèi)部的串行管理控制器SMCl和SMC2分別用來作為R$232和RS485的UART接口,4個(gè)串行通信控制器(SCc1、SCC2、SCC3、SCC4)用于控制Rs-422接口。所有的存儲(chǔ)器及外部存儲(chǔ)設(shè)備均通過存儲(chǔ)器控制器與MPC860P接口。
MlPC860P通過內(nèi)存控制器GPCM與SRAM建立接口。這里選用的是三星公司的K6X8008C2B,用4片8位組成32位SRAM數(shù)據(jù)總線供系統(tǒng)使用。 對于Flash閃存配置的設(shè)計(jì)方案,將其分成兩塊:一塊用來裝載引導(dǎo)系統(tǒng)啟動(dòng)的PPcB00T及裁減后的CRTOS 2.0操作系統(tǒng);一塊用來放置上層應(yīng)用程序,作為用戶數(shù)據(jù)區(qū)域,保存每次飛機(jī)起飛降落中的燃油數(shù)據(jù)。Flash選擇Intel公司的28F640J3A,BGA封裝。這塊芯片有23根地址線,16根數(shù)據(jù)線,容量為8MB,128KB的可擦除塊;擦除塊之間相互獨(dú)立,每一塊的擦除操作可在1s內(nèi)完成,并可單獨(dú)被擦寫100 000次;支持8位及16位兩種數(shù)據(jù)寬度工作模式,通過其上的麗位的高低電平來選擇。在采用8位數(shù)據(jù)寬度模式時(shí),BRTE位置低位,有效地址線為A0~A22;采用16位數(shù)據(jù)寬度模式時(shí),BYTE位置高位,此時(shí)A0位懸空無效,有效地址線為A1~A22。在此我們采用16位數(shù)據(jù)寬度模式。
由此看到MPC860的強(qiáng)大通信功能。我們將SCC1到SCC4四個(gè)通信口作為4個(gè)RS422通信口,選用TI公司的AM26LS32(接收器)和AM26LS31(發(fā)送器)。其均遵從ANSIEIA/TLA-422-B規(guī)范,采用十5V工作電源,兼容TTL電平,16引腳DIP封裝。AM26LS32在通用模式下輸入電平范圍可達(dá)7V,靈敏度可達(dá)200mV,三態(tài)輸出。用仲裁電路的仲裁控制輸出TS1GATE和TSIGATE來控制AM26LS32和AM26LS31的工作使能端,以達(dá)到控制雙機(jī)競爭通信信道的目的。
將SMCl配置成一個(gè)RS232C口,器件選用引腳完全及功能完全與之兼容的MAx232芯片。
將SMC2配置成一個(gè)RS485,以便與其它航空設(shè)備通信。器件選用MAx485,8引腳SO封裝。由于采用二線制方式,半雙工通道,設(shè)計(jì)上用經(jīng)過16244驅(qū)動(dòng)的CPU讀寫信號BRD/WR來連接MAX485的面和DE端,以此達(dá)到控制MAx485的發(fā)送和接收狀態(tài)。
為了使系統(tǒng)具有更強(qiáng)的兼容能力,還提供了目前兩個(gè)航空通信標(biāo)準(zhǔn)接口一ARNIC429和1553B。
為實(shí)現(xiàn)1路ARINC429通信接口,選用Intersil公司的HS-3282及HS-3181芯片。HS-3282是429總線通道控制器,主要控制429接口與CPU端的接收與發(fā)送,40引腳DIP封裝。因?yàn)橥鈬刂七壿嫾捌x比較復(fù)雜,因此設(shè)計(jì)在FPGA內(nèi)部來實(shí)現(xiàn)。HA-3281是429總線的電平控制驅(qū)動(dòng)器,其實(shí)現(xiàn)429與通信信道的電平轉(zhuǎn)換與物理連接。429通道的接收分別占用CPU的IRQ5和Q6中斷源。
為實(shí)現(xiàn)1路1553B總線接口,選用DDC公司的BU-61580總線控制芯片,+5V工作電壓,完全集成MIL-STD-1553接口及終端,靈活的處理器及內(nèi)存配置接口,內(nèi)配標(biāo)準(zhǔn)4K16RAM。由于在設(shè)計(jì)中給其分配的地址空間范圍內(nèi)有多個(gè)外設(shè),所以在FPGA用CS7加上一定的地址經(jīng)譯碼后產(chǎn)生的信號BU SEIECT作為Bu-61580的片選信號。由于此芯片工作需要獨(dú)立的16MHz時(shí)鐘信號源,因此采用一個(gè)有源的16MHz石英振蕩器。
2.2 仲裁電路
仲裁電路是為保證雙機(jī)熱備系統(tǒng)的正常工作及出錯(cuò)板極切換而設(shè)計(jì)的,所以尤為重要。
(1)設(shè)計(jì)思路
用兩個(gè)可編程計(jì)數(shù)器不斷對時(shí)鐘脈沖進(jìn)行計(jì)數(shù),當(dāng)?shù)竭_(dá)預(yù)定計(jì)數(shù)值而未收到CPU端ACtive信號時(shí),則在計(jì)數(shù)輸出端產(chǎn)生從低電平到高電平的躍變。該變化通過門電路決定是否觸發(fā)用于切換輸出信號的觸發(fā)器,同時(shí)給出故障警示脈沖信號。
(2)電路邏輯說明
如圖4所示,晶振和兩個(gè)非門組成的自激多諧振蕩器產(chǎn)生的時(shí)鐘脈沖(32.768kHz),分別送到兩個(gè)可編程計(jì)數(shù)/分頻器54LS292的時(shí)鐘輸入端。兩者的計(jì)數(shù)分頻值均被設(shè)為,因此定時(shí)周期為2s,則計(jì)數(shù)器Q端在半個(gè)周期即1s時(shí)翻轉(zhuǎn)。如超過該時(shí)間而CLRN未收到從CPU板送來的Active信號(下降沿有效),則會(huì)在Q輸出上升沿。兩個(gè)Q端輸出分別送到兩個(gè)與非門用于判斷是否輸出觸發(fā)J-K觸發(fā)器的下降沿信號。當(dāng)有超時(shí)信號輸出的這一邊正好是其輸出有效的一邊時(shí),其送往的與非門的另一輸入必為高。這時(shí)觸發(fā)信號產(chǎn)生,觸發(fā)器被觸發(fā)而產(chǎn)生切換。反之,當(dāng)有超時(shí)信號輸出的這一邊不是其輸出有效的一邊,則其送往的與非門的另一輸入必為低,這時(shí)不產(chǎn)生觸發(fā)信號,不發(fā)生切換。在兩種情況下產(chǎn)生的超時(shí)信號都被送往兩個(gè)與非門組成的組合邏輯電路,用于輸出故障警示脈沖到當(dāng)前正常工作的CPU板的A1arm端,同時(shí)這個(gè)信號也作為發(fā)生故障的CPU板的復(fù)位信號送往對應(yīng)的CPU復(fù)位端。
2.3 其它硬件部分的設(shè)計(jì)
本系統(tǒng)的硬件設(shè)計(jì)部分還包括A/D和D/A轉(zhuǎn)換、頻率計(jì)數(shù)輸入端口、開關(guān)量轉(zhuǎn)換電路、掉電保護(hù)電路、測試診斷電路等。由于測試診斷電路涉及的內(nèi)容較多,故在此未贅述,僅對前四部分作簡要介紹。
為實(shí)現(xiàn)A、B通道的64路A/D采集模擬開關(guān)控制電路(其中四路用作器件工作狀態(tài)測試),選用ADl674作為A/D轉(zhuǎn)換器件。AD1674是美國模擬器件公司(Analog Devices)生產(chǎn)的12位精度逐次逼近型快速A/D轉(zhuǎn)換器,為其公司經(jīng)典轉(zhuǎn)換器AD574A的升級產(chǎn)品。轉(zhuǎn)換速度僅為10 u s,轉(zhuǎn)換精度≤005%,片內(nèi)配有三態(tài)輸出緩沖電路,因而可直接與各種典型的微處理器相連接,而無須附加邏輯接口電路,且能與CM0S及TTL電平兼容。另外其片內(nèi)自帶采樣保持電路,保證了A/D采樣的準(zhǔn)確性和穩(wěn)定性,可直接與被轉(zhuǎn)換的模擬信號相連。由于ADl674片內(nèi)包含高精度的參考電壓源和時(shí)鐘電路,這使它在不需要任何外部電路和時(shí)鐘信號的情況下能完成一切A/D轉(zhuǎn)換功能。
本系統(tǒng)中的4路頻率端口信號量(FQ0~FQ3)經(jīng)4路差分比較器整形成4路標(biāo)準(zhǔn)TTL方波信號(FQINO~FQIN3,門限以TTL電平為準(zhǔn)),后送入CPU計(jì)數(shù)器計(jì)數(shù)。差分比較器選用TI公司的LMl39芯片。其支持單極和雙極輸入,寬電源輸入(+2V~+36V),差分輸入電壓范圍可達(dá)36V,輸出電平兼容TTL、MOS、CMOS,內(nèi)部集成4通道比較器,采用14引腳DIP封裝。
根據(jù)系統(tǒng)工作環(huán)境,32路離散量的輸入采集信號及輸出控制信號均為+28V;而MPC860的工作電壓為3.3V輸入電平兼容+5V,涉及到高低電平的隔離控制,因此設(shè)計(jì)中采用光耦器件來實(shí)現(xiàn)。我們選用Toshiba公司的TLP521-4,片內(nèi)集成4路耦合通道,整個(gè)系統(tǒng)輸入輸出共需16片,集電極至發(fā)射極最高電壓+55V,片內(nèi)二極管正向電流最大50mA,功耗150mW,16引腳DIP封裝。
根據(jù)方案要求,系統(tǒng)在掉電時(shí)需要提供短時(shí)間的電 源以作系統(tǒng)數(shù)據(jù)保存工作。這里選用Maxim公司的 MAx79l電路監(jiān)控芯片,采用IRQ1中斷源,配合大容量 的電解電容作為后備電源。
2.4系統(tǒng)自診斷輔助電路
為了配合系統(tǒng)自診斷程序的工作,設(shè)計(jì)了以下四個(gè) 方面的輔助電路測試電路。
(1)模擬量輸入測試模塊
通過提供一個(gè)檢測用模擬信號,作為多路模擬開關(guān)的一路輸入信號。經(jīng)A/D轉(zhuǎn)換后,將數(shù)據(jù)送入CPU進(jìn)行比較檢測,便可得知模擬信號輸入模塊是否正常工作。
(2)A/D本身的故障定位
各種典型的A/D轉(zhuǎn)換器,都有兩個(gè)重要的信號引腳START和EOC(以常用的AD0809為例),前者為輸入信號,高電平有效。此信號上升沿清除ADC內(nèi)部寄存器,在下降沿時(shí)啟動(dòng)內(nèi)部控制信號,開始A/D轉(zhuǎn)換工作。另一信號EOC是轉(zhuǎn)換結(jié)束信號,高電平有效,為輸出信號。當(dāng)一次A/D結(jié)束時(shí),此引腳輸出高電平。在A/D轉(zhuǎn)換過程中為低。我們可以利用它來測試A/D是不是正常工作。具體到我們系統(tǒng)所選用的芯片AD574而言,它的EOC信號引腳稱為STS。不同的是,A/D轉(zhuǎn)換過程中為高電平,轉(zhuǎn)換結(jié)束為低電平。
(3)頻率輸入測試模塊
本模塊主要由頻率輸入調(diào)整及MPU構(gòu)成。MPC860發(fā)出基準(zhǔn)頻率后輸入調(diào)整模塊后再送入MPC860內(nèi)部頻率計(jì)數(shù)器進(jìn)行計(jì)數(shù)及比較。
開關(guān)量輸入測試模塊。本模塊通過MPU主動(dòng)發(fā)出一個(gè)數(shù)據(jù)信號,經(jīng)由開關(guān)量輸入模塊通道后再返回CPU內(nèi)部進(jìn)行比較。如果與原來發(fā)出的開關(guān)量相符,為正常工作狀態(tài)。
(4)通信端口測試模塊
主要思想是通過引入一個(gè)類似于雙刀雙擲的電子開關(guān),然后讓系統(tǒng)發(fā)信息給自己。能正常接收為正常工作,反之表明系統(tǒng)有錯(cuò)。
3 總 結(jié)
本文所設(shè)計(jì)的機(jī)載燃油雙機(jī)熱備份測控計(jì)算機(jī)系統(tǒng),已實(shí)現(xiàn)預(yù)期容錯(cuò)功能,具有通用性強(qiáng),系統(tǒng)可靠性高、功耗低等諸多特性。目前,該系統(tǒng)在嵌入式安全實(shí)時(shí)操作系統(tǒng)CRT0S2.0的支持下,正在開發(fā)燃油測控和管理等更多的上層應(yīng)用軟件。
評論