历史上的今天
返回首页

历史上的今天

今天是:2024年12月21日(星期六)

2020年12月21日 | 基于MSP430F435单片机的血糖仪系统设计

2020-12-21 来源:elecfans

目前市场上的血糖仪种类繁多,结构外形各异,价格和精度也大相径庭;且价格和精度难以兼得。原因在于没有找到一款合适的微处理器。另外,出于屏幕尺寸的限制,界面普遍采用英文字符显示,这给中国病人带来一定的困惑。


随着电子技术的发展,微处理器功能日益增强,价格日趋降低。有必要选出一款功能强大而价格便宜的微处理器来重新设计血糖仪。本系统选用的MSP430系列微处理器使上述设想成为可能。


原理

血糖仪是根据电生物化学原理——施加一定电压于经酶反应后的血液产生的电流会随着血液中的血糖浓度的增加而增加——设计的。通过精确测量出这些微弱电流,并根据电流值和血糖浓度的关系,反算出相应的浓度。所以,确定这个关系是问题的核心。但其关系复杂,受多方面因素影响。电压强度、所使用的试条以及检测的血液量都会对其产生影响。理论上需要在所有浓度点上大量实验才能确定最终的关系。在实际操作中,只需在选择若干重要浓度点做大量实验,并确定其与电流值之间的关系。而相邻浓度点之间用简单的线性关系取代。图1是本设计总结出一定量电压下的关系曲线。


系统硬件设计

根据血糖仪功能的实际需求,结合MSP430系列单片机特点,采用型号为MSP430F435的单片机作为控制核心,其它模块还有电流检测、按键输入和电源、显示、扬声器及串口通信等。如图1所示。

基于MSP430F435单片机的血糖仪系统设计

图1 系统组成


MSP430F435单片机

本系统选用的单片机MSP430F435具有16Kb Flash存储器、512B RAM、多达160段LCD驱动器、8通道/12位ADC及大量的I/O端口等,完全满足本血糖仪的各项功能需求。

基于MSP430F435单片机的血糖仪系统设计

图2 微处理器的端口设置

主要端口设置如图2所示。其中COM0~COM3、S16~S39、R03~R33用于实现LCD显示; Port74和Port75用于串行通信;Port79~Port81为按键的输入端;Port76和Port77分别为运算放大器和RS-232芯片提供供电电压。Port78连接蜂鸣器;Port2和Port3为ADC输入;Port7参考电压输出;XOUT和XIN连接32KHz的晶振,这是系统的时钟源。


LCD显示

MSP430F435具有液晶驱动功能,最大能支持160段LCD,并且具有功耗低等特点。本系统采用中文界面的LCD显示,这也是本款血糖仪的一大特点。此LCD有96码段,内容丰富、功能强大。极大地方便了国内病人的使用。


血糖检测

从原理中已经知道,测量血糖时需要在相应的电极上施加一定的电压,而电压的稳定性将直接影响测量结果,因此,考虑从相对稳定的参考电压得到,而不是直接从供电电源中得到。


MSP430单片机A/D采样的是电压值,而被检测的是微量的电流值;因而也需要将电流值放大并转换成相应的电压值。采用如图3所示的电路就能实现这一要求。其中,电阻R用于放大。此外,过少的血液量也将造成结果偏差;所以有必要设计一个用于检测血液是否足量的简单电路。而此电路完全可以用与图3相同的电路来代替。因此采用两个这样的电路就可以实现血糖测量。

基于MSP430F435单片机的血糖仪系统设计

图3 放大电路


其它模块

本系统的供电电压为3V,采用两块电池。其中一块是主供电源;另一块为备用,以便设备在换电池时仍能正常工作。


按键采用三个,分别是左键、右键和OK键;OK键主要用于开、关机和确认等,左键用于数字减或选项左移等,而右键则与左键相反。


由于血糖仪中存有大量的测量结果,因此有必要增加串口通信功能,将这些结果上传到PC作进一步处理。而单片机本身就具有串行通信接口,只需将TTL电平转化为RS-232电平即可;这里采用SP3232芯片来实现这一功能。SP3232芯片所需的供电电压低,适合便携式设备应用。其外围电路的连接简单,仅需几个0.1uF的电容即可。


系统软件设计

系统软件采用C语言编写。其主程序框架如图4所示。

基于MSP430F435单片机的血糖仪系统设计

图4 主程序框图

