跳转到主要内容
瑞苏盈科专栏
我与瑞苏盈科板卡的开发故事

Zynq

利用ZYNQ SOC快速打开算法验证通路(6)——LWIP实现千兆TCP/IP网络传输

judy /

一、前言

  之前ZYNQ与PC之间的网络连接依赖于外接硬件协议栈芯片,虽然C驱动非常简单,但网络带宽受限。现采用LWIP+PS端MAC控制器+PHY芯片的通用架构。关于LWIP库,已经有很多现成的资料和书籍。其有两套API,一个是SOCKET,另一个是本例中要用到的RAW。RAW API理解起来较为复杂,整个程序基于中断机制运行,通过函数指针完成多层回调函数的执行。SOCKET API需要支持多线程操作系统的支持,也牺牲了效率,但理解和编程都较为容易。实际上SOCKET API是对RAW API的进一步封装。

二、LWIP Echo Server demo解读

ZYNQ跑系统 系列(四) AXI-DMA的linux下运行

judy /

AXI-DMA的linux驱动

一、搭建硬件环境

vivado版本2017.4,芯片为7010,不过不管什么版本和芯片大致步骤是一样的

本文工程文件:https://gitee.com/long_fly/AXIDMA_linux

硬件平台PL的搭建同ZYNQ基础系列(六) DMA基本用法,在这个工程的基础上添加SD卡(根据自己的开发板硬件选择相应的引脚)
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201810/13800-40231-…; alt="" width="670"></center>

然后直接生成bit文件,然后记得要导出硬件(包含bit文件)进SDK

二、生成设备树

利用ZYNQ SOC快速打开算法验证通路(6)——利用AXI总线实时配置sysGen子系统

judy /

利用ZYNQ验证算法的一大优势在于,可以在上位机发送指令借助CPU的控制能力和C语言易开发特点,实时配置算法模块的工作模式、参数等对来对其算法模块性能进行全面的评估。最重要的是无需重新综合硬件模块。

  接着上篇该系列博文,在sysGen中设计模块功能为:根据模式选择输入,来完成乘2或除2两种运算,0乘1除。
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201810/13787-40154-…; alt="" width="670"></center>

【视频】Avnet 演示了使用 Zynq-7000 实现基于视觉的工业物联网应用

judy /

Avnet 展示了一款突出的集成型工业物联网系统,该系统在 Xilinx Zynq-7000 SoC 上集成机器视觉、马达控制和近场通信 (NFC),不仅可识别和挑选特定物品,随后还可根据用户选择将其放入正确的分配容器中。
<iframe src='//players.brightcove.net/17209957001/SywTPUVC_default/index.html?videoId=4187062966001' allowfullscreen frameborder=0 width="600" height="338"></iframe>

利用ZYNQ SOC快速打开算法验证通路(5)——system generator算法IP导入IP integrator

judy /

<strong>一、前言</strong>

  利用FPGA设计算法一直以来都是热点,同样也是难点。将复杂的数学公式 模型通过硬件系统来搭建,在低延时 高并行性等优势背后极大提高了设计难度和开发周期。Xilinx公司的sysGen(system generator)工具扩展了MATLAB的simulink,提供很多IP Catalog中没有的基础模块和针对DSP应用的硬件模型。工程师利用丰富的模块和MATLAB强大的数据处理及可视化能力能够更快速完成设计与仿真验证工作。

<strong>二、sysGen算法系统设计</strong>

利用ZYNQ SOC快速打开算法验证通路(4)——AXI DMA使用解析及环路测试

judy /

<strong>一、AXI DMA介绍</strong>

  本篇博文讲述AXI DMA的一些使用总结,硬件IP子系统搭建与SDK C代码封装参考米联客ZYNQ教程。若想让ZYNQ的PS与PL两部分高速数据传输,需要利用PS的HP(高性能)接口通过AXI_DMA完成数据搬移,这正符合PG021 AXI DMA v7.1 LogiCORE IP Product Guide中介绍的AXI DMA的应用场景:The AXI DMA provides high-speed data movement between system memory and an AXI4-Stream-based target IP such as AXI Ethernet.

利用ZYNQ SOC快速打开算法验证通路(3)——PS端DMA缓存数据到PS端DDR

judy /

 上篇该系列博文中讲述W5500接收到上位机传输的数据,此后需要将数据缓存起来。当数据量较大或者其他数据带宽较高的情况下,片上缓存(OCM)已无法满足需求,这时需要将大量数据保存在外挂的DDR SDRAM中。

利用ZYNQ SOC快速打开算法验证通路(2)——数据传输最简方案:网络调试助手+W5500协议栈芯片

judy /

在上一篇该系列博文中讲解了MATLAB待处理数据写入.bin二进制数据文件的过程,接下来需要将数据通过以太网发送到ZYNQ验证平台。之前了解过Xilinx公司面向DSP开发的System Generator可以通过硬件协仿真的方式,进行算法板级验证。一个是本人不熟悉这种方式,再一个缺乏通用性,也无法在系统层面进行硬件验证。当然方案有很多,熟悉上位机的朋友完全可以自己写个软件完成数据传输和算法结果对比等功能。

  这里选择最简单的方案:在上位机通过网络调试助手将数据打包并发送至以太网端口,ZYNQ端利用W5500硬件协议栈芯片解析数据。有人可能会说用ZYNQ这么高端的设备还使用外接协议栈芯片连接以太网真是浪费,这里就算是开个头吧,只能说根据能力和现有条件选择传输方案。如果数据量较大的场合,可考虑用LWIP开源协议栈或直接利用verilogHDL编写UDP/IP协议和MAC控制器的方式实现1000Mbps速率传输。

  本文主要总结内容包括:TCP协议基础 网络调试助手应用事项,以及W5500的驱动移植。为了保证数据正确性,选用TCP这一可靠传输协议。以下介绍两个比较浅显易懂的博文,供没有网络和TCP协议基础的朋友参考。(见参考链接1 2)