0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA的ECG信号采集与处理系统是怎么样设计的呢?

5CTi_cirmall 来源:与非网 作者:ygxlysdxhs 2021-03-10 14:31 次阅读

Hello! 大家好,本次项目主题是“基于FPGA的ECG信号采集与处理系统设计”,与众多STM32Arduino单片机直接利用软件编程调用库函数不同,本项目以底层逻辑为切入点进行数字电路设计,更加关注电路底层的细节,包括基础模块的划分、接口信号的定义、verilog代码设计、仿真验证以及板级调试,在满足性能要求下,同时会评估资源消耗问题,希望大家能和我一起一步一步的完成此次工程项目,而不是简单的copy。其中难免有错误,希望各位指正。

引言: FPGA开发和数字IC设计十分相似,而两者最基础是verilog代码设计,verilog是硬件描述语言,实现的数字电路具备硬件并行处理的优点,所以verilog设计思想与基于软件的编程语言是有很大不同的,复杂的verilog代码设计不是随随便便直接在板子上调试成功的。 本项目侧重对设计代码的仿真验证,而不是简简单单对代码 “搬运工”,达到所谓“快速”入门的假现象。在FPGA开发中,每一行verilog代码已经决定了电路的性能和功能,仿真是对verilog代码设计的有效验证方法,因为代码存在的bug在仿真中会一一被定位出来,“速成”FPGA开发都是假的,不能一行一行代码看懂和敲出来,verilog学习的时长都是无用功,正确设计方法+动手练习是FPGA开发/数字电路设计的正确打开方法。

以下是我个人设计的方法: 首先根据你的硬件条件包括FPGA板型和其他硬件(AD、VGA、LCD、舵机、摄像头等等),确定一个硬件的详细设计方案; 接着根据需求和参考资料将整体划分到各个小模块,并确定各个模块接口之间的数据信号和控制信号;画时序图主要是根据数据信号走向需要哪些控制信号,而控制信号主要实现方式就是cnt、enable、flag等等。

其次按照图纸就可以敲代码了,而verilog代码语法不是很难,主要是算术运算符、赋值运算符、关系运算符、逻辑运算符、条件运算符、位运算符以及移位拼接等,一般设计会这些足够了,而往往多数初学者觉FPGA设计很简单啊,大概指的这部分语法简单,但是在敲代码过程中还要考虑到组合逻辑以及时序逻辑中常用的模块,{组合逻辑主要包括常用逻辑门(与门、或门、非门、异或等)、比较器、半加器、全加器、乘法器、数据选择器、三态门,时序逻辑主要包括D触发器、两级D触发器、带异步复位的D触发器、带异步复位同步清零的D触发器、移位寄存器、单口RAM、伪双口RAM、真双口RAM、单口ROM、有限状态机等}。而这些基本单元在写代码过程做到心中有数,因为这些决定了设计的PPA(Performance,Power,Area); 最后再通过仿真工具对设计的代码进行验证,首先是功能仿真也就是RTL行为级仿真,主要是检查代码中的语法错误以及代码行为的正确性,但是不包括延时信息,验证之前“模块划分与接口定义”阶段。其次是后仿真也就是时序仿真,在设计布局布线后提供一个时序仿真模型,验证之前“画接口信号时序”阶段。

步骤一:项目框架

目的意义 在我国,随着生活节奏加快,心血管疾病的发病率有逐年递增的趋势;同时由于人们生活水平和健康意识的不断提高,对心脏类疾病进行实时监护的需求也不断增加。但是,心血管疾病本身具有无症状性(病人在发生心肌缺血时并没有胸痛、心绞痛等常见症状)和间歇性。 选择这个主题主要原因之一是开发一种可以帮主人们日常生活的非侵入性设备—基于FPGA的ECG信号采集与处理。市场上有许多ECG信号检测产品可以提高效率(尺寸较小,将数据保存在云中等等),但是其中任何一件产品都很少涉及到复杂信号处理,并没有与数据库进行比对。

