張 婧,樊艷艷,李 勇
(1.中國(guó)核電工程有限公司,北京 100840;2.中核控制系統(tǒng)工程有限公司,北京 102401)
步進(jìn)電機(jī)因?yàn)槠浣Y(jié)構(gòu)簡(jiǎn)單、控制方式容易、定位精度高等優(yōu)點(diǎn),在各控制領(lǐng)域中廣泛應(yīng)用。隨著生產(chǎn)自動(dòng)化要求的不斷提高,步進(jìn)電機(jī)的控制需求與日俱增,驅(qū)動(dòng)方式也已經(jīng)非常成熟,在舞臺(tái)燈光的控制系統(tǒng)中,對(duì)于步進(jìn)電機(jī)的遠(yuǎn)程控制也成為一種趨勢(shì)。本文主要研究的是基于STM32F103VCT6 單片機(jī)和TMC5160 電機(jī)驅(qū)動(dòng)芯片,應(yīng)用于舞臺(tái)燈光等控制系統(tǒng)中,是可通過DMX512 通信協(xié)議遠(yuǎn)程控制的低成本,高可靠性的步進(jìn)電機(jī)控制系統(tǒng)。
本文中的步進(jìn)電機(jī)控制系統(tǒng)的主控制芯片選用STM32系列的STM32F103VCT6 單片機(jī),電機(jī)驅(qū)動(dòng)芯片選用Trinamic 公司2018 年新推出的TMC5160。
STM32F103 系列單片機(jī)是意法半導(dǎo)體公司(ST)推出的基于ARM Cortex-M3 內(nèi)核的32 位處理器芯片,是一款高性價(jià)比、速度快、效率高、外設(shè)功能豐富的單片機(jī)。
圖1 步進(jìn)電機(jī)控制系統(tǒng)圖Fig.1 Stepper motor control system diagram
TMC5160 是Trinamic 公司于2018 年推出的帶有串行通信接口的新型單軸步進(jìn)電機(jī)驅(qū)動(dòng)芯片,具有完整的運(yùn)動(dòng)控制功能,配合可外擴(kuò)N 通道MOSFET,每個(gè)線圈的電機(jī)電流可高達(dá)20A,最大電壓60VDC,實(shí)現(xiàn)了電機(jī)電壓和電流規(guī)格的最大化。其將步進(jìn)電機(jī)驅(qū)動(dòng)器和專用運(yùn)動(dòng)控制器集成在一塊芯片上,將數(shù)字信息轉(zhuǎn)換為平滑、精確、可靠的物理運(yùn)動(dòng)。
本步進(jìn)電機(jī)控制系統(tǒng)中,當(dāng)有脈沖輸入步進(jìn)電機(jī)驅(qū)動(dòng)芯片,驅(qū)動(dòng)芯片通過MOS 管輸出的信號(hào)驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。主要通過控制步進(jìn)電機(jī)接收到的脈沖數(shù)來控制其轉(zhuǎn)動(dòng)的步數(shù);通過控制步進(jìn)電機(jī)接收的脈沖頻率來實(shí)現(xiàn)其轉(zhuǎn)動(dòng)速度和加速度的變化。步進(jìn)電機(jī)接收的脈沖頻率越高其轉(zhuǎn)動(dòng)速度越快,步進(jìn)電機(jī)接收的頻率越低其轉(zhuǎn)動(dòng)的速度越慢[1]。STM32 單片機(jī)只需給電機(jī)控制芯片TMC5160 輸入方向和脈沖信號(hào),即可達(dá)到對(duì)步進(jìn)電機(jī)的控制。
本步進(jìn)電機(jī)控制系統(tǒng),通過DMX512 通信協(xié)議,接收遠(yuǎn)程控制系統(tǒng)發(fā)送的運(yùn)動(dòng)控制命令,主控制器判斷接收到的信息,確定PWM 波的方向和頻率,通過調(diào)節(jié)輸出PWM波的方法來對(duì)步進(jìn)電機(jī)的運(yùn)動(dòng)進(jìn)行控制[2]。DMX512 的數(shù)據(jù)傳輸,采用RS485 收發(fā)器,其采用差分的接收方式,信號(hào)可以遠(yuǎn)距離傳輸,抗干擾能力強(qiáng)。
系統(tǒng)構(gòu)成如圖1 所示。
如圖1 所示,步進(jìn)電機(jī)控制電路主要由電源輸入轉(zhuǎn)換模塊、RS485 轉(zhuǎn)換模塊、STM32F103 控制模塊、電機(jī)驅(qū)動(dòng)芯片模塊以及MOSFET H 橋式電路組成。其中,SP3485主要負(fù)責(zé)DMX512 協(xié)議的接收[3],通過撥碼開關(guān)設(shè)置DMX512 的通道編碼,STM32F103 主要負(fù)責(zé)DMX512 協(xié)議的解析,確定電機(jī)運(yùn)動(dòng)的方向和速度,由此產(chǎn)生相應(yīng)頻率的PWM 波。
圖2 TMC5160外圍電路Fig.2 TMC5160 Peripheral circuit
STM32F103 控制模塊由基于單片機(jī)STM32F103VCT6的最小系統(tǒng)構(gòu)成,步進(jìn)電機(jī)的驅(qū)動(dòng)電路主要由步進(jìn)電機(jī)驅(qū)動(dòng)芯片TMC5160 及其外圍電路和MOSFST 橋式電路組成。本電路使用較少的外部器件,如圖2 所示。
本系統(tǒng)采用TMC5160 芯片的SPI/DIR 模式,此模式無(wú)需配置TMC5160 的寄存器,將TMC5160 的21 腳接VCC,22 腳接地,即使SD_MODE=1,SPI_MODE=0,可以通過撥碼開關(guān)進(jìn)行配置;在SPI/DIR 模式下TMC5160 的17 腳為PWM 波的輸入端,18 腳為方向脈沖高低電平的輸入端。
在此模式下,驅(qū)動(dòng)芯片TMC5160 的細(xì)分配置可以通過配置CFG0 和CFG1 實(shí)現(xiàn),其中MRES 為實(shí)際微步分辨率[4]。
運(yùn)行電流可以通過配置CFG2、CFG3 和CFG4 實(shí)現(xiàn),IRUN 為電機(jī)運(yùn)行時(shí)的標(biāo)定值,一般在16 ~31 范圍內(nèi)[4]。
CFG5 和CFG6 分別對(duì)應(yīng)TMC5160 的斬波模式選擇和保持電流配置,本系統(tǒng)通過撥碼開關(guān)的設(shè)置,可以自由地進(jìn)行細(xì)分、運(yùn)行電流等配置。
MOSFET 的選擇要考慮很多因素,包括封裝尺寸、額定電壓、導(dǎo)通電阻等。根據(jù)所需的電流、電壓,選擇擁有快速恢復(fù)特性和低反向恢復(fù)電荷的AO4842 MOS 管組成H橋,可驅(qū)動(dòng)兩相四線步進(jìn)電機(jī)。AO4842 為貼片型SOP8 封裝,允許更緊湊的PCB 布線,同時(shí)降低寄生電感效應(yīng);R3、R4、R5、R6、R13、R14、R15、R16 為MOSFET 柵極電阻RG,當(dāng)使用相對(duì)較小的MOSFET 時(shí),軟斜率控制需要串聯(lián)較高的柵極電阻RG,這關(guān)系到能否安全地關(guān)斷MOSFET,要添加額外的二極管,以確保MOSFET 在緩慢切換斜率下的安全關(guān)斷。
表1 驅(qū)動(dòng)芯片細(xì)分配置Table 1 Driver chip breakdown configuration
表2 驅(qū)動(dòng)芯片運(yùn)行電流配置Table 2 Drive chip running current configuration
圖3 MOSFET橋式電路Fig.3 MOSFET Bridge circuit
表3 采樣電阻的選擇對(duì)應(yīng)最大的電機(jī)電流(GLOBALSCALER=255)Table 3 Selection of the sampling resistor corresponds to the maximum motor current (GLOBALSCALER = 255)
TMC5160 有幾種設(shè)置電機(jī)電流的方法:電流標(biāo)定器CS、采樣電阻等。本系統(tǒng)通過采樣電阻(R7、R8、R9、R10)設(shè)置電機(jī)線圈的電流,電阻與電機(jī)電流對(duì)應(yīng)的關(guān)系見表3[4]。
由于電機(jī)的電流全部流過采樣電阻,所以選擇采樣電阻要仔細(xì)考慮,可選擇薄膜電阻或碳晶實(shí)心電阻,以抑制電壓尖峰引起的振鈴;在設(shè)計(jì)PCB 時(shí),要注意將采樣電阻和所有濾波電容盡可能地靠近MOS 管放置,并且地線采用大面積鋪銅的方式,以降低電阻、電感,增大散熱面積。
軟件通過C 語(yǔ)言實(shí)現(xiàn),在Keil uVision5 軟件,設(shè)計(jì)了初始化模塊、定時(shí)器中斷模塊、DMD512 通訊和協(xié)議解析模塊、電機(jī)控制模塊。
步進(jìn)電機(jī)在啟動(dòng)階段頻率過高或者頻率降低過快,會(huì)使電機(jī)出現(xiàn)震蕩或者丟步的現(xiàn)象,所以步進(jìn)電機(jī)在啟動(dòng)時(shí)要有頻率逐漸增加的過程,停止時(shí)也要有緩慢降低頻率的過程。一般步進(jìn)電機(jī)的運(yùn)動(dòng)過程為3 個(gè)階段:加速、勻速、減速。步進(jìn)電機(jī)的控制算法常用的有梯形算法、“S”型函數(shù)法、SPTA 算法等。
本控制系統(tǒng)控制電機(jī)的運(yùn)動(dòng),采用梯形加速的方式實(shí)現(xiàn)。以電機(jī)運(yùn)動(dòng)一定的距離為例,即電機(jī)接收定量脈沖,在此過程中電機(jī)先由低速啟動(dòng),按照一定的加速度加速,然后勻速運(yùn)動(dòng),快到目標(biāo)位置的時(shí)候,按一定的加速度減速,最終到目標(biāo)位置停止。
圖4 梯形加減速波形圖Fig.4 Trapezoidal acceleration / deceleration waveform
梯形加減速的過程如圖4 所示。在加速階段和減速階段將時(shí)間分成很多等分,先通過DMX512 得到梯形加速的斜率設(shè)置,即通過確定加減速的時(shí)間AddTimer,繼而確定加減速的級(jí)數(shù)Ladder_Num,然后得到初始頻率StartFreq 和目標(biāo)頻率TargetFreq 的差值,這個(gè)差值除以加減速的級(jí)數(shù),就得到了每次頻率增加或減少的數(shù)值。
Ladder_Num=AddTimer/10;//加減速級(jí)數(shù)
j=(TargetFreq-StartFreq)/LadderNum;
可以由此得到加減速各個(gè)階梯的頻率LadderFreq,進(jìn)而確定對(duì)應(yīng)的定時(shí)器的預(yù)分頻的值LadderPSC。
for(i=0;i { LadderFreq[i]=i*j+StartFreq;//加減速各階梯頻率 LadderPSC[i]=(6000000/LadderFreq[i])-1; //加減速各階梯頻率對(duì)應(yīng)定時(shí)器預(yù)分頻值 } 本系統(tǒng)通過調(diào)節(jié)單片機(jī)定時(shí)器的方式調(diào)整PWM 波,得到輸出頻率,使用的定時(shí)器3,根據(jù)調(diào)整定時(shí)器預(yù)分頻的值的方式,來調(diào)整PWM 波的輸出頻率。在使用定時(shí)器之前要注意以下設(shè)置: TIM_TimeBaseStructure.TIM_Prescaler =TIM3_PSC; //設(shè)置用來作為TIM3 時(shí)鐘頻率除數(shù)的預(yù)分頻值 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //設(shè)置TIM 向上計(jì)數(shù)模式 單片機(jī)STM32F103VCT6 通過串口定時(shí)器中斷服務(wù)解析DMX512 協(xié)議,部分串口程序如下: void UART4_IRQHandler(void) { static u16 i=0; static u16 UART_REG=0; static u16 CODE_Data=0; static u8 RXB8=0; if(USART_GetFlagStatus(UART4, USART_FLAG_RXNE)!= RESET) { UART_REG = USART_ReceiveData(UART4); RXB8 = (u8)((UDR>>8)&0x01); if(RXB8) { DMXSignalFlag = YES; RXD_Data[i]=(u8)(UART_REG); //DMX512 寄存器 if(++i>=512) i=0; } else { CODE_Data = UART_REG; if(CODE_Data==0) { i=0; CODE_Data=0x1ff; } } } if(USART_GetITStatus(UART4, USART_IT_TXE) !=RESET) { USART_ITConfig(UART4, USART_IT_TXE,DISABLE);//清中斷 } } 本文主要介紹了一款基于STM32F103VCT6 單片機(jī)和TMC5160 的步進(jìn)電機(jī)控制系統(tǒng),主要介紹了系統(tǒng)的硬件電機(jī)控制電路,通過梯形加減速,實(shí)現(xiàn)了步進(jìn)電機(jī)的平穩(wěn)控制,降低了步進(jìn)電機(jī)的控制成本,可廣泛應(yīng)用于舞臺(tái)、噴泉等控制系統(tǒng)。3.3 DMX512通訊和協(xié)議解析模塊
4 結(jié)束語(yǔ)