1 AED除颤器实现方案-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

AED除颤器实现方案

云深之无迹 来源:云深之无迹 2023-12-11 10:52 次阅读

别看了,题文不符,我本来写脑电,后来不小心搞成AED科普了。

开源EEG-脑电采集硬件KS108x

TGAM脑电模块-实战应用(良好封装版)

脑电采集+TGAM脑电模块

这个板子是官方的开发板(贵死)

de3d1316-9648-11ee-8b88-92fbcf53809c.png

真贵啊,700+可以买个FPGA的板子玩了。。。

没办法,为了MCU的源码冲了。

便携脑电方案评测——信号采集及方案开发; 微弱电信号传感——毫伏级电信号监测性能评估及数据采集。

de621210-9648-11ee-8b88-92fbcf53809c.png

V3

de8ccd0c-9648-11ee-8b88-92fbcf53809c.png

V2.1

支持DC耦合AC耦合输入模式配置; 就是一开始输入的开关

具有灵活的开关和接口选择实现电路配置;

妈的,只能说贵,就这点物料设计就100多,含泪挣我600,如果固件好,我就不说什么了。

deac212a-9648-11ee-8b88-92fbcf53809c.png

我就看上这个GUI配置传感器了,我必须下面搓一个

dec58188-9648-11ee-8b88-92fbcf53809c.png

在上面的一溜,就是控制通道开闭和增益以及滤波器的,好像就这样了

ded719e8-9648-11ee-8b88-92fbcf53809c.png

这个上位机的软件呢,我也得看看怎么个事

使用QT6写的,libwinpthread 是 Windows 上的 POSIX 线程库。在 Windows 平台上,POSIX 线程(Pthreads)是一种用于多线程编程的标准。libwinpthread 提供了对这些标准线程功能的支持,使得在Windows 上的应用程序能够更容易地移植和运行POSIX 线程。使用了多线程和OpenGL实现炫酷的效果。

我多线程不会啊!不会就不会了,不耽误我中午吃饭。

对一个用户来讲,他是不管你芯片有多好,他只看你的效果好不好,很肤浅的就是看一个可视化的图,他不懂滤波,就知道看图有没有什么毛刺。

而且一个芯片里面这么多的寄存器,固件里面一次写死也不好,尤其是你要当肯定比给别人用。OK,那就浅浅的来实现一下。

实现串口接收指令并通过SPI接口配置传感器的功能

初始化串口和SPI模块:在代码中初始化串口和SPI模块,配置它们的参数,包括波特率、数据位、停止位等。

// 串口初始化 HAL_UART_Init(&huart1); 
// SPI初始化 HAL_SPI_Init(&hspi1);
接收串口指令:使用UART中断或轮询方式,从串口接收指令。当有数据到达时,需要解析接收到的数据以获取控制传感器的指令和参数。
// 串口接收 
HAL_UART_Receive_IT(&huart1, rxBuffer, RX_BUFFER_SIZE);
在UART的回调函数中处理接收到的数据,解析指令:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
    // 解析接收到的指令并执行相应的操作
    parseAndExecuteCommand(rxBuffer);


    // 重新启动串口接收
    HAL_UART_Receive_IT(&huart1, rxBuffer, RX_BUFFER_SIZE);
}

配置SPI并发送数据到传感器:根据接收到的指令,配置SPI参数,并将相应的数据发送到传感器。
// SPI数据传输
HAL_SPI_Transmit(&hspi1, txBuffer, TX_BUFFER_SIZE, HAL_MAX_DELAY);

实现指令解析和传感器配置函数:编写函数来解析串口接收到的指令并配置传感器。
void parseAndExecuteCommand(uint8_t *command) {
    // 解析指令并执行相应的操作
    if (command[0] == 'C' && command[1] == 'F') {
        // 配置传感器寄存器
        configureSensorRegisters(command + 2); // 传递参数部分
    }
}


void configureSensorRegisters(uint8_t *parameters) {
    // 根据参数配置传感器寄存器
    // 将参数写入SPI缓冲区并通过SPI接口发送到传感器
}

一般是要写在中断里面,解析接收到的指令并执行相应的操作,然后重新启动中断,根据接收到的指令,配置SPI参数,并将相应的数据发送到传感器。

deeb8734-9648-11ee-8b88-92fbcf53809c.png

中断里面是来把要控制的操作取出来,然后使用SPI发出去

这些代码有点儿戏,让我来写一点工程化的东西。

