便携式血氧仪采用无创伤的血氧检测方法,通过光电信号检测人体手指内动脉血的周期变化特征,从而计算出动脉血氧饱和度(其外形如图所示)。若便携式血氧仪以S3C2410芯片为核心,并外加其他功能电路来进行设计,其基本功能描述如下: a、利用动脉血液中血红蛋白和还

admin2021-06-09  47

问题 便携式血氧仪采用无创伤的血氧检测方法,通过光电信号检测人体手指内动脉血的周期变化特征,从而计算出动脉血氧饱和度(其外形如图所示)。若便携式血氧仪以S3C2410芯片为核心,并外加其他功能电路来进行设计,其基本功能描述如下:

a、利用动脉血液中血红蛋白和还原血红蛋白对红光或红外光吸收率的不同,采用光电电路来无创伤检测动脉血氧饱和度,并检测脉率。
b、若动脉血氧饱和度低于90%,需进行声光报警,声光报警的频率与脉搏的频率一致。
c、便携式血氧仪中能保存1个月中所检测的动脉血氧饱和度、脉率等参数,保存参数时需要同时保存相关的检测时间,并可通过按键“→”和按键“←”来查看。
d、采用普通单色液晶LCD作为显示器,显示动脉血氧饱和度、脉率等参数。
根据上述功能要求的描述,请完善下面的叙述(程序)和回答有关的问题。(完善程序或回答问题所需的寄存器格式见题后的附录)。
(1)在便携式血氧仪的硬件平台设计时,除了需要设计最小系统所需的时钟电路、复位电路等外,还必须设计光电信号采集电路来采集动脉血对红光或红外光的反射。现选用一个波长660nm的红光LED和一个波长910nm的红外光LED作为光源,其阳极接电源正极,且由GPE15引脚和GPE14引脚分别加同相驱动电路后控制相关LED的阴极使其发光。那么,GPE15或GPE14输出【81】电平时,其控制的LED发光。在相关驱动程序中,初始化GPE15或GPE14引脚功能的语句可以是:
rGPECON=((rGPECON|0x50000000)& 【82】);// rGPECON是端口E的控制寄存器
只控制波长910nm的红外光LED亮(GPE14引脚控制)的语句可以是:
rGPEDAT = rGPEDAT &【83】;//rGPEDAT是端口E的数据寄存器。
只控制波长660nm的红光LED灭(GPE15引脚控制)的语句可以是:
rGPEDAT = rGPEDAT |【84】
(2)硬件平台设计时,还需设计一个光敏电路来接收动脉血对红光或红外光的反射光,将光信号转换成电流。经过放大的光电流信号,必须经过【85】转换电路,变为数字信号后,才可以输入CPU进行处理。由于脉搏波的能量主要分布在0.5~5Hz范围,因此,对脉搏波信号的采样频率至少应该为【86】Hz,所得到的数字脉搏波信号才不至于失真。
(3)为了满足声光报警的频率(即报警LED闪烁频率及蜂鸣器“嘀…嘀…”鸣叫频率)与脉搏频率一致,设计时选用Timer1部件来产生一个时间间隔,该时间间隔为脉搏波周期的1/2。若检测出脉搏波频率为2Hz,系统主频参数PCLK为264MHz,分割器值选择为16,预分频器值选择为99,那么,Timer1部件产生的时间间隔应为 【87】ms,初始化函数可以设计如下,请补充完善。(注:下面程序中所用的参数请用十六进制表示)
void Timer1Int(void)
{
//设置定时器配置寄存器0(TCFG0)
rTCFG0=【88】;//dead zone=0, Timer1预分频器值设99
//设置定时器配置寄存器1(TCFG1)
rTCFG1=【89】;//工作在中断方式,分割器值为16
//设置计数常数
rTCNTB1= 0xA122;
//设置控制寄存器TCON
rTCON=【90】;//仅更新TCNTB1和TCMPB1
rTCON=【91】;//仅Timer1启动
}
(4)在保存所检测的动脉血氧饱和度、脉率等参数时,需同时保存检测时间。检测时间通过读取S3C2410芯片内部的【92】部件来获得实时的日期及时间。在相关驱动程序中,可以用下面一段语句来初始化该部件。
void R_init(void)
{
//初始化相关寄存器,rRTCCON是控制寄存器变量。
rRTCCON = rRTCCON|【93】;//设置使能该部件的控制位
rRTCALM =【94】;//报警功能(即闹钟)全部禁止
rRTCRST =0x00;
rTICNT =【95】;//时间间隔设置为1s
rRTCCON =(rRTCCON&【96】);//设置不使能该部件的控制位
…… //省略了其他语句
}
(5)设计按键“→”和按键“←”的电路时,选择GPE8、GPE9来分别连接。若按键按下时,对应的GPIO引脚将为“0”,否则为“1”。那么,在相关驱动程序中,可以用语句:rGPECON= rGPECON &【97】来初始化GPE8、GPE9为输入,并可以用下面一段语句来判断是哪个命令按键被唯一按下。
temp = rGPEDAT & 0x0300;//temp是一个8位二进制变量,rGPEDAT是端口E的数据寄存器
switch(temp)
{ case【98】://判断是否“→”按键被唯一按下,“→”键连接到GPE8
……//省略了其他语句
case【99】: //判断是否“←”按键被唯一按下,“←”键连接到GPE9
……//省略了其他语句
}
设计单色LCD显示屏的接口电路时,采用S3C2410芯片的GPE0~GPE7连接到LCD模块的8位数据线D0~D7上,用来传输显示信息。在相关驱动程序中,可以用下面语句来初始化GPE0~GPE7为输出:
rGPECON = ((rGPECON|0x00005555) &【100】)
说明:下面是试题解答时需要用到的寄存器格式及存着说明。
1)端口E控制寄存器(GPECON)的格式

