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