在嵌入FPGA的IP核8051上实现TCP/IP的设计

发布者:幸福的老农最新更新时间:2007-06-19 来源: 电子元器件应用关键字:编译  存储  寄存  同步 手机看文章 扫描二维码
随时随地手机看文章
0 引言

随着芯片规模的越来越大、资源的越来越丰富, 芯片的设计复杂度也大大增加。事实上, 在芯片设计完成后, 有时还需要根据情况改变一些控制, 这在使用过程中会经常遇到。这时候如果再对芯片设计进行改变将是很不可取的, 因为需要设计人员参与这种改变, 这无论是对设计者还是用户都是不能接受的。于是就有必要让这种可以改变的简单控制在芯片设计时就存在, 而且同时还应该使这种改变相对容易, 比较通用, 并且与芯片的其它设计部分尽量不相关。为了满足上述的要求, 在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位处理器上应用, 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来说, 它属于被动建立连接, 其正确的输出结果应该是三向握手的第二次握手, 送出一个确认同步帧是所期望的结果。

下面简单介绍UIP的整个工作流程:

(1) 在P0端口有数据前, 读取数据函数并反复执行, 以对P0端口进行监视 (此种情况只是在测试时, 实际工作中物理层通过控制信号通知读数函数P0口是否有数据);

(3) 为信号的第8级分解小波模极大值图; (4) 为信号各级 (共9级) 的高频分量即小波系数。

由图4可以看出, 该故障信号分析仪能有效采集实时故障信号, 并可在对信号经过小波分析后有效的提取故障特征, 而且故障点定位明显。

5 结束语

该便携式接触网故障信号分析仪采用图形化程序设计语言LabVIEW开发设计, 可实现数据的高速实时采集、在线分析、自动存储、显示等功能。高速数字化仪NI PXI- 5112卡采样速度高、性能稳定可靠, 适宜对高速变化信号的实时监测。将软件安装在PXI- 1042工控机上, 具有体积小、抗干扰能力强、携带方便等特点, 同时具有故障性质判断、故障定位功能。该系统目前已经在石家庄变电所现场运行, 效果良好。

参考文献

[1] 刘君华.基于LabVIEW的虚拟仪器设计[M].北京: 电子工业出版社,2003:115- 127.
[2] Rober H. Bishop.LabVIEW6i 实用教程[M].北京: 电子工业出版社,2003:209- 265.
[3] LabVIEW Data Acqusition Basics Manual on NI- 5112[M].National Instrument Corpration,1998.
[4] Mok Aloysius K,Srusrt Douglas.RTT seman tics forLabVIEW.IEEE Aerospace Applications ConrerenceProceedings,1998:61- 71.
[5] 杨乐平, 李海涛,等.LabVIEW高级程序设计[M].北京:清华大学出版社,2003:390- 392.

关键字:编译  存储  寄存  同步 引用地址:在嵌入FPGA的IP核8051上实现TCP/IP的设计

上一篇:基于ADV202的嵌入式视频压缩系统软硬件设计
下一篇:基于ARM的嵌入式多参数监护仪设计与实现

推荐阅读最新更新时间:2024-05-02 20:36

程序编译生成的Hex、Bin、axf和elf格式
一、Bin Bin文件是最纯粹的二进制机器代码,按照程序执行顺序存放。编译器把高级语言翻译成汇编,再把汇编代码翻译成二进制机器代码保存成bin文件,因此Bin是没有经过处理或附加信息程序原本的大小。Bin文件内部没有地址标记,因此下载程序的时候要指定bin的烧写地址,虽然大部分的单片机是从0地址开始执行程序,可也有些单片机不是,比如LPC1857。 二、Hex Hex要比Bin高级一点,它增加了烧写地址、校验等信息。HEX文件由“记录(RECORD)”组成,每一行代表一个记录。每条记录都由一个冒号“:”打头,其格式如下: :BBAAAATTHHHH...HHHHCC BB:本记录中包含数据的字节
[单片机]
程序<font color='red'>编译</font>生成的Hex、Bin、axf和elf格式
示波器触发源与耦合以及存储的具体关系有哪些?
您了解您的信号源和 示波器 吗?上期我们主要分析了示波器触发的基本概念以及作用和分类,本期我们分享示波器触发源和耦合以及存储的关系: 触发源和耦合 触发源:通过图1可以看到,触发 电路 与被测信号处理电路是并行结构,所以触发电路并不会影响到被测信号的数字化处理,那就决定了触发信号不光可以从被测信号引入,还可以通过其他通道、外触发通道等引入。当被测信号过于复杂或者没有特定的特征时,我们无法通过被测信号来完成触发,这时就需要其他触发源来完成触发。 如:一组成分十分复杂的信号,其周期和特征都不明显,触发条件无法设置,这时就可以通过信号源产生一个触发信号来完成触发并显示。 触发耦合:当触发源引进的触发信号存在很多干扰和噪声
[测试测量]
示波器触发源与耦合以及<font color='red'>存储</font>的具体关系有哪些?
基于nRF24Z1的无线数字/模拟音频传输系统
当前,随着居住和办公环境空间的增长,音频的布线在大型会议室、汽车等场所越来越难以实现,成本越来越高,迫切需要无线传输高质量的音频。CD音质音频的传输速率就达到1.5Mbps以上,因此对无线系统提出了更高的带宽和距离要求。 ISM 2.4GHz (Industrial Scientific Medical 2.4GHz-2.4835GHz)频段是全球开放的公用频段,具有高带宽和低成本实现的优势。选用具备高带宽特点的ISM2.4GHz的传输系统更能适应CD音质音频的传输。而2.4GHz的其他系统,如监牙、WLAN等存在成本过高或距离受限等缺点,所以本系统使用了专用的ISM音频无线收发芯片nRF24Z1。nRF24Z1提供了标准的工业
[应用]
I2C之知(三)--I2C总线的字节格式、时钟同步和仲裁
        字节格式         发送到SDA线上的每个字节必须是8位.每次传输的字节数量是不受限制的.每个字节后必须跟着一个ACK应答位.数据从最高有效位(MSB)开始传输.如果从机要执行一些功能后才能接收或者发送新的完整数据,比如说服务一个内部中断,那么它可以将时钟线SCL拉低来强制使主机进入wait状态.当从机准备好新的字节数据传输时,释放时钟线SCL,数据传输便继续进行.         ACK和NACK         每个字节后都有ACK发生.ACK应答位允许接收器通知发送器字节成功接收了下一个字节可以发送了.主机产生所有的时钟脉冲,包括应答位的第9个时钟脉冲. ACK应答信号是如下定义的:在ACK的第9
