?

基于FPGA設計EnDat編碼器數據采集后續電路

2010-05-12 03:15
山西電子技術 2010年3期
關鍵詞:雙口電子設備編碼器

張 濤

(國營第七八五廠,山西太原030024)

0 引言

EnDat接口是HEIDENHAIN專為編碼器設計的數字式、全雙工同步串行的數據傳輸協議,具有傳輸速度快、功能強大、連線簡單、抗干擾能力強等優點,是編碼器、光柵尺數據傳輸的通用接口。由于使用了串行傳輸方式,所以只需四條信號線,在后續電子設備的時鐘激勵下,數據信息被同步傳輸。數據類型(位置值、參數、診斷信息等)由后續電子設備發送給編碼器的模式指令選擇決定。編碼器利用自然二進制、循環二進制(格雷碼)或PRC碼對碼盤上的物理刻線進行光電轉換,將連接軸的轉動角度量轉換成相應的電脈沖序列并以數字量輸出。它具有體積小、精度高、接口數字化及絕對定位等優點,被廣泛應用于轉臺、機器人、數控機床和高精度伺服系統等諸多領域。

1 EnDat接口介紹

1.1 EnDat接口的特點

(1)高性能低成本:通用的接口適用于所有的增量和絕對式編碼器,更經濟的電能消耗,小的尺寸和緊湊的連接方式,快速系統配置,零點可根據偏置值浮動。

(2)更好的信號質量:編碼器內部特別的優化提高了系統精度,為數控系統提供更好的輪廓精度。

(3)更好的實用性:自動系統配置功能;數字信號提高了系統的可靠性;監控與診斷信息有利于系統的安全;冗余碼校驗有利于可靠的信號傳輸。

(4)提高了系統的安全性:兩個獨立的位置信息及錯誤信息位,數據的校驗和應答。

(5)適用于先進的技術發展:(高的分辨率、短的控制周期,最快16 M時鐘,安全設計理念)適用于直接驅動技術。

1.2 EnDat2.2編碼器性能的提高

(1)傳輸位置值與附加信息可同時傳輸:附加信息的類型可通過存儲地址選擇碼選擇。

(2)編碼器數據存儲區域包括編碼器制造商參數、OEM廠商參數、運行參數、運行狀態,便于系統實現參數配置。

(3)EnDat2.2編碼器實現了全數字傳輸,增量信號的處理在編碼器內部完成(內置14 Bit細分),提高了信號傳輸的質量和可靠性,可實現更高的分辨率。

(4)監控和診斷功能,報警條件包括:光源失效、信號幅值不足、位置計算錯誤、運行電壓太低或太高、電流消耗太大等;當編碼器的一些極限值被接近或超過時提供警告信號。

(5)更寬的電壓范圍(3.6~14 V)和傳輸速率(16 M)。

圖1 EnDat接口編碼器數據采集原理圖

1.3 時序和OEM數據存儲

在每一幀同步數據傳輸時一個數據包被發送,傳輸循環從時鐘的第一個下降沿開始測量值被保存,計算位置值。在兩個時鐘脈沖(2T)后,后續電子設備發送模式指令“編碼器傳輸位置值”(帶或不帶附加信息)。在計算出了絕對位置值后(見圖2),從起始位開始編碼器向后續電子設備傳輸數據,后續的錯誤位F1和F2(只存在于EnDat2.2指令中)是為所有的監控功能和故障監控服務的群組信號,他們的生成相互獨立,用來表示可能導致不正確位置信息的編碼器故障。導致故障的確切原因保存在“運行狀態”存儲區,可以被后續電子設備查詢。

圖2 無附加信息的位置傳輸

從最低位開始,絕對位置值被傳輸,數據的長度由使用的編碼器類型決定。傳輸位置值所需的時鐘脈沖數保存在編碼器制造商的參數中。位置值數據的傳輸以循環冗余檢測碼結束。

位置值如果帶附加信息,緊接在位置值后的是附加信息1和2,他們也各以一個CRC結束(見圖3)。附加信息的內容由存儲區的選擇地址決定,然后在后面的采樣周期里被傳輸。在后續的傳輸中一直傳輸該信息,直到新的存儲區被選擇。在數據字的結尾,時鐘信號必須置高電平。10~30 μs或1.25~3.75 μs(EnDat可編程的恢復時間 tm)后,數據線回到低電平,然后,新的數據傳輸可在新的時鐘信號下開始。

圖3 帶附件信息的位置傳輸

