<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于DSP與FPGA的運動(dòng)控制器系統設計

基于DSP與FPGA的運動(dòng)控制器系統設計

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

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

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

1 系統總體設計

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

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

2 系統硬件設計

2.1 DSP模塊

本控制器采用TI公司的TMS320F2812為主控芯片,它是32位的控制專(zhuān)用DSP,內含FLASH,主頻高達150 MHz,具有數字信號處理、事件管理和嵌入式控制功能,適用于大批量數據處理的場(chǎng)合。

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

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

2.2 FPGA模塊

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

2.3 FPGA外圍電路模塊

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

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

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

(3)反饋脈沖處理電路設計。伺服電機的編碼器信號直接接入到電機驅動(dòng)器中,驅動(dòng)器提供三對差分信號A+、A-、B+、B-、Z+、Z-作為反饋。這三對信號由于受到驅動(dòng)器內部大電源的干擾,在電機旋轉時(shí),所發(fā)出的信號會(huì )出現許多毛刺,直接接到FPGA中會(huì )引起誤判斷,所以三對信號經(jīng)過(guò)差分電路轉化為單路信號A、B、Z。差分電路由AM26LS32構成,該芯片功能與AM26LS31相反,該電路的功能是將輸入的一對極性相反的編碼器反饋信號轉化為單極性的方波信號。A、B兩路為正交編碼脈沖,Z路每轉產(chǎn)生一個(gè)低電平脈沖,用于回零時(shí)的精確定位。

2.4 數字量輸入輸出接口模塊

考慮到系統的可擴展性和DSP的GPIO口的數量,此運動(dòng)控制器在DSP與FPGA上分別設計8路,共16路數字量輸入輸出。運動(dòng)控制器的所有數字量輸入輸出信號均采用光電隔離處理,并對每一路信號進(jìn)行相應的數字濾波處理,以消除噪聲信號。數字量輸入通道可以根據用戶(hù)的要求自定義用途,用于零點(diǎn)、限位信號的輸入等;數字量輸出通道用于各軸方向、脈沖信號的輸出以及一些外部設備的啟??刂频?。

3 系統軟件設計

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

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

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

數字積分法的有限狀態(tài)機如圖5所示。

觸發(fā)條件T1:沒(méi)有啟動(dòng)信號,下一狀態(tài)為WAIT,無(wú)操作;觸發(fā)條件T2:有啟動(dòng)信號,下一狀態(tài)為L(cháng)1,操作為初始化各寄存器,置忙信號;觸發(fā)條件T3:剩余累加次數大于0,下一狀態(tài)為L(cháng)2,操作為各軸輸出脈沖為低電平;觸發(fā)條件T4:剩余累加次數為0,下一狀態(tài)為WAIT,操作為各軸輸出脈沖為低電平,清忙標志;無(wú)觸發(fā)條件:下一狀態(tài)為L(cháng)1。

具體實(shí)現方法為:時(shí)序電路產(chǎn)生的插補脈沖作為此模塊的累加脈沖,每累加1次,剩余累加次數減1。當剩余累加次數為0時(shí),此次插補過(guò)程結束。

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

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




關(guān)鍵詞: DSP FPGA 運動(dòng)控制

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>