第3章 系统硬件电路设计
3.1 主芯片控制单元
3.1.1 STC12C5A6OS2单片机的基本特点和性能参数
STC12C5A60S2是STC生产的单时钟/机器周期(1T)的单片机,是一种高速度、低功耗、超强抗干扰能力的新一代8051单片机,完全兼容传统的指令代码,但其速度是8051单片机的8-12倍。其内部集成MAX810专用的复位电路,2路PWM,8路高速10位A/D转换,针对强干扰,电机控制场合。
(1) 增强型8051 CPU,单时钟/机器周期,指令代码完全兼容传统8051;
(2) 工作电压:5.5V- 3.3V(5V单片机);
(3) 工作频率范围:0 - 35MHz,相当于普通8051的0~420MHz;
(4) 用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节;
(5) 片上集成1280字节RAM;
(6) 通用I/O口(36/40/44)个,经过复位工作后为:弱上拉/准双向口(普通8051传统I/O口)可设置成四种模式:推挽/强上拉,弱上拉/准双向口,只为输入/高阻,开漏每个I/O口的驱动能力都可以达到20mA,但是整个芯片的最大电流不能超过55mA;
(7) ISP(在系统中可编程)/IAP(在应用中可编程),不需要专用的编程器,也不需要专用的仿真器直接可以通过对应的串口(P3.0/P3.1)直接把用户程序下载完成,数秒钟就可以完成一片操作;
(8) 有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM);
(9) 看门狗电路;
(10) 内部集成MAX810专用的复位电路(其外部晶体在12M以下时,复位脚可以直接通过1K电阻到地)
(11) 外部掉电的检测电路:在P4.6口中有一个低压门槛的比较器5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%;
(12) 时钟源:是外部高精度的晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载程序时,可以选择使用内部R/C振荡器还是使用外部晶体/时钟常温下内部R/C振荡器频率均为:5.0V单片机为:11MHz~15.5MHz 3.3V单片机为:8MHz~12MHz精度要求的不高时,我们可以选择使用内部的时钟,但因为有制造误差和温度漂移,所以要以实际测试的数据为准;
(13) 共有4个16位的定时器同时两个与传统8051单片机相兼的定时器/计数器,16位定时器T0和T1,忽略定时器2,但有独立波特率发生器做串行通讯的波特率发生器再加上2路PCA模块可再实现2个16位定时器;
(14) 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟;
(15) 外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,Power Down模式可由外部中断唤醒,INT0/P3.2, INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3);
(16) PWM(2路)/PCA(可编程计数器阵列2路)也可用来当2路D/A使用---也可用来再实现2个定时器也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持);
(17) A/D转换,10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次);
(18) 通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口;
(19) STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3);
(20) 工作温度范围:-40 - +85℃(工业级) / 0 - 75℃(商业级);
(21) 封装:PDIP-40,LQFP-44,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。
3.1.2 主芯片的管脚说明与A/D转换器的结构
(1)管脚说明
P0.0~P0.7 P0:P0口既可以作为输入/输出口,也可以作为相应的地址/数据复用的总线使用。当P0口作为输入/输出口时,P0是一个8位准双向端口,其内部存有较弱的上拉电阻,所以不需要再外接上拉电阻。当P0作为存储地址/数据复用的总线使用时,就成为了低8位的地址线A0~A7,数据线D0~D7
P1.0/ADC0/CLKOUT2 标准IO口、ADC输入通道0、独立波特率发生器的时钟输出;
P1.1/ADC1;
P1.2/ADC2/ECI/RxD2 标准IO口、ADC输入通道2、PCA计数器的外部脉冲输入脚,第二串口数据接收端;
P1.3/ADC3/CCP0/TxD2 外部信号捕获,高速脉冲输出及脉宽调制输出、第二串口数据发送端;
P1.5/ADC5/MOSI SPI同步串行接口的主出从入(主器件的输入和从器件的输出);
P1.6/ADC7/SCLK SPI同步串行接口的主入从出;
P2.0~P2.7 P2口内部有上拉电阻,既可作为输入输出口(8位准双向口),也可作为高8位地址总线使用;
P3.0/RxD 标准IO口、串口1数据接收端;
P3.1/INT0非 外部中断0,下降沿中断或低电平中断;
P3.3/INT1;
P3.4/T0/INT非/CLKOUT0 定时器计数器0外部输入、定时器0下降沿中断、定时计数器0的时钟输出。
(2)A/D转换器的结构
STC12C5A60AD/S2系列带A/D转换的单片机的A/D转换口在P1口,有8路10位高速A/D转换器,其转换速度可以达到250KHz(25万次/秒)。8路电压输入型A/D,可以做电池电压检测、按键扫描、频谱检测和温度检测等。通电后复位P1口为较弱的上拉型IO口,用户可以利用软件设置将8路中的其中任何一路设置为A/D转换,不需要作为A/D使用的端口的可继续作为IO端口使用。
单片机ADC由比较器、多路开关、逐次比较寄存器、10位DAC、转换结果寄存器以及ADC_CONTER构成。
该单片机的ADC是逐次比较型ADC。主次比较型ADC由一个相对简单的比较器和D/A转换器相互构成的,逐次通过比较逻辑方法,从最高位的(MSB)开始,有一定顺序地对内置D/A转换器输出量与每一个输入电压值进行比较,通过多次试验和比较,使转换之后所得到的数字量逐次逼近输入的模拟量对应值。通过逐次比较可以知道A/D型转换器具有速度高,功耗低等优点。需作为AD使用的口先将P1ASF特殊功能寄存器中的相应位置为‘1’,将相应的口设置为模拟功能。
图3.1 主控芯片STC12C5A60S2的电路原理图
3.2 心电数据采集模块的设计
在整个系统中心电数据采集电路是非常重要的组成部分,采集数据的质量电路的抗干扰能力、放大特性以及其稳定性直接关系到系统中。因此有很苛刻的要求针对心电放大器的设计。数据采集电路的基本框图如图3 .2 所示。
图3.2 数据采集电路的基本框图
整个心电的数据采集电路主要由A/D 采样电路、电平提升电路、滤波电路、后级放大电路、前置放大电路和信号提取电极组成的。当中,由于采用了内部己集成了ADC 模块的CPU,所以设计省去了A/D 采样电路。根据心电采集信号的特点,所设计的心电放大电路的一般要求要满足以下条件:
(1) 频率响应部分:心电信号的频谱范围一般为0.05~100缸,中心的频率大约为1KHz 左右,而且其中含有的干扰信号工作频率为50Hz。因此所设计的电路中要有一个50Hz 陷波电路以及0.05 -100Hz 的带通滤波器的功能,抑制其它高频噪声,消除50Hz工作频率的干扰。
(2) 高增益模式:直接从人体体表提取的心电信号很微弱,一般大小只有0.05 -5mV, 因此为了对信号进行放大处理,必须提高采样频率的精度,其增益一般在600- 1000 之间。为了提高系统的共模抑制比,抑制电路的零点漂移,所以在设计放大电路时应该采用分级放大来实现。
(3) 高输入阻抗:一般信号源的阻抗相对都比较高,因此较低的输入的放大器阻抗会大大减弱输入端的心电信号,而且还可能伴有失真的危险,进而非常不利于功能的检测。所以,必须采用输入阻抗比较高的放大电路。
(4) 低噪声、低漂移特性:为了获得相对较高信噪比的输出频率信号,就一定要采用低漂移的放大器、实现低噪声和实现低噪声的元器件来设计此电路。
(5) 高共模抑制比:为了实现避免心电信号的输出被泯灭在50Hz、电极的极化电压或者其他的干扰电压之下,一般要求共模抑制比(CM1在R)要达到80bd以上才可以。
3.2.1 前置放大电路设计
人体体表心电信号取自直接由电极控制,用来摄取人体内各种生物电现象的金属导体为电极的功能,也称作为引导控制电极。其阻抗特性,稳定性、极化特性等对测量的精确度影响是非常大的。因此心电的提取通过选择性能良好的电极也是非常关键的。目前银-氯化银电极是作为国内外供临床广泛使用的电极,该电极的半电池电动势比普通电极稳定得多,其极化电位很小,因此就选用这种电极提取心电信号是本系统的不二选择。此外,应该先用肥皂和水彻底洗净病人皮肤,因为皮肤是不良导体,因此要使得皮肤和电极的接触相对良好,病人的皮肤清洁处理也是十分重要的部分。
因为人体存在着较大的共模抑制电压,所以人体的活动,会大幅漂移基线的标准,这就要求应该设计具有适当的增益、高输入阻抗和较高的共模抑制比的前置放大电路。前置放大电路的电路图如图3.3 所示。其中,来自人体的右手、左手和右腿的信号由RA 、LA和RL分别代表。构成的抑制射频接口由最前端的R6、R7 、C2控制,实际上可以把该部分看作是一个低通网络,放大器输入脚上的高频信号应该滤除掉,此外,导联线的共模电容失衡通过C2 有利的改善,高频信号的共模抑制比被大大提高了。采用运算放大器LM324 构成的电压跟随器,是为提高输入的阻抗、进而获得更多的心电频率信号,使监测工作更加的完善。
图3.3 前置放大电路的原理图
图3.3中右腿驱动电路由R1、R2、R3和C1以及运算放大器U1A构成的,其目的提取出的平均交流共模电压主要是通过电阻网络来实现的,通过放大器反向放大处理,为了抑制人体上较大的50Hz共模干扰频率,需要提供一个电压参考点并附加到右腿电极上,通过线性加减来实现该功能。为了使人体电位基本上可以保持在零点位置,实质上我们可以将该右腿驱动电路并联负反馈电路看成以人体为相加点的共模电压,只需要运放的开环增益足够大。此设计采用了ADI公司生产的AD8553仪用放大器器件,该放大器的共模抑制比最高可以达到130dB,最大输入阻抗可达到10GΩ,此外还具有低漂移、低噪声等比较重要的特性,进入前置放大电路的仪用放大器部分进行第一级放大在信号提取之后。除此之外,它还带有能便端,在不使用时关闭后,电流的大小仅为4uA,从而能大大降低功能的消耗。所以从总体的各个方面来说,我们电路设计的要求在此放大器上完全能够实现。还可以通过设置电阻Rg( 由R4、R5 组成)来实现整体的电路的增益。
3.2.2 电平的提升电路设计
因为心电信号多数都是双极性的(有负电压的存在),而且A/D转换的参考电压值大约为0-3V,所以我们必须先把心电频率信号的基线抬高之后再进行A/D转换的工作,电平的提升电路原理图如图3.4 所示。REF3120基准电压源是一个高精密的电压源,它的功能损耗相对较低,可以稳定的产生2.0V 的电压。在后面接的电压跟随电路是由一个运放电路构成的,是为了增强它的驱动电压能力。此外由于个体的差异所以形成的心电图曲线特征不一定相同,如基线、幅值等都会不同,排除这种情况即便是同一个个体在不同位置不同时间所测得的频率信号也不一定相同, 所以本设计的电平提升采用了可谓的方式设计,以便更加灵活地控制信号的电平提升程度。如图3.4中的R13为可调动的变位器结构,电平提升的效果可调控制可以根据使用者自己的实际情况来实现。最终,进入单片机的A/D采样通道进行信号采集过程需要经过以上处理过的心电信号来实现。
图3.4 电平提升的电路图
通过实际的检测过程之后,电路的共模抑制比对应达到了98 .4dB,同时信号的质量也达到了相应心电采集数据的要求。除此之外,其干扰信号仍然还是通过A/D转换采样后得到的心电信号来实现的,因此系统可以进行软件滤波处理来针对所得到的数字信号,也是为了以便于得到更好质量的信号,这一点我们将会在后续的章节中讲到。
3.3 HMS 红外传感器测体温
3.3.1 测体温原理框图
本研究选择Xilinx公司的XC2C256-7VQ100CES的CPLD芯片作为系统核心的器件,主要看中了其非易失性、低成本、即用性、可重复编程、单芯片的特点。我们可以选择功耗低、体积小的CPLD芯片来实现测体温电路的设计,我们可以有效地降低所设计系统的体积大小和功能损耗需要满足系统功能的要求。所设计的测体温电路原理图如图3.5所示。
图3.5 测体温系统结构图
3.3.2 体温检测电路
人体体温的检测是体温检测系统来实现的, 其工作原理是通过红外传感器中输出电压通过热敏电阻来进行转换的。其电路图如图3.6所示。
图3.6 体温检测的电路图
通过传感器的热敏电阻和R1电阻之间的分压关系,我们可以把热敏电阻的电阻值变化转变为电压模式的输出,其关系如下:
V=2.5Rtd/Rtd+R14 (1)
3.3.3 热电偶电压输出的检测
因为热电偶电压输出值相对较小(只有mV 级),所以需要将其进行线性放大。对此,我们设计了一个性能比较高的同向放大电路(如图3.6所示),实现Vtp到Vtpamp之间的线形转化关系。它们之间的转化公式为:
Vtpamp=Vtp(1+R20/R24)+2.5R28/R21+R28 (2)
热敏电阻的转换电压和红外传感器的热电阻输出的电压是通过放大电路之后送到ADC转换器进行全面的模数转换,经过模数转换结束后再由CPLD对相应的数字电压量进行实行采集,通过处理后可以分别得到热电偶两端的温度值和冷端的温度值,两值相加后就可以求出人体体温的真实温度了,最后把结果送到液晶显示器上,这样就可以非常方便非常容易的随时随地知道自身的体温值。