劉塔拉 賈建祿 吳慶林



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