基于Cortex-M3的 STM32微控制器處理先進電機控制方法
基于Harvard架構(gòu),這個32位RISC采用Thumb2指令集,提供16位和32位指令。對比純32位代碼,這個指令集能夠大幅提高代碼密度,同時保留原有ARM7指令集的多數(shù)優(yōu)點(附加優(yōu)化的乘加運算和硬件除法指令)。
電機控制系統(tǒng)要求微控制器須具備卓越的實時響應性(中斷延時短)、純處理功能(如單周期乘法)以及優(yōu)異的控制性能(當處理非序列執(zhí)行流和條件轉(zhuǎn)移指令時)。Cortex-M3能夠滿足所有這些要求。例如,當時鐘頻率是72MHz時,在25µs內(nèi)對一個永磁電機完成一次無傳感器磁場定向控制,這相當于在10 kHz采樣率下25% 的CPU負荷。
在STM32微控制器內(nèi),該內(nèi)核與意法半導體優(yōu)化型閃存接口緊密配合,只需增加很少的外部元器件,周邊外設即可處理外部事件(圖2所示是STM32F103中容量微控制器的結(jié)構(gòu)框圖)。不用說,PWM定時器和模數(shù)轉(zhuǎn)換器是最重要元器件。PWM定時器包括最先進的功能,如中央對齊模式PWM信號生成和死區(qū)時間插入邏輯,特別強調(diào)安全性:該模塊直接控制功率開關換向,可控開關功率達到數(shù)千瓦。例如,用于配置某些重要參數(shù)的寄存器代碼可以被鎖保護,以防軟件失效。只要“緊急停止”引腳被拉低,所有的 I/O引腳都被置于用戶可配置的安全狀態(tài)。這個功能設計采用組合邏輯模塊,當主時鐘(晶體)失效時,內(nèi)部切換到后備振蕩器之前,可確保保護電路仍然能夠正常工作。最后,該微控制器還包含一個第4比較通道,專門用于觸發(fā)模數(shù)轉(zhuǎn)換器,實現(xiàn)最佳的電流測量精度。
圖 2:STM32F103中容量微控制器結(jié)構(gòu)框圖
即使最復雜的算法幾乎也無法修正不精確的模擬測量值,但是,在某種程度上,電機驅(qū)動系統(tǒng)的總體性能取決于模數(shù)轉(zhuǎn)換器的質(zhì)量。STM32F103芯片內(nèi)置三個采樣率為1MSps的12位模數(shù)轉(zhuǎn)換器,在整個溫度和電壓范圍內(nèi),總不可調(diào)整誤差 (TUE)低于5 LSB。模數(shù)轉(zhuǎn)換器的數(shù)字接口有三個主要功能:首先,使CPU擺脫簡單控制任務和數(shù)據(jù)處理;其次連接芯片的其余部件(中斷請求、DMA請求、觸發(fā)輸入);最后,使STM32的多路轉(zhuǎn)換器同步操作。在這些對無刷電機控制有用的功能中,我們首先考慮通道讀序列發(fā)生器。對比傳統(tǒng)的掃描電路(按照模擬輸入序號,按序轉(zhuǎn)換一定數(shù)量的通道), 在一個16個轉(zhuǎn)換通道組成的順列(例如:Ch3, Ch3, Ch0, Ch11)內(nèi),序列發(fā)生器可按任何順序轉(zhuǎn)換通道,當設計人員在設計印刷電路板時,這個功能給設計人員帶來更高的設計靈活性,為實現(xiàn)平均轉(zhuǎn)換目的,準許對同一通道進行多次采樣(在一個序列內(nèi)),當整個序列轉(zhuǎn)換完畢后,DMA通道將轉(zhuǎn)換結(jié)果送到RAM,中斷處理程序產(chǎn)生一個中斷請求。
在檢測電機相位電流的過程中,瞬變電壓在功率開關上產(chǎn)生的噪聲(在離線開關應用中,典型噪聲達到幾百個V/µs)是引起讀取誤差的一個重要原因,可能導致測量結(jié)果的信噪比非常低。解決方案是使模數(shù)轉(zhuǎn)換器與控制功率級的定時器同步:因為換向時刻可以預定(由3 PWM定時器的比較寄存器定義),所以可以使用一個額外比較通道在換向時刻稍前或稍后觸發(fā)模數(shù)轉(zhuǎn)換操作。基于這個原因,STM32啟用了第二個序列發(fā)生器(又稱注入序列發(fā)生器),該序列發(fā)生器的優(yōu)先級高于正常序列發(fā)生器,可以用一個不能延遲的新轉(zhuǎn)換操作使當前的轉(zhuǎn)換操作中斷。通常情況下,正常序列發(fā)生器負責“內(nèi)部管理”轉(zhuǎn)換,連續(xù)檢測溫度或直流總線電壓(作為后臺任務),然后通過DMA通道發(fā)送到RAM,而注入序列發(fā)生器則將處理時間關鍵的轉(zhuǎn)換操作,并將轉(zhuǎn)換結(jié)果存儲在模數(shù)轉(zhuǎn)換器寄存器(將會產(chǎn)生一個中斷,但是不能接受延時)。
評論