社区导航

 

搜索
查看: 17776|回复: 77

[原创] 【TI首届低功耗设计大赛】基于MSP430FR5969的可穿戴动态心电监测仪的设计(完整篇)

  [复制链接]

117

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-1-5 20:45 | 显示全部楼层 |阅读模式
本帖最后由 Mandy 于 2015-1-6 14:22 编辑

基于MSP430FR5969的可穿戴动态心电监测仪的设计(完整篇)

    很荣幸在电子工程世界论坛上申请到TI的LaunchPad MSP430FR5969开发板,参加TI首届低功耗设计比赛。在这百忙之中能抽出时间完成MSP430FR5969分享心得。这是第一次接触IT的MSP430,从零开始学习到设计的完成,得益于EEWORLD论坛上广大网友分享的学习资料和帮助,也得益于TI官网丰富的MSP430FR5969培训视频和资料,让初学者很快就能着手项目开发。
    在这里由衷地感谢一下EEWORLD论坛提供的平台,感谢论坛上网友们的支持和帮助,谢谢!呵呵……
    本设计能够在比较短的时间内完成,是去年参加的PSOC4设计有了一点基础,但更多的是精力的投入,项目设计的再次积累和创新!

视频如下:




    本设计以超低功耗MSP430FR5969微控制器为核心,以简单外围电路为辅助的创意设计,主要完成心电、加速度和热释电传感器信号采集及处理系统的方案设计、并实现了硬件和软件设计。心电的前端采集电路是关键部分,主要完成信号的正确提取。MSP430FR5969完成模拟信号的A/D转换、数字信号处理、Bluetooth通信等功能。实现了以MSP430FR5969为核心系统的动态心电波形信号、心率测量显示,体温信号测量显示和运动加速度测量等,通过Bluetooth与PC机、Bluetooth与Mobile Telephone通信的可穿戴动态心电监测仪产品设计。
    MSP430FR5969具有丰富的片上资源,超低功耗工作模式,可灵活配置,易扩展,功能强大,高可靠性等,是可穿戴式产品设计的最佳方案。
本设计能比较好地完成了预期的设想,并初步实现了硬件系统和软件系统的设计,完成了系统调试。经测试结果证明,基本达到了产品设计要求。

一、硬件系统
1、系统框图,如图(A):
图A-系统框图.png
图(A).系统框图

2、硬件系统,如图(B):
图B-硬件系统.png
图(B).硬件系统图

2、TI LaunchPad MSP430FR5969 硬件说明,如图(1):
图01-TI LaunchPad MSP430FR5969.PNG
(1). TI LaunchPadMSP430FR5969


图02-可穿戴动态心电模块.0.PNG
(2).可穿戴动态心电模块


本设计使用了MSP430FR5969片上的资源有:
<1> 12 Bit ADC,输入引脚是P4.3,主要完成人体心电信号的采集,模数转换过程。
<2> Clock System(CS),系统的时钟来源是MSP430FR5969内部集成DCOCLK,方便使用,不再需要外部晶振即可工作。
<3> UART,串行通信接口主要是跟蓝牙模块连接,数据传输功能,MSP430具有波特率自适应功能,使用还是很方便的。
<4> I2C,应用在对加速度传感器MPU6050和人体热释电红外传感器数据的读取。
<5> FRAM Controller,全新技术铁电存储,相对于SRAM来说还是有很大的优势。
<6> REF_A,内部基准电压,可提供给外围电路使用,非常方便,AD8232心电传感器正好需要一个基准电压,对硬件来说,减少了这部分的设计。
<7> TIMER_A,定时器是必不可少的,对于程序设计需要时间时,定时器也很重要。
<8> GPIO I/O,系统LED闪烁,热释电传感器单总线数据读取等等。
<9> PMM,电源管理模块,在可穿戴设备上,电源功耗管理是很重要的。

