摘 要: 介紹了基于ARM-WinCE的電機監(jiān)控系統(tǒng),,硬件以ARM9微處理器S3C2410為核心,軟件基于Windows CE操作系統(tǒng)并使用了ActiveX控件建立界面,,實現(xiàn)對步進電機和直流電機表面溫度,、轉(zhuǎn)速和運行時間等指標的監(jiān)控。詳細介紹了該系統(tǒng)的系統(tǒng)功能設(shè)計,、系統(tǒng)結(jié)構(gòu),、硬件電路設(shè)計、軟件設(shè)計及測試的過程和結(jié)果,。
關(guān)鍵詞: Windows CE,;S3C2410;ActiveX
嵌入式系統(tǒ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è)控制、安全防護等領(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 ℃之間,。通過界面,,可以直觀地看出當前直流電機和步進電機的轉(zhuǎn)速以及電機運行時間和表面的溫度,當溫度超過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è)主要是直流電機,、步進電機、溫度傳感電路,、液晶屏等,,硬件框如圖1所示。
步進電機采用了達林頓管驅(qū)動芯片ULN2003來驅(qū)動四相步進電機,。溫度傳感器和TFT液晶屏的驅(qū)動電路比較簡單,,下面重點介紹一下直流電機的驅(qū)動電路。
直流電機驅(qū)動電路如圖2所示,。直流電機控制使用了H橋驅(qū)動電路[3],,控制口線為GPB0、GPH9(GPG0與GPH9為連接S3C2410A核心板時的引腳連接,,圖中標出的是連接S3C2410A核心板的引腳編號),。JP17可以斷開直流電機控制電路與S3C2410A的連接。當GPB0輸出高電平時(即ZDJ_A點為3.3 V),,則Q2,、Q3導通Q6導通MOTOR_B點為MGV+,Q6導通,,MOTOR_A點為GND,,此時直流電機將會正轉(zhuǎn)。由于Q6的集電極通過一個二極管D7連接到H橋的另一個控制端ZDJ_B,,將ZDJ_B控制端電壓鉗在1.0 V以下,,因此不管GPH9輸出是高電平還是低電平,Q4,、Q5都會截止Q8截止,,不會造成H橋短路故障。當GPB0輸出為低電平(即ZDJ_A點為0 V)時,則Q3,、Q6截止,,Q7截止,GPH9的輸出電平可以控制電機反轉(zhuǎn)或停機,。若GPH9輸出高電平(即ZDJ_B點為3.3 V),,則Q4、Q5導通Q8導通MOTOR_A點為MGV+,,Q5導通MOTOR_B點為GND,此時直流電機將會反轉(zhuǎn),。當GPH9輸出低電平時,,Q4、Q5都會截止Q8截止,,電機停機,。二極管D8~D11為續(xù)流二極管,用于釋放電機線圈上產(chǎn)生的反電動勢,。電阻R162,、R163為限流/保護電阻。PWM0輸出信號通過一個電阻連接到一個電容上,,信號通過R82和C127進行濾波,,從而實現(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ū)動,,當使用這些驅(qū)動時,,流式接口驅(qū)動程序把設(shè)備抽象成文件系統(tǒng)進行操作。首先電機監(jiān)控器程序使用API對設(shè)備進行訪問,,文件API被操作系統(tǒng)轉(zhuǎn)發(fā)到FileSys.exe進程中,;然后FileSys.exe發(fā)現(xiàn)是對設(shè)備進行操作,就會把執(zhí)行交到設(shè)備管理器,接著設(shè)備管理器根據(jù)具體的請求,,調(diào)用不同的流式接口驅(qū)動程序中暴露的接口,;最終,驅(qū)動程序負責與硬件交互,。
3.2 線程部分
Windows CE的調(diào)度嚴格按照優(yōu)先級來進行,。具有最高優(yōu)先級的線程如果處于就緒狀態(tài),總會被調(diào)度系統(tǒng)選中,;如果系統(tǒng)中存在多個優(yōu)先級相同的就緒任務(wù),,這些進程以時間片輪算法調(diào)度;如果線程的時間片大小被設(shè)置為0,,那它會一直占有處理器,,直到線程結(jié)束后進入阻塞掛起或休眠狀態(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)控,一旦溫度超過預定值,,立刻停止電機轉(zhuǎn)動,,從而保護電機。因為此進程的任務(wù)必須及時處理,,溫度監(jiān)控線程的優(yōu)先級設(shè)為THREAD_ PRIORITY_TIME_CRITICAL(高于正常優(yōu)先級3級,,具有這個優(yōu)先級的線程不會被搶占)。步進電機轉(zhuǎn)動控制線程:步進電機控制口線為GPC0,、GPC5,、GPC6、GPC7,,只有不停地控制時序,,才可以控制電機轉(zhuǎn)動,電機運行監(jiān)控器軟件單獨使用一個線程來實現(xiàn)控制電機的轉(zhuǎ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ù)進行修改,,使其與實際相符,。再對各個控件進行編程,使其實現(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)的各項功能進行測試,可以達到預期的效果,。對電機的運行時間,、轉(zhuǎ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è)備中,。
參考文獻
[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].北京:北京航天航空大學出版社,,2007.
[5] 何宗鍵.WindowsCE嵌入式系統(tǒng)[M].北京:北京航天航空大學出版社,2007.