• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Cortex-M3的 STM32微控制器處理先進電機控制方法

    基于Cortex-M3的 STM32微控制器處理先進電機控制方法

    作者: 時間:2010-12-24 來源:網絡 收藏

    Harvard架構,這個32位RISC采用Thumb2指令集,提供16位和32位指令。對比純32位代碼,這個指令集能夠大幅提高代碼密度,同時保留原有ARM7指令集的多數優(yōu)點(附加優(yōu)化的乘加運算和硬件除法指令)。

    系統要求微器須具備卓越的實時響應性(中斷延時短)、純功能(如單周期乘法)以及優(yōu)異的性能(當非序列執(zhí)行流和條件轉移指令時)。能夠滿足所有這些要求。例如,當時鐘頻率是72MHz時,在25µs內對一個永磁完成一次無傳感器磁場定向控制,這相當于在10 kHz采樣率下25% 的CPU負荷。

    內,該內核與意法半導體優(yōu)化型閃存接口緊密配合,只需增加很少的外部元器件,周邊外設即可外部事件(圖2所示是F103中容量微的結構框圖)。不用說,PWM定時器和模數轉換器是最重要元器件。PWM定時器包括最的功能,如中央對齊模式PWM信號生成和死區(qū)時間插入邏輯,特別強調安全性:該模塊直接控制功率開關換向,可控開關功率達到數千瓦。例如,用于配置某些重要參數的寄存器代碼可以被鎖保護,以防軟件失效。只要“緊急停止”引腳被拉低,所有的 I/O引腳都被置于用戶可配置的安全狀態(tài)。這個功能設計采用組合邏輯模塊,當主時鐘(晶體)失效時,內部切換到后備振蕩器之前,可確保保護電路仍然能夠正常工作。最后,該微還包含一個第4比較通道,專門用于觸發(fā)模數轉換器,實現最佳的電流測量精度。

    未標題-1.jpg

    2F103中容量微控制器結構框圖

    即使最復雜的算法幾乎也無法修正不精確的模擬測量值,但是,在某種程度上,驅動系統的總體性能取決于模數轉換器的質量。STM32F103芯片內置三個采樣率為1MSps的12位模數轉換器,在整個溫度和電壓范圍內,總不可調整誤差 (TUE)低于5 LSB。模數轉換器的數字接口有三個主要功能:首先,使CPU擺脫簡單控制任務和數據處理;其次連接芯片的其余部件(中斷請求、DMA請求、觸發(fā)輸入);最后,使STM32的多路轉換器同步操作。在這些對無刷電機控制有用的功能中,我們首先考慮通道讀序列發(fā)生器。對比傳統的掃描電路(按照模擬輸入序號,按序轉換一定數量的通道), 在一個16個轉換通道組成的順列(例如:Ch3, Ch3, Ch0, Ch11)內,序列發(fā)生器可按任何順序轉換通道,當設計人員在設計印刷電路板時,這個功能給設計人員帶來更高的設計靈活性,為實現平均轉換目的,準許對同一通道進行多次采樣(在一個序列內),當整個序列轉換完畢后,DMA通道將轉換結果送到RAM,中斷處理程序產生一個中斷請求。

    在檢測電機相位電流的過程中,瞬變電壓在功率開關上產生的噪聲(在離線開關應用中,典型噪聲達到幾百個V/µs)是引起讀取誤差的一個重要原因,可能導致測量結果的信噪比非常低。解決方案是使模數轉換器與控制功率級的定時器同步:因為換向時刻可以預定(由3 PWM定時器的比較寄存器定義),所以可以使用一個額外比較通道在換向時刻稍前或稍后觸發(fā)模數轉換操作。這個原因,STM32啟用了第二個序列發(fā)生器(又稱注入序列發(fā)生器),該序列發(fā)生器的優(yōu)先級高于正常序列發(fā)生器,可以用一個不能延遲的新轉換操作使當前的轉換操作中斷。通常情況下,正常序列發(fā)生器負責“內部管理”轉換,連續(xù)檢測溫度或直流總線電壓(作為后臺任務),然后通過DMA通道發(fā)送到RAM,而注入序列發(fā)生器則將處理時間關鍵的轉換操作,并將轉換結果存儲在模數轉換器寄存器(將會產生一個中斷,但是不能接受延時)。



    評論


    相關推薦

    技術專區(qū)

    關閉
    主站蜘蛛池模板: 炎陵县| 鹤岗市| 汉源县| 象山县| 广水市| 芦溪县| 江华| 吉隆县| 梅河口市| 巩义市| 南城县| 额尔古纳市| 勐海县| 四川省| 常德市| 五指山市| 柳河县| 额尔古纳市| 皮山县| 翼城县| 靖远县| 涿鹿县| 宁城县| 常熟市| 临沭县| 建水县| 独山县| 抚州市| 兴国县| 衡阳县| 太原市| 台湾省| 新乡市| 平定县| 九江市| 山东| 建昌县| 杂多县| 溧阳市| 云龙县| 乐山市|