3、可穿戴动态心电模块硬件说明,如图(2):
<1> 加速度传感器MPU6050,如果在运动状态下让MCU也能采集到心电数据,这样的传感器是必备的,它能时刻监测系统处于任何状态。
<2> 心电传感器AD8232,主要完成心电信号前端放大差分和滤波等功能,输出的信号可以让MSP430FR5969采集。
<3> MSP430FR5969为本设计的核心器件,对采集到的数据进行处理和传输,完成整个系统的控制和管理等。
<4> DEBUG接口,可穿戴动态心电模块的调试接口,跟TI LaunchPad连接即可在线调试仿真和程序下载等。
<5> ECG LEAD接口,模块在不需要穿戴情况下,可以通过心电导联线连接到人体身上,方便多种方式采集心电信号。
<6> Bluetooth接口,蓝牙通信接口,连接蓝牙无线模块,与PC上位机,手机实时数据传输,蓝牙方案成熟,使用方便等。
<7> DC-BOOST,为TI TLV61220BVT电源管理IC,特别是在使用纽扣电池的设备中,在极低的输入电压情况下也可以把该电压抬升到让MCU工作的电压。
<8> ECG RA,在人体心电信号采集电路中ECG RA理论上是连接人体右臂,ECG RLD,是心电模拟端的右腿驱动,ECG LA用于连接人体左臂。
<9> PIR - 人体热释电红外传感器,主要应用在人体体温数据采集。

二、软件系统

1、硬件的原理图和PCB设计软件使用的是Protel 99 SE,如图(3)和图(4),在四层PCB板以内的电路设计中,Protel 99 SE是一款比较简单易用的PCB设计软件,占用电脑资源比较少。PADS和Altium Designer Summer 09/13等也可以,但占用电脑资源较多…!
图03-电路原理图设计.png
(3). 电路原理图设计

图04-电路板PCB设计.png
(4).电路板PCB设计

2、数据信号处理和算法设计平台:MATLAB,如图(5)。外围电路设计得相对简单,但要想产品功能和性能得到更大提高,软件设计是关键,特别是一些算法的设计处理,跟产品设计的成功有这密切关系。本设计所用到的算法有:心电信号低通滤波,高通滤波,带通滤波,带阻滤波,平衡滤波,抗基线漂移滤波算法,抗肌电干扰滤波算法,心率技术处理算法等。借助MATLAB数学软件来进行数字信号处理和算法设计是一种高效的方法。
图05-MATLAB算法设计.PNG
图(5).MATLAB算法设计

3、MSP430FR5969软件设计平台:IAR Information Center for MSP430,版本是6.10.7。关于IAR,在MSP430开发中使用的人很多。
本系统的软件工程如附件,找到项目工作空间并打开,对应的工程文件结构和程序的主函数分别如图(6),图(7)所示:
图06- IAR工程文件结构.png
(6). IAR工程文件结构

图07-项目工程主函数.png
(7).项目工程主函数


软件设计流程如图(C):
图C-软件设计流程.png
图(C).软件设计流程

<1> main函数模块,程序执行开始,结构设计得比较简洁,尽量详细的注释,这样程序的可读性会比较强。
<2> “Com.h”是用于包含和管理头文件,一般把通用的头文件都包含到该头文件里,在平常比较大的项目开发中,头文件管理是很有必要的。
#ifndef __COM_H
#define __COM_H
      #include"..\ECGTest\MSP430FR5xx_6xx_Lib\driverlib.h"
      //开关全局中断的宏
      #define ENABLE_INT()    __set_PRIMASK(0)  //使能全局中断
      #define DISABLE_INT()   __set_PRIMASK(1)  //禁止全局中断
      typedef unsigned int       U32;
      typedef int                S32;
      typedef unsigned short int U16;     
      typedef short int          S16;
      typedef unsigned char      U8;
      typedef char               S8;
      typedef unsigned int       BOOL;
      typedef unsigned int       u32;
      typedef int                s32;
      typedef unsigned short int u16;      
      typedef short int          s16;
      typedef unsigned char      u8;
      typedef char               s8;
      union VarU32{
              U32mU32;
              U16mU16[2];
              U8mU8[4];
      };
      union VarU16{
              U16mU16;
              U8mU8[2];
      };
      union VarS16{
              S16mS16;
              U16mU16;
              U8mU8[2];
      };
      #define TRUE  1
      #define FALSE    0
      #define true 1
      #define false    0
      #include"SysClock.h"
      #include "UART.h"   
      #include"ADCSample.h"
      #include"TimerA.h"
      #include "I2C.h"
      #include"MPU6050.h"
      #include"PIROTMS.h"
      #include"inv_mpu.h"
      #include"inv_mpu_dmp_motion_driver.h"
