亨士樂絕對值編碼器在實現(xiàn)電機串行通信中的應用設計
目前,家用數(shù)控機床中的伺服電機一般都配備了增量式編碼器,但增量式編碼器的精度不是很高,輸出是并行信號。為了提高其精度,有必要對
亨士樂編碼器的設計進行改進,這很難提高并行信號的輸出,不利于伺服單元與編碼器之間的遠程通信。亨士樂絕對值編碼器不僅比增量式編碼器精確數(shù)倍,而且其信號通過高速串行通信輸入和輸出,為遠程通信節(jié)省了通信線路。在編碼器的另一端,CPLD用于與絕對值編碼器的高速串行通信。然后,CPLD將接收到的編碼器信息轉換為并行數(shù)據(jù),并將其傳輸?shù)剿欧卧械腄SP進行操作控制。本文介紹了CPLD與絕對值編碼器之間高速串行通信的軟硬件設計方案。
硬件設計
硬件主要由三個模塊組成:電源、CPLD及其外圍電路和絕對編碼器接口電路。
圖1 電源結構框圖
電源模塊
基于EPM570T144C5和亨士樂絕對值編碼器的串行電機通信應用設計
圖中的開關電源將220V交流電源電壓轉換為+5V、+15V、-15V。開關電源可以濾除電網(wǎng)中的各種噪聲,開關電源中的變壓器將220VAC連接到輸出+5V、+15V、-15V隔離,內(nèi)部電路還使用TL431調(diào)節(jié)開關管線脈沖寬度,因此具有抗干擾、安全、,開關電源的穩(wěn)定性和電壓調(diào)節(jié)性更好。
TPS7333是一款DC/DC芯片,可將+5V直流電壓轉換為穩(wěn)定的+3.3V直流電壓,供CPLD使用。TPS7333具有更好的轉換效率、可靠性和電壓穩(wěn)定性。它在10V的電壓范圍內(nèi)具有+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產(chǎn)生2.5 Mb/s的波特率以與編碼器通信,并為一些邏輯控制信號振蕩器產(chǎn)生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 絕對式編碼器接口電路
亨士樂絕對值編碼器接口模塊
絕對值編碼器接口模塊是指絕對值編碼器內(nèi)部的電源和信號輸入輸出接口電路。其電路與上述ADM485及其外圍電路相同。它還使用了ADM485芯片和一些上拉和限流電阻器。如圖3所示,虛線的左半部分表示絕對編碼器的內(nèi)部接口電路,該電路負責連接到外部ADM485(虛線的右半部分)。ADM485由內(nèi)部控制芯片控制,當編碼器接收到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)有限公司為您免費提供編碼器技術支持,歡迎您的咨詢。