基于FPGA設(shè)計EnDat編碼器數(shù)據(jù)采集后續(xù)電路
摘要:隨著集成電路技術(shù)的發(fā)展,F(xiàn)PGA以其體積小、速度快、功耗低、設(shè)計靈活、利于系統(tǒng)集成、擴展升級等優(yōu)點,被廣泛地應(yīng)用于高速數(shù)字信號傳輸及數(shù)據(jù)處理。EnDat數(shù)據(jù)接口是適用于編碼器的雙向數(shù)字接口。EnDat可傳輸編碼器的位置值,也能傳輸或更新保存在編碼器中的信息或保存新信息。在此介紹了EnDat接口的特點、功能、時序和數(shù)據(jù)傳輸、OEM數(shù)據(jù)存儲,以及編碼器數(shù)據(jù)采集后續(xù)電路設(shè)計方案,基于FPGA編碼器接口的設(shè)計,用以進行編碼器和DSP處理器之間的通訊。
關(guān)鍵詞:EnDat;編碼器;FPGA
O 引言
EnDat接口是HEIDENHAIN專為編碼器設(shè)計的數(shù)字式、全雙工同步串行的數(shù)據(jù)傳輸協(xié)議,具有傳輸速度快、功能強大、連線簡單、抗干擾能力強等優(yōu)點,是編碼器、光柵尺數(shù)據(jù)傳輸?shù)耐ㄓ媒涌凇S捎谑褂昧舜袀鬏敺绞?,所以只需四條信號線,在后續(xù)電子設(shè)備的時鐘激勵下,數(shù)據(jù)信息被同步傳輸。數(shù)據(jù)類型(位置值、參數(shù)、診斷信息等)由后續(xù)電子設(shè)備發(fā)送給編碼器的模式指令選擇決定。編碼器利用自然二進制、循環(huán)二進制(格雷碼)或PRC碼對碼盤上的物理刻線進行光電轉(zhuǎn)換,將連接軸的轉(zhuǎn)動角度量轉(zhuǎn)換成相應(yīng)的電脈沖序列并以數(shù)字量輸出。它具有體積小、精度高、接口數(shù)字化及絕對定位等優(yōu)點,被廣泛應(yīng)用于轉(zhuǎn)臺、機器人、數(shù)控機床和高精度伺服系統(tǒng)等諸多領(lǐng)域。
1 EnDat接口介紹
1.1 EnDat接口的特點
(1)高性能低成本:通用的接口適用于所有的增量和絕對式編碼器,更經(jīng)濟的電能消耗,小的尺寸和緊湊的連接方式,快速系統(tǒng)配置,零點可根據(jù)偏置值浮動。
(2)更好的信號質(zhì)量:編碼器內(nèi)部特別的優(yōu)化提高了系統(tǒng)精度,為數(shù)控系統(tǒng)提供更好的輪廓精度。
(3)更好的實用性:自動系統(tǒng)配置功能;數(shù)字信號提高了系統(tǒng)的可靠性;監(jiān)控與診斷信息有利于系統(tǒng)的安全;冗余碼校驗有利于可靠的信號傳輸。
(4)提高了系統(tǒng)的安全性:兩個獨立的位置信息及錯誤信息位,數(shù)據(jù)的校驗和應(yīng)答。
(5)適用于先進的技術(shù)發(fā)展:(高的分辨率、短的控制周期,最快16 M時鐘,安全設(shè)計理念)適用于直接驅(qū)動技術(shù)。
1.2 EnDa2.2編碼器性能的提高
(1)傳輸位置值與附加信息可同時傳輸:附加信息的類型可通過存儲地址選擇碼選擇。
(2)編碼器數(shù)據(jù)存儲區(qū)域包括編碼器制造商參數(shù)、OEM廠商參數(shù)、運行參數(shù)、運行狀態(tài),便于系統(tǒng)實現(xiàn)參數(shù)配置。
(3)EnDa2.2編碼器實現(xiàn)了全數(shù)字傳輸,增量信號的處理在編碼器內(nèi)部完成(內(nèi)置14 Bit細分),提高了信號傳輸?shù)馁|(zhì)量和可靠性,可實現(xiàn)更高的分辨率。
(4)監(jiān)控和診斷功能,報警條件包括:光源失效、信號幅值不足、位置計算錯誤、運行電壓太低或太高、電流消耗太大等;當編碼器的一些極限值被接近或超過時提供警告信號。
(5)更寬的電壓范圍(3.6~14 V)和傳輸速率(16 M)。
[!--empirenews.page--]
1.3 時序和OEM數(shù)據(jù)存儲
在每一幀同步數(shù)據(jù)傳輸時一個數(shù)據(jù)包被發(fā)送,傳輸循環(huán)從時鐘的第一個下降沿開始測量值被保存,計算位置值。在兩個時鐘脈沖(2T)后,后續(xù)電子設(shè)備發(fā)送模式指令“編碼器傳輸位置值”(帶或不帶附加信息)。在計算出了絕對位置值后(見圖2),從起始位開始編碼器向后續(xù)電子設(shè)備傳輸數(shù)據(jù),后續(xù)的錯誤位F1和F2(只存在于EnDa2.2指令中)是為所有的監(jiān)控功能和故障監(jiān)控服務(wù)的群組信號,他們的生成相互獨立,用來表示可能導(dǎo)致不正確位置信息的編碼器故障。導(dǎo)致故障的確切原因保存在“運行狀態(tài)”存儲區(qū),可以被后續(xù)電子設(shè)備查詢。
從最低位開始,絕對位置值被傳輸,數(shù)據(jù)的長度由使用的編碼器類型決定。傳輸位置值所需的時鐘脈沖數(shù)保存在編碼器制造商的參數(shù)中。位置值數(shù)據(jù)的傳輸以循環(huán)冗余檢測碼結(jié)束。
位置值如果帶附加信息,緊接在位置值后的是附加信息1和2,他們也各以一個CRC結(jié)束(見圖3)。附加信息的內(nèi)容由存儲區(qū)的選擇地址決定,然后在后面的采樣周期里被傳輸。在后續(xù)的傳輸中一直傳輸該信息,直到新的存儲區(qū)被選擇。在數(shù)據(jù)字的結(jié)尾,時鐘信號必須置高電平。10~30μs或1.25~3.75μs(EnDat可編程的恢復(fù)時間tm)后,數(shù)據(jù)線回到低電平,然后,新的數(shù)據(jù)傳輸可在新的時鐘信號下開始。
同時,編碼器為參數(shù)提供了不同的存儲區(qū),它們可以被后續(xù)電子設(shè)備讀取,這些區(qū)域可以被編碼器制造商、OEM廠商甚至最終用戶寫入。一些特定的區(qū)域是可以被寫保護的。不同系列的編碼器支持不同的OEM存儲區(qū)和不同的地址范圍。因此,每一個編碼器必須讀取OEM存儲區(qū)的分配信息?;诖嗽?,后續(xù)電子電路應(yīng)基于相對地址編程,而不能使用絕對地址。
2 EnDat接口后續(xù)電子設(shè)備的電路設(shè)計方案
全數(shù)字化交流伺服系統(tǒng)中采用TMS320F2812作為控制器,用以實現(xiàn)位置環(huán)、速度環(huán)和電流環(huán)以及SVPWM、電壓和電流采樣等功能。此外,采用Altera公司的型號為EPlC6Q240C8的Cyclone系列FPGA實現(xiàn)與編碼器接口、譯碼邏輯等功能。同時,在FPGA內(nèi)部實現(xiàn)了128B的雙口RAM,通過總線實現(xiàn)與DSP之間的數(shù)據(jù)傳輸,功能框圖如圖4所示。
[!--empirenews.page--]
FPGA內(nèi)部分為時鐘發(fā)生模塊、發(fā)送模塊、接收模塊、雙口RAM模塊、發(fā)送使能模塊5個部分。首先,由時鐘發(fā)生模塊產(chǎn)生周期為0.5μs的方波信號,取名為CLOCK,此信號作為通訊同步時鐘信號。在CLOCK的每個時鐘上升沿計數(shù)變量COUNT自加1,變量COUNT的初始值為0。當發(fā)送使能模塊檢測到COUNT的值為3時,說明編碼器已經(jīng)將位置值保存完畢,發(fā)送使能模塊使SENT_EN信號有效,發(fā)送模塊開始發(fā)送6位模式指令。當檢測到COUNT的值為9時,停止COUNT在每個時鐘上升沿計數(shù),停止發(fā)送數(shù)據(jù)并使接收使能信號RECEIVE_EN有效,從而使能接收模塊。接收模塊開始檢測數(shù)據(jù)輸入信號的上升沿,一旦上升沿到來說明收到數(shù)據(jù)起始位s,啟動COUNT在每個時鐘上升沿計數(shù),以后在每個時鐘信號的上升沿保存位置值,直到檢測到COUNT的值為39時,停止接收數(shù)據(jù),由接收模塊向雙口RAM模塊的A口寫入要保存的位置值,從而結(jié)束一次FPGA與編碼器的通訊過程。由于每次通訊時間是嚴格固定的,設(shè)系統(tǒng)時鐘為2MHz。FPGA為主叫,當時鐘下降沿到來時,編碼器保存位置值要2個時鐘周期,向編碼器發(fā)送“請求數(shù)據(jù)”控制字共6位“000111”,需時6個時鐘周期,編碼器向FPCA共發(fā)送1個起始位、2個“錯誤位”、23位位置值和5位CRC校驗位要31個時鐘周期,共39個時鐘周期,所以每次通訊需要19.5μs的時間,并且每個時刻具體需要傳遞哪一位數(shù)據(jù)也是嚴格確定
的。因此采用基于時基的設(shè)計方法(見圖5)。
在FPGA內(nèi)部實現(xiàn)了128 B的雙口RAM空間,A口具有8位數(shù)據(jù)線,7位地址線,用于與編碼器通訊,B口具有16位數(shù)據(jù)線,7位地址線,用于與DSP通訊,因為TMS320F2812為16位DSP,所以與FPGA中RAM的數(shù)據(jù)傳遞極為方便。DSP在每個電流環(huán)周期發(fā)送一個有效的“BEGIN”信號,19.5μs之后,碼盤信號接收模塊將接收到數(shù)據(jù)存入FPGA內(nèi)部雙口RAM的A口中,并按順序排列成16位數(shù)據(jù)的形式,然后向DSP發(fā)送“END”信號,表示一次通訊結(jié)束,DSP接收到中斷之后從FPGA的雙口RAM的B口中讀取數(shù)據(jù),完成一次通訊。
對FPGA的開發(fā)采用XILINX公司的ISE集成環(huán)境,硬件描述語言為Verilog HDL語言。圖6為程序流程圖。
3 結(jié)束語
本文設(shè)計了一種基于FPGA的編碼器接口,用以進行編碼器和伺服驅(qū)動器DSP處理器之間的通訊,并且具有CRC校驗等糾錯功能。本文給出了硬件連接和FPGA程序設(shè)計流程,可以實現(xiàn)對永磁同步交流電機磁極位置準確的讀取。