#endif
<3> ADC采样模块,主要是完成ADC模块的配置和初始化,程序如下:
//------------------------------------------------------------------------------
//函数名称: ADCSample_Init
//函数功能: ADC采样初始化
//入口参数: 无
//出口参数: 无
//函数说明: 无
//------------------------------------------------------------------------------
void ADCSample_Init( void )
{
  //配置P1.1为多重复用I/O口
GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P4,GPIO_PIN3,GPIO_TERNARY_MODULE_FUNCTION);  
  //初始化ADC12_B模块
ADC12_B_init(ADC12_B_BASE,
              ADC12_B_SAMPLEHOLDSOURCE_SC,
               ADC12_B_CLOCKSOURCE_SMCLK,//ADC12_B_CLOCKSOURCE_ADC12OSC,
              ADC12_B_CLOCKDIVIDER_1,
              ADC12_B_CLOCKPREDIVIDER__1,
              ADC12_B_NOINTCH);
  //使能ADC12_B模块
ADC12_B_enable(ADC12_B_BASE);
  //设置ADC12_B采样时间
  ADC12_B_setupSamplingTimer(ADC12_B_BASE,
                            ADC12_B_CYCLEHOLD_16_CYCLES,
                            ADC12_B_CYCLEHOLD_4_CYCLES,
                            ADC12_B_MULTIPLESAMPLESDISABLE);
  //配置ADC12_B内存
ADC12_B_memoryConfigure(ADC12_B_BASE,
                         ADC12_B_MEMORY_0,
                         ADC12_B_INPUT_A11,//ADC12_B_INPUT_A11,
                         ADC12_B_VREFPOS_AVCC_VREFNEG_VSS,
                         ADC12_B_NOTENDOFSEQUENCE,
                         ADC12_B_WINDOW_COMPARATOR_DISABLE,
                         ADC12_B_DIFFERENTIAL_MODE_DISABLE
                         );
ADC12_B_clearInterrupt(ADC12_B_BASE,
                        0,
                        ADC12_B_IFG0
                        );
  //开启内存缓冲0中断
ADC12_B_enableInterrupt(ADC12_B_BASE,ADC12_B_IE0,0,0);  
}

<4> I2C模块是用于读取加速度传感器和热释电传感器数据,全局函数如下:
#ifndef __I2C_H
#define __I2C_H
      #define  I2C_Direction_Transmitter      ((uint8_t)0x00)  //D′
      #define  I2C_Direction_Receiver         ((uint8_t)0x01)   //?¨¢
      #define SDA_IN()         do{GPIO_setAsInputPinWithPullUpresistor( GPIO_PORT_P4, GPIO_PIN2);}while(0)   
      #define SDA_OUT()         do{GPIO_setAsOutputPin( GPIO_PORT_P4,GPIO_PIN2);}while(0)
      #define IIC_SCL_LOW do{GPIO_setOutputLowOnPin( GPIO_PORT_P4,GPIO_PIN1 );}while(0)
      #define IIC_SCL_HIGH    do{GPIO_setOutputHighOnPin( GPIO_PORT_P4,GPIO_PIN1 );}while(0)
      #define IIC_SDA_LOW       do{GPIO_setOutputLowOnPin( GPIO_PORT_P4,GPIO_PIN2 );}while(0)
      #define IIC_SDA_HIGH     do{GPIO_setOutputHighOnPin( GPIO_PORT_P4, GPIO_PIN2 );}while(0)
      #define READ_SDA          do{GPIO_getInputPinValue(GPIO_PORT_P4, GPIO_PIN2 );}while(0)
      extern void My_I2C_Init( void );
      extern void IIC_Start(void);      
      extern void IIC_Stop(void);      
      extern u8 IIC_Wait_Ack(void);      
      extern void IIC_Ack(void);      
      extern void IIC_NAck(void);      
      extern void IIC_Send_Byte(u8txd);      
      extern u8 IIC_Read_Byte(u8 ack);
      extern int IIC_Write(u8 addr,u8 reg, u8 len, u8* data);      
      extern u8IIC_Write_Buffer(u8 addr, u8 reg, u8 len, u8 * data);     
      extern int IIC_Read(u8 addr,u8 reg, u8 len, u8 *buf);     
      extern u8IIC_Read_Buffer(u8 addr, u8 reg, u8 len, u8* buf);  
      extern void IIC_Init2(void);  
