亨士樂絕對值編碼器在實現(xiàn)電機串行通信中的應用設計
目前,家用數(shù)控機床中的伺服電機一般都配備了增量式編碼器,但增量式編碼器的精度不是很高,輸出是并行信號。為了提高其精度,有必要對
亨士樂編碼器的設計進行改進,這很難提高并行信號的輸出,不利于伺服單元與編碼器之間的遠程通信。亨士樂絕對值編碼器不僅比增量式編碼器精確數(shù)倍,而且其信號通過高速串行通信輸入和輸出,為遠程通信節(jié)省了通信線路。在編碼器的另一端,CPLD用于與絕對值編碼器的高速串行通信。然后,CPLD將接收到的編碼器信息轉換為并行數(shù)據(jù),并將其傳輸?shù)剿欧卧械腄SP進行操作控制。本文介紹了CPLD與絕對值編碼器之間高速串行通信的軟硬件設計方案。
硬件設計
硬件主要由三個模塊組成:電源、CPLD及其外圍電路和絕對編碼器接口電路。
圖1 電源結構框圖
電源模塊
基于EPM570T144C5和亨士樂絕對值編碼器的串行電機通信應用設計
圖中的開關電源將220V交流電源電壓轉換為+5V、+15V、-15V。開關電源可以濾除電網中的各種噪聲,開關電源中的變壓器將220VAC連接到輸出+5V、+15V、-15V隔離,內部電路還使用TL431調節(jié)開關管線脈沖寬度,因此具有抗干擾、安全、,開關電源的穩(wěn)定性和電壓調節(jié)性更好。
TPS7333是一款DC/DC芯片,可將+5V直流電壓轉換為穩(wěn)定的+3.3V直流電壓,供CPLD使用。TPS7333具有更好的轉換效率、可靠性和電壓穩(wěn)定性。它在10V的電壓范圍內具有+3.77V~+3.3V的單輸入電壓,因此CPLD不會因輸入電壓過高而燒毀。
CPLD及其外圍電路模塊
CPLD及其外圍電路模塊主要由CPLD、CPLD編程下載接口電路(JTAG接口)、DSP接口電路、有源晶體振蕩器、電平轉換電路、ADM485及其外圍電路(負責與編碼器通信的接口電路)組成(圖2)。
圖2 硬件整體結構框圖
JTAG接口主要用于下載CPLD中的可執(zhí)行文件,在PC機上安裝Altera的開發(fā)環(huán)境QUARTUS II,并在此開發(fā)環(huán)境中編譯編寫的VHDL程序,以確保編譯無錯誤且功能已實現(xiàn)。,將下載電纜連接到JTAG接口,并通過QUARTUS II提供的編程下載工具下載CPLD PCB。
DSP接口由8條數(shù)據(jù)線、3條地址線和1條控制線組成。8條數(shù)據(jù)線負責傳輸編碼器數(shù)據(jù)和其他信息,3條地址線負責在CPLD終端傳輸DSP命令和解碼,CPLD根據(jù)解碼得到的指令,通過8條數(shù)據(jù)線向DSP傳輸編碼數(shù)據(jù)或其他信息,控制線主要完成CPLD與DSP的同步控制。
20M有源晶體振蕩器主要為CPLD提供參考時鐘。在時鐘信號的驅動下,CPLD產生2.5 Mb/s的波特率以與編碼器通信,并為一些邏輯控制信號振蕩器產生10 MHz時鐘。20 MHz的時鐘頻率要求電源提供3.3 V的直流電壓。
電平轉換電路主要負責將3.3V電壓轉換為5V或將5V電壓轉換為3.3V,因為CPLD的核心和I/O端口所需的電源電壓為3.3V,而ADM485和絕對值編碼器要求電源電壓和I/O端口驅動電壓均為5V,因此,有必要使用LVC4245A電平轉換芯片將3.3V轉換為5V或5V轉換為3.3V。
ADM485及其外圍電路是CPLD和絕對值編碼器之間高速通信的硬件連接。ADM485的工作電壓為5V,最大通信速率為5Mb/s。使用兩個ADM485芯片進行對接通信可以提高通信線路上的抗干擾能力,最長傳輸距離可達1.2km。其外圍電路如圖3所示。虛線的右半部分屬于絕對值編碼器的外部電路。上拉和下拉電阻器均為1千歐,限流電阻器為220Ω。ADM485的SDAT是數(shù)據(jù)輸出引腳,ADM485的SRQ是數(shù)據(jù)輸入引腳,ADM485的DE是外部控制引腳,該引腳由CPLD控制,因為RS-485通信協(xié)議是半雙工的,所以當ADM485的DE高時,ADM485只能在ADM485時處于發(fā)送數(shù)據(jù)或接收數(shù)據(jù)的狀態(tài),ADM485處于數(shù)據(jù)輸出狀態(tài)(即CPLD正在接收數(shù)據(jù))。當ADM485的DE低時,ADM485處于數(shù)據(jù)輸入狀態(tài)(即CPLD正在發(fā)送數(shù)據(jù))。
圖3 絕對式編碼器接口電路
亨士樂絕對值編碼器接口模塊
絕對值編碼器接口模塊是指絕對值編碼器內部的電源和信號輸入輸出接口電路。其電路與上述ADM485及其外圍電路相同。它還使用了ADM485芯片和一些上拉和限流電阻器。如圖3所示,虛線的左半部分表示絕對編碼器的內部接口電路,該電路負責連接到外部ADM485(虛線的右半部分)。ADM485由內部控制芯片控制,當編碼器接收到CPLD發(fā)送的命令時,控制芯片做出判斷并發(fā)送相應的數(shù)據(jù),并將ADM485的DE驅動到高電平,即使ADM485處于發(fā)送狀態(tài),數(shù)據(jù)也被發(fā)送,控制芯片將ADM485的DE控制在低電平。電平狀態(tài)便于隨時從CPLD獲取命令。
軟件設計
軟件是指CPLD的VHDL程序,主要由六個子軟件模塊組成:分頻器、接收DSP控制命令、CPLD邏輯控制、波特率發(fā)生器、接收和發(fā)送數(shù)據(jù)、串并轉換和發(fā)送數(shù)據(jù)(圖4)。
圖4 軟件整體結構框圖
分離模塊
分頻器模塊主要將20MHz輸入時鐘頻率分為10MHz和2.5MHz時鐘頻率,其中10MHz時鐘主要用于CPLD邏輯控制模塊,2.5MHz時鐘主要用于確定波特率發(fā)生器模塊。
接收DSP控制命令模塊
接收DSP控制命令的模塊實時采集DSP發(fā)送的控制信號,并對控制信號進行實時解碼。解碼完成后,它立即被傳輸?shù)紺PLD邏輯控制模塊。
CPLD邏輯控制模塊
CPLD邏輯控制模塊是所有CPLD軟件的核心。接收到解碼數(shù)據(jù)后,它立即執(zhí)行邏輯控制操作,并快速控制接收和發(fā)送數(shù)據(jù)模塊,以及串行到并行轉換和發(fā)送數(shù)據(jù)模塊。
波特率發(fā)生器模塊
波特率發(fā)生器模塊主要為接收和發(fā)送數(shù)據(jù)模塊提供2.5 Mb/s的波特率。
收發(fā)數(shù)據(jù)模塊
收發(fā)數(shù)據(jù)模塊是整個CPLD軟件的重要組成部分。它主要負責與絕對編碼器的高速通信。由于其通信方式為異步串行通信,其波特率、通信數(shù)據(jù)格式和RS-485通信協(xié)議必須與絕對值編碼器相同。
串行到并行轉換和傳輸數(shù)據(jù)模塊
串并轉換和傳輸數(shù)據(jù)模塊主要將接收到的編碼器串行數(shù)據(jù)轉換為并行數(shù)據(jù),并將數(shù)據(jù)鎖存在CPLD鎖存器中。當CPLD邏輯控制模塊控制傳輸數(shù)據(jù)時,它被鎖存在CPLD中。鎖存器中的數(shù)據(jù)與DSP并行發(fā)送,以便DSP執(zhí)行算術控制。
后記
本設計完成了所有的硬件和軟件設計。用亨士樂絕對值編碼器讀取電機轉子位置數(shù)據(jù)僅需31ms,通信速率可達2.5Mb/s。將此設計與伺服驅動單元相結合,可驅動和控制電機轉速高達6000rpm,控制電機轉子的位置精度可高達1000mM。
Hengstler編碼器授權代理西安德伍拓自動化傳動系統(tǒng)有限公司為您免費提供編碼器技術支持,歡迎您的咨詢。