廣東工業大學材料與能源學院 張海平 劉 偉 黃海清
廣東鍛壓機床廠有限公司 沈紅立
為解決以太網的通信確定性問題,從而消除以太網直接應用于工業現場設備間通信的主要障礙和為以太網直接應用于工業現場設備間通信提供技術可能,需要高速的通信速率、全雙工交換方式。為了滿足這些要求,采用了只有28引腳的業界標準串行外設接口(SPI)的以太網控制器ENC28J60,符合IEEE 802.3協議,可以提供相應的功能,不僅大大的簡化了相關設計,而且減小占用空間。控制器ENC28J60與主控制通過兩個中斷和自帶的SPI實現通信,其數據傳輸速率高達10Mb/s。其中ENC28J60內置集成MAC和10BASE_T PHY,可按業界標準的以太網協議可靠地接受信息報數據,而且內部具有可編程8KB雙端口SRAM緩沖器,可減輕主控單元的內存負荷,提供靈活可靠的數據管理機制,大大地提高系統傳輸性能。
以太網是一種可實現LAN內的嵌入式器件與互聯網的連接的聯網技術。擁有以太網功能的嵌入式系統,主控制單元便可通過網絡分發數據,并遙控控制。因以太網架構、性能、互操作性、可擴展性及開發簡便等特點,已成為嵌入式網絡應用的標準通訊技術。但是實時以太網控制往往要求對某些變量的數據準確定時刷新。在工業以太網的應用中,PC機上數據的雙向傳輸,可采用現場可編程門陣列FPGA作為控制的硬件。而且從系統集成角度上,對于帶有SPI接口的ENC28J60芯片選用FPGA技術實現SPI的設計也是最優的選擇。滿足編程靈活、集成度高、可移植性好、開發工具先進、設計成本低的優點。本系統中采用型號為DB4CE15的Cyclone IV的FPGA芯片,該芯片支持32位的RISC軟CPU內核即NIOS II處理器,可根據需要完成SPI串口的設計。

圖1 通信原理

圖2 硬件電路

圖3 FPGA設計SPI串口主模式結構圖

圖4 NIOS II硬件開發

圖5 NIOS IDE設計

