《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應用 > 基于DSP與FPGA的運動控制器設(shè)計
基于DSP與FPGA的運動控制器設(shè)計
何國軍,陳維榮,,劉小強,,孫叢君
摘要: 設(shè)計了一種基于DSP和FPGA的四軸伺服電機運動控制器,該控制器選用DSP與FPGA作為核心部件,。針對運動控制中的一些具體問題,,如高速、高精度,、實時控制等,,規(guī)劃了DSP的功能擴展,在FPGA上設(shè)計了功能相互獨立的四軸運動控制電路。該電路接收和處理4路編碼器反饋信號,;可以處理原點,、正負方向、到位以及急停等數(shù)字量輸入信號,;提供16路數(shù)字輸入輸出信號作為系統(tǒng)一般功能擴充使用,;具有較高的集成度和靈活性。
關(guān)鍵詞: FPGA 運動控制 伺服控制 DSP
Abstract:
Key words :

  摘 要: 設(shè)計了一種基于DSPFPGA的四軸伺服電機運動控制器,,該控制器選用DSP與FPGA作為核心部件,。針對運動控制中的一些具體問題,如高速,、高精度,、實時控制等,,規(guī)劃了DSP的功能擴展,在FPGA上設(shè)計了功能相互獨立的四軸運動控制電路,。該電路接收和處理4路編碼器反饋信號;可以處理原點,、正負方向,、到位以及急停等數(shù)字量輸入信號;提供16路數(shù)字輸入輸出信號作為系統(tǒng)一般功能擴充使用,;具有較高的集成度和靈活性,。
關(guān)鍵詞: 運動控制;伺服控制,;DSP,;FPGA

 

  運動控制技術(shù)是數(shù)控機床的關(guān)鍵技術(shù),,其技術(shù)水平的高低將直接影響一個國家裝備制造業(yè)的發(fā)展水平。目前,,多軸伺服控制器越來越多地運用在運動控制系統(tǒng)中,,具有較高的集成度和靈活性,可實時完成運動控制過程中復雜的邏輯處理和控制算法,,能實現(xiàn)多軸高速高精度的伺服控制,。本文選用DSP與FPGA作為運動控制器的核心部件,設(shè)計了通用型運動控制器,。其中DSP用于運動軌跡規(guī)劃,、速度控制及位置控制等功能;FPGA完成運動控制器的精插補功能,,用于精確計算步進電機或伺服驅(qū)動元件的控制脈沖,,同時接收并處理脈沖型位置反饋信號。本文對該運動控制器的總體結(jié)構(gòu),、硬件設(shè)計和軟件設(shè)計進行了描述,。
1 系統(tǒng)總體設(shè)計
  運動控制器的總體性能指標為:作為一個單獨的運動控制器使用,控制信號采用數(shù)字量方式輸出,,能控制四軸的伺服電機,;最高脈沖輸出頻率為4MP/s,能處理的編碼器反饋信號最高頻率為4MP/s,;能接收和處理4路編碼器反饋信號,;可以處理原點信號、正負方向信號,、到位信號以及急停信號等數(shù)字量輸入信號,;提供16路數(shù)字量輸出信號和16路數(shù)字量輸入信號接口。運動控制器采用DSP與FPGA芯片作為主控芯片,,主要包括DSP模塊,、FPGA模塊、FPGA外圍電路模塊和數(shù)字量輸入輸出接口模塊,。
采用基于DSP與FPGA的運動控制器,,能夠?qū)崟r完成復雜的軌跡運算,而且利用DSP的高速數(shù)字信號處理功能和FPGA功耗低,、主頻高的優(yōu)點,,能充分顯示該運動控制器的優(yōu)點。采用DSP與FPGA相結(jié)合的運動控制器可以方便地對系統(tǒng)的控制策略進行修改,,對控制參數(shù)進行修正,,并可使設(shè)備具有良好的可靠性、可維修性,而且還降低了成本,。系統(tǒng)還可以采用更多的智能控制策略,,結(jié)構(gòu)靈活,有較強的通用性,,適合于模塊化設(shè)計,,能夠提高算法效率,且易于維護和擴展,??傮w設(shè)計方案原理框圖如圖1所示。

 

2 系統(tǒng)硬件設(shè)計
2.1 DSP模塊

