本文主要介绍了学生期间自己做的一个小项目,便于学习初期对fpga的整体把握,涉及了很多常见、常用、常考和面试常问的知识点。
可以作为入门后的拓展学习和应对一些找工作的项目面试。
下面对硬件及软件代码进行简单梳理:
首先,介绍一下硬件系统的主要功能框图。其中FPGA作为处理单元,实现了包括电流和电压的采集、千兆以太网通讯、SD卡本地数据存储和串口通讯等。已经过板级测试,测试包含:千兆网通讯收发测试、AD采集的数据验证、SD卡存储验证、RTC实时时钟读取和RTC的RAM突发读取等。
PCB设计采用的是AD软件,Verilog程序通过quartus II软件编写。
系统分为硬件设计和软件设计。

一、硬件设计
下图分别为硬件的正面和反面,纯个人手工焊接。考虑了千兆以太网中的高速数据线的差分阻抗100Ω、数字电源和模拟电源的划分等,PCB主要采用四层板的设计方案。顶层和底层为信号走线层;第二层为完整的地层,分为数字地(DGND)和模拟地(AGND),为顶层的信号层和电位电流模拟量的采集提供参考;第三层为电源层,本层提供较为完整的3.3V电源平面和模拟地平面,还有1.2V和2.5V的电源平面。
其中硬件设计中需注意的是千兆以太网的设计和电流采集部分。千兆网部分采用的是ETL8211EG芯片,支持千兆以太网,但要实现千兆网络,布线时要保证差分对的阻抗100Ω,需要考虑蛇形走线和线宽线距、参考层等因素。电流采集部分要考虑模拟地的划分和电流的放大倍数、高精度电阻等,这里我选的是INA240A系列,包含20、50、100、200四种增益可以选择。数模转换是8通道,每通道16位,支持并行的200SPS采样率的AD7606芯片。SD卡就是最常见的Micro SD Card,买的闪迪的16G的卡。RTC是常见的DS1302。考虑版面问题,数码管只留了一个。硬件下载AD源文件下载链接:https://download.csdn.net/download/qq_39521541/15110220




AD中的三维图如下:

各模块的原理图如下,这是初版 的原理图,实际的硬件在此基础上进行了修改,但是变化不大,就不再截图了。



存储通讯和显示电路
二、软件程序编写
在以上硬件的基础上编写了程序,总程序5000余行。实现了AD7606电压和电流数据的采集和RTC的时间和内部RAM突发读写,然后并行的存储和通过千兆以太网与串口发送到电脑上。
程序的顶层模块设计如下图:

通过电脑上的网络助手同时采集到的串口数据、千兆以太网数据和用Winhex查看的SD卡内存储的数据如下图,数据完全一致。串口数据为什么也用网络助手显示呢,因为我板子上的串口上可以插上一个网络模块,这样串口数据也可以通过无线发送到电脑了,当然硬件上也有有线的串口端子,也进行了验证,不再截图赘述。

程序主要难点在于逻辑与时序的处理,程序中进行了一些时序的操作。为了方便我理清思路也进行了主要的时序图的绘制,如下图所示,画时序图的软件可以在这里下载https://download.csdn.net/download/qq_39521541/14951291,破解版很好用。
程序的模块结构如下图所示,其中4G其实就是串口,为了进行跨时钟域和SD的闪存,用了双口FIFO、双口RAM、单口RAM、ROM等IP核。

接下来是编译后的资源占用情况和编译信息,从图中可以看出基本不存在警告,其实现存的三个警告,完全不影响结果,而且知道警告存在的原因即可。

时序约束部分截图如下,时钟主要约束了50M的系统时钟、25M的SD卡时钟和125M的千兆网时钟。

最后的最后附上总的程序源码:https://download.csdn.net/download/qq_39521541/15110143
。欢迎交流讨论,Vchat 8折:Advent_Yu

