王嚴(yán)偉,盧 剛,李聲晉,周 勇
(西北工業(yè)大學(xué),陜西西安710072)
無(wú)刷直流電動(dòng)機(jī)具有結(jié)構(gòu)簡(jiǎn)單、線性機(jī)械特性、易于維修、調(diào)速范圍較寬、穩(wěn)定性高、起動(dòng)轉(zhuǎn)矩大等諸多優(yōu)點(diǎn),在軍事、精密加工等對(duì)電機(jī)性能要求較高的場(chǎng)合應(yīng)用日益廣泛。由于采用霍爾位置傳感器、旋轉(zhuǎn)變壓器等技術(shù),便于實(shí)現(xiàn)無(wú)刷直流電動(dòng)機(jī)的換向,而且將采集的位置信號(hào)傳至控制單元以實(shí)現(xiàn)閉環(huán)控制,系統(tǒng)性能得到大大提高。目前,無(wú)刷直流電動(dòng)機(jī)的控制大都采用了功能較少的微處理器芯片,無(wú)刷直流電動(dòng)機(jī)的控制技術(shù)基本停留在前臺(tái)操作后臺(tái)運(yùn)行模式。隨著系統(tǒng)復(fù)雜性的增加,除了系統(tǒng)的可靠性之外,系統(tǒng)對(duì)擴(kuò)展性、操作簡(jiǎn)單化、實(shí)時(shí)性、可視化操作提出了更高要求。8位或16位微處理器難以滿足上述性能的要求,而采用LPC2290之后不僅可以實(shí)現(xiàn)對(duì)無(wú)刷直流電動(dòng)機(jī)的控制,更重要的可以實(shí)現(xiàn)電機(jī)控制的可視化,而且在移植μC/OS-II后,更容易擴(kuò)展系統(tǒng)功能、提高系統(tǒng)可靠性和加快軟件開發(fā)周期。為了系統(tǒng)操作簡(jiǎn)單化、電機(jī)運(yùn)行可視化和便于系統(tǒng)功能擴(kuò)展,本文給出了一種基于32位ARM7微處理器LPC2290、通用型嵌入式應(yīng)用圖形軟件μC/GUI和實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ的無(wú)刷直流電動(dòng)機(jī)數(shù)字控制方法,將運(yùn)動(dòng)控制、故障檢測(cè)和人機(jī)交互集成于一體,實(shí)現(xiàn)系統(tǒng)控制。
LPC2290是一款基于ARM7TDMI-S內(nèi)核的32位RISC嵌入式微處理器,具有功耗低、價(jià)格便宜、性能高的特點(diǎn)。LPC2290帶有256 k字節(jié)嵌入的高速Flash存儲(chǔ)器可以使得芯片達(dá)到較高的讀寫速度;多個(gè)物理接口,便于應(yīng)用于工業(yè)現(xiàn)場(chǎng)控制;8路A/D轉(zhuǎn)換器;2個(gè)32位定時(shí)器;最多可支持76個(gè)輸入/輸出口,這些引腳均可以用來(lái)驅(qū)動(dòng)發(fā)光二極管、檢測(cè)開關(guān)信號(hào)和鍵盤輸入信號(hào)以及與片外信號(hào)通信等;基于時(shí)鐘匹配的6路脈寬調(diào)制器PWM。LPC2290同樣有著ARM的其它特點(diǎn),正是這些優(yōu)點(diǎn)使得它可以嵌入實(shí)時(shí)操作軟件μC/OS- Ⅱ 和 圖 形 軟 件 μC/GUI。正 是 由 于LPC2290的6路PWM使得實(shí)現(xiàn)無(wú)刷直流電動(dòng)機(jī)控制成為了可能。
主功率電路采用MOSFET三相全橋逆變電路。LPC2290輸出六路PWM信號(hào)至IR2130,然后經(jīng)過(guò)三相逆變電路到電機(jī)三相星型繞組,無(wú)刷直流電動(dòng)機(jī)的霍爾傳感器將轉(zhuǎn)子位置信號(hào)傳回LPC2290實(shí)現(xiàn)閉環(huán)控制。圖1為逆變橋六個(gè)MOSFET中的Q1和Q4驅(qū)動(dòng)電路。IR2130輸入端接有上拉電阻使得在無(wú)信號(hào)輸入時(shí)能夠準(zhǔn)確關(guān)斷功率 MOSFET。FAULT管腳與ARM的外部中斷管腳連接,由ARM來(lái)實(shí)現(xiàn)故障中斷。三相逆變橋電路原理圖如圖2所示。由于逆變橋的Q4、Q5、Q6三個(gè)MOSFET是可以共地的,而Q1、Q2、Q3共地導(dǎo)致短路,故需要自舉電路來(lái)驅(qū)動(dòng)。在MOSFET關(guān)斷時(shí)為了減小關(guān)斷損耗在逆變橋中與MOSFET并聯(lián)了RC串聯(lián)緩沖電路。

