stm32+fpga架構(gòu)的運(yùn)動(dòng)控制器
Stm32采用stm32f407,不擴(kuò)展內(nèi)存sram,外部fpga采用ep4ce6,引腳采用多的那種(黑金的那種),板子上使用rtc電池,用來保持?jǐn)嚯姳Wo(hù)的sram內(nèi)容。
stm32板子支持以太網(wǎng),mac使用f407自帶的mac器件。
支持usb,232c,485,can通訊。
usb用來實(shí)現(xiàn)和pc機(jī)的連接,232c和485則可以使用modbus-rtu協(xié)議,以太網(wǎng)則實(shí)現(xiàn)econ的協(xié)議。
Stm32
Stm32上運(yùn)行ucos或者freertos,fpga簡單的采用quartus運(yùn)行純邏輯,代碼采用verilog語言,fpga不運(yùn)行nios,因?yàn)閚ios很不好用,不可靠,不能用于生產(chǎn)環(huán)境。
運(yùn)動(dòng)邏輯采用stm32來做,fpga是執(zhí)行機(jī)構(gòu),由于stm32的小內(nèi)存,無法將曲線全部計(jì)算出來,只能采用buff或者采用先計(jì)算出規(guī)劃,然后stm32每個(gè)伺服周期計(jì)算下個(gè)周期的數(shù)據(jù),然后下發(fā)給fpga執(zhí)行,fpga主要是實(shí)現(xiàn)速度控制,同時(shí)統(tǒng)計(jì)發(fā)送的脈沖數(shù)量,并可以在fpga內(nèi)部做做簡單的位置環(huán)控制。
參考?xì)W姆龍的位置控制模塊接口
絕對移動(dòng)
相對移動(dòng)
中斷給進(jìn)
當(dāng)前位置設(shè)置
定位完成
忙標(biāo)識(shí)
位置
速度
加速時(shí)間
減速時(shí)間
當(dāng)前位置
每軸的狀態(tài)
1,是否對零
2,當(dāng)前位置
3,忙標(biāo)識(shí)
4,是否就位
對于ptp的運(yùn)動(dòng)曲線指令,分為幾個(gè)狀態(tài),
1,計(jì)算曲線范圍和特征,然后記憶
2,計(jì)算完成后,每個(gè)伺服周期,根據(jù)范圍和特征,計(jì)算下個(gè)伺服周期的速度值,并發(fā)給fpga
3,如果伺服周期范圍執(zhí)行完成或者位置指令完成,那么停止當(dāng)前指令執(zhí)行,切入空閑態(tài)
JOG移動(dòng):速度,ta,ts,正反轉(zhuǎn)移動(dòng)
停止JOG:
絕對PTP移動(dòng):速度,ta,ts,絕對位置
相對PTP移動(dòng):速度,ta,ts,相對位置
Servo任務(wù)劃分為兩個(gè)任務(wù),一個(gè)任務(wù)計(jì)算并寫數(shù)據(jù)到fpga,然后等量外一個(gè)專門的任務(wù)發(fā)同步時(shí)間消息,因?yàn)榱硗庖粋€(gè)任務(wù)是專門的空閑定時(shí)任務(wù),所以時(shí)鐘是很準(zhǔn)的,專門負(fù)責(zé)按伺服周期通知另外一個(gè)任務(wù)同步信號(hào)。同步信號(hào)工作原理如下
周期計(jì)算任務(wù)
寫普通數(shù)據(jù)到fpga
等同步信號(hào)
寫同步信號(hào)數(shù)據(jù)到fpga
伺服接口負(fù)責(zé)提供給別的任務(wù)使用
運(yùn)動(dòng)軸的狀態(tài)
0
評論