同時,編碼器為參數提供了不同的存儲區,它們可以被后續電子設備讀取,這些區域可以被編碼器制造商、OEM廠商甚至最終用戶寫入。一些特定的區域是可以被寫保護的。不同系列的編碼器支持不同的OEM存儲區和不同的地址范圍。因此,每一個編碼器必須讀取OEM存儲區的分配信息?;诖嗽?,后續電子電路應基于相對地址編程,而不能使用絕對地址。

2 EnDat接口后續電子設備的電路設計方案

全數字化交流伺服系統中采用TMS320F2812作為控制器,用以實現位置環、速度環和電流環以及SVPWM、電壓和電流采樣等功能。此外,采用 Altera公司的型號為EP1C6Q240C8的Cyclone系列FPGA實現與編碼器接口、譯碼邏輯等功能。同時,在FPGA內部實現了128B的雙口RAM,通過總線實現與DSP之間的數據傳輸,功能框圖如圖4所示。

圖4 功能框圖

FPGA內部分為時鐘發生模塊、發送模塊、接收模塊、雙口RAM模塊、發送使能模塊5個部分。首先,由時鐘發生模塊產生周期為0.5 μs的方波信號,取名為CLOCK,此信號作為通訊同步時鐘信號。在CLOCK的每個時鐘上升沿計數變量COUNT自加1,變量COUNT的初始值為0。當發送使能模塊檢測到COUNT的值為3時,說明編碼器已經將位置值保存完畢,發送使能模塊使SENT_EN信號有效,發送模塊開始發送6位模式指令。當檢測到COUNT的值為9時,停止COUNT在每個時鐘上升沿計數,停止發送數據并使接收使能信號RECEIVE_EN有效,從而使能接收模塊。接收模塊開始檢測數據輸入信號的上升沿,一旦上升沿到來說明收到數據起始位S,啟動COUNT在每個時鐘上升沿計數,以后在每個時鐘信號的上升沿保存位置值,直到檢測到COUNT的值為39時,停止接收數據,由接收模塊向雙口RAM模塊的A口寫入要保存的位置值,從而結束一次FPGA與編碼器的通訊過程。由于每次通訊時間是嚴格固定的,設系統時鐘為2 MHz。FPGA為主叫,當時鐘下降沿到來時,編碼器保存位置值要2個時鐘周期,向編碼器發送“請求數據”控制字共6位“000111”,需時6個時鐘周期,編碼器向FPGA共發送1個起始位、2個“錯誤位”、23位位置值和5位CRC校驗位要31個時鐘周期,共39個時鐘周期,所以每次通訊需要19.5 μs的時間,并且每個時刻具體需要傳遞哪一位數據也是嚴格確定的。因此采用基于時基的設計方法(見圖5)。

在FPGA內部實現了128 B的雙口RAM空間,A口具有8位數據線,7位地址線,用于與編碼器通訊,B口具有16位數據線,7位地址線,用于與DSP通訊,因為TMS320F2812為16位DSP,所以與FPGA中RAM的數據傳遞極為方便。DSP在每個電流環周期發送一個有效的“BEGIN”信號,19.5 μs之后,碼盤信號接收模塊將接收到數據存入FPGA內部雙口RAM的A口中,并按順序排列成16位數據的形式,然后向DSP發送“END”信號,表示一次通訊結束,DSP接收到中斷之后從FPGA的雙口RAM的B口中讀取數據,完成一次通訊。

圖5 時鐘頻率與數據傳輸

圖6 程序流程圖

對FPGA的開發采用XILINX公司的ISE集成環境,硬件描述語言為Verilog HDL語言。圖6為程序流程圖。

3 結束語

本文設計了一種基于FPGA的編碼器接口,用以進行編碼器和伺服驅動器DSP處理器之間的通訊,并且具有CRC校驗等糾錯功能。本文給出了硬件連接和FPGA程序設計流程,可以實現對永磁同步交流電機磁極位置準確的讀取。

[1]林灶生.Verilog FPGA芯片設計[M].北京:北京航空航天大學出版社,2006.

[2]謝青紅,張筱荔.TMS320F2812 DSP原理及其在運動控制系統中的應用[M].北京:電子工業出版社,2009.

猜你喜歡
雙口電子設備編碼器
有機硅灌封材料對計控電子設備的保護應用
某型機載敏感電子設備電磁干擾抑制技術研究
雙口形式的戴維寧定理在電路分析中的應用
基于FPGA的同步機軸角編碼器
基于雙增量碼道的絕對式編碼器設計
Matching mechanism analysis on an adaptive cycle engine
JESD204B接口協議中的8B10B編碼器設計
BIT技術在星載電子設備的應用
雙口RAM讀寫正確性自動測試的有限狀態機控制器設計方法
雙口RAM在無人機三余度飛控計算機數據交換中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合