基于FPGA的IP核8051上实现TCP/IP的设计
[09-08 11:42:45] 来源:http://www.88dzw.com 其它电路 阅读:8631次
文章摘要: UIP的特点是代码量和数据量都比较小, 因而可以为存储器比较紧张的地方提供合适的实现方案, 包括TCP/IP所需的最小实现方案和只包含TCP、IP、ICMP (PINg) 以及简单的UDP协议, 其具体的实现方法如图2所示, 图2中, 带“×”的表示已经实现。 2.2 UIP协议栈的实现方法 通过UIP可实现TCP/IP协议集的四个基本协议, 包括ARP地址解析协议、IP网际互联协议,ICMP网络控制报文协议和TCP传输控制协议。为了在8位、16位处理器上应用, UIP协议栈在实现各层协议时采用有针对性的方法来保证代码大小和存储
基于FPGA的IP核8051上实现TCP/IP的设计,标签:电路设计,http://www.88dzw.comUIP的特点是代码量和数据量都比较小, 因而可以为存储器比较紧张的地方提供合适的实现方案, 包括TCP/IP所需的最小实现方案和只包含TCP、IP、ICMP (PINg) 以及简单的UDP协议, 其具体的实现方法如图2所示, 图2中, 带“×”的表示已经实现。
2.2 UIP协议栈的实现方法
通过UIP可实现TCP/IP协议集的四个基本协议, 包括ARP地址解析协议、IP网际互联协议,ICMP网络控制报文协议和TCP传输控制协议。为了在8位、16位处理器上应用, UIP协议栈在实现各层协议时采用有针对性的方法来保证代码大小和存储器使用量最小。
实现ARP地址解析协议时, 为节省存储器,ARP应答包可直接覆盖ARP请求包; 而在实现IP网络协议时, 则对原协议进行了极大的简化, 并没有实现分片和重组; 当实现ICMP网络控制报文协议时, 只需实现echo (回响) 服务。UIP在生成回响报文时, 并不重新分配存储器空间, 而是直接修改echo请求报文来生成回响报文。设计时可将ICMP类型字段从“echo”改变成 “echo re-ply”类型, 并重新计算校验和修改校验和字段。UIP里的TCP没有实现发送和接收数据的滑动窗口。每个TCP连接的状态均由uip_conn结构保存。uip_conn结构包括当地和远端的TCP端口编号、远程主机的IP地址、重发时间值、上一段重发的编号以及连接段的最大尺寸等信息。uip_conn结构数组可用于保存所有的连接, 数组的大小等于可支持同时连接的最大数量。为了减少储存器的使用量, 在处理重发时, UIP并不缓存发送的数据包, 而是由应用程序在需要重发时重新生成发送的数据。
2.3 UIP协议栈的接口
为了UIP协议栈能具有最大的通用性, 在实现时可将底层硬件驱动和顶层应用层之外的所有协议集“打包”在一个“库”里。协议栈通过接口与底层硬件和顶层应用进行通信。通过这种方式可使uIP具有极高的通用性和独立性, 以便移植到不同的系统和方便地实现不同的应用, 很好的体现TCP/IP协议平台无关性的特点。UIP协议栈与系统底层和应用程序之间的接口如图3所示。图中, 各接口之间都是由一系列函数来实现的。
3 UIP协议栈在IP核8051上的实现
3.1 UIP协议栈在IP核8051上的移植
由于UIP协议栈是专门针对微处理器编写的,所以移植也是非常的方便, 但需注意以下几点:
(1) 协议栈是用C语言编写的, 故在移植时需要再加上两个头文件, 一个是8051的头文件, 另一个是8051的硬件初始化头文件;
(2) 通过keil c编译器编译时, 在选器件时需要注意, 只有选取数据寄存器为256个字节才能顺利通过编译, 这也是为什么前面8051IP核的数据存储器RAM需要扩展至256个字节的原因。不对RAM进行扩展, 就会出现“不能写B9地址”的错误, 因为在没有对RAM扩展前, 根本不存在B9地址;
(3) 将软件keil编译生成的hex文件送入到8051的程序存储器, 即可在IP核8051上实现简单的TCP/IP协议。这在软件测试时, 与实际工作将有所不同。软件测试时需要将hex文件作为程序存储器的初始化输入, 即在EDA软件编译8051时, 将程序存储器的初始化文件mif的路径设置为hex所在的路径, 在完成综合布线后, hex文件的内容就进入了程序存储器。这样, 仿真时就能在8051IP上实现TCP/IP协议了。
3.2 UIP的工作流程
TCP/IP协议在嵌入到FPGA的IP核8051上的工作流程, 实际上也是简化后的TCP/IP协议的工作流程, 这跟正式的TCP/IP协议有所不同。下面的工作流程以输入一个同步帧 (即: 三向握手的第一次握手) 为例。对于8051实现的UIP来说, 它属于被动建立连接, 其正确的输出结果应该是三向握手的第二次握手, 送出一个确认同步帧是所期望的结果。
《基于FPGA的IP核8051上实现TCP/IP的设计》相关文章
- › 基于FPGA和MB86S02的数字图像处理系统设计
- › 基于FPGA的MSK调制解调器设计
- › 基于FPGA的IP核8051上实现TCP/IP的设计
- › 基于FPGA的智能变送器的设计与实现
- › 基于FPGA的可编程PWM电路设计
- 在百度中搜索相关文章:基于FPGA的IP核8051上实现TCP/IP的设计
- 在谷歌中搜索相关文章:基于FPGA的IP核8051上实现TCP/IP的设计
- 在soso中搜索相关文章:基于FPGA的IP核8051上实现TCP/IP的设计
- 在搜狗中搜索相关文章:基于FPGA的IP核8051上实现TCP/IP的设计