亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

        0 引言

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

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

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

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

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

        EnDat接口是面向編碼器應(yīng)用的雙向數(shù)字接口,帶有錯誤檢測位和CRC校驗(yàn)功能,并且EnDat 2.2協(xié)議可以發(fā)送附加數(shù)據(jù)的位置值,以便系統(tǒng)實(shí)時(shí)監(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é)議上擴(kuò)展了7個(gè)指令,使得附加信息可以和位置信息一起傳輸。

        表1 EnDat指令表

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

        圖1 第一類時(shí)序圖

        具體通信請求如下:

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

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

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

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

        (5)當(dāng)光柵尺返回?cái)?shù)據(jù)信號為低電平時(shí),則主機(jī)可以進(jìn)行下一次讀取請求。

        2 系統(tǒng)軟硬件設(shè)計(jì)

        2.1 硬件電路設(shè)計(jì)

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

        硬件電路如圖2所示,采用電平轉(zhuǎn)換芯片MAX485對時(shí)鐘和數(shù)據(jù)信號進(jìn)行處理,使得TTL電平與差分信號RS485電平得以相互轉(zhuǎn)化。光柵尺的時(shí)鐘線和數(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通過串口與上位機(jī)進(jìn)行通訊,上位機(jī)可以發(fā)送命令給FPGA,F(xiàn)PGA接收命令后把采集到的位置和參數(shù)依次發(fā)送給上位機(jī),上位機(jī)把接收到的位置進(jìn)行描點(diǎn)畫圖。

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

        2.2 軟件系統(tǒng)設(shè)計(jì)

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

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

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

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

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

        FPGA接收完數(shù)據(jù)后會產(chǎn)生一個(gè)done信號,并把接收到的位置、CRC碼傳輸?shù)较乱粚覥RC校驗(yàn)?zāi)K。CRC校驗(yàn)?zāi)K在接收到done信號后開始對位置值進(jìn)行CRC校驗(yàn)運(yùn)算。光柵尺的CRC多項(xiàng)式為6’b101011。為了提高數(shù)據(jù)處理的效率,充分利用FPGA并行處理的特性,CRC校驗(yàn)?zāi)K采用并行CRC校驗(yàn)算法,只需1個(gè)系統(tǒng)周期就完成CRC碼的校驗(yàn)[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校驗(yàn)?zāi)K對數(shù)據(jù)d[32∶0]進(jìn)行計(jì)算得到的校驗(yàn)碼。把接收到的crc_code與取反的crc_out比較,如果兩者一致,則輸出一個(gè)高電平脈沖的crc_done信號,同時(shí)把接收正確的數(shù)據(jù)輸出給下一模塊。否則丟棄該數(shù)據(jù),等待下一次校驗(yàn)。

        3 上位機(jī)軟件設(shè)計(jì)

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

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

        4 功能測試仿真

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

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

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

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

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

        5 實(shí)驗(yàn)結(jié)果與分析

        把仿真測試成功后的程序下載到FPGA板卡上,并把光柵尺連接到FPGA上。本次實(shí)驗(yàn)通過發(fā)送模式指令000111,讀取光柵尺的位置值,驗(yàn)證程序。本實(shí)驗(yàn)通過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可知,當(dāng)FPGA接收到請求信號en_flag時(shí),clk信號立刻拉低并正常工作;當(dāng)接收到完成信號done后,clk停止工作并一直保持高電平。數(shù)據(jù)控制器控制data_out和data_in正常工作,并把接收到的位置信息輸入到CRC校驗(yàn)?zāi)K,CRC校驗(yàn)?zāi)K產(chǎn)生crc_done信號,說明接收到正確的位置并且整個(gè)采樣周期在40 μs之內(nèi)。經(jīng)過以上分析,圖6的波形圖符合EnDat協(xié)議的時(shí)序,校驗(yàn)?zāi)K也能正常工作,程序驗(yàn)證成功。

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

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

        6 結(jié)束語

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

        猜你喜歡
        光柵尺校驗(yàn)編碼器
        國產(chǎn)光柵尺在校直機(jī)設(shè)備上的應(yīng)用
        光柵尺在高精度數(shù)控機(jī)床中的重要性
        基于FPGA的同步機(jī)軸角編碼器
        光柵尺在數(shù)控機(jī)床中的應(yīng)用
        爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
        基于PRBS檢測的8B/IOB編碼器設(shè)計(jì)
        JESD204B接口協(xié)議中的8B10B編碼器設(shè)計(jì)
        電子器件(2015年5期)2015-12-29 08:42:24
        大型電動機(jī)高阻抗差動保護(hù)穩(wěn)定校驗(yàn)研究
        電測與儀表(2015年1期)2015-04-09 12:03:02
        基于加窗插值FFT的PMU校驗(yàn)方法
        鍋爐安全閥在線校驗(yàn)不確定度評定
        强开小婷嫩苞又嫩又紧视频 | 国产激情在线观看免费视频| 婷婷成人丁香五月综合激情| 丰满人妻在公车被猛烈进入电影| 99热国产在线| 亚洲一区二区三区在线激情| 尤物yw午夜国产精品视频| 日本公与熄乱理在线播放| 国产成人乱色伦区小说| 亚洲国产黄色在线观看| 色综合久久中文综合网亚洲 | 亚洲无码毛片免费视频在线观看| 熟女人妻一区二区三区| 又黄又爽又无遮挡免费的网站| 国产av无码专区亚洲av| 久久精品国产亚洲AV高清y w| 亚洲一区二区三区在线最新| 精品国产第一国产综合精品| 欧美真人性做爰一二区| 亚洲高清一区二区三区在线观看| 加勒比婷婷色综合久久| av永久天堂一区二区三区| 巨大欧美黑人xxxxbbbb| 精品日产一区2区三区 | 国产大片在线观看91| 国产精品视频永久免费播放| 国产成人av免费观看| 日本精品视频一视频高清| 久久精品免费视频亚洲| 亚洲乱码一区av春药高潮| 亚洲色在线视频| 丁香婷婷激情俺也去俺来也| 西川结衣中文字幕在线| 精品久久久久久久久久中文字幕 | 亚洲成av人片在线观看ww| 青草网在线观看| 亚洲一二三四五中文字幕| 疯狂做受xxxx国产| 色综合久久久久久久久五月| 免费毛片一区二区三区女同| 狂猛欧美激情性xxxx大豆行情|