《1-心率血压血氧心电监测模组使用手册fk_multi_healthly_monitor_modulv1.1.docx》由会员分享,可在线阅读,更多相关《1-心率血压血氧心电监测模组使用手册fk_multi_healthly_monitor_modulv1.1.docx(16页珍藏版)》请在第一文库网上搜索。
1、“心率、血压、血氧、心电”健康监测模组使用手册V1.1疯壳版本修正历史版本号修改内容修改人时间备注V1.0初稿Steve2018/12/28初稿VI. 11、添加版本修正历史;2、修改标题为壳“心率、血压、血氧、心电”健康监测模块使用手册V1. 1;3、修改返回数据中携带的信息fk+mode3的返回值为 ecg:int32_t amb l_lcd4_ecgn (即添加一个n ) o4、添加第4节DA14580样例代码Steve2019/03/29目录1、模组简介62、硬件连接以及通讯配置72.1 硬件连接72.2 通讯配置83、通信协议9表3.1通信交互协议94、 DA14580驱动样例代码1
2、14.1 main.c114.2 串口接收中断处理155、技术支持19疯壳“心率、血压、血氧、心电”健康监测模组疯壳“心率、血压、血氧、心电”健康监测手表主板配套资料地址:http:/www.fenske.club1、模组简介“心率、血压、血氧、心电”四合一模组,大小仅有,使用14个邮票孔引出接口,非常的小巧便利。模组内置优质算法,预留两组数据通道:用户只需向模组的串口管脚发送相应指令,就可以快速拿到“心率、血压、血压、心电”的实时算法测量值,也可以拿到“心率、血压、血压、心电”的原始传感器数值。模组大大简化了智能穿戴开发的繁琐流程,用户在开发时无需编写繁琐的底层代码,无需做复杂的算法转换,只
3、需要几个简单的串口指令,以及简单的外围电路,便可得到稳定、可靠的心率、血压、血氧以及心电数据。模组的传感器除了包含两个绿光发射器和一个带红外过滤器的光电二极管外,它还配备一个红光发射器和一个红外发射器以及一个宽带光电二极管。这三个新增的元件之间的距离更大,因此可反射更多的光到检测器上,使得获取到的数据更可靠,更稳定。模组工作温度-40 -85 ,静态功耗:240uA ,待机功耗:3.9mA。2、硬件连接以及通讯配置2.1硬件连接供电电压5V和3.3V两路输入,建议用户在使用时前端加入LDO做开关处理,需要数据采集时打开,不需要时关闭电源,以便实现低功耗,注意这两路输入尽可能的使用低噪声LDOo
4、Q nd d mmA4 79 (mm)图2. 1模组主板引脚定义及封装图+5、+3V3以及GND为电源;ECG为心电图功能的接触片输入;RX、TX为串口接口;NC为悬空引脚,无需理会。AOhnO图2.2模组小板引脚定义如图2.1所示为模组上传感器小板的引脚图,小板接线端TB8、TB9为心电测量端,在测量心电时需要接到金属簧片上。心电图功能使用时TB8、TB9的金属簧片压在手上,另一只手的手指按住模组主板的ECG接触片即可得到心电图数据。UART-TX5VUART.RXMCU WGNO疯壳四合一模组3.JVGNO图2.3模组与控制器的接线图2.2通讯配置通信方式:UART;波特率115200;8
5、位数据;1位停止位;无奇偶校验。3、通信协议模式1为测量心率+血氧浓度模式2为测量心率+血压模式3为心电图表3.1通信交互协议返回数据中携带的信备注返回内容示例fkrnokrn返回ok代表通信正常okfk+versionrn版本信息版本信息LIB: 1.0.10fk+modelrnuintl6_t类型的心率spo2 :float spo2rnuintl6_t类型的心率值 heart_ratefloat类型的血氧浓度 spo2hr:86spo2 :98.5fk+mode2rnhr:uintl6_theart_raternsbp/dbp: float sbp/float dbprnuintl6_t
6、类型的心率值 heart_ratefloat类型的收缩压sbpfloat类型的舒张压dbphr:86sbp/dbp:119.2/78.5fk+mode3rnecg:int32_tambl_led4_ecgnint32_t类型的心电图的原始数据值ambl_led4_ecg1285439fk+closeclose okrn关闭测量注:由于算法测量的不同,模式1和2中返回的数据并不是同时出现的,例如:模式1中可能返回了很多个心率值后才会有一个血氧浓度值。若发生错误,串口将会返回错误值,错误值如下:#define YCLIB RC SUCCESS0 成功(非错误)#define YCLIB_RC_PA
7、RAM JNVALID#define YCLIB_RC_AUTH_FAIL#define YCLIB_RC_PROX_CHKING#define YCLIB_RC_PROX_FAR_AWAY#define YCLIB_RC_DRV_FAIL#define YCLIB_RC_HW_FAULT#define YCLIB_RC_LIB_UNINIT#define YCLIB_RC_LIB_LOSE-1 /Parameter invalid-10 /Authentication fail-20/Proximity checking-30/Proximity far away(传感器与皮肤脱离)-40
8、/driver fail, such as I2C, SPI etc.-41 /Hardware fault-42 /lib un-init-74900未找到4、DA14580驱动样例代码通过该样例代码可获得一组心率、血压、血氧以及心电数据,分别存放在hr 50、spo2 50 、 blp50、ECG50这四个数组里。4.1 main.c疯壳(深圳)科技有限公司*by Steve*通过该样例代码可获得一组心率、血压、血氧以及心电数据,分别存放在*hr 50、spo2 50 blp50、 ECG50这四个数组里。*#include #include ”global_io.h”#include H
9、common uart.hn#include Huser_periph_setup.hHunsigned char hr 50=0;存放一组心率unsigned char spo2 50=0;存放一组血氧数据unsigned char blp50=0;存放一组血压数据unsigned char ECG50=0;存放一组心电bool hr_flag=O;bool spo2_flag=0;bool blp_flag=O;unsigned ECG_flag=0;/0x01开始采集 0x02采集完成 0x03原始状态*疯壳四合一 ”心率血压血氧心电”模组指令集*unsigned char fk_tes
10、t=HfkrnH;测试指令,正常返回 0Kunsigned char fk_version=l,fk+versionrnN; 获取版本号指令unsigned char fk_model =,fk+modelrn;unsigned char fk_mode2 =,fk+mode2rn;unsigned char fk_mode3 =,fk+mode3rnH;模式1获取心率+血氧指令模式2获取心率+血压指令/模式3获取,心电数据,指令关闭模组指令unsigned char fk_close=Hfk+closernH;void system_init(void);void delay(unsigne
11、d int xtimes);void delay(unsigned int xtimes) /延时for(unsigned int i=xtimes;iO;i-)for(unsigned int j=110;j0;j-);int main (void) 主函数(system_init();periph_init();while(l)(if(hr_flag=O)printf_string(fk_mode2);while(!(hr_flag=l&blp_flag=l);等待一组心率血压采集完成hr_flag=O;blp_flag=O;printf_string(fk_close);delay(50
12、);printf_string(fk_model);while(!(hr_flag=l&spo2_flag=l);等待一组心率血氧采集完成hr_flag=O;spo2_flag=0;printf_string(fk_close);delay(50);printf_string(fk_mode3);ECG_flag=0x01;while(ECG_flag!=0x02);等待一组心电数据采集完成ECG_flag=O;printf_string(fk_close);采集数据完成)void system_init(void)系统初始化(SetWordl6(CLK_AMBA_REG, 0x00);/ set clocks (hclk and pclk ) 16MHzSetWordl6(SET_FREEZE_REG,FRZ_WDOG);/ stop watch dogSetBitsl6(SYS_CTRL_REG,PAD_LATCH_EN,l); / open padsSetBitsl6(SYS_CTRL_REG,DEBUGGER_ENABLE,l); / open debuggerSetBitsl6(PMU_CTRL_REG, PERIPH_SLEEP,O);/ exit peripheral power down4.2串口接收中断处理