基于MSP430F435的國(guó)內(nèi)血糖儀
目前市場(chǎng)上的血糖儀種類繁多,結(jié)構(gòu)外形各異,價(jià)格和精度也大相徑庭;且價(jià)格和精度難以兼得。原因在于沒(méi)有找到一款合適的微處理器。另外,出于屏幕尺寸的限制,界面普遍采用英文字符顯示,這給中國(guó)病人帶來(lái)一定的困惑。
隨著電子技術(shù)的發(fā)展,微處理器功能日益增強(qiáng),價(jià)格日趨降低。有必要選出一款功能強(qiáng)大而價(jià)格便宜的微處理器來(lái)重新設(shè)計(jì)血糖儀。本系統(tǒng)選用的MSP430系列微處理器使上述設(shè)想成為可能。
原理
血糖儀是根據(jù)電生物化學(xué)原理——施加一定電壓于經(jīng)酶反應(yīng)后的血液產(chǎn)生的電流會(huì)隨著血液中的血糖濃度的增加而增加——設(shè)計(jì)的。通過(guò)精確測(cè)量出這些微弱電流,并根據(jù)電流值和血糖濃度的關(guān)系,反算出相應(yīng)的濃度。所以,確定這個(gè)關(guān)系是問(wèn)題的核心。但其關(guān)系復(fù)雜,受多方面因素影響。電壓強(qiáng)度、所使用的試條以及檢測(cè)的血液量都會(huì)對(duì)其產(chǎn)生影響。理論上需要在所有濃度點(diǎn)上大量實(shí)驗(yàn)才能確定最終的關(guān)系。在實(shí)際操作中,只需在選擇若干重要濃度點(diǎn)做大量實(shí)驗(yàn),并確定其與電流值之間的關(guān)系。而相鄰濃度點(diǎn)之間用簡(jiǎn)單的線性關(guān)系取代。圖1是本設(shè)計(jì)總結(jié)出一定量電壓下的關(guān)系曲線。
系統(tǒng)硬件設(shè)計(jì)
根據(jù)血糖儀功能的實(shí)際需求,結(jié)合MSP430系列單片機(jī)特點(diǎn),采用型號(hào)為MSP430F435的單片機(jī)作為控制核心,其它模塊還有電流檢測(cè)、按鍵輸入和電源、顯示、揚(yáng)聲器及串口通信等。如圖1所示。
圖1 系統(tǒng)組成
MSP430F435單片機(jī)
本系統(tǒng)選用的單片機(jī)MSP430F435具有16Kb Flash存儲(chǔ)器、512B RAM、多達(dá)160段LCD驅(qū)動(dòng)器、8通道/12位ADC及大量的I/O端口等,完全滿足本血糖儀的各項(xiàng)功能需求。
圖2 微處理器的端口設(shè)置
主要端口設(shè)置如圖2所示。其中COM0~COM3、S16~S39、R03~R33用于實(shí)現(xiàn)LCD顯示; Port74和Port75用于串行通信;Port79~Port81為按鍵的輸入端;Port76和Port77分別為運(yùn)算放大器和RS-232芯片提供供電電壓。Port78連接蜂鳴器;Port2和Port3為ADC輸入;Port7參考電壓輸出;XOUT和XIN連接32KHz的晶振,這是系統(tǒng)的時(shí)鐘源。
LCD顯示
MSP430F435具有液晶驅(qū)動(dòng)功能,最大能支持160段LCD,并且具有功耗低等特點(diǎn)。本系統(tǒng)采用中文界面的LCD顯示,這也是本款血糖儀的一大特點(diǎn)。此LCD有96碼段,內(nèi)容豐富、功能強(qiáng)大。極大地方便了國(guó)內(nèi)病人的使用。
血糖檢測(cè)
從原理中已經(jīng)知道,測(cè)量血糖時(shí)需要在相應(yīng)的電極上施加一定的電壓,而電壓的穩(wěn)定性將直接影響測(cè)量結(jié)果,因此,考慮從相對(duì)穩(wěn)定的參考電壓得到,而不是直接從供電電源中得到。
MSP430單片機(jī)A/D采樣的是電壓值,而被檢測(cè)的是微量的電流值;因而也需要將電流值放大并轉(zhuǎn)換成相應(yīng)的電壓值。采用如圖3所示的電路就能實(shí)現(xiàn)這一要求。其中,電阻R用于放大。此外,過(guò)少的血液量也將造成結(jié)果偏差;所以有必要設(shè)計(jì)一個(gè)用于檢測(cè)血液是否足量的簡(jiǎn)單電路。而此電路完全可以用與圖3相同的電路來(lái)代替。因此采用兩個(gè)這樣的電路就可以實(shí)現(xiàn)血糖測(cè)量。
圖3 放大電路
其它模塊
本系統(tǒng)的供電電壓為3V,采用兩塊電池。其中一塊是主供電源;另一塊為備用,以便設(shè)備在換電池時(shí)仍能正常工作。
按鍵采用三個(gè),分別是左鍵、右鍵和OK鍵;OK鍵主要用于開(kāi)、關(guān)機(jī)和確認(rèn)等,左鍵用于數(shù)字減或選項(xiàng)左移等,而右鍵則與左鍵相反。
由于血糖儀中存有大量的測(cè)量結(jié)果,因此有必要增加串口通信功能,將這些結(jié)果上傳到PC作進(jìn)一步處理。而單片機(jī)本身就具有串行通信接口,只需將TTL電平轉(zhuǎn)化為RS-232電平即可;這里采用SP3232芯片來(lái)實(shí)現(xiàn)這一功能。SP3232芯片所需的供電電壓低,適合便攜式設(shè)備應(yīng)用。其外圍電路的連接簡(jiǎn)單,僅需幾個(gè)0.1uF的電容即可。
系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件采用C語(yǔ)言編寫(xiě)。其主程序框架如圖4所示。
圖4 主程序框圖
對(duì)于便攜式設(shè)備,電池壽命至關(guān)重要;設(shè)計(jì)時(shí)應(yīng)盡量降低功耗,使系統(tǒng)盡可能長(zhǎng)時(shí)間停留在低功耗狀態(tài)。因此,考慮設(shè)備在適當(dāng)?shù)臅r(shí)候自動(dòng)關(guān)機(jī)。這里采用了一個(gè)定時(shí)器。當(dāng)定時(shí)器大于0時(shí),系統(tǒng)處于開(kāi)機(jī)狀態(tài);當(dāng)定時(shí)器倒數(shù)到0時(shí),系統(tǒng)自動(dòng)關(guān)機(jī)。這個(gè)定時(shí)器是由單片機(jī)中的BasICTimer實(shí)現(xiàn)的。通過(guò)軟件對(duì)Basic Timer控制寄存器進(jìn)行設(shè)置,將信號(hào)源設(shè)為輔助時(shí)鐘,大小為32KHz,并進(jìn)行256分頻,再對(duì)中斷定時(shí)間隔控制位進(jìn)行設(shè)置,使得中斷每秒進(jìn)行一次,并且每次到來(lái)時(shí)都對(duì)定時(shí)器減1,這樣就實(shí)現(xiàn)了定時(shí)器每秒減1的功能。具體操作是這樣:開(kāi)機(jī)時(shí),對(duì)定時(shí)器初始化一個(gè)大于0的值,比如30,并且在每按一次有效鍵時(shí),系統(tǒng)重新初始化這個(gè)值。因此,當(dāng)沒(méi)有按任何有效鍵時(shí),30秒后就會(huì)自動(dòng)關(guān)機(jī),從而實(shí)現(xiàn)省電目的。
系統(tǒng)也具有實(shí)時(shí)時(shí)鐘功能,它的實(shí)現(xiàn)方式與上述的定時(shí)器類似。只是將“每秒減1”改為“每秒加1”;具體操作:每次中斷時(shí)都對(duì)秒變量進(jìn)行加1,當(dāng)秒變量的值變?yōu)?0時(shí),就對(duì)分鐘變量加1,而秒變量又重新從0開(kāi)始計(jì)數(shù);同樣,當(dāng)分鐘變量累加到60時(shí),就對(duì)小時(shí)變量加一,而自身又從0開(kāi)始計(jì)數(shù)。依次類推,就可以實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘和日期功能。
為滿足個(gè)性化需要,還增加了時(shí)鐘和單位設(shè)置、平均值和溫度顯示等功能。這里就不再贅述了。下面主要介紹一下測(cè)量模塊。首先,初始化各個(gè)端口以及ADC寄存器;然后等待滴血。當(dāng)檢測(cè)到足量血時(shí),斷電并等待若干秒,使之與試條上的酶充分反應(yīng)。隨后加電并在一秒后迅速讀取。圖5是與本血糖儀配套使用的試條在不同濃度的血糖與酶反應(yīng)若干秒后再加電產(chǎn)生的電流的變化曲線。由圖不難看出,加電后一秒曲線就較為平穩(wěn),這也是本設(shè)計(jì)采用“加電一秒”后即可讀取的原因。
計(jì)算公式
這部分無(wú)疑是本設(shè)計(jì)的關(guān)鍵。表1是使用本設(shè)計(jì)的樣機(jī)測(cè)得的部分?jǐn)?shù)據(jù)。由表中的數(shù)據(jù)不難看出,血糖儀和血糖試條的測(cè)量重復(fù)性較好——CV<3%,遠(yuǎn)遠(yuǎn)高于國(guó)家標(biāo)準(zhǔn)<7.5%的要求。
表1 部分實(shí)驗(yàn)數(shù)據(jù)
濃度(mg/dl)
電流(uA) 50 100 200 300 400
1 3.003 6.752 13.101 16.861 19.836
2 3.028 6.678 12.368 17.130 19.621
3 2.918 6.800 13.272 16.764 20.366
4 2.893 6.910 13.028 17.179 20.622
5 3.064 7.081 13.614 17.574 20.341
6 2.881 7.106 13.211 17.264 20.268
7 3.075 6.703 12.905 17.628 19.645
8 2.905 6.849 13.150 17.029 20.158
9 2.991 7.130 13.233 17.081 20.024
10 2.901 7.240 12.964 16.838 20.952
均值 2.9659 6.9249 13.0846 17.1348 20.1833
均方差 0.0746 0.2001 0.3200 0.2924 0.4218
CV(%) 2.5153 2.8896 2.4456 1.7065 2.0898
通過(guò)對(duì)數(shù)據(jù)進(jìn)行三次曲線擬合,就可以得到血糖值和電流值之間的關(guān)系曲線圖。圖6是原始數(shù)據(jù)分段曲線和擬合曲線的對(duì)比圖。容易看出兩條曲線很吻合;因此在實(shí)際操作中可以用一個(gè)公式代替分段函數(shù)。這里的曲線公式為:
其中,X是電流值,單位uA,Y是對(duì)應(yīng)的血糖值,單位為mg/dl。在實(shí)際驗(yàn)證過(guò)程中,上述公式具有良好的精度。
圖5 數(shù)據(jù)分段曲線和擬合曲線的對(duì)比圖
結(jié)語(yǔ)
此款血糖儀采用MSP430F435作為其核心控制單元,它具有12位A/D轉(zhuǎn)換;采樣精度達(dá)到1/4096。除了基本功能外,系統(tǒng)還增加了鬧鈴提示和串口通信功能,使用戶不僅可以定時(shí)測(cè)量,而且還可以通過(guò)串口將測(cè)量結(jié)果保存到PC,再通過(guò)相應(yīng)的軟件,對(duì)數(shù)據(jù)作進(jìn)一步處理。本文總結(jié)的公式經(jīng)臨床證明具有良好的精度。此外,中文字符界面也極大地方便了用戶使用。