圖6 TCP/IP測試結果
在以太網通信的原理的基礎上,對其中ENC28J60外圍電路和基于FPGA的SPI串口進行設計,包括控制命令和數據傳輸,著重闡述了傳輸接口SPI的設計方案。
將FPGA連接到速率為10Mbps的以太網實驗系統的結構框圖如圖1所示,主要包括主控制器FPGA、以太網控制器ENC28J60、信息收發系統PC機、以太網變壓器、以及復位自動檢測LED。
工作流程如下:
FPGA通過RESET復位控制ENC28J60以太網控制器,準備開始數據傳輸。
按照上一節點傳達命令,PC機的服務器通過RJ45發送節點數據經過以太網變壓器,由以太網控制器ENC28J60緩沖器接受。
節點數據由ENC28J60分析處理,經ENC-28J60和主控制FPGA的通信通道SPI接口,由FPGA接受數據,并對通過SPI接受的數據命令進行解析。
節點數據由FPGA內部寄存器保存并由SPI接口發送給ENC28J60控制器,在經過ENC28J60內部的PHY(物理層介質接入層)編碼譯碼傳出數據。
最終PC機的客戶端接收節點數據,完成一個節點的傳輸存儲過程。
從上述的工作流程中可以看出,通信系統的關鍵在于ENC28J60以太網控制器與主控制器的通信通過兩個中斷引腳和SPI實現,只需4條連線即可與主控制單元連接,兩個專用的引腳用于連接LED,進行網絡活動狀態指示。ENC28J60工作電壓為3.3V,但易于集成于5V系統中,其CS、SCK、SI和RESET引腳都可以承受5V電壓,CS(片選)、SI(SPI數據輸入端口)和SCK(時鐘)最大耐壓為5V,CS的內部上拉能力較弱。FPGA(EB4CE15)的I/O口與ENC28J60以太網控制器的端口都是3.3v,在設計中就省去了電平轉換部分。
其控制部分的硬件實現是由四代FPGA開發板、以太網控制器ENC28J60、網絡接口RJ45等組成,電路如圖2。
FPGA與以太網控制器ENC28J60具有設計需要的相同的輸入/輸出端和功能,所以在連接EB4CE15和ENC28J60的時候,只需取時鐘頻率為25Mhz的EB4CE15的輸入,輸出端口對應于ENC28J60各個連接端口的功能即可。
SPI的通信采用主從方式、半雙工方式工作,可由MISO(主入從出),MOSI(主出從入),SCK(時鐘),CS(片選)四根線完成。當控制芯片被選中,CS信號變成預定使能信號時,芯片的操作才有效。這就允許在同一總線上連接多個SPI設備成為可能。在FPGA中設計的SPI串口主模式結構圖如圖3,采用SOPC可編程片上系統集成硬核或軟核CPU、鎖相環PLL、存儲器、I/O接口等,可以靈活高效地解決工業標準串行接口協議SPI的設計,其設計周期短,設計成本低。SOPC Builder中提供了現成的SPI核,可以輕松地集成到NIOS II系統中。
NIOS II是一個用戶可自行配置的通用32位RISC嵌入式處理器,是SOPC(System On a Programmable Chip,片上可編程系統)的核心,具有可定制和可配置性特性。SOPC的開發包括硬件和軟件兩部分,硬件開發在Quartus II自帶的SOPC Builder中實現的,然后集成到NIOS IDE軟件中實現整個設計。
其硬件開發在Quartus II 11.0中的實現如圖4,主要包括100Mhz輸出時鐘的PLL模塊和SOPC設計的kenerl部分,其中kernel中包含了NIOS II Processor、SYSTEM ID、SDRAM、EPCS以及JTAG UART。
由于SPI支持速率為10Mbps的網絡,為了滿足要求,在原有FPGA時鐘為25MHZ的基礎上倍頻至100MHZ。對于核心部分kenerl的SOPC設計,結合四代開發板優勢,將系統通信過程中的數據直接存貯在SDRAM。
軟件集成部分如圖5在NIOS IDE中通過對system.h的變動,對sopc.h修改和對enc28j60.h的結構體創建,它的優點在于,通過結構體的形式將零散的數據整合在一起,大大提高了程序的可讀性、可維護性和可移植性。
對于網口程序,由于微處理器內存和運算速度存在一定的限制,難以在微控制芯片上實現所有的TCP/IP協議,為了滿足嵌入式控制系統的可靠性和實時性需求,實現TCP/IP通信,必須對TCP/IP協議進行相應選擇。其TCP/IP測試結果如圖6,其中的參數設置如下:
FPGA參數設置為:
IP地址:127.0.0.15
TCP端口號:502
PC機參數設置為:
IP地址:127.0.0.1
端口號:502
對于將工業以太網技術應用到現場總線是未來工業實時以太網發展趨勢,基于FPGA的嵌入式帶有SPI接口的以太網的軟硬件實現方法具有性能好、成本低等優點。實驗測試結果表明,采用ENC28J60這種具有特色的以太網控制器,系統具有良好的實時性和可靠性。而且這種具有可移植性好和頻率高的設計應用的微細加工中,可以很好的提高網絡傳輸的實時性,提高加工的效率。
[1]周曉陽,程紅等.新型以太網控制器ENC28J60及其接口技術[J].單片機與嵌入式系統應用,2006(8).
[2]李偉堯.基于以太網控制器ENC28J60嵌入式TCP/IP技術的研究[J].科技信息,2009(30).
[3]陳奎,吳愛國等.用ENC28J60和FPGA設計通用以太網控制器[J].電子產品世界,2005(21).
[4]ENC28J60數據手冊—帶SPI接口的獨立以太網控制器,Microchip Technology Inc,2006.
[5]黃佳瑋,陳福深.基于NiosⅡ的SOPC嵌入式系統設計[J].電子元器件應用,2009.