圖1 MOSFET驅(qū)動(dòng)電路原理圖

圖2 三相逆變橋電路原理圖
本設(shè)計(jì)要對(duì)電機(jī)運(yùn)行狀態(tài)進(jìn)行圖形顯示和滑動(dòng)條框初始化設(shè)置,故采用5.2英寸彩色液晶屏。S1D13503F為液晶驅(qū)動(dòng)芯片,該驅(qū)動(dòng)芯片支持在液晶屏上顯示文本和圖形,最多可支持640×256點(diǎn)陣的液晶屏,完全兼容本設(shè)計(jì)采用的320×240液晶屏。彩色液晶驅(qū)動(dòng)電路圖如圖3所示。電路主要包括控制部分、接口部分、地址總線和時(shí)鐘晶振等。為了有良好的圖形顯示效果,選用了20 MHz晶振。本設(shè)計(jì)采用了8 bit數(shù)據(jù)總線,故沒(méi)將VD0接上拉電阻。由于LPC2290發(fā)出的圖像數(shù)據(jù)不能夠達(dá)到顯示滿屏的要求,需要外擴(kuò)存儲(chǔ)器。IS61C1024是一種高速低功耗8位COMS靜態(tài)存儲(chǔ)器,讀寫速度可以達(dá)到40 MHz,滿足對(duì)數(shù)據(jù)顯示的要求。當(dāng)圖形數(shù)據(jù)從LPC2290傳至顯示模塊時(shí)首先存儲(chǔ)到IS61C1024,達(dá)到一屏數(shù)據(jù)時(shí)由S1D13503F驅(qū)動(dòng)顯示到液晶屏上。

圖3 彩色液晶驅(qū)動(dòng)電路原理圖
在觸摸屏控制中,采用FM7843觸摸屏控制芯片,該芯片最大可達(dá)125 kHz模數(shù)轉(zhuǎn)換速率完全達(dá)到對(duì)系統(tǒng)實(shí)時(shí)性的要求。需要采集觸摸屏信號(hào)時(shí),LPC2290要提供時(shí)鐘信號(hào)CLK、片選信號(hào)CS和數(shù)據(jù)信號(hào)DIN,當(dāng)模數(shù)轉(zhuǎn)換完成后中斷信號(hào)INT使得產(chǎn)生中斷數(shù)據(jù)通過(guò)DOUT傳至LPC2290完成觸摸屏信號(hào)采集。觸摸屏接口電路圖如圖4所示。
觸摸屏、液晶顯示及電機(jī)控制需要一個(gè)很好的操作內(nèi)核和圖形顯示軟件。圖5給出了總體軟件系統(tǒng)分層體系結(jié)構(gòu)圖。最上層為協(xié)調(diào)控制層,主要實(shí)現(xiàn)觸摸屏信號(hào)捕捉、液晶屏的顯示等。中間層為運(yùn)動(dòng)控制層,主要實(shí)現(xiàn)PWM信號(hào)輸出,控制電機(jī)轉(zhuǎn)速、正轉(zhuǎn)、反轉(zhuǎn)等。最下層為傳感反饋層,主要將無(wú)刷直流電動(dòng)機(jī)霍爾位置傳感器的反饋信號(hào)經(jīng)過(guò)AD轉(zhuǎn)換回傳至 LPC2290,此時(shí)信號(hào)經(jīng)過(guò)微處理器解算,發(fā)出信號(hào),控制電機(jī)和實(shí)現(xiàn)液晶屏顯示,達(dá)到閉環(huán)控制的目的。

圖4 觸摸屏接口電路圖

