基于ARM的油田單井油罐太陽(yáng)能加溫控制器的設(shè)計(jì)
2.3 液晶屏接口電路的設(shè)計(jì)
S3C2410A自帶 1個(gè)LCD控制器,支持STN和TFT帶有觸摸屏的液晶顯示屏,本設(shè)計(jì)采用3.5英寸的TFT液晶屏。S3C2410A自帶觸摸接口電路,包括4個(gè)控制信號(hào)線(nYPON,YMON,nXPON,XMON)和模擬輸入引腳AIN[7]、AIN[5],分別控制X坐標(biāo)和Y坐標(biāo)的轉(zhuǎn)換。
2.4 溫度采集卡的設(shè)計(jì)
自行設(shè)計(jì)的溫度采集卡實(shí)現(xiàn)了多路信號(hào)的采集、預(yù)處理及傳送功能。系統(tǒng)的采集點(diǎn)為10路熱敏電阻,熱電阻采用RTC公司的負(fù)阻溫度傳感器,實(shí)現(xiàn)10路溫度的循環(huán)采集。在電路的結(jié)構(gòu)設(shè)計(jì)上,采用惠更斯電橋進(jìn)行傳感器電壓信號(hào)的采集。為了提高測(cè)量精度,為電橋提供電壓的芯片選用TI公司的精密電壓源芯片REF102,其輸出參考電壓為10 V,電壓的波動(dòng)為±2.5 mV,輸出精度遠(yuǎn)遠(yuǎn)大于常用的10 V線性穩(wěn)壓模塊,輸出電流為10 mA,滿足輸出功率的要求,溫漂系數(shù)為2.5 ppm/℃,有效地減少了由于環(huán)境溫度變化而引起的測(cè)量誤差。溫度電橋電路采用ADI公司提供的儀器放大器AD620。采用該放大器,一方面由于其具有高輸入阻抗,實(shí)現(xiàn)了采集電路和控制電路的阻抗隔離,提高了測(cè)量精度;另一方面其集成化的特點(diǎn)也減少了由于采用過(guò)多的外圍器件而帶給系統(tǒng)的測(cè)量誤差,這里包括電阻的白噪聲影響和器件的溫漂影響。經(jīng)過(guò)運(yùn)算放大器以后,其輸出電壓的變化范圍為0 V~3.3 V,滿足ARM AD模塊對(duì)輸入電壓的要求(0 V~3.3 V),并且電壓的大小也在AD620的線性工作區(qū)范圍內(nèi)。由于采集節(jié)點(diǎn)為10路(RT1-RT10),而ARM自帶8路10 bit ADC,其中AIN5、AIN7要用作觸摸屏的輸入,因此本系統(tǒng)設(shè)計(jì)采用TI公司提供的16路模擬開關(guān)MPC506進(jìn)行循環(huán)采樣。其模擬信號(hào)輸入電壓的范圍是±15 V,功率耗散為7.5 mW,滿足系統(tǒng)的設(shè)計(jì)要求。采集卡一路信號(hào)采集的電路圖如圖4所示。
3 軟件設(shè)計(jì)
3.1 操作系統(tǒng)的移植
油田單井油罐太陽(yáng)能加溫控制器的觸摸屏采用3.5英寸的TFT液晶屏,將WINCE操作系統(tǒng)移植到ARM處理器,基于WINCE開發(fā)用戶界面,從而實(shí)現(xiàn)人機(jī)交互式控制與顯示。信號(hào)處理平臺(tái)采用ARM9核心的S3C2410處理器,因此,可以通過(guò)克隆SMDK2410的BSP來(lái)完成大部分的OAL層的移植工作。此外,還需要移植顯示驅(qū)動(dòng)程序、觸摸屏驅(qū)動(dòng)程序、GPIO驅(qū)動(dòng)程序以及A/D采集驅(qū)動(dòng)程序。在WINCE中,顯示驅(qū)動(dòng)程序、觸摸屏驅(qū)動(dòng)程序?qū)儆诜謱域?qū)動(dòng)程序。移植相關(guān)示例驅(qū)動(dòng)程序的代碼時(shí),只需要對(duì)PDD層的代碼進(jìn)行修改。A/D采集驅(qū)動(dòng)程序和GPIO驅(qū)動(dòng)程序采用標(biāo)準(zhǔn)流接口驅(qū)動(dòng)的方式實(shí)現(xiàn),即實(shí)現(xiàn)ADC_Init、ADC_Deinit、ADC_Open、ADC_Close、ADC_Read、ADC_Write、ADC_Seek、ADC_IOControl、ADC_Power-
Up、ADC_PowerDown這幾個(gè)流接口函數(shù)。
3.2 應(yīng)用程序的開發(fā)
在WinCE下,應(yīng)用程序開發(fā)是針對(duì)驅(qū)動(dòng)和內(nèi)核而言的。在WinCE下開發(fā)應(yīng)用程序大致可分為3個(gè)步驟:(1)安裝合適的SDK;(2)編寫代碼和調(diào)試;(3)發(fā)布應(yīng)用程序。本設(shè)計(jì)選擇采用Visual Studio 2008開發(fā)工具,應(yīng)用程序采用MFC編程接口,用基于對(duì)話框的模型來(lái)開發(fā)。
因?yàn)榛贏RM的油田單井油罐太陽(yáng)能加溫控制器需要對(duì)10路熱敏電阻進(jìn)行實(shí)時(shí)循環(huán)的采集,同時(shí)還需要通過(guò)觸摸屏設(shè)置系統(tǒng)的工作參數(shù),顯示系統(tǒng)故障、事故報(bào)警、系統(tǒng)運(yùn)行狀態(tài)等信息;ARM控制器根據(jù)采集到的溫度值和設(shè)置的工作參數(shù)對(duì)執(zhí)行機(jī)構(gòu)做出判斷。因此,應(yīng)用程序中使用了多線程方式來(lái)保證程序的實(shí)時(shí)、高效運(yùn)行。在窗體主線程中建立了3個(gè)子線程:ADC采集子線程、觸摸屏設(shè)置顯示子線程和系統(tǒng)控制子線程。系統(tǒng)控制程序流程如圖5所示。
評(píng)論