基于單片機SH79F168的航模無(wú)刷直流電機控制方案
1 概述
本文引用地址:http://dyxdggzs.com/article/220164.htm無(wú)位置傳感器的無(wú)刷直流電機(Brushless Direct Current Motor, BLDCM)由于其快速、可靠性高、體積小、重量輕等特點(diǎn),在航模領(lǐng)域得到了廣泛的應用。但是與有刷電機和有位置傳感器的無(wú)刷直流電機相比,其控制算法要復雜得多。加上航模設計中對重量和體積的要求非常嚴格,因此要求硬件電路盡可能簡(jiǎn)單,更增加了軟件的難度。
本文提出了一種基于中穎8位單片機SH79F168的控制方案,借助于該芯片片內集成的針對電機控制的功能模塊,只需很少的外圍電路即可搭建控制系統,實(shí)現基于反電動(dòng)勢法的無(wú)位置傳感器BLDC控制,在保證穩定性和可靠性的基礎上大大降低了系統成本。而且該芯片與傳統8051完全兼容,易于上手,從而也降低了研發(fā)成本。
2 系統硬件設計
本方案選用中穎的8位單片機SH79F168做為主控芯片。該芯片采用優(yōu)化的單機器周期8051核,內置16K FLASH存儲器,兼容傳統8051所有硬件資源,采用JTAG仿真方式,內置16.6M振蕩器,同時(shí)擴展了如下功能:
雙DPTR指針. 16位 x 8乘法器和16位/8除法器.
3通道12位帶死區控制PWM,6路輸出,輸出極性可設為中心或邊沿對齊模式;同時(shí)集成故障檢測功能,可瞬時(shí)關(guān)閉PWM輸出;
7通道10位ADC模塊;
內置放大器和比較器,可用作電流放大采樣和過(guò)流保護;
增強的外部中斷,提供4種觸發(fā)方式;
提供硬件抗干擾措施;
Flash自編程功能,方便存儲參數;
主系統硬件架構如圖1所示,從圖中可以看出該系統大部分功能都由片內集成的模塊完成。外圍電路的簡(jiǎn)化一方面可以提高系統可靠性,另一方面也降低了成本。

圖 1 系統硬件架構
三相逆變橋采用上橋PMOS用三極管驅動(dòng),下橋NMOS用PWM端口直接驅動(dòng)的方式,如圖2所示。

圖 2 三相逆變橋
SH79F169片內集成了三通道6路PWM端口,可分別獨立配置為PWM輸出或者IO輸出。將PWM01~PWM21配置為PWM輸出,直接驅動(dòng)三相逆變橋的下橋;PWM0~PWM2配置為IO端口,經(jīng)過(guò)晶體管反相電路后驅動(dòng)三相逆變橋的上橋。
外部中斷輸入INT4x配置為雙沿觸發(fā),即輸入信號的上升沿和下降沿都能觸發(fā)中斷,可用于捕捉調速給定信號。
3 系統軟件設計
由于SH79F168的硬件已經(jīng)完成了大量的任務(wù),軟件的部分相對簡(jiǎn)化很多。主程序流程圖如圖3所示。

圖 3 主程序流程圖
為便于理解,該流程圖經(jīng)過(guò)了盡量的簡(jiǎn)化,只保留最關(guān)鍵的步驟。主流程中沒(méi)有列出“檢測BEMF”和“換相”兩個(gè)關(guān)鍵的步驟,因為它們分別在PWM中斷和timer0中斷中進(jìn)行。
3.1 反電動(dòng)勢過(guò)零點(diǎn)檢測
在PWM輸出高期間,假設斷開(kāi)相繞組端電壓為 ,反電動(dòng)勢為 ,供電電壓為 ,則三者之間有如下關(guān)系[1]:

