基于FPGA的ADS1298的心电数据采集

前言

在医疗领域常常使用的心电图仪并不是很复杂的仪器。其原理跟示波器非常相似,只不过,心电图仪测量的是低频小信号。心电信号(也叫ECG信号)的幅值一般在0.05mV-4mV之间,要求分辨力至少为0.1mV,其频率在0.05-100Hz之间,主要的频率成份集中在5~20Hz之间。一般的示波器垂直刻度最小为10mV/div,分辨力约为0.4mV。其次,把探头接在左右手,在示波器上只会观察到50Hz的工频干扰。所以,示波器并不适合测量心电信号。我们选用ADS1298芯片,可以很好的完成心电信号的采集。本文不涉及硬件设计,只梳理一下芯片的操作及如何用FPGA实现芯片的控制。硬件设计可参考官网的DEMO板

芯片操作

ADS1298芯片是通过SPI接口与控制芯片进行交互数据。ADS1298作为从端,控制芯片(FPGA)做为主端。ADS1298重要管脚列表功能如下:

名称类型说明
DRDY_N数字输出数据就绪,低电平有效
DAISY_IN数字输入菊花链输入,若未使用与DGND短接
RESET_N数字输入系统复位,低电平有效
CS_N数字输入SPI片选,低电平有效
DOUT数字输出SPI数据输出
SCLK数字输入SPI时钟
DIN数字输入SPI数据输入
CLK数字输入或输出外部主时钟输入或内部时钟输出
START数字输入开始转换
CLK_SEL数字输入主时钟选择

芯片控制流程

芯片的控制流程我们主要按照数据手册上的应用信息来设计控制程序。
在这里插入图片描述
在这里插入图片描述

程序编写

按照芯片的控制流程,我们采用状态机的形势来完成芯片的配置及数据采集。状态机定义如下图:
在这里插入图片描述
在这里插入图片描述
写寄存器SPI接口时序图如下:
在这里插入图片描述
读数据SPI接口时序如下:
在这里插入图片描述

FPGA仿真波形

整体的写读时序波形
在这里插入图片描述
读数据时序波形,总共9个24bit数据,第一个数据为状态数据,后面依次是采集到8个通道的数据
在这里插入图片描述
最终将代码在Quartusii中综合编译,下载到开发板里,可以通过SIGNALTAP抓取到数据。

注意事项

  1. SPI的模式为CPOL=0且CPHA=1
  2. 在读数据时,CS需要一直保持低电平

结语

到此,我们可以正常的配置芯片的工作状态,同时读取采集到的数据,如果想用该芯片实现心电信号的采集并显示,还需要做的工作还比较多,需要我们仔细阅读数据手册,和官方的DEMO板资料,了解硬件的设计及采集探头的接法。由于个人能力,精力有限,如果文中有误还请谅解,同时希望能告诉我,共同交流学习,一起进步,谢谢!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值