微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于FPGA的IP核8051上实现TCP/IP的设计

基于FPGA的IP核8051上实现TCP/IP的设计

时间:06-18 来源:3721RD 点击:

引言

随着芯片规模的越来越大、资源的越来越丰富, 芯片的设计复杂度也大大增加。事实上, 在芯片设计完成后, 有时还需要根据情况改变一些控制, 这在使用过程中会经常遇到。这时候如果再对芯片设计进行改变将是很不可取的, 因为需要设计人员参与这种改变, 这无论是对设计者还是用户都是不能接受的。于是就有必要让这种可以改变的简单控制在芯片设计时就存在, 而且同时还应该使这种改变相对容易, 比较通用, 并且与芯片的其它设计部分尽量不相关。为了满足上述的要求, 在FPGA中嵌入一个比较理想的选择, 而这个即通用又控制简单的IP核最好选择8051微处理器。

在FPGA中植入8051后, 还可在上面实现简单的TCP/IP协议, 以支持远程访问或进行远程调试, 这只是在嵌入FPGA的8051上的一个应用。为了保证用户能够对8051实现不同的控制操作,设计时也可以采用一个外部flash对8051进行加载, 这样, 用户只需要将编译好的汇编语言代码加到flash就可以控制8051的工作, 而此时用户完全不需要对FPGA进行操作就能实现简单的控制,而这需要的仅仅只是keil的编译环境。

1 IP核8051的FPGA实现

现在有许多免费的8051核可以利用, 这些核都可通过硬件描述语言来实现, 并且基本上都可综合, 也就是直接拿来就能用, 需要的只是根据自身的具体需求做一些简单修改即可。总的说来, IP核8051的移植是比较简单的。

本系统的设计与实现可以采用oregano system的mc8051内核, 并且加入定时计数的和串口模块, 8051单片机的设计结构框图如图1所示。

在8051核的FPGA设计中, 完全可以实现包括计时/计数、中断、串口、数据及程序存储器、特殊寄存器、布尔处理的位处理机等的所有功能, 而且兼容所有指令, 只是在具体的移植过程中做一些改变而已。
这种方法对程序存储器不再做内外之分, 因为FPGA内部存储容量已经能够满足要求, 同时将程序存储器的容量扩大了一倍 (变为8KB), 以满足大程序的容量需求; 为了让8051更为强大且更具有通用性, 可将数据存储器RAM的容量扩大一倍, 变为256字节。可以看出, 在设计过程中将8051的功能也进行了加强, 但是并不影响对它的控制, 仅仅是在硬件上对存储器的容量进行了扩大, 而这种扩大只是改变了地址线的宽度, 完全不影响111条指令的正确执行。对用户来说这只是可以使用的内部RAM增加了, 控制并没有任何改变。当然, 在资源比较紧张, 而且程序容量比较小时, 也可以将存储器的容量改小, 这种改变也相当方便, 只需要改变地址线的宽度就能达到目的。由此可见, 设计时完全可以根据需要改变IP核的设计, 而不局限于8051。

虽然整个8051IP核能正确执行所有指令, 并能实现串口、计时器及中断控制, 且整个IP的核工作时钟也在20 MHz以上, 但是, 由于这时候的所有指令周期并不与真实的8051完全一致, IP核中有的指令需要比真正的8051多执行几个周期才能完成, 这就使得分析IP核的工作时钟复杂起来了, 因为相对于真正的8051不能有一个精确的工作时钟对比。但是经过分析仍然可以认为, IP核应该可以工作在15 MHz左右, 也就是比真实的8051快了15倍左右。这对于芯片整体来说, 其速度可能相对较低, 但是由于这部分与芯片其它部分的逻辑相关性极小, 所以并不会影响芯片的整体性能, 而对于一些简单控制来说, 这个速度还是能够满足要求的。

2 UIP协议栈

2.1 UIP简介

在FPGA中实现TCP/IP协议的主要目的是为了满足设计人员对芯片的远程调试。而满足这种要求实际上并不需要很强大和快速的传输功能。功能过于强大将会占用过多的资源, 而且实际上, 很多功能并没有实际作用; 同时也不需要很快的传输速度。毕竟对于一个芯片的设计来说,无论是设计文档或是设计程序, 容量都是非常有限的。综合考虑, 则应选择一个实现简单、占用资源少, 但能够比较稳定地进行数据传输的协议, 为此, 本文选择了相对简单的UIP协议栈,而放弃了功能比较强大的LWIP协议栈。选择UIP还有一个好处, 就是这个协议栈是专门针对单片机等微控制器设计的TCP/IP协议栈, 它能够利用嵌入的IP核8051来实现TCP/IP协议, 而不再需要额外的逻辑单元。

UIP的特点是代码量和数据量都比较小, 因而可以为存储器比较紧张的地方提供合适的实现方案, 包括TCP/IP所需的最小实现方案和只包含TCP、IP、ICMP (ping) 以及简单的UDP协议, 其具体的实现方法如图2所示, 图2中, 带"×"的表示已经实现。


2.2 UIP协议栈的实现方法

通过UIP可实现TCP/IP协议集的四个基本协议, 包括ARP地址解析协议、IP网际互联协议,ICMP网络控制报文协议和TCP传输控制协议。为了在8位、16位处理器上应用,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top