ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:118.59KB ,
资源ID:11885047      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-11885047.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于MAX30100传感器心率检测实现的作品报告解答.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于MAX30100传感器心率检测实现的作品报告解答.docx

1、基于MAX30100传感器心率检测实现的作品报告解答 _ _学年度实践学期学生实践报告年 月 日 年 月 日项目名称: 指导教师: 课 题: 系 别: 专业班级: 学 号: 学生姓名: 摘 要 本学期的小学期实践设计项目作品,为基于单片机MCU开发箱的心率传感器开发,该主体采用IAP15W4K58S4型号 MCU单片机作为本项目的开发系统,以及基于MAX30100芯片的传感器。电源供配采用MCU开发箱自带的恒压电源,数据显示采用由两片HC595动态驱动的8个数码管。考虑到对本项目作品的使用与数据采样处理,本人采用最高具有16位精度的MAX30100芯片传感器作为主要的心率数据采集模块,MAX3

2、0100芯片内部集成ADC数据转换,以及多个可读写寄存器,本作品主要操作其中的FIFO寄存器进行数据采集。同时MAX30100芯片传感器属于I2C接口器件,故在程序开发中,采用I2C接口协议进行。关键词:单片机MCU开发箱;MAX30100;传感器;HC595;FIFO寄存器;I2C;免责申明: 本报告为本人作为学生所作报告,报告中个别部分(图片、伪代码、芯片介绍等)存在局部摘取他人成果,本人已做出作品后现发出本报告纯为分享学习,不做他途,故请大家善取善用。1一、项目目的 3 1.1、项目目的 31.2、项目目标 3二、项目内容及硬件设计 42.1、系统器件介绍 42.2、各电路模块 4三、软

3、件设计 53.1、程序开发使用软件 53.2、程序流程图 53.3、代码示例(main函数部分) 63.4、算法问题及分析 83.4.1、关于整体代码框架中存在的问题 83.4.2、关于对MAX30100芯片的硬件驱动 8 3.4.3、关于在驱动FIFO时需要注意的细节 9 3.4.4、关于对项目硬件调试 9四、总结与展望 10五、附录 11作品图片 112一、项目目的及目标1.1、项目目的:随着人类的科技文明发展的进步,人们越发开始关注人们自身生活的质量及健康安全,而随可穿戴设备及物联网的发展,心率统计也从此开始全面进入人们的视野及生活。为何人们关注心率统计?事实上,心率数据可以反映人身的多

4、项健康指标,诸如在睡眠情况、运动时所处状态,甚至也能根据对人身实时的心率数据来跟踪人的内心情绪的波动。本项目的选题方向,紧扣时代及社会热点,在设计研究上,对算法的深入,也同时揭开了可穿戴设备的神秘面纱,让我们更接近实际学习应用的学习及实践。1.2、项目目标:在本项目的设计实践中,本小组成员都期待在硬件设计完备的基础上,通过对MAX30100芯片的深入,进而自主设计心率算法及软件框架来实现较为准确的心率检测。3二、项目内容及硬件设计2.1、系统器件介绍:本次项目作品,主体采用MAX30100传感器芯片模块,及MCU单片机开发箱,其中MAX30100是一款集成有脉搏血氧仪和心率监测传感器的模块。该

5、器件集成有两个LED、一个光电探测器, 经过优化的光学器件和低噪声模拟信号处理器,可检测脉搏血氧及心率信号。MAX30100采用1.8V和3.3V的电源电压。可通过软件来关断电源,待机模式下的电流消耗量可忽略不计,因而可以始终保持电源连接。典型应用有健身辅助设备、医疗监控设备和可穿戴设备。其中,MAX30100电路整体视图如下:MCU单片机开发箱,是具备IAP15W4K58S4型号MCU芯片的单片机开发箱,箱上具有由两片HC595动态驱动的8个数码管,及4*4物理按键,及两个中断物理按键。以上两个都支持I2C接口。数据显示MCU数据处理MAX30100数据采集按键中断4*4按键控制2.2、各电

