基于PIC16F873單片機的步進(jìn)電機控制系統
2.4 硬件電路抗干擾設計
2.4.1 PCB的抗干擾設計
(1)當集成電路在工作狀態(tài)翻轉時(shí),其工作電流的變化很大。集成電路電源線(xiàn)的電感會(huì )阻止電流的瞬態(tài)變化,從而影響集成電路的響應速度。與此同時(shí)集成電路芯片的瞬態(tài)變化電流流過(guò)環(huán)路面積較大電源線(xiàn)路時(shí),將會(huì )產(chǎn)生較為強烈的對外輻射噪聲。由于各集成電路很可能會(huì )流經(jīng)相同的線(xiàn)路,在此線(xiàn)路上存在較大的公共阻抗,從而產(chǎn)生較嚴重的阻抗耦合干擾。除電源系統輸出端采用電解電容與高頻瓷片電容并聯(lián)去耦外,還應包括MCU與數字集成電路去耦、電源走線(xiàn)末端去耦等措施。具體做法如下:電源輸入端接10~100μF的電解電容。在集成電路的電源輸入端和接地端之間接0.01μF陶瓷電容。在 VCC與電源地之間安放一個(gè)O.1μF的瓷片去耦電容。
(2)合理布線(xiàn)是提高單片機系統抗干擾的最主要措施。電源系統在PCB上的走線(xiàn)較長(cháng),當電磁噪聲感應到電源系統,將可能導致系統內諸如觸發(fā)器、反向器等電路的狀態(tài)改變,從而使系統產(chǎn)生誤動(dòng)作。另一方面,電源系統上產(chǎn)生的快變大電流,也可能產(chǎn)生電磁能量的發(fā)送。設計時(shí)可按下列原則布線(xiàn):電源線(xiàn)盡可能與地線(xiàn)平行,以減小供電環(huán)路面積,減小電源噪聲的產(chǎn)生。對大電流的走線(xiàn),盡可能將它們的寬度加粗,使傳輸壓降減到最低。將不同電路功能區域的地分開(kāi)走線(xiàn),最后匯到主接觸地點(diǎn)。數字地與模擬地應分開(kāi)布線(xiàn)、單點(diǎn)連接。
2.4.2 電機驅動(dòng)電路的抗干擾設計
為了防止電機產(chǎn)生的噪聲引起干擾,將單片機定時(shí)控制電路和電機控制電路分成2塊電路板,這樣有利于抗干擾,并提高電控板的可靠性。電機驅動(dòng)信號由 PIC16F873智能運算后加至電機驅動(dòng)器,通過(guò)電平轉換芯片輸出。MCU的幾個(gè)輸出端口加接的光電耦合電路“耦合”兩邊的“地”分割開(kāi)來(lái)。電機的電源引線(xiàn)不要和其他引線(xiàn)捆扎在一起,避免繞過(guò)或覆蓋電控板上的元器件而產(chǎn)生對復位信號的干擾,引起單片機死機。
3 軟件設計
3.1 加減速優(yōu)化設計
3.1.1 指數型加減速優(yōu)化控制方法
步進(jìn)電機運行時(shí)一定滿(mǎn)足動(dòng)力學(xué)方程:
式中:θ為步距角;J為轉動(dòng)慣量;Tl為負載轉矩;Tm為輸出轉矩;f為頻率。
每個(gè)頻率下的最大輸出力矩可以由電機矩頻特性曲線(xiàn)得到,但是一般的矩頻特性曲線(xiàn)是整體呈下降趨勢的非線(xiàn)性曲線(xiàn),不便于計算;所以在一定的頻率范圍內,采用直線(xiàn)來(lái)近似擬合它的特性,得到電機的輸出轉矩與頻率的關(guān)系:
這種近似的關(guān)系要根據電機自身的矩頻特性曲線(xiàn)和一定頻率范圍內曲線(xiàn)的特性來(lái)確定。Tm0為電機的最大轉矩,α為擬和直線(xiàn)的斜率。對于不同的電機和在不同的頻率范圍內,也可用二次函數或其他的函數近似表示它們之間的關(guān)系。利用直線(xiàn)擬合矩頻特性,通過(guò)牛頓跌代法和Matlab中的m-file編程,可計算得到加減速運行時(shí)每步所走的速度臺階,即步進(jìn)電機的指數型加減速運行曲線(xiàn)。
3.1.2 提出新優(yōu)化方法
由上面的理論方法得到的理論加減速曲線(xiàn),對于負載比較大的系統,所需的加減速臺階數過(guò)多,過(guò)程復雜,消耗了大量的系統資源,同時(shí)步進(jìn)電機也出現了明顯的失步情況,其原因在于每個(gè)速度只運行一步,還沒(méi)有完全穩定就運行到更高的速度,從而造成了系統的不穩定。通過(guò)在實(shí)際工作中的經(jīng)驗,提出了一種升降速曲線(xiàn)的優(yōu)化方法:電機的加減速趨勢采用理論計算得到的指數加減速曲線(xiàn)趨勢;上升和下降的臺階數分別取相應的理論優(yōu)化曲線(xiàn)的一半,然后每個(gè)上升臺階走5步,每個(gè)下降臺階走3步,這樣就可以保證電機正常運行,而且有較快的速度,同時(shí)減少了運行的臺階數,使曲線(xiàn)更簡(jiǎn)單;同時(shí)即使負載有少量的變化,電機也可以正常運行,使系統的魯棒性更好。
3.2 軟件中的抗干擾設計
3.2.1 “看門(mén)狗”程序
采用“看門(mén)狗”程序,防止單片機系統因干擾而產(chǎn)生持續異常甚至導致元器件和外圍部件的損壞?!翱撮T(mén)狗”必須在開(kāi)機復位后,初始化前被激活,并且必須設置在主程序中,盡量避免放在中斷程序或子程序中。
3.2.2 標志檢測程序
單片機系統受干擾而導致出錯后,若無(wú)法自動(dòng)恢復,通常是由于RAM區數據被破壞的緣故。因此,可以利用數據RAM單元,設置檢驗標志,應用程序定期檢查各標志位,若標志正確,相應功能程序繼續運行;否則,進(jìn)入初始化程序。
3.2.3 未使用存儲器與中斷地址的處理程序
若程序計數器出錯而跳轉到MCU的未用程序存儲器空間,程序將按照其中的指令代碼運行,會(huì )產(chǎn)生異常。處理辦法有2種:填寫(xiě)軟件中斷指令,程序計數器落人該區域時(shí),產(chǎn)生軟件中斷,將程序導入預定的程序入口地址;填寫(xiě)空操作指令,并最終跳轉到初始化程序。
3.3 模塊化結構設計
軟件部分采用模塊化結構設計。對步進(jìn)電機轉速的控制是通過(guò)定時(shí)器工作在中斷方式實(shí)現的。定時(shí)器定時(shí)中斷產(chǎn)生周期性脈沖序列,不是采用軟件延時(shí)的方式,這樣不占用MCU的時(shí)間。MCU在非中斷時(shí)間內可以處理其他事件,只有在中斷發(fā)生時(shí)才驅動(dòng)步進(jìn)電機轉動(dòng)一步。根據步進(jìn)電機勵磁狀態(tài)轉換,采用查表法求出所需的輸出狀態(tài),并以二進(jìn)制碼的形式依次存人單片機內部的存儲器中,然后按照正向或反向順序依次取出地址的狀態(tài)字,送給PIC16F873的RA1,RA2,RA3,RA4,輸出各勵磁狀態(tài),經(jīng)放大電路驅動(dòng)步進(jìn)電機,從而實(shí)現環(huán)形分配器的功能。程序總體框架包括3部分:主程序、過(guò)流檢測中斷服務(wù)子程序、定時(shí)器中斷服務(wù)子程序、以及其他子程序(包括正轉、反轉子程序、鍵盤(pán)顯示控制子程序、A/D轉換子程序等),由于篇幅限制,在此不再贅述。
4 結 語(yǔ)
在電機控制系統開(kāi)發(fā)過(guò)程中,如果恰當地選取單片機的型號及各個(gè)電路模塊,則一定能夠簡(jiǎn)化設計過(guò)程,起到事半功倍的效果。該步進(jìn)電機控制系統采用PIC1 6F873單片機,工作方式、轉動(dòng)速率及轉矩數可以通過(guò)鍵盤(pán)輸入,也可通過(guò)普通旋鈕以及上位機調節。鍵盤(pán)與LED控制部分采用具有SPI接口的 ZLG7289實(shí)現,簡(jiǎn)化了硬件電路。采用硬件、軟件抗干擾技術(shù)措施和一種升降速曲線(xiàn)的優(yōu)化方法,解決了步進(jìn)電機在升降速過(guò)程中,脈沖頻率的變化不合理,使系統無(wú)法做到精確定位的問(wèn)題。系統工作可靠,具有通用性,適當改變輸出口各位控制端,便可控制不同相數的步進(jìn)電機。
評論