stm32+fpga架構的運動控制器
Stm32采用stm32f407,不擴展內存sram,外部fpga采用ep4ce6,引腳采用多的那種(黑金的那種),板子上使用rtc電池,用來保持斷電保護的sram內容。
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í)行機構,由于stm32的小內存,無法將曲線全部計算出來,只能采用buff或者采用先計算出規(guī)劃,然后stm32每個伺服周期計算下個周期的數(shù)據(jù),然后下發(fā)給fpga執(zhí)行,fpga主要是實現(xiàn)速度控制,同時統(tǒng)計發(fā)送的脈沖數(shù)量,并可以在fpga內部做做簡單的位置環(huán)控制。
參考歐姆龍的位置控制模塊接口
絕對移動
相對移動
中斷給進
當前位置設置
定位完成
忙標識
位置
速度
加速時間
減速時間
當前位置
每軸的狀態(tài)
1,是否對零
2,當前位置
3,忙標識
4,是否就位
對于ptp的運動曲線指令,分為幾個狀態(tài),
1,計算曲線范圍和特征,然后記憶
2,計算完成后,每個伺服周期,根據(jù)范圍和特征,計算下個伺服周期的速度值,并發(fā)給fpga
3,如果伺服周期范圍執(zhí)行完成或者位置指令完成,那么停止當前指令執(zhí)行,切入空閑態(tài)
JOG移動:速度,ta,ts,正反轉移動
停止JOG:
絕對PTP移動:速度,ta,ts,絕對位置
相對PTP移動:速度,ta,ts,相對位置
Servo任務劃分為兩個任務,一個任務計算并寫數(shù)據(jù)到fpga,然后等量外一個專門的任務發(fā)同步時間消息,因為另外一個任務是專門的空閑定時任務,所以時鐘是很準的,專門負責按伺服周期通知另外一個任務同步信號。同步信號工作原理如下
周期計算任務
寫普通數(shù)據(jù)到fpga
等同步信號
寫同步信號數(shù)據(jù)到fpga
伺服接口負責提供給別的任務使用
運動軸的狀態(tài)
0
評論