高建華,劉永葆,王文華
(海軍工程大學(xué) 船舶與動力學(xué)院,武漢430033)
分布式控制具有組織結(jié)構(gòu)靈活和數(shù)據(jù)運(yùn)算、處理能力強(qiáng)的優(yōu)點(diǎn),采用分布式控制的系統(tǒng),模塊化結(jié)構(gòu)降低了復(fù)雜性,同時也提高了可靠性;魯棒性設(shè)計(jì)使得系統(tǒng)具備更靈活的擴(kuò)展能力;故障的預(yù)警診斷處理,既滿足了產(chǎn)品的安全性,也為產(chǎn)品的測試提供了方便[1]。標(biāo)準(zhǔn)化、模塊化、高可靠性和易維護(hù)性,使得分布式控制成為當(dāng)前燃?xì)廨啓C(jī)控制的一個重要發(fā)展方向[2]。
燃?xì)廨啓C(jī)分布式控制系統(tǒng)DCS(digital control system)的智能設(shè)備通過數(shù)字?jǐn)?shù)據(jù)總線與全權(quán)限數(shù)字發(fā)動機(jī)控制(FADEC)進(jìn)行通信。智能設(shè)備可以是智能傳感器,也可以是智能執(zhí)行機(jī)構(gòu),或者是傳感器與執(zhí)行機(jī)構(gòu)二者功能的組合[3]。智能傳感器把模擬傳感器的值轉(zhuǎn)變成數(shù)字格式輸出給FADEC。智能執(zhí)行機(jī)構(gòu)從FADEC接收到一個位置命令,并執(zhí)行該執(zhí)行機(jī)構(gòu)的閉環(huán)位置控制。智能傳感器和執(zhí)行機(jī)構(gòu)向FADEC報(bào)告其狀態(tài),并執(zhí)行諸如:補(bǔ)償、內(nèi)置測試、故障檢測與診斷等功能。一個智能設(shè)備(傳感器或者執(zhí)行機(jī)構(gòu))是燃?xì)廨啓C(jī)上的一個整體可替換部件LRU(line replaceable unit),它由一個基本設(shè)備加上一個智能電子接口單元SEIU(smart electronic interface unit)組成。電子接口單元有一個與FADEC相連接的數(shù)據(jù)總線和電源總線接口,在線實(shí)時地獲取燃?xì)廨啓C(jī)的狀態(tài)信息,并通過復(fù)雜的控制算法和邏輯處理產(chǎn)生控制決策,這就要求智能電子接口單元的中央處理器具有很強(qiáng)的數(shù)值計(jì)算與處理能力。此外,由于燃?xì)廨啓C(jī)控制功能和控制變量的不斷增多,這就要求智能電子接口單元具有多節(jié)點(diǎn)、高速率、高度可靠的實(shí)時數(shù)據(jù)通信能力,因此對數(shù)據(jù)通訊總線也提出較高的要求。
因此研究燃?xì)廨啓C(jī)分布式控制系統(tǒng)智能電子接口單元運(yùn)用ARM芯片作為核心控制微處理器,采用先進(jìn)的CAN總線技術(shù)作為通信標(biāo)準(zhǔn),設(shè)計(jì)相應(yīng)的硬件電路;軟件以實(shí)時操作系統(tǒng)uC/OS-II為基礎(chǔ),通過上層調(diào)用一系列的用戶程序來實(shí)現(xiàn)相應(yīng)的功能。
ARM(advanced RISC machine)是一種采用精簡指令集(RISC)的低功耗、高性能的32位微處理器,現(xiàn)在已經(jīng)被廣泛應(yīng)用在包括工業(yè)控制在內(nèi)的多個領(lǐng)域中。目前主流的ARM核有ARM7TDMI,StrongARM,ARM720T,ARM920T,ARM922T,ARM940T,ARM946T,ARM966T,ARM10TDMI等[4]。綜合考慮運(yùn)算能力、接口、適用溫度范圍等因素,選擇PHILIPS公司基于ARM7TDMI-S核的LPC2294微處理器,作為設(shè)計(jì)智能電子接口單元的核心微處理器。
LPC2294是基于一個支持實(shí)時仿真和跟蹤的32位微處理器,其主頻為60MHz,帶有256kB的Flash存儲器和16kB的RAM,以及32位定時器、RTC模塊、WDT模塊、AD采樣器以及多路串行接口等[5]。-40~105℃的寬溫使用條件使得其應(yīng)用范圍相當(dāng)廣泛。LPC2294最大的特點(diǎn)是其自身集成了4路CAN總線通訊接口,兼容CAN 2.0B,ISO 11898-1,這為設(shè)計(jì)高性能的SEIU提供了極大的方便。
在對LPC2294微處理器結(jié)構(gòu)以及性能分析的基礎(chǔ)上,設(shè)計(jì)出了智能電子接口單元的整體架構(gòu)。整個系統(tǒng)的硬件設(shè)計(jì)框架見圖1。
圖1 智能電子接口單元硬件組成框圖
硬件主要由三部分組成。第一部分是ARM最小系統(tǒng),它包括電源、時鐘以及供硬件調(diào)試和系統(tǒng)測試用的JTAG接口和RS232串行總線通訊接口。第二部分是面向智能傳感器和智能執(zhí)行機(jī)構(gòu)的接口,主要包括將傳感器發(fā)送來的模擬量數(shù)字化的AD采樣接口、控制位置控制器的PWM輸出接口以及其它通用IO接口等。第三部分就是面向分布式控制上層的接口。根據(jù)分布式控制的特點(diǎn)以及物理冗余度的要求,這里設(shè)計(jì)了兩路CAN通訊總線,這兩路CAN通訊總線由LPC2294內(nèi)部的CAN控制器和PHILIPS公司的CAN收發(fā)器80C250構(gòu)成。系統(tǒng)處于正常工作狀態(tài)時,只有1路CAN通訊接口處于激活狀態(tài);當(dāng)該線路通訊發(fā)生故障時,系統(tǒng)自動啟動另外1路CAN接口滿足應(yīng)急通訊的要求,同時發(fā)出報(bào)警指令,從而確保整個系統(tǒng)的高可靠性。
由于智能電子接口單元需要具備標(biāo)準(zhǔn)化、模塊化和高可靠性,若采用傳統(tǒng)前后臺設(shè)計(jì)方法,會使系統(tǒng)顯得過于復(fù)雜,實(shí)時性得不到保證,而且容易發(fā)生死鎖。解決這些問題的最好方法就是采用實(shí)時操作系統(tǒng),這樣可以實(shí)現(xiàn)與硬件平臺的無關(guān)性,降低程序的復(fù)雜度,并使得復(fù)雜的多任務(wù)應(yīng)用更容易實(shí)現(xiàn)[6]。鑒于系統(tǒng)實(shí)時性和可靠性要求比較高,智能電子接口單元以uC/OS-II實(shí)時操作系統(tǒng)作為軟件開發(fā)的平臺,并在上面開發(fā)數(shù)據(jù)隊(duì)列、CAN總線驅(qū)動、串口驅(qū)動等中間件,uC/OS-II上創(chuàng)建任務(wù)時只需調(diào)用這些中間件就可以完成對實(shí)際硬件的操作。
圖2 uC/OS-II文件結(jié)構(gòu)圖
圖2 說明了uC/OS-II的軟硬件體系結(jié)構(gòu)。應(yīng)用程序處于整個系統(tǒng)的頂層,每個任務(wù)都可以認(rèn)為自身獨(dú)占CPU,因而可以設(shè)計(jì)成為一個無限循環(huán)。uC/OS-II處理器無關(guān)的代碼提供了uC/OS-II的系統(tǒng)服務(wù),應(yīng)用程序可以調(diào)用這些API函數(shù)進(jìn)行內(nèi)存管理、任務(wù)間通信以及任務(wù)的創(chuàng)建、刪除等。移植uC/OS-II需要修改的代碼量很小,主要需要修改的部分就是與處理器相關(guān)部分的三個文件 OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C。
應(yīng)用程序的主函數(shù)是程序首先執(zhí)行的一個函數(shù)。該函數(shù)永遠(yuǎn)不會返回,主要實(shí)現(xiàn)系統(tǒng)硬件和操作系統(tǒng)的初始化。硬件初始化包括中斷、鍵盤、顯示等的初始化;操作系統(tǒng)初始化包括任務(wù)控制塊和事件控制塊的初始化,而且在啟動多任務(wù)調(diào)度之前,必須至少創(chuàng)建一個任務(wù)。此系統(tǒng)中還創(chuàng)建了一個啟動任務(wù),主要負(fù)責(zé)時鐘的初始化和啟動、中斷的啟動以及CAN控制器的初始化及啟動等。根據(jù)各個任務(wù)的重要性和實(shí)時性,程序可以分成五個具有不同優(yōu)先級的任務(wù),見表1。
表1 任務(wù)劃分表
每個任務(wù)都有特定的名稱、內(nèi)存空間和優(yōu)先級。不同的任務(wù)必須有不同的優(yōu)先級,優(yōu)先級可以是0~62之間的任意值,數(shù)值越小優(yōu)先級越高。優(yōu)先級的設(shè)置有不同的依據(jù),在智能電子接口單元中,智能執(zhí)行機(jī)構(gòu)控制任務(wù)對時間要求最苛刻,該任務(wù)的實(shí)現(xiàn)直接關(guān)系到燃?xì)廨啓C(jī)的運(yùn)行狀態(tài),優(yōu)先級設(shè)為最高;智能傳感器控制需要將采集到的燃?xì)廨啓C(jī)運(yùn)行的各種狀態(tài)參數(shù)送入FADEC,因此優(yōu)先級設(shè)為高。CAN總線通訊要及時與FADEC進(jìn)行通訊,優(yōu)先級設(shè)置為中。本地初始化只是在系統(tǒng)開機(jī)或復(fù)位時才會進(jìn)行,實(shí)時性要求不高,因此它的優(yōu)先級設(shè)置為低,RS232接口通訊只有在系統(tǒng)與上位機(jī)相連進(jìn)行測試時才會用到,所以它的優(yōu)先級設(shè)為最低。
uC/OS-II多任務(wù)操作系統(tǒng)要求為每個任務(wù)分配OS_STK類型的堆??臻g,并且它們占用的RAM存儲空間必須是連續(xù)的。任務(wù)延時是任務(wù)執(zhí)行完畢處于掛起等待狀態(tài)到下一次重新運(yùn)行之間的時間間隔,其單位是時鐘中斷節(jié)拍。由于OS_TICKS_PER_SEC為100,每一拍為10ms。每個任務(wù)的調(diào)用間隔不能小于一個節(jié)拍,否則將會影響模擬量的采樣頻率。
uC/OS-II各個任務(wù)是通過搶占CPU的使用權(quán)來運(yùn)行的。信號量、郵箱、消息隊(duì)列等功能為實(shí)現(xiàn)任務(wù)間通信提供了有力工具,這些工具的使用方法靈活多變。這里采用的是用信號量設(shè)置事件標(biāo)志,用郵箱在任務(wù)間傳遞參數(shù)來喚醒任務(wù)、用消息隊(duì)列的循環(huán)尋址功能進(jìn)行模擬通道的數(shù)據(jù)采集。
調(diào)試與評測是主控平臺設(shè)計(jì)實(shí)現(xiàn)的重要環(huán)節(jié),需要通過一系列有計(jì)劃的調(diào)試及評測方案來驗(yàn)證整個智能電子接口單元設(shè)計(jì)的正確性和評測系統(tǒng)的工作性能。系統(tǒng)調(diào)試包括各電路單元和接口的調(diào)試,主要通過查看關(guān)鍵信號波形和運(yùn)行測試程序?qū)γ總€功能進(jìn)行測試。系統(tǒng)評測是整個平臺系統(tǒng)軟硬件的聯(lián)調(diào),需要模擬平臺系統(tǒng)的應(yīng)用環(huán)境,監(jiān)測硬件、軟件設(shè)計(jì)的正確性與否以及運(yùn)行過程的各種參數(shù)。系統(tǒng)測試環(huán)境見圖3。
圖3 系統(tǒng)測試環(huán)境圖
整個測試環(huán)境由1臺帶有CAN總線適配卡的工控機(jī)和2個電子接口單元以及智能執(zhí)行機(jī)構(gòu)和智能傳感器組成。評測過程中,硬件系統(tǒng)運(yùn)行穩(wěn)定,各接口工作正常,軟件設(shè)計(jì)實(shí)現(xiàn)了最初的設(shè)想,達(dá)到了預(yù)期目標(biāo)。
本文介紹了燃?xì)廨啓C(jī)分布式控制系統(tǒng)智能電子接口單元的軟、硬件設(shè)計(jì)過程及其中的關(guān)鍵技術(shù),基于實(shí)時操作系統(tǒng)uC/OS-II平臺上設(shè)計(jì)的軟件更易于擴(kuò)展升級,系統(tǒng)各單元工作協(xié)調(diào)、可靠,初步滿足了分布式系統(tǒng)的功能要求,為燃?xì)廨啓C(jī)分布式控制系統(tǒng)的研究奠定了基礎(chǔ)。該電子接口單元設(shè)計(jì)合理,通用性強(qiáng),可作為未來燃?xì)廨啓C(jī)分布式控制等需要高性能控制和實(shí)時數(shù)據(jù)通信能力場合下的核心模塊使用。
[1]王常力,羅 安.分布式控制系統(tǒng)(DCS)設(shè)計(jì)與應(yīng)用實(shí)例[M].北京:電子工業(yè)出版社,2005.
[2]孫健國.面向21世紀(jì)航空動力控制展望[J].航空動力學(xué)報(bào),2001,16(2):97~102.
[3]Shaffer P L.Distributed Control System for Gas Turbine Engines[J].Transactions of the ASME,1999.121:102.
[4]王田苗.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)[M].北京:清華大學(xué)出版社,2002.
[5]Philips.LPC2294product datasheet[EB/OL].(2004-02)[2006-01].http://www.Philips.com.