SH79F168提供PWM周期中斷和占空比中斷。當周期中斷發(fā)生時(shí)不斷檢測斷開(kāi)相的端電壓,并與 比較,直到檢測到過(guò)零點(diǎn)或者PWM輸出低(根據PWM占空比中斷標志位判斷),即可實(shí)現在PWM輸出高期間的反電動(dòng)勢過(guò)零點(diǎn)檢測。每次換相后就切換到另一個(gè)通道,檢測下一個(gè)斷開(kāi)相的端電壓,如此循環(huán),實(shí)現實(shí)時(shí)檢測。
需要注意是剛換相后的一段時(shí)間內,由于MOS管的續流,斷開(kāi)相繞組的電壓會(huì )出現尖峰。為了準確檢測反電動(dòng)勢,可以選擇在剛換相的一到兩個(gè)PWM周期內不進(jìn)行采樣,避開(kāi)尖峰電壓。
3.2 起動(dòng)算法
BLDC電機的反電動(dòng)勢和轉速正相關(guān),在起動(dòng)和低速運行階段,電機產(chǎn)生的反電動(dòng)勢為零或很小,因此往往需要經(jīng)過(guò)一段強制加速,使反電動(dòng)勢上升到能夠檢測過(guò)零點(diǎn)的水平。
航模電機一般在較低速時(shí)即會(huì )產(chǎn)生比較明顯的反電動(dòng)勢,這個(gè)特點(diǎn)為起動(dòng)提供了很大的便利。先給電機任意兩相通電,使電機獲得一個(gè)初速度,這時(shí)檢測斷開(kāi)相電壓并等待其發(fā)生過(guò)零。若檢測到過(guò)零點(diǎn)則換相,若經(jīng)過(guò)較長(cháng)一段時(shí)間還沒(méi)有檢測到過(guò)零則強制換相,重復這個(gè)過(guò)程直至電機穩定運行。這種起動(dòng)方式,不但實(shí)現簡(jiǎn)單,而且穩定可靠。在這種方式不能適用時(shí),再根據應用場(chǎng)合考慮選用特定的起動(dòng)方式,可參考文獻[2],限于篇幅本文不詳述。
3.3 換相計算
一般在用反電動(dòng)勢法進(jìn)行BLDC控制的時(shí)候,需要對每?jì)纱螕Q相的間隔時(shí)間進(jìn)行計時(shí),得到60°電角度時(shí)間,然后除以2作為檢測到過(guò)零點(diǎn)后30°延時(shí)的定時(shí)值。這就需要用到兩個(gè)定時(shí)器/計數器,一個(gè)用作計數器對每?jì)纱螕Q相的間隔進(jìn)行計數,另一個(gè)用作定時(shí)器實(shí)現30°延時(shí)。本方案中為了節省timer資源,用一個(gè)timer同時(shí)完成兩項功能。
在每次換相后,檢測到該通電狀態(tài)下的過(guò)零點(diǎn)之間,timer0用作計數器;在檢測到過(guò)零點(diǎn)之后,之前的計數值即為30°電角度,將其作為定時(shí)值裝入timer0,timer0用作定時(shí)器開(kāi)始定時(shí)。定時(shí)時(shí)間到后,在timer0中斷中進(jìn)行換相。然后timer0又用作計數器,如此循環(huán)。正常情況下,由于電機轉速很高,每次換相到檢測到過(guò)零點(diǎn)之間的時(shí)間很短,timer0在計數模式下不會(huì )發(fā)生中斷。若timer0在計數模式時(shí)發(fā)生中斷,必然是計數溢出,說(shuō)明電機經(jīng)過(guò)較長(cháng)的時(shí)間還沒(méi)有檢測到過(guò)零點(diǎn),而這可以作為電機堵轉的標志。根據實(shí)際情況,可對timer0在計數模式下連續發(fā)生中斷的次數進(jìn)行計數,超過(guò)一定值即認為發(fā)生堵轉。這樣,timer0還實(shí)現了堵轉保護的功能。
4 系統測試及總結
圖4~6分別為PWM占空比約為20%、50%和100%時(shí),在電機運轉過(guò)程中用示波器捕捉到的各相電壓和過(guò)零點(diǎn)位置波形。

圖 4 PWM占空比為20%

圖 5 PWM占空比為50%

圖 6 PWM占空比為100%
各圖中最上方的方波中每個(gè)高低翻轉的位置即對應程序中檢測到過(guò)零點(diǎn)的時(shí)刻,下面三個(gè)梯形波分別為A、B、C三相的端電壓。由圖中可以看出PWM占空比越高時(shí)系統運行越穩定。本系統經(jīng)測試在PWM占空比低至8%時(shí)還能穩定運行。
采用本方案的航模電調通過(guò)廠(chǎng)家的各項測試,性能良好,穩定可靠,且節省了成本。目前已進(jìn)入批量生產(chǎn)階段,產(chǎn)生了良好的經(jīng)濟效益。
參考文獻
[1] Jianwei Shao. Direct Back EMF Detection Method for Sensorless Brushless DC Motor Dives. Thesis submitted to the Faculty of the Virginia Polytechnic Institute and the State University in Partial fulfillment of the requirements for the degree of Master, 2003.
[2] 吳筱輝, 程小華, 劉杰. 反電動(dòng)勢法檢測轉子位置的直流無(wú)刷電機系統起動(dòng)方法. 中小型電機, 2005, 32(5)
評論