df08bfb6-9648-11ee-8b88-92fbcf53809c.png

不妨先写一个控制传感器的函数,通常会实现解析和处理传感器配置参数

df1ee8f4-9648-11ee-8b88-92fbcf53809c.png

函数检查接收到的命令是否以"CONFIGURE:"开头。如果是,它提取参数并调用configureSensorRegisters来处理和配置传感器。

df38d1f6-9648-11ee-8b88-92fbcf53809c.png

函数是一个回调函数,当通过UART接收到字节时会执行。它收集接收到的字符,直到遇到换行或回车字符,表示命令的结束。然后,它使用parseAndExecuteCommand()处理接收到的命令。

df581494-9648-11ee-8b88-92fbcf53809c.png

因为是中断,里面也没有什么好写的

df7f6c60-9648-11ee-8b88-92fbcf53809c.png

接下来看看电极分类

df96d152-9648-11ee-8b88-92fbcf53809c.png

现在很多的都用音频接口来连接电极

dfacc674-9648-11ee-8b88-92fbcf53809c.png

这个是开发板上面的4个引脚

dfd8337c-9648-11ee-8b88-92fbcf53809c.png

这个是在绘制的装配图,给了AD的封装

dfece8e4-9648-11ee-8b88-92fbcf53809c.png

这个是TI的,可以看到在共模干扰这块还是优势大

e00f1b30-9648-11ee-8b88-92fbcf53809c.png

两者参数各有高低,国产的偏置电流还小一些

e024831c-9648-11ee-8b88-92fbcf53809c.png

这个LOGO还是有点意思的

e03af584-9648-11ee-8b88-92fbcf53809c.png

这东西也会用在AED里面,你要这样说,我突然感觉AED就有技术含量了

OPA305这个型号奇奇怪怪的,一般没有中间的0,查了一下果然有猫腻。

e04e3716-9648-11ee-8b88-92fbcf53809c.png

就是没有305这个型号

它捕获治疗电极发出的ECG信号,运行ECG分析算法以识别可电击复律,并建议操作员是否需要除颤。

基本除颤器包含高压电源、存储电容器、可选电感器和患者电极。它能在存储电容器中产生电荷,形成潜在电流。电压越高,可能形成的电流就越大。

如果AED分析患者的ECG并探测到可电击复律,电容器将会充电,其中 Wc = 1/2CV^2c;而电容器电压 Vc(t) = Vc(0)e–t/RC,同时 R = R(lead) << R(chest)。按下电击按钮提供高压脉冲时,电流将开始流经身体以去极化大部分心肌细胞,从而重建协调收缩和正常心率。电流量由电容器和身体阻抗确定。

e06066fc-9648-11ee-8b88-92fbcf53809c.png

也就是说,其实是这个AED电流是实时的计算的

除颤能量需要经过经胸阻抗的衰减后才能到达心脏 。经胸阻抗测量是 AED 的重要功能之一。经胸阻抗 的大小一般在 25~200 Ω,影响经胸阻抗的因素有很多, 包括电极的类型和面积、电极板和皮肤间的接触状态等。经胸阻抗测量是 AED 最重要的功能之一,该功能可以使 AED 根据患者经胸阻抗大小实时调整除颤能量的 大小,同时可以对导联脱落、导联电极接触异常等危险 状况实现预警 。

目前的人体阻抗测量分析中,大多研究仍然采用经典三元等效电路模型,这个模型指出人体的等效阻抗主要是由细胞内电阻、细胞体液电阻以及细胞膜所形成的等效电容 C 三者组成的,目前多数市场在售的 AED 使用基于此原理的双电极恒流源激励电压测量的方法 在除颤前对患者进行经胸阻抗测量,具体做法是在电极连接完成后,AED 的恒流源激励电路向患者发送一个高频低压激励信号,随后信号检测电路检测经过经胸阻抗衰减的激励信号,通过计算得到患者的经胸阻抗信息

目前该方法的不足之处在于需要对患者施加额外的电流激励,且需要额外的时间成本,有向患者施加不当除颤的风险。

e0770fc4-9648-11ee-8b88-92fbcf53809c.png

除颤电流检测电路如图所示,出于除颤电流值较大的考虑,本系统选择通过电流互感器将除颤大电流线性转化为小电压进行数据采集,这样非接触式的测量方式可以保证测量的准确性和安全性,为防止在除颤电流检测时, 除颤峰值电流过大超出电流互感器的量程范围,本研究在除颤回路中串联 50 Ω 的机内补偿电阻 Rc 来防止除颤电流过大。

