劉塔拉 賈建祿 吳慶林
摘要 EnDa t2.2是一種通信協(xié)議,多用于各類(lèi)編碼器數(shù)據(jù)接口。本文通過(guò)分析EnDat 2.2工作原理和通信時(shí)序,設(shè)計(jì)了基于FPGA的絕對(duì)式長(zhǎng)度計(jì)AT1218信號(hào)采集電路,并給出了該電路硬件電路組成、模塊設(shè)計(jì)和軟件流程。同時(shí),通過(guò)系統(tǒng)級(jí)聯(lián)進(jìn)行了測(cè)試實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)構(gòu)表明該系統(tǒng)可以正確又穩(wěn)定地采集位置信息,采集頻率達(dá)到lkHz。
【關(guān)鍵詞】FPGA EnDat2.2 絕對(duì)式長(zhǎng)度計(jì)
1 引言
具有高精度、可靠性好和檢測(cè)速度快等特點(diǎn)的長(zhǎng)度計(jì)被廣泛應(yīng)用于眾多工業(yè)應(yīng)用領(lǐng)域及檢測(cè)機(jī)構(gòu)。如今市場(chǎng)上主流的長(zhǎng)度計(jì)都基于高精度光柵尺,采用數(shù)字化接口傳輸。按測(cè)量方式,長(zhǎng)度計(jì)分為增量式長(zhǎng)度計(jì)和絕對(duì)式長(zhǎng)度計(jì)。相比于增量式長(zhǎng)度計(jì),絕對(duì)式長(zhǎng)度計(jì)不僅可以測(cè)量微小位移,還有絕對(duì)定位和掉電不丟失等優(yōu)點(diǎn),越來(lái)越多的應(yīng)用在長(zhǎng)度測(cè)量領(lǐng)域。海德漢(HEIDENHAIN)公司ACANTO系列絕對(duì)式長(zhǎng)度計(jì)測(cè)量精度高、測(cè)量范圍大、堅(jiān)固耐用,被廣泛應(yīng)用于高精度測(cè)量領(lǐng)域。由于測(cè)量分辨率高,絕對(duì)式長(zhǎng)度計(jì)通常采用串行傳輸數(shù)據(jù)接口。在數(shù)字通信方面,海德漢公司推出了EnDat2.2串行通信接口,是一種適用于ACANTO系列絕對(duì)式長(zhǎng)度計(jì)的雙向數(shù)字接口,可以快速并高可靠性的傳輸長(zhǎng)度計(jì)的位置值。ACANTO系列絕對(duì)式長(zhǎng)度計(jì)配備了專(zhuān)用的采集卡,可以將串行的EnDat2.2數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)以便于用戶(hù)使用,但該采集卡價(jià)格昂貴并適用范圍小。所以通過(guò)分析長(zhǎng)度計(jì)和Endat2.2接口,設(shè)計(jì)一個(gè)基于FPGA的信號(hào)采集電路,可以提高長(zhǎng)度檢測(cè)系統(tǒng)的便捷性和適用性。
2 EnDat2.2通信協(xié)-議
海德漢公司的EnDat2.2通信協(xié)議適用于海德漢公司編碼器,是一種半雙工同步串行接口。通過(guò)EnDat2.2通信接口,不僅可以完成傳輸指令接收位置信息,還可以傳輸和保存編碼器中保存的信息。在本系統(tǒng)中,F(xiàn)PGA信號(hào)采集電路與長(zhǎng)度計(jì)以EnDat2.2通信接口連接,通過(guò)問(wèn)答的通信方式獲得長(zhǎng)度計(jì)位置值和附加信息。EnDat2.2通信接口除了需要提供電源和地以外,只需要兩組差分信號(hào)線(xiàn)。一組差分信號(hào)線(xiàn)傳輸時(shí)鐘信號(hào),是從信號(hào)采集電路提供給長(zhǎng)度計(jì)的同步信號(hào),最高頻率可以達(dá)到16MHz。另一組差分信號(hào)線(xiàn)傳輸數(shù)據(jù)信號(hào),屬于半雙工數(shù)據(jù)傳輸。一個(gè)信號(hào)采集周期中,信號(hào)采集電路給長(zhǎng)度計(jì)發(fā)送指令,長(zhǎng)度計(jì)根據(jù)指令計(jì)算完后數(shù)據(jù)后向信號(hào)采集電路發(fā)送位置值以及指定的附加信號(hào)。EnDat2.2常用時(shí)序圖如圖1所示。
空閑狀態(tài)下時(shí)鐘信號(hào)線(xiàn)被拉高,數(shù)據(jù)信號(hào)線(xiàn)被拉低。從時(shí)鐘信號(hào)下降沿開(kāi)始進(jìn)入一個(gè)采集周期,此時(shí)長(zhǎng)度計(jì)保存測(cè)量值并開(kāi)始計(jì)算位置值。兩個(gè)時(shí)鐘周期以后,信號(hào)采集電路開(kāi)始發(fā)送6位模式指令。模式指令可以讓長(zhǎng)度計(jì)發(fā)送位置值,并可以選擇附加信息類(lèi)型。模式指令發(fā)送完畢,數(shù)據(jù)信號(hào)線(xiàn)改為接收狀態(tài)。在長(zhǎng)度計(jì)計(jì)算完成后,由起始位S開(kāi)始向解碼電路發(fā)送信息。起始位后會(huì)有兩個(gè)錯(cuò)誤位Fl和F2,是檢測(cè)故障的信號(hào)。兩個(gè)錯(cuò)誤位獨(dú)立生成,發(fā)生故障的詳細(xì)原因會(huì)保存在工作狀態(tài)存儲(chǔ)區(qū)內(nèi)。隨后長(zhǎng)度計(jì)發(fā)送位置值,順序是從最低位LSB到最高位MSB,位置值長(zhǎng)度由長(zhǎng)度計(jì)決定。每一段數(shù)據(jù)均由循環(huán)冗余校驗(yàn)CRC結(jié)尾,用于檢測(cè)數(shù)據(jù)在傳輸或者保存過(guò)程中可能發(fā)生誤碼或者串碼。隨后長(zhǎng)度計(jì)將發(fā)送附加信息2和附加信息l。附加信息內(nèi)容可以通過(guò)模式指令001001來(lái)選擇和確定。數(shù)據(jù)信息傳輸完畢,時(shí)鐘信號(hào)置高電平,數(shù)據(jù)信號(hào)經(jīng)過(guò)一段恢復(fù)時(shí)間后恢復(fù)低電平?;謴?fù)時(shí)間與時(shí)鐘頻率有關(guān),時(shí)鐘頻率大于1MHz時(shí),恢復(fù)時(shí)間為1.25-3.75微秒。如果時(shí)鐘頻率小于1MHz,恢復(fù)時(shí)間在10-30微秒范圍內(nèi)。
3 系統(tǒng)硬件組成
系統(tǒng)硬件組成如圖2所示,主要由信號(hào)采集電路和長(zhǎng)度計(jì)構(gòu)成。信號(hào)采集電路主要由FPGA、晶振、復(fù)位電路、供電電路和串口收發(fā)模塊組成。FPGA模塊作為主要控制器,負(fù)責(zé)時(shí)序控制、指令輸出、接收數(shù)據(jù)和解碼等功能。串口收發(fā)模塊MAX3485和MAX3490負(fù)責(zé)FPGA引腳TTL電平與串口通信需要的RS485電平和RS422電平之間的轉(zhuǎn)換。
長(zhǎng)度計(jì)采用的是海德漢ACANTO系列AT1218,是支持EnDat2.2通信協(xié)議的絕對(duì)式長(zhǎng)度計(jì),防護(hù)安全級(jí)別達(dá)到IP67。AT1218以188.4μm柵距玻璃DIADUR光柵為測(cè)量基準(zhǔn),測(cè)量分辨率為23nm,總測(cè)量范圍為12mm,系統(tǒng)精度達(dá)到1μm。
4 FPGA數(shù)據(jù)讀取原理和模塊設(shè)計(jì)
在通過(guò)EnDat2.2接口讀取長(zhǎng)度計(jì)數(shù)據(jù)的過(guò)程中,F(xiàn)PGA內(nèi)部工作的原理如圖3所示。按功能分類(lèi),F(xiàn)PGA模塊可分為發(fā)送模塊、接收模塊、控制模塊、CRC校驗(yàn)?zāi)K、數(shù)據(jù)預(yù)處理模塊以及配置寄存器組成。配置寄存器負(fù)責(zé)保存信號(hào)采集電路運(yùn)行順序和工作參數(shù),主要包括信號(hào)采樣頻率、信號(hào)預(yù)處理內(nèi)容、波特率、EnDat2.2時(shí)鐘頻率和附加信息內(nèi)容等??刂颇K通過(guò)讀取配置寄存器的內(nèi)容配置各個(gè)功能模塊,并負(fù)責(zé)EnDat2.2接口的時(shí)鐘信號(hào)和收發(fā)信號(hào)順序。時(shí)鐘模塊的功能是將系統(tǒng)時(shí)鐘通過(guò)分頻產(chǎn)生EnDat2.2接口需要的時(shí)鐘信號(hào)。發(fā)送模塊1和接收模塊1分別負(fù)責(zé)EnDat2.2通信協(xié)議的模式指令發(fā)送和長(zhǎng)度計(jì)數(shù)據(jù)的接收。接收的長(zhǎng)度計(jì)串行數(shù)據(jù)需要經(jīng)過(guò)CRC校驗(yàn)?zāi)K來(lái)驗(yàn)證EnDat2.2通信接口數(shù)據(jù)傳輸過(guò)程的完整性和正確性。數(shù)據(jù)預(yù)處理模塊可以將長(zhǎng)度計(jì)位置數(shù)據(jù)進(jìn)行簡(jiǎn)單的預(yù)處理,如計(jì)算位移、速度、加速度等數(shù)據(jù)。發(fā)送模塊2和接收模塊2負(fù)責(zé)給主控系統(tǒng)發(fā)送計(jì)算結(jié)果和接收配置參數(shù)。
在信號(hào)采集過(guò)程中,需要各功能模塊協(xié)同工作。在剛初始化時(shí),控制模塊通過(guò)讀取配置寄存器來(lái)配置FPGA模塊,控制CLK信號(hào)線(xiàn)保持高電平,TX1信號(hào)保持低電平,收發(fā)控制信號(hào)DE為高電平,EnDat2.2接口處于發(fā)送狀態(tài)。當(dāng)開(kāi)始一個(gè)讀取周期時(shí),時(shí)鐘模塊開(kāi)始產(chǎn)生CLK信號(hào)并發(fā)送。兩個(gè)時(shí)鐘周期后,控制模塊驅(qū)動(dòng)發(fā)送模塊1產(chǎn)生并發(fā)送模式指令。指令發(fā)送完成再過(guò)兩個(gè)周期后,控制模塊切換DE的電平使EnDat2.2接口數(shù)據(jù)傳輸方向由發(fā)送轉(zhuǎn)為接收。此時(shí)接收模塊1準(zhǔn)備接收數(shù)據(jù),在檢測(cè)到一個(gè)高電平后開(kāi)始接收并緩存數(shù)據(jù)。完成數(shù)據(jù)接收后時(shí)鐘模塊停止產(chǎn)生時(shí)鐘信號(hào),CLK信號(hào)線(xiàn)拉高,DE變回低電平。接收的數(shù)據(jù)首先通過(guò)CRC校驗(yàn)檢驗(yàn)EnDat2.2接口是否存在誤碼、串碼等情況。校驗(yàn)通過(guò)的數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)預(yù)處理計(jì)算,由發(fā)送模塊2發(fā)送到主控系統(tǒng)。
5 軟件主程序流程
信號(hào)采集電路內(nèi)部主程序運(yùn)行流程如圖4所示。電路上電后FPGA根據(jù)控制寄存器配置接口各個(gè)參數(shù)。配置信號(hào)采集頻率也會(huì)同時(shí)選定采集時(shí)鐘觸發(fā)和開(kāi)始采集標(biāo)志寄存器。當(dāng)開(kāi)始采集標(biāo)志位置1,開(kāi)始一輪數(shù)據(jù)采集周期。FPGA給長(zhǎng)度計(jì)發(fā)送模式指令并接收長(zhǎng)度計(jì)計(jì)算的位置值。經(jīng)CRC校驗(yàn),如果數(shù)據(jù)傳輸正確,預(yù)處理位置數(shù)據(jù)并將結(jié)果發(fā)送到主控。如果數(shù)據(jù)傳輸有誤,F(xiàn)PGA會(huì)往主控系統(tǒng)發(fā)送出錯(cuò)提示。CRC校驗(yàn)結(jié)束后,F(xiàn)PGA還需要通過(guò)檢測(cè)配置寄存器修改標(biāo)志位來(lái)判斷主控系統(tǒng)是否要求修改信號(hào)采集電路參數(shù)配置。如果修改標(biāo)志位為1,F(xiàn)PGA需要重新配置接口參數(shù)。如果修改標(biāo)志位為O則跳過(guò)重新配置步驟,直接等待下一個(gè)開(kāi)始采集標(biāo)志。
6 系統(tǒng)驗(yàn)證
為了驗(yàn)證電路設(shè)計(jì)的功能和更好的觀察實(shí)際電路中信號(hào)的波形,對(duì)長(zhǎng)度計(jì)和信號(hào)采集電路進(jìn)行了上電測(cè)試。上電后通過(guò)示波器觀察的FPGA在EnDat2.2接口端信號(hào)波形如圖5所示,其中圖5(a)為一個(gè)完整的信號(hào)采集周期,圖5(b)為信號(hào)采集循環(huán)過(guò)程。示波器顯示中1、2、3端口信號(hào)分別對(duì)應(yīng)時(shí)鐘信號(hào)、模式指令和位置數(shù)據(jù)。為了提高接口穩(wěn)定性,時(shí)鐘信號(hào)頻率采用了460kHz。從圖5中可以看到,F(xiàn)PGA時(shí)鐘輸出穩(wěn)定,長(zhǎng)度計(jì)接收到指令信號(hào)后反饋的長(zhǎng)度數(shù)據(jù)正確,接口工作穩(wěn)定,可以達(dá)到lkHz采樣頻率,滿(mǎn)足設(shè)計(jì)要求。
7 結(jié)束語(yǔ)
在測(cè)量領(lǐng)域應(yīng)用中,高精度、數(shù)字化的絕對(duì)式長(zhǎng)度計(jì)越來(lái)越受廣泛的應(yīng)用。在本文中設(shè)計(jì)了基于FPGA的EnDat2.2接口絕對(duì)式長(zhǎng)度計(jì)信號(hào)采集電路。通過(guò)實(shí)驗(yàn)驗(yàn)證,該電路可以滿(mǎn)足設(shè)計(jì)要求,正確、穩(wěn)定、快速的采集長(zhǎng)度計(jì)數(shù)據(jù)。與專(zhuān)用采集卡相比,本文電路實(shí)現(xiàn)了成本低、體積小、集成度高、易操作等優(yōu)點(diǎn)。同時(shí)通過(guò)主控配置參數(shù),此電路可以適配不同種類(lèi)不同位數(shù)的測(cè)量器件,有非常廣泛的適用性。
參考文獻(xiàn)
[1]張松.FPGA的模塊化設(shè)計(jì)方法[J].電子測(cè)量與儀器學(xué)報(bào),2014,28 (05): 560-565.
[2]郭永彩,蘇渝維,高潮,基于FPGA的紅外圖像實(shí)時(shí)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),2011,32 (03): 514-519.
[3]楊海鋼,孫嘉斌,王慰.FPGA器件設(shè)計(jì)技術(shù)發(fā)展綜述[J].電子與信息學(xué)報(bào),2010, 32 (03): 714-727.
[4]孫大海,艾華,基于FPGA雙路EnDat2.2編碼器的接口設(shè)計(jì)[J].液晶與顯示,2014, 29 (05): 745-750.
[5]鄭一麟,林滸,陶耀東,姚愷豐,基于SOPC的數(shù)控系統(tǒng)EnDat 2.2接口的設(shè)計(jì)與實(shí)現(xiàn)[J].小型微型計(jì)算機(jī)系統(tǒng),2012, 33(06):1377-1380.
[6]江瑋,孫宇舟,高麗萍,基于CPLD和長(zhǎng)度計(jì)的數(shù)字化微小位移檢測(cè)的設(shè)計(jì)[J].機(jī)械與電子,2012.