黃 輝, 操 星, 趙志中, 王建明
(1.南京工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,江蘇南京 210009;2.南自信息技術(shù)有限公司,江蘇南京 210009)
現(xiàn)代社會,視頻監(jiān)控技術(shù)得到越來越廣泛的應(yīng)用,人們對各種監(jiān)控設(shè)備的要求也越來越高。高速智能球型攝像機(jī)以其可操控性和智能化等特點(diǎn)而發(fā)展較為迅速,它主要由云臺、圖像采集單元、控制單元和電源等幾個(gè)部分組成。通過對云臺的控制,可以實(shí)現(xiàn)定點(diǎn)、定線或者任意線路的圖像采集,從而實(shí)現(xiàn)對周圍環(huán)境進(jìn)行全方位監(jiān)控。云臺主要由控制水平和垂直位置的兩個(gè)步進(jìn)電機(jī)構(gòu)成,高速智能球型攝像機(jī)的各種控制都是通過控制這兩個(gè)電機(jī)完成,其各項(xiàng)性能指標(biāo):速度、精確度和智能化程度也主要取決于此。針對這點(diǎn),本文主要介紹了一種基于LPC1766的混合式步進(jìn)電機(jī)控制方案,通過軟件實(shí)現(xiàn)了多細(xì)分控制設(shè)計(jì),可以設(shè)置電機(jī)運(yùn)轉(zhuǎn)速度,最高速度可達(dá)400°/s,無論處在高速還是低速,運(yùn)行都非常平穩(wěn),精度可以控制在0.1°誤差之內(nèi)。
硬件設(shè)計(jì)原理框圖如圖1所示,主要通過LPC1766微控制器控制A3988,從而驅(qū)動(dòng)兩個(gè)步進(jìn)電機(jī),A3988的4個(gè)基準(zhǔn)電壓輸入通過8位的TLC7255數(shù)模轉(zhuǎn)換器供給,TLC7255由 LPC1766控制分別進(jìn)行四路數(shù)模轉(zhuǎn)換,74LS245作為緩存器,UREF為TLC7255輸入的基準(zhǔn)電壓,通過電路設(shè)置為1.2 V。
圖1 硬件設(shè)計(jì)原理框圖
LPC1766是基于ARM Cortex-M3內(nèi)核的微控制器,采用哈弗結(jié)構(gòu),具有分離的數(shù)據(jù)和程序空間及分離的訪問總線,利用3級流水線操作技術(shù),主頻可以達(dá)到100 MHz。它主要是針對那些要求高集成度、低功耗的應(yīng)用系統(tǒng)而誕生的32位微控制器,具有256 kB的Flash和64 kB的 RAM,集成Ethernet MAC、4 UARTS、SPI等外部接口,其 I/O輸入輸出口可以多達(dá)70個(gè)。設(shè)計(jì)中主要使用P1口、P3和 P4口進(jìn)行電機(jī)的控制,P1[24]~P1[31]接A3988的邏輯控制信號輸入腳,考慮A3988邏輯信號輸入要求,使用一個(gè)1 K×8的排阻限流;A3988的I01與I02、I03與I04、I11與I12和I13與I14分別使用同一個(gè)控制線控制,令P[24]和 P[25]輸出高電平,P[26]和 P[27]輸出低電平,可以控制流過電機(jī)的各相電流均為最大電流的2/3;PHASE1~PHASE4用于控制流過電機(jī)各相電流的方向,當(dāng)PHASE1為0時(shí),電流從OUT1A流向OUT1B,當(dāng) PHASE1為1時(shí),電流從OUT1B流向OUT1A,其他三相控制原理相同。
根據(jù)云臺載重大小、傳動(dòng)比等技術(shù)要求,電機(jī)選用上海鳴志的14HA9415-06N混合式步進(jìn)電機(jī),其步距角為0.9°,額定電流為0.5 A。A3988是一個(gè)4DMOS全橋脈寬調(diào)制(Pulse Width Modulation,PWM)電機(jī)驅(qū)動(dòng)器,每個(gè)全橋輸出電流最大可達(dá)到1.2 A,可以同時(shí)驅(qū)動(dòng)兩個(gè)步進(jìn)電機(jī)。流過電機(jī)每一相的實(shí)際工作電流可以通過VREFx、I0x、I1x和接SENSEx引腳的電阻 Rx進(jìn)行控制,前面介紹通過I0x和I1x將實(shí)際工作電流設(shè)置為最大電流的2/3,Rx選用1 Ω/1 W電阻,所以實(shí)際工作電流ITrip可以通過如下公式進(jìn)行計(jì)算得到。UREFx為 TLC7255的輸出,其最大值應(yīng)為TLC7255的基準(zhǔn)電壓1.2 V,所以ITrip最大約為267 mA。
14HA9415-06N為兩相步進(jìn)電機(jī),假設(shè)為A相和B相,通過兩相的電流在相位上相差90°,電機(jī)電磁力的大小與兩相中的合電流大小有關(guān),控制流過兩相的電流大小和方向就可以控制電機(jī)轉(zhuǎn)動(dòng),假設(shè)按 AB-A’B-A’B’-AB’四拍為控制電機(jī)正轉(zhuǎn),將時(shí)序倒過來就可以實(shí)現(xiàn)電機(jī)反轉(zhuǎn),可以將此模式稱為整部模式。將每兩者之間多加入一拍就可以實(shí)現(xiàn)半步驅(qū)動(dòng)模式:A-AB-B-A’B-A’-A’B’-B’-AB’,也可以稱為2細(xì)分控制,相同的,將兩者之間插入更多拍時(shí),就可以實(shí)現(xiàn)多細(xì)分控制。
為實(shí)現(xiàn)多細(xì)分控制電機(jī),必須能夠控制電機(jī)兩相中的電流,由于流過電機(jī)一相的電流ITrip和UREFx成正比關(guān)系,所以ITrip可以通過UREFx進(jìn)行控制。UREFx由TLC7255輸出,可以通過LPC1766的P1[16]~P1[23]引腳控制,其值將在 0~1.2 V之間變化。P1[16]~P1[23]輸出的值轉(zhuǎn)換成十進(jìn)制為0~255,將其按正弦曲線32等分抽樣得到32個(gè)值,令 LPC1766分別控制 P1[16]~P1[23]輸出的值對應(yīng)為這32個(gè)值,從而對應(yīng)得到0~1.2 V之間的32個(gè)電壓值和按正弦規(guī)律變化的32個(gè)電流值,變化范圍為0~267 mA。對應(yīng)電機(jī)A相和B相的控制輸出信號P1[16]~P1[23]分別取值如圖2所示,其值大于零時(shí)表示對應(yīng)的PHASE信號為0,小于零時(shí)對應(yīng)的PHASE信號為1,從而使兩相電流在相位上相差90°。
圖2 LPC1766控制輸出取值圖
軟件設(shè)計(jì)主要分為兩個(gè)部分,一是電機(jī)驅(qū)動(dòng)軟件的相關(guān)設(shè)計(jì),主要實(shí)現(xiàn)電機(jī)的轉(zhuǎn)動(dòng)、轉(zhuǎn)動(dòng)方向和速度的調(diào)節(jié)等;另一個(gè)是控制軟件設(shè)計(jì),主要應(yīng)用C++builder平臺開發(fā),可以通過計(jì)算機(jī)使用此軟件控制電機(jī)。
LPC1766具有一個(gè)向量中斷控制器,可以接收所有的中斷輸入,該設(shè)計(jì)將UART0串口中斷配置為快速中斷請求,其享有最高優(yōu)先級,當(dāng)電機(jī)控制軟件通過計(jì)算機(jī)發(fā)送控制電機(jī)命令時(shí),LPC1766就會中斷接收命令,然后加以處理,詳細(xì)的軟件流程圖如圖3所示。LPC1766首先判斷用戶期望的電機(jī)轉(zhuǎn)動(dòng)方向和轉(zhuǎn)速,然后驅(qū)動(dòng)電機(jī),如果需要電機(jī)正轉(zhuǎn),LPC1766就會根據(jù)圖2中正轉(zhuǎn)方向取值控制 P1[16]~P1[23],反向取值即可控制電機(jī)向相反方向轉(zhuǎn)動(dòng)。通過控制相鄰兩個(gè)取值的轉(zhuǎn)換時(shí)間間隔,就可以控制電機(jī)的轉(zhuǎn)動(dòng)速度,時(shí)間間隔越小,轉(zhuǎn)動(dòng)速度越高,時(shí)間長則轉(zhuǎn)速低。該設(shè)計(jì)通過定時(shí)器0定時(shí)控制,實(shí)現(xiàn)了速度16級可調(diào)。
圖3 電機(jī)控制軟件流程圖
控制軟件主要是通過計(jì)算機(jī)RS-232串口發(fā)送控制命令來實(shí)現(xiàn)電機(jī)的控制,所以此部分設(shè)計(jì)可分為兩個(gè)部分,一是串口方面的設(shè)計(jì),主要是進(jìn)行波特率、端口號的配置;另一個(gè)是電機(jī)控制部分的設(shè)計(jì),提供了8個(gè)按鈕,分別對應(yīng)上、下、左、右、左上、左下、右上和右下,用于控制電機(jī)轉(zhuǎn)動(dòng),當(dāng)點(diǎn)擊一個(gè)按鈕時(shí),就會通過串口發(fā)送對應(yīng)的控制命令??梢姶瞬糠值脑O(shè)計(jì)主要在于串口應(yīng)用方面,該設(shè)計(jì)使用了C++Builder提供的MSCOMM控件進(jìn)行開發(fā),串口號(COM1~COM8)可以由用戶選擇,控件的 Settings屬性設(shè)置為“9 600,n,8,1”,即設(shè)置波特率為9 600 bps,無校驗(yàn),8個(gè)數(shù)據(jù)位和1個(gè)停止位??刂栖浖恍枰狶PC1766回傳數(shù)據(jù),所以僅需利用串口發(fā)送數(shù)據(jù)。
從硬件和軟件兩個(gè)方面分別介紹了基于LPC1766的多細(xì)分步進(jìn)電機(jī)控制設(shè)計(jì),可以直接應(yīng)用于高速智能球機(jī)的云臺控制,具有成本低、可靠性高、運(yùn)轉(zhuǎn)平穩(wěn)等特點(diǎn)。使用A3988芯片直接驅(qū)動(dòng)兩個(gè)步進(jìn)電機(jī),節(jié)省了PCB空間,而且經(jīng)過實(shí)踐驗(yàn)證,其電流控制精確、發(fā)熱量較低。另外需要提出:采用多細(xì)分方式控制電機(jī),細(xì)分?jǐn)?shù)越多,電機(jī)運(yùn)轉(zhuǎn)越平穩(wěn),在一定程度上也能提高精度,但由于處理器頻率一定,所以電機(jī)的最高轉(zhuǎn)速會受到一定限制。
[1]趙濤.全橋PWM步進(jìn)電機(jī)微步距驅(qū)動(dòng)器A3955S的研究[J].電氣傳動(dòng)自動(dòng)化,2003(25):16-19.
[2]景立群,李勇,季學(xué)武.基于單片機(jī)PWM功能的步進(jìn)電動(dòng)機(jī)細(xì)分設(shè)計(jì)[J].微特電機(jī),2008(8):20-22.
[3]趙勇,車建國,楊建國.步進(jìn)電機(jī)多級細(xì)分驅(qū)動(dòng)方法研究[J].江蘇電機(jī)工程,2003(22):23-24.
[4]智愛娟.步進(jìn)電機(jī)步距角的軟件細(xì)分法[J].電機(jī)電器技術(shù),2005(6):55-56.
[5]王成江,王安敏,張玉華.步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)控制系統(tǒng)[J].微特電機(jī),2003(3):44-45.