• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于FPGA的圓弧插補算法的設(shè)計

      2016-03-10 00:16:37集美大學(xué)信息工程學(xué)院沈旭照吳一亮
      電子世界 2016年24期
      關(guān)鍵詞:圓心圓弧寄存器

      集美大學(xué)信息工程學(xué)院 沈旭照 吳一亮

      基于FPGA的圓弧插補算法的設(shè)計

      集美大學(xué)信息工程學(xué)院 沈旭照 吳一亮

      本項目設(shè)計了一款基于FPGA的圓弧插補系統(tǒng)。選用京微雅格CME-M7系列的集成了ARM 硬核的高性能開發(fā)板,步進最小精度可達(dá)0.005mm。圓弧半徑最大可達(dá)2.7m,但是由于受到滑臺的自身尺寸的限制,最大的整圓的最大半徑為40cm。插補速度可達(dá)3m/min。系統(tǒng)具有較高的集成度和良好的穩(wěn)定性。

      FPGA;圓弧插補;DDA;步進電機

      1. 系統(tǒng)設(shè)計方案

      本次選用的是京微雅格CME-M7 系列,該系列是集成了ARM Cortex-M3硬核高性能FPGA,根據(jù)設(shè)計要求(輸入圓弧起點,終點,半徑,實現(xiàn)勻速和勻加速控制),可以將本次設(shè)計DDA圓弧插補功能主要劃分為如圖所示幾個部分(框圖中的路徑為數(shù)據(jù)路徑,時鐘路徑未畫出)。

      2. MCU模塊

      該芯片內(nèi)嵌ARM Cortex-M3硬核,MCU主頻率最高達(dá)300M,MCU的時鐘也可由FPGA的PLL端供給,運用MCU高速的運算指令,將圓弧的起點、終點、半徑以及速度控制信號由pc的上位機通過UART串口輸入到MCU,通過一系列算法運算得到該圓弧的圓心位置以及x軸和y軸的總進給數(shù)。

      本設(shè)計的FPGA端的時鐘頻率為50M,ARM核的時鐘頻率為200M,ARM端的時鐘通過FPGA的PLL端配置,但是由于FPGA與ARM核兩部分工作在不同頻域,為了減小亞穩(wěn)態(tài)等現(xiàn)象,本設(shè)計采用異步FIFO進行FPGA與ARM核跨時鐘域通信處理,ARM向FIFO中寫入圓心位置以及x軸和y軸的總進給數(shù),待ARM端寫結(jié)束后,F(xiàn)PGA向FIFO中讀取數(shù)據(jù)并送到數(shù)據(jù)接收端。具體的通信細(xì)節(jié)是FPGA通過GPIO口向ARM端發(fā)送FIFO空狀態(tài),ARM端確認(rèn)FIFO為空狀態(tài)時通過AHB FPGA slave port 1向FIFO中寫數(shù)據(jù),F(xiàn)PGA端監(jiān)測到ARM端寫結(jié)束后,開始從FIFO中讀取數(shù)據(jù),并驗證每次讀取的數(shù)據(jù)通過發(fā)送PASS或FAIL的信號到LED指示燈。

      具體的FPGA和ARM核異步FIFO通信架構(gòu)如下圖所示。

      3. FPGA模塊

      3.1 PLL時鐘及脈沖發(fā)生模塊

      CME-M7系列FPGA擁有資源豐富的PLL資源,8個de-skew全局時鐘,2個支持倍頻、分頻及de-skew 的PLL,ARM核的時鐘也由FPGA的PLL供給。根據(jù)DDA插補算法原理,積分器的累加是根據(jù)脈沖信號進行的,每來一個脈沖,積分器累加一次,并且根據(jù)DDA圓弧插補速度計算公式,合成的速度與源脈沖的頻率是成正比的,所以當(dāng)脈沖頻率一定時,合成的速度便是勻速運動,脈沖頻率隨時間呈現(xiàn)遞增趨勢時,合成速度便是勻加速運動,所以該模塊首先會用PLL產(chǎn)生一個全局時鐘,供給各個同步模塊,而且還要根據(jù)速度控制算法產(chǎn)生頻率固定的均勻脈沖和頻率隨時間遞增或遞減的脈沖。

      3.2 數(shù)據(jù)接收模塊

      數(shù)據(jù)接收模塊接收來自ARM核運算后的數(shù)據(jù),包括圓弧的起點,終點,半徑,圓心,x軸y軸各自需要的總進給數(shù),以及速度控制信號和圓弧插補方向信號。

      3.3 數(shù)據(jù)左移規(guī)格化模塊

      根據(jù)圓弧插補改進原理,需要將輸入的圓弧起點(經(jīng)過運算后的,即起點坐標(biāo)減去圓心坐標(biāo)的值)經(jīng)過左移規(guī)格化后送入到被積函數(shù)寄存器,本次設(shè)計的被積函數(shù)寄存器位數(shù)定為20位,在程序設(shè)計中可以用parameter根據(jù)需要靈活定義寄存器位數(shù),因為此時的數(shù)值為有符號數(shù),被積函數(shù)的最高位為符號位,所以本次設(shè)計規(guī)格化是使除符號位的次高位為1;因為被積函數(shù)是起點坐標(biāo)減去圓心坐標(biāo)的值,而且圓弧的起點和圓心坐標(biāo)都為有符號數(shù),所以圓弧的真正起點坐標(biāo)為20位有符號數(shù)。

      3.4 DDA積分模塊

      DDA積分模塊作為本次設(shè)計的算法核心,在PLL時鐘及脈沖發(fā)生模塊發(fā)出的脈沖控制下進行累加運算,這里余數(shù)寄存器的位數(shù)也為20位,因為余數(shù)寄存器中的值為無符號數(shù),所以每次進行累加都是用被積函數(shù)寄存器的絕對值進行累加的,當(dāng)最高位為1時即是發(fā)生溢出。發(fā)生溢出后最高位清零其余位不變。

      DDA圓弧插補算法結(jié)構(gòu)圖如下所示。

      3.5 位置判斷模塊

      此模塊用于實時的位置判斷,根據(jù)動點的位置給出動點所在的象限,根據(jù)動點的象限位置給出累加器溢出時的進給脈沖和進給方向,并且需要根據(jù)象限相應(yīng)的修改被積函數(shù)值。

      3.6 終點判斷模塊

      終點判斷模塊開始會從數(shù)據(jù)接收模塊接收x軸和y軸的各自終點判斷的計數(shù)值,然后根據(jù)DDA積分模塊每當(dāng)有累加器溢出時,相應(yīng)的終點計數(shù)值會相應(yīng)的減一,直到x軸終點計數(shù)器和y軸終點計數(shù)器都為0時,停止插補,并輸出插補完成信號。

      3.7 脈沖及進給方向輸出模塊

      在DDA積分模塊累計溢出時,根據(jù)位置判斷模塊出相應(yīng)的盡給脈沖和進給方向,并且修改被積函數(shù)寄存器的值。

      4. Matlab算法驗證截圖

      猜你喜歡
      圓心圓弧寄存器
      二次曲線的一個類似圓心的性質(zhì)
      淺析圓弧段高大模板支撐體系設(shè)計與應(yīng)用
      Lite寄存器模型的設(shè)計與實現(xiàn)
      外圓弧面銑削刀具
      以圓周上一點為圓心作圓的圖的性質(zhì)及應(yīng)用
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      數(shù)控車削圓弧螺紋程序編制與加工
      等截面圓弧無鉸板拱技術(shù)狀況評價
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      一種可重構(gòu)線性反饋移位寄存器設(shè)計
      从化市| 崇礼县| 沅江市| 上饶县| 平度市| 迁安市| 确山县| 游戏| 建瓯市| 宾川县| 深圳市| 霍邱县| 花垣县| 华亭县| 遂平县| 南漳县| 萨嘎县| 吕梁市| 阜阳市| 宜良县| 伊金霍洛旗| 昭平县| 宁都县| 广水市| 广东省| 维西| 和硕县| 托克逊县| 门头沟区| 饶河县| 忻州市| 长治市| 卢龙县| 乌恰县| 江孜县| 东兰县| 志丹县| 东莞市| 光泽县| 潮安县| 巢湖市|