黃 輝, 操 星, 趙志中, 王建明
(1.南京工業大學信息科學與工程學院,江蘇南京 210009;2.南自信息技術有限公司,江蘇南京 210009)
現代社會,視頻監控技術得到越來越廣泛的應用,人們對各種監控設備的要求也越來越高。高速智能球型攝像機以其可操控性和智能化等特點而發展較為迅速,它主要由云臺、圖像采集單元、控制單元和電源等幾個部分組成。通過對云臺的控制,可以實現定點、定線或者任意線路的圖像采集,從而實現對周圍環境進行全方位監控。云臺主要由控制水平和垂直位置的兩個步進電機構成,高速智能球型攝像機的各種控制都是通過控制這兩個電機完成,其各項性能指標:速度、精確度和智能化程度也主要取決于此。針對這點,本文主要介紹了一種基于LPC1766的混合式步進電機控制方案,通過軟件實現了多細分控制設計,可以設置電機運轉速度,最高速度可達400°/s,無論處在高速還是低速,運行都非常平穩,精度可以控制在0.1°誤差之內。
硬件設計原理框圖如圖1所示,主要通過LPC1766微控制器控制A3988,從而驅動兩個步進電機,A3988的4個基準電壓輸入通過8位的TLC7255數模轉換器供給,TLC7255由 LPC1766控制分別進行四路數模轉換,74LS245作為緩存器,UREF為TLC7255輸入的基準電壓,通過電路設置為1.2 V。

圖1 硬件設計原理框圖
LPC1766是基于ARM Cortex-M3內核的微控制器,采用哈弗結構,具有分離的數據和程序空間及分離的訪問總線,利用3級流水線操作技術,主頻可以達到100 MHz。它主要是針對那些要求高集成度、低功耗的應用系統而誕生的32位微控制器,具有256 kB的Flash和64 kB的 RAM,集成Ethernet MAC、4 UARTS、SPI等外部接口,其 I/O輸入輸出口可以多達70個。設計中主要使用P1口、P3和 P4口進行電機的控制,P1[24]~P1[31]接A3988的邏輯控制信號輸入腳,考慮A3988邏輯信號輸入要求,使用一個1 K×8的排阻限流;A3988的I01與I02、I03與I04、I11與I12和I13與I14分別使用同一個控制線控制,令P[24]和 P[25]輸出高電平,P[26]和 P[27]輸出低電平,可以控制流過電機的各相電流均為最大電流的2/3;PHASE1~PHASE4用于控制流過電機各相電流的方向,當PHASE1為0時,電流從OUT1A流向OUT1B,當 PHASE1為1時,電流從OUT1B流向OUT1A,其他三相控制原理相同。
根據云臺載重大小、傳動比等技術要求,電機選用上海鳴志的14HA9415-06N混合式步進電機,其步距角為0.9°,額定電流為0.5 A。A3988是一個4DMOS全橋脈寬調制(Pulse Width Modulation,PWM)電機驅動器,每個全橋輸出電流最大可達到1.2 A,可以同時驅動兩個步進電機。流過電機每一相的實際工作電流可以通過VREFx、I0x、I1x和接SENSEx引腳的電阻 Rx進行控制,前面介紹通過I0x和I1x將實際工作電流設置為最大電流的2/3,Rx選用1 Ω/1 W電阻,所以實際工作電流ITrip可以通過如下公式進行計算得到。UREFx為 TLC7255的輸出,其最大值應為TLC7255的基準電壓1.2 V,所以ITrip最大約為267 mA。