#endif
<5> 时钟系统模块,用于配置MSP430内部DCOCLK时钟,程序如下:
void SysClockInit(void)
{
  //配置FRAM访问等待状态控制
FRAM_configureWaitStateControl( FRAM_BASE,FRAM_ACCESS_TIME_CYCLES_0);

  //配置DCO内部时钟为8MHz
CS_setDCOFreq(CS_BASE,CS_DCORSEL_1,CS_DCOFSEL_3);
  //初始化辅助时钟
  CS_clockSignalInit(CS_BASE,                //时钟为CS模式
                     CS_ACLK,                    //时钟信号为ACLK
                     CS_VLOCLK_SELECT,         //时钟源为VLOCLK
                     CS_CLOCK_DIVIDER_1        //预分频
                    );
  //初始化模块组件时钟
CS_clockSignalInit( CS_BASE,                //时钟为CS模式
                     CS_SMCLK,                   //时钟信号为SMCLK
                     CS_DCOCLK_SELECT,         //时钟源为DCOCLK
                     CS_CLOCK_DIVIDER_1        //预分频
                    );
  //初始化主时钟
CS_clockSignalInit( CS_BASE,                //时钟为CS模式
                     CS_MCLK,                    //时钟信号为MCLK
                     CS_DCOCLK_SELECT,         //时钟源为DCOCLK
                     CS_CLOCK_DIVIDER_1        //预分频
                     );
}
<6> 定时器模块,时间的基准,程序如下:
//------------------------------------------------------------------------------
//函数名称: TimerA_Init
//函数功能: 定时器初始化
//入口参数: 无
//出口参数: 无
//函数说明: 无
//------------------------------------------------------------------------------
void TimerA_Init( void )
{
  //配置定时器为连续模式,时钟源为SMCLK;
TIMER_A_configureContinuousMode( TIMER_A1_BASE,
                                  TIMER_A_CLOCKSOURCE_SMCLK,
                                  TIMER_A_CLOCKSOURCE_DIVIDER_1,
                                   TIMER_A_TAIE_INTERRUPT_DISABLE,
                                  TIMER_A_DO_CLEAR);
  //清除定时器捕获比较中断标志
TIMER_A_clearCaptureCompareInterruptFlag(TIMER_A1_BASE,
                                          TIMER_A_CAPTURECOMPARE_REGISTER_0);
  //初始化比较器为比较模式
TIMER_A_initCompare(TIMER_A1_BASE,
                     TIMER_A_CAPTURECOMPARE_REGISTER_0,
                     TIMER_A_CAPTURECOMPARE_INTERRUPT_ENABLE,
                     TIMER_A_OUTPUTMODE_OUTBITVALUE,
                     COMPARE_VALUE);
  //定时器开始计数
TIMER_A_startCounter( TIMER_A1_BASE,
                       TIMER_A_CONTINUOUS_MODE);
GPIO_setAsOutputPin( GPIO_PORT_P2, GPIO_PIN7);       //P2.7控制的LED
GPIO_setOutputLowOnPin( GPIO_PORT_P2, GPIO_PIN7 );     
}
//------------------------------------------------------------------------------
//函数名称: TIMER1_A0_ISR
//函数功能: 定时器TIMER1_A3中断服务程序
//入口参数: 无
//出口参数: 无
//函数说明: 无
//------------------------------------------------------------------------------
#pragmavector=TIMER1_A0_VECTOR
__interrupt void TIMER1_A0_ISR(void)
{
  Flag300Hz = true;
  if( ++TimeCount >167 )
  {
   GPIO_toggleOutputOnPin( GPIO_PORT_P2,GPIO_PIN7 );  //翻转P2.7控制的LED状态
    TimeCount = 0;
    bSys500MsTick =true;
  }
  //启动ADC采样
ADC12_B_startConversion(ADC12_B_BASE,ADC12_B_MEMORY_0,ADC12_B_SINGLECHANNEL);  
  //获取比较值
  compVal =TIMER_A_getCaptureCompareCount(TIMER_A1_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_0)+COMPARE_VALUE;  
  //设置比较值
TIMER_A_setCompareValue(TIMER_A1_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_0,compVal);
}
<7> 串行通信模块,实现数据传输功能,与蓝牙模块连接,程序如下:
//------------------------------------------------------------------------------
//函数名称: UART_Init
//函数功能: UART初始化
//入口参数: 无
//出口参数: 无
//函数说明: 无
//------------------------------------------------------------------------------
void UART_Init(void)
{
  //配置URAT I/O,P2.0 -->TXD, P2.1 --> RXD
  GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P2, GPIO_PIN0 + GPIO_PIN1, GPIO_SECONDARY_MODULE_FUNCTION );   
  //配置UART波特率,当SMCLK时钟为8000000Hz时,波特率为57600,则UCBRx=8,UCBRFx=10,UCBRSx=0xF7;
  EUSCI_A_UART_initAdvance( EUSCI_A0_BASE,
                           EUSCI_A_UART_CLOCKSOURCE_SMCLK,                     
                            8,                                                
                            10,                                                
                            0xF7,                                               
                           EUSCI_A_UART_NO_PARITY,                             
                            EUSCI_A_UART_LSB_FIRST,                             
                           EUSCI_A_UART_ONE_STOP_BIT,                          
                           EUSCI_A_UART_MODE,                                 
                           EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION );   
  //使能UART
  EUSCI_A_UART_enable(EUSCI_A0_BASE);
  //清除中断标志位
