• 
    

    
    

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

      基于FPGA的EnDat協(xié)議絕對式光柵尺通訊實現(xiàn)

      2022-02-06 02:26:50柯幫維楊志軍陽志林白有盾
      儀表技術與傳感器 2022年12期
      關鍵詞:光柵尺校驗編碼器

      柯幫維,楊志軍,彭 皓,陽志林,白有盾

      (1.廣東工業(yè)大學,精密電子制造技術與裝備國家重點實驗室,廣東廣州 510006;2.佛山市華道超精科技有限公司,廣東佛山 528225)

      0 引言

      隨著科學技術的進步,高端機器人、數(shù)控機床、雷達等行業(yè)對伺服控制系統(tǒng)要求越來越高[1-2]。位置編碼器反饋精度直接影響伺服控制系統(tǒng)的定位精度,因此在高精密運動領域?qū)ξ恢镁幋a器要求越來越高。常用的位置編碼器有增量式、絕對式和混合式編碼器[3-5]。增量式編碼器價格相對便宜,然而每次掉電后都要重新找零點,并且有誤差累積現(xiàn)象。另外,受到采集卡截止頻率限制,增量式編碼器存在速度與精度的矛盾,無法應用在高速度高精度運動控制場合。相比較而言,絕對式編碼器每一個位置都有固定的編碼值,零點固定、無累積誤差、數(shù)據(jù)可靠性高。

      絕對式位置編碼器主要有SSI、Biss-C、EnDat等傳輸協(xié)議[5-8]。其中EnDat協(xié)議可靠性高、傳輸速度快、抗干擾性強。

      通常,單片機、FPGA或者ASIC都可以與EnDat編碼器通訊。然而,單片機一般適用于EnDat時鐘頻率較低的場合。ASIC對于確定功能和大規(guī)模批量生產(chǎn)的產(chǎn)品有優(yōu)勢,但是編程靈活性較低。FPGA具有并行特性、靈活性高和快速處理數(shù)據(jù)的能力。綜合考慮,本文采用FPGA來實現(xiàn)EnDat協(xié)議通訊。

      本文分別從EnDat協(xié)議的時序分析、硬件電路設計和軟件各模塊設計進行介紹,并把位置信息和部分參數(shù)通過串口發(fā)送到上位機顯示。實驗測試結果表明FPGA與EnDat協(xié)議的光柵尺正常通信。

      1 EnDat協(xié)議時序分析

      EnDat接口是面向編碼器應用的雙向數(shù)字接口,帶有錯誤檢測位和CRC校驗功能,并且EnDat 2.2協(xié)議可以發(fā)送附加數(shù)據(jù)的位置值,以便系統(tǒng)實時監(jiān)控編碼器反饋狀態(tài),使得編碼器的數(shù)據(jù)傳輸可靠性高[9]。

      EnDat 2.2協(xié)議有14種指令,如表1所示,F(xiàn)PGA可以通過這些模式指令讀取編碼器的位置、存儲器信息、OEM等參數(shù)[10-11]。EnDat 2.2協(xié)議在EnDat 2.1協(xié)議上擴展了7個指令,使得附加信息可以和位置信息一起傳輸。

      表1 EnDat指令表

      如表1所示,本文把EnDat 2.2協(xié)議的模式指令劃分為第一類、第二類和第三類。其中主機發(fā)送第一類模式指令后只接收位置或測試值;而通過第二類和第三類模式指令可以讀取或者修改編碼器的參數(shù)。本文以第一類為例介紹,時序如圖1所示。傳輸過程為主機發(fā)送模式指令給光柵尺后,光柵尺返回“Start”位和“Error 1”位,緊接著是nbit的位置值或40 bit的測試值,最后是5 bit的CRC碼。

      圖1 第一類時序圖

      具體通信請求如下:

      (1)空閑時,主機保持時鐘線為高電平,當光柵尺保持低電平時表示光柵尺已經(jīng)準備就緒。

      (2)位置請求信號到來時,主機拉低時鐘信號并保持tst時間的低電平后,連續(xù)輸出固定頻率的時鐘信號。同時主機在第2個時鐘信號的下降沿開始發(fā)送模式指令。

      (3)等待光柵尺準備數(shù)據(jù),直到光柵尺返回1個“Start”位后,主機在時鐘的下降沿讀取光柵尺返回的數(shù)據(jù)。

      (4)光柵尺發(fā)送完數(shù)據(jù)后,主機拉高時鐘信號,并一直保持高電平。

      (5)當光柵尺返回數(shù)據(jù)信號為低電平時,則主機可以進行下一次讀取請求。

      2 系統(tǒng)軟硬件設計

      2.1 硬件電路設計

      硬件系統(tǒng)由FPGA(Cyclone IV系列芯片EP4CE10F17C8)和絕對式光柵尺構成,該絕對式光柵尺的時鐘信號和數(shù)據(jù)信號都是RS485差分驅(qū)動信號,因此需要電平轉(zhuǎn)換電路。

      硬件電路如圖2所示,采用電平轉(zhuǎn)換芯片MAX485對時鐘和數(shù)據(jù)信號進行處理,使得TTL電平與差分信號RS485電平得以相互轉(zhuǎn)化。光柵尺的時鐘線和數(shù)據(jù)線經(jīng)過電平轉(zhuǎn)換芯片后再與FPGA控制板連接,F(xiàn)PGA端生成的CLOCK、DATA信號經(jīng)過MAX485芯片把TTL電平轉(zhuǎn)為差分信號輸出給光柵尺。另一方面,光柵尺返回的DATA信號經(jīng)過MAX485芯片把差分信號轉(zhuǎn)為TTL電平發(fā)給FPGA。FPGA通過串口與上位機進行通訊,上位機可以發(fā)送命令給FPGA,F(xiàn)PGA接收命令后把采集到的位置和參數(shù)依次發(fā)送給上位機,上位機把接收到的位置進行描點畫圖。

      圖2 差分信號轉(zhuǎn)換電路

      2.2 軟件系統(tǒng)設計

      本文設計的數(shù)據(jù)采集系統(tǒng)控制流程如圖3所示。系統(tǒng)主要由時鐘控制器、數(shù)據(jù)控制器、CRC校驗模塊、上傳控制模塊和串口控制器構成。時鐘控制器作用是產(chǎn)生光柵尺需要的不同頻率的時鐘信號。數(shù)據(jù)控制器根據(jù)時鐘信號同步發(fā)送模式指令、MRS碼、存儲器地址、參數(shù)給光柵尺,以及接收光柵尺返回來的位置、參數(shù)、附加數(shù)據(jù)。時鐘控制器與數(shù)據(jù)控制器都是在狀態(tài)機預設的狀態(tài)下產(chǎn)生時鐘和收發(fā)數(shù)據(jù)。FPGA把從光柵尺采集到的數(shù)據(jù)經(jīng)過CRC校驗后,再通過串口控制器發(fā)送到上位機顯示。上傳控制模塊作用是控制數(shù)據(jù)上傳到上位機的頻率,使其滿足串口的通訊速率要求。

      圖3 采集系統(tǒng)框圖

      根據(jù)EnDat 2.2協(xié)議的時序特點,本設計用狀態(tài)機實現(xiàn)光柵尺數(shù)據(jù)采集過程,總共分為8個狀態(tài),狀態(tài)機的工作方式如圖4所示。系統(tǒng)在默認情況下處于空閑狀態(tài),輸出高電平的時鐘信號。當接收到請求信號en_flag時,狀態(tài)跳轉(zhuǎn)到同步狀態(tài),同時拉低CLOCK信號。同步狀態(tài)下CLOCK一直保持低電平,直到計數(shù)到給定的tst后跳轉(zhuǎn)到模式指令發(fā)送狀態(tài)。在模式指令發(fā)送狀態(tài)下,F(xiàn)PGA在第2個時鐘的下降沿開始發(fā)送模式指令或地址、參數(shù)。

      圖4 系統(tǒng)采集狀態(tài)機

      FPGA發(fā)送完模式指令后,狀態(tài)跳轉(zhuǎn)到等待狀態(tài)。當光柵尺返回來一個“Start”位,狀態(tài)跳轉(zhuǎn)到數(shù)據(jù)接收狀態(tài)。由于光柵尺在CLOCK的上升沿開始返回數(shù)據(jù),因此FPGA應當在CLOCK的下降沿讀取數(shù)據(jù),防止在電平轉(zhuǎn)換期間讀出錯誤的數(shù)據(jù)。第1、第2類EnDat 2.2模式指令在接收完數(shù)據(jù)后拉高CLOCK信號,直接進入恢復狀態(tài)。當光柵尺DATA信號從高電平轉(zhuǎn)換為低電平,表明光柵尺可以進行下一次位置請求。此時狀態(tài)機跳轉(zhuǎn)到默認狀態(tài),等待下一次請求信號。第3類模式指令(除了111000)在接收完位置和附加數(shù)據(jù)后進入地址發(fā)送狀態(tài),F(xiàn)PGA在CLOCK的下降沿發(fā)送地址、MRS碼、參數(shù)值,發(fā)送完成后進入恢復狀態(tài)。在恢復狀態(tài)下,如果檢測到錯誤位Error 1置1,或者Error 2置0,說明有錯誤出現(xiàn),狀態(tài)跳轉(zhuǎn)到復位狀態(tài),復位完成后進入默認狀態(tài)。

      FPGA接收完數(shù)據(jù)后會產(chǎn)生一個done信號,并把接收到的位置、CRC碼傳輸?shù)较乱粚覥RC校驗模塊。CRC校驗模塊在接收到done信號后開始對位置值進行CRC校驗運算。光柵尺的CRC多項式為6’b101011。為了提高數(shù)據(jù)處理的效率,充分利用FPGA并行處理的特性,CRC校驗模塊采用并行CRC校驗算法,只需1個系統(tǒng)周期就完成CRC碼的校驗[12-13],主要代碼如下:

      crc_out[0]= d[32]^ d[30]^ d[27]^ d[26]^ d[24]^ d[23]^ d[22]^ d[17]^ d[15]^ d[12]^ d[11]^ d[9]^d[8]^ d[7]^ d[2]^ d[0]^ c[2]^ c[4];

      crc_out[1]=d[32]^d[31]^d[30]^d[29]^d[27]^d[25]^d[24]^d[21]^d[17]^d[16]^d[15]^d[14]^d[12]^d[10]^d[9]^d[6]^d[2]^d[1]^ d[0]^ c[2]^ c[3]^ c[4];

      crc_out[2]= d[31]^ d[30]^ d[29]^ d[28]^ d[26]^ d[24]^ d[23]^ d[20]^ d[16]^ d[15]^ d[14]^ d[13]^ d[11]^ d[9]^ d[8]^ d[5]^ d[1]^ d[0]^ c[3]^ c[4];

      crc_out[3]= d[32]^ d[29]^ d[28]^ d[26]^ d[25]^ d[24]^ d[19]^ d[17]^ d[14]^ d[13]^ d[11]^ d[10]^ d[9]^ d[4]^ d[2]^ c[0]^ c[2];

      crc_out[4]= d[31]^ d[28]^ d[27]^ d[25]^ d[24]^d[23]^d[18]^d[16]^d[13]^d[12]^ d[10]^ d[9]^ d[8]^ d[3]^ d[1]^ c[1]^ c[3];

      其中d[32∶0]是接收的數(shù)據(jù)從高位到低位是32 bit position+Error 1。c[4:0]初始值為5’b11111;crc_out[4∶0]是用CRC校驗模塊對數(shù)據(jù)d[32∶0]進行計算得到的校驗碼。把接收到的crc_code與取反的crc_out比較,如果兩者一致,則輸出一個高電平脈沖的crc_done信號,同時把接收正確的數(shù)據(jù)輸出給下一模塊。否則丟棄該數(shù)據(jù),等待下一次校驗。

      3 上位機軟件設計

      MATLAB-GUI圖形化界面設計工具提供各種基本控件和各種函數(shù)庫接口、支持RS232/RS485串口通信,可以直接利用按鈕、可編輯文本、坐標區(qū)等控件直接組成上位機的圖形界面,并利用回調(diào)函數(shù)實現(xiàn)上位機的功能[14-16]。因此本文利用MATLAB-GUI設計上位機實現(xiàn)串口通信、圖形顯示、發(fā)送命令等功能,并提供良好的人機交互界面。

      由于光柵尺的位置有32位,而串口通信一次只能發(fā)送8位數(shù)據(jù),因此在FPGA端把位置值拆分為4組8位的數(shù)據(jù),分4次依次通過串口發(fā)送給上位機,上位機再把接收到的數(shù)據(jù)進行拼接。最后把拼接完的數(shù)據(jù)在坐標區(qū)繪制圖形。

      4 功能測試仿真

      為了驗證FPGA程序的正確性,編寫測試文件模擬光柵尺,通過Modelsim仿真工具驗證各模塊是否正常工作。本文以模式指令為000111為例,在測試文件中模擬光柵尺準備了2組數(shù)據(jù),如表2所示。分別為2組32位的位置值+1位的Error 1+5位的CRC,其中第1組的CRC校驗碼的最低位與第2組是相反的,并且第2組CRC碼是正確的。因此可以根據(jù)接收的位置和CRC碼測試數(shù)據(jù)控制器以及CRC校驗模塊是否正常工作。

      表2 Modelsim仿真數(shù)據(jù)表

      仿真結果如圖5所示,當en_flag信號使能時,時鐘控制器輸出5 MHz的clk信號給光柵尺。數(shù)據(jù)控制器在時鐘的下降沿通過data_out發(fā)送模式指令,測試文件接收到指令后,在時鐘的上升沿通過data_in返回數(shù)據(jù)。當數(shù)據(jù)控制器接收完數(shù)據(jù)后會產(chǎn)生一個done信號,并進入CRC校驗模塊。

      圖5 模式指令為000111的Modelsim仿真圖

      圖5的check_data為接收到的數(shù)據(jù),check_data由32位的位置值+1 bit 的Error 1組成,高位在前、低位在后。從圖中可得,數(shù)據(jù)控制器正確接收位置狀態(tài)信息和CRC碼,由于第1組接收到的CRC碼和實際的CRC碼不一樣,所以第1組數(shù)據(jù)沒有產(chǎn)生crc_done信號。而第2組數(shù)據(jù)產(chǎn)生crc_done脈沖。綜上分析,CRC校驗模塊、時鐘、數(shù)據(jù)控制器各模塊正常工作。因此設計的EnDat協(xié)議程序通過仿真驗證。

      5 實驗結果與分析

      把仿真測試成功后的程序下載到FPGA板卡上,并把光柵尺連接到FPGA上。本次實驗通過發(fā)送模式指令000111,讀取光柵尺的位置值,驗證程序。本實驗通過Quartus Prime的Signal Tap Logical Analyzer抓取FPGA內(nèi)部信號,如圖6所示。圖6的data_in和data_out分別代表光柵尺發(fā)送給FPGA的數(shù)據(jù)信號、FPGA發(fā)送數(shù)據(jù)給光柵尺的串行數(shù)據(jù)信號。

      圖6 Signal Tap Logical Analyzer捕獲圖(模式指令為000111)

      從圖6可知,當FPGA接收到請求信號en_flag時,clk信號立刻拉低并正常工作;當接收到完成信號done后,clk停止工作并一直保持高電平。數(shù)據(jù)控制器控制data_out和data_in正常工作,并把接收到的位置信息輸入到CRC校驗模塊,CRC校驗模塊產(chǎn)生crc_done信號,說明接收到正確的位置并且整個采樣周期在40 μs之內(nèi)。經(jīng)過以上分析,圖6的波形圖符合EnDat協(xié)議的時序,校驗模塊也能正常工作,程序驗證成功。

      為了更直觀觀察采樣的位置信息,通過串口控制器把校驗正確的位置發(fā)送到上位機顯示。如圖7所示,上位機能夠正確接收數(shù)據(jù)并描點繪圖。

      圖7 上位機采集數(shù)據(jù)圖

      6 結束語

      本文根據(jù)光柵尺的EnDat協(xié)議時序設計了硬件電路和FPGA控制程序,并開發(fā)了上位機實現(xiàn)位置數(shù)據(jù)采集和繪圖功能。FPGA控制程序適用于EnDat 2.1、EnDat 2.2的模式指令,具有并行CRC校驗功能,這樣不僅提高了程序的通用性還縮短了工作周期。由于FPGA具有并行的特性和強大的數(shù)據(jù)處理能力,還可以在該程序的基礎上擴展采集多路光柵尺數(shù)據(jù)。實驗結果表明,設計的FPGA程序可以與EnDat協(xié)議的光柵尺進行通訊,并且能夠把采集到的位置值通過串口發(fā)送到上位機進行顯示。

      猜你喜歡
      光柵尺校驗編碼器
      國產(chǎn)光柵尺在校直機設備上的應用
      工程與試驗(2022年2期)2022-08-08 12:37:30
      光柵尺在高精度數(shù)控機床中的重要性
      基于FPGA的同步機軸角編碼器
      光柵尺在數(shù)控機床中的應用
      爐溫均勻性校驗在鑄鍛企業(yè)的應用
      基于PRBS檢測的8B/IOB編碼器設計
      JESD204B接口協(xié)議中的8B10B編碼器設計
      電子器件(2015年5期)2015-12-29 08:42:24
      大型電動機高阻抗差動保護穩(wěn)定校驗研究
      電測與儀表(2015年1期)2015-04-09 12:03:02
      基于加窗插值FFT的PMU校驗方法
      鍋爐安全閥在線校驗不確定度評定
      陈巴尔虎旗| 陕西省| 永修县| 乌拉特后旗| 金湖县| 庆云县| 屯昌县| 庆阳市| 合作市| 星座| 孟村| 石楼县| 抚宁县| 读书| 拉孜县| 麻栗坡县| 色达县| 贺州市| 玉树县| 剑川县| 江油市| 长顺县| 扶绥县| 任丘市| 东乡族自治县| 汉寿县| 万源市| 河南省| 宣恩县| 谷城县| 玉林市| 从化市| 项城市| 永修县| 太康县| 韶关市| 贵州省| 文成县| 米脂县| 平和县| 阳江市|