




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 基于FPGA的以太網(wǎng)激光振鏡控制器設計與實現(xiàn) 袁小軍 張李超 張楠摘 要: 為了提高系統(tǒng)的兼容性、可移植性以及設備的網(wǎng)絡化管理,提出并設計了一種基于FPGA的以太網(wǎng)激光振鏡控制器。控制器采用FPGA作為主控芯片,利用FPGA并行執(zhí)行的特性實現(xiàn)了對XY2?100協(xié)議的精確驅(qū)動,解決了在MCU的實現(xiàn)方案中,占用系統(tǒng)資源高和四路輸出信號存在延時等問題。同時基于FPGA設計并開發(fā)了UDP模塊和SDRAM模塊用于數(shù)據(jù)的收發(fā)與緩存,以保證控制器穩(wěn)定持續(xù)地輸出控制信號。經(jīng)測試結果表明:控制器能夠精確控制振鏡的轉(zhuǎn)角,并且可以靈活支持異構的上位機環(huán)境,解決了傳統(tǒng)基于PCI接口進行數(shù)據(jù)傳輸?shù)恼耒R控制卡在硬件與軟
2、件兼容性上存在的問題,提高了上位機應用程序的可移植性。Key: 激光振鏡控制器; FPGA; 協(xié)議驅(qū)動; UDP模塊設計; SDRAM模塊設計; 信號延時: TN249?34; TP23 : A : 1004?373X(2019)16?0159?05在3D打印領域,振鏡控制方案基本都采用德國ScanLab的RTC控制板卡,該控制板卡雖然功能強大,但同時價格也很昂貴。而且其使用傳統(tǒng)的PCI接口來進行數(shù)據(jù)傳輸,一般情況下只在PC機上使用,因此就上位機硬件的兼容性而言,RTC控制板卡存在明顯的局限性。此外ScanLab只提供Windows平臺下的驅(qū)動程序,所以決定了基于RTC控制板卡開發(fā)的應用程序的
3、不可移植性1?,F(xiàn)階段XY2?100協(xié)議的實現(xiàn)方案中,廖平等提出基于STM32定時器中斷并通過I/O口模擬的方案系統(tǒng),系統(tǒng)將以4 MHz的頻率不斷響應定時器中斷,導致占用系統(tǒng)過多資源,無法有效處理控制模塊2。王文毅等提出基于DSP的I/O模擬方案,從給出的示波器輸出圖來看,其實現(xiàn)的XY2?100協(xié)議的頻率并未達到2 MHz,故使得振鏡掃描頻率降低3。在本控制器中采用以太網(wǎng)實現(xiàn)與上位機的數(shù)據(jù)傳輸,極大地增強了系統(tǒng)的可擴展性,對于上位機而言,它可以是支持以太網(wǎng)的任意操作系統(tǒng)與硬件設備,且通過網(wǎng)絡組播的方式能實現(xiàn)一臺上位機設備控制多個控制器,從而進一步降低系統(tǒng)整體成本。對于上位機應用程序,基于QT框架
4、下的GUI程序也將獲得源代碼級的可移植性。此外在大規(guī)模工廠以及物聯(lián)網(wǎng)的環(huán)境下,基于以太網(wǎng)的控制器將有利于設備的網(wǎng)絡化、集群化管理。基于FPGA的XY2?100模塊采用硬件描述語言設計,利用其并行執(zhí)行的特性,不僅使得協(xié)議的驅(qū)動更加高效和精確,而且模塊化的設計也帶來更好的移植性。1 控制器系統(tǒng)總體設計控制器與上層數(shù)據(jù)提供者組成上下位機的系統(tǒng)結構??刂破髦饕║DP模塊、脈沖信號同步模塊、應用層數(shù)據(jù)處理模塊、SDRAM模塊、XY2?100模塊以及數(shù)據(jù)請求模塊。其中,UDP模塊提供了整個系統(tǒng)的數(shù)據(jù)傳輸保證,內(nèi)部由以太網(wǎng)數(shù)據(jù)接收模塊、以太網(wǎng)數(shù)據(jù)發(fā)送模塊、CRC32檢驗模塊組成;脈沖信號同步模塊提供了在
5、不同時鐘域下的信號同步服務;SDRAM模塊作為系統(tǒng)的數(shù)據(jù)緩存,防止當前網(wǎng)絡出現(xiàn)較大的延時或丟包時導致數(shù)據(jù)中斷的情況;XY2?100模塊主要對XY2?100協(xié)議進行了實現(xiàn),并行輸出4路差分信號,保證了輸出信號的準確性和穩(wěn)定性。數(shù)據(jù)請求模塊不斷地檢測系統(tǒng)當前剩余的數(shù)據(jù)容量,在一定條件下向上位機請求數(shù)據(jù)以及使能XY2?100模塊的輸出??刂破飨到y(tǒng)整體結構框圖如圖1所示。2 硬件方案與開發(fā)環(huán)境控制器主要通過FPGA控制器、PHY芯片以及SDRAM來實現(xiàn)與上位機的數(shù)據(jù)傳輸、緩存以及相關硬件模塊的設計。硬件方案如下:Altera公司Cyclone IV系列EP4CE10F17C8作為硬件電路的FPGA控制
6、器,該芯片是極具功耗和性價比優(yōu)勢,擁有10 320個邏輯單元、414 Kbit的嵌入式存儲資源;選用Realtek公司的RTL8201CP 作為PHY芯片,并采用MII接口和PHY芯片進行數(shù)據(jù)通信,最大支持100 Mb/s的通信速率;選用容量為256 Mbit的SDRAM芯片W9825G6KH?6用作數(shù)據(jù)緩存。 控制器的各個硬件模塊基于Altera的可編程邏輯設計環(huán)境Quartus II 13.1并使用Verilog硬件描述語言開發(fā)。3 UDP模塊3.1 UDP簡介UDP協(xié)議位于TCP/IP協(xié)議棧的傳輸層,相對于面向連接的可靠TCP服務,UDP是面向數(shù)據(jù)報的不可靠傳輸協(xié)議。但正因為UDP沒有建
7、立連接、斷開連接、確認重傳以及擁塞控制,因而UDP的實時性更強,具有較高的傳輸效率而且對系統(tǒng)造成的負載低4。在振鏡控制中,傳輸?shù)膶崟r性極其重要,如果不能滿足特性的實時性要求,那么在加工過程中將會出現(xiàn)加工卡頓的情況。而UDP提供的高效、低延遲的服務就能夠滿足加工中的實時性要求。3.2 UDP的收包處理針對UDP數(shù)據(jù)包的接收,因其是一個流程化的處理過程,所以在FPGA下能夠很容易用狀態(tài)機的方式來實現(xiàn)。因發(fā)送只是接收的逆過程,故在此只介紹UDP收包過程。其中以太網(wǎng)包數(shù)據(jù)格式如圖2所示。首先,接收前導碼,如果接收到8d55則表示開始接收一個UDP數(shù)據(jù)報,并依次接收MAC地址、IP地址并判斷是否與請求的
8、MAC地址和IP地址一致以及使能CRC32校驗;然后,接收UDP首部,得到需要接收的真實數(shù)據(jù)大小,再按照32位的數(shù)據(jù)格式傳輸至接收緩沖區(qū)當中。當全部的數(shù)據(jù)傳輸完成后再判斷CRC32的校驗結果是否一致5。需要注意的是,在中間的狀態(tài),如前導碼錯誤、MAC地址錯誤以及IP地址錯誤時,應該是跳轉(zhuǎn)到RECV_END狀態(tài)而不是跳轉(zhuǎn)到IDLE狀態(tài)。因為中間狀態(tài)在解析數(shù)據(jù)出錯時,UDP數(shù)據(jù)報的接收還沒有結束,如果此時跳轉(zhuǎn)到IDLE狀態(tài)會誤把有效數(shù)據(jù)當成前導碼來解析,所以一旦出錯就將狀態(tài)跳轉(zhuǎn)到RECV_END狀態(tài)并等待該數(shù)據(jù)報傳輸?shù)慕Y束。圖3為UDP接收模塊狀態(tài)跳轉(zhuǎn)圖,在上述過程中,如果所有步驟都無誤,控制器將
9、發(fā)送確認報文告知上位機發(fā)送成功,否則發(fā)送失敗報文,上位機根據(jù)實際情況選擇是否重發(fā)數(shù)據(jù)報。因為MII接口的數(shù)據(jù)輸入總線為四位,所以在進入狀態(tài)機的判斷之前必須先將兩個四位數(shù)據(jù)組裝成一個完整的字節(jié)。圖4為UDP數(shù)據(jù)接收過程中SignalTap抓取的波形圖,表示當上位機發(fā)送4 B字符串1212時,UDP模塊接收到的數(shù)據(jù)。其中,eth_rx_valid表示以太網(wǎng)數(shù)據(jù)輸入有效信號;eth_rx_data表示MII的四位數(shù)據(jù)總線;rx_fs_en表示四位轉(zhuǎn)八位完成信號;rx_data表示轉(zhuǎn)換完成的8位數(shù)據(jù);ren_en表示緩沖區(qū)寫使能脈沖信號,將組裝好的32位數(shù)據(jù)緩存到緩沖區(qū)中。3.3 CRC32校驗CRC
10、校驗用于對以太網(wǎng)數(shù)據(jù)進行檢驗,以確保數(shù)據(jù)的正確性。需要注意的是CRC校驗的數(shù)據(jù)不包括前導碼和幀起始界定符。在FPGA中,相比傳統(tǒng)的串行CRC校驗,為了提高校驗速度,采用并行CRC校驗,對數(shù)據(jù)每次一個字節(jié)8位并行輸入進行校驗6。CRC32校驗在FPGA實現(xiàn)的原理是LFSR(Linear Feedback Shift Register),其思想是各個寄存器儲存上一次CRC32運算的結果,寄存器的輸出即為CRC32的值。CRC32生成的多項式為:G(X)=X32+X26+X23+X22+X16+X12+X11+ X10+X8+X7+X5+X4+X2+X1+14 SDRAM數(shù)據(jù)緩沖模塊為了能夠保證在加
11、工過程中XY2?100的輸入數(shù)據(jù)不中斷,必須為系統(tǒng)增加數(shù)據(jù)緩沖區(qū),因為EP4CE10F17C8 FPGA芯片只有414 Kbit嵌入式RAM塊,故無法滿足設計的要求。又因為SDRAM具有空間存儲量大、讀寫速度快、價格便宜等特點,在本控制器中添加SDRAM芯片作為數(shù)據(jù)緩存7。由于驅(qū)動SDRAM的時序電路較為復雜,在此就不展開。另外為了方便對SDRAM的讀寫,本控制器在封裝時將SDRAM的讀寫操作封裝為FIFO的形式8。SDRAM驅(qū)動框架如圖5所示,其中讀FIFO和寫FIFO都是由FPGA 的FIFO IP核生成。因為考慮到在不同網(wǎng)絡環(huán)境緩沖區(qū)的大小應該不同并且不可能一次性將所有的加工數(shù)據(jù)存入緩沖
12、區(qū)中。另外根據(jù)XY2?100協(xié)議,實際上數(shù)據(jù)更新的頻率為100 kHz,綜合分析后將緩沖區(qū)的大小設置為1 MB,這樣即使上位機網(wǎng)絡2.5 s內(nèi)無法響應數(shù)據(jù)也能夠保證加工不會被中斷。5 數(shù)據(jù)請求與XY2?100模塊5.1 XY2?100模塊在數(shù)字振鏡的運動控制中,XY2?100協(xié)議已經(jīng)成為了行業(yè)里的默認標準。XY2?100協(xié)議由四路差分信號組成,包括:時鐘信號(SENDCK)、同步信號(SYNC)、CHANNELX(X偏轉(zhuǎn)鏡數(shù)據(jù))、CHANNELY(Y偏轉(zhuǎn)鏡數(shù)據(jù))。其中,時鐘信號為2 MHz,當處于上升沿時,數(shù)據(jù)位被寫入,當處于下降沿時數(shù)據(jù)位被振鏡反射系統(tǒng)采樣。經(jīng)試驗表明,當時鐘頻率小于2 MH
13、z時,振鏡也是能夠正常工作的。只不過振鏡單位時間內(nèi)能夠偏轉(zhuǎn)的次數(shù)將降低,同時當上位機需要使用振鏡掃描跳轉(zhuǎn)延時功能時,延時的精度也會降低。協(xié)議的時序圖如圖6所示,當同步信號處于上升沿時,第一個數(shù)據(jù)位被發(fā)送。當同步信號處于下降沿時,最后一位奇偶校驗位被發(fā)送。數(shù)據(jù)通道的20位數(shù)據(jù)中,前三位為控制頭,一般默認為001,最后一位為偶校驗位,中間的16位數(shù)據(jù)位為最終應用在振鏡轉(zhuǎn)動軸上的坐標數(shù)據(jù)9。XY2?100模塊原理圖見圖7,模塊有4個輸入信號,分別是2 MHz的時鐘、復位信號、輸出使能信號以及32位加工數(shù)據(jù)。其中,32位加工數(shù)據(jù)中,高16位為CHANNEL_X的坐標數(shù)據(jù),低16位為CHANNEL_Y的
14、坐標數(shù)據(jù)。5個輸出信號分別是RD_REQ數(shù)據(jù)請求脈沖信號和四路XY2?100協(xié)議的驅(qū)動信號。其中RD_REQ在SYNC信號拉高時拉高并在下一個時鐘周期拉低。協(xié)議的實現(xiàn)在一個時序邏輯中完成,因為協(xié)議的一個控制周期由20個時鐘周期組成,故模塊使用一個8位的計數(shù)器控制CASE語句的分支跳轉(zhuǎn),依次進行協(xié)議控制頭輸出,數(shù)據(jù)部分按位輸出以及校驗位的計算與輸出。5.2 數(shù)據(jù)請求模塊控制器的數(shù)據(jù)請求模塊也由狀態(tài)機實現(xiàn),其中狀態(tài)跳轉(zhuǎn)圖如圖8所示。初始狀態(tài)處在IDLE狀態(tài),當由上位機發(fā)送加工使能時跳轉(zhuǎn)到EMPTY狀態(tài)。因為設置的緩沖區(qū)大小為1 MB,所以當處于EMPTY時就立馬向上位機請求緩沖區(qū)大小,即1 MB的
15、數(shù)據(jù)量。對于上位機而言,如果所需加工的數(shù)據(jù)小于1 MB,那么剩下的數(shù)據(jù)就由加工數(shù)據(jù)中最后一個坐標點來進行填充,這樣就可以使得振鏡能夠停在最后一個加工點。當緩沖區(qū)被填滿時,在下一個時鐘周期進入ST_FULL狀態(tài),并且將輸出使能置1。隨著緩沖區(qū)內(nèi)的數(shù)據(jù)以100 kHz的速率被消耗,緩沖區(qū)中的數(shù)據(jù)將會小于512 KB,那么此時該模塊將向上位機請求512 KB的數(shù)據(jù)量并在下一個時鐘周期進入HALF_FULL狀態(tài)。此時緩沖區(qū)中的數(shù)據(jù)不僅在不斷地被XY2?100模塊消耗,而且也在不斷的被UDP模塊寫入數(shù)據(jù),并且寫入速度遠大于消耗速度,所以當全部收到512 KB數(shù)據(jù)后將再次進入FULL狀態(tài)。如果已經(jīng)加工完成
16、了,那么上位機將不會發(fā)送數(shù)據(jù),同時會將加工使能置0,那么當緩沖區(qū)為空時,HALF_FULL狀態(tài)將進入IDLE狀態(tài),整個狀態(tài)循環(huán)回到起始點并等待下一次加工使能10?11。5.3 脈沖信號同步模塊因為在不同的時鐘域下,如果直接將不同頻率下的信號直接連接在一起,那么就有可能出現(xiàn)亞穩(wěn)態(tài),即a頻率模塊下的信號可能不會被b頻率模塊正確地采集到。所以在這種情況下,就需要將一種頻率下的脈沖信號轉(zhuǎn)換為另一個頻率下的脈沖信號,即脈沖信號的同步12?13。在本控制器中,UDP模塊的接收數(shù)據(jù)使能脈沖信號、數(shù)據(jù)請求模塊的數(shù)據(jù)請求脈沖信號、XY2?100模塊的讀數(shù)據(jù)脈沖信號都需要經(jīng)過脈沖信號同步模塊的處理后才能夠發(fā)送到對
17、應的接收端。圖9為脈沖同步模塊工作原理圖。圖9中,首先將CLK_A時鐘下的PULSE_A轉(zhuǎn)換為取反后的電平信號PULSE_INV_D0,以確保在CLK_B時鐘下能夠采集到,轉(zhuǎn)換后的電平信號PULSE_INV_D0在CLK_B時鐘下進行打拍;再對打拍后的信號PULSE_INV_D2和PULSE_INV_D3進行異或處理;最后就能得到在CLK_B時鐘下持續(xù)一個時鐘周期的脈沖信號PULSE_B。6 實驗驗證及分析圖10表示上位機發(fā)送兩個4 B的字符串1212和1213,最終由XY2?100模塊輸出的波形。因為字符1,2,3的ASCII碼分別是31,32,33,對應的二進制數(shù)為001100001,00
18、110010和00110011,且通道X的數(shù)據(jù)為32位數(shù)據(jù)中的高16位,通道Y的數(shù)據(jù)為低16位,所以最終的波形輸出與輸入數(shù)據(jù)相符。在其他文獻對XY2?100的實現(xiàn)中利用MCU的定時器中斷通過I/O口來模擬,這種方式使得系統(tǒng)一直處于頻繁的響應定時器中斷,不僅極大地占用系統(tǒng)資源,而且因為MCU的串行執(zhí)行使得XY2?100四個輸出信號的上升沿存在延時。從圖10中可以得出本控制器能夠精確地同步輸出四路信號。通過搭建由振鏡控制器、振鏡SG7210、P20QE脈沖光纖激光器,并采用F?theta透鏡方式聚焦的振鏡測試平臺進一步對輸出的準確性進行驗證。因為振鏡SG7210的最大掃描角度為15,根據(jù)XY2?1
19、00協(xié)議可知,振鏡的掃描頻率為100 kHz,最大的掃描數(shù)值為65 535,故該測試平臺下的掃描分辨率能達到4.510-4()。圖11表示基于上述測試平臺在黑紙板上加工得到的簡單圖形。其中圖形數(shù)據(jù)的準備、矯正、插補,以及實際坐標與振鏡轉(zhuǎn)角的轉(zhuǎn)換全部由上位機實現(xiàn)。7 結 語本文設計一種基于FPGA的以太網(wǎng)激光振鏡控制器。該控制器以EP4CE10F17C8為控制核心,實現(xiàn)了XY2?100數(shù)字振鏡控制協(xié)議,使得振鏡的控制精度和穩(wěn)定性都得到提高并能夠進行實際掃描。經(jīng)測試結果表明,基于UDP協(xié)議實現(xiàn)的以太網(wǎng)數(shù)據(jù)傳輸方式極大地改善了上位機軟硬件的兼容性以及應用程序的可移植性。因此該控制器將在3D打印的控制
20、系統(tǒng)中有廣泛應用。Reference1 張花信.基于FPGA的三維激光掃描控制系統(tǒng)的設計研究D.西安:西安電子科技大學,2017.ZHANG Huaxin. Design and research on the control system of three?dimensional laser scanning based on FPGA D. Xian: Xidian University, 2017.2 王文毅,呂勇,陳青山,等.基于XY2?100協(xié)議的振鏡控制轉(zhuǎn)換板的設計與實現(xiàn)J.自動化與儀器儀表,2014(12):147?148.WANG Wenyi, L? Yong, CHEN Qi
21、ngshan, et al. Design and implementation the galvanometer control transfer board based on XY2?100 protocol J. Automation and instrumentation, 2014(12): 147?148.3 廖平,陳永坤.基于STM32的激光打標機控制系統(tǒng)設計J.激光與紅外2016,46(12):1447?1451.LIAO Ping, CHEN Yongkun. Design of laser marking control system based on STM32 J. L
22、aser & infrared, 2016, 46(12): 1447?1451.4 謝希仁.計算機網(wǎng)絡M.4版.北京:電子工業(yè)出版社,2005.XIE Xiren. Computer network M. 4th ed. Beijing: Electronic Industry Press, 2005.5 吳長瑞,徐建清,蔣景紅.基于FPGA的千兆以太網(wǎng)接口應用研究與實現(xiàn)J.現(xiàn)代電子技術,2018,41(9):1?5.WU Changrui, XU Jianqing, JIANG Jinghong. Applied research of Gigabit Ethernet interface
23、 and its implementation based on FPGA J. Modern electronics technique, 2018, 41(9): 1?5.6 付高原,郭臣,潘進勇,等.基于FPGA的UDP點對點傳輸協(xié)議實現(xiàn)J.電子設計工程,2017,25(2):181?184.FU Gaoyuan, GUO Chen, PAN Jinyong, et al. Implementation of point?to?point transmission based on UDP protocol with FPGA J. Electronic design engineeri
24、ng, 2017, 25(2): 181?184.7 齊佳碩,王洪巖.基于FPGA的SDRAM接口設計及實現(xiàn)J.電子測量技術,2018(19):141?144.QI Jiashuo, WANG Hongyan. Design and implementation of the SDRAM interface based on the FPGA J. Electronic measurement technology, 2018(19): 141?144.8 宗凱.基于FPGA的DDR3控制器設計J.電子測量技術,2017(1):118?122.ZONG Kai. Design of DDR3
25、controller based on FPGA J. Electronic measurement technology, 2017(1): 118?122.9 王守輝.高精度高速振鏡控制系統(tǒng)設計J.光電技術應用,2015(2):7?10.WANG Shouhui. Design of high precision and speed galvanometer control system J. Electro?optic technology application, 2015(2): 7?10.10 閆偉強.基于ARM+FPGA的激光打標機控制器設計D.南京:南京理工大學,2010.YAN Weiqiang. Design of laser marking ma
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電影宣傳社交媒體廣告的投放與效果評估
- 2025年婁底幼兒師范高等??茖W校單招職業(yè)傾向性測試題庫學生專用
- 社區(qū)資源在支持腫瘤患者睡眠管理中的角色
- 科技美學與環(huán)保理念在產(chǎn)品設計中的融合
- Unit 4 課時教學設計 2024-2025學年牛津譯林版英語八年級上冊
- 社區(qū)藝術景觀設計的生態(tài)環(huán)保理念
- 科技行業(yè)bi應用創(chuàng)新驅(qū)動的決策支持
- 小學生英語音標教學課件
- 禁酒令教育培養(yǎng)健康生活習慣
- 網(wǎng)線入戶合同范本
- 工程結構質(zhì)量特色介紹
- 巴馬格紡絲控制系統(tǒng)軟件說明書(共46頁)
- 肺結核患者管理ppt課件
- 煤矸石綜合利用項目可行性研究報告寫作范文
- 清華大學MBA課程——運籌學
- 《計量經(jīng)濟學》超全題庫及答案(完整版)
- 濕法冶金浸出凈化和沉積PPT課件
- 生產(chǎn)現(xiàn)場作業(yè)十不干PPT課件
- 雨污水管網(wǎng)勞務施工分包合同
- 通信桿路工程施工
- 初中物理光學經(jīng)典題(共23頁)
評論
0/150
提交評論