廉小親,沈 卓,張曉力,段振剛
(北京工商大學 計算機與信息工程學院,北京100048)
血凝分析儀已成為臨床醫療檢測中的一種常用設備,其血凝過程是指可溶于水的纖維蛋白原轉化為不能溶解于水的固態纖維蛋白的生化過程,簡單地說,該過程是一系列凝血因子連鎖性酶反應的結果[1]。整個血凝過程中包含著大量有關被檢者的病理信息,許多疾病的發生均與體內出血指標和血栓指標有著密切關系,因此,對凝血過程的檢測、對測量結果進行準確有效的數據分析具有重大醫學價值。由于其開發周期長、科技含量高、市場準入規則復雜,目前該類產品的研制與銷售仍被國外大型醫療器械企業所壟斷。本文所研究的基于MC9S12XS128單片機的血凝過程參數檢測裝置可在極大降低儀器的制造成本的同時,提升檢測的準確性,為血凝儀這種高端儀器的國產化打下良好基礎。
一套全自動的血凝分析儀由上位機系統、通訊轉換接口裝置及下位機系統三大部分組成。上位機系統作為下位機系統的管理者,通過預先制定好的通訊協議控制下位機的動作,比如光強采集、電機運動、溫度控制、數據傳輸等。通訊轉換接口裝置可將上位機的網口通訊協議轉換成下位機系統可讀的CAN 口通訊協議。系統組成如圖1 所示。此外,上位機還會將接收到的數據以文本格式進行存儲,方便后續對數據的處理,并依據檢測到的參數繪制成曲線,進行可視化顯示。下位機為本論文主要研究內容,如圖1中虛線框部分所示,MC9S12XS128單片機作為控制中心協調各組成部分的有序工作。下位機部分主要包括抓手控制機構、溫度控制機構、樣本臂運動控制機構、試劑臂運動控制機構及兩個光學檢測單元[3]。本文研究的核心為兩個光學檢測單元,分別為散射光的檢測部分和透射光的檢測部分。最終以采集到的兩種光強度為基礎,加以數據處理算法,計算出被測血樣的凝結時間和吸光率。

圖1 系統組成框架

圖2 MC9S12XS128最小系統
血凝儀的硬件電路主要包括單片機核心板、光學檢測單元、光電轉換及電機驅動電路。單片機核心板里裝載有各部分的控制程序及通訊協議,通過CAN 接口收發數據;光學檢測單元里有光電轉換電路,該部分電路可以將光信號轉變成電信號加以利用。電機驅動電路可以直接控制抓手、樣本臂和試劑臂的動作,將待測樣本放置于光學檢測單元的合適位置。
1.2.1 單片機核心板設計
本系統采用Freescale公司的MC9S12XS128單片機作為控制核心。該款單片機總線速度高達40 MHz,具備128 KB的 程 序FLASH 和8KB 的 數 據FLASH 存 儲 空 間[4]具有速度快、功能強、成本低、能耗低等明顯優勢。此外其特有的8通道的PWM 輸出口,易于實現電機控制,及速度達3μs轉換時間的12位精度ADC 模塊。MC9S12XS128單片機內部包含可升級控制器局域網絡 (MSCAN),全面支持CAN2.0協議。由于芯片僅帶協議層控制器,因此使用時需要通過一個收發器提供物理層驅動,這里選取型號為PCA82C250的CAN 總線收發器。該芯片的CANH 和CANL引腳外接一個5Ω 的電流進行限流,從而保護芯片,使其免受過流沖擊。MC9S12XS128單片機最小系統電路圖如圖2所示。
1.2.2 光學檢測單元設計
光學檢測單元包括散射光檢測和透射光檢測兩部分。其中散射光檢測裝置又由反應杯托盤和金屬支架兩大塊構成,用黑色塑料制成的托盤具有極好的遮光性,可在測試過程中有效地防止外部干擾光源進入檢測裝置;用不銹鋼材料制成的金屬支架具有較好的導熱性,可在支撐托盤的同時起到熱傳導的作用。以此同時,安裝在支架與托盤接觸的底部的加熱和測溫裝置,可幫助實現樣本的孵育。托盤上有若干檢測孔,離檢測孔底端4 mm 處開有直徑為3 mm 的通孔,通孔處裝有光電傳感器。進行血凝過程檢測時,應將點光源固定放置在托盤的兩側,形成對射狀態,光電傳感器與點光源軸線垂直安裝即可。透射光檢測部分構造與散射光檢測部分類似,此處不再贅述。
1.2.3 光電轉換電路設計
散射光和透射光的檢測電路大致相同。本系統采用型號為S2386-44K,具有高靈敏度、低暗電流等特點的硅光電二極管作為光電傳感器。該傳感器輸出信號為電流量,其輸出的反向電流與入射光強呈線性關系。光電轉換電路的第一級須將其輸入的電流信號轉變成電壓信號,第二級不但需要將轉變得到的微弱的電壓信號進行放大,還需要對放大后的信號進行濾波處理。本系統在兩級轉換電路之后,又加入了一級電壓跟隨電路,以提高輸入阻抗、降低輸出阻抗。
光電轉換部分的電路如圖3所示,電路選取的低偏置電流運放的型號為MCP602。第一級電路中,使用一個2兆歐的電阻實現電流-電壓轉換;兩級之間加入了一個低通濾波電路,濾除高頻噪聲的干擾;第二級為同向比例放大電路,通過選取合適的電阻值可以保證光電轉換電路的輸出量處于單片機的最佳AD采集范圍內;第三級選取型號為AD8542的軌對軌運放,實現電壓緩沖。

