TIwilliam hill官网
直播中

发生的方式

9年用户 1265经验值
擅长:处理器/DSP
私信 关注
[问答]

用ADS1198设计12导的心电检测仪遇到的信号采集问题求解


  • 请教ti工程师,我正在使用ADS1198设计12导的心电检测仪,原理图根据sbau180.pdf设计,模拟电源和数字电源都是采用3.3V单电源供电,中间用磁珠联通.目前程序已经完成,用心电模拟仪可以采集出很漂亮的8路心电信号,并且各路信号基线保持一致,可是在采集人体信号时,人体心电信号也能采集出来,但8路信号的各自基线都不同,各导联基线相差数值最大在1000(AD采集后的数值)左右,我感觉可能是各路的共模信号转换成差模了!但不知道该如何解决!已经调试半个月了实在是解决不了这个问题,以下附上我的ADS1198的初始化程序.
    void ADS1198_Init(void)
    {
         uchar d[8];
         P2DIR |= 0x60;                                        // ads1198 RST,READY管脚输出
         P3DIR |= 0x01;                                        // ADS1198 CS 管脚输出
         ADS1198_CS0;                                          // 选中ADS1198
         ADS1198_PWDN1;                                        // 禁止进入低功耗模式
         ADS1198_START0;                                       // 禁止采集
         ADS1198_RST1;                                         // 复位置高
         delayMS(1000);                                        // 延时1S
         ADS1198_RST0;                                         // 复位1198
         delayMS(100);                                         // 延时100MS   
         ADS1198_RST1;                                         // 复位清除
         delayMS(1);
         ADS1198_Send_CMD_One(SDATAC);                         // 发送停止命令
         ADS1198_Recive_Data(0x20+Addr_ID,1,d);                // 读ADS1198 ID号
         if(d[0]==0xB6)                                        // 判断是否为ADS1198 ID
         {
             d[0] = 0xCC;                                      // 内部参考+2.4V+RLDREF(AVDD-AVSS)/2+RLD buffer允许+RLD检测允许
             ADS1198_Send_CMD_Muti(0x40+Addr_CONFIG3,1,d);     // 配置寄存器
             d[0] = 0x05;                                      // Multiple readback+250SPS
             ADS1198_Send_CMD_Muti(0x40+Addr_CONFIG1,1,d);     // 配置寄存器
             d[0] = 0x00;                                      // 外部测试信号+1mV幅值+FCLK/2.048M频率
             ADS1198_Send_CMD_Muti(0x40+Addr_CONFIG2,1,d);     // 配置寄存器
             d[0] = 0x33;                                      // (7.5%/92.5%)+Pull-up/pull-down mode+DC lead-off detection turned on
             ADS1198_Send_CMD_Muti(0x40+Addr_LOFF,1,d);
             //d[0]=0x00;d[1]=0x00;d[2]=0x13;d[3]=0x13;d[4]=0x13;d[5]=0x13;d[6]=0x13;d[7]=0x13;// 12倍增益+正常导联输入
             d[0]=0x60;d[1]=0x60;d[2]=0x60;d[3]=0x60;d[4]=0x60;d[5]=0x60;d[6]=0x60;d[7]=0x60;  // 12倍增益
             ADS1198_Send_CMD_Muti(0x40+Addr_CH1SET,8,d);
             d[0] = 0x0ff;d[1] = 0x03;                          // RLD1P,RLD1N,RLD2N对应R,L,F,为右腿驱动源
             ADS1198_Send_CMD_Muti(0x40+Addr_RLD_SENSP,2,d);   // 配置寄存器
             d[0] = 0x00;d[1] = 0x00;                          // 8个通道全部检测导联脱落
             ADS1198_Send_CMD_Muti(0x40+Addr_LOFF_SENSP,2,d);  // 配置寄存器
             d[0] = 0x00;                                      // 通道1,通道2作为起搏检测通道,开启起搏检测缓冲器
             ADS1198_Send_CMD_Muti(0x40+Addr_PACE,1,d);        // 配置寄存器
             d[0] = 0x02;                                      // 持续转换模式+Lead-off comparators enabled
             ADS1198_Send_CMD_Muti(0x40+Addr_CONFIG4,1,d);
             d[0] = 0x08;d[1] = 0xCB;                          // power on WCTA+WCTB+WCTC,RLD1P,RLD1N,RLD2N为威尔逊中心信号源
             ADS1198_Send_CMD_Muti(0x40+Addr_WCT1,2,d);  
             ADS1198_Send_CMD_One(RDATAC);                     // 连续读命令
             ADS1198_START1;                                   // 开始数据采集
         }
    }

回帖(3)

李艺银

2024-12-17 09:42:22
心电模拟器的输出点和电极属于金属连接,所以不同的连接点几乎没有差异。但是电极和人体皮肤的连接就会差异很大,不管是同一个人的不同部位的皮肤,还是几乎同一块皮肤,因为连接的紧密程度以及扭动成形都会影响其通路阻抗。所以DC耦合,差分输入后,得到的值会有差别。如果不是基线飘移,可以用高通滤波器去除offset。
举报

于姝斐

2024-12-17 09:42:30
 极化电压引起的基线偏移,行业标准是能抗正负300mV的极化电压,前端放大一定不能太高,否则ADC很容易饱和,后端用数字滤波器过高通,这样基线就一致了
举报

杨丽

2024-12-18 09:14:10
根据您的描述,您在使用ADS1198设计12导心电检测仪时遇到了信号采集问题,具体表现为在采集人体信号时,8路信号的各自基线不同,相差数值最大在1000(AD采集后的数值)左右。您怀疑可能是各路的共模信号转换成差模了。以下是一些建议和解决方案:

1. 检查硬件设计:
   - 确保所有导联的连接线和地线都正确连接,没有短路或断路现象。
   - 检查模拟电源和数字电源之间的磁珠是否正确连接,确保它们能够有效地隔离共模噪声。
   - 检查ADS1198的参考地(AGND)是否与模拟地(模拟信号的地)相连,以确保共模噪声被有效地抑制。

2. 检查ADS1198的初始化程序:
   - 确保您已经正确设置了ADS1198的配置寄存器,特别是与差分输入和共模抑制相关的设置。
   - 检查您的初始化程序是否正确设置了ADS1198的采样率、增益和滤波器设置,以确保信号质量。

3. 软件滤波:
   - 在软件中实现一个低通滤波器,以减少高频噪声对信号的影响。
   - 实现一个带通滤波器,以去除心电信号以外的低频和高频成分。

4. 共模抑制:
   - 在硬件设计中增加共模抑制威廉希尔官方网站 ,例如使用共模扼流圈或共模电容。
   - 在软件中实现共模抑制算法,例如通过计算所有导联信号的平均值并从每个导联信号中减去该平均值。

5. 调试和测试:
   - 使用示波器或逻辑分析仪观察信号的波形,以确定信号是否受到共模噪声的影响。
   - 在不同的人体和环境条件下测试您的设备,以确定问题是否与特定的条件有关。

6. 咨询TI工程师:
   - 您可以通过TI的技术支持william hill官网 或直接联系TI工程师来获取更专业的建议和解决方案。

希望这些建议能帮助您解决信号采集问题。如果您需要进一步的帮助,请随时提供更多详细信息。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分