圖5 軟件系統(tǒng)分層體系結(jié)構(gòu)
系統(tǒng)采用μC/OS-II操作系統(tǒng)作為軟件應(yīng)用平臺(tái),μC/GUI用于圖形用戶接口。實(shí)時(shí)多任務(wù)的操作內(nèi)核μC/OS-II的優(yōu)點(diǎn)很多文獻(xiàn)資料都有論述,本文不再敘述。μC/GUI軟件設(shè)計(jì)思想是模塊化分層,使用ANSI C語(yǔ)言編寫,因此具有很強(qiáng)的移植性,幾乎適用于所有的CPU。
編寫應(yīng)用軟件之前要移植μC/OS-II和μC/GUI圖形庫(kù)軟件。系統(tǒng)中的LPC2290微處理器和開發(fā)環(huán)境ADS 1.2完全滿足移植要求。由于μC/OS-II操作系統(tǒng)自身的特點(diǎn),要移植到一個(gè)微處理器上時(shí)一般要修改三個(gè)文件:OS_CPU.H(C語(yǔ)言頭文件),OS_CPU_A.S(匯編語(yǔ)言源文件)和OS_CPU_C.C(C程序源文件)。在這些文件中要修改的包括數(shù)據(jù)類型、常量、函數(shù)、中斷服務(wù)程序等。
由于μC/GUI提供了源代碼,可以很容易地移植到LPC2290平臺(tái)下。μC/GUI的系統(tǒng)構(gòu)架從上至下分為用戶層、μC/GUI系統(tǒng)層、LCD驅(qū)動(dòng)層和硬件操作層。μC/GUI的移植需要配置的文件有GUIConf.h 和 LCDConf.h。在 GUIConf.h 中,需要配置好指定的開關(guān)參數(shù),包括一些最基本的GUI圖形預(yù)定義控制。在LCDConf.h文件中指定了LCD屏的寬高320×240、使用8位來(lái)表示一個(gè)像素。
液晶觸摸屏程序主要包含基準(zhǔn)點(diǎn)的測(cè)試、觸摸屏校準(zhǔn)、觸摸屏信號(hào)的濾波、以及將觸摸點(diǎn)顯示在液晶屏上。觸摸程序采用兩次觸摸坐標(biāo),如果兩次采樣的坐標(biāo)相差超過(guò)設(shè)定閾值,那么坐標(biāo)值被拋棄;如果在設(shè)定閾值內(nèi),那么這兩個(gè)坐標(biāo)值均值濾波后返回。只要有數(shù)據(jù)到達(dá)控制寄存器,驅(qū)動(dòng)器就會(huì)選通液晶控制器內(nèi)部寄存器片選信號(hào),依次向16個(gè)內(nèi)部控制寄存器中寫入正確的參數(shù)。圖6為液晶觸摸屏起動(dòng)和設(shè)置界面,設(shè)置電機(jī)轉(zhuǎn)速信號(hào)。圖7為速度實(shí)時(shí)顯示和數(shù)據(jù)保存界面,顯示電機(jī)轉(zhuǎn)速信息和數(shù)據(jù)保存。實(shí)際測(cè)試表明,界面上各控件均能對(duì)觸摸筆作出反應(yīng),回調(diào)函數(shù)能夠及時(shí)得到執(zhí)行,速度信號(hào)能及時(shí)在顯示界面上顯示。

圖6 液晶觸摸屏起動(dòng)和設(shè)置界面

圖7 速度實(shí)時(shí)顯示和數(shù)據(jù)保存界面
顯示屏系統(tǒng)模塊初始化后,首先用示波器檢測(cè)三個(gè)信號(hào),分別是FLM處的掃描起動(dòng)脈沖信號(hào)、XSCL處的X軸驅(qū)動(dòng)數(shù)據(jù)移位時(shí)鐘信號(hào)、CL1處的鎖存脈沖信號(hào)。待檢測(cè)到的信號(hào)正確后,便可以對(duì)液晶顯示屏操作。一個(gè)FLM幀信號(hào)表示更新一屏數(shù)據(jù),一個(gè)CL1信號(hào)表示更新一行數(shù)據(jù),每更新一行數(shù)據(jù)需要120個(gè)CL2時(shí)鐘信號(hào)。編寫液晶顯示程序首先要找出需要顯示數(shù)據(jù)的目標(biāo)地址(a,b),定義最左上角為坐標(biāo)原點(diǎn),然后向指的坐標(biāo)點(diǎn)寫入要顯示的數(shù)據(jù)。目標(biāo)地址的計(jì)算公式和輸出數(shù)據(jù)的格式如下:
(1)需要顯示數(shù)據(jù)的目標(biāo)地址
addr=b*320+a;
DAT_Point=(void*)S1D13503F_DAT;
DAT_Point+=addr;
(2)輸出數(shù)據(jù)
*DAT_Point=gui_disp_buf[y][x];