基于FPGA的数据采集、通讯和存储系统设计(即FPGA+RTL8211千兆以太网+SD卡存储+RTC+Uart+AD7606数模转换+电流放大采集等硬件设计及程序验证)相关推荐

  1. 国产FPGA(紫光同创)—— 数据采集及千兆以太网传输(一)

    科研需要,使用国产FPGA(紫光PLG50H)实现数据采集及千兆以太网传输.总体流程如图所示 第一部分先对数据采集部分进行说明. 一.模数转换(ADC芯片-LTC2324) 本项目使用的是LTC232 ...

  2. 国产FPGA(紫光同创)—— 数据采集及千兆以太网传输(二)

    科研需要,使用国产FPGA(紫光PLG50H)实现数据采集及千兆以太网传输.总体流程如图所示 数据采集完成后,第二部分就需要千兆以太网实现数据传输. 一.硬件部分 开发板上通过Realtek RTL8 ...

  3. android的SP存储和SD卡存储

    在android中有着很多的存储方式,例如数据库存储,SD卡存储以及SharedPreferences(以下简称SP)等,下面我们来主要的讲解一下SP以及SD卡存储. 首先是SP,SP存储是一个采用K ...

  4. 【转】简谈基于FPGA的千兆以太网

    原文地址: http://blog.chinaaet.com/luhui/p/5100052903 大家好,又到了学习时间了,学习使人快乐.今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较 ...

  5. 简谈基于FPGA的千兆以太网设计

    简谈基于FPGA的千兆以太网设计 今天给大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货. 今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较高级的内容了,有些大侠肯定会感觉以太网学 ...

  6. 基于Xilinx artix 7的FPGA高级应用(二):千兆以太网通信(原理篇)

    本项目是基于Xilinx Artix7 XC7A35T芯片 以太网芯片选用的是RTL8211EG PHY芯片 MAC 和PHY接口标准是GMII 开发工具是vivado 2018.3 FPGA高级应用 ...

  7. 基于FPGA的千兆以太网设计

    今天给大侠带来基于FPGA的千兆以太网设计,话不多说,上货. 一.设计概述 由于设计比较复杂,本篇带来设计流程以及设计思路,仅供各位大侠参考. 本篇通过管理数据输入输出MDIO配置PHY寄存器,使其工 ...

  8. 简谈基于FPGA的千兆以太网

    当今,随着互联网技术的迅速发展,采用以太网实现数据采集和控制方面的应用,成为了电子系统设计的热点.以太网具有价格低廉.稳定可靠.传输速度快.传输距离远等特点,以太网技术发展成熟,具有很高的性价比.采用 ...

  9. 基于FPGA的千兆以太网的实现(1)

    基于FPGA的以太网图片接收 项目简述 UDP协议讲解 V3学院的上位机传送图像数据的数据流 项目的实验框图 跨时钟域处理时序图 Image_ctrl时序图 工程代码 测试模块的代码 测试结果 总结 ...

最新文章

  1. tensorflow 安装_tensorflow安装
  2. 下列哪个不是python合法的变量名_下列哪个不是Python中合法的数据类型?
  3. jackson驼峰转下划线注解_jackson序列化与反序列化的应用实践
  4. Dynamic动态类型
  5. php 等比例缩略图,PHP等比例生成缩略图
  6. 数据挖掘与python实践心得体会_数据挖掘心得体会
  7. mysql用reader读取空数据时报错的处理
  8. IntelliJ IDEA 2017完全破解方法
  9. 系统集成项目管理工程师考试大纲和复习知识点
  10. 让iPhone不能自动下载系统更新的一个办法
  11. 数据结构单向链表(C++)
  12. vscode中文备注出现方框标注显示此字符非ascii字符如何取消
  13. 反垃圾邮件系统|基于Springboot+vue 实现反垃圾邮件系统
  14. 风影ASP.NET基础教学 9 数据访问
  15. rhel7虚拟机的封装
  16. 雅可比行列式_二重积分换元法、雅可比行列式
  17. Python代码解析数据
  18. 2017电影经典语句
  19. 电子邮件内容安全刻不容缓
  20. 如何对大硬盘进行低格

热门文章

  1. 大学生创新工作室阶段性总结
  2. 什么是虚拟机,有什么用?
  3. 计算机毕业设计ssm家具商城hog7l系统+程序+源码+lw+远程部署
  4. 网站域名过期后还能买回来吗?
  5. 1、什么是实际的电压源与电流源?
  6. Oracle数据库条件筛选函数decode,NVL
  7. 滴滴云「于某声」在「服务器采购过程中」受贿累计超过 1000 万元:已移交公安机关
  8. ipad2019编写html,2019 iPad性能排行榜,选对型号很重要
  9. Project 2016中如何管理工时?
  10. 《中国人工智能系列白皮书——智能驾驶》精编