EUSCI_A_UART_clearInterruptFlag(EUSCI_A0_BASE,EUSCI_A_UART_RECEIVE_INTERRUPT);
  //使能UART中断
EUSCI_A_UART_enableInterrupt(EUSCI_A0_BASE,EUSCI_A_UART_RECEIVE_INTERRUPT);// Enable interrupt  
}
//------------------------------------------------------------------------------
//函数名称:UART_Send_Char
//函数功能: 通过串口发送一个字符
//入口参数: Char--> 字符
//出口参数: 无
//函数说明: 无
//------------------------------------------------------------------------------
void UART_Send_Char( u8 Char )
{
  EUSCI_A_UART_transmitData(EUSCI_A0_BASE, Char);              
}
//------------------------------------------------------------------------------
//函数名称:UART_Send_String
//函数功能: 串口发送一字符串
//入口参数: Str_fp--> 字符串地址
//出口参数: 无
//函数说明: 无
//------------------------------------------------------------------------------
void UART_Send_String( u8 *Str )
{
  while(*Str)
  {
    UART_Send_Char(*Str);
    Str++;
  }
}
//------------------------------------------------------------------------------
//函数名称:USCI_A0_ISR
//函数功能: UART 中断服务函数
//入口参数: 无
//出口参数: 无
//函数说明: 无
//------------------------------------------------------------------------------
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
  switch (__even_in_range(UCA0IV, USCI_UART_UCTXCPTIFG))
  {
    case USCI_NONE: break;
    case USCI_UART_UCRXIFG:
            RXData =EUSCI_A_UART_receiveData(EUSCI_A0_BASE);
           EUSCI_A_UART_transmitData(EUSCI_A0_BASE,RXData);
            break;      
    case USCI_UART_UCTXIFG: break;
    case USCI_UART_UCSTTIFG: break;
    case USCI_UART_UCTXCPTIFG: break;
    default:break;
  }
}
<8> 心电处理模块,完成心电传感器的控制,MSP430内部基准电压产生和心电数据处理等功能,并根据协议打包发送到手机APP或是PC机。
<9> 滤波器模块,心电数据滤波处理的模块,包括心电信号低通滤波,高通滤波,带通滤波,带阻滤波,平衡滤波,抗基线漂移滤波算法等。
<10> 加速度模块,主要是对MPU6050数据读取和数据处理,传输等等。
<11> 热释电模块,包括单总线数据传输,热释电内部校准值读取,温度计算等。
<12> 心率计算模块,从心电波形中提取心率数值,本模块可以在下位机实现,也可以由上位机来实现,算法都差不多。


