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