本控制器采用TI公司的TMS320F2812為主控芯片,,它是32位的控制專用DSP,,內(nèi)含F(xiàn)LASH,主頻高達150 MHz,,具有數(shù)字信號處理,、事件管理和嵌入式控制功能,適用于大批量數(shù)據(jù)處理的場合,。
選用TI公司生產(chǎn)的TPS767D318芯片來實現(xiàn)TMS320F2812的電源設(shè)計,,將5 V電源分別轉(zhuǎn)換為3.3 V和1.8 V。SRAM是DSP常用的外圍存儲器,,它具有接口簡單,、讀寫速度快等優(yōu)點,所以選擇大小為64 KB的隨機存儲器CY7C1021作為存儲器擴展芯片,。DSP F2812與CY7C1021接口電路如圖2所示,。


復位電路設(shè)計采用TI公司的TPS382x系列電壓監(jiān)控電路,此系列電路不需要外圍電路即可組成監(jiān)控電路,。SCI模塊用于擴展RS-232和RS-485串行通信接口,;CAN模塊和外部CAN工業(yè)現(xiàn)場總線相連;外部接口用于與FPGA連接和擴展數(shù)字量輸入輸出,。
2.2 FPGA模塊
FPGA芯片選用Altera公司的Cyclone系列EP1C6TC44C8,,這是一款高性能、低功耗的FPGA,。EP1C6TC44C8具有2個鎖相環(huán),,包含5 980個邏輯單元,相當于12萬門的規(guī)模,,同時還包含了最高頻率200 MHz,、92 160 bit的內(nèi)部RAM。該芯片所擁有的邏輯門數(shù)量,、頻率和引腳I/O等資源都能很好地滿足運動控制器的設(shè)計要求,。由于本系統(tǒng)的控制對象是伺服電機,所以設(shè)計中主要利用EP1C6TC44C8的I/O口設(shè)計電機控制信號的輸入輸出、編碼器信號的輸入與部分數(shù)字量輸入輸出,。另外,該芯片在整個硬件系統(tǒng)設(shè)計完畢后還可以通過JTAG接口對硬件進行重配置,,可以增加系統(tǒng)設(shè)計的靈活性,。
2.3 FPGA外圍電路模塊
X軸伺服電機控制電路如圖3所示。Y軸,、Z軸,、U軸伺服電機控制電路與X軸相同。

 

  (1)輸入輸出開關(guān)量接口設(shè)計,。輸入信號主要包括限位開關(guān)信號LIMX+,、LIMX-~LIMU+、LIMU-,,伺服報警信號ALMX~ALMU和回零信號HMX~HMU,。輸出信號主要包括伺服使能信號SRVX~SRVU和復位信號RSTX~RSTU。當檢測到這些信號后,,確定具體觸發(fā)的信號,,限位信號觸發(fā),則立即停止對應電機該方向的運動,,直到限位消除,,電機才能在該方向繼續(xù)運動;回零信號觸發(fā),,則電機等待Index信號的輸入后立即讓電機反向運行用戶設(shè)定的回零距離作為機械零點,;伺服報警信號輸入時,程序立即停止該電機的運動,,直到用戶將報警清除,。
(2)輸出控制脈沖電路設(shè)計。輸出控制脈沖信號為伺服電機的4路脈沖控制輸出信號,。此控制采用“脈沖+方向”指令,,由于每個控制軸分別有脈沖和方向信號,所以4路共8個輸出信號,。輸出控制脈沖信號由FPGA輸出,,要先經(jīng)過電平轉(zhuǎn)換,將FPGA的I/O引腳的3.3 V變?yōu)? V,,再經(jīng)過光電隔離,,然后再經(jīng)過施密特觸發(fā)器整形后輸出。由于脈沖和方向信號需要進行差分,,所以將信號接入差動線驅(qū)動器后再輸出,。XPLS~UPLS為脈沖信號,XDIR~UDIR為方向信號。差動線驅(qū)動器由AM26LS31構(gòu)成,,該電路的功能是將輸入的單極性的方波信號轉(zhuǎn)化為一對極性相反的電機驅(qū)動信號,,它的高阻抗輸出狀態(tài)在電源掉電時是有保障的。
(3)反饋脈沖處理電路設(shè)計,。伺服電機的編碼器信號直接接入到電機驅(qū)動器中,,驅(qū)動器提供三對差分信號A+、A-,、B+,、B-、Z+,、Z-作為反饋,。這三對信號由于受到驅(qū)動器內(nèi)部大電源的干擾,在電機旋轉(zhuǎn)時,,所發(fā)出的信號會出現(xiàn)許多毛刺,,直接接到FPGA中會引起誤判斷,所以三對信號經(jīng)過差分電路轉(zhuǎn)化為單路信號A,、B,、Z。差分電路由AM26LS32構(gòu)成,,該芯片功能與AM26LS31相反,,該電路的功能是將輸入的一對極性相反的編碼器反饋信號轉(zhuǎn)化為單極性的方波信號。A,、B兩路為正交編碼脈沖,,Z路每轉(zhuǎn)產(chǎn)生一個低電平脈沖,用于回零時的精確定位,。
2.4 數(shù)字量輸入輸出接口模塊
考慮到系統(tǒng)的可擴展性和DSP的GPIO口的數(shù)量,,此運動控制器在DSP與FPGA上分別設(shè)計8路,共16路數(shù)字量輸入輸出,。運動控制器的所有數(shù)字量輸入輸出信號均采用光電隔離處理,,并對每一路信號進行相應的數(shù)字濾波處理,以消除噪聲信號,。數(shù)字量輸入通道可以根據(jù)用戶的要求自定義用途,,用于零點、限位信號的輸入等,;數(shù)字量輸出通道用于各軸方向,、脈沖信號的輸出以及一些外部設(shè)備的啟停控制等,。
3 系統(tǒng)軟件設(shè)計

  軟件設(shè)計采用模塊化設(shè)計方法,,程序的總體結(jié)構(gòu)采用以數(shù)據(jù)管理和位置速度控制為主,,以I/O端口控制、邏輯控制,、插補運算等為中斷任務(wù)或子函數(shù)任務(wù)的形式,。位置速度控制主要負責對實時運動狀態(tài)的監(jiān)控與調(diào)節(jié);I/O端口控制主要負責掃描輸入端口,、設(shè)置輸出端口等輔助性任務(wù),。
