基于FPGA ZC706的AD9371ADRV9009网口驱动配置
在本设计中,通过配置ZC706的LWIP模块实现网口通信,网口主要用来控制9371和9009的参数及配置。在本系统中,采用ZC706+FreeRTOS的配置模式,实现高速网口通信。
1. LWIP配置过程简介
如下图所示,在Project中选择“LWIP Echo Server”选项进行工程建立
2. 工程建立完成后,配置LWIP的工作参数,实现高速通信
在配置完成LWIP后,需要修改一些默认参数,使得通讯速率提高,参数有以下几个:
//以下参数都不是在代码里面修改,需要直接在工程BSP里面修改参数
MEM_SIZE 524288
MEMP_NUM_PBUF 1024
MEMP_NUM_TCP_SEG 1024
PBUF_POOL_SIZE 8192
N_RX_DESCRIPTORS = 512
N_TX_DESCRIPTORS = 512
TCP_SND_BUF 65535
TCP_WND 65535
TCP_IP_TX_CHECKSUM_OFFLOAD= true
TCP_IP_RX_CHECKSUM_OFFLOAD= true
改进之后传输速度达到了600Mbps以上。
3. 配置FreeRTOS参数解决一些隐藏bug
实现网口通信后,在多次进行网络通信的时候,长时间通信后容易报错导致网口直接宕机,然后再也驱动不起来,也无法ping通,通常我们检查串口打印的时候会发现程序进入了以下函数:
vApplicationMallocFailedHook()
为了解决该问题,需要修改Free RTOS系统参数,增加网口通讯的堆栈实现多次的地址分配,我们的参数如下可以参考:
4. 其他需解决的网口问题
解决以上两个问题后,基本上网口问题可以解决,但是还有以下几个潜在问题,需要用代码解决:
- 网口第一次初始化时,如果没有连接网线,后面即使连接了网线,网口通信也无法正常使用
- 在网口初始化过程中,如果外部有ping命令过来,会导致网口丧失功能
- 网口速率进一步提高
这三个问题我们已经解决,以后会陆续更新资料
大家如果有兴趣,可以评论区留言
以上文章为千有科技专有,未经允许,不允许转发或者用于商用,否则将追责。
基于FPGA ZC706的AD9371ADRV9009网口驱动配置相关推荐
- 基于FPGA的iic主从机驱动实现 Verilog实现iic slave和iic master
基于FPGA的iic主从机驱动实现 Verilog实现iic slave和iic master 顶层模块实现master对slave自定义的寄存器读取 带仿真模块 ID:153069768739840 ...
- 基于FPGA的LD3320语音识别模块驱动设计
一.设计要求 以FPGA为控制核心,接收语音控制信号和识别控制信息: 通过继电器完成对热水器.加湿器.空调等三个家用电器的控制: 二次升级要求:使用无线模块完成对热水器.加湿器.空调等三个家用电器的控 ...
- 基于FPGA的三线制数码管驱动设计
目录 引言 电路结构 实现思路 数码管显示译码 74HC595驱动 源码分享 板级验证 引言 对三线制数码管的驱动设计做一个简单的总结吧. 电路结构 数码管结构图: 动态扫描原理: 主要是利用了人的视 ...
- USB转网口驱动信息的查看和配置
文章目录 查看USB转网口转接头信息 USB转网口驱动配置 USB驱动信息的查看 查看USB转网口转接头信息 首先,查看一下没有插入转接头之前的网口信息 ip addr 然后插上USB转网口的转接头到 ...
- 基于FPGA的实时图像边缘检测系统设计(上)
今天给大侠带来基于FPGA的实时图像边缘检测系统设计,由于篇幅较长,分三篇.今天带来第一篇,上篇,话不多说,上货. 导读 随着科学技术的高速发展,FPGA在系统结构上为数字图像处理带来了新的契机.图像 ...
- 基于FPGA实现SPI接口(配置或通信)
基于FPGA实现SPI接口(配置或通信总线) 1)总线简介 串行外设接口(SPI)是微控制器(FPGA)和外围IC(如传感器.ADC.DAC.移位寄存器.SRAM等)之间使用最广泛的接口之一.主要用于 ...
- 基于FPGA的CAN通信,FPGA驱动SJA1000T芯片代码,实现标准帧与扩展帧的通信驱动
基于FPGA的CAN通信,FPGA驱动SJA1000T芯片代码,实现标准帧与扩展帧的通信驱动,已上板调通 品牌型号 CAN SJA1000T 与世面上的不同,代码不是SJA1000T芯片代码,而是驱动 ...
- 基于FPGA的UART接口协议设计
一.PC终端概述 PC终端,Personal Computer 智能终端,通俗的讲,就是利用电脑GUI界面控制我们的外部硬件电路. 因此设计到了PC与外部硬件电路的通信接口.对于台式电脑.个人笔记本, ...
- 基于fpga的电子琴
基于fpga的电子琴 1.芯片介绍 主流产品:ALTERA公司 .FLEX公司 产品类型:CPLD:EPROM类型,掉电后程序不丢失. FPGA:SRAM类型,掉电后程序丢失,必须重新编程. 工作电压 ...
- 基于FPGA的深度学习算法加速
学习总结--基于FPGA的深度学习算法加速 1.深度学习算法加速的方法 2.为什么用FPGA来加速YOLOV2 3.FPGA简介 4.PYNQ框架与HLS加速理论 5.实验结果 1.深度学习算法加速的 ...
最新文章
- WSFC2016 SMB多通道与网络调校
- 机器人视觉的九大挑战
- IIS 下配置无后缀的URL ReWrite
- 使用wireshark观察SSL/TLS握手过程--双向认证/单向认证
- python输出假分数_分数的表示以及计算(c++)
- python大于小于1023python大于小于_PythonPAT 1023 Have Fun with Numbers
- 互联网和大数据是什么意思_大数据和互联网的区别是什么意思
- 基于表的数据字典构造MySQL建表语句
- IE-ALB网络实验室:cisp-pte CCNA题库 GLBP网关负载均衡协议原理
- 二级缓存j2cache和SpringBoot整合
- 开机出现recovering journal解决办法
- PHP获取每个月的开始时间和结束时间
- TZC 3012-Fibnacci Numbers(矩阵快速幂+降幂公式)
- AtCoder Beginner Contest 190 D - Staircase Sequences
- 关于博客笔记大汇总,持续更新迭代
- 计算机专业专硕考研学校排名,计算机考研学校排名
- 10计算机管理员权限获得,Win10永久获取管理员权限的方法
- 从loss的硬截断、软化到Focal Loss
- form表单通过request取不到值multipart/form-data 文件上传表单中传 递参数无法获取的原因!
- [英语]凡是倒装都有表“强调“之意
热门文章
- 单场淘汰制场次计算方法_怎样用单循环制进行的比赛计算场数
- 程序员自我修养1:能力矩阵
- [Python从零到壹] 三十四.OpenCV入门详解——显示读取修改及保存图像
- 【机器人控制架构】控制系统架构【控制流程图、控制算法】
- 【工具】中国菜刀 官方原版下载 官网下载链接
- ssm基于WEB的房屋出租管理系统的设计与实现161620
- php_curl-5.4.3-VC9-x64下php_curl.dll加载出错
- EDIUS 3.6快捷键
- Termux字体大小调整
- 基于python的贪吃蛇游戏设计论文_《贪吃蛇游戏课程设计》报告毕业设计(论文)...