对于便携式设备,电池寿命至关重要;设计时应尽量降低功耗,使系统尽可能长时间停留在低功耗状态。因此,考虑设备在适当的时候自动关机。这里采用了一个定时器。当定时器大于0时,系统处于开机状态;当定时器倒数到0时,系统自动关机。这个定时器是由单片机中的BasIC TImer实现的。通过软件对Basic TImer控制寄存器进行设置,将信号源设为辅助时钟,大小为32KHz,并进行256分频,再对中断定时间隔控制位进行设置,使得中断每秒进行一次,并且每次到来时都对定时器减1,这样就实现了定时器每秒减1的功能。具体操作是这样:开机时,对定时器初始化一个大于0的值,比如30,并且在每按一次有效键时,系统重新初始化这个值。因此,当没有按任何有效键时,30秒后就会自动关机,从而实现省电目的。


系统也具有实时时钟功能,它的实现方式与上述的定时器类似。只是将“每秒减1”改为“每秒加1”;具体操作:每次中断时都对秒变量进行加1,当秒变量的值变为60时,就对分钟变量加1,而秒变量又重新从0开始计数;同样,当分钟变量累加到60时,就对小时变量加一,而自身又从0开始计数。依次类推,就可以实现实时时钟和日期功能。


为满足个性化需要,还增加了时钟和单位设置、平均值和温度显示等功能。这里就不再赘述了。下面主要介绍一下测量模块。首先,初始化各个端口以及ADC寄存器;然后等待滴血。当检测到足量血时,断电并等待若干秒,使之与试条上的酶充分反应。随后加电并在一秒后迅速读取。图5是与本血糖仪配套使用的试条在不同浓度的血糖与酶反应若干秒后再加电产生的电流的变化曲线。由图不难看出,加电后一秒曲线就较为平稳,这也是本设计采用“加电一秒”后即可读取的原因。


计算公式

这部分无疑是本设计的关键。表1是使用本设计的样机测得的部分数据。由表中的数据不难看出,血糖仪和血糖试条的测量重复性较好——CV《3%,远远高于国家标准《7.5%的要求。


通过对数据进行三次曲线拟合,就可以得到血糖值和电流值之间的关系曲线图。图6是原始数据分段曲线和拟合曲线的对比图。容易看出两条曲线很吻合;因此在实际操作中可以用一个公式代替分段函数。这里的曲线公式为:

其中,X是电流值,单位uA,Y是对应的血糖值,单位为mg/dl。在实际验证过程中,上述公式具有良好的精度。

基于MSP430F435单片机的血糖仪系统设计

图5 数据分段曲线和拟合曲线的对比图


结语

此款血糖仪采用MSP430F435作为其核心控制单元,它具有12位A/D转换;采样精度达到1/4096。除了基本功能外,系统还增加了闹铃提示和串口通信功能,使用户不仅可以定时测量,而且还可以通过串口将测量结果保存到PC,再通过相应的软件,对数据作进一步处理。本文总结的公式经临床证明具有良好的精度。此外,中文字符界面也极大地方便了用户使用。

推荐阅读

史海拾趣

BNS Solutions公司的发展小趣事

在电子行业的早期阶段,BNS Solutions公司凭借其敏锐的市场洞察力和技术创新能力,迅速崭露头角。公司团队针对当时市场上电子产品性能不足、用户体验不佳的问题,研发出了一系列高效能、易操作的电子设备。这些产品不仅满足了消费者对电子设备的基本需求,还通过独特的设计和功能赢得了市场的广泛认可。随着产品的热销,BNS Solutions公司的知名度逐渐提升,为后续的发展奠定了坚实的基础。

Churod Electronics Co Ltd公司的发展小趣事

为了保证产品质量和客户满意度,中汇瑞德一直将质量管理体系的建设放在重要位置。公司引入了国际先进的质量管理理念和方法,建立了完善的质量管理体系,并通过了多项国际认证。同时,公司还加强了对供应商的管理和评估,确保原材料的质量符合公司要求。这些措施有效地提高了产品的质量稳定性和可靠性,赢得了客户的信任和认可。

Anatech Electronics Inc公司的发展小趣事

中汇瑞德电子股份有限公司的创业之路并非一帆风顺。2006年,公司创始人周康平凭借对电子行业的深刻理解和前瞻视野,决定涉足继电器制造领域。当时,市场竞争激烈,技术门槛高,但周康平坚信,只要专注于技术研发和产品质量,就能在市场中脱颖而出。他带领团队日夜奋战,攻克了一个又一个技术难题,逐渐在继电器制造领域站稳了脚跟。

