李軍科, 戴 明, 吳建軍
(1.江蘇省無線傳感系統應用工程技術開發中心,江蘇 無錫214153,2. 無錫商業職業技術學院 電子系,江蘇 無錫214153)
在工業自動化控制中,經常會有關于單軸運動控制的問題.目前解決此類問題的方案一般有用工控機、單片機或專用的單軸控制器做控制單元。工控機與專用單軸控制器成本較高。
單片機速度較慢,無法實現復雜算法控制[1-2]。數字信號控制器DSC 則集成傳統數字信號處理器DSP和控制器的優點,目前已成為運動控制領域的核心控制單元,其突出特點就是系統軟件化,在硬件不做任何改動情況下,通過改變軟件就可以實現各種不同的控制功能[3]。
基于省大學生機械創新大賽實踐,在相關專業教師與學生創新團隊的共同參與下,共同完成了DSC 平臺(TMS320F2806)的單軸運動控制教學平臺設計。上位機、驅動器、控制器、運動單元模塊化設計使得單軸控制器平臺在課程教學與工業應用之間得到很好的平衡。有助于創新性人才培養和校企合作項目的開發。
驅動系統主控制芯片選擇TMS320F2806 處理器,這是一顆基于TMS320C2xx 內核的定點DSP,是集成度較高、性能較強的運動控制系列器件。F2806 相比F2812 提供了增強型外設模塊ePWM、eCAP 和SCI[3]。內核與I/O 電壓為1.8 V 與3.3 V,分別由+5 V 經ASM117-1.8、AMS1117-3.3 提供。系統外部輸入+24 V 直流電源由LM2574 組成的BUCK 開關電路變換為+5 V 電壓提供TB6560 及相關隔離芯片。外部20 MHz 無源時鐘頻率經內部鎖相環倍頻后可達100 MHz。片內32 kB 的Flash 提供用戶存儲指令與數據。EPWM1/2/3 定義為TB6560 步進電機驅動芯片的脈沖、方向與使能信號。ECAP 則用來對限位傳感器信號捕獲。SCI 口采用RS232 串行通訊協議與上位機MSCOMM 控件接口。光藕隔離與邏輯變換電路主要完成F2806、TB6560 及其他器件之間電平轉換[5-6]。

圖1 基于F2806 與TB6560 芯片的單軸運動控制教學平臺
TB6560 是東芝公司推出的低功耗、高集成兩相混合式步進電機驅動芯片,內部集成雙全橋MOSFET 驅動;最高耐壓40 V,單相輸出最大電流3.5 A(峰值)。基于恒流斬波驅動原理,采用正弦波作為細分驅動的電流波形,具有整步、1/2、1/8、1/16 細分方式,能改善步進電機驅動低頻噪聲偏大,高速丟步的缺點。
運動單元采用主流高科技傳動器件—滾珠絲桿和直線導軌。滾珠絲杠包括螺桿、螺帽、循環系統及鋼珠,其功能是將旋轉運動轉換為線性運動,具有高精度、高速度、可逆性等特點;直線導軌是一種滾動導引,由鋼珠在滑塊與滑軌之間作無限滾動循環,負載平臺能沿著滑軌輕易地以高精度做線性運動,與傳統的滑動導軌相比較,因滾動導軌的摩擦系數可降至原來的1/50,由于起動的摩擦力大大減少,相對的無效運動較少,故能輕易地做到μm 級進給和定位。
考慮性價比與教學要求,本系統設計了基于東芝公司TB6560 芯片的步進電機驅動電路,如圖2 所示。F2806 主控制器EPWM 模塊送出的脈沖、方向與使能信號由74HC245 作3.3 ~5 V 的電平轉換。光耦隔離電路設計采用TLP2531 和PC817 芯片。TLP2531 是一款用于兩通道的高速光耦合器,由光敏二極管、高增益線性運放及肖特基鉗位的集電極開路的三極管組成,具有溫度補償、電流和電壓補償、高的輸入輸出隔離等功能,用來隔離CLK 和CW 信號。TLP521 是普通光耦隔離器,用來隔離ENABLE 信號。針對步進電機工作時的振動大、噪聲大等缺點,可采用電流的細分、衰減模式的設置來改善。細分的原理本質是通過控制步進電機勵磁繞組中電流使步進電機的內部合成磁場為均勻的圓形磁場,從而實現對步進電機步距角的細分。通過繞組中電流的細分改善了步進電機低頻運行時振動大的缺點。不同衰減模式設置則減少了步進電機運行時產生的高頻噪聲,改善了系統性能[7]。

