便携式心率采集系统设计
学 生: 学 号: 指导教师: 助理指导教师: 专 业:
摘 要
随着生物医学工程技术的发展, 医学信号测量仪器日新月异。生物医学测量与临床医学和保健医疗的联系日益紧密。通过对人体各种生理信号的检测,能更好的认识人体的生命现象,这其中脉搏信号包含丰富的人体健康状况信息,从中提取的心率值对人体健康有着重要的参考作用。本文采用光电反射式传感器, 设计了一套便携式可穿戴的获取和保存脉搏信号的系统。本设计主要是基于STM32L低功耗单片机,利用光电传感器产生脉冲信号,经过放大整形滤波后,输入单片机内AD进行采样并将数字化后的脉搏信号和计算出的心率值保存在SD卡中。后期通过上位机软件可以观测脉搏信号,对人体健康进行评估,因此该系统适用于保健中心、医院和家庭等场所。本设计所设计的基于单片机的便携式心率采集系统对推进脉诊技术客观化和HRV研究具有积极的促进作用。
关键词:脉搏,单片机,光电传感器,脉冲信号,便携式
ABSTRACT
ABSTRACT
With the development of the biomedical engineering technology, the medical signal measuring instrument is changing everyday. Biomedical measurement and clinical medicine and health care increasingly close ties. We could better understand the phenomenon of human. life through various physiological signal detection of the human body. Pulse inclusions rich state of the health information, By using optical sensors, With the high development of electronics and computer nowadays, the pulse diagnosing technology should be objective and quantitive. this text access to the pulse signal design methods. This paper mainly introduces the concrete realization method for digital pulse counter, which uses photoelectric sensors to generate pulse signal. The pulse signal is amplified and regenerated to input into MCU to carry out corresponding control, as a result the pulse number per a minute is measured. The use of the pulse counter is quick and convenient. Through observing the pulse signal, human health can be inspected, it is usually used in health care centers and the hospitals. In my design, Portable heart rate measuring instrument based on MCU has a positive role in promoting the objective of the pulse technology.
Key words:Pulse, MCU, Photoelectric Sensor, Pulse Signal, Portable
目录
摘 要 ...................................................................................................... II ABSTRACT ................................................................................................ III 1 绪论 ........................................................................................................... 1
1.1课题研究背景及意义 ............................................................................................................ 1 1.2脉搏检测仪介绍 .................................................................................................................... 2 1.3关于本文主要研究内容及方法 ............................................................................................ 4
2 整体系统结构 ......................................................................................... 6
2.1 脉搏测量模块 ....................................................................................................................... 7
2.1.1常用的脉搏检测方法 ................................................................................................. 7 2.1.2 光电式脉搏传感器 .................................................................................................... 7 2.2采集记录模块 ...................................................................................................................... 11
2.2.1主控单元 ................................................................................................................... 13 2.2.2电源单元 ................................................................................................................... 14 2.2.3接口单元 ................................................................................................................... 20 2.3处理显示模块 ...................................................................................................................... 23
3 系统软件设计 ....................................................................................... 25
3.1功能配置: .......................................................................................................................... 25 3.2硬件相关配置: .................................................................................................................. 26 3.3文件系统配置: .................................................................................................................. 26
4.系统实物图和测试结果 .......................................................................... 33 5.总结 ....................................................................................................... 34 参考文献 ..................................................................................................... 35
IV
1 绪论
1 绪论
1.1课题研究背景及意义
随着人们生活水平的提高,地球环境遭到破坏,多种疾病威胁着人们的生命,而心脏病的发作又是人们难以预防的突发致命疾病。在医学上,通过测量人的心率,便可初步判断人的健康状况。因此,心率计很快产生并得到发展。随着单片机技术的发展、人们的生活节奏加快,设计一种以使用方便为前提,能够快速测出人心率的心率计,不仅是临床者的需要,也是体育训练者和外出旅游者的需要。 传统的脉搏测量采用诊脉方式,中医脉象诊断技术就是脉搏测量在中医上卓有成效的应用, 但是受人为的影响因素较大,测量精度不高。 为了克服上述测量方法的不足,脉搏测试不再局限于传统的人工测试法或听诊器测试法。利用血液是高度不透明的液体,光照在一般组织中的穿透性要比在血液中大几十倍的特点,可通过光电传感器对脉搏信号进行检测,并通过单片机技术进行数据处理,实现智能化的脉搏测试技术。
当代的医用电子设备已不单单是医学电子测量仪器硬件系统,而是该从计算机技术、数字信号处理技术和电子技术的生理量的检测。而生物电子测量仪器已是电子信息产业的重要构成部分,它的发展对整个国民经济尤其对信息产业的发展有着重要的影响,对高端电子测量仪器的发展是国家和企业正确选择。研究认为,受测量仪器的智能化、和数字化发展趋势以及消费电子、3G网络。数字电视,生物医学等市场的迅速发展的带动下,未来几年,通用测量市场会以超高的增长率快速发展,一时也将促进电子测量技术产生新的发展趋势和新概念。更因为节能、降耗、减排的国际大趋势更为电子仪器提供了更为广阔的新的市场。不管是在国际或者国能,电子测量技术将快速发展,步入全新的电子信息的时代。
而本课题把生理量的测量和生物信号处理技术融为一体。所设计的心率测试仪属于一种集轻型化、一体化、可视化等优点的便携式测试仪。
由于心率是指人体心脏每分钟搏动的次数,但是这种搏动不是均匀的每次的搏动间期之间的是存在细微的差异,而这种差异产生于自主神经系统对窦房结自律性的调制,使得心搏间期一般存才几十毫米的波动或差异,这种差异或者波动叫做心率变异性(Heart Rate Variability,HRV)。所谓的心率测试也就是在测量心率变异性(HRV)。
心率变异性(HRV)信息中包含着海量关乎与心脑血管的调节信息,该信息受血压、温度、呼吸、血管紧张素还有肾素等多种因素影响尤其是最重要的自主神经系统对其的调节作用。在1978年Wolf等第一次报道了心率变异性(HRV)
1
1 绪论
在急性心肌梗塞(AMI)后过度降低同时严重心律失常和心源性猝死(SCD)也有密切关系,从而导致了心率变异性(HRV)的分析以及检测在临床医学中收到了高度重视,国外和国内有关基础和临床研究逐年增加。现在国际上认为,心率变异性(HRV)分析作为对心脏自主神经均衡性、活性、以及相关病理状态的无创口检测方法,并且在他的应用已经在急性心肌梗塞(AMI)和糖尿病自主神经病变(DAN)评价中得到了充分的肯定,并在高血压、阻塞性睡眠呼吸暂停综合征(俗称打呼噜)、心力衰竭等多种心血管疾病和非心脑血管疾病中展现了非常广阔的应用前景。
同时心率值也是衡量体力劳动强度和脑力劳动强度的重要指标。因此,设计一种可随身携带、可长时间记录、显示和存贮心率值的心率测试仪是十分必要的。
1.2脉搏检测仪介绍
在临床诊断和治疗中从脉搏波中所提取出的生理病理信息作为重要的依据,因此不管在国际和国内、中医和西医中都受到了很大的重视。世界上大多数的国家和民族都有通过“把脉”来诊断疾病。然而通过传统的方法来记录病人的脉搏时大多时通过把脉也就是医生用手按住病人的腕部或者颈部的动脉,根据脉搏的跳动来技术,一般情况下为了节省时间都是测量10秒钟内的跳动次数再通过换算来得到结果。但是如此就出现了精度不高、效率低下、等一系列的问题。
由于心室射血进入动脉是间断的,这就造成了每一心动周期内动脉容积和动脉血压的一系列变化,使动脉随心动周期而搏动,在浅表动脉可摸到一起一伏的搏动,称为动脉搏动。由于主动脉根部的起伏性搏动,沿动脉管壁想末梢血管呈波形的传播,称为脉搏波。
脉搏波波形图是动脉血管的搏动的轨迹,他主要综合了心脏的收缩活动和脉搏波沿血管传播途中携带的各种信息,为此,脉搏波波形图的拐点都有一定的意义。
2
1 绪论
图1.1 典型脉搏波波形图
图中个字母代表的意义为:U:起始点 P:主波 T:潮波 V:切迹 D:重博波
早在1860年诞生了第一台脉搏检测仪,它是Vierordt所创建的杠杆式脉搏扫仪,国内也与20世纪50年代朱颜将脉搏检测仪引用到了中医脉诊的研究反面。随后随着机械及电子技术的发展,国内外在研制脉搏检测仪方面研究也发展很快。
跟随者科技的发展,脉搏检测技术也日新月异越来越先进,对脉搏的测量精度要求也越来越高,国际和国内也先后研发和制造了很多不同脉搏检测仪,当中的关键时对脉搏传感器的研究。
脉搏波所呈现的波形(强度)、波形(形态)、周期(节律)和速率(波速)等方面的综合信息,都反映出了人体心血管系统中系统很多的生理病理的血流特征,因而脉搏波的采集和处理在医学上有极高的价值和应用前景。但是人体繁多的生物信号多属强噪声的背景下的低频弱信号,其中脉搏波信号更是低频超弱的非电生理信号,所以必须经过放大和后期滤波以满足采集的要求。起初用于体育测量的脉搏测试集中在对接触式传感器的研究,利用此类传感器所研制的指脉、耳脉等测量仪各有其优缺点。指脉测量比较方便、简单,但因为手指上的汗腺较多,指夹常年使用,污染可能会使测量灵敏度下降:耳脉测量比较干净,传感器使用环境污染少,容易维护。但因耳脉较弱,尤其是当季节变化时,所测信号受环境温度影响明显,造成测量结果不准确。过去在医院临床监护和日常中老年保健中出现的日常监护仪器,如便携式电子血压计,可以完成脉搏的测量但是这种便携式电子血压计利用微型气泵加压橡胶气囊,每次测量都需要一个加压和减压的过程,存在体积庞大、加减压过程会有不适、脉搏检测的精确度低等缺点。
近年来国内外致力于开发无创非接触式的传感器,这类传感器的重要特征是测量的探测部分不侵入机体,不造成机体创伤,能够自动消除仪表自身系统的误差,测量精度高,通常在体外,尤其是在体表间接测量人体的生理和生化参数。
传统测量方法分别有光电容积脉搏波法、液体耦合腔脉搏传感器、压阻式脉
3
1 绪论
搏传感器以及应变式脉搏传感器。近年来, 光电检测技术在临床医学应用中发展很快, 这主要是由于光能避开强烈的电磁干扰, 具有很高的绝缘性, 且可非侵入地检测病人各种症状信息。本系统设计了指套式的透射型光电传感器, 实现了光电隔离,减少了对后级模拟电路的干扰。采用指套式的透射型光电传感器模块对人体实行心率数据采集。
其中光电式脉搏传感器是根据光电容积法制成的脉搏传感器,通过对手指末端透光度的监测,间接检测出脉搏信号。具有结构简单、无损伤、精度高、可重复使用等优点。通过光电式脉搏传感器所研制的脉搏测量仪已经应用到临床医学等各个方面并收到了理想效果。
1.3关于本文主要研究内容及方法
本项目拟研制一套脉搏采集分析设备,该设备采用光电传感器从人体的手指或耳垂等处测得脉搏信号,通过控制器采集信号并经由TF卡上传给计算机,之后由计算机对脉搏信号进行分析处理得到信号的R-R间期,并将其储存在计算机的硬盘中。
传统的脉搏测量方法主要有三种:一是从心电信号中提取;二是从测量血压时压力传感器测到的波动来计算脉率;三是光电容积法。前两种方法提取信号都会限制病人的活动,如果长时间使用会增加病人生理和心理上的不舒适感。而光电容积法脉搏测量作为监护测量中最普遍的方法之一,其具有方法简单、佩戴方便、可靠性高等特点。
光电容积法的基本原理是利用人体组织在血管搏动时造成透光率不同来进行脉搏测量的。其使用的传感器由光源和光电变换器两部分组成,通过绑带或夹子固定在病人的手指或耳垂上。光源一般采用对动脉血中氧和血红蛋白有选择性的一定波长(500nm~700nm)的发光二极管。当光束透过人体外周血管,由于动脉搏动充血容积变化导致这束光的透光率发生改变,此时由光电变换器接收经人体组织反射的光线,转变为电信号并将其放大和输出。由于脉搏是随心脏的搏动而周期性变化的信号,动脉血管容积也周期性变化,因此光电变换器的电信号变化周期就是脉搏率。
1.采用低功耗主控芯片STM32L来实现心率数据的采集,使用嵌入式文件系统FATFS完成心率数据在SD卡上的存储。
2.根据系统原理,设计下位机采集板的电路原理图和PCB版图并焊接调试原型机。
3.在PC机上用高级语言编写GUI界面,完成SD卡中心率波形的读取、显示
4
1 绪论
和分析工作。
4.测试整体便携式设备的功耗情况,检验系统功能
5
2 整体系统结构
2 整体系统结构
脉搏测量分析仪由三部分组成:脉搏测量模块、采集传输模块和上位机处理显示模块。其示意图如下:
图2.1 整体系统结构
脉搏测量模块主要完成对手指端脉搏信号的提取和放大的作用。本系统拟采用峰值波长为515nm的绿光波段的发光二极管作为光源,并采用对该波段敏感的环境光感应器来将光信号转为电信号,并通过后级的放大缓冲电路输出该电信号。 采集记录模块主要完成对上一级输出信号的采样量化和对后一级传输数字信号的作用。本系统拟采用微控制器来完成对模拟信号的采样量化,并将采样后的数据储存在可插拔的大容量TF卡中,保证了数据的可靠记录和长时间储存。
系统的前两部分——脉搏测量模块和采集记录模块统一采用低功耗嵌入式技术完成,并采用电池供电。不但可以保证整体系统长时间不间断采集地采集脉搏信号,而且电池供电保证了系统的安全性,同时由于系统体积较小并采用了TF卡储存,可以较好地固定于人体上,方便病人活动。
处理显示模块主要完成对脉搏信号的作图显示和自动测量R-R间期并保存的作用。该模块是采用计算机软件编程的方式对TF卡中储存的脉搏信号进行读取作图显示同时可以完成对脉搏信号的R-R间期测量计算并将该测量值保存在硬盘上。
6
2 整体系统结构
2.1 脉搏测量模块
脉搏测量模块这部分主要的问题是如何测量和处理脉搏信号。而脉搏信号作为人体中作为最容易被检测的生理信号之一,血压、心电、心音等多种生理信号中都携带有心率的信息。http://pan.baidu.com/s/1hsi8v5M
2.1.1常用的脉搏检测方法
1.利用心脏活动时,心脏周围的组织和体液导电所产生的心电信号用心电图记录下来,随即从R-R心电间期中提取心率。
2.利用心脏活动时,由于血液装机心室壁、大动脉,或者心肌收缩等机械振动被记录信号中测出脉搏。
3.利用心脏活动时,血液流动的变化从手指头或耳垂等透光度较高的部中测量出光通量的变化得到心率。本次课题所用到的就是这种方式。
4.利用心脏活动时,血液流动的变化会导致的人体阻抗发生变化从中推算出脉搏。
5.利用心脏活动时,血液流动所引起的超声多普勒频移偏变化来推算出心率。 6.还有利用心冲击图的办法等。
2.1.2 光电式脉搏传感器
由于本课题追求方便、简单、无创口、体积小等特点,我们在选择脉搏检测的方法是选用的是光电容积法脉搏测量的办法。而所谓的光电容积法脉搏测量的本质就是使用光电式脉搏传感器来检测和获得脉搏信息。
为光电式脉搏传感器的原理是由于人体心脏的周期性跳动会导致人体各个组织中的动脉中血液等成分的周期性变化,所以根据Lambert-Beer定律,当物质被特定波长的光或者说单一颜色的光照射时,他的吸光度与该物质的浓度、厚度之间是存在着特定的关系。也就是说每当心脏的跳动导致某处动脉中的血液浓度的变化时会导致该处组织的吸光度发生变化。因此当我们选择指尖、耳垂、耳膜等相对于其他组织而言更为薄地方检测时检测到的光强度相对而言更大一些,所以光电式传感器的测量部位通常现在这些地方。下面我们将以指尖为例。手指各种组织可以分为皮肤组织、肌肉组织、骨骼组织,纤维组织等其中除去血液组织其他各个组织的吸光度都是定值,而在血液组织中静脉血的变化相对于动脉血来说可以忽略不计,所以我完全可以任务手指或者说指尖的吸光度的变换完全是有动脉搏动引起的,通过检测指尖的吸光度来间接检测人体脉搏信号是可行的。
7
2 整体系统结构
图2.2 人体手指吸光度的变化的示意图
根据郎伯-比尔(Lambert-beer)定律,物质在一定波长处的吸光度和它的浓度成正比,当恒定波长的光照射到人体组织上时,通过人体组织吸收、反射、衰减后测量到的光强在一定程度上反映了被照射部位组织的结构特征。血液是高度不透明的液体,光在一般组织中的穿透性要比在血液中大几十倍。一般情况下,当光子穿越介质时,因能量被吸收而导致的强度衰减可描述为:
为入射光强,是与组织结构相关的吸收系数,是沿光轴的坐标长度。
脉搏主要由人体动脉舒张和收缩产生的,在人体指尖,组织中的动脉成分含量高,而且指尖厚度相对其他人体组织而言比较薄,透过手指后检测到的光强相对较大,因此光电式脉搏传感器的测量部位通常在人体指尖。
图2.3 人体指尖还原蛋白与氧化蛋白光吸收率示意图。
8
2 整体系统结构
光电容积法的基本原理是利用人体组织在血管搏动时造成透光率不同来进行脉搏测量的。其使用的传感器由光源和光电变换器两部分组成,通过绑带或夹子固定在病人的手指或耳垂上。光源一般采用对动脉血中氧和血红蛋白有选择性的一定波长( 500nm~700nm)的发光二极管。当光束透过人体外周血管,由于动脉搏动充血容积变化导致这束光的透光率发生改变,此时由光电变换器接收经人体组织反射的光线,转变为电信号并将其放大和输出。由于脉搏是随心脏的搏动而周期性变化的信号,动脉血管容积也周期性变化,因此光电变换器的电信号变化周期就是脉搏率。
由于光电容积法比较容易实现,所以经过查找发现了一款开源的心率传感器pulse sensor。该传感器是可以配套Arduino使用的一个心率传感器,本质是一个带有放大和消噪功能的光学放大器,通过佩戴在手指末端或者耳垂等毛细血管末端来检测血液量的变化从而得到人体的实时心率。该传感器只有三根线,电源、地和信号线,信号线输出模拟信号,利用相应的Arduino下位机程序和Processing上位机程序,可以方便的显示脉搏波形,可以直接拿来做演示实验或者开发原型,
而且这种传感器也使用方便感器紧贴手指指肚,再用绑带缠绕,做到传感器和皮肤紧密接触即可。将pulse sensor与arduino相连,通过USB线将数据上传电脑。通电后,pulse sensor上的LED发出绿光,电脑屏幕上的脉搏波形刚开始还是很凌乱的,等待arduino采集数据一段时间后就会有相应的脉搏波形显示出来,同时arduino板上的LED灯也会随着佩戴者的每一次心跳而闪烁。
该光电脉搏传感器须能工作在0℃以上,能在10s内测量出一般成人的心率,测量显示范围为30-200次/分,并能持续测量,每10秒更新一次心率显示,能够通过电路进行高频滤波,消除高频噪声干扰;测量腔内部其他部分涂有吸光物质,消除反射光的干扰;单片机能通过算法对结果进行检验和校正。测量腔入口连有遮光指套,指套口有适合的松紧带来适应各种粗细的手指。
9
2 整体系统结构
图2.4 传感器实物图
模拟电压信号绿光LED光感受器滤波电路放大电路
图2.5 脉搏传感器结构图
图2.6 脉搏传感器原理图
10
2 整体系统结构
图2.7 传感器输出脉搏波形图
2.2采集记录模块
由于整个系统要采用电池供电,并且待机时间要长,所以采用了低功耗高性能的单片机STM32L151。
绿色能源技术的发展、电池供电产品的需求增长、新的国家和国际的低功耗标准推出,以及善待环境意识的增强。等众多原因众多的应用领域对更低功耗的需求与日增长。为了满足这样的市场需求,意法半导体开发了超低功耗的微控制器平台。立足于ST自主研发的130nm超低漏电工业技术的8位的STM8和32位的STM32位的开发平台。
STM8L和STM32L为低功耗应用供给特别的性能,例如优化的动态运行功耗、先进的超低功耗模式以及特殊的安全性能。不管哪种应用,通过不一工作模式,微处理器都可以在超低功耗与高性能之间取得平衡,以此保证产品使用周期内的各个环节一直保证优化的功耗水平。
其中32位的STM32L微控制器系列基于Cortex-M3内核,从功能、性能、封装管脚数目和存储器容量等方面极大丰富了超低功耗产品线。STM32L系列有超低功耗和高性能于一身,STM32L系列不仅使用了意法半导体的超低漏电流制造工艺,而且优化了整体架构。
于2009年底ST宣布STM32L超低消耗微控制器正式投入市场,为了能够最大限度降低了各种工作模式的功能消耗使用现在最为先进的EnergyLite™技术。
超低功耗微控制器能够适用当前飞速提高的功能消耗需要,满足设计人员对
11
2 整体系统结构
更长时间的电池功能产品的使用寿命,以及放低家用电器和智能电表等功能的消耗。市场上大部分的低耗技术大多是关闭无用元件电源和休眠模式,STM32L的EnergyLite™技术不仅如此还能够在工作模式下节约能源,从而帮助设计者达到各种能效目标,能够更容易的达到国际高能效电源推广计划以及各种待机能耗限制。 除最为突出的与制程有关的节能特色外,STM32L系列还提供更多其它的功能,开发人员能够优化应用设计的功耗特性。通过六个超低功耗模式,STM32L系列产品能够在任何设定时间以最低的功耗完成任务。意法半导体单片机部市场经理张军辉说,STM32L为客户提供6种模式:10.4μA低功耗运行模式、6.1 μA低功耗睡眠模式(一个计时器工作)、1.3 μA 停机模式(RTC运行,保留RAM内容、0.5 μA 停机模式(无RTC运行,保留RAM内容)、1.0μA待机模式(RTC运行,保存后备寄存器)。客户可以根据自己的算法和应用需要在不同模式之间切换,达到一个低功耗的状态。STM32L系列新增低功耗运行和低功耗睡眠两个低功耗模式,通过利用超低功耗的稳压器和振荡器,微控制器可大幅度降低在低频下的工作功耗。稳压器不依赖电源电压即可满足电流要求。STM32L还提供动态电压升降功能,这是一项成功应用多年的节能技术,可进一步降低芯片在中低频下运行时的内部工作电压 STM32L性能
1.ARM Cortex-M3 32MHz处理器
2.内置64~128K字节闪存,16K字节RAM和最多4K字节EEPROM 3.2个子系列:子系列间管脚、软件和外设兼容 4.与STM32F系列在引脚分布上兼容
5.供电电压:带低电压检测时为1.8V~3.6V,不带低电压检测时为1.65V~3.6V 6.超低能耗:低至185 μA/DMIPS
7.6种超低功耗模式:功耗最低可达270 nA
8.超低功耗动态模式:低功耗运行时功耗低至10.4 μA,低功耗睡眠且有1个定时器运行时功耗低至6.1 μA
9.运行模式,代码从FLASH执行加动态电压调节,经济功耗低达230 μA/MHz 10.工作温度范围-40°C至+85°C 11.丰富的高端模拟、数字外设 STM32L超低功耗性能
1.低耗运行模式:CPU仍然处于运行状态。CPU由低速振荡器驱动(RTC或内部振荡器),执行RAM中的代码。功耗的典型值为10.4μA。
2.低耗睡眠模式:允许RTC和其他的一些外设(例如定时器)保持运行状态,CPU停止运行。当只有一个定时器保持运行时,功耗电流的典型值为6.1μA。在此模式
12
2 整体系统结构
下,Flash模块关闭,CPU停止运行,调压器处于超低功耗状态下,RTC和一些外设可以保持运行状态
3.停止模式:CPU、主时钟和外设都停止运行。RTC可以保持运行或停止状态(取决于2种不同的停止模式)。可以通过外设的中断来唤醒。维持SRAM和备份寄存器的内容。
4.待机模式:CPU、主时钟和外设都停止运行。RTC可以保持运行或停止状态(取决于2种不同的待机模式)。只维持备份寄存器的内容。需要通过唤醒引脚来唤醒。 整个采集记录模块主要分为3个部分:主控单元、电源单元和接口单元。
2.2.1主控单元
主控单元主要是STM32L151单片机的最小系统,完成对脉搏模拟信号的采集量化,并将脉搏数据储存在SD卡中。
13
2 整体系统结构
图2.8 主控单元示意图
2.2.2电源单元
电源单元主要完成两个功能:第一,使用TP4057实现外部5v电压对锂电池的充电保护电路;第二,使用低压差LDO芯片SP6201实现对整个系统稳压供电。
14
2 整体系统结构
图2.9 锂电池充电和保护电路
(1)锂电池保护电路
近年来,PDA、数字相机、手机、可携式音讯设备和蓝芽设备等越来越多的产品采用锂电池作为主要电源。锂电池具有体积小、能量密度高、无记忆效应、循环寿 命高、高电压电池和自放电率低等优点,与镍镉、镍氢电池不太一样,锂电池必须考虑充电、放电时的安全性,以防止特性劣化。针对锂电池的过充、过度放电、过 电流及短路保护很重要,所以通常都会在电池包内设计保护线路用以保护锂电池。由于锂离子电池能量密度高,因此难以确保电池的安全性。在过度充电状态下,电池温度上升后能量将过剩,于是电解液分解而产生气体,因内压上升而产生自燃或 破裂的危险;反之,在过度放电状态下,电解液因分解导致电池特性及耐久性劣化,因而降低可充电次数。锂离子电池的保护电路就是要确保这样的过度充电及放电状态时的安全性,并防止特性劣化。锂离子电池的保护电路是由保护IC及两颗功率MOSFET所构成,其中保护IC监视电池电压,当有过度
15
2 整体系统结构
充电及放电状态时切换到以外挂的功率MOSFET来保护电池,保护IC的功能有过度充电保护、过度放电保护和过电流/短路保护。
一、过度放电保护在过度放电的情况下,电解液因分解而导致电池特性劣化,并造成充电次数的降低。采用锂电池保护IC可以避免过度放电现象产生,实现电池保护功能。过度放电保护IC原理:为了防止锂电池的过度放电状态,假设锂电池接上负载,当锂电池电压低于其过度放电电压检测点(假定为2.3V)时将激活过度放电保护,使功率MOSFET由开转变为切断而截止放电,以避免电池过度放电现象产生,并将电池保持在低静态电流的待机模式,此时的电流仅0.1μA。当锂电池接上充电器,且此时锂电池电压高于过度放电电压时,过度放电保护功能方可解除。另外,考虑到脉冲放电的情况,过放电检测电路设有延迟时间以避免产 生误动作。
二、过度充电保护过度充电保护IC的原理为:当外部充电器对锂电池充电时,为防止因温度上升所导致的内压上升,需终止充电状态。此时,保护IC需检测电池电压,当到达 4.25V时(假设电池过充点为4.25V)即激活过度充电保护,将功率MOSFET由开转为切断,进而截止充电。
三、过电流及短路电流因为不明原因(放电时或正负极遭金属物误触)造成过电流或短路,为确保安全,必须使其立即停止放电。过电流保护IC原理为,当放电电流过大或短路情况产生时,保护IC将激活过(短路)电流保护,此时过电流的检测是将功率MOSFET的Rds(on) 当成感应阻抗用以监测其电压的下降情形,如果比所定的过电流检测电压还高则停止放电,运算公式为: V- = I × Rds(on) × 2(V- 为过电流检测电压,I 为放电电流)
四、锂电池保护IC的新功能除了上述的锂电池保护IC功能之外,下面这些新的功能同样值得关注:1.充电时的过电流保护。当连接充电器进行充电时突然产生过电流(如充电器损坏),电路立即进行过电流检测,此时Cout将由高转为低,功率MOSFET由开转为切断,实现保护功能。V- = I × Rds(on) × 2(I 是充电电流;Vdet4,过电流检测电压,Vdet4 为 -0.1V)2.过度充电时的锁定模式通常保护IC在过度充电保护时将经过一段延迟时间,然后就会将功率MOSFET切断以达到保护的目的,当锂电池电压一直下降到解除点(过度充电滞后电压)时就会恢复,此时又会继续充电→保护→放电→充电→放电。这种状态的安全性问题将无法获得有效解决,锂电池将一直重复着充电→放电→充电→放电的动作,功率MOSFET的栅极将反复地处于高低电压交替状态,这样可能会使MOSFET变热,还会降低电池寿命,因此锁定模式很重要。假如锂电保护电路在检测到过度 充电保护时有锁定模式,MOSFET将不会变热,且安全性相对提高很多。在过度充电保护之后,只要充电器连接在电池包上,此时将进入过充锁定模式。此时,即使锂电池电压
16
2 整体系统结构
下降也不会产生再充电的情形,将充电器移除并连接负载即可 恢复充放电的状态。3.减少保护电路组件尺寸将过度充电和短路保护用的延迟电容器整合在到保护IC里面,以减少保护电路组件尺寸。
五、对保护IC性能的要求。1.过度充电保护的高精密度化当锂离子电池有过度充电状态时,为防止因温度上升所导致的内压上升,须截止充电状态。保护IC将检测电池电压,当检测到过度充电时,则过度充电检测的功率 MOSFET使之切断而截止充电。此时应注意的是过度充电的检测电压的高精密度化,在电池充电时,使电池充电到饱满的状态是使用者很关心的问题,同时兼顾 到安全性问题,因此需要在达到容许电压时截止充电状态。要同时符合这两个条件,必须有高精密度的检测器,目前检测器的精密度为25mV,该精密度将有待于 进一步提高。2.降低保护IC的耗电 随着使用时间的增加,已充过电的锂离子电池电压会逐渐降低,最后低到规格标准值以下,此时就需要再度充电。若未充电而继续使用,可能造成由于过度放电而使 电池不能继续使用。为防止过度放电,保护IC必须检测电池电压,一旦达到过度放电检测电压以下,就得使放电一方的功率MOSFET切断而截止放电。但此时 电池本身仍有自然放电及保护IC的消耗电流存在,因此需要使保护IC消耗的电流降到最低程度。3.过电流/短路保护需有低检测电压及高精密度的要求。因不明原因导致短路时必须立即停止放电。过电流的检测是以功率MOSFET的Rds(on)为感应阻抗,以监视其电压的下降,此-时的电压若比过电流检测电 压还高时即停止放电。为了使功率MOSFET的Rds(on)在充电电流与放电电流时有效应用,需使该阻抗值尽量低,目前该阻抗约为20mΩ~30mΩ, 这样过电流检测电压就可较低。4.耐高电压。电池包与充电器连接时瞬间会有高压产生,因此保护IC应满足耐高压的要求。5.低电池功耗。在保护状态时,其静态耗电流必须要小0.1μA。6.零伏可充电 有些电池在存放的过程中可能因为放太久或不正常的原因导致电压低到0V,故保护IC需要在0V时也可以实现充电
17
2 整体系统结构
图2.10 电源稳压电路
(2)电源稳压电路
微功耗,100mA和200mA CMOS LDO调节器-6201 小型DFN封装(2mm×3mm) 低压差:160mV @ 100mA 高输出电压精确度:2﹪ 极低的关断电流:最大为1uA
极低的GND电流:200uA @ 200mA负载 、28uA @ 100uA负载 极好的负载和线性调节 电流和发热限制
复位输出(VOUT良好) 逻辑控制的电子使能
1uF的陶瓷电容可保持器件无条件稳定工作
固定的输出: 5V, 1.8V, 2.5V, 2.7V, 2.85V, 3.0V, 3.3V, 3.5V, 5V 输出电压可调节 应用 移动电话 笔记本/掌上电脑 电池供电的设备 消费者/个人电子产品 SMPS后置调节器 DC-to-DC模块 医疗器材
18
2 整体系统结构
数据电缆 寻呼机
SP6201是CMOS LDO器件,适用于要求高精度、快速操作和方便使用的应用。它们提供极低的静态电流,静态电流只有在带负载的情况下才会稍微有所上升,这为双极型LDO的地电流操作提供了便利。SP6200和SP6201 LDO器件可处理极宽的负载范围,在1uF的输出陶瓷电容下仍可稳定工作。它们有极好的低频PSRR,这是其它CMOS LDO不具备的,可对产生的异常进行线性调整。高频PSRR比高达400KHz的40dB更好。SP6200和SP6201良好的负载调节特性和温度的稳定性可与双极性LDO相媲美。所有的版本都提供使能的特性。 SP6200和SP6201有输出电压固定和输出电压可调两种版本,含有小型DFN和小型SOT-23-5的封装。所有输出电压固定的版本都提供一个VOUT良好指示器。 绝对最大额定值
下面列出的是器件正常工作的额定值,并未涉及器件在这些条件或超出这些条件下的功能操作。器件不能长时间工作在绝对最大额定值条件下,否则会影响其可靠性。
电源输入电压(VIN)…………………………………………………………………………-2~7V 输出电压(VOUT)……………………………………………………………………-0.6~(VIN+1V) 使能输入电压(VEN)…………………………………………………………………………-2~7V 功耗(PD)…………………………………………………………………………………内部限定 引脚温度(焊接,5s)………………………………………………………….……………….260℃ 存储温度范围……………………………………………………………………….-65℃~+150℃ 工作额定值
输入电压(VIN)………………………………………………………………………….+2.5V~+6V使能输入电压(VEN)……………………………………………………………………0V~+6V接点温度(TJ)……..………………………………………………………………-40℃~+125℃ 热电阻:
SOT-23-5(θJA)…………………………………………………………………………….90℃/W 8脚DFN(θJA)…………………………………………………………………………….59℃/W
SP6201是CMOS LDO器件,适用于要求高精度、快速操作和方便使用的应用。它们提供极低的静态电流,静态电流只有在带负载的情况下才会稍微有所上升,这为双极型LDO的地电流操作提供了便利。SP6200和SP6201 LDO器件可处理极宽的负载范围,在1uF的输出陶瓷电容下仍可稳定工作。它们有极好的低频PSRR,这是其它CMOS LDO不具备的,可对产生的异常进行线性调整。高频PSRR比高达400KHz的40dB更好。SP6200和SP6201良好的负载调节特性和温度的稳定性可与双极性LDO相媲美。因此,在所有DC和AC条件下整个系统的精度都可保持。所有版本的器件都提供使能的特性。输出电压固定的器件都提供一
19
2 整体系统结构
个VOUT良好指示器(RSN管脚)。还有一种输出电压可调的器件版本,内部提供电流限制和过热保护,并可进行良好的控制。 结构
SP6200和SP6201的唯一区别是两者的限流阈值不同。SP6200的电流限制在140mA以内,而SP6201的电流限制在420mA以内。SP6201可提供300mA的脉冲负载电流。LDO有一个2级放大器,可处理极宽的负载范围(10uA~300mA),并保证器件可在1uF的陶瓷负载电容下稳定工作。LDO放大器的增益恰到好处,具有其它CMOS LDO器件不具备的良好PSRR性能。放大器可保证在上电或通过EN管脚使能时不产生过冲。放大器还包含一个有效的下拉,使负载快速移走时输出电压的瞬时变化最小;这样,当负载瞬时变化时输出偏差的变化将很小,与负载连接和断开的情况非常匹配。
2.7V和更高电压的固定输出版本LDO器件有一个精确的1.250V的带隙基准直接连接到输出。这就增强了低频和高频PSRR。可调版本LDO器件也有带隙基准,直接连接到输出,从而得出最低外部可编程输出电压为2.7V。2.5V的固定输出版本器件的带隙总是连接到VIN管脚。与许多LDO不同的是,带隙基准不能用于应用的滤波。这种变化很难保持在高频时的良好PSRR(由于开关噪声作用于管脚,使得系统的PSRR降低)。而且,通常旁路电容或其它元件的泄漏会造成高阻抗带隙节电出错。因此,这种变化已被 “使用方便”的想法改进。
2.2.3接口单元
接口单元主要有三个部分:第一,USB接口实现对锂电池的充电和与主控芯片的通信;第二,音频接口实现与脉搏传感器的连接;第三,SD卡接口实现主控芯片对micro SD卡的读取。
20
2 整体系统结构
图2.11 USB接口电路
USB接口是一种可以热插拔的通信接口,方便随时使用,但是在插拔过程中容易产生电路上的瞬间冲击,从而损坏单片机的USB接口。因为在USB接口上加入了USBLC6芯片可以有效保护USB接口电路的安全性。同时利用一个三极管来控制USB接口电路的使能,可以有效控制系统的功耗。
21
2 整体系统结构
图2.12 传感器接口电路
传感器接口使用的是普通音频插口。由于脉搏传感器输出的是低压模拟信号,同时使用在人体需要一定的长度,所以为了保证信号尽量少受干扰,采用了带有屏蔽的音频线来传输脉搏信号。此外,在接口的输出端加入了一阶低通滤波器来去除混入的高频噪声。
22
2 整体系统结构
图2.13 SD卡接口电路
本系统采用SPI接口来完成对SD卡的操作。同时在SD卡的电源端加入了一个三极管来控制SD卡的上电控制,最大限度实现系统的能耗控制。
2.3处理显示模块
使用C#语言搭建了上位机显示模块,可以将SD卡中存储的波形文件读入计算机并显示波形,同时利用现有算法文件直接对脉搏波形计算心率。下位机显示界面如下图所示,其具有局部放大和缩小的功能。
23
2 整体系统结构
图2.14 下位机显示界面
24
3 系统软件设计
3 系统软件设计
为了降低整体功耗,主控芯片STM32L151采用定时唤醒工作方式。每2ms唤醒一次,采集AD数据,采样率为500HZ。系统每采集512个AD数值后,将其一次性存入SD卡的一个block中。由于波形文件要由上位机或其他软件读取,为了增强兼容性和稳定性,采用了适用于嵌入式系统的文件系统-FATFS。
FatFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块。FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开。因此,它独立于硬件架构。它可以被嵌入到低成本的微控制器中,如AVR, 8051, PIC, ARM, Z80, 68K 等等,而不需要做任何修改。FatFs是一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。 FatFs 的编写遵循ANSI C,因此不依赖于硬件平台。它可以嵌入到便宜的微控制器中,如 8051, PIC, AVR, SH, Z80, H8, ARM 等等,不需要做任何修改。
3.1功能配置:
_FS_TINY:文件系统为标准的还是微型的,默认为标准的(0);
_FS_READONLY:文件系统是否为只读,默认为可读写(0),若只读则f_write、f_sync、 f_unlink、f_mkdir、f_chmod、f_rename、f_truncate和f_getfree不可用;
_FS_MINIMIZE:裁剪文件系统的功能,默认为全部功能(0),若为1、2则会移除大部分链接、目录等功能;
_USE_STRFUNC:是否允许字符串操作,默认为不允许(0),这个看个人需求,一般情况下设置为1即可,如果工作在windows下,为保证文件兼容性(如换行符’\\n’和回车符’\\r’)建议将此项设置为2;
_USE_MKFS:是否允许使用f_mkfs函数,默认为0,用于创建文件夹,建议开启;
_USE_FORWARD:用于允许f_forward函数,只有开启tiny文件系统时才用到,该函数用于将读写的数据立即转存到数据流中,以节省RAM空间;
_USE_FASTSEEK:是否开启快速索引,默认为0,开启后,会使用FIL结构体中的cltbl元素来加快搜索;
_CODE_PAGE:指定目标系统使用的OEM代码页,默认为日语(932),改为936简体中文;OEM是什么意思呢?在OS编码中,unicode是一种双字节字符编码,无论中文还是英文,或者其他语言统一到2个字节,它与现有的任何编码(ASCII,
25
3 系统软件设计
GB等)都不兼容。WindowsNT(2000)的内核即使用该编码,所有数据进入内核前转换成UNICODE,退出内核后在转换成版本相关的编码(通常称为OEM,在简体中文版下即为GB);
_USE_LEN、_MAX_LEN、_LFN_UNICODE:这三个的意思不是很清楚,但是确定是与长文件名有关的,不建议开启,否则又要多加函数,麻烦;
_FS_RPATH:是否允许相对路径,让我选择就不开启,否则逻辑变得复杂不说,代码量也变多了一些;
3.2硬件相关配置:
_VOLUMES:磁盘(flash)逻辑卷数,默认为1,不建议修改; _MAX_SS:扇区大小,默认512Byte,最大可设置4096Byte;
_MULTI_PARTITION:分区选项,默认为0,即一个分区,若想要多分区可自行设置;
_USE_ERASE:是否允许扇区擦除,默认为0,若开启则要在disk_ioctl函数中添加擦除命令代码;
3.3文件系统配置:
_WORD_ACCESS:数据递进格式,默认为0,即以字节为单位递进,兼容性更强,若你的系统最新单位为字(2Byte),则可设为1;
_FS_REENTRANT、_FS_TIMEOUT、_SYNC_t:这三个选项与文件系统是否允许重入有关,所直白点,就是能否被多线程同时访问,像RTOS中,一般建议开启,_SYNC_t可定义为对应OS中的操作对象,windows下为HANDLE,uCos中为OS_EVENT,vxWorks中为SEMAPHORE。另外,开启后还需要添加ff_req_grant、ff_rel_grant和ff_del_syncobj三个函数,实际上实现的功能就是申请互斥量、释放互斥量和删除互斥量的意思,可以定义OS封装即可;
_FS_SHARE:和上面的类似,表示文件系统最大允许同时打开多少文件,默认为0,即只能打开一个。
在配置这些选项的时候,可以根据定义阅读ff.c文件中的相关代码,基本上能对整体的结果有了了解,完成了ffconf.h后,再就是编写底层接口了,在新一点的FatFs中,并未提供函数接口模版,可以下老版的拷过来,也可以打开doc文件夹下的帮助文档00index_e.htm文件,里面有底层函数接口的格式及各个参数的描述。
随着信息技术的发展,当今社会的信息量越来越大,以往由单片机构成的系统简单地对存储媒介按地址、按字节的读/写已经不满足人们实际应用的需要,于是利用文件系统对存储媒介进行管理成了今后单片机系统的一个发展方向。目前常用的文件系统主要有微软的FATl2、FATl6、FAT32、NTFS,以及Linux 系统
26
3 系统软件设计
下的EXT2、EXT3 等。由于微软Windows 的广泛应用,在当前的消费类电子产品中,用得最多的还是FAT 文件系统,如U 盘、MP3、MP4、数码相机等,所以找到一款容易移植和使用、占用硬件资源相对较小而功能又强 大的FAT 开源文件系统,对于单片机系统设计者来说是很重要的。
FatFs Module 是一种完全免费开源的FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准C 语言编写,所以具有良好的硬件平台独立性,可以移植到8051、PIC、AVR、SH、Z80、H8、ARM 等系列单片机上而只需做简单的修改。它支持FATl2、FA
Tl6 和FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对8 位单片机和16 位单片机做了优化。FatFs Module 有个简化版本Tiny—FatFs,它跟完全版FatFs 的不同之处主要有两点: ①占用内存更少,只要1 KB RAM; ②1 次仅支持1 个存储介。 1 Tiny-FatFs 移植前的准备
FatFs Module 一开始就是为了能在不同的单片机上使用而设计的,所以具有良好的层次结构,如图1 所示。最顶层是应用层,使用者无需理会FatFs Module 的内部结构和复杂的FAT 协议,只需要调用FatFs Module 提供给用户的一系列应用接口函数,如f_open,f_read,f_write、f_close 等,就可以像在PC 上读/写文件那样简单。
图3.1 FatFs Module层次结构
27
3 系统软件设计
中间层FatFs Module 实现了FAT 文件读/写协议。FatFs Module 的完全版提供的是ff.c、ff.h,简化版Tiny—FatFs 提供的是tff.c、tff.h。除非有必要,使用者一般不用修改,使用时将需要版本的头文件直接包含进去即可。
需要使用者编写移植代码的是FatFs Module 提供的底层接口,它包括存储媒介读/写接口DiskIO 和供给文件创建修改时间的实时时钟。
本文使用SD 卡的SPI 通信模式。SD 卡的DI 接MOSI,DO 接MISO,CS 接SS。这就需要STM32L151 提供SPI 读/写接口代码,主要包括初始化、读和写。SPI 初始化包括SPI 相关寄存器的初始化和相关I/O口的初始化。将ATmega 128 的SPI 配置成主机模式、数据高位先传、时钟速率为二分之一系统时钟等。代码如下:
SPCR = (O< loop_until_bit_is_set(SPSR,SPIF); return SPDR; } 写1 个字节的SPI 接口代码: static void xmit_spi(BYTE dat) { SPDR=dat; loop_until_bit_is_set(SPSR,SPIF) } 在具备SPI 读/写接口的基础上编写SD 卡接口代码,需要编写3 个基本接口函数: ① 向SD 卡发送1 条命令: Static BYTE send-cmd(BYTE cmd,DWORD arg); ② 向SD 卡发送1 个数据包: Static BOOL xmit—datablock(const BYTE *buff,BYTE token); ③ 从SD 卡接收1 个数据包: 28 3 系统软件设计 static BCK]L rcvr-datablock(BYTE*buff,UINT btr); 编写DiskIO 编写好存储媒介的接口代码后,就可以编写DiskIO 了,DiskIO 结构如图2 所示。 Tiny—FatFs 的移植实际上需要编写6 个接口函数,分别是: 图3.2 DisklO结构 ① DSTATUS disk_initialize(BYTE drv); 存储媒介初始化函数。由于存储媒介是SD 卡,所以实际上是对SD 卡的初始化。drv 是存储媒介号码,由于Tinv—FatFs 只支持一个存储媒介,所以drv 应恒为O。执行无误返回0,错误返回非O。 ② DSTATUS disk_status(BYTE drV); 状态检测函数。检测是否支持当前的存储媒介,对Tinv—FatFs 来说,只要drv 为0, 就认为支持,然后返回O。 ④ DRESULT disk_read(BYTE drv,BYTE*buff,DWORD sector,BYTE.count); 读扇区函数。在SD 卡读接口函数的基础上编写,*buff 存储已经读取的数据,sector是开始读的起始扇区,count 是需要读的扇区数。1 个扇区512 个字节。执行无误返回O,错误返回非0。 ⑤ DRESULT disk_ioctl(BYTE drv,BYTE ctrl,VoiI*buff); 存储媒介控制函数。ctrl 是控制代码,*buff 存储或接收控制数据。可以在此函数里编写自己需要的功能代码,比如获得存储媒介的大小、检测存储媒介的上电与否存储媒介的扇区 数等。如果是简单的应用,也可以不用编写,返回O 即可。 ⑥ DWORD get_fattime(Void); 实时时钟函数。返回一个32 位无符号整数,时钟信息包含在这32 位中,如下所示: bit31:25 年(O..127)从1980 年到现在的年数 29 3 系统软件设计 bit24:21 月(1…12) bit20:16 日(1..31) bitl5.1] 时(O..23) bitl0:5 分(O..59) bit4:0 秒/2(0..29) 如果用不到实时时钟,也可以简单地返回一个数。正确编写完DiskIO,移植工作也就基本完成了,接下来的工作就是对Tiny—FatFs 进行配置。 2 Tiny—FatFs 的配置 Tiny—FatFs 是一款可配置可裁减的文件系统,使用者可以选择自己需要的功能。Tiny—FatFs 总共有5 个文件,分别是tff.c、tff.h、diskio.c、diskio.h 和integer.h。tff_c 和integer.h 一般不用改动,前面的移植工作主要更改的是diskio.c,而配置Tiny—FatFs 则主要修改tff.h 和diskio.h。在 diskio.h 中,使用者可以根据需要使能disk—write 或disk_ioetl。以下代码使能disk_write 和disk_ioctl: #define—R'EADONLY 0 #define—USE_IOCTL 1 在tff.h 中,使用者可以根据需要对整个文件系统进行全面的配 ① #define_MCU_ENDIAN。有1 和2 两个值可设,默认情况下设1,以获得较好 的系统性能。如果单片机是大端模式或者设为1 时系统运行不正常,则必须设为2。 ② #define_FS_READONLY。设为1 时将使能只读操作,程序编译时将文件系统 中涉及 写的操作全部去掉,以节省空间。 ③ #define_FS_MINIMIZE。有0、1、2、3 四个选项可设。设0 表示可以使用全部 Tiny-FatFs 提供的用户函数;设1 将禁用f_stat、f_getfree、f_unlink、f_mkdir、f_chmod 和f_rename;设2 将在1 的基础上禁用f_opendir 和f_readdir;设3 将在1 和2 的基础上再禁用f_lseek。使用者可以根据需要进行裁减,以节省空间。 ④ #define_FAT32。设1时将支持FAT32。 ⑤ #define_USE_FSINFO。设1时提供FAT32的磁盘信息支持。 ⑥ #define_USE_SJIS。设1时支持Shift-JIS码,一般设0。 ⑦ #define_USE_NTFLAG。设1时将对文件名大小写敏感。 3 TINY-FatFs 的读/写测试 Tiny-FatFs 的功能很强大,提供了丰富而易于使用的用户接口函数,如图3 所示。 30 3 系统软件设计 图3.3 Tiny-Fatfs用户接口函数 Tiny—FatFs 的功能很全,本文仅测试f_mount、f_open、f_read、f_write 和f_close五个函数来读一个3.4 MB 的文件和写一个1MB 的文件,文件名分别为testl.dat 和test2.dat。主要代码如下: 31 3 系统软件设计 经过实际测试,在单片机系统时钟为11.059 2 MHz 下读一个3.4 MB 文件耗时约20 s,平均约170 KB/s;写一个1 MB 文件耗时约6s,平均约166 KB/s,在资源有限的单片机系统下这个读/写速度是相当令人满意的。综上所述,FatFs Module 具有容易移植、功能强大和易于使用的优点,适用于小型嵌入式系统;又是完全的免费和开源,也可以用于教育科研及其商业用途。 32 4 系统实物图和擦拭结果 4.系统实物图和测试结果 图4.1系统实物图 根据系统的要求和方案规划,最后使用altium designer软件绘制了整体系统的原理图和PCB图,发到板厂制板后并手工焊接了元件。最后完成后的整个系统如上图所示。 将程序下载到单片机中并调试,最后验证了整个系统可以正常工作,各个部分的基本功能已经实现。经过测试,整体系统的平均电流消耗为16mA左右,使用一个容量为1800mah的锂电池供电,可以稳定工作一天以上。而采用快速充电,一个小时左右就可以将电池充满。 33 5 总结 5.总结 本文设计了一种便携式心率采集系统,其具有可穿戴,低功耗,长时间工作等特点,该系统采用光电传感器从人体的手指或耳垂等处测得脉搏信号,通过控制器采集信号并经由TF卡上传给计算机,之后由计算机对脉搏信号进行分析处理得到信号的R-R间期,并将其储存在计算机的硬盘中,以供后续的HRV研究使用。 本系统实现了以下功能: 1.以低功耗主控芯片STM32L来实现心率数据的采集储存功能,移植了嵌入式文件系统FATFS完成心率数据在SD卡上的存储。 2.根据系统原理,设计了下位机的电池充电电路和PCB,研究了采集板的电路原理图,并最终焊接调试原型机。 3.在PC机上用高级语言编写了GUI界面,完成SD卡心率波形的读取、显示和分析工作。 4.整体采用低功耗的设计方法,系统平均工作电流只有16mA,可以长时间工作。 系统的不足之处: 1.脉搏传感器采用直流供电方式,电能消耗大,改为脉冲供电方式更省电; 2.系统虽然具有USB通信接口,但是因为时间紧,没有编写相应功能软件,目前只能依靠SD卡传输数据; 3.系统没有添加后备电池供电电路,无法实现实时时钟功能,储存的文件没有时间戳。 由于个人知识水平及时间限制,还有很多工作尚未完善,设计也有待进一步提高、完善。 34 参考文献 参考文献 [1] 戴君伟,王博亮.光电脉搏传感器的研制和噪声分析[J].现代电子技术,2006,第2 期:78 - 80 + 90. [2] 程咏梅,夏雅琴,尚岚.人体脉搏检测传感器及信号处理系统[R].大连:北京工业大学机 电工程学院工程力学部,2005. [3] 王国力,赵子婴,白金星.PVdF 压电薄膜脉搏传感器的研制[J].传感技术学报, 2004,第4 期:688 - 692. [4] 汪步云,许德章.光电式脉搏传感器及由其组成的血压仪的研制[J].生命科学仪器,2008 年,第6卷:45 – 48. [5] 赵翠敏,杨学智,宋一伦.中医脉诊仪研制情况概述[R].北京:北京中医药大学,2006. [6] 杨金红,林咏海.指夹式光电脉搏传感[J].科技信息,2009,36期:87 + 90. [7] 俞涛,林晓珑,王军,赵静荣.基于光电放大器OPT101 的石油闪点信号检测和提取方法 [J]. 大庆石油学院学,2004,28卷01期:67 – 69 + 123. [8] 张珣,周杰.光电脉搏传感器的设计与改进[J].中国医疗器械杂志,2009,33 卷(第 5 期):344 - 346. [9] 康华光 ,陈大钦.模拟电子技术基础[M].北京:高等教育出版社,2004:249 - 252. [10]曹军.仪器放大器AD620性能及其应用[J].电子器件,1997,20卷03期:64 - 68. [11]阎石.数字电子技术基础[M].北京:高等教育出版社,2007年:491 - 493. [12] 何宏,龚威,田志宏.单片机原理与接口技术[M].北京:国防工业出版社,2006:194 – 195. [13] Huai Yongjin and Han Zhengsheng .Design of a High Precision Array Pulse Sensor in TCM[J]. 半导体学报,2008年,04期:701-705. [14] Texas Inst rument s Incorporated1OPT101 Datasheet :Mono lithic Photodiode and Single Supply Tran ImpedanceAmplifier.2004 [15] M. Cecconi, J. Wilson and A. Rhodes. Pulse Pressure Analysis[M]. New York :Springer,2006 年:176-184. [16] 孙友明,黄秉镰.新型脑电信号放大检测电路的设计[J].医疗卫生装备,2007,28(1):15-17. [17] 周永坤.运放电路的分析方法[J].中国科技信息,2005,23(12):102-109. [18] 黄闽海.LM324四运放实现电路的设计[J].福建轻纺,2006,17(8):26-29. [19] 郭鑫,张立.便携式叶绿素含量光电检测以设计[J].电子测量与仪器学报,2009,4(23): 92-96. 参考文献 [20] 张珣,周杰.光电脉搏传感器的设计与改进[J].中国医疗器械杂志,2009,5(33):344-346. [21] 戴军伟,王博亮.光电脉搏传感器的研制和噪声分析[J].传感器技术,2006,3(8):78-80. [22] 汪步云,许德章.光电式脉搏传感器及由其组成的血压仪的研制[J].生命科学仪器,2008, 27(6):45-47. 因篇幅问题不能全部显示,请点此查看更多更全内容