DSP控制程序主要由一個定時中斷構(gòu)成,主程序啟動后,,首先完成對TMS320F2812的初始化及系統(tǒng)的一些基本配置,并處于等待狀態(tài),。運動控制功能是在伺服中斷服務(wù)程序中實現(xiàn)的,。主程序和伺服中斷服務(wù)程序基本流程如圖4所示。


FPGA主要完成運動控制器的精插補功能,,采用數(shù)字積分法進行插補[1],。把數(shù)字積分法分為3個狀態(tài):(1)狀態(tài)WAIT,等待插補信號,;(2)狀態(tài)L1,,判斷總的脈沖數(shù);(3)狀態(tài)L2,,積分累加器累加一次,,如有溢出,相應的輸出脈沖為高電平,,剩余累加次數(shù)減1,。
數(shù)字積分法的有限狀態(tài)機如圖5所示。


觸發(fā)條件T1:沒有啟動信號,,下一狀態(tài)為WAIT,,無操作;觸發(fā)條件T2:有啟動信號,,下一狀態(tài)為L1,,操作為初始化各寄存器,置忙信號,;觸發(fā)條件T3:剩余累加次數(shù)大于0,,下一狀態(tài)為L2,操作為各軸輸出脈沖為低電平,;觸發(fā)條件T4:剩余累加次數(shù)為0,,下一狀態(tài)為WAIT,操作為各軸輸出脈沖為低電平,,清忙標志,;無觸發(fā)條件:下一狀態(tài)為L1,。
具體實現(xiàn)方法為:時序電路產(chǎn)生的插補脈沖作為此模塊的累加脈沖,每累加1次,,剩余累加次數(shù)減1,。當剩余累加次數(shù)為0時,此次插補過程結(jié)束,。
本文設(shè)計了一種通用型四軸伺服運動控制器,,該運動控制器的結(jié)構(gòu)設(shè)計可以模塊化和易于擴展,這樣可以滿足用戶的各種需求,。在軟件部分中,,采用有限狀態(tài)機的插補方法,在插補速度處理環(huán)節(jié)做了優(yōu)化,,使脈沖輸出更加穩(wěn)定,。此設(shè)計采用了模塊化思想,各電機可以單獨控制,,具有較為全面的運動控制功能,、較高的控制精度和較快的反應速度,其性能可靠,、硬件結(jié)構(gòu)簡單,、價格便宜。


參考文獻
[1] 劉洪泳.四軸伺服運動控制卡的研制[D].南京:南京航空航天大學,,2004:29-30.
[2] 李葉松,,董瑋.基于CPLD的開放式四軸運動控制器的設(shè)計[J].電子技術(shù)應用,2005(5).
[3] 詹海菊.基于DSP的運動控制器的研究與開發(fā)[J].微計算機信息,,2008,,24(8-2):202-204.
[4] 侯小強,薛重德,,張月芹.基于TMS320F2812的多軸運動控制卡設(shè)計[J].單片機與嵌入式系統(tǒng)應用,,2008(6).
[5] 李月華.基于數(shù)字信號處理器的四軸運動控制卡系統(tǒng)研究[J].電腦開發(fā)與應用,2008,,21(9):9-11.

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。