張 婧,樊艷艷,李 勇
(1.中國核電工程有限公司,北京 100840;2.中核控制系統工程有限公司,北京 102401)
步進電機因為其結構簡單、控制方式容易、定位精度高等優點,在各控制領域中廣泛應用。隨著生產自動化要求的不斷提高,步進電機的控制需求與日俱增,驅動方式也已經非常成熟,在舞臺燈光的控制系統中,對于步進電機的遠程控制也成為一種趨勢。本文主要研究的是基于STM32F103VCT6 單片機和TMC5160 電機驅動芯片,應用于舞臺燈光等控制系統中,是可通過DMX512 通信協議遠程控制的低成本,高可靠性的步進電機控制系統。
本文中的步進電機控制系統的主控制芯片選用STM32系列的STM32F103VCT6 單片機,電機驅動芯片選用Trinamic 公司2018 年新推出的TMC5160。
STM32F103 系列單片機是意法半導體公司(ST)推出的基于ARM Cortex-M3 內核的32 位處理器芯片,是一款高性價比、速度快、效率高、外設功能豐富的單片機。

圖1 步進電機控制系統圖Fig.1 Stepper motor control system diagram
TMC5160 是Trinamic 公司于2018 年推出的帶有串行通信接口的新型單軸步進電機驅動芯片,具有完整的運動控制功能,配合可外擴N 通道MOSFET,每個線圈的電機電流可高達20A,最大電壓60VDC,實現了電機電壓和電流規格的最大化。其將步進電機驅動器和專用運動控制器集成在一塊芯片上,將數字信息轉換為平滑、精確、可靠的物理運動。
本步進電機控制系統中,當有脈沖輸入步進電機驅動芯片,驅動芯片通過MOS 管輸出的信號驅動步進電機轉動。主要通過控制步進電機接收到的脈沖數來控制其轉動的步數;通過控制步進電機接收的脈沖頻率來實現其轉動速度和加速度的變化。步進電機接收的脈沖頻率越高其轉動速度越快,步進電機接收的頻率越低其轉動的速度越慢[1]。STM32 單片機只需給電機控制芯片TMC5160 輸入方向和脈沖信號,即可達到對步進電機的控制。
本步進電機控制系統,通過DMX512 通信協議,接收遠程控制系統發送的運動控制命令,主控制器判斷接收到的信息,確定PWM 波的方向和頻率,通過調節輸出PWM波的方法來對步進電機的運動進行控制[2]。DMX512 的數據傳輸,采用RS485 收發器,其采用差分的接收方式,信號可以遠距離傳輸,抗干擾能力強。
系統構成如圖1 所示。
如圖1 所示,步進電機控制電路主要由電源輸入轉換模塊、RS485 轉換模塊、STM32F103 控制模塊、電機驅動芯片模塊以及MOSFET H 橋式電路組成。其中,SP3485主要負責DMX512 協議的接收[3],通過撥碼開關設置DMX512 的通道編碼,STM32F103 主要負責DMX512 協議的解析,確定電機運動的方向和速度,由此產生相應頻率的PWM 波。

圖2 TMC5160外圍電路Fig.2 TMC5160 Peripheral circuit
STM32F103 控制模塊由基于單片機STM32F103VCT6的最小系統構成,步進電機的驅動電路主要由步進電機驅動芯片TMC5160 及其外圍電路和MOSFST 橋式電路組成。本電路使用較少的外部器件,如圖2 所示。
本系統采用TMC5160 芯片的SPI/DIR 模式,此模式無需配置TMC5160 的寄存器,將TMC5160 的21 腳接VCC,22 腳接地,即使SD_MODE=1,SPI_MODE=0,可以通過撥碼開關進行配置;在SPI/DIR 模式下TMC5160 的17 腳為PWM 波的輸入端,18 腳為方向脈沖高低電平的輸入端。
在此模式下,驅動芯片TMC5160 的細分配置可以通過配置CFG0 和CFG1 實現,其中MRES 為實際微步分辨率[4]。
運行電流可以通過配置CFG2、CFG3 和CFG4 實現,IRUN 為電機運行時的標定值,一般在16 ~31 范圍內[4]。
CFG5 和CFG6 分別對應TMC5160 的斬波模式選擇和保持電流配置,本系統通過撥碼開關的設置,可以自由地進行細分、運行電流等配置。
MOSFET 的選擇要考慮很多因素,包括封裝尺寸、額定電壓、導通電阻等。根據所需的電流、電壓,選擇擁有快速恢復特性和低反向恢復電荷的AO4842 MOS 管組成H橋,可驅動兩相四線步進電機。AO4842 為貼片型SOP8 封裝,允許更緊湊的PCB 布線,同時降低寄生電感效應;R3、R4、R5、R6、R13、R14、R15、R16 為MOSFET 柵極電阻RG,當使用相對較小的MOSFET 時,軟斜率控制需要串聯較高的柵極電阻RG,這關系到能否安全地關斷MOSFET,要添加額外的二極管,以確保MOSFET 在緩慢切換斜率下的安全關斷。

