廉小親,沈 卓,張曉力,段振剛
(北京工商大學 計算機與信息工程學院,北京100048)
血凝分析儀已成為臨床醫(yī)療檢測中的一種常用設(shè)備,其血凝過程是指可溶于水的纖維蛋白原轉(zhuǎn)化為不能溶解于水的固態(tài)纖維蛋白的生化過程,簡單地說,該過程是一系列凝血因子連鎖性酶反應的結(jié)果[1]。整個血凝過程中包含著大量有關(guān)被檢者的病理信息,許多疾病的發(fā)生均與體內(nèi)出血指標和血栓指標有著密切關(guān)系,因此,對凝血過程的檢測、對測量結(jié)果進行準確有效的數(shù)據(jù)分析具有重大醫(yī)學價值。由于其開發(fā)周期長、科技含量高、市場準入規(guī)則復雜,目前該類產(chǎn)品的研制與銷售仍被國外大型醫(yī)療器械企業(yè)所壟斷。本文所研究的基于MC9S12XS128單片機的血凝過程參數(shù)檢測裝置可在極大降低儀器的制造成本的同時,提升檢測的準確性,為血凝儀這種高端儀器的國產(chǎn)化打下良好基礎(chǔ)。
一套全自動的血凝分析儀由上位機系統(tǒng)、通訊轉(zhuǎn)換接口裝置及下位機系統(tǒng)三大部分組成。上位機系統(tǒng)作為下位機系統(tǒng)的管理者,通過預先制定好的通訊協(xié)議控制下位機的動作,比如光強采集、電機運動、溫度控制、數(shù)據(jù)傳輸?shù)?。通訊轉(zhuǎn)換接口裝置可將上位機的網(wǎng)口通訊協(xié)議轉(zhuǎn)換成下位機系統(tǒng)可讀的CAN 口通訊協(xié)議。系統(tǒng)組成如圖1 所示。此外,上位機還會將接收到的數(shù)據(jù)以文本格式進行存儲,方便后續(xù)對數(shù)據(jù)的處理,并依據(jù)檢測到的參數(shù)繪制成曲線,進行可視化顯示。下位機為本論文主要研究內(nèi)容,如圖1中虛線框部分所示,MC9S12XS128單片機作為控制中心協(xié)調(diào)各組成部分的有序工作。下位機部分主要包括抓手控制機構(gòu)、溫度控制機構(gòu)、樣本臂運動控制機構(gòu)、試劑臂運動控制機構(gòu)及兩個光學檢測單元[3]。本文研究的核心為兩個光學檢測單元,分別為散射光的檢測部分和透射光的檢測部分。最終以采集到的兩種光強度為基礎(chǔ),加以數(shù)據(jù)處理算法,計算出被測血樣的凝結(jié)時間和吸光率。
圖1 系統(tǒng)組成框架
圖2 MC9S12XS128最小系統(tǒng)
血凝儀的硬件電路主要包括單片機核心板、光學檢測單元、光電轉(zhuǎn)換及電機驅(qū)動電路。單片機核心板里裝載有各部分的控制程序及通訊協(xié)議,通過CAN 接口收發(fā)數(shù)據(jù);光學檢測單元里有光電轉(zhuǎn)換電路,該部分電路可以將光信號轉(zhuǎn)變成電信號加以利用。電機驅(qū)動電路可以直接控制抓手、樣本臂和試劑臂的動作,將待測樣本放置于光學檢測單元的合適位置。
1.2.1 單片機核心板設(shè)計
本系統(tǒng)采用Freescale公司的MC9S12XS128單片機作為控制核心。該款單片機總線速度高達40 MHz,具備128 KB的 程 序FLASH 和8KB 的 數(shù) 據(jù)FLASH 存 儲 空 間[4]具有速度快、功能強、成本低、能耗低等明顯優(yōu)勢。此外其特有的8通道的PWM 輸出口,易于實現(xiàn)電機控制,及速度達3μs轉(zhuǎn)換時間的12位精度ADC 模塊。MC9S12XS128單片機內(nèi)部包含可升級控制器局域網(wǎng)絡(luò) (MSCAN),全面支持CAN2.0協(xié)議。由于芯片僅帶協(xié)議層控制器,因此使用時需要通過一個收發(fā)器提供物理層驅(qū)動,這里選取型號為PCA82C250的CAN 總線收發(fā)器。該芯片的CANH 和CANL引腳外接一個5Ω 的電流進行限流,從而保護芯片,使其免受過流沖擊。MC9S12XS128單片機最小系統(tǒng)電路圖如圖2所示。
1.2.2 光學檢測單元設(shè)計
光學檢測單元包括散射光檢測和透射光檢測兩部分。其中散射光檢測裝置又由反應杯托盤和金屬支架兩大塊構(gòu)成,用黑色塑料制成的托盤具有極好的遮光性,可在測試過程中有效地防止外部干擾光源進入檢測裝置;用不銹鋼材料制成的金屬支架具有較好的導熱性,可在支撐托盤的同時起到熱傳導的作用。以此同時,安裝在支架與托盤接觸的底部的加熱和測溫裝置,可幫助實現(xiàn)樣本的孵育。托盤上有若干檢測孔,離檢測孔底端4 mm 處開有直徑為3 mm 的通孔,通孔處裝有光電傳感器。進行血凝過程檢測時,應將點光源固定放置在托盤的兩側(cè),形成對射狀態(tài),光電傳感器與點光源軸線垂直安裝即可。透射光檢測部分構(gòu)造與散射光檢測部分類似,此處不再贅述。
1.2.3 光電轉(zhuǎn)換電路設(shè)計
散射光和透射光的檢測電路大致相同。本系統(tǒng)采用型號為S2386-44K,具有高靈敏度、低暗電流等特點的硅光電二極管作為光電傳感器。該傳感器輸出信號為電流量,其輸出的反向電流與入射光強呈線性關(guān)系。光電轉(zhuǎn)換電路的第一級須將其輸入的電流信號轉(zhuǎn)變成電壓信號,第二級不但需要將轉(zhuǎn)變得到的微弱的電壓信號進行放大,還需要對放大后的信號進行濾波處理。本系統(tǒng)在兩級轉(zhuǎn)換電路之后,又加入了一級電壓跟隨電路,以提高輸入阻抗、降低輸出阻抗。
光電轉(zhuǎn)換部分的電路如圖3所示,電路選取的低偏置電流運放的型號為MCP602。第一級電路中,使用一個2兆歐的電阻實現(xiàn)電流-電壓轉(zhuǎn)換;兩級之間加入了一個低通濾波電路,濾除高頻噪聲的干擾;第二級為同向比例放大電路,通過選取合適的電阻值可以保證光電轉(zhuǎn)換電路的輸出量處于單片機的最佳AD采集范圍內(nèi);第三級選取型號為AD8542的軌對軌運放,實現(xiàn)電壓緩沖。
圖3 光電轉(zhuǎn)換電路
1.2.4 電機驅(qū)動電路設(shè)計
血凝儀所使用的電機為兩相單極步進電機,該款電機使用型號為SLA7078MR的驅(qū)動芯片即可直接驅(qū)動。此外,可通過型號為ADG608的電子開關(guān)芯片實現(xiàn)電機驅(qū)動芯片輸出功率的調(diào)節(jié),具體調(diào)節(jié)電路如下:將電子開關(guān)的輸出端接到驅(qū)動芯片的Ref/Sleep1端,通過單片機控制電子開關(guān)輸出參考電壓,進而控制電機的能耗和發(fā)熱量。通過控制電機驅(qū)動芯片M1、M2和M3這3個控制端可以設(shè)定細分模式,同時配合Clock端輸入脈沖即可控制電機的轉(zhuǎn)速;F/R 端則用來控制電機的正反轉(zhuǎn)。電機驅(qū)動電路的設(shè)計如圖4所示。
圖4 電機驅(qū)動電路
下位機軟件是指血凝儀中單片機核心板的軟件,該部分軟件主要實現(xiàn)光源工作狀態(tài)控制和故障檢測、電機運動系統(tǒng)控制以及血凝過程參數(shù)的采集和發(fā)送[5]。
血凝過程參數(shù)的采集包括采集散射光信號和透射光信號兩部分。本系統(tǒng)設(shè)定的采樣頻率fs在50~100 Hz之間。檢測過程中,單片機會不斷采集數(shù)據(jù),采用均值濾波算法處理后將這些數(shù)據(jù)存儲到緩沖區(qū)。數(shù)據(jù)的傳輸在定時器中斷服務(wù)子程序中進行,并通過定時器的配置,使得緩沖區(qū)中的數(shù)據(jù)以50Hz的頻率通過CAN 通訊方式發(fā)至上位機。下位機軟件流程如圖5所示。
圖5 下位機軟件流程
上位機的開發(fā)基于Visual Studio.NET 平臺,采用C#語言編寫,它是設(shè)備與用戶的連接的橋梁。針對上位機軟件包含功能較多、結(jié)構(gòu)較復雜的特點,可將每一個大功能模塊細分為多個子模塊,即基于模塊化開發(fā)。上位機軟件總體結(jié)構(gòu)如圖6所示。下文主要介紹血凝儀下位機軟件設(shè)計,上位機軟件設(shè)計部分不再贅述。
圖6 上位機軟件總體結(jié)構(gòu)
本系統(tǒng)將上下位機通訊協(xié)議的長度設(shè)置為單個CAN 總線數(shù)據(jù)包的長度,且每一個協(xié)議命令均為8字節(jié)指令,系統(tǒng)所制定的主要協(xié)議命令如表1所示。上位機發(fā)送自檢指令后,會等待下位機進行反饋。若下位機系統(tǒng)無故障,則下位機會往上位機發(fā)送自檢正常指令,否則會發(fā)送自檢錯誤指令至上位機。下位機采集數(shù)據(jù)所使用的AD 轉(zhuǎn)換器精度為12位,因此傳輸數(shù)據(jù)時需要分兩個字節(jié)完成。為了防止錯誤解析協(xié)議命令,將傳輸數(shù)據(jù)協(xié)議前6 字節(jié)固定為0xAA,命令的最后兩個字節(jié)為所要發(fā)送的AD 模塊采集到的值,如表1末行所示。
表1 上位機與下位機通訊協(xié)議
散射光信號處理采用百分比檢測法,其原理為:將開始檢測時采集到的散射光強ys定義為散射光最弱值,將檢測過程完成時采集到的ys定義為散射光最強值;分別找出檢測過程中出現(xiàn)散射光強ys為最弱時的時刻和散射光強ys最強時的時刻,兩個時間間隔即血液凝固時間。
實際應用中,考慮到采集數(shù)據(jù)可能存在的誤差,往往會預先設(shè)定一個比較閾值R1、R2及時間區(qū)間閾值N1、N2。若某個ys值比它后邊的第N1個值小R1,則找到起始時刻t1;若某個ys值比它前邊的第N2個值大R2,則找到終止時刻t2;利用t1和t2容易算出凝固時間tcoa,如式(1)所示
式中:Ts——單片機預先設(shè)定的采樣周期,單位為秒。
血液樣本的透射光強度與溶液濃度成反比,這里使用yt來表征透射光強度值,表示在t時刻樣本的相對透光強度值。定義樣本的吸光率為rab,其表達式如式 (2)所示,單位為相對透射光強度水平值/分鐘
該部分在實際應用過程中也會設(shè)定R1、R2、N1、N2這幾個比較閾值,涉及到的其余算法與3.1 節(jié)大致相同,不再贅述。接下來,可利用采集到的t1、t2這段時間內(nèi)的透射光強度值yt,通過最小二乘法擬合出一條曲線,即yt=kxt+b。最 后 計 算 出k 后,通 過 式 (3)即 可 求得rab的值
通過單片機AD 采樣過程存有干擾信號,采集到的數(shù)據(jù)具有不連續(xù)性,為了提高采樣信號信噪比,可采用數(shù)字低通濾波方法對采樣結(jié)果進行二次濾波。系統(tǒng)設(shè)計了有限長單位沖激響應濾波器 (finite impulse response,F(xiàn)IR)[6]。
理想的低通數(shù)字濾波器的傳遞函數(shù)如式 (4)所示
對式 (4)做離散傅立葉逆變換后得到單位樣值時域序列有
接著選取長度為N 的矩形窗函數(shù)進行設(shè)計,得到濾波器單位樣值響應如式 (6)所示,其Z 傳遞函數(shù)如式 (7)所示
令X(Z)為采樣值序列,對Y(Z)=H(Z)X(Z)取Z逆變換,得到濾波器差分方程如式 (8)所示
式中:bk——濾波器系數(shù),系統(tǒng)中bk取值如式 (9)所示
這里取N =7,fc=80Hz,可利用Matlab計算得到數(shù)字濾波器的差分方程如式 (10)所示
最終,血凝儀上位機利用式 (10)對下位機AD 采集到的數(shù)據(jù)進行處理,便可得到一平滑的輸出序列。
測試時選用德靈公司 (DADE BEHRING)的標準質(zhì)控血漿 (CiTrol coagulation control)和專門用于檢測血液凝固時間凝血活酶含鈣試劑 (Thromborel S)。
首先配置采樣頻率為50sps,采用散射法檢測血液凝固時間。使用血凝儀的電控系統(tǒng)完成樣品的混合后進行采集,每次采集600 個數(shù)據(jù),依據(jù)數(shù)據(jù)所繪得的曲線如圖7所示,其中上圖為使用Matlab繪制出未經(jīng)濾波的原始檢測曲線,下圖為使用濾波處理后得到的曲線。曲線縱坐標為光強的AD 值,橫坐標為采樣點數(shù)。
圖7 散射曲線
接著,按照同樣的系統(tǒng)配置和實驗步驟進行透射檢測,測得曲線如圖8所示。
圖8 透射曲線
在Matlab環(huán)境下,根據(jù)上述曲線的參數(shù)可以計算得到血液樣本的凝固時間為8.13s,同時該血樣的吸光率為17.0052相對光強度/分鐘。實際醫(yī)療檢測中,需要取多次實驗結(jié)果,然后求其平均值作為醫(yī)學診斷的最終根據(jù)。
系統(tǒng)上電后,運行上位機系統(tǒng)即可顯示軟件初始化界面,如圖9所示。點擊 “建立連接”,若系統(tǒng)正常則可進行參數(shù)檢測。測得的散射光凝結(jié)過程曲線如圖10所示,散射光曲線測得方法類似,此處不再贅述。
圖9 上位機軟件初始化界面
圖10 上位機散射光凝結(jié)過程曲線
通過對血凝儀血液凝固過程的研究和分析,制定出一套光學檢測方案,基于光信號處理算法,研制出以MC9S12XS128單片機為控制核心的血凝分析系統(tǒng)。系統(tǒng)設(shè)計的一套電控系統(tǒng)能夠?qū)崿F(xiàn)全自動取樣和檢測。同時,下位機將采集到的數(shù)據(jù)通過CAN 通訊接口傳輸至上位機,通過數(shù)字濾波算法處理后計算得到凝固時間和吸光率。測試結(jié)果表明,本系統(tǒng)具有開發(fā)成本低、采集精度高、穩(wěn)定性好等優(yōu)點,依據(jù)本方案測得的結(jié)果符合實際規(guī)律,滿足技術(shù)指標的要求。
[1]YUAN Yu.The design of the control part of automatic blood coagulation factor analyzer[D].Taiyuan:Taiyuan University of Technology,2010 (in Chinese). [原毓.全自動凝血因子分析儀控制部分的設(shè)計 [D].太原:太原理工大學,2010.]
[2]CHEN Yu,ZHONG Huixiu.Comparison of two methods on fibrinogen measurement used by CA1500automatic coagulation analyzer[J].Medical Information,2011,24 (8):3801-3803(in Chinese).[陳喻,鐘輝秀.CA1500全自動血凝儀測定纖維蛋白 原 兩 種 方 法 比 較 [J].醫(yī) 學 信 息,2011,24 (8):3801-3803.]
[3]DUAN Zhengang,HAN Minglu,LIAN Xiaoqin,et al.Software design and implementation of automatic coagulation analyzer based on C# [J].Computer Engineering and Design,2013,34 (4):1488-1492 (in Chinese). [段振剛,韓明璐,廉小親,等.基于C#的全自動血凝儀軟件設(shè)計與實現(xiàn) [J].計算機工程與設(shè)計,2013,34 (4):1488-1492.]
[4]YE Xiaojian,ZHANG Xiaoli,LIAN Xiaoqin,et al.A design of intelligent tracing car based on MC9S12XS128 [J].Science and Technology Innovation Herald,2013 (14):80-81 (in Chinese).[葉曉劍,張曉力,廉小親,等.基于MC9S12XS128單片機智能尋跡小車的設(shè)計 [J].科技創(chuàng)新導報,2013 (14):80-81.]
[5]KE Yan,LI Jie,KONG Xianglei,et al.Software design of host computer of multi-channel data acquisition system based on USB2.0 [J].Journal of Test and Measurement Technology,2010,24 (4):351-356 (in Chinese).[柯艷,李杰,孔祥雷,等.基于USB2.0的多路數(shù)據(jù)采集系統(tǒng)上位機軟件設(shè)計 [J].測試技術(shù)學報,2010,24 (4):351-356.]
[6]LI Lanying,WANG Zhichao,WANG Feng,et al.Design and simulation of FIR digital filter [J].Journal of Harbin University of Science and Technology,2013,18 (3):36-41(in Chinese).[李蘭英,王志超,王峰,等.FIR 數(shù)字濾波器設(shè)計與 仿 真 [J].哈 爾 濱 理 工 大 學 學 報,2013,18 (3):36-41.]