廣東工業(yè)大學(xué)材料與能源學(xué)院 張海平 劉 偉 黃海清
廣東鍛壓機床廠有限公司 沈紅立
為解決以太網(wǎng)的通信確定性問題,從而消除以太網(wǎng)直接應(yīng)用于工業(yè)現(xiàn)場設(shè)備間通信的主要障礙和為以太網(wǎng)直接應(yīng)用于工業(yè)現(xiàn)場設(shè)備間通信提供技術(shù)可能,需要高速的通信速率、全雙工交換方式。為了滿足這些要求,采用了只有28引腳的業(yè)界標準串行外設(shè)接口(SPI)的以太網(wǎng)控制器ENC28J60,符合IEEE 802.3協(xié)議,可以提供相應(yīng)的功能,不僅大大的簡化了相關(guān)設(shè)計,而且減小占用空間??刂破鱁NC28J60與主控制通過兩個中斷和自帶的SPI實現(xiàn)通信,其數(shù)據(jù)傳輸速率高達10Mb/s。其中ENC28J60內(nèi)置集成MAC和10BASE_T PHY,可按業(yè)界標準的以太網(wǎng)協(xié)議可靠地接受信息報數(shù)據(jù),而且內(nèi)部具有可編程8KB雙端口SRAM緩沖器,可減輕主控單元的內(nèi)存負荷,提供靈活可靠的數(shù)據(jù)管理機制,大大地提高系統(tǒng)傳輸性能。
以太網(wǎng)是一種可實現(xiàn)LAN內(nèi)的嵌入式器件與互聯(lián)網(wǎng)的連接的聯(lián)網(wǎng)技術(shù)。擁有以太網(wǎng)功能的嵌入式系統(tǒng),主控制單元便可通過網(wǎng)絡(luò)分發(fā)數(shù)據(jù),并遙控控制。因以太網(wǎng)架構(gòu)、性能、互操作性、可擴展性及開發(fā)簡便等特點,已成為嵌入式網(wǎng)絡(luò)應(yīng)用的標準通訊技術(shù)。但是實時以太網(wǎng)控制往往要求對某些變量的數(shù)據(jù)準確定時刷新。在工業(yè)以太網(wǎng)的應(yīng)用中,PC機上數(shù)據(jù)的雙向傳輸,可采用現(xiàn)場可編程門陣列FPGA作為控制的硬件。而且從系統(tǒng)集成角度上,對于帶有SPI接口的ENC28J60芯片選用FPGA技術(shù)實現(xiàn)SPI的設(shè)計也是最優(yōu)的選擇。滿足編程靈活、集成度高、可移植性好、開發(fā)工具先進、設(shè)計成本低的優(yōu)點。本系統(tǒng)中采用型號為DB4CE15的Cyclone IV的FPGA芯片,該芯片支持32位的RISC軟CPU內(nèi)核即NIOS II處理器,可根據(jù)需要完成SPI串口的設(shè)計。
圖1 通信原理
圖2 硬件電路
圖3 FPGA設(shè)計SPI串口主模式結(jié)構(gòu)圖
圖4 NIOS II硬件開發(fā)
圖5 NIOS IDE設(shè)計
圖6 TCP/IP測試結(jié)果
在以太網(wǎng)通信的原理的基礎(chǔ)上,對其中ENC28J60外圍電路和基于FPGA的SPI串口進行設(shè)計,包括控制命令和數(shù)據(jù)傳輸,著重闡述了傳輸接口SPI的設(shè)計方案。
將FPGA連接到速率為10Mbps的以太網(wǎng)實驗系統(tǒng)的結(jié)構(gòu)框圖如圖1所示,主要包括主控制器FPGA、以太網(wǎng)控制器ENC28J60、信息收發(fā)系統(tǒng)PC機、以太網(wǎng)變壓器、以及復(fù)位自動檢測LED。
工作流程如下:
FPGA通過RESET復(fù)位控制ENC28J60以太網(wǎng)控制器,準備開始數(shù)據(jù)傳輸。
按照上一節(jié)點傳達命令,PC機的服務(wù)器通過RJ45發(fā)送節(jié)點數(shù)據(jù)經(jīng)過以太網(wǎng)變壓器,由以太網(wǎng)控制器ENC28J60緩沖器接受。
節(jié)點數(shù)據(jù)由ENC28J60分析處理,經(jīng)ENC-28J60和主控制FPGA的通信通道SPI接口,由FPGA接受數(shù)據(jù),并對通過SPI接受的數(shù)據(jù)命令進行解析。
節(jié)點數(shù)據(jù)由FPGA內(nèi)部寄存器保存并由SPI接口發(fā)送給ENC28J60控制器,在經(jīng)過ENC28J60內(nèi)部的PHY(物理層介質(zhì)接入層)編碼譯碼傳出數(shù)據(jù)。
最終PC機的客戶端接收節(jié)點數(shù)據(jù),完成一個節(jié)點的傳輸存儲過程。
從上述的工作流程中可以看出,通信系統(tǒng)的關(guān)鍵在于ENC28J60以太網(wǎng)控制器與主控制器的通信通過兩個中斷引腳和SPI實現(xiàn),只需4條連線即可與主控制單元連接,兩個專用的引腳用于連接LED,進行網(wǎng)絡(luò)活動狀態(tài)指示。ENC28J60工作電壓為3.3V,但易于集成于5V系統(tǒng)中,其CS、SCK、SI和RESET引腳都可以承受5V電壓,CS(片選)、SI(SPI數(shù)據(jù)輸入端口)和SCK(時鐘)最大耐壓為5V,CS的內(nèi)部上拉能力較弱。FPGA(EB4CE15)的I/O口與ENC28J60以太網(wǎng)控制器的端口都是3.3v,在設(shè)計中就省去了電平轉(zhuǎn)換部分。
其控制部分的硬件實現(xiàn)是由四代FPGA開發(fā)板、以太網(wǎng)控制器ENC28J60、網(wǎng)絡(luò)接口RJ45等組成,電路如圖2。
FPGA與以太網(wǎng)控制器ENC28J60具有設(shè)計需要的相同的輸入/輸出端和功能,所以在連接EB4CE15和ENC28J60的時候,只需取時鐘頻率為25Mhz的EB4CE15的輸入,輸出端口對應(yīng)于ENC28J60各個連接端口的功能即可。
SPI的通信采用主從方式、半雙工方式工作,可由MISO(主入從出),MOSI(主出從入),SCK(時鐘),CS(片選)四根線完成。當控制芯片被選中,CS信號變成預(yù)定使能信號時,芯片的操作才有效。這就允許在同一總線上連接多個SPI設(shè)備成為可能。在FPGA中設(shè)計的SPI串口主模式結(jié)構(gòu)圖如圖3,采用SOPC可編程片上系統(tǒng)集成硬核或軟核CPU、鎖相環(huán)PLL、存儲器、I/O接口等,可以靈活高效地解決工業(yè)標準串行接口協(xié)議SPI的設(shè)計,其設(shè)計周期短,設(shè)計成本低。SOPC Builder中提供了現(xiàn)成的SPI核,可以輕松地集成到NIOS II系統(tǒng)中。
NIOS II是一個用戶可自行配置的通用32位RISC嵌入式處理器,是SOPC(System On a Programmable Chip,片上可編程系統(tǒng))的核心,具有可定制和可配置性特性。SOPC的開發(fā)包括硬件和軟件兩部分,硬件開發(fā)在Quartus II自帶的SOPC Builder中實現(xiàn)的,然后集成到NIOS IDE軟件中實現(xiàn)整個設(shè)計。
其硬件開發(fā)在Quartus II 11.0中的實現(xiàn)如圖4,主要包括100Mhz輸出時鐘的PLL模塊和SOPC設(shè)計的kenerl部分,其中kernel中包含了NIOS II Processor、SYSTEM ID、SDRAM、EPCS以及JTAG UART。
由于SPI支持速率為10Mbps的網(wǎng)絡(luò),為了滿足要求,在原有FPGA時鐘為25MHZ的基礎(chǔ)上倍頻至100MHZ。對于核心部分kenerl的SOPC設(shè)計,結(jié)合四代開發(fā)板優(yōu)勢,將系統(tǒng)通信過程中的數(shù)據(jù)直接存貯在SDRAM。
軟件集成部分如圖5在NIOS IDE中通過對system.h的變動,對sopc.h修改和對enc28j60.h的結(jié)構(gòu)體創(chuàng)建,它的優(yōu)點在于,通過結(jié)構(gòu)體的形式將零散的數(shù)據(jù)整合在一起,大大提高了程序的可讀性、可維護性和可移植性。
對于網(wǎng)口程序,由于微處理器內(nèi)存和運算速度存在一定的限制,難以在微控制芯片上實現(xiàn)所有的TCP/IP協(xié)議,為了滿足嵌入式控制系統(tǒng)的可靠性和實時性需求,實現(xiàn)TCP/IP通信,必須對TCP/IP協(xié)議進行相應(yīng)選擇。其TCP/IP測試結(jié)果如圖6,其中的參數(shù)設(shè)置如下:
FPGA參數(shù)設(shè)置為:
IP地址:127.0.0.15
TCP端口號:502
PC機參數(shù)設(shè)置為:
IP地址:127.0.0.1
端口號:502
對于將工業(yè)以太網(wǎng)技術(shù)應(yīng)用到現(xiàn)場總線是未來工業(yè)實時以太網(wǎng)發(fā)展趨勢,基于FPGA的嵌入式帶有SPI接口的以太網(wǎng)的軟硬件實現(xiàn)方法具有性能好、成本低等優(yōu)點。實驗測試結(jié)果表明,采用ENC28J60這種具有特色的以太網(wǎng)控制器,系統(tǒng)具有良好的實時性和可靠性。而且這種具有可移植性好和頻率高的設(shè)計應(yīng)用的微細加工中,可以很好的提高網(wǎng)絡(luò)傳輸?shù)膶崟r性,提高加工的效率。
[1]周曉陽,程紅等.新型以太網(wǎng)控制器ENC28J60及其接口技術(shù)[J].單片機與嵌入式系統(tǒng)應(yīng)用,2006(8).
[2]李偉堯.基于以太網(wǎng)控制器ENC28J60嵌入式TCP/IP技術(shù)的研究[J].科技信息,2009(30).
[3]陳奎,吳愛國等.用ENC28J60和FPGA設(shè)計通用以太網(wǎng)控制器[J].電子產(chǎn)品世界,2005(21).
[4]ENC28J60數(shù)據(jù)手冊—帶SPI接口的獨立以太網(wǎng)控制器,Microchip Technology Inc,2006.
[5]黃佳瑋,陳福深.基于NiosⅡ的SOPC嵌入式系統(tǒng)設(shè)計[J].電子元器件應(yīng)用,2009.