新聞中心

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

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

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



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

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

        運(yùn)動邏輯采用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姆龍的位置控制模塊接口

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

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



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

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

        JOG移動:速度,ta,ts,正反轉(zhuǎn)移動
        停止JOG:
        絕對PTP移動:速度,ta,ts,絕對位置
        相對PTP移動:速度,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ù)同步信號。同步信號工作原理如下
        周期計(jì)算任務(wù)定時(shí)器任務(wù)
        寫普通數(shù)據(jù)到fpga
        等同步信號《===============================發(fā)出同步觸發(fā)信號
        寫同步信號數(shù)據(jù)到fpga
        伺服接口負(fù)責(zé)提供給別的任務(wù)使用

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


        評論


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

        關(guān)閉
        主站蜘蛛池模板: 宜都市| 资兴市| 论坛| 穆棱市| 井研县| 莆田市| 称多县| 沾化县| 梁平县| 都兰县| 金平| 高尔夫| 泌阳县| 永川市| 喀喇| 宝山区| 新昌县| 义马市| 邵武市| 湖北省| 永修县| 蛟河市| 定边县| 阳山县| 巩义市| 高碑店市| 格尔木市| 政和县| 定边县| 南昌市| 蓝田县| 蓬安县| 绥化市| 锦屏县| 杨浦区| 云浮市| 习水县| 西贡区| 连云港市| 绥江县| 石林|