摘 要: 根據(jù)電熱爐對(duì)溫度數(shù)據(jù)檢測(cè)精密性以及實(shí)時(shí)控制可靠性的要求,提出了一種基于嵌入式處理器的爐溫采集與控制系統(tǒng)。分析了該系統(tǒng)的工作原理和結(jié)構(gòu),設(shè)計(jì)了系統(tǒng)的硬件,完成了數(shù)據(jù)采集、精確溫度控制以及數(shù)據(jù)存儲(chǔ)等功能。研制出一臺(tái)基于ARM(S3C2440A)的溫度采集與控制系統(tǒng),試驗(yàn)驗(yàn)證了該系統(tǒng)數(shù)據(jù)采集的可靠性和溫度控制的精確性。該系統(tǒng)具有良好的經(jīng)濟(jì)性和實(shí)用價(jià)值。
關(guān)鍵詞: 嵌入式;流驅(qū)動(dòng);模糊自適應(yīng)控制;ADOCE
現(xiàn)代工業(yè)生產(chǎn)和人們的日常生活中熱處理技術(shù)得到廣泛應(yīng)用。隨著科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)熱處理過程中精確度和可靠性方面的要求也不斷提高,電熱爐作為熱處理中的一種重要工具,其溫度檢測(cè)和控制就顯得格外重要。
當(dāng)前的溫度采集與控制系統(tǒng)多以單片機(jī)為核心,雖然能夠滿足數(shù)據(jù)采集與控制的基本要求,但其終端功能較少,采樣精度和速度較低,系統(tǒng)的設(shè)計(jì)復(fù)雜,升級(jí)困難,兼容性和可讀性較差,數(shù)據(jù)不易長期存儲(chǔ),對(duì)以后的發(fā)展帶來了諸多不便。
本文以時(shí)下廣泛應(yīng)用的嵌入式微型處理器ARM為核心,搭載嵌入式WINCE操作系統(tǒng),設(shè)計(jì)研發(fā)了一套高精度溫度采集與控制系統(tǒng),并對(duì)該系統(tǒng)的硬件設(shè)計(jì)、底層驅(qū)動(dòng)以及系統(tǒng)中軟件功能的實(shí)現(xiàn)進(jìn)行了詳細(xì)的闡述。
1 系統(tǒng)的總體架構(gòu)及硬件構(gòu)成
1.1 系統(tǒng)總體架構(gòu)
本系統(tǒng)采取嵌入式處理器搭載嵌入式系統(tǒng)的模式對(duì)數(shù)據(jù)進(jìn)行采集,并根據(jù)數(shù)據(jù)的反饋對(duì)溫度進(jìn)行控制。
系統(tǒng)采用三星公司的ARM9系列S3C2440A芯片,將外部傳感器的數(shù)據(jù)經(jīng)過濾波、放大等一系列處理后,利用內(nèi)置的10位A/D轉(zhuǎn)換器進(jìn)行模擬量到數(shù)據(jù)量的轉(zhuǎn)換,最高轉(zhuǎn)換頻率可達(dá)2.5 MHz;數(shù)據(jù)傳遞到ARM內(nèi),在LCD顯示器上進(jìn)行顯示,顯示結(jié)果經(jīng)過系統(tǒng)處理后,可采用多種方式進(jìn)行顯示,如曲線顯示、數(shù)字顯示等。轉(zhuǎn)換后的數(shù)據(jù)通過模糊算法處理后,與預(yù)先設(shè)定的數(shù)值進(jìn)行比較,將結(jié)果反饋到控制器中進(jìn)行控制;本系統(tǒng)采用自動(dòng)控制和手動(dòng)控制兩種方式對(duì)溫度進(jìn)行控制操作。
系統(tǒng)搭載的WINCE操作系統(tǒng)功能強(qiáng)大,對(duì)采集到的數(shù)據(jù)進(jìn)行實(shí)時(shí)直觀顯示的同時(shí),并對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),以便以后查詢使用;其便于操作的界面和良好的人機(jī)交互性,使得操作和管理更加方便[1]。
1.2 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)的處理核心為Samsung公司的S3C2440A芯片。其主頻為400 MHz,最高可達(dá)533 MHz,32 bit總線,使得數(shù)據(jù)處理與傳輸都有較快的速度;內(nèi)部有8路10 bit內(nèi)置A/D轉(zhuǎn)換器,最高轉(zhuǎn)換頻率為2.5 MHz,使得采樣精度較高;外部傳感器根據(jù)具體精度要求可以選用不同精度的傳感器;外部校正電路是由運(yùn)放和電阻電感組成的濾波和放大電路,對(duì)外部干擾進(jìn)行硬件消除;控制執(zhí)行電路由繼電器進(jìn)行操作;擴(kuò)展有串口、RJ-45網(wǎng)絡(luò)接口、USB接口和SD卡槽等多種接口,便于以后升級(jí)[2]。系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示。
2 系統(tǒng)軟件設(shè)計(jì)
對(duì)于整個(gè)系統(tǒng)而言,軟件的設(shè)計(jì)關(guān)系到數(shù)據(jù)采集和控制的精確性和穩(wěn)定性,在高速數(shù)據(jù)采集與控制系統(tǒng)中更是對(duì)軟件的設(shè)計(jì)提出了更高的要求。軟件的設(shè)計(jì)主要包括ARM內(nèi)部A/D轉(zhuǎn)換驅(qū)動(dòng)、溫度的控制以及數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn)。
2.1 內(nèi)部A/D轉(zhuǎn)換驅(qū)動(dòng)的實(shí)現(xiàn)
ARM內(nèi)部A/D轉(zhuǎn)換是通過對(duì)S3C2440A內(nèi)部的模數(shù)轉(zhuǎn)換相關(guān)寄存器進(jìn)行操作來實(shí)現(xiàn)的,其主要包括ADCCON(ADC控制寄存器)、ADCDAT(ADC轉(zhuǎn)換數(shù)據(jù)寄存器)及ADCDLY(ADC開始延時(shí)寄存器)等。ADCCON控制寄存器主要用來設(shè)置A/D轉(zhuǎn)換器的相關(guān)參數(shù),在初始化過程中,要在ADCCON中設(shè)置預(yù)分頻器值、模擬輸入通道以及A/D轉(zhuǎn)換使能等控制變量,在ADCDLY中設(shè)置開始延時(shí)值;在數(shù)據(jù)轉(zhuǎn)換過程中,ADCDAT的0~9數(shù)據(jù)位儲(chǔ)存A/D轉(zhuǎn)換的數(shù)據(jù)值,通過底層驅(qū)動(dòng)的映射,在WINCE中對(duì)ADCDAT中的數(shù)據(jù)進(jìn)行讀取即可獲得傳感器A/D轉(zhuǎn)換后的數(shù)據(jù)[2],如圖2所示。
WINCE系統(tǒng)中,應(yīng)用程序通過文件系統(tǒng),以訪問文件的形式訪問驅(qū)動(dòng)程序,調(diào)用IOCTL向驅(qū)動(dòng)程序傳遞各種指令,底層驅(qū)動(dòng)通過DeviceManager與ARM的底層硬件進(jìn)行交流。其示意圖如圖3所示。
在本系統(tǒng)中,采用流驅(qū)動(dòng)形式完成底層硬件的訪問,流驅(qū)動(dòng)是WINCE下的一種常規(guī)驅(qū)動(dòng),其作為硬件功能的一種軟件抽象,將硬件功能以函數(shù)的形式提供給外部應(yīng)用程序和操作系統(tǒng),應(yīng)用程序通過流驅(qū)動(dòng)接口函數(shù)與外部應(yīng)用程序進(jìn)行通信。常用的流驅(qū)動(dòng)程序接口函數(shù)主要有XXX_Close、XXX_Init、XXX_Open、XXX_IO-
Control、XXX_Read、XXX_Write等(其中“XXX”為驅(qū)動(dòng)名稱)。當(dāng)外部應(yīng)用程序調(diào)用與流驅(qū)動(dòng)相關(guān)函數(shù)時(shí),自動(dòng)調(diào)用相應(yīng)的流驅(qū)動(dòng)接口函數(shù),完成與驅(qū)動(dòng)的交流。例如,當(dāng)外部應(yīng)用程序調(diào)用DeviceIoControl時(shí),驅(qū)動(dòng)就會(huì)調(diào)用XXX_IOControl。根據(jù)IO_CTL_XXX的數(shù)值決定執(zhí)行何種操作。
本系統(tǒng)中,在WINCE外部應(yīng)用程序中調(diào)用CreateFile()函數(shù),底層驅(qū)動(dòng)便會(huì)響應(yīng)XXX_Open函數(shù),通過文件的形式打開底層驅(qū)動(dòng)。驅(qū)動(dòng)通過DeviceManager獲得硬件中A/D轉(zhuǎn)換的數(shù)據(jù),在A/D轉(zhuǎn)換數(shù)據(jù)寄存器0~9數(shù)據(jù)位存儲(chǔ)A/D轉(zhuǎn)換后的數(shù)據(jù)。外部應(yīng)用程序通過調(diào)用ReadFile()函數(shù),調(diào)用底層驅(qū)動(dòng)程序中的XXX_Read函數(shù),讀取底層驅(qū)動(dòng)中的內(nèi)容,獲得寄存器中的數(shù)據(jù)[3-4]。
2.2 溫度控制的實(shí)現(xiàn)
系統(tǒng)在測(cè)量溫度的同時(shí),要對(duì)溫度的高低進(jìn)行控制,以期使溫度滿足一定的要求,因此,溫度控制的實(shí)現(xiàn)也是本系統(tǒng)中的一個(gè)重要功能。
2.2.1 溫度控制總體設(shè)計(jì)
溫度由固態(tài)繼電器控制電加熱絲實(shí)現(xiàn),繼電器的控制信號(hào)由ARM的PWM輸出控制,與A/D轉(zhuǎn)換相似,PWM的信號(hào)由應(yīng)用程序調(diào)用流驅(qū)動(dòng)接口函數(shù)控制相應(yīng)的寄存器來實(shí)現(xiàn)。
系統(tǒng)的溫度控制分為自動(dòng)模式和手動(dòng)模式。自動(dòng)模式情況下根據(jù)檢測(cè)到的傳感器數(shù)據(jù),按照預(yù)先設(shè)定好的程序控制繼電器,對(duì)電熱爐進(jìn)行加熱;切換到手動(dòng)模式時(shí),會(huì)屏蔽自動(dòng)模式的程序,根據(jù)用戶的要求來執(zhí)行繼電器的相應(yīng)操作。
在自動(dòng)模式的程序設(shè)計(jì)中,當(dāng)溫度低于某一設(shè)定值(即臨界溫度)時(shí),啟動(dòng)相應(yīng)的繼電器進(jìn)行加熱,加熱爐采用不同功率的電熱絲,溫度越低啟動(dòng)電熱絲的功率越大,以使溫度能夠快速回到目標(biāo)溫度;考慮到電熱絲加熱后會(huì)有余溫,在距離目標(biāo)溫度尚有一定距離時(shí),即停止加熱(停熱溫度),余溫會(huì)使溫度繼續(xù)上升,當(dāng)溫度下降之后再啟動(dòng)繼電器,根據(jù)下降的溫度不同,再次啟動(dòng)不同功率、不同數(shù)量的電熱絲進(jìn)行工作,如圖4所示。
在手動(dòng)調(diào)節(jié)模式下,會(huì)對(duì)自動(dòng)模式中的程序進(jìn)行屏蔽,而只是根據(jù)操作者的規(guī)定進(jìn)行調(diào)節(jié)。手動(dòng)模式可以根據(jù)需要在自動(dòng)模式需要關(guān)閉的情況下進(jìn)行短時(shí)間的控制。
2.2.2 溫度精確控制的實(shí)現(xiàn)
電熱爐應(yīng)用場(chǎng)合一般比較復(fù)雜,受到較多的干擾,其具有嚴(yán)重的非線性以及時(shí)變性,確定模型的常規(guī)控制方法很難實(shí)現(xiàn)溫度的精確控制。
傳統(tǒng)的模糊控制方法是將不確定的控制對(duì)象模型變量用模糊條件語句進(jìn)行描述,并根據(jù)經(jīng)驗(yàn)確定模型的各個(gè)參數(shù)及控制規(guī)則;自適應(yīng)控制方法是通過自適應(yīng)學(xué)習(xí)、聯(lián)想、類比等能力來調(diào)整控制參數(shù)的權(quán)值、減小誤差的一種控制方法,具有很好的容錯(cuò)性和魯棒性。本系統(tǒng)采用模糊控制與自適應(yīng)控制相結(jié)合的方法,結(jié)合兩種控制方法的優(yōu)點(diǎn),以達(dá)到對(duì)溫度的精確控制[5]。
系統(tǒng)中加入性能測(cè)試部件、控制量校正部件和控制規(guī)則修正部件,以實(shí)現(xiàn)系統(tǒng)的自適應(yīng)控制。
根據(jù)得到的最新的校正量與前一次的偏差、偏差變化率以及控制量,由控制規(guī)則修正部件建立新的控制規(guī)則以及相關(guān)的校正系數(shù)并儲(chǔ)存,作為下一次的校正規(guī)則。
如此循環(huán),達(dá)到自動(dòng)調(diào)整控制規(guī)則以適應(yīng)新變化的目的,以160 ℃控制為例,其仿真圖如圖8所示,其中曲線①為模糊自適應(yīng)控制,曲線②為普通PID控制。
根據(jù)輸出量,執(zhí)行單元設(shè)置PWM波的占空比,調(diào)節(jié)固態(tài)繼電器信號(hào),控制電熱絲的加熱間隙,對(duì)電熱爐進(jìn)行加熱,并根據(jù)溫度的高低啟用不同的電加熱絲,令系統(tǒng)的溫度控制執(zhí)行單元更加精確。
2.3 數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn)
系統(tǒng)另一個(gè)重要作用是將外部傳感器采集到的數(shù)據(jù)進(jìn)行存儲(chǔ),以備后續(xù)的查詢使用。
系統(tǒng)擴(kuò)展在板128 MB Nand Flash存儲(chǔ)以及支持32 GB的外部SD擴(kuò)展槽,為數(shù)據(jù)存儲(chǔ)提供了足夠的空間。系統(tǒng)搭載有WINCE操作系統(tǒng),其支持嵌入式數(shù)據(jù)庫的操作,為數(shù)據(jù)的存儲(chǔ)提供了軟件支持。
系統(tǒng)存儲(chǔ)功能利用ADOCE實(shí)現(xiàn),應(yīng)用程序采用ADO技術(shù)通過OLE可以對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行訪問和處理。數(shù)據(jù)庫訪問原理如圖9所示。ADOCE是微軟公司為WINCE所有數(shù)據(jù)類型提供的戰(zhàn)略性高級(jí)接口,為數(shù)據(jù)訪問提供了一種高性能、統(tǒng)一的方式,為WINCE操作系統(tǒng)中增加了一種新的數(shù)據(jù)庫功能[3,7]。
本系統(tǒng)利用ADOCE,在WINCE系統(tǒng)下調(diào)用ADO的一系列對(duì)象,如Connection、Recordset、Field、Error函數(shù),在ARM內(nèi)部存儲(chǔ)空間中創(chuàng)建Access數(shù)據(jù)庫,在Access中創(chuàng)建相應(yīng)的表格,表格中除了存儲(chǔ)數(shù)據(jù)之外,還可以根據(jù)要求存儲(chǔ)時(shí)間、日期。存儲(chǔ)的數(shù)據(jù)可為以后的工作提供查詢、借鑒。
本套系統(tǒng)采用嵌入式處理器,實(shí)現(xiàn)了對(duì)加熱爐溫度精確、快速的采集與控制,嵌入式系統(tǒng)的搭載,克服了傳統(tǒng)數(shù)據(jù)采集系統(tǒng)終端的缺點(diǎn),使得爐內(nèi)溫度的顯示更加形象直觀,控制更加方便。模糊自適應(yīng)控制使得溫度控制更加精準(zhǔn)。嵌入式處理器與系統(tǒng)的結(jié)合,實(shí)現(xiàn)了一系列如爐體溫度存儲(chǔ)、溫度超限報(bào)警提示等功能,整個(gè)系統(tǒng)在軟件和硬件方面的兼容性和可擴(kuò)展性都很強(qiáng),便于系統(tǒng)間的交流和日后升級(jí)。隨著嵌入式處理器和嵌入式系統(tǒng)的不斷完善與發(fā)展,此電熱爐溫度采集與控制系統(tǒng)的設(shè)計(jì)理念將會(huì)有很好的實(shí)用和參考價(jià)值。
參考文獻(xiàn)
[1] 魯力,張波.嵌入式TCP/IP協(xié)議高速電網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)[J].儀器儀表學(xué)報(bào),2009,30(2):405-409.
[2] Samsung.S3C2410X32-BIT RISC Microprocessor User’s Manual[S].2003.
[3] 孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2006.
[4] FLETCHER N H,ROSSING T D.The physics of musical instruments(2nded)[M].Berlin:Springer-Verlag,1998.
[5] 劉興堂.應(yīng)用自適應(yīng)控制[M].西安:西北工業(yè)大學(xué)出版社,2003.
[6] FORSBERG C,KARR H.High performance PID regulator for EAF control[C].Steel Technology International,1997:151-157.
[7] 何宗鍵.Windows CE嵌入式系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,2006.