表1 驅動芯片細分配置Table 1 Driver chip breakdown configuration

表2 驅動芯片運行電流配置Table 2 Drive chip running current configuration

圖3 MOSFET橋式電路Fig.3 MOSFET Bridge circuit

表3 采樣電阻的選擇對應最大的電機電流(GLOBALSCALER=255)Table 3 Selection of the sampling resistor corresponds to the maximum motor current (GLOBALSCALER = 255)
TMC5160 有幾種設置電機電流的方法:電流標定器CS、采樣電阻等。本系統通過采樣電阻(R7、R8、R9、R10)設置電機線圈的電流,電阻與電機電流對應的關系見表3[4]。
由于電機的電流全部流過采樣電阻,所以選擇采樣電阻要仔細考慮,可選擇薄膜電阻或碳晶實心電阻,以抑制電壓尖峰引起的振鈴;在設計PCB 時,要注意將采樣電阻和所有濾波電容盡可能地靠近MOS 管放置,并且地線采用大面積鋪銅的方式,以降低電阻、電感,增大散熱面積。
軟件通過C 語言實現,在Keil uVision5 軟件,設計了初始化模塊、定時器中斷模塊、DMD512 通訊和協議解析模塊、電機控制模塊。
步進電機在啟動階段頻率過高或者頻率降低過快,會使電機出現震蕩或者丟步的現象,所以步進電機在啟動時要有頻率逐漸增加的過程,停止時也要有緩慢降低頻率的過程。一般步進電機的運動過程為3 個階段:加速、勻速、減速。步進電機的控制算法常用的有梯形算法、“S”型函數法、SPTA 算法等。
本控制系統控制電機的運動,采用梯形加速的方式實現。以電機運動一定的距離為例,即電機接收定量脈沖,在此過程中電機先由低速啟動,按照一定的加速度加速,然后勻速運動,快到目標位置的時候,按一定的加速度減速,最終到目標位置停止。

圖4 梯形加減速波形圖Fig.4 Trapezoidal acceleration / deceleration waveform
梯形加減速的過程如圖4 所示。在加速階段和減速階段將時間分成很多等分,先通過DMX512 得到梯形加速的斜率設置,即通過確定加減速的時間AddTimer,繼而確定加減速的級數Ladder_Num,然后得到初始頻率StartFreq 和目標頻率TargetFreq 的差值,這個差值除以加減速的級數,就得到了每次頻率增加或減少的數值。
Ladder_Num=AddTimer/10;//加減速級數
j=(TargetFreq-StartFreq)/LadderNum;
可以由此得到加減速各個階梯的頻率LadderFreq,進而確定對應的定時器的預分頻的值LadderPSC。
for(i=0;i { LadderFreq[i]=i*j+StartFreq;//加減速各階梯頻率 LadderPSC[i]=(6000000/LadderFreq[i])-1; //加減速各階梯頻率對應定時器預分頻值 } 本系統通過調節單片機定時器的方式調整PWM 波,得到輸出頻率,使用的定時器3,根據調整定時器預分頻的值的方式,來調整PWM 波的輸出頻率。在使用定時器之前要注意以下設置: TIM_TimeBaseStructure.TIM_Prescaler =TIM3_PSC; //設置用來作為TIM3 時鐘頻率除數的預分頻值 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //設置TIM 向上計數模式 單片機STM32F103VCT6 通過串口定時器中斷服務解析DMX512 協議,部分串口程序如下: 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 單片機和TMC5160 的步進電機控制系統,主要介紹了系統的硬件電機控制電路,通過梯形加減速,實現了步進電機的平穩控制,降低了步進電機的控制成本,可廣泛應用于舞臺、噴泉等控制系統。3.3 DMX512通訊和協議解析模塊
4 結束語