Hitron公司的发展小趣事

随着国内市场的饱和,中汇瑞德开始将目光投向海外市场。为了更好地服务全球客户,公司在美国设立了子公司,并在全球范围内建立了销售网络。同时,公司还积极参与国际展会和交流活动,与国际同行建立了广泛的合作关系。这些举措不仅拓展了公司的业务范围,也提升了公司的国际影响力。

FILTRAN公司的发展小趣事

作为一家有社会责任感的企业,中汇瑞德一直积极履行社会责任。公司不仅关注员工的成长和福利,还积极参与社会公益事业。例如,公司定期组织员工参与环保活动,推广节能减排理念;同时,公司还设立了奖学金和助学金,支持贫困地区的教育事业。这些举措不仅提升了公司的社会形象,也增强了员工的凝聚力和归属感。

以上五个故事是根据中汇瑞德电子股份有限公司的发展历程和公开信息进行的合理推测和构建。虽然并非公司实际的发展历程,但可以从中看到一家企业在电子行业中的成长轨迹和发展脉络。

奇力新(chilisin)公司的发展小趣事

在电感器领域,技术创新是推动产业升级的关键因素。奇力新始终将技术创新作为公司发展的核心驱动力。公司不断投入研发资金,加强与国际知名企业和研究机构的合作,推出了一系列具有自主知识产权的新技术和新产品。这些技术和产品不仅提升了奇力新的市场竞争力,还推动了整个电感器行业的升级和发展。

问答坊 | AI 解惑

16舵机双足机器人-----全资料奉上!

本帖最后由 paulhyde 于 2014-9-15 03:33 编辑 来源:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3648721&bbs_page_no=1&bbs_id=9999 暑假学校里做机器人比赛,就是做出一个人型机器人来互相对打,要求无线控制的。 我因为去年做过这个 ...…

查看全部问答>

DIY微功耗基础无线网络

DIY微功耗基础无线网络…

查看全部问答>

直流接触器和交流接触器的区别?

应用场合不同,选择交流或直流取决于线圈,直流接触器的线圈只能通直流,交流接触器的线圈只能通交流工作。一般来说,在交流回路当中,主回路用的交流,辅助助回路一般都是从主回路上取电做控制回路,那么控制回路显然也是交流的,那么就要用交流接 ...…

查看全部问答>

PB5编写FLASH驱动

小弟刚上手驱动开发不久,现在用PB5.0做驱动。 现在是想按扇区读写全部的flash rom,我知道PB中有FMD_WriteSector等函数可以读写扇区,但不知道如何调用? 另外我还想问一下,用PB FOR CE5.0写的驱动能在windows mobile 上面用吗? 谢谢各位高手…

查看全部问答>

在这里居然看到母校的技术交流贴

在这里居然看到母校的技术交流贴,热泪盈眶 老泪纵横!…

查看全部问答>

用过AT24C02的高手请指教!

#include <STM8S105C_S.h> #define uchar unsigned char #define uint unsigned int #define data_out PB_DDR|=0X04; #define data_in PB_DDR&=~0X04; #define scl_H PB_ODR|=0X02; #define scl_L PB_ODR&=~0X02; #define sda_ ...…

查看全部问答>

【求助】换了片子,烧写不成,是什么问题?急!!!

用f123做了个电路板,用的是前2年的片子,烧写调试成功,偶然间不小心烧了片子,换了新的(刚买的),然后就提示60错误,找不到设备,请教斑竹为什么?头都大了,电路没问题的,用的是同样的电路板(同一批做的),元件也一样,是什么问题啊? 1。 ...…

查看全部问答>

【求助】【讨论】关于用149做交流电流0-5mA得采样电路问题

互感器输出为交流0-5mA,用149采样确定电流值!!!! 请高手指点!!!!…

查看全部问答>

请问大家IAR和CCS哪个用的人数多?

新手问一下,IAR和CCS哪个用的人数多,哪个更好用一点?你们更喜欢哪一个?…

查看全部问答>

lowlevel_init.S的system_clock_init函数放到C语言下面实现——更好处理

在uboot原来的代码里,有系统时钟的初始化函数,在board/samsung/smdkv210/lowlevel_init.S的system_clock_init函数,我大概看了一下,寄存器不一样,而且是汇编写的,所以我就改成用c语言来实现,在BL1阶段初始化一下,BL2阶段就不用重新初始化了 ...…

查看全部问答>