《2015 美国心脏协会 CPR 和 ECC 指南》指出,90%以上心脏骤停发生在医院之外,数据显示中国各大城市救护车到达现场最少要15-20分钟,在心脏骤停发生的四分钟内及时施救显得尤为重要,因此,AED体外除颤是目前心源性猝死抢救的最好办法。

AED的普及为何困难? 高成本,低投入,低使用 在发达国家,平均每十万人有用300台AED,如果中国想要达到这样的标准,那么420万台AED将要被投入使用,平均每一台AED,政府需要花20293元购买,此后每一年会产生580至1000元不等的耗材费用,直到2-5年后报废。这是一个高达874-900亿元的大市场。 然而,现实很骨感。到2020年,政府共为AED投入1亿元左右,2020年国家医疗卫生的总投入是19201.22亿元。假设每年销售额保持不变,要消化874-900亿的市场,大概还需要5个世纪。

e08ae206-9648-11ee-8b88-92fbcf53809c.png

贵啊

e0a92068-9648-11ee-8b88-92fbcf53809c.png

其实这个图就很简单的说明白了难点和原理,ECG可以精确的算出你什么时候需要电击,在电子学里面快速的放电的东西只有电容合适一些。

这里面的很多东西都是靠算法和稳定性的设计,太酷了。

给出代码:

#include "main.h"
#include "stdio.h"
#include "string.h"


UART_HandleTypeDef huart1;
SPI_HandleTypeDef hspi1;


#define RX_BUFFER_SIZE 50
#define TX_BUFFER_SIZE 50


uint8_t rxBuffer[RX_BUFFER_SIZE];
uint8_t txBuffer[TX_BUFFER_SIZE];


void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART1_UART_Init(void);
static void MX_SPI1_Init(void);


void parseAndExecuteCommand(uint8_t *command);
void configureSensorRegisters(uint8_t *parameters);


int main(void)
{
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_USART1_UART_Init();
    MX_SPI1_Init();


    HAL_UART_Receive_IT(&huart1, rxBuffer, 1);


    while (1)
    {
        // Main application loop
    }
}


void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    if (huart == &huart1)
    {
        static uint8_t commandBuffer[RX_BUFFER_SIZE];
        static uint8_t commandIndex = 0;


        if (rxBuffer[0] == '
' || rxBuffer[0] == '
')
        {
            // End of command, process the received command
            commandBuffer[commandIndex] = '�';
            parseAndExecuteCommand(commandBuffer);


            // Reset command buffer
            commandIndex = 0;
            memset(commandBuffer, 0, sizeof(commandBuffer));
        }
        else
        {
            // Add the received character to the command buffer
            commandBuffer[commandIndex++] = rxBuffer[0];
        }


        // Restart UART receive
        HAL_UART_Receive_IT(&huart1, rxBuffer, 1);
    }
}


void parseAndExecuteCommand(uint8_t *command)
{
    if (strncmp((char *)command, "CONFIGURE:", 10) == 0)
    {
        // Extract parameters and configure sensor
        configureSensorRegisters(command + 10);
    }
}


void configureSensorRegisters(uint8_t *parameters)
{
    // Parse and process sensor configuration parameters
    // Example: parameters may be a series of bytes to be sent via SPI
    // Update txBuffer with the data to be sent
    // ...


    // Send data via SPI
    HAL_SPI_Transmit(&hspi1, txBuffer, strlen((char *)txBuffer), HAL_MAX_DELAY);
}


// ... (HAL_UART_Init, HAL_SPI_Init, SystemClock_Config, MX_GPIO_Init implementations)


审核编辑:汤梓红

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

    关注

    2550

    文章

    51035

    浏览量

    753052
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17123

    浏览量

    350972
  • 开发板
    +关注

    关注

    25

    文章

    5032

    浏览量

    97371
  • 除颤器
    +关注

    关注

    0

    文章

    21

    浏览量

    10414
  • AED
    AED
    +关注

    关注

    0

    文章

    18

    浏览量

    1858

