




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
冉冉红日的博客 工业以太网协议栈 FPGA IP 核的实现 随着物联网的广泛应用 在嵌入式系统中 越来越多的设备 传感器使用工业以太网作为通信媒介 因为工业以太网有着速度与安全可靠 双重优势 在较高端设备中 由于存在如 DSP ARM 之类的处理器 指令代码运行处理速度很快 再有 OS 进行管理 此时将以太网网卡芯片驱动 程序和协议栈加入进来 比较简单方便 易于设备管理和功能更改 这种方案已经应用的非常成熟了 在某些低端设备中 只有单片机作为处理器 如果还是像上述那样实现以太网的话 单片机的负荷势必会大大增加 对于与单片机相连的 设备的实时性控制就会大大降低 因此 在要加入以太网通信的设备中选用单片机作为处理器不是一种好方案 除了单片机 DSP ARM 外 还有一种处理器也被广泛应用 那就是 FPGA 现在 FPGA 的功能越来越多 片内资源也越来越多 像新出的 ALTERA FPGA 内部就已有 ARM 硬核 在 ALTERA 的所有系列中都能实现软核 CPU 此 CPU 的运行速度相比一般的单片机来说还要更快些 但如果用 它来管理 TCP IP 协议栈 我觉得也就会像单片机一样 负载过重 就像让一个 10 岁的小孩挑 50 斤的担子一样 此外 我个人觉得 软核 CPU 毕 竟没有单片机稳定 在 FPGA 系统中 让软核 CPU 只做管理就好了 而像以太网协议栈的这样独立性强 又比较复杂的工作就由一个 IP 核来实现 虽然这样的 IP 核实现起来不容易 但对于实时性要求高 数据传输速度要求高 稳定性要求高的设备 采用这种方案是非常好的 因此 我想根据嵌入式设备的特点 简化 TCP IP 协议栈的内容 实现嵌入式设备需要的功能 而不需要的就剔除掉 比如 不需要那么 复杂的 ARP 管理 只需将缓存上一次有效的 IP MAC 地址 如果只用 UDP 协议 那么就只需实现简易 ARP IP 和 UDP 就可以了 这样不仅能节约硬 件资源 同时简化了程序 简化了逻辑 提高了系统的稳定性 越简单的事物 稳定性越好 1 1 NET STACKNET STACK IPIP 核概述核概述 1 11 1 IPIP 核功能简介核功能简介 1 此 IP 核支持 TCP IP 协议栈中的 ARP 简化 IP UDP TCP 简化 ICMP Ping 协议 覆盖协议栈中的网络接口层 网际层和传输层 能应用于 10 100 1000Mbps 网络系统中 2 此 IP 核中只处理 ARP 应答 不发送 ARP 请求 只有一个 MAC IP 对缓冲区 即只保存上次接收到的来自主机的 ARP 请求中的 MAC IP 对 3 IP 协议支持 IP 首部长度为 20 协议类型为 IPV4 不支持分片 选项等功能 发送 IP 包中的 TTL 值固定为 64 4 TCP 协议支持 TCP 首部长度为 20 不支持 SACK 窗等选项功能 单次传输最大净负荷数据为 1460 字节 5 此 IP 核支持完整的 UDP 协议 单次传输最大净负荷数据为 1472 字节 6 在 IP 核配置时 UDP 和 TCP 不能同时被包含 ICMP 可以和他们组合包含 只需在配置文件中通过宏定义来加载 卸除组件 操作非常简单 7 IP 核中用于缓冲接收和发送的数据的缓存区大小可以独立配置 8 应用于 IP 核的网络参数可以动态在线调整 9 此 IP 核能应用于交换机组成的局域网络中 1 21 2 IPIP 核接口核接口 此 IP 核在 UDP 模式和在 TCP 模式下的顶层接口分别如下图 1 1 和图 1 2 所示 前缀为 nat 的信号为需要设置的网络参数 前缀为 L3 的信 号为与应用层逻辑接口的信号 它遵循 Avalon Stream 接口协议 其中 ready 信号对应的 readyLatency 等于 0 data 信号的数据模式是大端模式 此接口在 SignalTapII 中捕获传输奇数字节的时序图如下图 1 3 所示 前缀为 L1 的信号为与网络芯片控制器逻辑接口的信号 它也遵循 Avalon Stream 接口协议 图 1 1 NET STACK IP 核 UDP 模式顶层接口 图 1 2 NET STACK IP 核 TCP 模式顶层接口 图 1 3 接口时序图 1 31 3 IPIP 核使用核使用 NET STACK IP 核使用非常简单 在应用时可以采用三种方式将此 IP 核集成到您的系统中 1 采用 Verilog 源码方式 将此 IP 核看做一个模块集成到您的系统中 2 采用原理图方式 将此 IP 的顶层模块转化为原理图符号 进而集成到您的系统中 3 采用组件方式 在 SOPC Builder 或 Qsys 中将此 IP 核转化为一个组件 进而集成到您的系统中 无论采用哪种方式 在系统工程编译之前 需要做如下工作 1 设置 IP 核的工作模式 UDP 或 TCP 模式 加载 卸除 Ping 功能组件 2 设置 IP 核内接收缓冲区和发送缓冲区 RAM 的大小 3 设置网络参数 本地物理地址 nat mac addr 本地 IP 地址 nat ip addr 和本地端口号 nat port 2 2 NET STACKNET STACK IPIP 核性能评估核性能评估 2 12 1 资源占用资源占用 此 IP 核占用的资源类型只有逻辑资源和片内 RAM 两种 下图 2 1 和图 2 2 分别为 IP 核在 UDP 模式和 TCP 模式下在测试工程中占有的资源 情况 目标器件为 ALTERA 公司的 CycloneII 系列 EP2C35F484C7 开发环境为 QuartusII 11 0 图 2 1 NET STACK IP 核 UDP 模式占用资源情况 图 2 2 NET STACK IP 核 TCP 模式占用资源情况 2 22 2 PingPing 功能功能 Ping 功能属于 ICMP 协议 它是一个非常好用且有用的 TCP IP 工具 是网络维护中最重要的一个命令 它主要的功能是检测网络的连通状 况和分析网络速度 此 IP 核能非常方便地加载和卸除 Ping 功能组件 只要在 net define v 文档中通过宏 ICMP INCLUDED 的定义或取消来控制即可 在 ALTERA 公司器件 EP2C35F484 中编译 综合分析优化参数设置为 Balance 如下图 2 3 所示 只占用 229 个逻辑单元 具体消耗的资 源如下图 2 4 所示 图 2 3 QuartusII 中分析综合优化参数 图 2 4 PING 组件占用资源 在单板中运行包含 Ping 功能的 IP 核 且单板的 IP 设置为 192 168 0 31 在上位机中运行 Ping 命令 界面如下图 2 3 所示 图 2 3 DOS 界面下 Ping 测试 2 32 3 数据处理速度测试数据处理速度测试 测试环境 采用闭环 LOOPBACK 测试系统 即将与应用层逻辑接口的接收信号和发送信号对应短接 器件为 CycloneII 系列 EP2C35F484C7 编译器为 QuartusII 11 0 网卡控制器为 DM9000CEP 测量的时间段为 NET STACK 接收到 DM9000A CTRLER 此为网络芯片控制器 IP 核 发送区的最后一个数据至 NET STACK 向 DM9000A CTRLER 发送第一个数据这段时间 下表中所有时长反映的是协议栈分析数据包的响应速度 与所用网络是 10M 或 100M 无关 处理类型用户数据个数 字节 所用时长 clk ARP 应答 30 UDP 发送1020 UDP 发送4020 UDP 发送10020 UDP 发送40020 UDP 发送80020 UDP 发送102420 UDP 接收1015 UDP 接收4015 UDP 接收10015 UDP 接收40015 UDP 接收80015 UDP 接收102415 TCP 发送4025 TCP 发送40025 TCP 发送102425 TCP 接收4013 TCP 接收40013 TCP 接收102413 从上述表中可以看出 采用 UDP TCP 协议接收不同的用户数据 IP 核内处理接收数据的时间是相同的 发送也一样 IP 核内处理发送的数 据的时间也不随用户数据个数的多少而改变 由上述可知 TCP IP 协议栈 IP 核与外部器件不存在直接联系 因此 它的系统时钟速率不受外部器件 IO 访问速率的影响 只与 FPGA 器 件的速度等级以及 IP 核内部结构有关 根据公式 1 可以计算出本文中的 TCP IP 协议栈 IP 核的数据处理速率 S M N Tclk 式 1 结合上述表中数据 M 取值为 1024 Tclk 取值为 10ns 系统时钟为 100MHz N 取最大值为 20 计算得到 S 约为 40960Mbps 远大于目前 千兆网的数据传输速率 因此 此 TCP IP 协议栈 IP 核不仅可以适用于目前 100 1000M 网络系统 而且还可以适用于未来的 10G 网络系统 2 42 4 100M100M 网络净负荷测速网络净负荷测速 测试环境 器件为 CycloneII 系列 EP2C35F484C7 系统时钟为 100MHz 网卡控制器为 DM9000CEP 上位机通过发送命令控制含此 IP 核的 单板 让单板连续发送多个数据包 同时记录发送数据包的时间 以此来测量网络的上行净负荷速率 测试结果如下表所示 协议类型最大净负荷最小速率最大速率 UDP 1472 字节 32 1Mbps76 9Mbps TCP 1460 字节 21 6Mbps35 7Mbps 2 52 5 网络拓扑结构网络拓扑结构 此 IP 核能应用于交换机组成的局域网络 测试实物图如下图 2 4 所示 图 2 4 局域网络通信测试 2 62 6 最高时钟频率最高时钟频率 在 ALTERA 公司的 CycloneII 系列 EP2C35F484C7 器件 QuartusII 11 0 开发环境中的 TimeQuest Timing Analyzer 组件下测试得到的 IP 核系统时钟 clk 最高为 122 05MHz 注 如果需要更高的时钟频率 可以在牺牲资源面积的前提下将系统时钟 clk 进一步提高 3 3 参数更改参数更改 此 IP 核在应用过程中有如下参数需要修改 1 工作模式 默认值 UDP 模式 2 接收和发送缓冲区 RAM 的大小 默认值 接收和发送 RAM 大小都为 512 2 字节 3 网络参数 默认值 MAC 01 02 03 04 05 06 IP 192 168 0 1 PORT 1024 3 13 1 更改工作模式更改工作模式 IP 核中包含三个组件 ICMP Ping 组件 UDP 组件 TCP 组件 在实际应用中需要使用哪些功能 则在 net define v 文件中包含这个组件 的宏 其中 UDP 组件和 TCP 组件不能同时使用 例如 要使用 Ping 功能和 UDP 通信 则在 net define v 文件将代码修改为 Protocol Included define ICMP INCLUDED 1 define UDP INCLUDED 1 UDP 和 TCP 只能选择一个 define TCP INCLUDED 1 3 23 2 更改更改 RAMRAM 大小大小 此 IP 核中的发送通道和接收通道具有独立的数据缓冲区 RAM 可以分别进行更改其大小 更改的步骤如下 步骤一 使用 QuartusII 中的 MegaWizard Plug in Manager 进行 RAM 参数设置 设置细节请参看 工业以太网协议栈 NET STACK IP 核技 术设计文档 中的章节 2 2 的内容 步骤二 更改 net define v 中的 RBW 和 或 TBW 的值 此值须和步骤一中设置的参数值一致 3 33 3 更改网络参数更改网络参数 此 IP 核中的网络参数有本地 MAC 地址 本地 IP 地址 本地端口号 当需要更改其中任意一个或多个时 只需在 net stack top 实例化的 时候 在接口中赋值即可 例如 想要将网络参数设置为 MAC 地址为 01 60 6E 11 02 0F IP 地址为 192 168 0 31 本地端口号为 6800 则接口参数设置为 nat ip addr 32 hC0A8001F nat port 16 h1A90 nat mac addr 48 h01606E11020F 在上一篇博文中 介绍了如何在 FPGA 中实现 UDP ARP IP 子协议及其使用 经过调试 应用后 发现有些地方是可以改进的 比如在接 收通道上 对于 IP UDP 子协议的分析 首部的分析可以在网络接口层中就解析出来 然后再在 IP UDP 模块中检测判断 这样不仅可以加快分 析处理的速度 而且可以简化结构 逻辑编写 在实际应用中 除了 UDP 被广泛使用外 TCP 也常常被应用在嵌入式系统中 开始一想到 TCP 的管理 就感觉很复杂 如果在 FPGA 中实 现 肯定不容易 也就没有再细想下去 后来静下心来 仔细阅读了 TCP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安徽师范大学校医院专业技术人员招聘2人模拟试卷附答案详解(突破训练)
- 2025年美妆行业个性化定制服务模式在美容院人力资源配置中的应用报告
- 企业股份开拓市场合同6篇
- 2025年文化娱乐市场细分消费者行为与产业政策影响实践案例深度报告
- 2025年无人机物流配送系统优化与商业案例研究报告001
- 2025年甘肃省白银有色集团股份有限公司技能操作人员社会招聘552人笔试历年参考题库附带答案详解
- 2025年兖矿能源集团股份有限公司权属企业技能岗位工人招聘(80人)笔试参考题库附带答案详解
- 【社招】江西省水投工程咨询集团有限公司2025年第二批次社会招聘笔试历年参考题库附带答案详解
- 金融机构借款协议8篇
- 大班元旦活动总结13篇
- 加油站消防安全责任制度范本
- 病毒感染课件
- 涉案财物处置培训
- 卫生院艾滋病培训课件
- 初中数学课堂中的问题链式教学策略研究
- 钢结构拆除施工应急预案范文
- 堆料场安全管理制度
- 心跳呼吸骤停患者的护理
- 2025年中国电梯能量回馈单元行业投资前景及策略咨询研究报告
- 学生健康素养评价指标体系研究
- 转包免责协议书
评论
0/150
提交评论