综合实训报告2014—2015学年第1学期实训名称:便携式人体脉搏信号检测系统设计指导教师:学院:电气工程及其自动化学院班级:姓名:学号:2014年10月17日便携式人体脉搏信号检测系统设计一.综合实训的主要内容设计一种人体脉搏信号检测系统,使得系统能够采集人体脉搏信号,并对信号进行处理,分析每分钟脉搏次数及其他生理指标。人体脉搏信号检测系统能够通过USB端口与PC机通讯,并在PC机上对采集数据进行处理,并显示每分钟脉搏跳动的次数和脉搏波形。二.硬件方案设计HK-2000B脉搏传感器:HK-2000B集成化脉搏传感器将力敏组件(PVDF压电膜)、灵敏度温度补偿组件、感温组件、信号调理电路集成在传感器内。具有灵敏度高、抗干扰能力强、过载能力大、一致性好、性能稳定可靠、使用寿命长等特点。压电式原理采集信号,能够输出完整的脉搏波电压信号。它的输出是和脉压对应的0~1.0v脉动模拟电压信号。AD/DA转换器PCF8951:8位AD/DA转换器。PCF8591是一个单片集成、单独供电、低功耗、8-bitCMOS数据获取器件。它具有4个模拟输入、1个模拟输出和1个串行I²C总线接口。PCF8591的3个地址引脚A0,A1和A2可用于硬件地址编程,允许在同个I²C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I²C总线以串行的方式进行传输。PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。PCF8591的最大转化速率由I²C总线的最大速率决定。STC89C52单片机:与51指令兼容。通用型,有总线扩展和较强的位处理功能,其全双工异步串行通信口,所以具有串口通讯功能。作为数据采集和传输的控制器。RS232转USB芯片PL2303:PL2303是Prolific公司生产的一种高度集成的RS232-USB接口转换器,可提供一个RS232全双工异步串行通信装置与USB功能接口便利联接的解决方案。该器件内置USB功能控制器、USB收发器、振荡器和带有全部调制解调器控制信号的UART,只需外接几只电容就可实现USB信号与RS232信号的转换。三.软件编程(1)结构框图满足综合实训的内容要求,选择的硬件等,人体的脉搏经过HK-2000B脉搏传感器测量得到脉搏的模拟信号,由电路中的放大及滤波电路放大和滤波之后,再由A/D转换电路转换成数字信号,经过LabVIEW,最后在LabVIEW的前面板显示,设计结构框图如图1所示。→→→→→↑↓←图1系统结构框图(2)程序流程图:满足综合实训的内容要求,选择的硬件等,由程序框图可得,主程序中:先定时初始化和串口波特率初始化,接着判断,最后通过I2C总线协议读取PCF8591的数据,由串口发送读取的数据;中断服务子程序:先重装定时初值,t0_num的判断,与主程序共同执行,其中在PCF8591中的程序流程是:启动IIC总线--停止IIC总线--应答IIC总线--非应答IIC总线--发送一个字节--读入一个字节并返回。设计程序流程图如脉搏压变式传感器放大及滤波电路A/D转换电路单片机接口电路A/D转换驱动程序脉搏波形显示LabVIEW编程串行通信程序图2所示。主程序中断服务子程序t0_num≧1?NFlag_time=1?Y图2程序流程图(3)主要功能的程序实现:利用KeiluVision4来编写和编译代码KeiluVision4的图标如图3所示图3KeiluVision4编写AT89C52设计数据采集和数据传输的控制程序/*---------------读取AD模数转换的值,有返回值------------*/unsignedcharReadADC(unsignedcharChl){unsignedcharData;Start();//写入芯片地址开始定时初始化t0_num++串口波特率及初始化通过I2C总线协议读取PCF8591的数据返回主程序t0_num=0串口发送读取的数据Flag_time=1重装定时初值Flag_time=0NYSend(AddWr);Ack();Send(0x40|Chl);//写入选择的通道,本程序只用单端输入,差分部分需要自行添加//Chl的值分别为0、1、2、3,分别代表1-4通道Ack();Start();Send(AddRd);//读入地址Ack();Data=Read();//读数据Scl=0;NoAck();Stop();returnData;//返回值}数据采集:调用ADtemp=ReadADC(0);//采集数据传输:SBUF=ADtemp;//传输利用STC_ISP_V480来烧写目标代码STC_ISP_V480的图标如图4所示图4STC_ISP_V480利用LABVIEW8.5界面来处理和显示上位机数据①基于LABVIEW设计PC机从USB口读取数据的通讯程序先安装NI-VISA图5visa420fullViOpen,打开并指定VISAresourcename的设备的连接。ViProperty,VISA设备的属性子节点,可以设置端点或传输方式。ViWrite,向VISAresourcename指定的设备写入数据。ViRead,从VISAresourcename指定的设备读出数据。ViClose,结束设备读写并关闭与指定设备的连接。LabVIEW串口初始化:在LabVIEW中找到VISA放于程序框图中,在VISA需要初始化的接线口处右键配置其串口、波特率、奇偶校验、数据比特、停止位。最后状态如图6所示数据采集:在LabVIEW中找到Instr放于VISA后面,用于数据采集,Instr的特点是,有多少数据就能采集多少数据,没有就不采集。Instr如图7所示图6LabVIEW串口初始化图7数据采集②基于LABVIEW设计数据处理和分析显示程序,计算每分钟脉搏次数,如图8所示图8在此循环程序中实现了数据处理。数据采集后直接可以出来脉搏波形,并且经过计算处理得出脉搏次数并在前面板显示,最后的循环程序是为了让脉搏次数在正常范围内显示正常,低于或高于正常范围显示异常。四.附(硬件电路图,实物图,实验结果等)电路图基于STC89C52和PL2303设计RS232转USB的转换电路,如图9所示。图9利用HK-2000B脉搏传感器和8位AD/DA转换器PCF8951设计人体脉搏信号的模拟量采集和转换电路,如图10所示。图10实物图图11在实物图中,接线方式如图11所示,我用的单片机开发板是自己买的STC89C52单片机,接线图的原理和要求是一样的,PCF8591和HK-2000B脉搏传感器是实训中大家共用的。程序图图12程序图中如图12所示:大方框左边的是LabVIEW串口初始化,大方框内是一个While大循环;小方框左边是数据采集和计时,上方时数组模块;在小方框内,上方是数据缓冲区,左边是数据接收处理和脉搏波形,中间是单品测量信号,右边是脉搏次数的判断和测试结果与脉搏次数显示,测试结果显示正常和异常。前面板图13前面板如图13所示:左边是LabVIEW串口初始化在前面板上显示的COM端口、波特率、奇偶校验、数据比特、停止位,中间是脉搏波形显示;波形下方是我的班级、姓名、学号;右边是脉搏次数、测试结果的显示,及接收缓冲区的缓存字节。无脉搏(选择合适的COM端口)图14HK-2000B脉搏传感器其技术指标如下:电源电压:5~6VDC压力量程:-50~+300mmHg灵敏度:2000uV/mmHg灵敏度温度系数:1×10-4/℃精度:0.5%重复性:0.5%迟滞:0.5%过载:100倍由HK-2000B脉搏传感器的灵敏度:2000uV/mmHg,灵敏度温度系数:1×10-4/℃,精度:0.5%,显而易见,当无脉搏测量时,由于空气的震动等原因,脉搏波形并不是一条纯粹的直线,而是一条有些波动的直线,且波动幅值很小,脉搏波形如图14所示。正常(选择合适的COM端口)图15正常测量脉搏如图15所示,有测量的脉搏波形可知,脉搏波形整齐并且幅值在180--200的范围内波动。测量的脉搏次数是79,并且测试结果显示正常,下方显示出了接收缓冲区,缓冲的字节正常。