三、作品展示

图08-心电板正面.png
(8). 动态心电模块正面图


图09-心电板反面.png
(9). 动态心电模块反面


图10-心电板和Launch Pad MSP430FR5969 Kit.png
(10). 心电板和Launch Pad MSP430FR5969 Kit


图11-LaunchPad MSP430FR5969 Kit连接心电板.png
(11). 11-LaunchPad MSP430FR5969 Kit连接心电板


图12-心电板侧面图.png
(12). 心电板侧面图



图13-心电板跟蓝牙模块.png
(13). 心电板跟蓝牙模块


图14-汽车上的心电模块.png
图(14). 汽车上的心电模块


图15-汽车上采集到的心电图.png
图(15). 汽车上采集到的心电图

图16-心电模块安装过程.png
(16). 心电模块安装过程

图17-运动情况下的心电模块.png
(17). 运动状态下的心电模块

图18-运动情况下的心电模块.png
(18). 运动情况下的心电模块

图19-运动中的心电.png
(19). 运动中的心电


图20-跑步状态下的PC显示心电波形.png
(20). 跑步状态下的PC显示心电波形

图21-跑步状态下的PC显示心电波形.png
(21). 跑步状态下的PC显示心电波形

图22-电脑上显示心电波形.png
(22). 电脑上显示心电波形

图23-电脑上显示心电波形.png
(23). 电脑上显示心电波形

图24-心电模块和手机.png
(24). 心电模块和手机

图25-手机显示心电波形.png
(25). 手机显示心电波形


四、项目定位

    动态心电图(Dynamic Electrocardiography DCG)于1949年由美国Holter首创,故又称Holter心电图. DCG可连续记录24小时心电活动的全过程,包括休息、活动、进餐、工作、学习和睡眠等不同情况下的心电图资料,能够发现常规 ECG不易发现的心律失常和心肌缺血,是临床分析病情.确立诊断.判断疗效重要的客观依据。
    传统的心电监护设备体积重、价格昂贵和不便携带的局限性,本设计以家庭消费化为项目定位方向的可穿戴设备,无论是正常人或是患者,中老年人均可适用。基于MSP430FR5969的可穿戴动态心电监测仪器具有体积小、成本低、功耗低、方便使用的优点,这在一定程度上满足了人们的基本应用。



五、项目发展远景规划

      可穿戴动态心电图的特点就是能记录患者二十四小时内心电图形。它相比普通心电图来说有许多优点,是判别心脏问题的比较可靠的一种方法。
      中国不断加剧的老龄化趋势,独居老人增多,人力成本上升是可穿戴医疗增长的基础。
      根据艾媒咨询(iiMedia Research)数据显示,2012年中国移动医疗市场规模达到18.6亿元,较上一年增长17.7%。预计2017年底,中国移动医疗市场规模将突破百亿,达到125.3亿元。按照GSM对移动医疗行业测算标准,医疗设备厂商和内容与应用提供商占比约39.83%,预计到2017年,中国可穿戴便携医疗设备市场销售规模将接近50亿元。
      由此可见,可穿戴式动态心电监测仪的市场前进是很广阔的。特别是超低功耗类的设备更具有竞争力,也是未来市场发展的趋势。可穿戴式动态心电监测仪让有限的资源普惠更多民众将成为移动健康的一片新蓝海。
本设计分为一期和二期,一期主要实现模块的各项功能和参数,二期以产品的设计要求来完善各项功能和指标。
以MSP430FR5969为核心的可穿戴动态心电监测仪,具有功耗低、性能可靠、成本低等优点。下一步将以市场需求为导向,对本设计进一步完善,追求MSP430FR5969功耗的最低极限,追求产品性能的高可靠性,并加快步伐把产品推向市场,让更多的人能够享受创新科技产品带来的便利!



六、项目创新点

