基于PSoC3芯片的無位置傳感器BLDC電機控制
摘要
本文介紹基于新一代可編程片上系統(tǒng)芯片PSoC3(CY8C3866AXI-040)的無位置傳感器無刷電機(BLDC)控制方案 。PSoC3 片內豐富的資源減少了BLDC無傳感器控制對外部器件的依賴。借助于片內模擬多路選擇器,一個比較器模塊就能采樣三路反電勢信號。而比較器的時鐘同步功能可以在PWM高電平時刻對反電勢信號進行采樣,并將之與母線電壓做比較以獲取反電勢過零點。此外,該芯片在處理電機控制的同時還可以處理電容感應按鍵掃描以及與上位機通訊等任務。
Keyword: BLDC sensor-less control, Programmable system on chip
關鍵詞:無刷直流電機 無位置傳感器 可編程片上系統(tǒng)
引言
相比傳統(tǒng)的有刷直流電機而言,無刷直流電機(BLDC)用電控制裝置取代了電刷和換向器,提高了電機的可靠性,減小了電機的噪音,并且方便了電機的維護,正在許多領域獲得廣泛應用。無刷直流電機的換相是借助于安裝在電機定子上的位置傳感器(光學,磁性等元件)實現(xiàn)的。常用的三相六狀態(tài)120度控制方式保證在任何時刻有兩項繞組導通,另外一項繞組不導通。當轉子轉到一定位置時,位置傳感器輸出信號發(fā)生變化提示控制器進行換相?!∑鋼Q相邏輯如圖1所示:
圖1 帶霍爾傳感器的無刷直流電機換相狀態(tài)圖
然而,位置傳感器的使用帶來一些缺點:增加電機的成本和體積,增加了內部連線降低了系統(tǒng)的抗干擾性, 在特定場合(高溫,強震動,高腐蝕性)容易實效等。因而,近些年來,隨著控制芯片的性能的日益強大,無傳感器的BLDC電機控制逐漸成為研究熱點。
無傳感器的轉子位置檢測
無刷直流電機的無位置傳感器控制的關鍵技術在于轉子位置信息的獲取及估算方法。無位置傳感器檢測方法主要包括反電動勢過零點檢測法、反電動勢三次諧波積分檢測法、續(xù)流二極管檢測法、反電動勢積分法、磁鏈估計法、擴展卡爾曼濾波法等。本文所采用的位置檢測方法為經典的反電勢過零點檢測法。其原理如下:
圖2 無刷電機驅動電路拓撲
圖2為典型的三相星型連接的無刷電機驅動電路拓撲。Va, Vb,Vc為三相端電壓,Vn為中性點電壓。假定C相為非通電相,則根據(jù)電機方程有:
(1)
其中E為反電勢,I為相電流,L為電感。
A相電流與B相電流大小相等,流向相反。
基于式(8), 采樣端電壓可以推算出Ec的過零點。而種算法又有如下的細分算法:
1) 直接應用式(8),同時用ADC去采樣三相電壓。
2)在PWM 輸出信號為OFF時采樣非通電相電壓,將之與零電壓比較。
因為在此時,由式(8)得到:
忽略二極管和功率管的保護壓降,Vc的過零點就是Ec的過零點。
3)在PWM 輸出信號為OFF時采樣非通電相電壓,將之與母線電壓的一半比較。
在此時,
由式(8)得到:
所以,忽略二極管和功率管的保護壓降, Ec的過零點就是Vc與母線電壓一半比較翻轉的點。
綜合上述算法,1)的算法簡單明了,但對ADC模塊的要求較高,要求同時采多路電壓。并且需要ADC的采樣與PWM同步以消除PWM斬波所帶來的噪聲。2)的算法在低速時比較有優(yōu)勢,因為低速時反電勢信號比較弱,這種算法的采樣區(qū)域恰為非通電相端電壓過零區(qū)域,無需對端電壓信號做縮小處理。但當PWM 的占空比比較高時,由于可供采樣的時間點太短,容易造成采樣失敗,所以不太適合全速全載運行的情形。 而3)種算法則具有較寬的調速范圍。 本文的實現(xiàn)方法就是采用了第三種方法,在PWM為ON的時候去比較非通電相電壓與半母線電壓。
PSoC3 芯片介紹
PSoC 是世界獨一無二的可編程嵌入式片上系統(tǒng)。它是在一片芯片上集成了可編程模擬和數(shù)字外設功能、內存和一個微控制器。賽普拉斯的可擴展PSoC 平臺可根據(jù)設計需要進行調整,因此不必頻繁地更改設計來適應不同的微控制器體系架構。
PSoC1是第一代PSoC芯片,它的特點是借助經過成本優(yōu)化的8位M8C CPU子系統(tǒng),獲得優(yōu)異性能、可編程性和靈活性。易用的設計軟件無需編寫很多代碼或根本不需要編寫代碼,從而縮短了創(chuàng)建嵌入式解決方案的時間。
PSoC3在PSoC1的基礎上,賽普拉斯新推出地一款新架構,高集成化芯片。它增加了新設計的高精度、可編程模擬模塊,單循環(huán)、通道式8位8051內核和可配置的高性能數(shù)字系統(tǒng)。由于具有一個高性能8位8051RISC內核(提供高達67MHz和33MIPS),PSoC3體系架構可以比標準8051運行速度快10倍之多。同時,片內還配置了直接內存訪問接口(DMA),加速了數(shù)據(jù)在片內不同外設/內存之間的傳輸,減少了CPU的開銷。
CY8C3866AXI-040 是PSoC3 芯片家族中的一員,它的系統(tǒng)架構如圖5所示:
圖5 CY8C3866AXI-040的系統(tǒng)架構
圖的左邊部分為系統(tǒng)資源,包括CPU,DMA, 中斷控制器,內存,電源管理器,內置的I2C/USB等通訊模塊以及調試接口。中間部分為片上數(shù)字系統(tǒng)和模擬系統(tǒng)。數(shù)字系統(tǒng)包括24個可編程的通用數(shù)字模塊(UDB)和固化的計數(shù)器,PWM發(fā)生器等。而模擬系統(tǒng)包括ADC模塊,DAC模塊,比較器,運算放大器以及通用的可編程模擬模塊。右邊部分為IO 的端口。IO口可以通過接口連接到任意的數(shù)字/模塊單元上。
在本設計中,重點用到的模塊包括:比較器,UDB模塊,DAC模塊等。
電機反電勢過零點的監(jiān)測
利用CY8C3866AXI-040的片上資源,無刷電機的過零點監(jiān)測無需借助任何外部芯片。監(jiān)測的原理前面闡述過,即在PWM 輸出信號為OFF時采樣非通電相電壓,將之與母線電壓的一半比較。 此方案中PWM調制模式為對上側開關管進行PWM調制,對下側橋臂采取恒通的方式進行驅動。電機為24V,30W的低壓無刷電機。
圖6為檢測反電勢過零所配置的片內資源框圖:
圖6 反電勢過零點檢測框圖
A、B、C代表三相端電壓輸入。Half Vbus 為半母線電壓。 片內的模擬信號選擇器(Analog Mux)會根據(jù)換相狀態(tài)動態(tài)的切換所要采樣的非通電相。片內的比較器具有時鐘同步觸發(fā)的功能。該功能使得比較器可以在時鐘信號的上升沿采用輸入端信號并作比較操作。該設計中的時鐘信號來自于數(shù)字模塊中的PWM模塊的輸出。 這樣,比較器可以在PWM為高電平的時刻將端電壓與半母線電壓作比較。比較器的翻轉時刻即是反電勢過零點。而比較器的輸出翻轉時,可以觸發(fā)中斷,通知CPU作相應的處理。 此實現(xiàn)方法原理簡單,無需外部多路選擇器/鎖存器/比較器。
另外,片上的比較器還具有滯回比較的功能。即比較器輸出器自上而下翻轉與自上而下翻轉的電壓并不完全一致,而是有一個10mV左右的滯回電壓。此功能可以避免比較器輸出受毛刺影響而被誤觸發(fā),特別適用于夾帶許多噪音的反電勢信號過零檢測應用。 圖7就是實驗波形: 黃色波形為一相的端電壓波形,綠色部分為比較器輸出的方波波形。
圖7 反電勢過零點檢測實驗波形
圖8為反電勢監(jiān)測部分的在PSoC Creator IDE中的原理圖設計。PSoC Creator 是賽普拉斯半導體為PSoC3 芯片打造的開發(fā)環(huán)境。 PSoC Creator 提供了原理圖開發(fā)界面,用戶可以將片上的模塊以原理圖的方式進行互聯(lián)。
圖8 Creator中反電勢過零點檢測的原理圖設計
BLDC的換相狀態(tài)機
在圖1中,三相六狀態(tài)的無刷直流電機的換相過程通常由查表或者狀態(tài)機來實現(xiàn)。在通常的MCU平臺中,這部分的工作由軟件來完成。而在CY8C3866AXI-040片內,換相邏輯切換是由硬件來來完成的。 這都歸功于其內部數(shù)字系統(tǒng)中的UDB模塊。
UDB模塊的架構如圖9所示:
圖9 UDB模塊的內部架構
一個UDB模塊由2個小型的12C4 的PLD模塊,一個時鐘和狀態(tài)控制單元,一個微型數(shù)據(jù)處理器(Datapath)組成。UDB模塊可以動態(tài)配置成為計數(shù)器,SPI,UART, 查找表,PWM發(fā)生器等數(shù)字器件。而UDB模塊相互之間可以互聯(lián)成為更為復雜的數(shù)字系統(tǒng)。CY8C3866AXI-040片上有24個UDB模塊。
圖10為無刷電機換相狀態(tài)的片內實現(xiàn):
圖10 Creator中換相狀態(tài)控制的原理圖設計
PWM_1 為UDB模塊配置而成的8 位PWM發(fā)生器。Sector_1 為控制寄存器,控制字包含了無刷電機六個狀態(tài)信息。LUT_1 為一個4*6的狀態(tài)表。它的輸入端為控制字和PWM輸出,輸出端為6路驅動信號。狀態(tài)表中的配置如圖11所示:
圖11 LUT中換相真值表的配置
此表實現(xiàn)的功能就是根據(jù)控制字(即電機位置扇區(qū)信息),將PWM調制信號按調制模式分配到6個驅動管腳上上。 這個功能減少了CPU的開銷。特別地,如改變電機的PWM調制模式,舉個例子,將單管PWM模式改為雙管PWM模式,那么只要改變這個狀態(tài)表的配置就可以了。
對電機速度的計算,也可以通過由UDB配置的計數(shù)器來實現(xiàn)。計數(shù)器的捕獲輸入信號即來自于Sector_1控制寄存器的控制字。每當電機換相循環(huán)完成一次,即電機旋轉一個電氣周期,計數(shù)器的值就置入緩沖區(qū)而當前值被重值。
過流保護
電機的過流保護可以保護電路板及電機免于大電流造成的發(fā)熱和損壞。過流保護的功能要求快速、準確、靈活。CY8C3866AXI-040片內的模擬模塊可以很好的實現(xiàn)這個功能。圖12為PSoC Creator中過流保護電流的設計:
圖12 Creator中過流保護電路的原理圖設計
CurrIn為采樣電阻上采樣的電流信號,PGA_OC為增益可調的放大器,它將流過采樣電阻上的電流信號進行放大。 VDAC8_OC 為8位的數(shù)模轉換信號,它將用戶設置的最大電流閾值轉換為模擬電壓信號。Comp_OC為比較器。比較器的輸出連到PWM模塊的Kill端。這樣,如果實際電流大于所設定的閾值時,比較器信號發(fā)生翻轉,PWM輸出即被關斷,實現(xiàn)了硬件保護功能。
PWM被關斷的模式也可以靈活的配置:
圖13 PWM模塊中Kill信號的模式配置
? Disabled: Kill信號不起作用
? Asynchronous : 當Kill信號有效時,保持關斷
? Single Cycle: Kill信號只在當前PWM周期有效
? Latched: Kill信號一經觸發(fā),即使Kill信號恢復,模塊也一直保持關斷
? Min-Time: Kill信號有效后,用戶可以設置模塊被關斷的時間周期
速度閉環(huán)調節(jié)
速度閉環(huán)設計可以保證電機速度在負載,電壓等發(fā)生變化時,保持速度穩(wěn)定。最經典的控制方法為PID控制,其公式如下:
其中 為速度誤差, 為積分系數(shù), 為比例系數(shù)。
這種為絕對式PID控制,每次計算都把往次的結果累加起來,這增加了CPU的負擔。 而相對式PID則是一種改進的方法:
這種方法只計算輸出量的增量,對于積分環(huán)節(jié),也只計算本次的誤差,無需累加計算。這種算法時候與基于微控制器的數(shù)字控制系統(tǒng)。
用戶界面
本設計提供了多樣的用戶界面,以方面對電機控制參數(shù)的修改,并了解電機的狀態(tài)信息。
一種用戶界面是基于LCD面板和電容觸摸按鍵的,LCD面板為顯示接口,電容觸摸按鍵則是用戶輸入接口。電容觸摸按鍵是利用電容感應技術,通過檢測手指與按鈕之間的電容來實現(xiàn)按鍵和旋鈕功能。如圖14所示,BT1和BT2是兩個電容觸摸按鍵,另外還有一個滑條可以動態(tài)改變參數(shù):
圖14 電容感應滑條和按鍵
此用戶界面的狀態(tài)機如下:
圖15 用戶界面的狀態(tài)機
電機的旋轉方向、最大電流、PID參數(shù)都可以借助上述用戶界面來設置。CY8C3866AXI-040 片內的Capsense模塊以及LCD模塊能很方便的完成按鍵掃描已經數(shù)據(jù)顯示。
另外,本設計還允許用戶通過UART接口由GUI來實現(xiàn)對電機的監(jiān)控,這里就不做贅述。
結語
基于PSoC3(CY8C3866AXI-040)的無位置傳感器BLDC電機控制利用片內豐富的資源減少了BLDC無傳感器控制對外部器件的依賴。片內模擬多路選擇器和比較器可以實現(xiàn)在PWM高電平時刻對反電勢信號進行采樣。換相狀態(tài)機和過流保護功能完全可由片內硬件模塊完成。此外,該芯片在處理電機控制的同時還具備強大的用戶界面接口功能。
評論