圖3 光電轉換電路
1.2.4 電機驅動電路設計
血凝儀所使用的電機為兩相單極步進電機,該款電機使用型號為SLA7078MR的驅動芯片即可直接驅動。此外,可通過型號為ADG608的電子開關芯片實現電機驅動芯片輸出功率的調節,具體調節電路如下:將電子開關的輸出端接到驅動芯片的Ref/Sleep1端,通過單片機控制電子開關輸出參考電壓,進而控制電機的能耗和發熱量。通過控制電機驅動芯片M1、M2和M3這3個控制端可以設定細分模式,同時配合Clock端輸入脈沖即可控制電機的轉速;F/R 端則用來控制電機的正反轉。電機驅動電路的設計如圖4所示。

圖4 電機驅動電路
下位機軟件是指血凝儀中單片機核心板的軟件,該部分軟件主要實現光源工作狀態控制和故障檢測、電機運動系統控制以及血凝過程參數的采集和發送[5]。
血凝過程參數的采集包括采集散射光信號和透射光信號兩部分。本系統設定的采樣頻率fs在50~100 Hz之間。檢測過程中,單片機會不斷采集數據,采用均值濾波算法處理后將這些數據存儲到緩沖區。數據的傳輸在定時器中斷服務子程序中進行,并通過定時器的配置,使得緩沖區中的數據以50Hz的頻率通過CAN 通訊方式發至上位機。下位機軟件流程如圖5所示。

圖5 下位機軟件流程
上位機的開發基于Visual Studio.NET 平臺,采用C#語言編寫,它是設備與用戶的連接的橋梁。針對上位機軟件包含功能較多、結構較復雜的特點,可將每一個大功能模塊細分為多個子模塊,即基于模塊化開發。上位機軟件總體結構如圖6所示。下文主要介紹血凝儀下位機軟件設計,上位機軟件設計部分不再贅述。

圖6 上位機軟件總體結構
本系統將上下位機通訊協議的長度設置為單個CAN 總線數據包的長度,且每一個協議命令均為8字節指令,系統所制定的主要協議命令如表1所示。上位機發送自檢指令后,會等待下位機進行反饋。若下位機系統無故障,則下位機會往上位機發送自檢正常指令,否則會發送自檢錯誤指令至上位機。下位機采集數據所使用的AD 轉換器精度為12位,因此傳輸數據時需要分兩個字節完成。為了防止錯誤解析協議命令,將傳輸數據協議前6 字節固定為0xAA,命令的最后兩個字節為所要發送的AD 模塊采集到的值,如表1末行所示。

表1 上位機與下位機通訊協議
散射光信號處理采用百分比檢測法,其原理為:將開始檢測時采集到的散射光強ys定義為散射光最弱值,將檢測過程完成時采集到的ys定義為散射光最強值;分別找出檢測過程中出現散射光強ys為最弱時的時刻和散射光強ys最強時的時刻,兩個時間間隔即血液凝固時間。
實際應用中,考慮到采集數據可能存在的誤差,往往會預先設定一個比較閾值R1、R2及時間區間閾值N1、N2。若某個ys值比它后邊的第N1個值小R1,則找到起始時刻t1;若某個ys值比它前邊的第N2個值大R2,則找到終止時刻t2;利用t1和t2容易算出凝固時間tcoa,如式(1)所示

