因为自己本身是做人体生理信号采集与处理的,目前也主要研究近红外光电容积脉搏波信号,对于脉搏波信号的采集,本人也做了很多电路。无意间看到 中微半导体公布了一款基于 8051 内核的 CMS8S6990 血氧仪方案,该芯片利用内置两路运算放大器对接收信号进行放大处理;利用内置 PWM+PGA 模拟 DAC 以驱动 H 桥三极管,利用内置 ADC 对光电信号进行采集,从而达到对接收信号值的精准调控,以帮助开发成员快速实现血氧监测。放眼一瞅,这个芯片明显就是给我设计的嘛,所以就申请一款打算好好研究研究,幸运的是,最终也成功申请到了一款 CMS8S6990 开发板,并意外获得了一个基于 CMS8S6990 的血氧指夹,因此,对于该开发板的第一篇评测文章我主要简单讲解基于 CMS8S6990 的血氧指夹方案。 1. 硬件系统 1.1 电源电路 电源采用了一键实现关机状态下短按开机,开机状态下长按关机、短按切换屏幕方向功能,利用单片机的两个 IO 检测按键状态和控制 MOS 管通断,让整个电路板结构更紧凑,实现了血氧指夹小型化要求。 1.2 发光管驱动电路 发光管驱动电路采用 H 桥方式实现 660nm 和 940nm 发光管的点亮切换,当 IR_1=1 , IR_2=0 时, R_LED 点亮, IR_LED 熄灭,当 IR_1=0 , IR_2=1 时, IR_LED 点亮, R_LED 熄灭。用芯片内部一路 PWM 波经过 RC 网络模拟 DAC 输出,经内部 PGA 放大后控制三极管基极电流,从而实现控制全桥通过电流,控制发光管亮度。 1.3 信号放大 光电二极管输出的光电流信号通过芯片内部运算放大器 1 进行 I-V 转换,将电流信号转换为电压信号,然后通过芯片内部运算放大器 0 进行二级放大。放大之后的信号输入到芯片内部进行 ADC 采集。信号放大电路同时用芯片内部一路 PWM 波经 RC 网络模拟 DAC 调整运算放大器 1 同向输入端电压,以调整信号放大电路的动态范围。 1.4 控制系统 控制系统就是评测的主角 CMS8S6990 ,只需一颗去耦电容,很简洁。 1.5 显示接口 显示用的也是很经典的 0.96 寸的 OLED ,中规中矩。 2. 软件结构 上图是《 CMS8S6990 血氧仪方案 V1.2 》说明里给的软件流程图,比较笼统,具体实现细节还是需要看代码。 3. 部分示例代码错误 在学习示例代码过程中,遇到以下错误,特贴出来以便求证。 3.1 编译错误 解压工程,编译,提示 error c231:’_putchar’redefinition 。查询解决方案无果,只能以注释以下代码解决。 3.2 库函数错误 1 配置运算放大器偏置寄存器时,将 0xaa 误写入控制寄存器 1 中,应将原语句修改为: OPnADJE=OffsetAdj ( n=0 , 1 )。 3.3 库函数错误 2 第 80 行注释错误,应将 PGACON2 改为 PGACON3 。 3.4 库函数错误 3 第 147 行应将 PGA_PAGACON1_PGAADJ_Msk 修改为 PGA_PAGACON3_PGAADJ_Msk 。 3.5 库函数错误 4 函数名应修改为 void PGA_EnableOutPut(void) 。 3.6 库函数错误 5 第 20 行注释应修改为 TIMER3 为 1ms 中断一次。 4. 总结 针对市场需求,中微股份推出了内置运算放大器,系统时钟最高可达 48MHz 主控方案的 CMS8S6990 血氧仪。该血氧仪利用内置的两路运放对接收信号进行放大处理,利用内置的 PWM 模拟 DAC 经由 PGA 提供驱动能力后对三极管进行精准电流控制,再加上中微独创的第一级运放偏置调节算法,极大的适应不同人群,该方案可以帮助开发人员快速实现血氧监测。 CMS8S6990 对各种放大器的高效集成,有效降低了产品电路设计难度,扩大了该芯片的应用市场,但是附带的库函数还是有些瑕疵,不过一个 8051 内核的单片机对应用厂家来说开发难度还是较容易地,更何况中微还提供了许多基本外设的例程,使开发者开发起来更是得心应手了。