方 力,張建華,劉漢忠
(南京工程學(xué)院自動化學(xué)院,南京 211167)
步進電機具有結(jié)構(gòu)簡單、誤差不累積、易于控制、可靠性較高等特點,被廣泛應(yīng)用于工業(yè)控制中[1]。在舞臺燈光控制系統(tǒng)中,一個電腦燈里往往有幾個甚至幾十個步進電機,所有步進電機的控制就靠一個MCU控制,在電腦燈狹小的空間里除了有大功率的燈管燈頭外,還有步進電機、各種機械設(shè)備、電子元件、控制芯片等等,電腦燈長時間運行后內(nèi)部溫度會很高,影響系統(tǒng)的可靠運行,因此可靠性是電腦燈產(chǎn)品質(zhì)量好壞的一個重要因素。一般電腦燈控制系統(tǒng)中都帶有電子閉燈功能來防止由燈內(nèi)溫度過高而損壞芯片,如果主控MCU損壞系統(tǒng)則癱瘓,針對這種情況在設(shè)計中增加了一種基于CAN的冗余技術(shù)來進一步提高系統(tǒng)的可靠性,從而提高產(chǎn)品的質(zhì)量和競爭力。CAN總線是控制器局域網(wǎng)[2],是一種支持分布式實時控制系統(tǒng)的串行通信局域網(wǎng),其信號傳輸采用短幀結(jié)構(gòu),因而傳輸時間短,受干擾的概率低,具有實時性強、性能好、可靠性高等優(yōu)點[3],被廣泛應(yīng)用于工業(yè)數(shù)據(jù)通信中。本文以雙PIC單片機為核心實現(xiàn)基于CAN總線的雙通道冗余多步進電機控制系統(tǒng)。
基于CAN總線的雙通道冗余步進電機控制系統(tǒng)的總體設(shè)計框圖如圖1所示,它主要由雙芯片控制單元,CAN通信單元,邏輯控制單元,驅(qū)動保護單元及其輸出單元等組成。系統(tǒng)包含兩個PIC微控制器,互為熱備份,兩個PIC芯片通過CAN總線進行各種信息交換。兩個芯片分別通過邏輯控制單元與各自通道相連,這兩個通道與外部驅(qū)動控制總線是相連的,共享一個外部接口,通道邏輯控制單元使同一時刻只有一個通道打開輸出控制參數(shù)控制步進電機,保證系統(tǒng)工作的穩(wěn)定性。每個PIC芯片實時存儲系統(tǒng)的各種信息,并通過CAN總線在雙機間進行交換。
圖1 總體設(shè)計結(jié)構(gòu)框圖
多步進電機控制系統(tǒng)以具有高性價比的單片機PIC16F877[4]為主控單元,以 ST公司 L6219專用功率驅(qū)動保護芯片為驅(qū)動單元,配合TI公司7226 AD轉(zhuǎn)換芯片實現(xiàn)步進電機兩相繞組電流控制,控制信號通過74HC377鎖存器輸出控制多路步進電機,接口電路如圖2所示。
圖2 單片機接口電路
驅(qū)動保護電路采用專用集成芯片L6219,L6219內(nèi)部電路實現(xiàn)PWM恒流斬波控制[5],具有良好的穩(wěn)定性能,L6219與7226 AD轉(zhuǎn)換芯片配合對步進電機相繞組電流方向、大小的控制,使得步進電機兩相繞組上得到相位相差90度的兩個近似正弦電流波形,從而實現(xiàn)多路步進電機恒流斬波細分控制。單片機接收電流反饋信號對步進電機進行斬波控制,反饋電流通過采樣電阻采樣,采樣電阻同時還起電流保護的作用,防止繞組線圈電流過大而損壞電機。驅(qū)動保護接口電路如圖3所示。
圖3 功率驅(qū)動保護接口電路
雙PIC芯片之間通過CAN總線通信,CAN總線通信控制器采用PHILIPS公司的SJA1000,以實現(xiàn)CAN協(xié)議所規(guī)定物理層和數(shù)據(jù)鏈路層所有功能,具有完成高性能通信協(xié)議所要求的全部特性[6]。采用PCA82C250作為CAN總線收發(fā)驅(qū)動芯片,實現(xiàn)CAN總線協(xié)議差分發(fā)送和差分接受[7]。PCA82C250采用斜率控制方式,串接15~200kΩ電阻后接地,控制上升和下降斜率,從而減少射頻干擾。雙絞線作為傳輸介質(zhì)分別接至CANH、CANL引腳,總線網(wǎng)絡(luò)終端處接120Ω的匹配電阻以吸收反射信號[8]。考慮到現(xiàn)場有各種各樣的干擾,在SJA1000與PCA82C250之間增加6N137高速光耦隔離器件[9]。接口電路如圖4所示。
圖4 CAN總線接口電路
切換器電路實現(xiàn)主要由4部分組成:D觸發(fā)器、RC電路、與門和74HC245芯片。電路如圖5所示。
圖5 通道切換接口電路
圖中RC為延時電路,74HC74為雙D觸發(fā)器,當系統(tǒng)上電后RC電路充電在開始階段,RC電路輸出端為低電平,使與門輸出低電平,D觸發(fā)器置位緩沖器74HC245使能端,控制74HC245切斷單片機與數(shù)據(jù)通道的聯(lián)系,從而在硬件上保證剛上電單片機處于斷開通道的從機狀態(tài)。隨著RC充電時間延長,RC電路輸出端電壓逐漸升高,最終使輸出端邏輯電平由低變?yōu)楦?,與門受控與對方單片機輸出信號,從而使D觸發(fā)器受控于對方單片機,使主從切換能夠?qū)崿F(xiàn)。當從機判斷到主機故障,需要主從切換時,要確保對方單片機在被切除后要與通道斷開,因此,從機在切換到主機之前,先向RB2引腳上送一低電平,使與對方單片機連接的D觸發(fā)器置位,關(guān)閉其三態(tài)緩沖器74HC245,切斷其與通道的聯(lián)系,然后再向RB1引腳發(fā)送一個脈沖信號,使自己連接的D觸發(fā)器翻轉(zhuǎn),輸出低電平,打開74HC245取得對通道的控制權(quán),由從機切換到主機。
單片機上電初始化時,并不明確自身為主機或從機,在上電初始化完成以后,各個單片機會在CAN總線上廣播固定特征的詢問幀,目的是判斷當前是否有主機在運行,若應(yīng)答超時,則認為當前無主機在運行,自行置為主機,打開74HC245取得對通道的控制權(quán)。若當前已有主機正在運行,則主機收到詢問幀后發(fā)送應(yīng)答幀進行應(yīng)答,同時也獲知CAN總線上有其他單片機在運行。單片機上電初始化時后上電的單片機自行設(shè)置為從機,若2機同時上電,2機可能會同時發(fā)送詢問幀,由CAN總線仲裁協(xié)議仲裁,使其中某個單片機獲得CAN總線使用權(quán),成功送成詢問幀。為避免兩個單片機同時竟爭主機,沒有取得CAN總線使用權(quán)的一方在收到對方的詢問幀后不立即重發(fā)詢問幀,而是采取指數(shù)退避方法,延時一段時間,使對方應(yīng)答超時從而自行設(shè)置為主機后,再向已變?yōu)橹鳈C的對方重發(fā)詢問幀,讓主機獲知從機存在,以及時登記備份數(shù)據(jù)。主程序流程圖如圖6所示。
圖6 主程序流程圖
初始化和主從設(shè)置完成之后,主機和從機之間就需要不斷交換狀態(tài)數(shù)據(jù),使從機備份主機設(shè)置參數(shù)、同步存儲被控對象的工作狀態(tài)以及實時參數(shù)。主機將自己的參數(shù)、被控對象當前參數(shù)以及其他需備份數(shù)據(jù)定時向從機發(fā)送。若從機在設(shè)定的時間間隔內(nèi)未收到主機的數(shù)據(jù)或者收到主機報告出錯的信息,則認為主機出現(xiàn)故障,立即自行置為主機,取得通道的控制和使用權(quán),并根據(jù)最后備份主機的所有數(shù)據(jù)對被控對象繼續(xù)實施控制,并啟動故障指示燈閃爍信號對故障節(jié)點報警。從機也要在規(guī)定的時間間隔內(nèi)向主機報告自身的狀態(tài),主機在規(guī)定的時間間隔內(nèi)未收到從機發(fā)送的狀態(tài)數(shù)據(jù),則認為從機故障,啟動故障指示燈閃爍信號對故障節(jié)點報警。通道控制權(quán)切換算法如圖7所示。
圖7 通道切換算法流程圖
實驗系統(tǒng)設(shè)計了雙MCU的雙通道冗余步進電機控制,雙MCU之間通過CAN總線通信,完成數(shù)據(jù)交換,系統(tǒng)實物如圖8所示,主要包括核心控制單元、功率驅(qū)動和保護單元、鍵盤顯示接口單元及電源幾個部分。雙MCU采用PIC16F877單片機,采用2片7226和4片專用集成功率驅(qū)動芯片L6219驅(qū)動4路步進電機,步進電機采用兩相混合式步進電機,額定電流為1A,固有步進角1.8度。系統(tǒng)采用恒流斬波細分控制技術(shù)和電流反饋對步進電機進行微步細分控制。繞組電流反饋通過采樣電阻實現(xiàn)電流采樣,同時起電流保護作用。
圖8 控制系統(tǒng)實物圖
實驗無需測量轉(zhuǎn)速曲線,細分控制效果取決于兩相繞組上的電流波形,只需測量采樣電阻上的相電流波形,圖9為電機在空載時,系統(tǒng)在雙通道切換時兩相繞組電流變化曲線,為兩個正弦波且相位相差90度的波形圖。從電機繞組實驗電流波形來看,符合使得步進電機運行平滑、合成磁場均勻需要的相位相差90度正弦波形,能夠使步進電機運行時得到均勻細分旋轉(zhuǎn)步距。雙通道切換過程中兩相繞組電流變化波形正常,電機運行平穩(wěn)。
圖9 通道切換兩相繞組電流波形
由于步進電機的控制是采用細分控制方式,一個單片機要控制多個步進電機,采用分時控制算法,按細分電流表先輸出第一個步進電機的一個細分歩距角細分電流,接下來輸出下一個步進電機的一個細分電流,由于單片機的工作方式是一個大循環(huán),在無中斷情況下,大循環(huán)中所有任務(wù)安順序執(zhí)行下來,一個步進電機的細分電流的輸出到下一個步進電機細分電流的輸出之間的延時時間包括所有任務(wù)的執(zhí)行延時時間和延時函數(shù)執(zhí)行時間,與無通道切換任務(wù)時相比,有通道切換任務(wù)時會增加很短延時時間,可以通過有無通道切換標志位來判斷,是否在執(zhí)行的任務(wù)中增加了通道切換的任務(wù),如果有則減少延時函數(shù)中循環(huán)執(zhí)行NOP語句的時間,以補償通道切換引起的延遲,因此盡管有通道切換過程,但對于多步進電機的細分控制方式來說,步進電機的運行不受影響。但由于增加了雙機通信備份任務(wù),輸出到每一個步進電機的相鄰兩個細分電流之間最小延時時間增加,因而控制中對步進電機的最高轉(zhuǎn)速會有所影響。
本研究設(shè)計的雙通道冗余方法已經(jīng)在舞臺燈光控制系統(tǒng)的電腦燈中得到應(yīng)用。該設(shè)計硬件與算法易于實現(xiàn),當系統(tǒng)主控芯片出現(xiàn)問題時可通過運行過程中主控芯片相互通信的數(shù)據(jù)及狀態(tài)自行完成通道切換,從而保證系統(tǒng)保持可靠運行,系統(tǒng)經(jīng)過一批有冗余系統(tǒng)的電腦燈和無冗余系統(tǒng)的電腦燈長期運行比較來看,基于CAN雙通道冗余多步進電機機控制系統(tǒng)運行的可靠性有較大的提高。
[1]康惠林.一種實用兩相混合式步進電機細分驅(qū)動電路[J].電氣傳動,2011,41(5):60 -63,66.
[2]鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1996.
[3]李亞,楊亮,任鵬,等.步進電機短位移高響應(yīng)加減速控制方法研究[J].組合機床與自動化加工技術(shù),2010(8):30-32.
[4]王有緒.PIC系列單片機接口技術(shù)及應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,2000.
[5]方力,李宏勝.步進電機高精度細分控制系統(tǒng)設(shè)計[J].微電機,2011,44(8):102 -105,112.
[6]丁學(xué)文,張琦.CAN總線在變頻調(diào)速系統(tǒng)中的應(yīng)用[J].電氣傳動,2002(6):41 -42,46.
[7]Philps Semiconductors.PCA82C250CAN Transceiver for 24V Systems[DB/OL].2000.
[8]黃崇莉.基于CAN總線的步進電動機控制器設(shè)計[J].微特電機,2008(11):44-45.
[9]何宇,吳瑞明,陳繼芳,等.基于CAN總線的多軸運動控制系統(tǒng)研究[J].組合機床與自動化加工技術(shù),2004(2):47-48.
[10]韓雪晶,郭嘉.雙冗余CAN網(wǎng)絡(luò)勵磁功率單元的研制[J].電氣傳動,2012,42(3):44-47.