1、硬件平臺設(shè)計
如圖1所示,各分系統(tǒng)介紹如下。

1.1 LPC2214
LPC2214是Philips公司的一款嵌入式微控制器(MCU) ,它采用了ARM7TDM I內(nèi)核,片上資源十分豐富,帶有16K字節(jié)片內(nèi)靜態(tài)RAM和256KB 嵌入的高速Flash存儲器。128位寬度的存儲器接口和獨特的加速結(jié)構(gòu)使32位代碼能夠在最大時鐘速率下運行。
對代碼規(guī)模有嚴格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低30%,而性能的損失卻很小。由于LPC2214較小的144腳封裝、極低的功耗、多個32位定時器, 8路10位ADC ( 64腳和144腳封裝)以及多達9個外部中斷使它們特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制和POS機。由于內(nèi)置了寬范圍的串行通信接口,它們也非常適合于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、嵌入式軟modern以及其他各種類型的應(yīng)用。
1.2 CPLD擴展電路及鍵盤LCD
該電路的主要功能是對CPU芯片的外圍功能進行擴充,使系統(tǒng)具有良好的人機接口。對于功能要求比較復(fù)雜的電路,一般都采用CPU + CPLD的模式,采用該模式的原因主要有兩個方面: (1) CPU 作為系統(tǒng)的核心,無法、也沒有必要滿足所有用戶的具體功能要求,只需給用戶以標準的外部總線接口EB I (externalbus interface)即可,讓用戶根據(jù)自己的需要進行必要的功能擴展。(2) CPLD 用在電路設(shè)計中有以下幾點優(yōu)勢:可方便地實現(xiàn)地址譯碼;編程方式簡便,可方便地通過軟件編程實現(xiàn)各種邏輯器件的功能;時鐘延遲可達納秒級,特別適合在線監(jiān)測領(lǐng)域的應(yīng)用,具有高可靠性。鍵盤主要作用是手動控制方式情況下,各位置的傳感器信號的檢測及控制,各處檢測到的溫度以數(shù)字量的方式顯示在LCD 上。實現(xiàn)了手動方式的溫度檢測及控制集中統(tǒng)一的管理。
1.3 系統(tǒng)存儲器及調(diào)試接口
LPC2214支持8位、16位和32位尋址方式,具有較強的尋址能力,可方便的構(gòu)建較大的存儲空間。由于芯片自身帶有256KB 的高速Flash,對于采用μC /OS-Ⅱ設(shè)計嵌入式通信控制器已經(jīng)足夠, 無需在外部掛接FLASH存儲器。系統(tǒng)選用IS61LV25616AL作為SRAM存儲器,滿足了嵌入式操作系統(tǒng)及通信控制器中的內(nèi)存塊拷貝運行要求。
LPC2214支持JTAG協(xié)議, JTAG( Joint Test Action Group聯(lián)合測試行動小組)是一種國際標準測試協(xié)議。主要用于芯片內(nèi)部測試及對系統(tǒng)進行仿真、調(diào)試,通過JTAG接口,可對芯片內(nèi)部的所有部件進行訪問,因而是開發(fā)調(diào)試嵌入式系統(tǒng)的一種簡潔高效的手段。目前JTAG接口的連接有兩種標準,即14針接口和20針接口,筆者選用14針接口。
1.4 系統(tǒng)通信
LPC2214 內(nèi)部集成了兩個UART 通道, 利用MAX489實現(xiàn)RS-422通信接口,以便同上位機之間的通信;另外一個UART接口用于同同級系統(tǒng)之間的通信。利用RTL8019AS芯片RJ-45網(wǎng)絡(luò)接口,在溫控設(shè)備出現(xiàn)無法處理的故障時,用五級以上的雙絞線接入基于神經(jīng)網(wǎng)絡(luò)的故障診斷服務(wù)器,實現(xiàn)了遠程以太網(wǎng)故障診斷功能。
1.5 數(shù)字及模擬接口
LPC2214提供了多達76個可編程的I/O端口,溫度控制器主要的模擬量信號有:前倉溫度模擬量信號,后室溫度模擬量信號,發(fā)動機溫度模擬量信號及系統(tǒng)設(shè)備的模擬量信號8路。模擬信號經(jīng)隔離放大后由8路10位ADC進入溫度控制器。溫度控制器內(nèi)的數(shù)字信號由I/O口,經(jīng)過隔離放大后,達到相應(yīng)的控制終端,控制通風扇開關(guān),系統(tǒng)設(shè)備溫度及前倉、后室的空調(diào)啟停等。而其他數(shù)據(jù)總線和地址總線及部分GP IO在系統(tǒng)板上引出,以供擴展之用。
2 接口抗干擾設(shè)計
在該大型車載系統(tǒng)中,后室某處溫度信號變化,將會直接影響到整個車載系統(tǒng)的性能及狀態(tài)。所以有必要提高輸入輸出接口的可靠性。需要對數(shù)字量信號及模擬量信號采用有效的抗干擾措施。
數(shù)字量接口通道總體思想就是全光電隔離方案,數(shù)字量(開關(guān)量)輸入通道接入光電藕合器后,由于光電藕合器的抗干擾作用,使夾在輸入開關(guān)量中的各種干擾脈沖都被擋在輸入回路的一邊。另外,光電藕合器還起到了很好的安全保障作用,因為光電藕合器的輸入回路和輸出回路之間可耐壓1000V,甚至更高??刂菩盘栞敵鲆彩遣捎霉怆姼綦x方法,考慮到開關(guān)量的輸出直接驅(qū)動設(shè)備的起停,需外加一些保護電路,也可以采用繼電器,Photo MOS繼電器,光電藕合器方法。
雖然模擬量I/O電路與外部電源的隔離可用安全柵來實現(xiàn),但是,一些強電干擾還會經(jīng)此和一些其他通道,從模擬量輸入輸出電路串入系統(tǒng),因此為了保證智能設(shè)備能在任何時候都能工作在平穩(wěn),安全環(huán)境里,還要加隔離措施。因為模擬量信號是連續(xù)的,任何疊加在模擬信號的干擾都會因為有實際意義而起到作用。這表明抗干擾屏蔽的位置越往外推越好,最好在模擬量輸入輸出口處,因此,要求這里采用的光電藕合器必須具有線性變換和傳輸?shù)奶匦浴?
3 系統(tǒng)軟件設(shè)計
μC /OS-Ⅱ是一個免費的、源代碼公開的實時嵌入式內(nèi)核,提供了實時系統(tǒng)所需的基本功能。μC /OS-Ⅱ中包含全部功能的核心部分,代碼只占用8.3KB,而且由于μC /OS-Ⅱ是可裁剪的,所以用戶系統(tǒng)中實際的代碼最少可達2.7KB,可謂短小精悍。μC /OS-Ⅱ適合小型控制系統(tǒng),具有執(zhí)行效率高,占用空間小,確定性、實時性優(yōu)良和可擴展性強等特點。μC /OS-Ⅱ采用的是占先式的實時多任務(wù)內(nèi)核。
占先式的實時內(nèi)核在任何時候都運行就緒任務(wù)中優(yōu)先級最高的任務(wù)。這樣μC /OS-Ⅱ就不支持通用的時間片輪轉(zhuǎn)調(diào)度。μC /OS-Ⅱ中最多可以支持64個任務(wù),分別對應(yīng)優(yōu)先級0~63,其中0為最高優(yōu)先級,版本Ⅱ保留8個給系統(tǒng),用戶可以使用的有54個。
溫度控制器的控制要求是:大型車載系統(tǒng)設(shè)有溫度傳感器來檢測車載系統(tǒng)多處的溫度,溫度控制器接收到當前的車載系統(tǒng)各處溫度,把它與車載各處原先設(shè)定溫度標準作比較以決定系統(tǒng)各處的工況。根據(jù)溫度的高低,發(fā)出相應(yīng)的控制信號,完成控制以達到監(jiān)控的目的。如車上的保溫室內(nèi)設(shè)定溫度為20℃,當溫度控制器接收到溫度傳感器的值為21℃,則溫度控制器發(fā)出降溫數(shù)字控制信號,通風扇打開,當溫度傳感器的值達到規(guī)定的范圍(19.8~20.2℃)溫度控制器發(fā)出停止信號,通風扇關(guān)閉。溫度控制器有本機自動、本機手動二種工作方式,溫度控制器通過檢測鍵盤信號或上位機發(fā)出的控制信號以決定工作于哪一種控制方式下。此外,溫度控制器能夠及時檢測出電機過載、傳感器失靈等故障,然后迅速做出簡單的故障處理。如果故障很復(fù)雜,無法診斷出來,則用雙絞線連接神經(jīng)網(wǎng)絡(luò)故障診斷服務(wù)器,開啟控制信號,實施遠程故障診斷。
根據(jù)溫度控制器的控制要求,本程序分為6個任務(wù)來實現(xiàn),分別是:任務(wù)OSTask Input ( )周期性的采集車載系統(tǒng)溫度傳感器的模擬量輸入;任務(wù)OSTaskControl( )根據(jù)溫度控制器接收到當前的車載系統(tǒng)各處溫度,把它們分別與車載各處原先設(shè)定溫度作比較和發(fā)出相應(yīng)的控制命令,使被控制端工作于制冷或者制暖工況,甚至停機(如車載系統(tǒng)的發(fā)動機處溫度過高) ;任務(wù)OSTaskcontrol choice ( )周期性輪詢UART串口,檢測是否有上位機控制命令,以使控制器能及時的響應(yīng); OSTaskmode choose ( )通過檢測鍵盤信號或上位機發(fā)出的控制信號以決定溫度控制器工作于哪一種控制方式下,默認方式為自動;任務(wù)OSTaskRemote Diagnosis ( )的功能是在接收到控制信號的情況下, 周期性地輪詢網(wǎng)卡,以實現(xiàn)與遠程故障診斷服務(wù)器進行通訊;任務(wù)OSTaskEasy _Recover ( )的功能是執(zhí)行一些簡單的故障處理程序。任務(wù)之間采用共享變量交互。
該軟件的初始化工作如下所示:

