哪治疗白癜风效果好 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/sfxbdf/大大通——电子工程师的方案知识库
耳朵是仅次于手指尖,毛细血管次丰富的地方,相对于手腕而言,光学式测量方案,从耳机会更容易到得到高质量的PPG信号,更有利于更高精准运动心率与血氧效果的测试。
本方案是基于原相的PAHES+主控SMT32F+GsensorLIS3DH,实现在耳机环境下实现高精性实时运动心率与血氧的测试方案,提供从硬件、FW、结构产品级应用指导。原相PAH是针对耳机应用方向的原相第二代光学PPG传感器,相比第一代产品,除性能提供外,运行功耗和待机功耗进一步降低,同时改用IR光源不可见光源测量PPG信号,改善第一代产品绿光方式会从耳朵背面看到绿光闪问题。PAH除测量运动心率外,还可以测量血氧饱和度。血氧饱和度(SpO2)是血液中被氧结合的氧合血红蛋白(HbO2)的容量占全部可结合的血红蛋白(Hb)容量的百分比,即血液中血氧的浓度,它是呼吸循环的重要生理参数。PAH通过IR和红光两种光源,通过检测打入皮肤反射回的IR和红光的比例,通过算法算出相关的血氧值。
STM32F是Cortex-M4内核(具有浮点单元)的性能MCU,最高可工作在MHz主频,芯片内置高达至KB的Flash存储器和高达KB的SRAM,为算法及后续的应用功能再扩展提供充足的空间。另外STM32F具有封装小,出色的低功耗性能,同时性价比高,更适用于对性能体积与价钱有需求的耳机产品。硬件部分PAHES与STM32F采用i2c方式的通信接口,并加上中断状态线INT和休眠控制线。其中的9脚与10脚接到SMT32F的PB8和PA11的i2c接口连接脚,采用HZ速率;的13脚中断信号INT1与MCUPA10连接,的休眠控制线PD与MCUPA12连接,其中INT1用于中断方式用于接到PPG数据;PD脚用于在不使用PAHES时,通过MCU接高PD脚让PAH进入休眠省电状态。GsensorLis3dh采用SPI方式与STM32F通信接口,Lis3dh的SPI接到STM32F的PA15、PB4、PB4、PB5的芯片脚上,通信速率1M,外加中断通信线INT1和INT2,使用STM32F的PA8、PA9。板上的供电系统由一个3.3V和一个1.8V的LDO组成,给MCU、Gsensor及PAHES提供所需的电压,各器件的IO通信电平使用3.3V。原理图主板部分
光学小板模组部分
PCBlayout
软件接口部分心率与血氧的算法放在STM32F上运行,STM32F每ms从PAH读取40笔PPG数据及从LIS3DH读取约45笔左右MENS,通过PPG数据与MENS数据运算出心率与血氧值,而MENS数据负责对运动作状态下的数据进行精度补尝。在主函数调用demo_ppg_dri_HRD_SPO2();启动心率与血氧测试,约8~10秒算出第一个心率与血氧值,之后约每秒更新一次数值心率与血氧的获取接口如下:pah8series_get_hr(hr);------是获取心率数据的接口,由于算法是算浮点数,在数值显示直接显示整数部分SpO2_GetSpO2(mySpO2);---是获取血氧数据的接口,输出整数,直接显示整数百分比就可
PROTING简介pah8series_config.h文件的修改1.#defineENABLE_MEMS_ZERO关掉如果系统的Gsensor还没有调好,可以先把此宏打开,先测试静态心率。此时会送入全0的Gsensor给算法,注意:Gsensor调好后,不论静态动态,都需送入真实的Gsensor数据2.设定Gensor量程,目前用的是-+8G量程,所以设定#defineALG_GSENSOR_MODE43.根据所用的芯片型号,Cover设计方式、IO通信方式,打开以下宏定义//-------SensorICType---------//#define__PAHES//-------CoverType---------//#define_DI_COVER//-------IOInterface---------//#define_I2Cmain.c修改1.设定中断回调函数gpio_in_interrupt_handler(GPIO_INgpio)2.送入正确的系统的tick时间,get_tick_count()-----单位为mspah_hrd_function.c修改1.启动ppg数据采样时,同时启动Gsensor数据采样,调用accelerometer_start();这样可确保数据同步,2.接收到的Gsensor数据送入指定的下面地方以便算法取得,accelerometer_get_fifo(_state.pxialg_data.mems_data,_state.pxialg_data.nf_mems);3.进入touchmode或离开心率模式,停止Gsensor数据采样,调用accelerometer_stop();关于同步说明,PPG第一笔数据要与Gsensor第一笔数据时间上对齐,这样算法在插补后,每个ppg时间点才能与gsensor时间点一致,否则可以导致运动心率异常。目前是以ppg中断去接收Gsensorpah_