前言

自著名华人物理学家高锟先生提出“光传输理论”,实用化的光纤传输产品始于1976年,经历了PDH→SDH→DWDM→ASON→MSTP的发展历程。本世纪初期,ASON/OADM技术已在通信技术当中广泛应用,逐渐发展成为以骨干网络传输为介质的ROADM技术。

图1

光通信技术具有如下特点:

(1) 信息容量大。

(2) 损耗低,可长距离传送。

(3) 抗电磁干扰能力强。

(4) 安全性能和保密性好。

(5) 重量轻,体积小,便于施工维护。

(6) 原材料来源丰富潜在价格低廉。

得益于以上特点,光通信在软件无线电、视频追踪、光电探测、定位导航、水下通信、电力设备等场合应用十分广泛。而10G光模块经历了从300Pin、XENPAK、X2、XFP的发展,最终实现了用和SFP一样的尺寸传输10G的信号,这就是SFP+。SFP凭借其小型化、低成本等优势满足了设备对光模块高密度的需求,从2002年标准推行到2010年,已经取代XFP成为10G市场主流。

创龙科技(Tronlong)的Kintex-7、Zynq-7045/7100等处理板卡已提供2/4通道SFP+光口,可实现UDP或Aurora 10G光口通信。本文将为您分享基于Kintex-7 FPGA SFP+光口的10G UDP网络通信开发案例。如需基于Kinte-7 FPGA或者ZYNQ的Aurora开发案例,欢迎与我们联系。

1 硬件平台

本文基于创龙科技TLK7-EVM评估板进行演示。

TLK7-EVM是一款基于Xilinx Kintex-7系列FPGA设计的高端评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。

评估板接口资源丰富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用户快速进行产品方案评估与技术预研。

图2 TLK7-EVM评估板

开发案例主要包括:

● CameraLink、SDI、HDMI、PAL视频输入/输出案例

● 高速AD(AD9613)采集 +高速DA(AD9706)输出案例

● AD9361软件无线电案例

● UDP(10G)光口通信案例

● UDP(1G)光口通信案例

● Aurora光口通信案例

● PCIe通信案例

案例源码、产品资料(用户手册、核心板硬件资料、产品规格书)可点击获取:http://site.tronlong.com/pfdownload

2 案例功能

评估板通过SFP+光口接收上位机数据后,将数据重新发送至上位机(PC),以验证基于SFP+光口的10G UDP网络通信功能。评估板作为UDP Server,上位机作为UDP Client。

图4 程序功能框图

3 案例演示

将ZBNET的万兆网卡MCX311插入PC机的PCIe插槽中,并将一个SFP+多模双纤光模块接入万兆网卡,将另一个SFP+多模双纤光模块接入评估板SFP1光口。使用两根光纤线缆分别将SFP1的RX与万兆网卡的TX相连接,SFP1的TX与万兆网卡的RX相连接。SFP1光口使用GTX Quad 116的MGTXRX_0、MGTXTX_0引脚。

图5

图6

评估板IP地址已通过udp_ip_10g模块配置为192.168.0.25。请设置PC机IP地址与评估板IP地址处于同一网段。此处将PC机IP地址设置为192.168.0.88,子网掩码设为255.255.254.0。

图7

请运行程序,此时PC机将会识别网络连接状态为10Gbps。

图8

由于udp_ip_10g模块不支持ARP(Address Resolution Protocol)地址解析协议,因此需通过添加评估板IP地址和MAC地址的静态映射关系。请以管理员身份打开Windows PowerShell,并执行如下命令。

Windows#arp -s 192.168.0.25 00-23-20-21-22-23 //添加评估板IP地址和MAC地址的静态映射关系

Windows#arp -a //查看添加状态

图9

双击打开产品资料“4-软件资料\Tools\”目录下的网络调试工具SocketTool_NoAD.exe,在弹出的界面中点击“UDP Client ->创建”,在“对方IP”中输入评估板IP地址,再点击确定。

图10

在“数据发送窗口”中输入需发送至评估板的数据,再点击“发送数据”。“数据接收及提示窗口”中将打印由PC机发送至评估板,以及由评估板发送至PC机的数据。

图11

4 模块/IP核配置

4.1 cdcm6208_spi_cfg模块

本案例使用cdcm6208_spi_cfg模块配置CDCM6208的Y7时钟管脚输出156.25MHz时钟,作为GTX Quad 116的参考时钟。

更多说明可参考clkgen_cdcm6208案例相关内容。

图12

图13

4.2 10G Ethernet PCS/PMA IP核

本案例使用10G Ethernet PCS/PMA IP核实现物理层(PCS与PMA)功能。

10G Ethernet PCS/PMA IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg068-ten-gig-eth-pcs-pma.pdf》,具体配置说明如下。

(1) 选中"Additional transceiver control and status ports",新增并设置TX Pre-Cursor、TX Post-Cursor和TX Diff Swing选项值,以提高GTX信号传输质量。其中tx_pre_cursor设置为0x15、tx_pre_cursor设置为0xA、tx_diff_swing设置为0x9。

图14

图15

(2) 勾选Shared Logic的"Include Shared Logic in core",配置10G Ethernet PCS/PMA IP核包含共享逻辑。

图16

4.3 udp_ip_10g模块

本案例使用udp_ip_10g模块实现10G UDP协议栈与MAC层。

