闡述使用低成本的ARM7 LPC2101微處理器設計無刷直流電機的控制方案;詳細地介紹微處理器、MOSFET驅動和MOSFET的原理設計和程序流程,以及與電機保護相關的技術及處理方法,如電機穩定運行狀態機,降低電機噪聲,軟件防止電機陡轉等。該方案可以應用在打印機、電動自行車、潔牙機等電機控制產品上。
關鍵詞 LPC2101 ARM7 無刷直流電機控制 反電動勢 狀態機
LPC2101是基于16/32位 ARM7 CPU嵌入高速Flash閃存的微控制器,具備高性能,小體積封裝,低功耗,片上可選擇多種外設等優點,應用范圍很廣。其具備的多種32位和16位定時器、10位A/D轉換器和每個定時器上PWM匹配輸出特性,尤其適用于工業控制。
無刷直流電機是一種易驅動電機,適用于變速和啟動轉矩很高的應用,它的使用范圍從大規模的工業模具到調光控制的小型電機(12 V直流電機),外形和尺寸也是各種各樣。
1? 無刷直流電機的基本原理
圖1? 無刷電機組成
無刷直流電機一般由定子、轉子和金屬殼體等組成,如圖1所示,通過反向極性的吸引產生扭矩使電機運轉。一旦轉子開始運轉,固定的刷子和轉子部分將不斷反復地連接、斷開,電動勢和反電動勢在轉子旋轉過程中產生,新的電極總是和定子極性相反。由于這種變換是固定的,因此轉子以一種固定的形式運動。通過給電機施加反向電壓和反向的轉子線圈電流,使南北極性翻轉,電機改變其運動旋轉方向。
速度和電機的扭矩大小是依據電機旋轉產生的磁場強度來控制的,而電機的旋轉能量是依賴于通過電流大小來控制的,因此調整電機轉子的電壓和電流可以改變電機的速度。本電機速度的控制是根據LPC2101微控制器的PWM信號的變化而產生的。
2? 無刷直流電機的控制
2.1? 雙向旋轉
驅動有刷直流電機的雙向旋轉,可通過全橋驅動電路改變電流來實現完成,如圖2所示。這個全橋驅動電路由N通道的MOSFET管組成,當Q2和Q3關閉的時候,Q1和Q4導通電機正相旋轉;當Q1和Q4關閉時,Q2和Q3導通電機反相旋轉。
2.2? 速度控制部分
無負載的電機速度與加到電機上的電壓有一定的比例關系,因此通過采樣加載到電機上的電壓,可以控制電機的速度。脈寬調制解調用于產生這種電壓的變化,如圖3所示。脈寬調制是基于占空比的固定頻率脈寬波形。加載到電機上的平均電壓與PWM占空比成正比關系。
PWM信號(Q1和Q2)根據LPC2101微控制器定時器2的3個匹配寄存器決定信號的時基頻率。電機速度(占空比)和方向通過調整電位器輸入及改變LPC2101 ADC的輸入數值來控制,如圖4所示。
2.3? 電機反饋部分
低功耗電機電流測量是在MOSFET和地之間使用電流傳感器(參見圖4)。通過電流傳感器的采樣電阻檢測微小電壓;通過在微控制器的前端進行濾波和放大,電流采集總是在最高級別,在PWM產生之前。這個操作通過外部定時器匹配中斷,中斷后先開始A/D轉換。轉換數值代表了電機的電流。
低功耗無傳感器電機旋轉速度反饋是通過反饋的EMF電壓測量(參見圖4)。反電動勢是通過電機轉子旋轉磁場和外部電磁場產生的。換句話說,電機表現得像一個發電機。RPM和反電動勢電壓是成直接正比關系的,反電動勢測量是通過MOSFET切換完成的(剎車模式)。本文中,BEMF測量用于檢測電機是否完全停止。電壓分壓是用于滿足反電動勢電壓(最高為12 V)在0~3.3 V間的。
3? 無刷直流電機的應用
3.1? 選用LPC2102
LPC2102(采用LQFP48封裝)是目前LPC2000系列ARM7家族中最小、最便宜的一款總線頻率高達70 MHz的32位CPU處理器;有2 KB的靜態RAM和8 KB的片上Flash存儲區。對于使用USB、CAN總線、Ethernet以太網總線,可以選用LPC2000系列中更高級別的處理器。本文中LPC2101,其CPU使用代碼空間為3 KB,CPU負載小于5%。沒有使用內部外設資源如下:UART、I2C、SPI/SSP、RTC、2個定時器和4個A/D輸入,20個未用的I/O口可供用戶擴展使用。
3.2? 電機選擇
設計選用150 W MAXON RE40電機。在12 V輸入下,無負載的速度是6 920 r/s。最大連續電流是6 A。PWM時基信號對電機噪聲有很大的影響(因為人耳一般能聽到的聲波的頻率范圍是20 Hz~20 kHz),同時影響電機的表現性能。要防止整個周期中電流過零(就是通常所說的不連續的電流狀態,當電機輕載時),如圖5(b)所示。這種不連續電流會導致扭矩轉速曲線非常陡,在電機中將產生某種脈沖,使電機轉子產生更大的噪聲,本電路使用MAXON電機,就是為了獲得連續的電流模式,所選擇的PWM脈沖頻率是8 kHz。
3.3? MOSFET選擇
在系統中使用NXP半導體PH1875L N溝道MOSFET,相關的電機電壓是12 V,電機啟動的最大電流是103 A。作為12 V的電機,MOSFET的電壓Vds至少為40 V。需要足夠的灌電流來啟動電機,可以通過軟件控制在系統運行過程中減小電流。PH1875L需要使用的最大灌電流是45.8 A,漏電流是183 A。PH1875L的SMD貼片封裝如圖6所示。
3.4? MOSFET驅動選擇
MOSFET驅動提升了控制器輸出信號驅動電機的能力。本設計選擇NXP芯片PMD2001D和PMGD280UN,如圖7所示。
3.5? 速度控制和方向控制
為了控制方向和電機速度,用10 kΩ的電位器,連接到LPC2101 ADC輸入端(參見圖4)。由于是10位A/D,實際上只需要8位就可以采用256個步進數值,如圖8所示。采用10位A/D可以達到1 024個步進數值。
圖8? 電位器模擬速度輸入和方向
4? 硬件與軟件設計
4.1? 硬件設計
控制部分的電路原理如圖9所示。電源和電機部分的電路原理如圖10所示。
4.2? 軟件設計
軟件部分采用C語言編寫,使用Keil μVision(ARM7 RealView V3.0)開發環境。主函數實現如下功能: 讀取電位器數值來調整速度和電機方向;讀取電機反電動勢電流;設定PWM占空比和控制Q1~Q4 MOSFET輸出;執行RS232通信。圖11表示控制系統流程。使用RS232接口每200 ms給PC端計算機發送電機速度和電流、電壓信息。電機控制軟件部分狀態機如圖12所示。狀態處理是在主程序循環中處理的,LPC2101的定時器2用于產生PWM信號。在每個PWM信號中斷子程序進入后,可以通過改變占空比來調整既定電機速度并設置MOSFET輸出控制Q1~Q4。定時器0用于10 ms的系統定時。
LPC2101配置使用Keil ARM開發環境中標準的啟動代碼,設定CCLK時鐘為60 MHz,PCLK時鐘為15 MHz。相關測試代碼包括main.c,adc.c,timer0.c,motor.c,uart.c,bcd.h等。
相關代碼見本刊網站www.mesnet.com.cn——編者注。
5? 總結
使用LPC2101 ARM7內核開發無刷電機控制系統,代碼精簡,控制系統可靠。經過長時間實際測量證明,系統相關器件的選型設計是穩定的。另外,目前增強型51系列微處理器的價格、性能與LPC21系列相比較,LPC21系列功耗低, 價格與普通8位機價格差不多,但是性能卻比增強型51系列好。比如,帶Modem的雙串口,雙I2C接口,帶大容量的Flash和RAM存儲區,多通道PWM,多個32位定時器,高精度10位A/D轉換器等。因此,從芯片設計和系統設計上,該無刷電機產品有一定的推廣價值。
評論
查看更多