6、路模块:4三、软件设计3.1、程序开发使用软件:本项目程序开发所使用软件为Keil for C51 的v4版本,及STC公司所提供的芯片烧写软件。其中,本小组在此提出几点注意事项。在本项目的程序开发过程中,本小组成员发现,在程序的功能扩展中,对所使用的程序开发软件有一定要求。本程序代码基本超出未激活版本Keil for C51所给的空间,所以在程序开发中,既要求程序开发人员对程序空间要节约使用,对代码多进行优化,同时即使节约使用,在程序开发末期也可能出现空间溢出,所以也要求程序开发软件处于激活状态,如此才能得到更多的空间资源。另外在程序烧写过程中,要求操作开发人员依据程序烧写流程进行,由此避免

7、硬件不必要的损坏,及实验错误等。开始初始化扫描键盘扫描中断计时采集处理数据(读、写、转换)扫描显示结束3.2、程序流程图:53.3、软件设计(main函数部分):int main() u8 i; 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; /设置为准双向口

8、 P7M1 = 0; P7M0 = 0; /设置为准双向口 display_index = 0; IE1 = 0; /外中断1标志位 IE0 = 0; /外中断0标志位 EX1 = 1; /INT1 Enable EX0 = 1; /INT0 Enable IT0 = 1; /INT0 下降沿中断 IT1 = 1; /INT1 下降沿中断 EA = 1; /允许总中断 AUXR = 0x80; /Timer0 set as 1T, 16 bits timer auto-reload, /使用Timer0的16位自动重装来产生1ms节拍,程序运行于这个节拍下, 用户修改MCU主时钟频率时,自动定

9、时于1ms. TH0 = (u8)(Timer0_Reload / 256); /Timer0_Reload Timer 0 中断频率, 1000次/秒 1ms TL0 = (u8)(Timer0_Reload % 256); /通过 % / 分别获取高低位时钟值 u8 无符号8字节整型 ET0 = 1; /Timer0 interrupt enable /时钟中断使能 TR0 = 1; /Timer0 run /时钟运行 EA = 1; /允许总中断 for(i=0; i= 10) /20ms扫描一次行列键盘 cnt50ms = 0; IO_KeyScan(); if(KeyCode !=

10、0) /有键按下 if(KeyCode = 17) K = 0; if(KeyCode = 21) K = 1; if(KeyCode = 25) K = 2; KeyCode = 0; /* if(+msecond = 200 & K = 0) msecond = 0; ReadMAX30100_Temp(); DisplayMAX30100_Temp(); if(+msecond = 200 & K = 1) msecond = 0; ReadMAX30100_SpO2(); DisplayMAX30100_SpO2(); */ if(f & Hr_state) f = 0; ReadMA

11、X30100_Hr(); DisplayMAX30100_Hr(); 7 3.4、算法问题及分析: 在本项目中,由于在硬件的设计及准备上的完备,在项目进行的过程中,所遇见的问题基本集中于本项目的算法设计及软件程序的框架设计之上。在以下的问题列举与分析中,主要提及重要部分。3.4.1、关于整体代码框架中存在的问题:在整体代码框架中,如3.2中的程序流程图所示,基本采用分段式的各部分模块执行而行进,再通过时钟及外设(诸如键盘,或心率采样行为)的中断来响应及作出反馈。其中,在时钟中断中,由于MAX30100芯片的硬件设计,基本都存在对时钟延时的需要,一为确保采样准确,二为实现硬件的时钟响应兼容。而正