本设计以超低功耗MSP430FR5969微控制器为核心的可穿戴式动态心电检测仪,具有的创新点:
<1> 动态显示心电波形,无论是在室内还是户外,无论是在休息还是活动状态,心电波形和心率、体温等都能时时刻刻采集显示。
<2> 核心器件选用是业界最低功耗的MSP430微控制器,让可穿戴式产品的功耗设计达到了最低极限,待机和工作时间都达到了最长。
<3> 采样低功耗模式的集成心电传感,让产品设计得更加小巧,更加方便使用和携带,产品的功耗也得到了进一步降低。
<4> 本设计集成了加速度穿传感器,无论是在活动状态下还是在精致状态下,微控制器都能精准地检测到,并根据人的活动状态做出判断,包括滤波器选择等等。
<5>增加了人体红外热释电传感器,随时随地时刻都可以检测人体体温。
<6> 本设计提供多种应用模式,用手按住电极片采集心电方式,采样导联线连接采集心电方式或是直接贴在人体胸口采集心电方式,让使用更加方便。
<7> 采样纽扣电池既可以工作,功耗极低,不再为待机和工作没电而烦恼。
<8> 心电数据通过蓝牙无线传送方式,让产品的应用更加简单。
<9> 显示方式多样化,可选择在家里使用时采样电脑显示心电波形,或是外出时使用手机随时随地观察心电波形等。
<10> 便携式,可穿戴式,让每个人在任何场地都能够方便使用。
<11> 多种心电算法,抗运动滤波,心率计算,加速度处理,体温等,贯穿融合于MSP430FR5969上,PC机上和手机APP上。

七、结束

      TI留给电子专业学生的印象一直都很好,在大学里提供了许多优质的服务,有培训的、有演讲的、有合作实验室的、有活动比赛的、有免费提供样片和开发工具的……。
      这一次的低功耗设计大赛能够顺利完成,一路过来,经历了许多困难和挫折,都没轻易放弃,一次次地给自己打气,不断地找资料,一个一个问题地解决,在这过程得到了大家细心的指导和帮助,让本设计得更加完善。
      经历这一次的设计实践,MSP430FR5969的低功耗和性能给我留下了深刻的印象,在可穿戴领域的应用是必不可少的,在未来也是必不可少的……



附近如下:
原理图.pdf (44.38 KB, 下载次数: 292, 售价: 1 枚芯币)

评分

2

查看全部评分

逆风的方向更适合飞翔!


回复

使用道具 举报

11

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2016-1-6 15:08 | 显示全部楼层
楼主,我毕业设计做的就是这个,能不能留个联系方式交流一下


回复

使用道具 举报

46

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-1-6 18:54 来自手机 | 显示全部楼层
楼主写的很详细  视频给力  这方案在比赛中我见的写得最好了 牛人

点评

过奖了啊,没有那么厉害的了,谢谢您的支持  详情 回复 发表于 2015-1-6 20:17


回复

使用道具 举报

42

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-1-6 19:40 | 显示全部楼层
同楼上,楼主写的真的好详细


回复

使用道具 举报

687

TA的帖子

3

TA的资源

版主

Rank: 6Rank: 6

发表于 2015-1-6 20:03 | 显示全部楼层
不能更赞!!!!!!!!很棒!!!!!!!!!!!!


回复

使用道具 举报

117

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-1-6 20:17 | 显示全部楼层
262664916 发表于 2015-1-6 18:54
楼主写的很详细  视频给力  这方案在比赛中我见的写得最好了 牛人

过奖了啊,没有那么厉害的了,谢谢您的支持


点评

楼主谦虚了,一个字强,期待你的产品发售,等等中........  详情 回复 发表于 2015-1-13 19:19
确实非常详细,赞  详情 回复 发表于 2015-1-7 08:53
逆风的方向更适合飞翔!


回复

使用道具 举报

2万

TA的帖子

74

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2015-1-7 08:53 | 显示全部楼层
Mandy 发表于 2015-1-6 20:17
过奖了啊,没有那么厉害的了,谢谢您的支持


确实非常详细,赞

不管是哪年,都要加油!继续为中国电子行业做出小小的贡献吧! 扣扣 1206973913



回复

使用道具 举报

474

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2015-1-7 15:01 | 显示全部楼层
狂赞


回复

使用道具 举报

226

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2015-1-9 20:50 | 显示全部楼层
楼主做的不错哦,做事很认真啊!楼主是上次在PSOC4比赛做心电获奖的那位?对你上次的作品也是印象深刻啊。
想问楼主一下,板子上那个三个接导联的金属扣是什么东西啊,哪里可以买到?

