新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DSP與FPGA的運(yùn)動控制器系統(tǒng)設(shè)計

基于DSP與FPGA的運(yùn)動控制器系統(tǒng)設(shè)計

作者: 時間:2012-05-07 來源:網(wǎng)絡(luò) 收藏

技術(shù)是數(shù)控機(jī)床的關(guān)鍵技術(shù),其技術(shù)水平的高低將直接影響一個國家裝備制造業(yè)的發(fā)展水平。目前,多軸伺服控制器越來越多地運(yùn)用在系統(tǒng)中,具有較高的集成度和靈活性,可實(shí)時完成過程中復(fù)雜的邏輯處理和控制算法,能實(shí)現(xiàn)多軸高速高精度的伺服控制。本文選用作為運(yùn)動控制器的核心部件,設(shè)計了通用型運(yùn)動控制器。其中用于運(yùn)動軌跡規(guī)劃、速度控制及位置控制等功能;完成運(yùn)動控制器的精插補(bǔ)功能,用于精確計算步進(jìn)電機(jī)或伺服驅(qū)動元件的控制脈沖,同時接收并處理脈沖型位置反饋信號。本文對該運(yùn)動控制器的總體結(jié)構(gòu)、硬件設(shè)計和軟件設(shè)計進(jìn)行了描述。

本文引用地址:http://2s4d.com/article/257535.htm

1 系統(tǒng)總體設(shè)計

運(yùn)動控制器的總體性能指標(biāo)為:作為一個單獨(dú)的運(yùn)動控制器使用,控制信號采用數(shù)字量方式輸出,能控制四軸的伺服電機(jī);最高脈沖輸出頻率為4MP/s,能處理的編碼器反饋信號最高頻率為4MP/s;能接收和處理4路編碼器反饋信號;可以處理原點(diǎn)信號、正負(fù)方向信號、到位信號以及急停信號等數(shù)字量輸入信號;提供16路數(shù)字量輸出信號和16路數(shù)字量輸入信號接口。運(yùn)動控制器采用芯片作為主控芯片,主要包括DSP模塊、FPGA模塊、FPGA外圍電路模塊和數(shù)字量輸入輸出接口模塊。

采用基于DSP與FPGA的運(yùn)動控制器,能夠?qū)崟r完成復(fù)雜的軌跡運(yùn)算,而且利用DSP的高速數(shù)字信號處理功能和FPGA功耗低、主頻高的優(yōu)點(diǎn),能充分顯示該運(yùn)動控制器的優(yōu)點(diǎn)。采用DSP與FPGA相結(jié)合的運(yùn)動控制器可以方便地對系統(tǒng)的控制策略進(jìn)行修改,對控制參數(shù)進(jìn)行修正,并可使設(shè)備具有良好的可靠性、可維修性,而且還降低了成本。系統(tǒng)還可以采用更多的智能控制策略,結(jié)構(gòu)靈活,有較強(qiáng)的通用性,適合于模塊化設(shè)計,能夠提高算法效率,且易于維護(hù)和擴(kuò)展??傮w設(shè)計方案原理框圖如圖1所示。

2 系統(tǒng)硬件設(shè)計

2.1 DSP模塊

本控制器采用TI公司的TMS320F2812為主控芯片,它是32位的控制專用DSP,內(nèi)含F(xiàn)LASH,主頻高達(dá)150 MHz,具有數(shù)字信號處理、事件管理和嵌入式控制功能,適用于大批量數(shù)據(jù)處理的場合。

選用TI公司生產(chǎn)的TPS767D318芯片來實(shí)現(xiàn)TMS320F2812的電源設(shè)計,將5 V電源分別轉(zhuǎn)換為3.3 V和1.8 V。SRAM是DSP常用的外圍存儲器,它具有接口簡單、讀寫速度快等優(yōu)點(diǎn),所以選擇大小為64 KB的隨機(jī)存儲器CY7C1021作為存儲器擴(kuò)展芯片。DSP F2812與CY7C1021接口電路如圖2所示。

復(fù)位電路設(shè)計采用TI公司的TPS382x系列電壓監(jiān)控電路,此系列電路不需要外圍電路即可組成監(jiān)控電路。SCI模塊用于擴(kuò)展RS-232和RS-485串行通信接口;CAN模塊和外部CAN工業(yè)現(xiàn)場總線相連;外部接口用于與FPGA連接和擴(kuò)展數(shù)字量輸入輸出。

2.2 FPGA模塊

FPGA芯片選用Altera公司的Cyclone系列EP1C6TC44C8,這是一款高性能、低功耗的FPGA。EP1C6TC44C8具有2個鎖相環(huán),包含5 980個邏輯單元,相當(dāng)于12萬門的規(guī)模,同時還包含了最高頻率200 MHz、92 160 bit的內(nèi)部RAM。該芯片所擁有的邏輯門數(shù)量、頻率和引腳I/O等資源都能很好地滿足運(yùn)動控制器的設(shè)計要求。由于本系統(tǒng)的控制對象是伺服電機(jī),所以設(shè)計中主要利用EP1C6TC44C8的I/O口設(shè)計電機(jī)控制信號的輸入輸出、編碼器信號的輸入與部分?jǐn)?shù)字量輸入輸出。另外,該芯片在整個硬件系統(tǒng)設(shè)計完畢后還可以通過JTAG接口對硬件進(jìn)行重配置,可以增加系統(tǒng)設(shè)計的靈活性。

2.3 FPGA外圍電路模塊