12、由于此,当时钟延时积累超出一定范围时,对时钟中断的设计要求则不得不通过补偿方式,不断调试修正。另外,时钟延时也在一定程度上影响外设的响应。所以,在整体代码框架中,非常需要注意在循环、中断、反馈及实际硬件影响。3.4.2、关于对MAX30100芯片的硬件驱动:通过查看MAX30100芯片手册,以下给出关于对MAX30100关键部分的FIFO读写的伪代码。伪代码,示例如下:Pseudo-Code Example of Reading Data from FIFO / 从FIFO中读取数据的伪代码示例 First transaction: Get the FIFO_WR_PTR: / 第一次交易:获

13、得fifo_wr_ptr: START; Send device address + write mode Send address of FIFO_WR_PTR; REPEATED_START; Send device address + read mode Read FIFO_WR_PTR; STOP;8The central processor evaluates the number of samples to be read from the FIFO: / 中央处理器评估从FIFO读取的样本数量:NUM_AVAILABLE_SAMPLES = FIFO_WR_PTR - FIFO_

14、RD_PTR (Note: pointer wrap around should be taken into account) NUM_SAMPLES_TO_READ =Second transaction: Read NUM_SAMPLES_TO_READ samples from the FIFO: / 第二次交易:从FIFO读取num_samples_to_read样品: START; Send device address + write mode Send address of FIFO_DATA; REPEATED_START; Send device address + read

15、 mode for (i = 0; i NUM_SAMPLES_TO_READ; i+) Read FIFO_DATA; Save IR15:8; Read FIFO_DATA; Save IR7:0; Read FIFO_DATA; Save R15:8; Read FIFO_DATA; Save R7:0; STOP; Third transaction: Write to FIFO_RD_PTR register. If the second transaction was successful, / 第三次交易:写fifo_rd_ptr寄存器。如果第二次交易成功, FIFO_RD_PT

16、R points to the next sample in the FIFO, and this third transaction is not necessary. / fifo_rd_ptr指向FIFO的下一个样品,这第三次交易不是必要的。 Otherwise, the processor updates the FIFO_RD_PTR appropriately, so that the samples are reread. / 另外,处理器适当地更新fifo_rd_ptr,使得样品得以重读。 START; Send device address + write mode Send

17、 address of FIFO_RD_PTR; Write FIFO_RD_PTR; STOP;83.4.3、关于在驱动FIFO时需要注意的细节: 在写MAX30100芯片硬件驱动时主要问题在于对FIFO的操作上,在此需要注意的细节主要体现在,在使用IIC协议对FIFO的寄存器进行操作时,首先根据项目需求,如采集样本数及精度等,配置config寄存器,接着需要对FIFO的各个寄存器进行清零(写0x00),其中包括写寄存器、读寄存器、计数寄存器和数据寄存器,最后才进行写操作或读操作。3.4.4、关于对项目硬件调试: 在程序基本完成时,由于要在实际环境下完成心率数据的采集及处理,所以在硬件调试中

18、,必然根据实际测得数据,计算出实际测量误差,再由此修改调节在中断、延时、反馈、采集数量、样本精度等过程中的数据参数。 硬件调试中,重点注意误差分析。本项目的实验误差,一体现在实验操作,二体现在数据处理及算法优化上。所以,在实验操作上,要求实验人员多次重复,控制操作流程;在数据处理及算法优化上,要求程序开发人员对数据误差进行分析并由此进行修正,另外,算法优化必须建立在实际硬件基础之上,诸如在中断、扫描、延时上,需要根据实际测量结果进行优化。9四、总结与展望首先,这次小组成员一起参加本次实践确实是一次收获很大的经历,经过组内成员的团结协作,最终完成了题目的基本要求部分,本次实践也提高了我们分析问题、解决问题的实践能力,最重要的是增强了我们团队协作意识和创新能力以及和谐相处的能力,让我们真正体会到理论运用于实践,在实践中巩固理论知识。特别是在实践过程中在遇到困难时大家一起鏖战几天几夜的经历也给了我们成长过程中一笔巨大的宝贵财富,我们都会好好珍惜。10五、附录 作品图片:11

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2