[嵌入式]
基于PLC和计算机的汽车同步器测试系统
    在汽车的传动系统中,若采用机械式手动变速器,一般都配有同步器,其主要功能是:使接合套与待接合齿圈两者之间能迅速同步,阻止在同步之前齿轮进行啮合,防止产生接合齿圈之间的冲击,缩短换档时间,迅速完成换档操作,并延长齿轮寿命。同步器的性能指标直接影响变速器的效能表现,从而影响车辆的操控性,所以要在安装前对其技术性能和寿命进行一系列相关测试。     研制基于PLC的变速器同步器测试系统,可以对同步器换挡过程中的关键参数进行实时准确的测试记录,通过对比分析处理,从而对被试同步器的性能与寿命作出客观准确的评价。因为PLC具有体积小、功能强、可靠性高等特点,所以采用PLC作为整个测试系统的控制核心,通过驱动电机模拟换挡过程,并且控制二个
[嵌入式]
同步、异步电机有何区别?高、低速电机是什么?
电机是工业设备中的重要存在之一,对于电机,大家应当有所了解。为增进大家对电机的了解,本文将对同步电机、异步电机、同步电机和异步电机的区别、高速电机和低速电机予以介绍。 一、同 / 异步电机区别 同步电机,和感应电机(即异步电机)一样是一种常用的交流电机。同步电机是电力系统的心脏,它是一种集旋转与静止、电磁变化与机械运动于一体,实现电能与机械能变换的元件,其动态性能十分复杂,而且其动态性能又对全电力系统的动态性能有极大影响。 同步电机特点是:稳态运行时,转子的转速和电网频率之间有不变的关系 n=ns=60f/p,其中 f 为电网频率,p 为电机的极对数,ns 称为同步转速。若电网的频率不变,则稳态时同步电机的转速恒为常数而与负
[嵌入式]
<font color='red'>同步</font>、异步电机有何区别?高、低速电机是什么?
晶圆代工、存储器厂商在IC厂商排名中脱颖而出
  根据IC Insights新发布的2010年全球前二十大半导体供应商初步排行榜,除了Sony之外,其他业者今年度都将取得强劲的两位数业绩成长率。   在该初步排行榜上,全球第四大与第五大半导体供应商之间的业绩差距仅有5,000万美元,分别是台积电(TSMC)与德州仪器(TI);而由于该排行榜是根据11月份的McClean Report数据所做成,两者竞争激烈的程度,意味着排名顺序可能还会再出现变化。   进驻IC Insights全球前二十大半导体供应商排行榜上的厂商中,有五家是内存业者,依次为三星电子(Samsung Electronics)、东芝(Toshiba)、海力士(Hynix Semiconductor)、美光
[半导体设计/制造]
晶圆代工、<font color='red'>存储</font>器厂商在IC厂商排名中脱颖而出
DRAM为元宇宙发展不可或缺 存储业可望受益
近期,元宇宙概念大火。在此趋势下带动下,DRAM有望迎来新的发展机遇。 外资认为DRAM 将是元宇宙发展不可或缺的一环,因此,包括南亚科、华邦电在内的中国台湾存储厂商明年在存储器市况好转下,获利动能蓄势向上,而元宇宙商机也将成为除 5G 应用发展外,另一项推动长线需求成长的动能。 外资预期,超大规模云端厂商资本支出将在年底前回温,明年上半年存储器跌价情况可望趋缓,价格将触底,存储器市况正逐渐回温。 另一方面,外资也认为,近期备受关注的元宇宙题材,需要一定的高速运算能力,在升级与发展过程中,DRAM 是不可或缺的一环,这也是市场忽略的一部分。 此前,市调机构集邦科技表示,为建设比起网络世界更为复杂的元宇宙,将会需要更强大的数据运算
[手机便携]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved