stm32+fpga架構(gòu)的運動控制器
Stm32采用stm32f407,不擴展內(nèi)存sram,外部fpga采用ep4ce6,引腳采用多的那種(黑金的那種),板子上使用rtc電池,用來保持斷電保護的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
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)控制。
參考歐姆龍的位置控制模塊接口
絕對移動
相對移動
中斷給進
當前位置設(shè)置
定位完成
忙標識
位置
速度
加速時間
減速時間
當前位置
每軸的狀態(tài)
1,是否對零
2,當前位置
3,忙標識
4,是否就位
對于ptp的運動曲線指令,分為幾個狀態(tài),
1,計算曲線范圍和特征,然后記憶
2,計算完成后,每個伺服周期,根據(jù)范圍和特征,計算下個伺服周期的速度值,并發(fā)給fpga
3,如果伺服周期范圍執(zhí)行完成或者位置指令完成,那么停止當前指令執(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ù),所以時鐘是很準的,專門負責按伺服周期通知另外一個任務(wù)同步信號。同步信號工作原理如下
周期計算任務(wù)
寫普通數(shù)據(jù)到fpga
等同步信號
寫同步信號數(shù)據(jù)到fpga
伺服接口負責提供給別的任務(wù)使用
運動軸的狀態(tài)
0
評論