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