圖2 TB6560 兩相四線步進電機驅動電路
TB6560 提供了整步、半步、1/8、1/16 微細分設置。NFA/B 管腳外接無感電阻對輸出電流控制,I =1/NFR,阻值大小分別為1. 2 Ω、330 mΩ、500 mΩ。M0、Protect 管腳用做工作狀態與保護指示;Reset 為復位管腳,低電平有效;OSC 管腳所接電容大小決定斬波頻率大小。推薦100 ~1 000 pF 對應斬波頻率40 ~400 kHz。DCY1/DCY2 外接撥碼開關設置電流衰減模式為0,25%,50%,100%。
為了減小電機發熱,在電機正常工作時設置輸出電流最大,不工作時電流減半或更小。設置步進驅動系統“自動半流”功能。選擇單穩態可重復觸發芯片74HC123 檢測CLK 信號。TQ2 接74HC123 反向輸出。當電機正常工作時TQ2 是低電平,電流維持在NFA/B 管腳設定值100%。無脈沖輸入時,TQ2 是高電平。TQ1 與TQ2 不同狀態決定當前工作電流大小。外接電壓為不超過40 V,推薦+24 V。輸入端加保險絲與壓敏電阻保護與濾波。電流大小、衰減模式以及自動半流設置可通過試驗板撥碼開關實現,見表1、2。

表1 撥碼開關設置

表2 電流開關設置
系統設計MAX3232 串行通訊電路作為控制器與上位PC 機的數據傳輸,見圖3。MAX3232 收發器采用專有的低壓差發送器輸出級。利用雙電荷泵在3 ~5 V 電源供電時能夠實現真正的RS232 性能。器件外部僅需要4 個0.1UF 小尺寸電荷泵電容,可以確保在120 kb/s 數據傳輸速率下維持RS232 輸出電平。MAX3232 引腳、封裝和功能與工業標準的MAX232 兼容。F2806 提供了SCI-A/B 兩路串行通訊接口可以實現DSP 與PC 機數據交換。圖3 中232TX、232RX 分別連接SCITXD、SCIRXD。T1、R1 與試驗板載DB9 母頭的發送、接收管腳相連[8]。

圖3 MAX3232 串行通訊電路
另外,考慮運動控制單元在工作過程中掉電或意外發生時電機當前運動位置記錄問題,系統設計了AT24C256 掉電存儲保護電路。AT24C256 是I2C 總線接口的E2PROM,其存儲容量為256 kB,按字節方式組成了32 kByte 的內部存儲空間。通過SCL、SDA 與F2806 處理器的I2C 接口。
在單軸的運動控制中,需要作頻繁的點位運動,若不作任何軌跡規劃處理,在很多場合是不理想的,達不到工藝加工的要求,其應用將受到很大的限制。常見的步進電機速度曲線有梯形曲線以及S 形曲線[9]。
梯形曲線給定3 個運動參數:位置給定step 、最大速度speed 以及加速度accel/dccel。如圖4 所示,梯形曲線分為3 個階段:第1 階段。勻加速段,速度按照設定的加速度值accel 從零加速到最大速度speed;第二階段。勻速段,加速度值為零,速度保持已達到的最大速度運行;第三階段。勻減速段,按設定的加速度減速到零,同時到達目標位置。

圖4 梯形加減速曲線
S 形曲線給定4 個運動參數:位置給定P _ref、最大速度maxv、最大加速度maxa 以及加加速度Jerk。如圖5 所示,規則的S 形曲線分為7 個階段:前3 個階段為加速段,后3 個階段為減速段,加速段和減速段相互對稱,第4 個階段為勻速段。在第1 階段。加加速段,加速度從零開始,以設定的最大加速度maxa 為目標,以加加速度Jerk 為增量遞增,直到達到最大加速度為止。在第2 階段。勻加速段,加加速度為零,以最大加速度加速到第3 段。在第3 階段。減加速段,按負的加加速度使加速度減為零值,同時使速度達到最大值maxv,至此完成加速段過程。在第4 階段勻速運行,加速度和加加速度都為零以最大值maxv 運行。第5、6、7 階段依次為加減速段、勻減速段和減減速段,降速過程與之前的加速過程完全對稱。
本系統采用在線梯形加減速算法[10-11]。設梯形曲線中脈沖時間間隔分別為c0tp,c1tp,c2tp,…。這里cn是按處理器片內定時器確定的計數值,tp是計數器的周期,單位是s。下式給出了加速、減速階段脈沖間隔計算。其中:α 為步距角;加速度w-是常數;初始


