摘 要: 介紹了基于ARM-WinCE的電機監(jiān)控系統(tǒng),,硬件以ARM9微處理器S3C2410為核心,,軟件基于Windows CE操作系統(tǒng)并使用了ActiveX控件建立界面,實現(xiàn)對步進(jìn)電機和直流電機表面溫度,、轉(zhuǎn)速和運行時間等指標(biāo)的監(jiān)控,。詳細(xì)介紹了該系統(tǒng)的系統(tǒng)功能設(shè)計、系統(tǒng)結(jié)構(gòu),、硬件電路設(shè)計,、軟件設(shè)計及測試的過程和結(jié)果。
關(guān)鍵詞: Windows CE,;S3C2410,;ActiveX
嵌入式系統(tǒng)是當(dāng)今自動化領(lǐng)域技術(shù)發(fā)展的熱點之一,它的出現(xiàn)為工業(yè)控制設(shè)備的實時,、智能化提供了強有力的技術(shù)支持[1],。ARM微處理器是嵌入式處理器的典型代表,已經(jīng)滲透到各個領(lǐng)域,。作為32位的RISC架構(gòu),,基于ARM核的微控制器芯片不但占據(jù)了高端微控制器市場的大部分市場份額,同時也逐漸向低端微控制器應(yīng)用領(lǐng)域擴展,。Windows CE操作系統(tǒng)具有很高的實時性,,已經(jīng)在汽車工業(yè)、航空工業(yè),、工業(yè)控制,、安全防護(hù)等領(lǐng)域中得到了廣泛應(yīng)用。Windows CE能從閃存啟動,從而避免了暴露在灰塵,、高溫和震動環(huán)境下,,使它可以適應(yīng)惡劣的生產(chǎn)環(huán)境。因此Windows CE在工業(yè)控制領(lǐng)域有著很好的應(yīng)用前景[2],。
1 系統(tǒng)概述
本系統(tǒng)是一個電機監(jiān)控系統(tǒng),,運行在S3C2410硬件平臺上,軟件運行環(huán)境為Windows CE 5.0操作系統(tǒng),;由ActiveX控件構(gòu)成電機監(jiān)控軟件界面,。系統(tǒng)運行溫度在0~100 ℃之間。通過界面,,可以直觀地看出當(dāng)前直流電機和步進(jìn)電機的轉(zhuǎn)速以及電機運行時間和表面的溫度,,當(dāng)溫度超過75℃時立即控制電機停止運轉(zhuǎn);還可以控制電機的啟動,、停止,、加速和減速。通過這些實現(xiàn)電機的監(jiān)控,。
2 硬件設(shè)計
硬件電路采用的是ARM9內(nèi)核微處理器S3C2410A,,擴展有64 MB SDRAM、64 MB NAND Flash,、2 MB NOR Flash等存儲器,,可運行Windows CE 5.0操作系統(tǒng)。外設(shè)主要是直流電機,、步進(jìn)電機,、溫度傳感電路、液晶屏等,,硬件框如圖1所示,。
步進(jìn)電機采用了達(dá)林頓管驅(qū)動芯片ULN2003來驅(qū)動四相步進(jìn)電機。溫度傳感器和TFT液晶屏的驅(qū)動電路比較簡單,,下面重點介紹一下直流電機的驅(qū)動電路,。
直流電機驅(qū)動電路如圖2所示。直流電機控制使用了H橋驅(qū)動電路[3],,控制口線為GPB0,、GPH9(GPG0與GPH9為連接S3C2410A核心板時的引腳連接,圖中標(biāo)出的是連接S3C2410A核心板的引腳編號),。JP17可以斷開直流電機控制電路與S3C2410A的連接,。當(dāng)GPB0輸出高電平時(即ZDJ_A點為3.3 V),則Q2,、Q3導(dǎo)通Q6導(dǎo)通MOTOR_B點為MGV+,,Q6導(dǎo)通,MOTOR_A點為GND,此時直流電機將會正轉(zhuǎn),。由于Q6的集電極通過一個二極管D7連接到H橋的另一個控制端ZDJ_B,,將ZDJ_B控制端電壓鉗在1.0 V以下,因此不管GPH9輸出是高電平還是低電平,,Q4,、Q5都會截止Q8截止,不會造成H橋短路故障,。當(dāng)GPB0輸出為低電平(即ZDJ_A點為0 V)時,,則Q3、Q6截止,,Q7截止,,GPH9的輸出電平可以控制電機反轉(zhuǎn)或停機。若GPH9輸出高電平(即ZDJ_B點為3.3 V),,則Q4、Q5導(dǎo)通Q8導(dǎo)通MOTOR_A點為MGV+,,Q5導(dǎo)通MOTOR_B點為GND,,此時直流電機將會反轉(zhuǎn)。當(dāng)GPH9輸出低電平時,,Q4,、Q5都會截止Q8截止,電機停機,。二極管D8~D11為續(xù)流二極管,,用于釋放電機線圈上產(chǎn)生的反電動勢。電阻R162,、R163為限流/保護(hù)電阻,。PWM0輸出信號通過一個電阻連接到一個電容上,信號通過R82和C127進(jìn)行濾波,,從而實現(xiàn)一個簡單的DAC控制電路,,將輸出連接接到直流電機驅(qū)動電路,從而實現(xiàn)直流電機驅(qū)動[4],。
3 軟件設(shè)計
軟件設(shè)計是基于Windows CE操作系統(tǒng)之上構(gòu)建的,,軟件框圖如圖3所示。
3.1 驅(qū)動部分
首先是定時器的分配,。S3C2410A提供了5個定時器Timer0~Timer4,,Timer4分配作為操作系統(tǒng)時鐘Tick,將Timer3分配給觸摸屏,。PWM定時器驅(qū)動程序用Timer0和Timer1得到PWM輸出信號,。PWM定時器根據(jù)正弦函數(shù)sinx的值不斷改變PWM的占空比,就可以輸出一個正弦方波。
在本系統(tǒng)中會使用到GPIO,、PWM等驅(qū)動,,當(dāng)使用這些驅(qū)動時,流式接口驅(qū)動程序把設(shè)備抽象成文件系統(tǒng)進(jìn)行操作,。首先電機監(jiān)控器程序使用API對設(shè)備進(jìn)行訪問,,文件API被操作系統(tǒng)轉(zhuǎn)發(fā)到FileSys.exe進(jìn)程中;然后FileSys.exe發(fā)現(xiàn)是對設(shè)備進(jìn)行操作,,就會把執(zhí)行交到設(shè)備管理器,,接著設(shè)備管理器根據(jù)具體的請求,調(diào)用不同的流式接口驅(qū)動程序中暴露的接口,;最終,,驅(qū)動程序負(fù)責(zé)與硬件交互。
3.2 線程部分
Windows CE的調(diào)度嚴(yán)格按照優(yōu)先級來進(jìn)行,。具有最高優(yōu)先級的線程如果處于就緒狀態(tài),,總會被調(diào)度系統(tǒng)選中;如果系統(tǒng)中存在多個優(yōu)先級相同的就緒任務(wù),,這些進(jìn)程以時間片輪算法調(diào)度,;如果線程的時間片大小被設(shè)置為0,那它會一直占有處理器,,直到線程結(jié)束后進(jìn)入阻塞掛起或休眠狀態(tài)[5],。
主線程(流程圖如圖4所示):主要響應(yīng)各種窗口消息事件??紤]到軟件要能及時響應(yīng)用戶發(fā)出的各種事件,,主線程的優(yōu)先級設(shè)為THREAD_PRIORITY_HIGHEST(高于正常優(yōu)先級2級)。
監(jiān)控功能主要通過3個線程實現(xiàn),。溫度監(jiān)控線程:實現(xiàn)對兩個電機溫度的監(jiān)控,,一旦溫度超過預(yù)定值,立刻停止電機轉(zhuǎn)動,,從而保護(hù)電機,。因為此進(jìn)程的任務(wù)必須及時處理,溫度監(jiān)控線程的優(yōu)先級設(shè)為THREAD_ PRIORITY_TIME_CRITICAL(高于正常優(yōu)先級3級,,具有這個優(yōu)先級的線程不會被搶占),。步進(jìn)電機轉(zhuǎn)動控制線程:步進(jìn)電機控制口線為GPC0、GPC5,、GPC6,、GPC7,只有不停地控制時序,,才可以控制電機轉(zhuǎn)動,,電機運行監(jiān)控器軟件單獨使用一個線程來實現(xiàn)控制電機的轉(zhuǎn)動,。步進(jìn)電機轉(zhuǎn)動控制線程的優(yōu)先級設(shè)為THREAD_ PRIORITY_NORMAL,擁有正常優(yōu)先級,。電機狀態(tài)顯示線程:電機運行監(jiān)控器軟件中有溫度計,,LED時鐘,轉(zhuǎn)速表3個控件分別用來顯示電機的狀態(tài),,任務(wù)量比較大,,占用時間比較多,為了不影響電機運行監(jiān)控器軟件的實時性,,電機狀態(tài)顯示線程的優(yōu)先級設(shè)為THREAD_ PRIORITY_BELOW_NORMA L(低于正常優(yōu)先級一級),。
3.3 界面部分
設(shè)計虛擬儀器面板。根據(jù)實物,,在虛擬面板上放置設(shè)計好的ActiveX控件,,在對象監(jiān)視器中對各個控件的參數(shù)進(jìn)行修改,使其與實際相符,。再對各個控件進(jìn)行編程,,使其實現(xiàn)實際控件所具備的功能及各個控件之間的邏輯控制關(guān)系。LED數(shù)碼管控件通過矩形背景繪制和數(shù)碼管的繪制產(chǎn)生,;溫度計控件通過水銀柱的繪制和刻度的繪制產(chǎn)生,;圓形儀表盤控件通過一個儀表盤繪制和一個刻度的繪制產(chǎn)生;大字體按鈕控件通過一個立體矩形的繪制和一個大字體的繪制產(chǎn)生,。考慮到刷新可能對界面產(chǎn)生的影響,,在繪制控件過程中均采用雙緩沖技術(shù),。
4 系統(tǒng)測試
將軟件與硬件聯(lián)系起來,得到一個完整的系統(tǒng),。對系統(tǒng)的各項功能進(jìn)行測試,,可以達(dá)到預(yù)期的效果。對電機的運行時間,、轉(zhuǎn)速,、表面溫度等各個指標(biāo)進(jìn)行了監(jiān)控,效果圖如圖5所示,。
本文設(shè)計的是基于Windows CE操作系統(tǒng)的電機監(jiān)控系統(tǒng),。由于硬件的限制,直流電機轉(zhuǎn)速測量是根據(jù)PWM得到的估測值,,如要得到比較理想的結(jié)果,,可以使用轉(zhuǎn)速傳感器來實現(xiàn)測速。盡管如此,,整個系統(tǒng)安全可靠,,實時性和穩(wěn)定性高,,硬件成本低,軟件界面友好,,具有一定的推廣前景,,方便以后移植到實際工控設(shè)備中。
參考文獻(xiàn)
[1] 吳晨曦,,蔣嶸,,伍新,等.電機運行監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].機械工程與自動化,,2012(2):147-148.
[2] 王大鵬,,范惠林,陳丹強,,等.基于ARM-WinCE的某型航空發(fā)動機溫控盒檢測儀設(shè)計[J].電子技術(shù)應(yīng)用,,2013,39(5):8-11.
[3] 鄒中華,,吳陳,,曾慶軍.基于S3C2410的直流電機PWM調(diào)速系統(tǒng)[J].微計算機信息,2008(24):130-131.
[4] 周立功.ARM&WINCE實驗與實踐—基于S3C2410[M].北京:北京航天航空大學(xué)出版社,,2007.
[5] 何宗鍵.WindowsCE嵌入式系統(tǒng)[M].北京:北京航天航空大學(xué)出版社,,2007.