点评

这一次的时间比较仓促,有许多地方需要完善,还请多多指导啊 金属钮扣是从心电导联线上拆下来的,把钮扣塑料壳去掉就可以了........ [attachimg]185298[/attachimg]  详情 回复 发表于 2015-1-9 21:43
心率传感器:https://shop108071095.taobao.com


回复

使用道具 举报

117

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-1-9 21:43 | 显示全部楼层
anning865 发表于 2015-1-9 20:50
楼主做的不错哦,做事很认真啊!楼主是上次在PSOC4比赛做心电获奖的那位?对你上次的作品也是印象深刻啊。
想问楼主一下,板子上那个三个接导联的金属扣是什么东西啊,哪里可以买到?
这一次的时间比较仓促,有许多地方需要完善,还请多多指导啊
金属钮扣是从心电导联线上拆下来的,把钮扣塑料壳去掉就可以了........
未命名截图.png


未命名截图.png

点评

原来是这样啊,可惜了好好的导联线了。楼主这个有点类似于心率带。不知道楼主加上MPU6050是准备后期做什么呢?  详情 回复 发表于 2015-1-9 22:00
逆风的方向更适合飞翔!


回复

使用道具 举报

226

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2015-1-9 22:00 | 显示全部楼层
Mandy 发表于 2015-1-9 21:43
这一次的时间比较仓促,有许多地方需要完善,还请多多指导啊
金属钮扣是从心电导联线上拆下来的,把钮扣塑料壳去掉就可以了........
原来是这样啊,可惜了好好的导联线了。楼主这个有点类似于心率带。不知道楼主加上MPU6050是准备后期做什么呢?

点评

呵呵,不能可惜的,可惜就做不出好东西啦,MPU6050主要是在运动中使用,特别是在跑步下的心电监测,通过MPU6050把运动状态传送到上位机跟心电做算法用的哦  详情 回复 发表于 2015-1-9 22:23
心率传感器:https://shop108071095.taobao.com


回复

使用道具 举报

117

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-1-9 22:23 | 显示全部楼层
anning865 发表于 2015-1-9 22:00
原来是这样啊,可惜了好好的导联线了。楼主这个有点类似于心率带。不知道楼主加上MPU6050是准备后期做什么呢?
呵呵,不能可惜的,可惜就做不出好东西啦,MPU6050主要是在运动中使用,特别是在跑步下的心电监测,通过MPU6050把运动状态传送到上位机跟心电做算法用的哦



逆风的方向更适合飞翔!


回复

使用道具 举报

221

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-1-9 22:37 | 显示全部楼层
哇,楼主的作品很精致呀!好好向你学习!


回复

使用道具 举报

6080

TA的帖子

9

TA的资源

版主

Rank: 6Rank: 6

发表于 2015-1-10 06:53 来自手机 | 显示全部楼层
佩服佩服,期待产品发售。


回复

使用道具 举报

46

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-1-13 19:19 | 显示全部楼层
Mandy 发表于 2015-1-6 20:17
过奖了啊,没有那么厉害的了,谢谢您的支持

楼主谦虚了,一个字强,期待你的产品发售,等等中........


每天学一点点就够!


回复

使用道具 举报

87

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-1-14 10:21 | 显示全部楼层
原来老师也提到过这个,就是说信号处理可能需要花点功夫,动态的话,噪声太多,没想到楼主做的这么厉害!赞!


回复

使用道具 举报

8

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2015-1-16 14:03 | 显示全部楼层
谢谢楼主分享


回复

使用道具 举报

81

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-2-2 10:50 | 显示全部楼层
各种滤波算法,怎么看都像专业的。


回复

使用道具 举报

18

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-2-5 10:03 | 显示全部楼层
怎么看都像专业的
耐心


回复

使用道具 举报

18

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-2-5 10:38 | 显示全部楼层
真心点赞!
耐心


回复

使用道具 举报

117

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-2-5 10:47 | 显示全部楼层
不是很专业的,能和大家一起分享就好
逆风的方向更适合飞翔!


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /1 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-7-21 14:45 , Processed in 0.606160 second(s), 21 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表