圖8 無(wú)刷直流電動(dòng)機(jī)轉(zhuǎn)速控制軟件框圖
無(wú)刷直流電動(dòng)機(jī)轉(zhuǎn)速控制軟件框圖如圖8所示。觸摸屏給出轉(zhuǎn)速控制信號(hào)后與霍爾位置傳感器上傳的信號(hào)在LPC2290中解算,將信號(hào)傳給PWM模塊,此時(shí)MOSFET驅(qū)動(dòng)電路輸出觸發(fā)電壓,三相逆變橋中相應(yīng)功率管導(dǎo)通,實(shí)現(xiàn)無(wú)刷直流電動(dòng)機(jī)轉(zhuǎn)速的位置閉環(huán)控制。
在實(shí)驗(yàn)室中系統(tǒng)進(jìn)行了測(cè)試,試驗(yàn)中得到了初步的驗(yàn)證,電機(jī)調(diào)速、正反轉(zhuǎn)及實(shí)現(xiàn)觸摸屏控制液晶顯示。為了實(shí)現(xiàn)電機(jī)轉(zhuǎn)速閉環(huán)控制,系統(tǒng)使用雙極性PWM控制。功率器件斬波頻率為20 kHz,時(shí)基計(jì)數(shù)為向上向下模式,設(shè)定死區(qū)時(shí)間。電機(jī)的PWM雙極性控制中,同一橋臂的PWM(如PWM1H和PWM1L、PWM2H 和 PWM2L、PWM3H 和 PWM3L)是互補(bǔ)輸出的,示波器測(cè)得的PWM波形如圖9所示。為了防止逆變器中同一橋臂的功率MOSFET在開關(guān)過(guò)程中出現(xiàn)同一橋臂的兩個(gè)MOSFET都處于開通狀態(tài),在這種情況下將會(huì)出現(xiàn)短路現(xiàn)象,電路中電流劇增、器件損壞需要在其間插入一個(gè)死區(qū)時(shí)間,確保不發(fā)生短路,如圖10所示。

圖9 同一橋臂MOSFET柵極PWM互補(bǔ)驅(qū)動(dòng)信號(hào)

圖10 IR2130輸出的PWM死區(qū)時(shí)間
本文給出了基于觸摸屏的無(wú)刷直流電動(dòng)機(jī)控制系統(tǒng)硬件電路圖、液晶觸摸屏驅(qū)動(dòng)程序和電機(jī)驅(qū)動(dòng)程序設(shè)計(jì)方案,移植圖形庫(kù)軟件μC/GUI和實(shí)時(shí)多任務(wù)操作系統(tǒng)μC/OS-II到LPC2290中,使無(wú)刷電機(jī)控制與操作簡(jiǎn)單化、可視化。由于嵌入式特有的優(yōu)點(diǎn),在此基礎(chǔ)上完成功能擴(kuò)展,結(jié)合具體工程要求可以應(yīng)用于數(shù)控機(jī)床和各種電機(jī)控制等。
[1] 田海波,方宗德,楊坤,等.輪腿式機(jī)器人設(shè)計(jì)及其運(yùn)動(dòng)特性分析[J].機(jī)械設(shè)計(jì),2010,27(6):42 -47.
[2] 陳榮,蘆剛,李聲晉.一種基于ARM的多任務(wù)的BLDCM控制系統(tǒng)設(shè)計(jì)[J].測(cè)控技術(shù),2007,26(8):37 -39.
[3] 韓山,郭云.ARM微處理器應(yīng)用開發(fā)技術(shù)詳解與實(shí)例分析[M].北京:清華大學(xué)出版社,2007:268-299.
[4] 周立功.ARM嵌入式MiniGUI初步與應(yīng)用開發(fā)范例[M].北京:北京航空航天大學(xué)出版社,2006:129-247.
[5] 徐軍.嵌入式μC/GUI的移植與平臺(tái)開發(fā)[J].自動(dòng)化與儀表,2007(3):76-79.
[6] 劉濱,劉靜靜,曹旭陽(yáng).嵌入式圖形接口 μC/GUI在 μC/OSⅡ上的移植[J].2007,23(2):23-25.