在μC /OS-Ⅱ中創(chuàng)建用戶任務(wù)時要注意到3點,首先,μC /OS-Ⅱ中每個任務(wù)被賦予不同的優(yōu)先級。任務(wù)的優(yōu)先級號就是任務(wù)編號,保留給系統(tǒng)的不能用。其次,μC /OS-Ⅱ中,每個任務(wù)都有自己的堆??臻g。堆棧必須聲明為OS STK,并且由連續(xù)的內(nèi)存空間組成。
用戶可以靜態(tài)分配堆棧空間也可以動態(tài)地分配堆??臻g。靜態(tài)堆棧應(yīng)放在函數(shù)的外面。最后,在調(diào)用OSTaskCreate時必須知道堆棧是遞增還是遞減,因為用戶必須把堆棧的棧頂傳給上面的函數(shù)。在OS_CPU.H文件中,當OS_STK_GROWTH為0時,棧頂為內(nèi)存最低地址,當OS_STK_GROWTH為1時,棧頂為內(nèi)存最高地址。在80x86中處理器的堆棧是由高地址向低地址方向增長的。
4 結(jié)束語
本溫控系統(tǒng)硬件上采用先進的32位ARM處理器作為溫控設(shè)備的主控單元,控制的實時性、靈活性、準確性和安全性都好于傳統(tǒng)的溫度控制箱,軟件設(shè)計上主要采用ANSI C語言編程,可讀性強而且容易移植,采用源代碼公開的μC /OS-Ⅱ操作系統(tǒng)進行任務(wù)管理提高了軟件的執(zhí)行效率和系統(tǒng)的實時性。因此這在大型車載系統(tǒng)中具有廣闊的市場潛力和商業(yè)價值。由于ARM微處理器的優(yōu)越性能和軟件的可移植性,該控制器可以很容易的嵌入到其他系統(tǒng)中,能夠應(yīng)用于樓宇自動化和信息家電等諸多領(lǐng)域。