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