X軸伺服電機(jī)控制電路如圖3所示。Y軸、Z軸、U軸伺服電機(jī)控制電路與X軸相同。

輸入輸出開關(guān)量接口設(shè)計。輸入信號主要包括限位開關(guān)信號LIMX+、LIMX-~LIMU+、LIMU-,伺服報警信號ALMX~ALMU和回零信號HMX~HMU。輸出信號主要包括伺服使能信號SRVX~SRVU和復(fù)位信號RSTX~RSTU。當(dāng)檢測到這些信號后,確定具體觸發(fā)的信號,限位信號觸發(fā),則立即停止對應(yīng)電機(jī)該方向的運(yùn)動,直到限位消除,電機(jī)才能在該方向繼續(xù)運(yùn)動;回零信號觸發(fā),則電機(jī)等待Index信號的輸入后立即讓電機(jī)反向運(yùn)行用戶設(shè)定的回零距離作為機(jī)械零點(diǎn);伺服報警信號輸入時,程序立即停止該電機(jī)的運(yùn)動,直到用戶將報警清除。

(2)輸出控制脈沖電路設(shè)計。輸出控制脈沖信號為伺服電機(jī)的4路脈沖控制輸出信號。此控制采用“脈沖+方向”指令,由于每個控制軸分別有脈沖和方向信號,所以4路共8個輸出信號。輸出控制脈沖信號由FPGA輸出,要先經(jīng)過電平轉(zhuǎn)換,將FPGA的I/O引腳的3.3 V變?yōu)? V,再經(jīng)過光電隔離,然后再經(jīng)過施密特觸發(fā)器整形后輸出。由于脈沖和方向信號需要進(jìn)行差分,所以將信號接入差動線驅(qū)動器后再輸出。XPLS~UPLS為脈沖信號,XDIR~UDIR為方向信號。差動線驅(qū)動器由AM26LS31構(gòu)成,該電路的功能是將輸入的單極性的方波信號轉(zhuǎn)化為一對極性相反的電機(jī)驅(qū)動信號,它的高阻抗輸出狀態(tài)在電源掉電時是有保障的。

(3)反饋脈沖處理電路設(shè)計。伺服電機(jī)的編碼器信號直接接入到電機(jī)驅(qū)動器中,驅(qū)動器提供三對差分信號A+、A-、B+、B-、Z+、Z-作為反饋。這三對信號由于受到驅(qū)動器內(nèi)部大電源的干擾,在電機(jī)旋轉(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)的可擴(kuò)展性和DSP的GPIO口的數(shù)量,此運(yùn)動控制器在DSP與FPGA上分別設(shè)計8路,共16路數(shù)字量輸入輸出。運(yùn)動控制器的所有數(shù)字量輸入輸出信號均采用光電隔離處理,并對每一路信號進(jìn)行相應(yīng)的數(shù)字濾波處理,以消除噪聲信號。數(shù)字量輸入通道可以根據(jù)用戶的要求自定義用途,用于零點(diǎn)、限位信號的輸入等;數(shù)字量輸出通道用于各軸方向、脈沖信號的輸出以及一些外部設(shè)備的啟停控制等。

3 系統(tǒng)軟件設(shè)計

軟件設(shè)計采用模塊化設(shè)計方法,程序的總體結(jié)構(gòu)采用以數(shù)據(jù)管理和位置速度控制為主,以I/O端口控制、邏輯控制、插補(bǔ)運(yùn)算等為中斷任務(wù)或子函數(shù)任務(wù)的形式。位置速度控制主要負(fù)責(zé)對實(shí)時運(yùn)動狀態(tài)的監(jiān)控與調(diào)節(jié);I/O端口控制主要負(fù)責(zé)掃描輸入端口、設(shè)置輸出端口等輔助性任務(wù)。

DSP控制程序主要由一個定時中斷構(gòu)成,主程序啟動后,首先完成對TMS320F2812的初始化及系統(tǒng)的一些基本配置,并處于等待狀態(tài)。運(yùn)動控制功能是在伺服中斷服務(wù)程序中實(shí)現(xiàn)的。主程序和伺服中斷服務(wù)程序基本流程如圖4所示。

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

數(shù)字積分法的有限狀態(tài)機(jī)如圖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,操作為各軸輸出脈沖為低電平,清忙標(biāo)志;無觸發(fā)條件:下一狀態(tài)為L1。

具體實(shí)現(xiàn)方法為:時序電路產(chǎn)生的插補(bǔ)脈沖作為此模塊的累加脈沖,每累加1次,剩余累加次數(shù)減1。當(dāng)剩余累加次數(shù)為0時,此次插補(bǔ)過程結(jié)束。

本文設(shè)計了一種通用型四軸伺服運(yùn)動控制器,該運(yùn)動控制器的結(jié)構(gòu)設(shè)計可以模塊化和易于擴(kuò)展,這樣可以滿足用戶的各種需求。在軟件部分中,采用有限狀態(tài)機(jī)的插補(bǔ)方法,在插補(bǔ)速度處理環(huán)節(jié)做了優(yōu)化,使脈沖輸出更加穩(wěn)定。此設(shè)計采用了模塊化思想,各電機(jī)可以單獨(dú)控制,具有較為全面的運(yùn)動控制功能、較高的控制精度和較快的反應(yīng)速度,其性能可靠、硬件結(jié)構(gòu)簡單、價格便宜。

伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理




關(guān)鍵詞: DSP FPGA 運(yùn)動控制

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