式中:Ts——單片機預先設定的采樣周期,單位為秒。
血液樣本的透射光強度與溶液濃度成反比,這里使用yt來表征透射光強度值,表示在t時刻樣本的相對透光強度值。定義樣本的吸光率為rab,其表達式如式 (2)所示,單位為相對透射光強度水平值/分鐘

該部分在實際應用過程中也會設定R1、R2、N1、N2這幾個比較閾值,涉及到的其余算法與3.1 節大致相同,不再贅述。接下來,可利用采集到的t1、t2這段時間內的透射光強度值yt,通過最小二乘法擬合出一條曲線,即yt=kxt+b。最 后 計 算 出k 后,通 過 式 (3)即 可 求得rab的值

通過單片機AD 采樣過程存有干擾信號,采集到的數據具有不連續性,為了提高采樣信號信噪比,可采用數字低通濾波方法對采樣結果進行二次濾波。系統設計了有限長單位沖激響應濾波器 (finite impulse response,FIR)[6]。
理想的低通數字濾波器的傳遞函數如式 (4)所示

對式 (4)做離散傅立葉逆變換后得到單位樣值時域序列有

接著選取長度為N 的矩形窗函數進行設計,得到濾波器單位樣值響應如式 (6)所示,其Z 傳遞函數如式 (7)所示

令X(Z)為采樣值序列,對Y(Z)=H(Z)X(Z)取Z逆變換,得到濾波器差分方程如式 (8)所示

式中:bk——濾波器系數,系統中bk取值如式 (9)所示

這里取N =7,fc=80Hz,可利用Matlab計算得到數字濾波器的差分方程如式 (10)所示

最終,血凝儀上位機利用式 (10)對下位機AD 采集到的數據進行處理,便可得到一平滑的輸出序列。
測試時選用德靈公司 (DADE BEHRING)的標準質控血漿 (CiTrol coagulation control)和專門用于檢測血液凝固時間凝血活酶含鈣試劑 (Thromborel S)。
首先配置采樣頻率為50sps,采用散射法檢測血液凝固時間。使用血凝儀的電控系統完成樣品的混合后進行采集,每次采集600 個數據,依據數據所繪得的曲線如圖7所示,其中上圖為使用Matlab繪制出未經濾波的原始檢測曲線,下圖為使用濾波處理后得到的曲線。曲線縱坐標為光強的AD 值,橫坐標為采樣點數。

圖7 散射曲線
接著,按照同樣的系統配置和實驗步驟進行透射檢測,測得曲線如圖8所示。

圖8 透射曲線
在Matlab環境下,根據上述曲線的參數可以計算得到血液樣本的凝固時間為8.13s,同時該血樣的吸光率為17.0052相對光強度/分鐘。實際醫療檢測中,需要取多次實驗結果,然后求其平均值作為醫學診斷的最終根據。
系統上電后,運行上位機系統即可顯示軟件初始化界面,如圖9所示。點擊 “建立連接”,若系統正常則可進行參數檢測。測得的散射光凝結過程曲線如圖10所示,散射光曲線測得方法類似,此處不再贅述。

圖9 上位機軟件初始化界面

圖10 上位機散射光凝結過程曲線
通過對血凝儀血液凝固過程的研究和分析,制定出一套光學檢測方案,基于光信號處理算法,研制出以MC9S12XS128單片機為控制核心的血凝分析系統。系統設計的一套電控系統能夠實現全自動取樣和檢測。同時,下位機將采集到的數據通過CAN 通訊接口傳輸至上位機,通過數字濾波算法處理后計算得到凝固時間和吸光率。測試結果表明,本系統具有開發成本低、采集精度高、穩定性好等優點,依據本方案測得的結果符合實際規律,滿足技術指標的要求。
[1]YUAN Yu.The design of the control part of automatic blood coagulation factor analyzer[D].Taiyuan:Taiyuan University of Technology,2010 (in Chinese). [原毓.全自動凝血因子分析儀控制部分的設計 [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].醫 學 信 息,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#的全自動血凝儀軟件設計與實現 [J].計算機工程與設計,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單片機智能尋跡小車的設計 [J].科技創新導報,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的多路數據采集系統上位機軟件設計 [J].測試技術學報,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 數字濾波器設計與 仿 真 [J].哈 爾 濱 理 工 大 學 學 報,2013,18 (3):36-41.]