内容及结构安排:

本文基于Xilinx公司的Artix-7系列芯片xc7a35tcpg236-1和AD83232采集板搭建一套硬件平台用以异常ECG信号检测系统。使用Vivado和ModelSim设计和仿真各个系统模块的功能,本系统主要有AD8232信号采集,FPGA存储和处理,C#GUI显示及matlab处理。其中FPGA处理是核心部分,由以下模块构成:AD模块、RAM模块、UART模块及滤波模块。本文采用Verilog HDL硬件描述语言进行编程,XADC具有两个专用的差分输入引脚Vp和Vn,可用于采样模拟信号,通过ADC模块完成100 MHz到360 Hz的数据采样,同时采用低通滤波器消除共模噪声;在所有存储单元中存满ECG的样本数据后,将生成一个脉冲以触发向PC的传输。UART模块将接收一个信号,该信号使用TX模块进行发送,当接收UART检测到起始位时,它将开始以称为波特率的特定频率读取输入位。

本项目主要有以下方面:

1.FPGA学习流程。编写项目详细设计方案,主要包括数据通路和控制通路的设计,模块划分与接口信号的定义,数据通路原理图以及控制通路时序图,verilog代码的具体设计,以及仿真验证,下载到FPGA开发板调试。在verilog代码设计过程会描述时序图,用到IP核,数据通路的寄存器消耗资源进行评估。

2.用到的滤波处理。在信号处理中,数字滤波器是一种对采样的离散时间信号执行数学运算以减少或增强该信号某些方面的系统。数字滤波器系统通常由一个模数转换器对输入信号进行采样,使用FPGA或ASIC代替通用微处理器或具有特定并行架构的专用DSP,以加快诸如过滤之类的操作。

项目简介: 包含四大部分:AD采集模块、RAM存储模块、滤波处理模块、UART模块。 首先,AD8232放大器输出是一个介于0至3.3V之间的模拟值,ADC模块的输入应为1V,因此需要进行分压。放置在放大器的输出和FPGA板的输入(Vp引脚)之间,AD模块包括PLL和XADC 完成100 MHz到360 Hz的数据采样。 其次,我们利用RAM模块存储通过ADC采集的样本。模块具有2个命令模式:读取和写入。这两种状态由启用写模式时为高电平和禁用写模式时为低电平的信号控制。

Step1:确定整个设计思路,ECG信号检测的总体框图,确定程序流程框图 Step2: AD模块、包括XADC和分频时钟接口定义,进行具体verilog代码设计和仿真验证 Step3:RAM读写模块、根据状态机进行接口定义,进行具体verilog代码设计和仿真验证 Step4:Digital filter模块、UART模块接口定义,进行具体verilog代码设计和仿真验证 Step5:进行功能扩展,并将以上所有模块集成在一起,并且做整个仿真验证以及板级调试,通过在C#GUI中显示及保存为.csv文件,利用MATLAB进行相关算法处理,整理打包完整的开源方案所有资料

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21736

    浏览量

    603245
  • ECG
    ECG
    +关注

    关注

    4

    文章

    126

    浏览量

    52220

原文标题:《来实战》第6期:基于FPGA的ECG信号采集与处理系统设计