原文标题:带你认识AED-无限跑题版

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    应用于的FPGA解决方案

    ,而这些器件的安全性、高集成度和非易失性存储的特点,特别适用于自动化体外(automated external defibrillator, AED)。  美高森美的FPGA系列
    发表于 12-07 16:26

    医疗电子>自动体外

    自动体外涵盖从处理到信号调节再到电源管理的自动体外
    发表于 12-12 11:56

    心电图(ECG)设计如何才能达到ESD、环境和保护的要求

    最近宣布其正在评估关于AED的管理规定)。 为了帮助设计师设计分立式保护电路,ADI公司 件已经过测试,能够耐受高水平的ESD和输入
    发表于 10-19 09:20

    自动体外仪技术及解决方案讨论

    ADI提供了完整的自动体外仪产品解决方案,这类方案已经在全球获得大量的成功应用。鉴于常常有网友问及自动体外
    发表于 11-01 09:23

    心脏的原理

    心脏的原理  心脏又名电复律机,它是一种应用电击来抢救和治疗心律失常的一种医疗电子
    发表于 06-07 18:48 3095次阅读

    自动体外(AED)的发展可赢取电容器的新发展

    的《健康中国行动(2019—2030年)》明确提出:“完善公共场所急救设施设备配备标准,在学校、机关、企事业单位和机场、车站、港口客运站、大型商场、电影院等人员密集场所配备急救药品、器材和设施,配备自动体外(
    发表于 03-25 09:10 1525次阅读

    加拿大无人机公司模拟测试带有自动体外AED)的无人机

    在救护车之前发送一架带有自动体外AED)的无人机,可以使救援更快到达现场,从而挽救生命。 通过On the Fly项目,加拿大无人机交付公司(DDC)正在模拟情况下部署其Spa
    发表于 07-21 08:28 844次阅读

    专门为急救人员在使用真正临床AEDAED模拟

    SG-120C+型AED模拟仪是专门为急救人员在使用真正临床AED之前的培训而设计的。该训练机在培训指南、训练程序方面完全模拟真实的AED
    发表于 08-06 11:24 1973次阅读

    AED仪使用步骤及注意事项

    自动体外又称自动体外电击、自动电击、自动
    的头像 发表于 10-02 16:48 3.1w次阅读

    原理及常见设备介绍

    测试仪对质控的必要性!
    的头像 发表于 08-30 13:54 7480次阅读
    <b class='flag-5'>除</b><b class='flag-5'>颤</b><b class='flag-5'>器</b>原理及常见<b class='flag-5'>除</b><b class='flag-5'>颤</b>设备介绍

    分析仪对质控的必要性

    德国GMC-I高美测仪(上海电励士)生产分析仪;讲解除分析仪测试下的
    发表于 09-06 11:05 540次阅读
    <b class='flag-5'>除</b><b class='flag-5'>颤</b><b class='flag-5'>器</b>分析仪对<b class='flag-5'>除</b><b class='flag-5'>颤</b><b class='flag-5'>器</b>质控的必要性

    心脏检测仪检测的类型

    SECULIFE DF PRO 多模式分析仪是用于测试最新一代的智能仪器。它测量释放
    发表于 09-19 13:35 510次阅读
    心脏<b class='flag-5'>除</b><b class='flag-5'>颤</b><b class='flag-5'>器</b>检测仪检测的<b class='flag-5'>除</b><b class='flag-5'>颤</b><b class='flag-5'>器</b>类型

    科普|类型及如何测试

    起搏设备测试仪SECULIFE DF PRO 多模式分析仪是用于测试最新一代
    的头像 发表于 03-23 15:00 1763次阅读
    科普|<b class='flag-5'>除</b><b class='flag-5'>颤</b><b class='flag-5'>器</b>类型及如何测试<b class='flag-5'>除</b><b class='flag-5'>颤</b>仪

    启扬方案:基于ARM+FPGA的AED自动体外解决方案

    AED自动体外AED(AutomatedExternalDefibrillator),自动体外
    的头像 发表于 12-12 09:38 1234次阅读
    启扬<b class='flag-5'>方案</b>:基于ARM+FPGA的<b class='flag-5'>AED</b>自动体外<b class='flag-5'>除</b><b class='flag-5'>颤</b><b class='flag-5'>器</b>解决<b class='flag-5'>方案</b>

    生命护航,“救”在身边!安泰电子AED仪及CPR急救培训圆满结束!

    AED仪及CPR急救培训为增强员工健康意识和应对突发状况的急救能力,安泰电子在1F大厅配备了AED
    的头像 发表于 07-19 08:01 216次阅读
    生命护航,“救”在身边!安泰电子<b class='flag-5'>AED</b><b class='flag-5'>除</b><b class='flag-5'>颤</b>仪及CPR急救培训圆满结束!