圖5 S 型加減速曲線
若設置電機啟動后2 s 加速到240 r/min,計數器計數頻率為100 MHz,固定電機為16 細分,則w-=4πrad/s2,a=2π/3200 rad,c0=1 767 766。
上位PC 機的子程序用Visual Basic 語言編寫,功能是通過Mscomm 控件發送運動控制指令和接收位置信息數據,如圖6 所示。Mscomm 控件是Microsoft 公司提供串行通信編程的ActiveX 控件,它為應用程序提供了通過串行接口收發數據的簡單方法。Mscomm控件提供了事件驅動處理通信的機制,類似一般程序的中斷方法,當串口發生事件或錯誤時,Mscomm 控件觸發onComm 事件,應用程序在捕獲事件后通過檢查Mscomm 控件的CommEvent 屬性獲得所發生的事件與方法[12]。現給出Mscomm 控件發送與接收的部分代碼如下:



圖6 PC 機平臺運動控制界面
數據發送只需要向MSComm1.Output 寫入字符串即可。這里采用12 Byte 1 幀傳輸電機轉速、細分設置、方向、運動位移以及關鍵字參數,分別填寫對應的文本框TEXT 屬性完成。
下位機運動控制代碼在CCS2.0 編譯器完成。圖7 是采用梯形加減速算法流程圖。當加減速度accel/decel、速度speed、步距角a、運動步數steps 給定,可計算出電機加速到設定轉速speed 的步數max_lim 和由加減速度、step 約束的accel_lim,流程圖中符號①處要求對max_lim 與accel_lim 判斷。若max_lim >accel_lim,說明沒有加速到設定速度電機便進入了減速狀態,不存在勻速段(status =2);反之,整個升降速控制為完整梯型速度曲線。計算減速階段電機步數dec_val 和decel_start。圖8 給出了在Matlab7.0 環境下梯形加減速算法在不同加速度下速度曲線。由式(1)計算加速與減速時2 個相鄰脈沖時間間隔Cn 更新ePWM1 模塊EPwm1Regs.TBPRD 寄存器的值,實現不同頻率脈沖對步進電機控制。方向信號可以通過對AQCSFRC.bit.CSFB 位操作使得ePWM1B 管腳信號強制高或低控制電機正反轉[13]。
圖9 是單軸運動控制系統的主流程圖。上電后系統倍頻、使能外設時鐘。再對ePWM1、SCIA、eCAP1 完成中斷初始設置。其中ePWM1 中斷服務程序主要運行加減速代碼負責產生指令脈沖信號。eCAP1 捕獲中斷則檢測近電機側槽型光電開關信號上升沿以確定運動控制的零位置。由于直線導軌滑塊到達零位時,開關信號由低電平向高電平跳變存在30 ~40 個抖動以致零位不準。解決問題的辦法是在第一個上升沿觸發捕獲中斷后,在中斷服務程序內部設置eCAP1 為通用I/O,0.001 s 后再確認是否為高電平,以此為依據確定每次運動的零點。單軸運動控制提供回零、相對位移、絕對位移、立即停止操作。上位機每條有效指令信息用12 Byte 數據編碼。SCIA 采用FIFO 中斷接收或發送上位機速度、細分、位移及方向等運動信息[14-15]。可給出FIFO 中斷與接收的部分寄存器代碼:


圖7 梯形加減速曲線Matlab 仿真

圖8 梯形加減速流程


圖9 單軸運動控制主程序
F2806 的SCI 接收器與發送器各具有一個16 級深度的FIFO,這樣可減少空頭服務。采用NRZ 數據格式,數據位8 位。16 位波特率寄存器BRR =0x0144=324,計算實際傳輸速率為LSPCLK/(8* (BRR +1))=9 615 bit/s。與上位機9 600 bit/s 發送速率匹配。當接收FIFO 中滿12 Byte 長幀信息時,產生中斷接收。使能FIFO 中斷發送,運動單元位置信息可寫入SciaRegs.SCITXBUF 寄存器可供上位機接收查詢。
用所設計的驅動系統對42BYG250A 步進電機進行實驗,觀察電流波形與噪聲。電機參數:步距角1.8,工作電壓9 ~30 V,繞組電阻1. 3 Ω,繞組電感2. 1 mH,保持力矩0.23 N·m。S-350-24 型開關電源提供驅動器測試工作電壓24 V,采用Tektronix TDS1012B雙通道示波器作波形測試。
為了清楚觀察電機繞組電流正弦細分控制的波形,在A/B 相繞組輸出端串接0.5 Ω 無感電阻用示波器觀察,如圖10 所示。電流波形光滑,電機轉動平穩,噪聲小,正弦特征明顯。

