步進(jìn)電機是一種將電脈沖信號轉(zhuǎn)化為角位移或線位移的電磁機械裝置。步進(jìn)電機的穩(wěn)定性和可靠性直接影響到工業(yè)控制領(lǐng)域的精度,特別是在點膠點焊等高精度運動控制系統(tǒng)中,對于步進(jìn)電機的精度和穩(wěn)定性要求更高。所以說,對于步進(jìn)電機控制系統(tǒng)的研究,不論是在實際效益還是理論價值方面意義都將是巨大的。近年來不少專家學(xué)者研制出性能不錯的步進(jìn)電機控制系統(tǒng),然而這些控制系統(tǒng)具有微處理器需處理的任務(wù)量大、PCB板元器件較多、系統(tǒng)不夠穩(wěn)定等缺點,這給系統(tǒng)的可靠性帶來了較大的隱患。隨著電子技術(shù)的發(fā)展,步進(jìn)電機的很多功能單元如加減速控制、微步控制等都走向模塊化,并且具有體積小、重量輕、工作穩(wěn)定、能夠?qū)崿F(xiàn)多軸控制等優(yōu)點,這給步進(jìn)電機控制系統(tǒng)的設(shè)計和開發(fā)帶來了很大的方便。
基于以上的考慮,文中利用微控制器AT90CAN128、步進(jìn)電機運動控制芯片TMC429和步進(jìn)電機驅(qū)動芯片TMC262設(shè)計了一種控制驅(qū)動一體化的3軸步進(jìn)電機控制系統(tǒng)。通信方面設(shè)計了RS485接口,用于上位機與控制驅(qū)動板之間的通信,增加了CAN接口,為后續(xù)多軸聯(lián)動、生產(chǎn)線網(wǎng)絡(luò)化作功能擴展。
1 系統(tǒng)的總體設(shè)計
設(shè)計的步進(jìn)電機控制系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
在該系統(tǒng)中設(shè)計完成的控制兼驅(qū)動集成板可作為下位機,PC、PLC和DSP等可作為上位機,上、下位機通過RS485或CAN總線等通訊接口進(jìn)行通訊。上位機主要負(fù)責(zé)發(fā)送驅(qū)動裝置(步進(jìn)電機)的運動控制指令(如位移、速度、加速度等),下位機(微控制器)負(fù)責(zé)接收指令并對指令進(jìn)行處理以輸出步進(jìn)電機運動所需要的脈沖信號和方向信號。
2 硬件部分設(shè)計
本系統(tǒng)中微控制器采用AT90CAN128,專用控制芯片采用了TRINAMIC公司生產(chǎn)的TMC429和TMC262。系統(tǒng)拋棄了傳統(tǒng)的“CPU+外置CAN協(xié)議轉(zhuǎn)換器”的方案,選擇內(nèi)置CAN模塊的AT90CAN128主要考慮到系統(tǒng)的穩(wěn)定性、減少電路板元器件的數(shù)量、提高系統(tǒng)的集成度和靈活性。TMC429提供了所有與數(shù)字運動控制有關(guān)的功能,包括位置控制、速度控制及微步控制等步進(jìn)電機常用的控制功能。這些功能如果讓微處理器來完成,則需占用大量的系統(tǒng)資源,所以它的使用可將微處理器解放出來,以把資源用在接口的擴展和對步進(jìn)電機的更高層次的控制上。此外,在TMC262與電機之間還需配置H橋,系統(tǒng)中選用的是互補型MOSFET器件FDD8424H芯片。由于一片步進(jìn)電機驅(qū)動芯片TMC262只能驅(qū)動一路步進(jìn)電機,且需要與4片F(xiàn)DD8424H芯片使用,故系統(tǒng)中共使用了3片TMC262芯片及12片F(xiàn)DD8424H芯片。
2.1 核心控制芯片簡介
2.1.1 AT90CAN128單片機簡介
AT90CAN128為基于AVR RISC結(jié)構(gòu)的8位低功耗CMOS微處理器。由于其先進(jìn)的指令集以及單周期指令執(zhí)行時間,該單片機的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而緩解了系統(tǒng)在功率和處理速度之間的矛盾。該單片機大部分引腳與MEGA128兼容,內(nèi)部結(jié)構(gòu)在繼承MEGA128的資源基礎(chǔ)上進(jìn)行了改進(jìn),但其最大的特色還在于具有了符合CAN2.0A和CAN2.0B標(biāo)準(zhǔn)的全功能CAN外設(shè)模塊。AT90CAN128采用Mob(消息對象)方式進(jìn)行數(shù)據(jù)的發(fā)送和接受,共有15個Mob,它們具有相同的屬性。
2.1.2 TMC262步進(jìn)電機驅(qū)動芯片簡介
TMC262是一款具有高細(xì)分率的兩相步進(jìn)電機驅(qū)動芯片,適用于雙極性步進(jìn)電機的驅(qū)動。該芯片同時帶有專利技術(shù)stallguard功能和專利技術(shù)coolstep功能,前者可以實現(xiàn)無需傳感器精確測試電機負(fù)載,后者可以根據(jù)電機的負(fù)載自動調(diào)節(jié)驅(qū)動芯片輸出的電流,避免因為超載而丟步,減少電機的發(fā)熱量,和其他驅(qū)動芯片相比可節(jié)省75%的能量。使用該芯片可通過兩種方式控制電機:S/D(Step/Direction)模式和SPI模式。芯片內(nèi)置的微步表提供了與電機電流匹配的正弦值和余弦值。TMC262的低功率、高效率、體積小的設(shè)計理念使其成為嵌入式運動控制甚至電池供電設(shè)備的完美選擇,內(nèi)部集成的DAC功能可實現(xiàn)對電流的微步控制。在使用芯片之前,需通過SPI接口對TMC262進(jìn)行相關(guān)的配置。
2.1.3 TMC429步進(jìn)電機控制芯片簡介
TMC429是TRINAMIC公司開發(fā)的小尺寸、高性價比的二相步進(jìn)電機控制芯片,可以控制多達(dá)3軸步進(jìn)電機。與TMC428不同,該芯片的CPU時鐘頻率可高達(dá)32 MHz。一旦初始化,TMC429能按照設(shè)定的目標(biāo)位置和目標(biāo)速度自動運行各種實時關(guān)鍵任務(wù),且目標(biāo)位置和速度可隨時更改。它可以減少外圍電路,減少電機控制軟件設(shè)計的工作量,降低開發(fā)成本,縮短研發(fā)時間。和TMC262一樣,在使用芯片之前,也需通過SPI接口對TMC429進(jìn)行相關(guān)的配置。
TMC429有4種工作模式,可單獨為每個步進(jìn)電機編程。其中位置控制有RAMP模式和SOFT模式,速度控制有VELOCITY模式和HOLD模式。對于位置應(yīng)用,RAMP模式比較合適,而對于持續(xù)的速度應(yīng)用,VELOCITY模式比較合適。在RAMP模式,用戶只要設(shè)置位置參數(shù),TMC429計算出一個矩形速度曲線然后驅(qū)動電機自主地運行至目標(biāo)位置,而且在運動期間,位置可以被任意改變。SOFT模式與RAMP模式比較類似,只是在速度減少時,速度以指數(shù)曲線下降。在VELOCITY模式,目標(biāo)速度被設(shè)置,運行時TMC429會考慮用戶定義的速度和加速度的極限。在HOLD模式,用戶設(shè)置目標(biāo)速度,但是TMC429忽略速度和加速度的任何限制,去實現(xiàn)完全由用戶設(shè)定的任意速度曲線。此外,TMC429提供了中斷機制,用戶可根據(jù)具體應(yīng)用要求進(jìn)行設(shè)置。
微處理器通過發(fā)送和接收固定長度的數(shù)據(jù)包對TMC429的寄存器和片內(nèi)RAM進(jìn)行讀寫操作。利用TMC429自帶的二個獨立的SPI口,可分別與微處理器和帶有SPI接口的步進(jìn)電機驅(qū)動芯片相連以構(gòu)成完整的系統(tǒng)。每次微控制器發(fā)送數(shù)據(jù)包給TMC429的同時,微控制器也接受到來自TMC429的數(shù)據(jù)包。
微控制器與TMC429之間的通信數(shù)據(jù)包如圖2和圖3所示。
備注:
RRS:寄存器/RAM選擇位(RRS=0:寄存器/RRS=1:RAM)
RW:讀寫選擇位(RW=1:讀/RW=0:寫)
備注:
INT:中斷控制狀態(tài)輸出信號
CDGW(cover dategram waiting):(無握手信號時為0)
RS1、RS2和RS3:限位開關(guān)的設(shè)置(未激活時為0)
xEQt1、xEQt2和xEQt3:指示相應(yīng)的步進(jìn)電機是否到達(dá)目標(biāo)位置
2.2 專用控制芯片間的硬件連接
專用控制芯片TMC262和TMC429的連接簡圖如圖4所示。
為TMC429-L1(QFN32封裝)與TMC262的連接簡圖,TMC429與TMC262的通信方式有SPI模式和step/dir模式,本系統(tǒng)選用后者。CSN_0用于片選TMC429的SPI微控制接口,CSN_1、CSN_2和CSN_3分別用于片選3個TMC262以完成對TMC262的配置。
2.3 CAN總線通訊接口電路設(shè)計
系統(tǒng)CAN總線的硬件電路如圖5所示。
CAN接口電路主要由3部分組成:單片機AT90CAN128、高速光耦合器6N137和高速CAN總線收發(fā)器。其中AT90CAN128主要負(fù)責(zé)內(nèi)部CAN控制器的初始化、實現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù);6N137起到控制器與工業(yè)現(xiàn)場相隔離的目的,可以提高系統(tǒng)的抗干擾能力;TJA1050是控制器區(qū)域網(wǎng)絡(luò)(CAN)協(xié)議控制器和物理總線之間的接口,可以為CAN控制器提供差動接收性能。
2.4 RS485總線通訊接口電路設(shè)計
系統(tǒng)RS485總線的硬件電路如圖6所示。
由于RS-485與TTL電平不兼容,因此兩者之間需要有電平轉(zhuǎn)換。目前完成此功能的芯片比較多,本系統(tǒng)中采用MAXIM公司生產(chǎn)的MAX485。該芯片內(nèi)有接收器與發(fā)送驅(qū)動器,控制簡單,適用于半雙工通訊。為了提高通訊接口的抗干擾能力,在MAX485與單片機輸出端之間接入光電耦合器;同時在A端和B端之間增加了匹配電阻,以吸收總線上的反射信號,保證正常傳輸信號時無毛刺。
3 軟件部分設(shè)計
在硬件電路設(shè)計制作的基礎(chǔ)上設(shè)計了控制系統(tǒng)的軟件。控制系統(tǒng)的所有源代碼均在AVR Studio 4和ICCAVR集成開發(fā)環(huán)境中編譯和調(diào)試。為了便于系統(tǒng)擴展,系統(tǒng)軟件設(shè)計采用模塊化設(shè)計。
步進(jìn)電機控制系統(tǒng)的主程序設(shè)計流程圖如圖7所示。
在軟件設(shè)計中,由于專用控制芯片分擔(dān)了不少單片機的軟件設(shè)計工作,因此通信方面的軟件編程是設(shè)計的重點。設(shè)計的控制系統(tǒng)擬作為下位機,下位機與上位機的通信選擇了RS485和CAN接口。RS485接口標(biāo)準(zhǔn)只對接口的電氣特性做出規(guī)定,使其具有通用性,但不涉及接插件、電纜等,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議。而這個高層通信協(xié)議的建立既可以采用已有的應(yīng)用成熟的通信協(xié)議,比如Modbus協(xié)議等,也可以由用戶自定義RS485的通信協(xié)議。本系統(tǒng)采用了Modbus通信協(xié)議。CAN總線節(jié)點的軟件設(shè)計主要包括3大部分:CAN節(jié)點初始化、報文發(fā)送和報文接收。
CAN節(jié)點的初始化程序的主要任務(wù)就是對總線通信控制器CAN控制器進(jìn)行合適的配置,以滿足系統(tǒng)運行的要求。CAN控制器的初始化包括了工作方式的設(shè)置、ID標(biāo)志符寄存器的設(shè)置、接受屏蔽寄存器的設(shè)置、波特率參數(shù)的設(shè)置、消息郵箱Mob控制寄存器的設(shè)置和中斷允許寄存器的設(shè)置等。由于本文設(shè)計的步進(jìn)電機控制系統(tǒng)采用CAN2.0B規(guī)范,需要對CAN接收器進(jìn)行相應(yīng)的初始化。在完成初始化配置以后,回到工作狀態(tài)進(jìn)行正常的通訊任務(wù)。
限于篇幅,這里僅給出CAN控制器初始化的部分程序:
對于報文的發(fā)送,當(dāng)CAN總線上的一個節(jié)點發(fā)送數(shù)據(jù)時,它以報文形式廣播給網(wǎng)絡(luò)中所有節(jié)點。當(dāng)發(fā)送時,CAN控制芯片將數(shù)據(jù)進(jìn)行相應(yīng)的組織和傳送,此時網(wǎng)絡(luò)上其他節(jié)點處于接收狀態(tài)。報文的接收主要有兩種方式:中斷方式和查詢方式。在本設(shè)計中,采用的是中斷方式,即每傳來一個報文,就觸發(fā)CANSTMOB中的相應(yīng)中斷,然后將接收到的數(shù)據(jù)從CAN數(shù)據(jù)寄存器中轉(zhuǎn)移到指定的存儲區(qū)域內(nèi)并保存起來。
4 結(jié)束語
采用步進(jìn)電機專用的運動控制芯片TMC429和驅(qū)動芯片TMC262設(shè)計了控制驅(qū)動一體化的步進(jìn)電機控制系統(tǒng)。經(jīng)過自動化生產(chǎn)線的實驗測試表明,所設(shè)計的步進(jìn)電機控制驅(qū)動一體化系統(tǒng)具有高細(xì)分、控制精度高和穩(wěn)定性好等特點。設(shè)計的步進(jìn)電機控制系統(tǒng)可降低軟件開發(fā)的難度,減少硬件實現(xiàn)的成本,且控制方便。該控制系統(tǒng)可廣泛應(yīng)用于汽車行業(yè)和工業(yè)運動控制領(lǐng)域。