無位置傳感器控制系統(tǒng)軟件流程
發(fā)布時間:2008/10/28 0:00:00 訪問次數(shù):660
主程序中main()中,首先進(jìn)行dsp內(nèi)核時鐘、各功能模塊預(yù)定標(biāo)器、ad采樣時鐘、各類外設(shè)中斷以及pwm、gp10等各個重要參數(shù)的初始化,用以設(shè)置pwm占空比、不導(dǎo)通相選擇、d上升沿觸發(fā)器觸發(fā)信號周期。另外,還包括使用無刷直流電機(jī)模型仿真得到的開環(huán)起動時間、換相標(biāo)志、電機(jī)驅(qū)動pwm換相表數(shù)組以及不導(dǎo)通相選擇數(shù)組的初始化。設(shè)定一個關(guān)鍵的換相標(biāo)志flag,以循環(huán)更替無刷直流電機(jī)的6個換相狀態(tài),因此這個換相標(biāo)志flag會在0~5問變化。程序初始化時設(shè)定一個換相數(shù)組phase[8],以及不導(dǎo)通相端電壓選擇數(shù)組floatselect[8]。換相數(shù)組中記錄著6個不同換相狀態(tài),所對應(yīng)的6路pwm驅(qū)動信號行為寄存器actr的數(shù)值。端電壓選擇表的數(shù)值代表著6個不同換相狀態(tài)時,應(yīng)當(dāng)加載在模擬多路開關(guān)adg409上的不導(dǎo)通相端電壓選擇信號。
通過讀取電機(jī)換相表,先將電機(jī)固定在某一特定的位置上。需要注意的是,這一過程輸出pwm的占空比應(yīng)當(dāng)很小,以保證電機(jī)繞組中電流很小。通過設(shè)定好換相標(biāo)志位,讀取相應(yīng)位置的換相表,然后進(jìn)行一定時間的延時,以防止電機(jī)在固定過程中發(fā)生抖動。延時之后,使得換相標(biāo)志加1,讀取換相表數(shù)組的下一個值進(jìn)人actr寄存器,開始使電機(jī)起動,此時再進(jìn)入一個軟件循環(huán)中,以等待中斷事件的發(fā)生。利用定時器中斷進(jìn)行換相從固定相位開始啟動后,當(dāng)反電動勢是夠大時,開始準(zhǔn)各切換到閉環(huán)控制狀態(tài),在dsp程序中開啟cap中斷,準(zhǔn)各檢測第一個不導(dǎo)通相反電動勢的過零點(diǎn)以進(jìn)人cap中斷子程序。具體主函數(shù)初始化程序如附錄所示。
無位置傳感器電機(jī)控制程序中斷事件主要包括cputirnet0定時中斷以及cap捕獲中斷,通過中斷子程序的編制,可以實現(xiàn)開環(huán)起動加速、閉環(huán)切換以及轉(zhuǎn)速計算和換相等諸多系統(tǒng)功能。
cputimet0中斷的主要作用是在電機(jī)開環(huán)過程中,讀取開環(huán)起動時間表中的計數(shù)值開始計數(shù)。當(dāng)計數(shù)完成后,即是一定時間過后,進(jìn)入中斷后,更改換相標(biāo)志,讀取換相表的下一個數(shù)值,送人actr寄存器,以改變6路pwm的驅(qū)動信號。
cputimet0中斷的另一個作用是用于電機(jī)閉環(huán)過程中,在檢測到不導(dǎo)通相反電動勢過零點(diǎn)之后,延時30°電角度之后進(jìn)行換相。根據(jù)過零點(diǎn)比較信號,將當(dāng)前轉(zhuǎn)速計算出電機(jī)延時30°所需要的時間,換算成cputimet0的計數(shù)值,寫人定時寄存器,以作為延時換相的參數(shù)。當(dāng)在dsp的cap端口發(fā)現(xiàn)反電動勢過零比較信號發(fā)生跳變后,就啟動cputimet0開始計數(shù),直到再次進(jìn)人定時中斷。在定時中斷子程序中,改變換相標(biāo)志位,讀取換相表中的下一個數(shù)值,以及選通不導(dǎo)通相的端電壓。
因此,dsp中cputimer0實現(xiàn)了電機(jī)開環(huán)起動功能以及閉環(huán)之后的延時換相功能,并最終通過改變換相標(biāo)志,進(jìn)行電機(jī)的換相與不導(dǎo)通相的選擇操作。
cap中斷的重要作用是響應(yīng)過零點(diǎn)比較信號,并計算電機(jī)轉(zhuǎn)速。每次模擬檢測電路輸出的比較信號發(fā)生跳變,即不導(dǎo)通相反電動勢過零時,dsp能夠相應(yīng)地進(jìn)人cap中斷子程序。使用cap中斷的定時器捕獲功能可以得到兩次過零點(diǎn)之間的定時器計數(shù)值,而兩次過零點(diǎn)之間的時間對電機(jī)來說是運(yùn)行了60°電角度,因此可以很容易得知延時30°電角度的時間。
cputimet0定時中斷以及cap捕獲中斷子程序?qū)崿F(xiàn)如附錄所示。
另外,當(dāng)無刷直流電機(jī)在每次換相和不導(dǎo)通相端電壓切換時,由于電機(jī)相電流續(xù)流以及電子開關(guān)的作用,不導(dǎo)通相端電壓會發(fā)生振蕩,有噪聲和干擾出現(xiàn),可能會導(dǎo)致模擬檢測電路產(chǎn)生虛假的過零點(diǎn)。因此,在換相標(biāo)志每次發(fā)生改變時,可以在軟件執(zhí)行上對上述干擾采取避免措施,是無位置傳感器控制系統(tǒng)提高過零點(diǎn)檢測精度的關(guān)鍵。依據(jù)cap中斷子程序中捕獲到的電機(jī)當(dāng)前運(yùn)行60°電角度cputimer0的計數(shù)值,通過計算可以得到運(yùn)行15°電角度的計數(shù)值。每次進(jìn)行換相和切換不導(dǎo)通相之后,進(jìn)行10°電角度運(yùn)行時間的延時,通過使用cputimer0定時器以實現(xiàn)延時。
整個初始化起動過程軟件流程如圖1所示。
無位置傳感器進(jìn)人cap中斷,對不導(dǎo)通相反電動勢過零點(diǎn)進(jìn)行響應(yīng),計算當(dāng)前電機(jī)轉(zhuǎn)速,并且進(jìn)行延時換相的程序流程如圖2所示。
圖1 dsp初始化起動程序流程
圖2 cap中斷子程序流程
歡迎轉(zhuǎn)載,信息來自維庫電子市場網(wǎng)(www.dzsc.com)
主程序中main()中,首先進(jìn)行dsp內(nèi)核時鐘、各功能模塊預(yù)定標(biāo)器、ad采樣時鐘、各類外設(shè)中斷以及pwm、gp10等各個重要參數(shù)的初始化,用以設(shè)置pwm占空比、不導(dǎo)通相選擇、d上升沿觸發(fā)器觸發(fā)信號周期。另外,還包括使用無刷直流電機(jī)模型仿真得到的開環(huán)起動時間、換相標(biāo)志、電機(jī)驅(qū)動pwm換相表數(shù)組以及不導(dǎo)通相選擇數(shù)組的初始化。設(shè)定一個關(guān)鍵的換相標(biāo)志flag,以循環(huán)更替無刷直流電機(jī)的6個換相狀態(tài),因此這個換相標(biāo)志flag會在0~5問變化。程序初始化時設(shè)定一個換相數(shù)組phase[8],以及不導(dǎo)通相端電壓選擇數(shù)組floatselect[8]。換相數(shù)組中記錄著6個不同換相狀態(tài),所對應(yīng)的6路pwm驅(qū)動信號行為寄存器actr的數(shù)值。端電壓選擇表的數(shù)值代表著6個不同換相狀態(tài)時,應(yīng)當(dāng)加載在模擬多路開關(guān)adg409上的不導(dǎo)通相端電壓選擇信號。
通過讀取電機(jī)換相表,先將電機(jī)固定在某一特定的位置上。需要注意的是,這一過程輸出pwm的占空比應(yīng)當(dāng)很小,以保證電機(jī)繞組中電流很小。通過設(shè)定好換相標(biāo)志位,讀取相應(yīng)位置的換相表,然后進(jìn)行一定時間的延時,以防止電機(jī)在固定過程中發(fā)生抖動。延時之后,使得換相標(biāo)志加1,讀取換相表數(shù)組的下一個值進(jìn)人actr寄存器,開始使電機(jī)起動,此時再進(jìn)入一個軟件循環(huán)中,以等待中斷事件的發(fā)生。利用定時器中斷進(jìn)行換相從固定相位開始啟動后,當(dāng)反電動勢是夠大時,開始準(zhǔn)各切換到閉環(huán)控制狀態(tài),在dsp程序中開啟cap中斷,準(zhǔn)各檢測第一個不導(dǎo)通相反電動勢的過零點(diǎn)以進(jìn)人cap中斷子程序。具體主函數(shù)初始化程序如附錄所示。
無位置傳感器電機(jī)控制程序中斷事件主要包括cputirnet0定時中斷以及cap捕獲中斷,通過中斷子程序的編制,可以實現(xiàn)開環(huán)起動加速、閉環(huán)切換以及轉(zhuǎn)速計算和換相等諸多系統(tǒng)功能。
cputimet0中斷的主要作用是在電機(jī)開環(huán)過程中,讀取開環(huán)起動時間表中的計數(shù)值開始計數(shù)。當(dāng)計數(shù)完成后,即是一定時間過后,進(jìn)入中斷后,更改換相標(biāo)志,讀取換相表的下一個數(shù)值,送人actr寄存器,以改變6路pwm的驅(qū)動信號。
cputimet0中斷的另一個作用是用于電機(jī)閉環(huán)過程中,在檢測到不導(dǎo)通相反電動勢過零點(diǎn)之后,延時30°電角度之后進(jìn)行換相。根據(jù)過零點(diǎn)比較信號,將當(dāng)前轉(zhuǎn)速計算出電機(jī)延時30°所需要的時間,換算成cputimet0的計數(shù)值,寫人定時寄存器,以作為延時換相的參數(shù)。當(dāng)在dsp的cap端口發(fā)現(xiàn)反電動勢過零比較信號發(fā)生跳變后,就啟動cputimet0開始計數(shù),直到再次進(jìn)人定時中斷。在定時中斷子程序中,改變換相標(biāo)志位,讀取換相表中的下一個數(shù)值,以及選通不導(dǎo)通相的端電壓。
因此,dsp中cputimer0實現(xiàn)了電機(jī)開環(huán)起動功能以及閉環(huán)之后的延時換相功能,并最終通過改變換相標(biāo)志,進(jìn)行電機(jī)的換相與不導(dǎo)通相的選擇操作。
cap中斷的重要作用是響應(yīng)過零點(diǎn)比較信號,并計算電機(jī)轉(zhuǎn)速。每次模擬檢測電路輸出的比較信號發(fā)生跳變,即不導(dǎo)通相反電動勢過零時,dsp能夠相應(yīng)地進(jìn)人cap中斷子程序。使用cap中斷的定時器捕獲功能可以得到兩次過零點(diǎn)之間的定時器計數(shù)值,而兩次過零點(diǎn)之間的時間對電機(jī)來說是運(yùn)行了60°電角度,因此可以很容易得知延時30°電角度的時間。
cputimet0定時中斷以及cap捕獲中斷子程序?qū)崿F(xiàn)如附錄所示。
另外,當(dāng)無刷直流電機(jī)在每次換相和不導(dǎo)通相端電壓切換時,由于電機(jī)相電流續(xù)流以及電子開關(guān)的作用,不導(dǎo)通相端電壓會發(fā)生振蕩,有噪聲和干擾出現(xiàn),可能會導(dǎo)致模擬檢測電路產(chǎn)生虛假的過零點(diǎn)。因此,在換相標(biāo)志每次發(fā)生改變時,可以在軟件執(zhí)行上對上述干擾采取避免措施,是無位置傳感器控制系統(tǒng)提高過零點(diǎn)檢測精度的關(guān)鍵。依據(jù)cap中斷子程序中捕獲到的電機(jī)當(dāng)前運(yùn)行60°電角度cputimer0的計數(shù)值,通過計算可以得到運(yùn)行15°電角度的計數(shù)值。每次進(jìn)行換相和切換不導(dǎo)通相之后,進(jìn)行10°電角度運(yùn)行時間的延時,通過使用cputimer0定時器以實現(xiàn)延時。
整個初始化起動過程軟件流程如圖1所示。
無位置傳感器進(jìn)人cap中斷,對不導(dǎo)通相反電動勢過零點(diǎn)進(jìn)行響應(yīng),計算當(dāng)前電機(jī)轉(zhuǎn)速,并且進(jìn)行延時換相的程序流程如圖2所示。
圖1 dsp初始化起動程序流程
圖2 cap中斷子程序流程
歡迎轉(zhuǎn)載,信息來自維庫電子市場網(wǎng)(www.dzsc.com)
熱門點(diǎn)擊
- TMS320F2812 DSP系統(tǒng)與應(yīng)用
- DSP外圍電路設(shè)計
- DSP處理器的選擇
- 硬件抗干擾設(shè)計
- 無位置傳感器控制系統(tǒng)實驗結(jié)果與結(jié)論
- DSP控制系統(tǒng)設(shè)計
- DSP外圍模塊初始化
- 伺服控制系統(tǒng)DSP系統(tǒng)初始化
- DSP外圍電路
- 無位置傳感器控制系統(tǒng)軟件流程
推薦技術(shù)資料
- 業(yè)余條件下PCM2702
- PGM2702采用SSOP28封裝,引腳小而密,EP3... [詳細(xì)]
- 電源管理 IC (PMIC)&
- I2C 接口和 PmBUS 以及 OTP/M
- MOSFET 和柵極驅(qū)動器單
- 數(shù)字恒定導(dǎo)通時間控制模式(CO
- Power Management Buck/
- 反激變換器傳導(dǎo)和輻射電磁干擾分析和抑制技術(shù)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究