脉搏传感器及其信 号处理学院 专业班级 组员 电子与信息工程学院 09 级自动化 谢文嘉 092467 张明豪 092444 王康 092435 宗文豪 092457 指导教师 苏永清
设计报告: 一·设计任务: 设计一个脉搏传感器 预期效果: 1.可以通过示波器看到准确的人体脉搏信号 2.通过后续电路可以计算脉搏信号的周期,频率任务分析: 1 人体脉搏信号是一种微弱的生物信号,想要将其出换为电 量就必须要依靠传感器。 2 脉搏信号相对而言十分微弱所以选用的传感器必须得具有 较高的灵敏度。 3 采集到模拟信号后必须要依靠比较器或斯密特触发器将其 转换为方波给后续电路计数。 系统可以表示为如下框图:
二·设计方案:收到经费和采购条件的制约我们最终选定 HK—2000B 压电式传感器作为我们的传感 器, 后级的放大电路采用仪表放大器作为放大电路。 之后采用更为简便的电压比较器作为信 号的转换电路将模拟脉冲转换为一个方波。最后一级使用89C51单片机来完成计数功能。其优点在于输入电阻高(接近于无穷大),可以抵消共模信号并且差模放大倍数高适合传感 所输出的微小信号2.2设计说明:(1)传感器选择:表一(HK-2000B 传感器组要性能指标) 压力量程: 灵敏度 灵敏度温度系数 精度 重复性 迟滞 过载 工作电压 -50~+300mmHg 2000uV/mmHg 1×10-4/℃ 0.5% 0.5% 0.5% 100倍 4~5V
在本次设计中有两种传感器能够符合我们的要求, 分别是压电传感器和光电传感器。 但 是经过小组讨论后觉得压电式传感器不仅能够满足我们的设计要求而且更为经济实用, 为此 我们最终选择 HK-2000B 型压电式传感器。七组要参数如表一所示。本传感器系采用 PVDF 压电薄膜制成,由公式q x d x Fx再查阅手册得传感器内部有一电荷放大电路, 可以将得到的电荷转换成为电压输出由图 一可以推出其传递函数 为:UotUUo C C q Cq Ct fx tx f图一(电荷放大器原理图)
图二(HK-2000B 实物图)(2)仪表放大电路 仪表放大电路的设计与实现 由脉搏传感器得出的电压信号虽然经过了一级电荷放大电路,但是信号仍为微小信号, 幅值在 200mV 左右,因此我们需要将信号放大。考虑到我们的脉搏信号是叠加在一个幅值 较大的正弦噪声上的,噪声是共模信号,所以要求电路有较大的共模抑制比,因此需要一个 差模放大电路,利用共模抑制比将信号从噪声中分离出来。综合比较电路的可实现性,我们 选择仪表放大电路。 仪表放大器电路的构成及原理图三 表放大器电路的典型结构如图三所示。它主要由两级差分放大器电路构成。其中,运放 , 为同相差分输入方式,同相输入可以大幅度提高电路的输入阻抗,减小电路对微弱输入信号的衰减; 差分输入可以使电路只对差模信号放大, 而对共模输入信号只起跟随作用, 使得送到后级的差模信号与共模信号的幅值之比(即共模抑制比)得到提高。这样在以运放 为核心部件组成的差分放大电路中,在共模抑制比要求不变情况下,可明显降低对电阻
,的精度匹配要求,从而使仪表放大器电路比简单的差分放大电路具有更 , , 的条件下,图 1.1.1 电路的增益为:好的共模抑制能力。在。由公式可见,电路增益的调节可以通过改变阻值实现。仪表放大器电路设计 我们选择使用 LM324 集成四运放来实现我们的仪表放大电路。电路图如图四图四 经测试发现 LM324 的输入阻抗并不是理论上的无穷大,因此我们在输入端加上了 680K 的电阻以增大输入电压,修改后的电路如图五。图五
(3)电压比较器 本次设计采用 OP07作为电压比较器的运放使用,其原理图如图七所示,每当脉搏周期 到来之时比较器的负端就会受到一个高于参考电压的输入, 由于工作在开环状态所以其输出 约为 OP07的工作电压约为11.6V。而参考电压即比较器的阈值有一个可调电阻分压得到,通 过调节电阻我们可以得到最宽的脉冲(前提是避免收到杂波的干扰)。电路所的波形可以参 见图六。 但是为了能够给出后级电路一个0~5V 的电压,我们采用一对 LED 对管和1K 的电阻接 地从 LED 两端取得电压,这样就可以将得到的电压钳在正负2V。同时这对 LED 还能够起 到提示效果。图六(比较器输出电压波形图)
图七(电压比较器原理图)(5)单片机程序设计 硬件电路介绍: 89C51 是 一 种 带 4K 字 节 闪 烁 可 编 程 可 擦 除 只 读 存 储 器 ( FPEROM—Falsh Programmable and Erasable Read Only Memory) 的低电压、 高性能 CMOS8 位微处理器, 俗称单片机。 我们首先给出-2V 电压接到信号输入 I/O 口的 GND 上这样我们从 LED 两端得到的电压就 被抬至 0~4V 是合理的输入电压范围。然后利用单片机的计时器中断 T0 以及外部中断 INT0 实现对脉搏脉冲的实时计数。(图八)程序流程图:源代码及其说明: #include 件 #define uint unsigned int #define uchar unsigned char uchar temp,aa,bai,shi,ge; 变量定义// 头 文//
uchar code table[]={0Xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xe6}; void display(uchar bai,uchar shi,uchar ge); 显示函数 void delay(uint z) 函数 void init(); 化 void main() { init(); while(1) 行 { ; } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } //延时函数定义 // // 延 时 // 初 始 //主函数 //初始化子程序 //主函数始终运void display(uchar bai,uchar shi,uchar ge) //显示函数定义, 实现数码管位选, 并给 定对应 { 管显示的信号,延时函数实现动态显示 P0=table[bai]; P2=0xfb; delay(5); P0=table[shi]; P2=0xfd; delay(5); P0=table[ge]; P2=0xfe; //给段选 /给位选 //延时 5 毫秒} void init()
{ aa=0; temp=0; TMOD=0x01; IT0=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; EX0=1; ET0=1; TR0=1; display(0,0,0); } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa+=1; if(aa==400) { aa=0; temp=0; } if(temp==100) { temp=0; } bai=temp/100; shi=temp%100/10; ge=temp%10; display(bai,shi,ge); } void cnt(void) interrupt 0 { delay(300); temp++; //定时器中断函数 //重新装值//设置 T0 为计数器 1 模式 //外部中断为下降沿敏感模式 //设置计时器每 50 毫秒中断一次 //开启总中断允许 //INT0 中断允许 //T0 中断允许 //T0 开启//实现二十秒重新从零显示//最大显示 100//提取个十百位数值//数码管显示 //每来一个下降沿计数增加一次四·设计体会及建议
1.通过这次学习对电子元器件的参数和价格等有了一定的认识。能够自行合理选择符合要求并且合适的元件使用。
2.本次设计很好的复习了书本上的知识但是似乎很难得到很多细节上的指导在一定程度上提升了自己的自学能力和查找资料的能力。
3.这次的学习的确很好的锻炼了团队合作的能力,互相考虑对方的实际难处与问题并且能一起收集资料解决问题对刚分到新专业的同学来说是一次很不错的经验和熟悉彼此的机会。
4.充分刚绝到一个合理的时间安排和计划对于设计工作是很重要的,否则拖到后面容易产生各种问题和冲突。
脉搏传感器及其信 号处理学院 专业班级 组员 电子与信息工程学院 09 级自动化 谢文嘉 092467 张明豪 092444 王康 092435 宗文豪 092457 指导教师 苏永清
设计报告: 一·设计任务: 设计一个脉搏传感器 预期效果: 1.可以通过示波器看到准确的人体脉搏信号 2.通过后续电路可以计算脉搏信号的周期,频率任务分析: 1 人体脉搏信号是一种微弱的生物信号,想要将其出换为电 量就必须要依靠传感器。 2 脉搏信号相对而言十分微弱所以选用的传感器必须得具有 较高的灵敏度。 3 采集到模拟信号后必须要依靠比较器或斯密特触发器将其 转换为方波给后续电路计数。 系统可以表示为如下框图:
二·设计方案:收到经费和采购条件的制约我们最终选定 HK—2000B 压电式传感器作为我们的传感 器, 后级的放大电路采用仪表放大器作为放大电路。 之后采用更为简便的电压比较器作为信 号的转换电路将模拟脉冲转换为一个方波。最后一级使用89C51单片机来完成计数功能。其优点在于输入电阻高(接近于无穷大),可以抵消共模信号并且差模放大倍数高适合传感 所输出的微小信号2.2设计说明:(1)传感器选择:表一(HK-2000B 传感器组要性能指标) 压力量程: 灵敏度 灵敏度温度系数 精度 重复性 迟滞 过载 工作电压 -50~+300mmHg 2000uV/mmHg 1×10-4/℃ 0.5% 0.5% 0.5% 100倍 4~5V
在本次设计中有两种传感器能够符合我们的要求, 分别是压电传感器和光电传感器。 但 是经过小组讨论后觉得压电式传感器不仅能够满足我们的设计要求而且更为经济实用, 为此 我们最终选择 HK-2000B 型压电式传感器。七组要参数如表一所示。本传感器系采用 PVDF 压电薄膜制成,由公式q x d x Fx再查阅手册得传感器内部有一电荷放大电路, 可以将得到的电荷转换成为电压输出由图 一可以推出其传递函数 为:UotUUo C C q Cq Ct fx tx f图一(电荷放大器原理图)
图二(HK-2000B 实物图)(2)仪表放大电路 仪表放大电路的设计与实现 由脉搏传感器得出的电压信号虽然经过了一级电荷放大电路,但是信号仍为微小信号, 幅值在 200mV 左右,因此我们需要将信号放大。考虑到我们的脉搏信号是叠加在一个幅值 较大的正弦噪声上的,噪声是共模信号,所以要求电路有较大的共模抑制比,因此需要一个 差模放大电路,利用共模抑制比将信号从噪声中分离出来。综合比较电路的可实现性,我们 选择仪表放大电路。 仪表放大器电路的构成及原理图三 表放大器电路的典型结构如图三所示。它主要由两级差分放大器电路构成。其中,运放 , 为同相差分输入方式,同相输入可以大幅度提高电路的输入阻抗,减小电路对微弱输入信号的衰减; 差分输入可以使电路只对差模信号放大, 而对共模输入信号只起跟随作用, 使得送到后级的差模信号与共模信号的幅值之比(即共模抑制比)得到提高。这样在以运放 为核心部件组成的差分放大电路中,在共模抑制比要求不变情况下,可明显降低对电阻
,的精度匹配要求,从而使仪表放大器电路比简单的差分放大电路具有更 , , 的条件下,图 1.1.1 电路的增益为:好的共模抑制能力。在。由公式可见,电路增益的调节可以通过改变阻值实现。仪表放大器电路设计 我们选择使用 LM324 集成四运放来实现我们的仪表放大电路。电路图如图四图四 经测试发现 LM324 的输入阻抗并不是理论上的无穷大,因此我们在输入端加上了 680K 的电阻以增大输入电压,修改后的电路如图五。图五
(3)电压比较器 本次设计采用 OP07作为电压比较器的运放使用,其原理图如图七所示,每当脉搏周期 到来之时比较器的负端就会受到一个高于参考电压的输入, 由于工作在开环状态所以其输出 约为 OP07的工作电压约为11.6V。而参考电压即比较器的阈值有一个可调电阻分压得到,通 过调节电阻我们可以得到最宽的脉冲(前提是避免收到杂波的干扰)。电路所的波形可以参 见图六。 但是为了能够给出后级电路一个0~5V 的电压,我们采用一对 LED 对管和1K 的电阻接 地从 LED 两端取得电压,这样就可以将得到的电压钳在正负2V。同时这对 LED 还能够起 到提示效果。图六(比较器输出电压波形图)
图七(电压比较器原理图)(5)单片机程序设计 硬件电路介绍: 89C51 是 一 种 带 4K 字 节 闪 烁 可 编 程 可 擦 除 只 读 存 储 器 ( FPEROM—Falsh Programmable and Erasable Read Only Memory) 的低电压、 高性能 CMOS8 位微处理器, 俗称单片机。 我们首先给出-2V 电压接到信号输入 I/O 口的 GND 上这样我们从 LED 两端得到的电压就 被抬至 0~4V 是合理的输入电压范围。然后利用单片机的计时器中断 T0 以及外部中断 INT0 实现对脉搏脉冲的实时计数。(图八)程序流程图:源代码及其说明: #include 件 #define uint unsigned int #define uchar unsigned char uchar temp,aa,bai,shi,ge; 变量定义// 头 文//
uchar code table[]={0Xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xe6}; void display(uchar bai,uchar shi,uchar ge); 显示函数 void delay(uint z) 函数 void init(); 化 void main() { init(); while(1) 行 { ; } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } //延时函数定义 // // 延 时 // 初 始 //主函数 //初始化子程序 //主函数始终运void display(uchar bai,uchar shi,uchar ge) //显示函数定义, 实现数码管位选, 并给 定对应 { 管显示的信号,延时函数实现动态显示 P0=table[bai]; P2=0xfb; delay(5); P0=table[shi]; P2=0xfd; delay(5); P0=table[ge]; P2=0xfe; //给段选 /给位选 //延时 5 毫秒} void init()
{ aa=0; temp=0; TMOD=0x01; IT0=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; EX0=1; ET0=1; TR0=1; display(0,0,0); } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa+=1; if(aa==400) { aa=0; temp=0; } if(temp==100) { temp=0; } bai=temp/100; shi=temp%100/10; ge=temp%10; display(bai,shi,ge); } void cnt(void) interrupt 0 { delay(300); temp++; //定时器中断函数 //重新装值//设置 T0 为计数器 1 模式 //外部中断为下降沿敏感模式 //设置计时器每 50 毫秒中断一次 //开启总中断允许 //INT0 中断允许 //T0 中断允许 //T0 开启//实现二十秒重新从零显示//最大显示 100//提取个十百位数值//数码管显示 //每来一个下降沿计数增加一次四·设计体会及建议
1.通过这次学习对电子元器件的参数和价格等有了一定的认识。能够自行合理选择符合要求并且合适的元件使用。
2.本次设计很好的复习了书本上的知识但是似乎很难得到很多细节上的指导在一定程度上提升了自己的自学能力和查找资料的能力。
3.这次的学习的确很好的锻炼了团队合作的能力,互相考虑对方的实际难处与问题并且能一起收集资料解决问题对刚分到新专业的同学来说是一次很不错的经验和熟悉彼此的机会。
4.充分刚绝到一个合理的时间安排和计划对于设计工作是很重要的,否则拖到后面容易产生各种问题和冲突。