基于MAX30100传感器心率检测实现的作品报告解答.docx
《基于MAX30100传感器心率检测实现的作品报告解答.docx》由会员分享,可在线阅读,更多相关《基于MAX30100传感器心率检测实现的作品报告解答.docx(12页珍藏版)》请在冰豆网上搜索。
基于MAX30100传感器心率检测实现的作品报告解答
学年度实践学期学生实践报告
年月曰
项目名称:
指导教师:
课题:
别:
专业班级:
学号:
学生姓名:
本学期的小学期实践设计项目作品,为基于单片机MCI开发箱的心率传感器开发,该主
体采用lAP15W4K58S4型号MCU单片机作为本项目的开发系统,以及基于
MAX30100芯片的
传感器。
电源供配采用MCI开发箱自带的恒压电源,数据显示采用由两片
HC595动态驱动的
8个数码管。
考虑到对本项目作品的使用与数据采样处理,本人采用最高具有
16位精度的
MAX30100芯片传感器作为主要的心率数据采集模块,MAX30100芯片内部集成ADC数据转换,
以及多个可读写寄存器,本作品主要操作其中的FIFO寄存器进行数据采集。
同时MAX30100
芯片传感器属于I2C接口器件,故在程序开发中,采用I2C接口协议进行。
关键词:
单片机MCI开发箱;MAX3O1O0传感器;HC595FIFO寄存器;I2C;
免责申明:
本报告为本人作为学生所作报告,报告中个别部分(图片、伪代码、芯片介
绍等)存在局部摘取他人成果,本人已做出作品后现发出本报告纯为分享学习,
不做他途,故请大家善取善用。
、项目目的
1.1、项目目的
1.2、项目目标二、项目内容及硬件设计
2.1、系统器件介绍
2.2、各电路模块三、软件设计
3.1、程序开发使用软件
3.2、程序流程图
3.3、代码示例(main函数部分)
3.4
作品图片
11
一、项目目的及目标
1.1、项目目的:
随着人类的科技文明发展的进步,人们越发开始关注人们自身生活的质量及健康安全,
为何人
而随可穿戴设备及物联网的发展,心率统计也从此开始全面进入人们的视野及生活。
们关注心率统计?
事实上,心率数据可以反映人身的多项健康指标,诸如在睡眠情况、运动
时所处状态,甚至也能根据对人身实时的心率数据来跟踪人的内心情绪的波动。
也同时揭开
本项目的选题方向,紧扣时代及社会热点,在设计研究上,对算法的深入,了可穿戴设备的神秘面纱,让我们更接近实际学习应用的学习及实践。
1.2、项目目标:
在本项目的设计实践中,本小组成员都期待在硬件设计完备的基础上,通过对MAX30100
芯片的深入,进而自主设计心率算法及软件框架来实现较为准确的心率检测。
二、项目内容及硬件设计
2.1、系统器件介绍:
本次项目作品,主体米用MAX30100传感器芯片模块,及MCU单片机开发箱,其中
该器件集成有两个LED一个
MAX3010Q是一款集成有脉搏血氧仪和心率监测传感器的模块。
光电探测器,经过优化的光学器件和低噪声模拟信号处理器,可检测脉搏血氧及心率信号。
MAX30100采用1.8V和3.3V的电源电压。
可通过软件来关断电源,待机模式下的电流消耗
量可忽略不计,因而可以始终保持电源连接。
典型应用有健身辅助设备、医疗监控设备和可穿戴设备。
其中,MAX30100电路整体视图如下:
MCU单片机开发箱,是具备IAP15W4K58S4型号MCI芯片的单片机开发箱,箱上具有由
两片HC595动态驱动的8个数码管,及4*4物理按键,及两个中断物理按键。
以上两个都支持I2C接口。
2.2、各电路模块:
三、软件设计
3.1、程序开发使用软件:
写软件。
其中,本小组在此提出几点注意事项。
对代码多进行优化,同时即使节
程序开发中,既要求程序开发人员对程序空间要节约使用,
约使用,在程序开发末期也可能出现空间溢出,所以也要求程序开发软件处于激活状态,如此才能得到更多的空间资源。
另外在程序烧写过程中,要求操作开发人员依据程序烧写流程进行,由此避免硬件不必
要的损坏,及实验错误等。
3.2、程序流程图:
3.3、软件设计(main函数部分):
intmain(){
u8i;
P0M1=0
;P0M0=0
;//设置为准双向口
P1M1=0
;P1M0=0
;//设置为准双向口
P2M1=0
;P2M0=0
;//设置为准双向口
P3M1=0
;P3M0=0
;//设置为准双向口
P4M1=0
;P4M0=0
;//设置为准双向口
P5M1=0
;P5M0=0
;//设置为准双向口
P6M1=0
;P6M0=0
;//设置为准双向口
P7M1=0
;P7M0=0
;//设置为准双向口
display_index=0;
IE1=0;//外中断1标志位IE0=0;//外中断0标志位EX1=1;
EX0=1;
//INT0下降沿中断
//INT1下降沿中断
for(i=0;i<8;i++)LED8[i]=0x21;//上电消隐
KeyHoldCnt=0;//键按下计时
KeyCode=0;//给用户使用的键码,1~16有效
IO_KeyState=0;
IO_KeyState1=0;
IO_KeyHoldCnt=0;
cnt50ms=0;msecond=0;ns=0;
n=0;
f=0;
K=2;
Hr_state=1;
while
(1)
{
/*
*/
KeyCode=0;
ReadMAX30100_Temp();
DisplayMAX30100_Temp();
}
if(++msecond==200&&K==1){
msecond=0;
ReadMAX30100_SpO2();
DisplayMAX30100_SpO2();
if(f&&Hr_state){
f=0;
ReadMAX30100_Hr();
DisplayMAX30100_Hr();
3.4、算法问题及分析:
在本项目中,由于在硬件的设计及准备上的完备,在项目进行的过程中,所遇见的问题基本集中于本项目的算法设计及软件程序的框架设计之上。
在以下的问题列举与分析中,主要提及重要部分。
3.4.1、关于整体代码框架中存在的问题
在整体代码框架中,如3.2中的程序流程图所示,基本采用分段式的各部分模块执行而行进,再通过时钟及外设(诸如键盘,或心率采样行为)的中断来响应及作出反馈。
其中,在时钟中断中,由于MAX30100芯片的硬件设计,基本都存在对时钟延时的需要,一为确保
采样准确,二为实现硬件的时钟响应兼容。
而正由于此,当时钟延时积累超出一定范围时,
度上影响外设的响应。
所以,在整体代码框架中,非常需要注意在循环、中断、反馈及实际硬件影响。
342、关于对MAX30100芯片的硬件驱动:
码。
START;
Senddeviceaddress+writemode
SendaddressofFIFO_WR_PTR;REPEATED_START;
Senddeviceaddress+readmodeReadFIFO_WR_PTR;
STOP;
ThecentralprocessorevaluatesthenumberofsamplestobereadfromtheFIFO:
//中央处理器评估从FIFO读取的样本数量:
NUM_AVAILABLE_SAMPLES=FIFO_WR_PTR-FIFO_RD_PTR
(Note:
pointerwraparoundshouldbetakenintoaccount)
NUM_SAMPLES_TO_READ=
Secondtransaction:
ReadNUM_SAMPLES_TO_READsamplesfromtheFIFO:
//第二次交易:
从FIFO读取num_samples_to_read样品:
START;
Senddeviceaddress+writemode
SendaddressofFIFO_DATA;
REPEATED_START;
Senddeviceaddress+readmode
for(i=0;iReadFIFO_DATA;
SaveIR[15:
8];
ReadFIFO_DATA;
SaveIR[7:
0];
ReadFIFO_DATA;
SaveR[15:
8];
ReadFIFO_DATA;
SaveR[7:
0];
}
STOP;
Thirdtransaction:
WritetoFIFO_RD_PTRregister.Ifthesecondtransactionwassuccessful,//第三次交易:
写fifo_rd_ptr寄存器。
如果第二次交易成功,
FIFO_RD_PTRpointstothenextsampleintheFIFO,andthisthirdtransactionisnotnecessary.
//fifo_rd_ptr指向FIFO的下一个样品,这第三次交易不是必要的。
Otherwise,theprocessorupdatestheFIFO_RD_PTRappropriately,sothatthesamplesarereread.
//另外,处理器适当地更新fifo_rd_ptr,使得样品得以重读。
START;
Senddeviceaddress+writemodeSendaddressofFIFO_RD_PTR;
WriteFIFO_RD_PTR;
STOP;
3.4.3、关于在驱动FIFO时需要注意的细节:
在写MAX30100芯片硬件驱动时主要问题在于对FIFO的操作上,在此需要注意的细节主
要体现在,在使用IIC协议对FIFO的寄存器进行操作时,首先根据项目需求,如采集样本
数及精度等,配置config寄存器,接着需要对FIFO的各个寄存器进行清零(写0x00),其
中包括写寄存器、读寄存器、计数寄存器和数据寄存器,最后才进行写操作或读操作。
3.4.4、关于对项目硬件调试
在程序基本完成时,由于要在实际环境下完成心率数据的采集及处理,
所以在硬件调试
中,必然根据实际测得数据,计算出实际测量误差,再由此修改调节在中断、延时、反馈、
采集数量、样本精度等过程中的数据参数。
硬件调试中,重点注意误差分析。
本项目的实验误差,一体现在实验操作,
二体现在数
据处理及算法优化上。
所以,在实验操作上,要求实验人员多次重复,控制操作流程;在数
据处理及算法优化上,要求程序开发人员对数据误差进行分析并由此进行修正,
另外,算法
优化必须建立在实际硬件基础之上,诸如在中断、扫描、延时上,需要根据实际测量结果进
行优化。
四、总结与展望
经过组内成员的团
首先,这次小组成员一起参加本次实践确实是一次收获很大的经历,结协作,最终完成了题目的基本要求部分,本次实践也提高了我们分析问题、解决问题的实
让我们真正
践能力,最重要的是增强了我们团队协作意识和创新能力以及和谐相处的能力,体会到理论运用于实践,在实践中巩固理论知识。
特别是在实践过程中在遇到困难时大家一起鏖战几天几夜的经历也给了我们成长过程中一笔巨大的宝贵财富,我们都会好好珍惜。
五、附录
作品图片:
*■■■
噺1
-•?
.
・•,-:
.:
:
二二二二-<±=^*Fm匸沁严严亠•淀二二mu-
:
7src-:
王]供宙a.個
…;九7"寒
■胁’4S-A20!
■-
J_
赠'g
ZF
會甦
亦秤議號
e11■
_1,、
「、、
i_irJ(i?
n*1
XT侶