2)TCFG0寄存器的格式

3)TCFG1寄存器的格式

通过TCFG0、TCFG1的设置,可以确定预分频器值和分割器值,最终通过下面公式定时器计数时钟频率。
定时器计数时钟频率=PCLK/(预分频器值+1)/(分割器值)
预分频器值的范围=0~255
分割器值的取值范围=2,4,8,16
4)TCON寄存器的格式

5)RTCCON寄存器的格式

6)TICNT寄存器的格式

选项

答案(1)【81】低 0【82】0x5FFFFFFF【83】0xBFFF【84】0x8000 (2) 【85】模/数(A/D)【86】10 (3) 【87】250【88】0x00000063【89】0x00000030【90】0x00000200【91】0x00000100 (4) 【92】RTC【93】0x01【94】0x00【95】0xFF【96】0xF (5) 【97】0xFFF0FFFF【98】0x0200【99】0x0100【100】0xFFFF5555

解析 (1)外接LED发光管,有共阳极接法和共阴极接法两种。当采用共阳极接法时,相应的输出口输出低电平时,对应的二极管被点亮。驱动程序即是给相应的控制寄存器赋值。GPE15或GPE14作为输出口,相应的置0,即0x5FFFFFFF。控制LED亮,则相应端口置0:控制LED灭则相应端口置1。
(2)将模拟信号转变为数字信号需要模/数(A/D)转换电路;根据香农采样定理,采样周期不得低于信号的1/2,故采样频率应该至少是信号最高频率的2倍。
(3) 脉搏周期为0.5s,故时间间隔为0.25s即250ms;定时器计数脉冲周期=1/(PCLK/(预分频值+1)/分频系数),则根据计算,可得寄存器0 的端口值为0x63,寄存器1的端口值为0x30:控制寄存器设置参照寄存器格式,对相应位进行赋值。
(4) 系统日期和时间可通过读取芯片内部的实时时钟部件来获得;设置使能控制位即对寄存器相应位赋值1,即0x01;闹钟全禁止,则全赋值0,即0x00;时间间隔设置参照寄存器格式,为0xFF;若设置为不使能,则相应位置0,即0xFE。
(5) 键盘和显示屏等外设是GPIO口的典型应用,注意接线方式和输出口的高低电平,并用来对相应的控制寄存器对应的位进行赋值。对GPE8、GPE9端口初始化为输入,对相应位置0,即0xFFF0FFFF;对GPE8、GPE9端口分别赋值置1,则分别是0x0200,0x0100;初始化GPE0~GPE7八个端口为输出,则置1,即0xFFFF5555。
转载请注明原文地址:https://kaotiyun.com/show/8P0Z777K
0

最新回复(0)