百M千M以太网TCP/IP栈的FPGA实现-初识以太网
以太网,计算机局域网技术。用于多端点的信息交互,本质上跟串口没啥区别。
需要注意的是,以太网协议是分层的。分层的好处在于,对于软件开发者,无需关系下层协议的打包解析。分层协议如下所示:
应用层:软件开发者在此层解析各种软件的协议包,收发邮件,文件传输。即软件开发者一般通过以太网的TCP/UDP协议
进行多端点间的数据传输。
传输层:就是TCP/UDP协议包。打包软件应用层 报文到协议data字段中,向下传输;解析下层数据剥离头部向应用层回馈数据。
网络层:百度定义的网络为若干节点及其连接,而节点之间的数据收发,一般是根据IP指定。
链路层:MAC报文,最底层的协议包。
物理层:二进制信号,多端子之间的电信号传递。
当然,上述分层或者OSI七层模型还是太复杂。可精简分层为:物理层(二进制电信号)、链路层(MAC报文)、上层data协议(MAC数据包)。
对于FPGA而言,只需关心:
Q:
外界以太网线缆是如何连接到FPGA芯片上的?
一般通过外部PHY芯片连接到FPGA。
FPGA ← PHY ← RJ45 ← 外部设备
Q:
这玩意有IP可调用吗?需要造轮子吗?
对于Xilinx FPGA而言,有三速以太网IP。
Q:
没IP可实现吗?可移植性如何?
可以实现,手撕的代码可以移植到国产。
Q:
为啥用以太网?性能如何?
跟网络间设备进行数据交互。性能根据以太网类型有不同。