您的位置 首页 报告

FPGA经过以太网与PC机通讯完好计划

使用以太网接口实现PC和FPGA的通信,相对于串口而言,具有更高的传输速度。采用以太网接口的目的在于,在一定技术要求下,实现PC机和FPGA的实时数据传输。从而可以借助PC机强大的计算能力,降低FPG

一、简介

运用以太网接口完成PCFPGA通讯,相关于串口而言,具有更高的传输速度。选用以太网接口的意图在于,在必定技能要求下,完成PC机和FPGA的实时数据传输。然后能够凭借PC机强壮的核算才能,下降FPGA的运算担负。

成都浩然电子有限公司开发的网络模块HS-NM5300A,作为完成以太网通讯的首要元件。模块以韩国Wiznet公司开发W5300A为要害芯片。模块一端为RJ45,经过网络穿插线与PC机相连;另一端为外部总线,与FPGA的IO相连。模块内嵌10BaseT/100BaseTX的以太网物理层,支撑自动握手功用,支撑固件TCP/IP协议,通讯抱负速率可到达50Mbps。

W5300A接纳PC机发来的数据包,进行协议解析,并将传输的数据保存在其内部寄存器中,或许将寄存器内的数据打包封装发送到以太网上。FPGA经过外部总线,拜访W5300A的寄存器,然后对W5300A进行装备、查询数据包是否到来、收取/发送通讯数据等等。

二、FPGA与W5300A的硬件衔接

FPGA与W5300A的外部总线衔接如下图所示(ref:W5300_v1.2.2_english,115-115)。

FPGA和W5300的连线,咱们称之为外部总线。FPGA为外部总线的主机,W5300为从机。经过外部总线,能够完成FPGA对W5300的读/写。图中DATA为十六位数据线,ADDR为10位地址线,WR为写使能,RD为读使能,CS为片选使能,INT为中止恳求。

三、外部总线的作业时序

要使W5300正确读入/输出数据,外部总线上各信号电平应满意必定的时序要求。读时序如下图所示(ref:P120-122):

图中PLL_CLK为W5300A的内部时钟,频率为15OMHz。

四、FPGA程序完成

(1)FPGA网口通讯模块的顶层结构如下图所示:

BusDriver是中心模块,驱动外部总线和RX_FIFO的写使能以及TX_FIFO的读使能。RX_FIFO和TX_FIFO是两个16位的先进先出存储器。在FPGA内部,能够经过读取RX_FIFO的数据,写TX_FIFO完成与以太网的数据交换。

(2)接口界说

引脚称号

IN/

OUT

阐明

有用状况

方位

Enet_ADDR

OUT

网络芯片总线的地址位

Enet_BRDY

IN

Enet_CSn

OUT

网络芯片总线的片选

Enet_DATA

INOUT

网络芯片总线的数据位,16位

Enet_INTn

IN

网络芯片总线的中止位

Enet_L_LINK

IN

网络电气衔接位

Enet_RDn

OUT

网络芯片总线的读使能

Enet_RST

OUT

网络芯片硬件复位

Enet_WRn

OUT

网络芯片总线的写使能

RESET

IN

Bus_fifo模块的初始化,包含总线模块和FIFO

rxfifo_dout

OUT

RX_FIFO的数据输出,16位

rxfifo_rd_en

IN

RX_FIFO的读使能,假如在rxfifo_empty_p为1,有或许呈现过错。

rxfifo_empty_p

OUT

当RX_FIFO为空时,输出高电位

rxfifo_valid

OUT

在rxfifo_rd_en置1后一个fifo_clk置1,标明RX_FIFO输出数据有用。

txfifo_din

IN

TX_FIFO的数据输入,16位

txfifo_wr_en

IN

TX_FIFO的数据写使能

txfifo_full

OUT

当TX_FIFO满时,输出高电位

txfifo_valid

OUT

TX_FIFO数据输出有用位

fifo_clk

IN

RX_FIFO的读时钟和TX_FIFO的写时钟,上升沿从FIFO中读取或写入数据。10M

CLK

IN

bus_driver的时钟,RX_FIFO的写时钟和TX_FIFO的读时钟。100M

注:表中第五列“方位”,标明该信号线应衔接至FPGA内部信号或许FPGA外部信号。

(3)TCP作业形式

PC机与W5300A通讯选用TCP协议。关于TCP形式,通讯的一方依据IP地址和端口号与对端树立SOCKET衔接。再经过指定的SOCKET发送和接纳数据。树立SOCKET的衔接有两种方法:“TCP服务器”和“TCP客户端”。差异在于谁首要发送衔接恳求(SYS数据包)。“TCP服务器”等候对端的衔接恳求,当收到衔接恳求时树立SOCKET衔接(被迫翻开)。“TCP客户端”自动宣布衔接恳求,与对端树立衔接(自动翻开)。出于便利考虑,由PC端建议衔接,设定PC端为TCP客户端,W5300A为TCP服务端。通讯流程如下图所示(ref:90)。

图中的LISTEN、ESTALISHED、CLOSED为对应SOCKET的状况。对W5300A的SOCKET正确地初始化(OPEN)后,SOCKET处于LISTEN状况,对网络进行侦听。当收到客户端发来的衔接恳求(SYS数据包),变为ESTABLISHED状况,此刻客户端和服务器能够进行数据通讯。当服务器断开衔接或许收到客户端发来的断开恳求(FIN数据包),W5300A相应的SOCKET状况变为CLOSED。服务器SOCKET更为具体的状况转化进程能够参阅W5300A手册77页。

(4)busdriver模块的作业流程

busdriver经过外部总线对网络芯片进行复位和数据交换。经过拜访W5300A的寄存器,完成网络芯片的装备、监控、数据收/发。一起,busdriver监督FIFO,假如RX_FIFO则暂缓收数;假如TX_FIFO不空则发送数据。Busdriver的作业流程如下图所示。

图中,重置芯片是指:对芯片硬件复位、软件复位;根本装备包含:装备 W5300A的MAC地址、IP地址、子网掩码、网关地址,分配W5300A的存储空间,中止设置等等。中止服务程序首要是读取芯片的中止寄存器,获取中止类型,并复位中止寄存器。值得注意的是,上图所示的流程是查询方法而不是中止方法。发动SOCKET的程序首要是:设置SOCKET端口号,作业形式(TCP服务器端),翻开SOCKET、开端侦听等等。

(5)以太网通讯的程序完成

考虑到处理器是FPGA,选用VHDL言语描绘图中所示流程。与C言语次序为履行不同,VHDL根据硬件结构、并发履行。图顶用C言语能够很便利地描绘出来,可是要在FPGA里边完成,则需求灵活运用状况机以操控其流程,且要尽力防止竞赛和险象。限于正文篇幅,源程序在附录中给出。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/baogao/199464.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部