圖10 繞組串接無感電阻測試兩相電流
在單軸運動控制教學平臺實物中。滾珠絲桿與直線導軌之間采用定制剛性件連接。電控單元與機械運動部分在740 ×600 mm 木板固定并做水平度校正。采用上位PC 機控制測試定位性能,效果良好。
本文基于TMS320F2806 與TB6560 芯片設計完成了單軸運動控制教學平臺軟硬件設計。重點解決了上位機控制軟件設計、RS232 通信底層SCI FIFO 中斷接收與發送、加減速在線實現及點位控制。目前,該單軸運動控制平臺已經在大學生創新教學和校企合作項目開發中得到應用。
[1] 劉寶廷,程樹康 步進電動機及其驅動系統[M]. 哈爾濱:哈爾濱工業大學出版社,1997:35-42.
[2] 張新榮,徐寶國. 基于正弦細分驅動技術的步進電機控制系統設計[J].電測與儀表,2010(8):69-72.ZHANG Xin-rong,XV Bao-guo Design of Step Motor Control System Base on Sine-Subdivided Drive[J]. Electrical Measurement &Instrumentation,2010(8):69-72.
[3] 王曉明,王 玲.電動機的DSP 控制—TI 公司DSP 應用[M]. 北京.北京航空航天大學出版社,2004:214-217.
[4] 韓安太,劉峙非.DSP 控制器原理及其在運動控制系統中的應用[M]. 北京:清華大學出版社,2003:176-181.
[5] 蘇奎峰,呂 強,鄧志東. TMS320F2812 原理與開發[M].北京:電子工業出版社,2005:223-230.
[6] 祝華遠,馬乃蒼.某新型數控機床步進電機控制速度曲線的實現[J]. 機床與液壓,2003(3):351-354.ZHU Hua-yuan, MA Nai-cang. The Implementation Velocity Controlling Curve for A New-style Numerical Control Machine[J].Machine Toll & Hydraulics,2003(3):351-354.
[7] 高 亮. 8051 單片機對步進電機的控制及步進電機升降速曲線的設計[J]. 測控技術.2002,21(11):64-68.GAO Liang,Controlling of Step Motor with 8051 microcontroller and Speed-UP and Speed-Down Curve Design [J]. Measurement and Control Technology,.2002,21(11):64-68.
[8] 范逸之,陳立元. Visual Baisic 與RS-232 串行通信控制[M]. 北京:清華大學出版社,2002.
[9] 錢 堃,房 芳. 面向運動控制的DSP 技術及課程設計教學[J]. 電氣電子教學學報,2013,35(2):27-30.QIAN Kun,FANG Fang. Research on the Practice teaching of DSP technology for Motion Control[J]. Journal of EEE,2013,35(2):27-30.
[10] 楊志敏. 基于單片機加減控制算法的研究[D]. 哈爾濱:哈爾濱工業大學,2007:42-48.
[11] 羅 鑫,張 峰.基于ARM Cortex-M3 的步進電機線性速度控制實現[J].電氣自動化,2009(5):42-44.LUO Xing,ZHANG Feng. The Realization of Linear Speed Control of Stepper Motor Based on ARM Cortex-M3 [J]. Electrical Automation,2009(5):42-44.
[12] 王 璐,許雪峰. VB 串行通信在監測系統中的應用[J].實驗科學與技術.2010,9(5):14-15.WANG Lu ,XU Xue-Feng. Application of Serial Communication in the Monitor System Based on VB[J]. Experi-ment Science or Technology,2010,9(5):14-15.
[13] 謝國鋼,王念興,李小海.全數字化步進電動機細分驅動器設計[J]. 微特電機,2012(8):67-70.XIE Guo-gang,WANG Nian-xing,LI Xiao-hai. Design of Fully Digitized Subdivided Driver for Stepping Motor[J]. Small & Special Electrical Machines,2012(8):67-70.
[14] 任潤柏,周荔丹,姚 鋼. TMS320F28x 源碼解讀[M]. 北京:電子工業出版社,2010:230-295.
[15] SPRU051A:TMS320F28X DSP Serial Communication Interface(SCI)Reference guide,TEXAS 2003-6.