文章出处:【微信号:cirmall,微信公众号:电路设计技能】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ADS1192ECG-FE采集不到正确的心电波形怎么解决?

    本人学生党一枚,最近在做心电采集。用ADS1192ECG-FE采集心电信号,无论怎么调波形都不对,不知道是寄存器设置的问题还是怎么回事。大家测试的时候寄存器参数都是怎么设置的?只单独
    发表于 12-16 08:35

    FPGA的多通道数据采集传输系统

    一、系统总体方案设计 为了满足油田增压站对数据采集的需求,我们设计了一套基于FPGA的多通道数据采集与传输系统
    的头像 发表于 12-09 10:45 219次阅读
    <b class='flag-5'>FPGA</b>的多通道数据<b class='flag-5'>采集</b>传输<b class='flag-5'>系统</b>

    使用ads1293做ecg心电信号采集,测量中发现环境干扰信号导致ecg信号失真,怎么处理

    目前使用ads1293做ecg心电信号采集,测量中发现环境干扰信号导致ecg信号失真,ads1
    发表于 11-26 07:49

    ADS1299检测生理信号,怎么计算采集信号的幅度

    ADS1299检测生理信号,怎么计算采集信号的幅度? 比如放大倍数是24倍,参考采用内部参考,那计算
    发表于 11-20 08:31

    ADS1292采集几个同事的ECG信号电压,发现不同个体的基线电压偏差很大,怎么处理

    电路参考demo板,采集几个同事的ECG信号电压,发现不同个体的基线电压偏差很大。这种一般是怎么处理的? 下面这个基线基本在-1.96V 下面这个基线基本在0V左右
    发表于 11-18 07:46

    AD采集FPGA做fft处理信号的问题

    是不是就是20KHz?这样是不是就能满足每通道采样频率为信号频率的4倍? 对采集到的信号进行fft
    发表于 08-29 09:22

    FPGA异步信号处理方法

    FPGA(现场可编程门阵列)在处理异步信号时,需要特别关注信号的同步化、稳定性以及潜在的亚稳态问题。由于异步信号可能来自不同的时钟域或外部设
    的头像 发表于 07-17 11:10 1152次阅读

    基于FPGA的图像采集与显示系统设计

    源和固有的并行处理能力,在数字信号处理、硬件加速、汽车电子等领域得到了广泛应用。在图像采集与显示系统中,
    的头像 发表于 07-17 10:58 1868次阅读

    医疗级心电ECG采集处理模块

    模块简介 WLEC2医疗级心电模块是一款专用于ECG采集的模块,可以达到医疗器械注册的技术标准。模拟部分采用唯理科技低功耗高精度的 WL128 芯片采集,并配置硬件 RC 滤波,具有交流直流
    的头像 发表于 07-15 16:45 379次阅读
    医疗级心电<b class='flag-5'>ECG</b><b class='flag-5'>采集</b><b class='flag-5'>处理</b>模块

    信号采集处理系统通常由哪些模块组成

    信号采集处理系统是一种广泛应用于工业、科研、医疗等领域的电子系统,它能够对各种类型的信号进行采集
    的头像 发表于 07-15 14:12 1392次阅读

    信号采集系统的作用及组成部分

    信号采集系统是一种用于获取、处理和分析各种信号的电子设备。它广泛应用于工业、科研、医疗、通信等领域。本文将详细介绍
    的头像 发表于 05-31 14:21 1687次阅读

    基于MATLAB的信号处理系统与分析

    基于MATLAB的信号处理系统与分析,包括信号的导入、预处理、分析、特征提取以及频谱分析等关键步骤,并通过实例展示MATLAB在信号
    的头像 发表于 05-17 14:24 1077次阅读

    数字图像处理系统及应用

    电子发烧友网站提供《数字图像处理系统及应用.pdf》资料免费下载
    发表于 02-23 14:49 0次下载

    晶振在视觉处理系统中的运作及作用

    在现代视觉处理系统中,晶振(晶体振荡器)发挥着关键作用,通过提供精确、稳定的时钟信号,协调各个组件的操作,确保系统的正常运行。
    的头像 发表于 01-11 15:00 381次阅读
    晶振在视觉<b class='flag-5'>处理系统</b>中的运作及作用

    EVAL-ADPD188如何同时采集ECG和PPG信号

    我购买了EVAL-ADPD188评估板,PPG信号可以准确采集。现在我想同时采集ECG和PPG信号,不知道如何设置? 如果有配置文件最好了
    发表于 12-28 06:52