新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > stm32+fpga架構(gòu)的運動控制器

stm32+fpga架構(gòu)的運動控制器

作者: 時間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
因為fpga的高速、高同步、純硬件的特點,可以很好的實現(xiàn)多軸的同步和單軸任意頻率脈沖的生成,遠(yuǎn)遠(yuǎn)比stm32自帶的定時器好用。結(jié)合f407的高性能,高可靠,方便的開發(fā)環(huán)境,可以組合在一起做成類似dsp+fpga的運動卡,但是價格低廉,用戶入門容易。



Stm32采用stm32f407,不擴展內(nèi)存sram,外部fpga采用ep4ce6,引腳采用多的那種(黑金的那種),板子上使用rtc電池,用來保持?jǐn)嚯姳Wo(hù)的sram內(nèi)容。


stm32板子支持以太網(wǎng),mac使用f407自帶的mac器件。
支持usb,232c,485,can通訊。
usb用來實現(xiàn)和pc機的連接,232c和485則可以使用modbus-rtu協(xié)議,以太網(wǎng)則實現(xiàn)econ的協(xié)議。



Stm32<==fsmc==>fpga,數(shù)據(jù)總線為8,數(shù)據(jù)總線為8,8為數(shù)據(jù)總線可以尋找256字節(jié)空間,對于模塊來說完全夠用了。如果空間不夠用,還可以采用簡易的協(xié)議擴展方式來做。

Stm32上運行ucos或者freertos,fpga簡單的采用quartus運行純邏輯,代碼采用verilog語言,fpga不運行nios,因為nios很不好用,不可靠,不能用于生產(chǎn)環(huán)境。

運動邏輯采用stm32來做,fpga是執(zhí)行機構(gòu),由于stm32的小內(nèi)存,無法將曲線全部計算出來,只能采用buff或者采用先計算出規(guī)劃,然后stm32每個伺服周期計算下個周期的數(shù)據(jù),然后下發(fā)給fpga執(zhí)行,fpga主要是實現(xiàn)速度控制,同時統(tǒng)計發(fā)送的脈沖數(shù)量,并可以在fpga內(nèi)部做做簡單的位置環(huán)控制。


參考?xì)W姆龍的位置控制模塊接口

絕對移動
相對移動
中斷給進(jìn)
當(dāng)前位置設(shè)置
定位完成
忙標(biāo)識

位置
速度
加速時間
減速時間
當(dāng)前位置



每軸的狀態(tài)
1,是否對零
2,當(dāng)前位置
3,忙標(biāo)識
4,是否就位

對于ptp的運動曲線指令,分為幾個狀態(tài),
1,計算曲線范圍和特征,然后記憶
2,計算完成后,每個伺服周期,根據(jù)范圍和特征,計算下個伺服周期的速度值,并發(fā)給fpga
3,如果伺服周期范圍執(zhí)行完成或者位置指令完成,那么停止當(dāng)前指令執(zhí)行,切入空閑態(tài)

JOG移動:速度,ta,ts,正反轉(zhuǎn)移動
停止JOG:
絕對PTP移動:速度,ta,ts,絕對位置
相對PTP移動:速度,ta,ts,相對位置
Servo任務(wù)劃分為兩個任務(wù),一個任務(wù)計算并寫數(shù)據(jù)到fpga,然后等量外一個專門的任務(wù)發(fā)同步時間消息,因為另外一個任務(wù)是專門的空閑定時任務(wù),所以時鐘是很準(zhǔn)的,專門負(fù)責(zé)按伺服周期通知另外一個任務(wù)同步信號。同步信號工作原理如下
周期計算任務(wù)定時器任務(wù)
寫普通數(shù)據(jù)到fpga
等同步信號《===============================發(fā)出同步觸發(fā)信號
寫同步信號數(shù)據(jù)到fpga
伺服接口負(fù)責(zé)提供給別的任務(wù)使用

運動軸的狀態(tài)
0空閑1點到點2運動停止3點動4和編碼器或者虛擬軸同步


評論


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

關(guān)閉