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