C8051F021在远程诊断与急救支援系统中的应用
用方式)、总线接口、电压比较器、温度传感器等部件,比常规51单片机有更多的定时计数器、中断、数字I/O接口。片内还配置了标准的JTAG接口(IEEEll49.1)。在上位机软件的支持下,通过串行的JTAC接口可直接对安装在最终应用系统上的单片机进行非侵入式、不占用片内资源、全速在线系统的调试,无需另配编程器及仿真器,是目前功能最强大、性能价格比最好的单片机之一[4]。
1.2各模块与微控制器通信的实现
1.2.1测温部分
采用DSl8B20温度传感器构成测温系统。DSl8B20是美国DALLAS公司生产的单线数字温度传感器,它可把温度信号直接转换成串行数字信号供微控制器处理。DSl8B20数字温度计能提供9位温度读数,通过单线接口与C8051F021的I/O口P1.0进行双向通信。读写及温度变换的功率来自于数据线而不需额外的电源。
1.2.2心电部分
心电信号经过前置放大和第二级放大后送入C8051F021自带的A/D转换器进行采样。
C8051F021片内集成了两个多通道ADC子系统(每个子系统包括一个可编程增益放大器和一个模拟多路选择器)。选用ADC0将心电信号进行A/D转换。ADC0子系统包括:一个9通道的可配置模拟多路开关(AMUX0)、一个可编程增益放大器(PGA0)和一个100ksps的12位分辨率的逐次逼进寄存器型ADC,ADC中还集成了跟踪保持电路和可编程窗口检测器。所有这些特性完全由CIP-51通过特殊功能寄存器控制。心电信号采样的设置如下:(1)置AMUX0配置寄器AMX0CF=0x00;使AIN0~AIN7为独立的单端输入。(2)置AMUX0通道选择寄存器AMX0SL=0x00;选择AIN0为ADC0的模拟输入,即采集的心电信号从AIN0模拟通道输入C8051F021。(3)置ADC0配置寄存器ADC0CF=0x48;使ACD0采样/保持放大器获取输入的模拟信号的周期数为1/10个系统时钟,内部放大器增益为1。(4)置ADC0控制寄存器ADC0CN.0=0;使ADC0H和ADC0L寄存器数据右对齐;ADC0CN.7=1;ADC处于活动状态,并准备转换数据。(5)置EIE2.1=1;ADC0转换中断允许。
图4
完成ADC0相应的寄存器设置后,采用定时器3设置心电采样时间间隔,心电的采样频率设为360Hz。当定时器3溢出中断时,启动ADC0开始转换。通过ADC0控制寄存器ADC0CN.5,判断转换是否结束。转换结束后,采样结果自动存放在ADC0H的低4位和ADC0L中。读取这12位心电数据并通过自适应算法抑制心电信号中的基线漂移,获得稳定的心电信号。
1.2.3血压模块
血压模块与微控制器之间采用高速串行的通信方式,血压模块的工作状态、测量结果通过两个功能引脚输出,供微控制器处理。这两个功能引脚连接到C8051F021的两个I/O口,其中输出的串行时钟线连到I/O口P1.2,输出的串行数据线连到I/O口P1.3。若在一个时钟周期内数据线上出现一个电压由高到低的跳变,则开始接收数据。
输出的数据格式如图2所示。开始处的电压跳变如图3所示。开始表示在此后的16个时钟信号内将传送16位的数据,其高4位的数据表示数据类型,不同的编码表示不同的数据,如舒张压、收缩压和心率分别有各自的代码,如表1所示 《C8051F021在远程诊断与急救支援系统中的应用(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/178306.html
1.2各模块与微控制器通信的实现
1.2.1测温部分
采用DSl8B20温度传感器构成测温系统。DSl8B20是美国DALLAS公司生产的单线数字温度传感器,它可把温度信号直接转换成串行数字信号供微控制器处理。DSl8B20数字温度计能提供9位温度读数,通过单线接口与C8051F021的I/O口P1.0进行双向通信。读写及温度变换的功率来自于数据线而不需额外的电源。
1.2.2心电部分
心电信号经过前置放大和第二级放大后送入C8051F021自带的A/D转换器进行采样。
C8051F021片内集成了两个多通道ADC子系统(每个子系统包括一个可编程增益放大器和一个模拟多路选择器)。选用ADC0将心电信号进行A/D转换。ADC0子系统包括:一个9通道的可配置模拟多路开关(AMUX0)、一个可编程增益放大器(PGA0)和一个100ksps的12位分辨率的逐次逼进寄存器型ADC,ADC中还集成了跟踪保持电路和可编程窗口检测器。所有这些特性完全由CIP-51通过特殊功能寄存器控制。心电信号采样的设置如下:(1)置AMUX0配置寄器AMX0CF=0x00;使AIN0~AIN7为独立的单端输入。(2)置AMUX0通道选择寄存器AMX0SL=0x00;选择AIN0为ADC0的模拟输入,即采集的心电信号从AIN0模拟通道输入C8051F021。(3)置ADC0配置寄存器ADC0CF=0x48;使ACD0采样/保持放大器获取输入的模拟信号的周期数为1/10个系统时钟,内部放大器增益为1。(4)置ADC0控制寄存器ADC0CN.0=0;使ADC0H和ADC0L寄存器数据右对齐;ADC0CN.7=1;ADC处于活动状态,并准备转换数据。(5)置EIE2.1=1;ADC0转换中断允许。
图4
完成ADC0相应的寄存器设置后,采用定时器3设置心电采样时间间隔,心电的采样频率设为360Hz。当定时器3溢出中断时,启动ADC0开始转换。通过ADC0控制寄存器ADC0CN.5,判断转换是否结束。转换结束后,采样结果自动存放在ADC0H的低4位和ADC0L中。读取这12位心电数据并通过自适应算法抑制心电信号中的基线漂移,获得稳定的心电信号。
1.2.3血压模块
血压模块与微控制器之间采用高速串行的通信方式,血压模块的工作状态、测量结果通过两个功能引脚输出,供微控制器处理。这两个功能引脚连接到C8051F021的两个I/O口,其中输出的串行时钟线连到I/O口P1.2,输出的串行数据线连到I/O口P1.3。若在一个时钟周期内数据线上出现一个电压由高到低的跳变,则开始接收数据。
输出的数据格式如图2所示。开始处的电压跳变如图3所示。开始表示在此后的16个时钟信号内将传送16位的数据,其高4位的数据表示数据类型,不同的编码表示不同的数据,如舒张压、收缩压和心率分别有各自的代码,如表1所示 《C8051F021在远程诊断与急救支援系统中的应用(第2页)》