udp_ip_10g模块开发文档为产品资料“6-开发参考资料\其他参考文档\”目录下的《udp_ip_10g.pdf》。udp_ip_10g模块源码为"project\udp_10g_echo.srcs\sources_1\imports\udp_ip_10g_stack\"。

图17 udp_ip_10g模块主要特性

图18 udp_ip_10g模块逻辑框架

udp_ip_10g模块具体配置说明如下。

图19

(1) 设置链路速率为10Gbps。

图20

图21

(2) 设置评估板MAC地址为00-23-20-21-22-23,IP地址为192.168.0.25,子网掩码为255.255.254.0。

图22

图23

图24

5更多推荐

基于Kintex-7 FPGA、ZYNQ的CameraLink视频采集案例,下期为创龙科技继续为您揭晓,敬请期待。

图26

基于FPGA的光口通信开发案例|基于Kintex-7 FPGA SFP+光口的10G UDP网络通信开发案例的更多相关文章

  1. QQ 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件

    QQ 编辑 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件.腾讯QQ支持在线聊天.视频通话.点对点断点续传文件.共享文件.网络硬盘.自定义面板.QQ邮箱等多种功 ...

  2. 与众不同 windows phone (31) - Communication(通信)之基于 Socket UDP 开发一个多人聊天室

    原文:与众不同 windows phone (31) - Communication(通信)之基于 Socket UDP 开发一个多人聊天室 [索引页][源码下载] 与众不同 windows phon ...

  3. 与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室

    原文:与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室 [索引页][源码下载] 与众不同 windows phon ...

  4. 【小梅哥FPGA进阶教程】第九章 基于串口猎人软件的串口示波器

    九.基于串口猎人软件的串口示波器 1.实验介绍 本实验,为芯航线开发板的综合实验,该实验利用芯航线开发板上的ADC.独立按键.UART等外设,搭建了一个具备丰富功能的数据采集卡,芯航线开发板负责进行数 ...

  5. 基于51单片机IIC通信的PCF8591学习笔记

    引言 PCF8591 是单电源,低功耗8 位CMOS 数据采集器件,具有4 个模拟输入.一个输出和一个串行I2C 总线接口.3 个地址引脚A0.A1 和A2 用于编程硬件地址,允许将最多8 个器件连接 ...

  6. workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)

    workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...

  7. 【DSP开发】【Linux开发】基于ARM+DSP进行应用开发

    针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算 ...

  8. 基于Antd框架的通信与交互

    基于Antd框架的通信与交互 1.与用户交互 对于input输入框,在于用户交互的过程中,用户在输入任何东西时,都会引起该组件的onChange事件(如果写有这个方法的话). <FormItem ...

  9. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  10. Wizard Framework:一个自己开发的基于Windows Forms的向导开发框架

    最近因项目需要,我自己设计开发了一个基于Windows Forms的向导开发框架,目前我已经将其开源,并发布了一个NuGet安装包.比较囧的一件事是,当我发布了NuGet安装包以后,发现原来已经有一个 ...

随机推荐

  1. js表单动态添加数据并提交

    情景1:已经存在form对象了,动态为form增加对象并提交 function formAppendSubmit(){ var myform=$('#newArticleForm'); //得到for ...

  2. php apc

    APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”.它为我们提供了缓存和优化PHP的中间代码的框架. APC的缓存分两部分:系统缓存和用户数据缓存. 系统缓存 它是 ...

  3. 树形DP(01组合背包The Ghost Blows Light HDU4276)

    题意:有n个房间,之间用n-1条道路连接,每个房间都有一个定时炸弹,在T时间后会一起爆炸,第i个房间有pi价值的珠宝,经过每条道路都需要花费一定的时间,一个人从1房间开始 ,从n房间出去,保证再不炸死 ...

  4. The Implementation of Lua 5.0 阅读笔记(一)

    没想到Lua的作者理论水平这么高,这篇文章读的我顿生高屋建瓴之感.云风分享了一篇中译:http://www.codingnow.com/2000/download/The%20Implementati ...

  5. 转:深入研究mysql中group by与order by取分类最新时间内容

    鉴于项目的需要,就从网上找到该文章,文章分析得很详细也很易懂,在android里, (不知道是不是现在水平的限制,总之我还没找到在用ContentProvider时可以使用子查询),主要方法是用SQL ...

  6. 剑指offer--3题

    题目:输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 例如输入的数组为1, -2, 3, ...

  7. hdu 4300(kmp)

    题意:说实话这个题的题意还真的挺难懂的,我开始看了好久都没看懂,后来百度了下题意才弄懂了,这题的意思就是首先有一个字母的转换表,就是输入的第一行的字符串,就是'a'转成第一个字母,'b'转成转换表的第 ...

  8. kbmMW 5.07.00试用笔记

    在kbmMW 5.06.20试用笔记中遇到的问题,在这个版本中,基本都解决了.但还是发现修正后存在的小问题及新问题: 1.Resolve返回值错误 当提交的ClientQuery是执行一条sql语句, ...

  9. BG.Hadoop.Master

    1. 安装JDK JDK安装包复制到/opt文件夹 cd /opt rpm -ivh jdk-8u121-linux-x64.rpm vim /etc/profile 增加 JAVA_HOME=/us ...

  10. ganglia-Monitor