基于專用控制芯片的步進(jìn)電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)
3 軟件部分設(shè)計(jì)
在硬件電路設(shè)計(jì)制作的基礎(chǔ)上設(shè)計(jì)了控制系統(tǒng)的軟件。控制系統(tǒng)的所有源代碼均在AVR Studio 4和ICCAVR集成開(kāi)發(fā)環(huán)境中編譯和調(diào)試。為了便于系統(tǒng)擴(kuò)展,系統(tǒng)軟件設(shè)計(jì)采用模塊化設(shè)計(jì)。
步進(jìn)電機(jī)控制系統(tǒng)的主程序設(shè)計(jì)流程圖如圖7所示。本文引用地址:http://www.ex-cimer.com/article/171200.htm
在軟件設(shè)計(jì)中,由于專用控制芯片分擔(dān)了不少單片機(jī)的軟件設(shè)計(jì)工作,因此通信方面的軟件編程是設(shè)計(jì)的重點(diǎn)。設(shè)計(jì)的控制系統(tǒng)擬作為下位機(jī),下位機(jī)與上位機(jī)的通信選擇了RS485和CAN接口。RS485接口標(biāo)準(zhǔn)只對(duì)接口的電氣特性做出規(guī)定,使其具有通用性,但不涉及接插件、電纜等,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議。而這個(gè)高層通信協(xié)議的建立既可以采用已有的應(yīng)用成熟的通信協(xié)議,比如Modbus協(xié)議等,也可以由用戶自定義RS485的通信協(xié)議。本系統(tǒng)采用了Modbus通信協(xié)議。CAN總線節(jié)點(diǎn)的軟件設(shè)計(jì)主要包括3大部分:CAN節(jié)點(diǎn)初始化、報(bào)文發(fā)送和報(bào)文接收。
CAN節(jié)點(diǎn)的初始化程序的主要任務(wù)就是對(duì)總線通信控制器CAN控制器進(jìn)行合適的配置,以滿足系統(tǒng)運(yùn)行的要求。CAN控制器的初始化包括了工作方式的設(shè)置、ID標(biāo)志符寄存器的設(shè)置、接受屏蔽寄存器的設(shè)置、波特率參數(shù)的設(shè)置、消息郵箱Mob控制寄存器的設(shè)置和中斷允許寄存器的設(shè)置等。由于本文設(shè)計(jì)的步進(jìn)電機(jī)控制系統(tǒng)采用CAN2.0B規(guī)范,需要對(duì)CAN接收器進(jìn)行相應(yīng)的初始化。在完成初始化配置以后,回到工作狀態(tài)進(jìn)行正常的通訊任務(wù)。
限于篇幅,這里僅給出CAN控制器初始化的部分程序:
對(duì)于報(bào)文的發(fā)送,當(dāng)CAN總線上的一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),它以報(bào)文形式廣播給網(wǎng)絡(luò)中所有節(jié)點(diǎn)。當(dāng)發(fā)送時(shí),CAN控制芯片將數(shù)據(jù)進(jìn)行相應(yīng)的組織和傳送,此時(shí)網(wǎng)絡(luò)上其他節(jié)點(diǎn)處于接收狀態(tài)。報(bào)文的接收主要有兩種方式:中斷方式和查詢方式。在本設(shè)計(jì)中,采用的是中斷方式,即每傳來(lái)一個(gè)報(bào)文,就觸發(fā)CANSTMOB中的相應(yīng)中斷,然后將接收到的數(shù)據(jù)從CAN數(shù)據(jù)寄存器中轉(zhuǎn)移到指定的存儲(chǔ)區(qū)域內(nèi)并保存起來(lái)。
4 結(jié)束語(yǔ)
采用步進(jìn)電機(jī)專用的運(yùn)動(dòng)控制芯片TMC429和驅(qū)動(dòng)芯片TMC262設(shè)計(jì)了控制驅(qū)動(dòng)一體化的步進(jìn)電機(jī)控制系統(tǒng)。經(jīng)過(guò)自動(dòng)化生產(chǎn)線的實(shí)驗(yàn)測(cè)試表明,所設(shè)計(jì)的步進(jìn)電機(jī)控制驅(qū)動(dòng)一體化系統(tǒng)具有高細(xì)分、控制精度高和穩(wěn)定性好等特點(diǎn)。設(shè)計(jì)的步進(jìn)電機(jī)控制系統(tǒng)可降低軟件開(kāi)發(fā)的難度,減少硬件實(shí)現(xiàn)的成本,且控制方便。該控制系統(tǒng)可廣泛應(yīng)用于汽車(chē)行業(yè)和工業(yè)運(yùn)動(dòng)控制領(lǐng)域。
評(píng)論