14HA9415-06N為兩相步進電機,假設為A相和B相,通過兩相的電流在相位上相差90°,電機電磁力的大小與兩相中的合電流大小有關,控制流過兩相的電流大小和方向就可以控制電機轉動,假設按 AB-A’B-A’B’-AB’四拍為控制電機正轉,將時序倒過來就可以實現電機反轉,可以將此模式稱為整部模式。將每兩者之間多加入一拍就可以實現半步驅動模式:A-AB-B-A’B-A’-A’B’-B’-AB’,也可以稱為2細分控制,相同的,將兩者之間插入更多拍時,就可以實現多細分控制。
為實現多細分控制電機,必須能夠控制電機兩相中的電流,由于流過電機一相的電流ITrip和UREFx成正比關系,所以ITrip可以通過UREFx進行控制。UREFx由TLC7255輸出,可以通過LPC1766的P1[16]~P1[23]引腳控制,其值將在 0~1.2 V之間變化。P1[16]~P1[23]輸出的值轉換成十進制為0~255,將其按正弦曲線32等分抽樣得到32個值,令 LPC1766分別控制 P1[16]~P1[23]輸出的值對應為這32個值,從而對應得到0~1.2 V之間的32個電壓值和按正弦規律變化的32個電流值,變化范圍為0~267 mA。對應電機A相和B相的控制輸出信號P1[16]~P1[23]分別取值如圖2所示,其值大于零時表示對應的PHASE信號為0,小于零時對應的PHASE信號為1,從而使兩相電流在相位上相差90°。

圖2 LPC1766控制輸出取值圖
軟件設計主要分為兩個部分,一是電機驅動軟件的相關設計,主要實現電機的轉動、轉動方向和速度的調節等;另一個是控制軟件設計,主要應用C++builder平臺開發,可以通過計算機使用此軟件控制電機。
LPC1766具有一個向量中斷控制器,可以接收所有的中斷輸入,該設計將UART0串口中斷配置為快速中斷請求,其享有最高優先級,當電機控制軟件通過計算機發送控制電機命令時,LPC1766就會中斷接收命令,然后加以處理,詳細的軟件流程圖如圖3所示。LPC1766首先判斷用戶期望的電機轉動方向和轉速,然后驅動電機,如果需要電機正轉,LPC1766就會根據圖2中正轉方向取值控制 P1[16]~P1[23],反向取值即可控制電機向相反方向轉動。通過控制相鄰兩個取值的轉換時間間隔,就可以控制電機的轉動速度,時間間隔越小,轉動速度越高,時間長則轉速低。該設計通過定時器0定時控制,實現了速度16級可調。

圖3 電機控制軟件流程圖
控制軟件主要是通過計算機RS-232串口發送控制命令來實現電機的控制,所以此部分設計可分為兩個部分,一是串口方面的設計,主要是進行波特率、端口號的配置;另一個是電機控制部分的設計,提供了8個按鈕,分別對應上、下、左、右、左上、左下、右上和右下,用于控制電機轉動,當點擊一個按鈕時,就會通過串口發送對應的控制命令。可見此部分的設計主要在于串口應用方面,該設計使用了C++Builder提供的MSCOMM控件進行開發,串口號(COM1~COM8)可以由用戶選擇,控件的 Settings屬性設置為“9 600,n,8,1”,即設置波特率為9 600 bps,無校驗,8個數據位和1個停止位。控制軟件不需要LPC1766回傳數據,所以僅需利用串口發送數據。
從硬件和軟件兩個方面分別介紹了基于LPC1766的多細分步進電機控制設計,可以直接應用于高速智能球機的云臺控制,具有成本低、可靠性高、運轉平穩等特點。使用A3988芯片直接驅動兩個步進電機,節省了PCB空間,而且經過實踐驗證,其電流控制精確、發熱量較低。另外需要提出:采用多細分方式控制電機,細分數越多,電機運轉越平穩,在一定程度上也能提高精度,但由于處理器頻率一定,所以電機的最高轉速會受到一定限制。
[1]趙濤.全橋PWM步進電機微步距驅動器A3955S的研究[J].電氣傳動自動化,2003(25):16-19.
[2]景立群,李勇,季學武.基于單片機PWM功能的步進電動機細分設計[J].微特電機,2008(8):20-22.
[3]趙勇,車建國,楊建國.步進電機多級細分驅動方法研究[J].江蘇電機工程,2003(22):23-24.
[4]智愛娟.步進電機步距角的軟件細分法[J].電機電器技術,2005(6):55-56.
[5]王成江,王安敏,張玉華.步進電機細分驅動控制系統[J].微特電機,2003(3):44-45.