基于FPGA的SPI串行接口实时以太网实现

时间:2022-05-31 12:50:17

【摘要】工业以太网,从控制网络的角度来看,属于一种新型的现场控制总线,正处于不断完善和发展中。基于ENC28J60芯片的独立以太网控制器接口通信系统,不仅能实现嵌入式控制系统与以太网的互联,而且能够实时可靠地传输数据,其中包括新型实时以太网通信的原理、串行接口SPI的软硬件设计、TCP/IP协议的选择及参数设置、TCP/IP通信测试。

【关键词】以太网;ENC28J60;SPI;FPGA

1.引言

为解决以太网的通信确定性问题,从而消除以太网直接应用于工业现场设备间通信的主要障碍和为以太网直接应用于工业现场设备间通信提供技术可能,需要高速的通信速率、全双工交换方式。为了满足这些要求,采用了只有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串口的设计。

在以太网通信的原理的基础上,对其中ENC28J60电路和基于FPGA的SPI串口进行设计,包括控制命令和数据传输,着重阐述了传输接口SPI的设计方案。

2.系统通信原理

将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。

3.SPI总线接口设计

FPGA与以太网控制器ENC28J60具有设计需要的相同的输入/输出端和功能,所以在连接EB4CE15和ENC28J60的时候,只需取时钟频率为25Mhz的EB4CE15的输入,输出端口对应于ENC28J60各个连接端口的功能即可。

SPI的通信采用主从方式、(下转第162页)(上接第142页)半双工方式工作,可由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的结构体创建,它的优点在于,通过结构体的形式将零散的数据整合在一起,大大提高了程序的可读性、可维护性和可移植性。

4.TCP/IP协议设置及测试

对于网口程序,由于微处理器内存和运算速度存在一定的限制,难以在微控制芯片上实现所有的TCP/IP协议,为了满足嵌入式控制系统的可靠性和实时性需求,实现TCP/IP通信,必须对TCP/IP协议进行相应选择。其TCP/IP测试结果如图6,其中的参数设置如下:

FPGA参数设置为:

IP地址:127.0.0.15

TCP端口号:502

PC机参数设置为:

IP地址:127.0.0.1

端口号:502

5.结论

对于将工业以太网技术应用到现场总线是未来工业实时以太网发展趋势,基于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.

基金项目:2009年顺德区重大科研专项(2009010101);广东锻压机床厂有限公司企业科技特派员工站项目(2010B090500012)。

作者简介:

张海平(1987—),女,硕士研究生,研究方向:集成电路工程。

刘伟,男,广东工业大学副教授,硕士生导师,研究方向:成型加工设备的智能控制、特种加工设备与工业以太网络技术。

上一篇:教育城域网安全管理研究 下一篇:浅谈奢侈品背后的精英文化