結合32位微處理器和高精度顏色傳感器構建一種新型尿液分析核心模塊。模塊采用新穎的光學結構和特定電路提高測量精度,并利用溫度對測量結果進行補償,可直接輸出當前測試條的原始數據及尿液中11項被測指標試紙塊顏色的RGB值、反射率、半定量等級等信息。結果表明,該模塊測量精度在95%以上,具有較好的穩定性、可靠性和一致性,同時該模塊還具有很好的開放性和可擴展性,可方便地用于各種類型的尿液分析儀,并可大幅度地降低尿液分析儀的研發和生產成本。
引用本文: 陳龍聰, 劉改琴, 胡南, 張瑞英, 江奇鋒, 高斌, 熊興良. 基于半反半透鏡的新型尿液分析核心模塊的研究. 生物醫學工程學雜志, 2014, 31(6): 1288-1293. doi: 10.7507/1001-5515.20140244 復制
版權信息: ?四川大學華西醫院華西期刊社《生物醫學工程學雜志》版權所有,未經授權不得轉載、改編
引言
尿液分析是一項重要的臨床化驗指標[1],除用于泌尿系統疾病的診斷、療效觀察以外,還可用于會引起尿液生化成分改變的其它系統疾病的診斷、安全用藥檢測和健康狀態初評等[2-5]。
早期通過人眼直接對比試紙條與標準色卡獲得的尿液分析測試結果,由于受人眼主觀因素影響,誤差較大。隨著計算機及自動化技術的發展,基于干化學的尿液分析儀成為臨床的主流檢測方法,其關鍵是顏色值的獲取和半定量分析算法,其中顏色值的準確性取決于光學系統和顏色采集器。該部分目前主要有三種方式:① 利用不同波長的發光二極管(light emitting diode,LED)燈依次照射試紙條,根據光敏元件接收到不同顏色對應的反射光強,獲取試紙條對應項的顏色值[6-7];② 采用白光光源照射測試試紙條,利用顏色傳感器獲取試紙條對應項的顏色值;③ 采用白光照射測紙條,利用電荷耦合組件(charge coupled Device,CCD)圖像傳感器以圖像的形式接收不同顏色的反射光強,然后通過圖像處理獲取試紙條對應項的顏色值[8-9]。其中,① 和② 都具有成本較低,裝配簡單等優點,但均存在照射光源裝配位置及角度、傳感器離色塊的距離等因素對檢測結果有較大影響。最后一種光學系統比前兩種方式復雜,光照均勻性要求高,成本也較高,且梯度定標繁瑣,目前僅有部分全自動尿液分析在使用。另外,影響尿液分析儀測量精度、重復性和一致性等性能的因素,除半定量分析算法[10]外,還有環境光、溫度、試紙的新鮮度等[11-16]。針對各種影響因素,通常從軟、硬件兩方面改進:如采用先進的超高亮度冷光源提高光學系統的分辨能力和穩定性,降低環境光對測試結果的影響;采用封閉化、模塊化的系統設計,選用大規模集成電路,以降低元件數量,減小系統內部各部件間的相互干擾,提高產品的可靠性、穩定性;采用軟硬件配合的技術,實現對環境溫度、環境光等干擾的自動補償。
本文結合32位微處理器和高精度顏色傳感器構建一種新型尿液分析核心模塊,提出了一種新的光路系統,同時采用軟硬件相結合的技術,對環境溫度、環境光等干擾因素進行自動補償,可提高測量精度、重復性和穩定性等。
1 模塊設計
本文模塊采用新穎的光學結構,盡可能減少光學系統對測量產生的影響,并利用溫度傳感器獲取環境溫度,根據測量數據與溫度的關系進行修正,以減小溫度對測量結果產生的影響。本文以特定的電路結構及相應的計算方法提高測量RGB值及光強控制精度,有效地提高各輸入量的測量精度。另外,根據實驗數據,利用偏最小二乘法獲得維生素C(vitamin C,VC)、尿糖(glucose,GLU)、膽紅素(bilirubin,BIL)、尿酮體(ketone,KET)、尿比重(specific gravity,SG)、隱血(blood,BLD)、酸堿度(pH)、尿蛋白(protein,PRO)、尿膽原(urobilinogen,URO)、亞硝酸鹽(nitrite,NIT)、尿白細胞(leucocyte,LEU)共11項指標的反射率等計算公式及半定量值區間,由于篇幅限制,該部分獲取方法未詳細闡述,只直接引用結果。本文重點描述該新型尿液分析核心模塊的硬件和軟件結構兩部分。其中硬件部分由光學部分、數據采集和處理兩部分構成,軟件部分用Keil uVision3編譯器實現程序的編譯,下面分別對每部分進行詳細闡述。
1.1 光學部分
如圖 1所示,光學部分由白色LED、半反半透鏡、TCS3104顏色傳感器及T形光筒燈構成。
 圖1
				核心模塊的光學及顏色采集原理圖
			
												
				Figure1.
				Structural illustration of optical and color collection system in core module
						
				圖1
				核心模塊的光學及顏色采集原理圖
			
												
				Figure1.
				Structural illustration of optical and color collection system in core module
			
								白色LED提供強度可控的光源,以滿足TCS3104顏色傳感器對光強的要求;半反半透鏡可將LED的光反射到試紙條,并將經試紙條反射的光再透射回TCS3104顏色傳感器;TCS3104顏色傳感器將RGB值分別以模擬電壓的形式輸出,外部根據輸出的電壓獲取相應的顏色和亮度信息;T形光筒主要遮擋環境光對結果的影響。如圖 1所示,該模塊的光學顏色采集方法可實現:① 采集的顏色值是不同顏色光在同一位置的反射光信號,在顏色合成時不會出現顏色的位置偏差;② 減小傳感器與色塊距離不同時對檢測結果的影響。
1.2 數據采集和處理部分
如圖 2所示,本部分由光強控制單元、控制和處理單元、啟停控制單元、高精度參考電壓單元、顏色傳感器單元、溫度測量單元和串行通訊單元共7個單元組成。其中,啟停控制單元實現控制電平的轉換,降低功耗,延長使用壽命;溫度測量單元利用18B20實現溫度的測量,以供溫度補償使用;串行通訊單元實現與外部各種數據的傳輸。下面對其余4部分進行詳細闡述。
 圖2
				數據采集和處理部分框圖
			
												
				Figure2.
				Block diagram of data acquisition and processing
						
				圖2
				數據采集和處理部分框圖
			
												
				Figure2.
				Block diagram of data acquisition and processing
			
								1.2.1 光強控制單元
該單元利用恒流的方式控制白色LED燈光強,獲取更穩定的光強。其主要是通過微處理器STM32F103RB輸出16位分辨率的脈沖寬度調制信號,經濾波、放大等處理后輸出控制電壓,并利用運算放大器實現電壓電流轉換,進而達到用恒流控制白色LED燈的目的。另外,在LED回路串聯了一取樣電阻,并將其采樣電壓送入微處理器STM32F103RB的模擬端口,從而形成閉環控制,提高恒流的控制精度。
1.2.2 控制和處理單元
該單元由32位微處理器STM32F103RB及相應的外圍元件構成[17]。其中STM32F103RB內帶12位、1 μs轉換速度的A/D轉換器、有128 kb可用于程序和數據存儲的flash存儲器、20 kb靜態存儲,最高工作頻率可達72 MHz。本單元可將顏色傳感器輸出的模擬電壓轉換為相應的數字值,實現顏色的采集,并通過相應算法,根據輸入信息輸出所需的信息,同時還可利用內帶的串口實現與外部通信等功能。
1.2.3 高精度參考電壓單元
該單元是為提高每道A/D轉換的精度而設計的。STM32F103RB內帶A/D轉換的值以模擬電源作為A/D轉換的參考電壓,實際使用中模擬電源會出現波動,且不同核心模塊相應的模擬電源電壓值也可能有小的差異,會造成相同輸入對不同核心模塊A/D轉換的值有一定差異,進而出現核心模塊測量的一致性不好。為解決這一問題,本文提出選用精度為0.1%的3 V參考電壓芯片ADR363B(輸出電壓噪聲峰值6.8 μV、電壓精度±3 mV、溫度系數9 ppm/℃)的輸出作為STM32F103RB的一道模擬輸入,以其作為對照,對其它道的A/D轉換值進行修正。實驗證明,該法可以很好地減小電源電壓引入的干擾,并能提高核心模塊測量的一致性和測量精度。
1.2.4 顏色傳感器單元
該單元由高精度顏色傳感器TCS3104組成,可實現與光路部分的銜接。TCS3104顏色傳感器直接輸出顏色的RGB三色分量模擬電壓值,外部引腳可控制其輸出增益為4倍或1倍,采用4倍可有效提高低照度下的測量精度,響應的典型時間為12 μs,輸出對RGB的典型靈敏度分別為0.4、0.25、0.2 mV/(μW·cm-2),在微處理器的控制下實現RGB顏色的采集,并利用白色紙條的值進行修正。
1.3 軟件部分
軟件部分是利Keil uVision3編譯器編寫,以32位微處理器STM32F103RB的定時器、A/D轉換、Flash存儲、串口等實現各種控制數據的采集、保存、處理及通信。如圖 3所示,軟件部分包括啟停控制子程序、光強控制子程序、A/D轉換處理子程序、顏色處理子程序、結果處理子程序、串口通訊子程序、參數處理子程序、主程序等幾部分。其中,串口通訊子程序通過串行口與外部進行通信,實現信息的交換,比如輸出顏色的RGB分量值、各項的結果序號值等;參數處理子程序則是根據輸入的信息,讀取、保存或更改對應的參數,使得模塊具有很好的開發性和可擴展性;光強控制子程序是利用閉環控制方式使加在白色LED上的電流為恒定的預設值;A/D轉換子程序利用STM32F103RB的定時器實現各種數據的A/D轉換值依據式(1)計算出結果并存入相應的緩沖區;顏色處理子程序在主程序的協調下將顏色的RGB分量從A/D轉換子程序緩沖區取出,并利用式(2)進行修正,得到最后計算所需的RGB值;溫度測量子程序完成溫度的測量,通過多次平均后將測量值存入特定的變量之中,以供結果處理單元使用;結果處理子程序在主程序的協調下,根據顏色處理子程序處理后的RGB值的分布特征取出對應不同色塊的數據,再利用對應測試項的式(3)和式(4)計算出相應的反射率,根據設置的半定量區間值(如表 1所示,給出了蛋白質的區間)得出相應的半定量序號值;主程序是調用啟停控制子程序獲取外部控制的信息,即是啟動工作還是停止工作。若停止工作,則進行相應處理使整個核心模塊處于低功耗模式;若啟動工作,則調用相應的子程序通過對應的關鍵公式進行計算和處理,并輸出相應數據。以下將對軟件部分的關鍵公式進行闡述。
 圖3
				軟件框圖
			
												
				Figure3.
				Block diagram of software
						
				圖3
				軟件框圖
			
												
				Figure3.
				Block diagram of software
			
								通過STM32F103RB測量各道輸入電壓的計算公式為:
| ${{V}_{i}}={{D}_{i}}\times 3.0/{{D}_{r}}$ | 
式中Vi為計算所得的輸入電壓值,Dr取3.0 V參考電壓經A/D轉換平均值(為了濾除干擾),Di為需測量的某道A/D轉換值。
| ${{D}_{m}}={{V}_{i}}\times 255/{{V}_{W}},$ | 
式中Dm為計算所得顏色分量值(m=R,G,B,分別表示紅色,綠色和藍色),Vi為式(1)所得的結果值,VW表示用白條測試時式(1)算出的值。
| ${{y}_{25}}^{*}={{c}_{0}}+{{c}_{1}}{{D}_{R}}+{{c}_{2}}{{({{D}_{R}})}^{2}}+{{c}_{3}}{{D}_{G}}+{{c}_{4}}{{({{D}_{G}})}^{2}}+{{c}_{5}}{{D}_{B}}+{{c}_{6}}{{({{D}_{B}})}^{2}},$ | 
| ${{y}^{*}}={{c}_{0}}\prime +{{c}_{1}}\prime T+{{c}_{2}}\prime {{T}^{2}}+{{c}_{3}}\prime {{y}_{25}}^{*}+{{c}_{4}}\prime {{({{y}_{25}}^{*})}^{2}},$ | 
式中DR、DG和DB分別為通過式(2)算出的某一測試項或試紙塊的紅色、綠色和藍色的分量值,c0~c4為某一測試項擬合的系數,y25*為式(3)算出的25℃時的反射率,T為測量時的環境溫度,c0′~c4′為某一測試引入溫度后擬合的系數。不同測試項c0~c4和c0′~c4′的系數不同,具體值是根據大量實驗數據分析得出。如:根據實驗得出蛋白質的計算公式為:
| $\begin{align} & {{y}_{25}}^{*}=-118.656\text{ }6+0.221\text{ }3{{D}_{R}}+0.001\text{ }4{{({{D}_{R}})}^{2}}+1.741\text{ }9{{D}_{G}} \\ & -0.005\text{ }6{{({{D}_{G}})}^{2}}-0.039\text{ }8{{D}_{B}}-0.000\text{ }2{{({{D}_{B}})}^{2}} \\ \end{align}$ | 
| $\begin{align} & {{y}^{*}}=-8.851\text{ }2+0.427\text{ }8T- \\ & 0.002\text{ }4{{T}^{2}}+1.003\text{ }4~{{y}_{25}}^{*}-0.000\text{ }1\text{ }{{({{y}_{25}}^{*})}^{2}} \\ \end{align}$ | 
蛋白質半定量值區間如表 1所示。
 表1
                蛋白質的半定量值區間及半定量值
		 	
		 			 				Table1.
    			Semi-quantitative scales and semi-quantitative values of protein
			
						表1
                蛋白質的半定量值區間及半定量值
		 	
		 			 				Table1.
    			Semi-quantitative scales and semi-quantitative values of protein
       		
       				若輸出為反射率,則通過式(6)算出的反射率,若為RGB值則為當前測定的RGB值。
2 結果
該新型尿液分析核心模塊的實物如圖 4所示,可直接輸出當前測試條的原始數據、人尿中白細胞、酮體等11項物質各自的RGB值、反射率、半定量等級等信息,可方便地用于各種類型的尿液分析儀。為了說明該模塊的結果,下面通過實驗得到不同試紙條的4種輸出,即當前測試條的原始數據如圖 5所示,試紙塊顏色的RGB值如表 2所示,反射率如表 3所示,半定量等級數據如表 4所示。圖 5中,紅色箭頭所對應的位置即每一個極小值對應一試紙塊的顏色值,紅色、綠色和藍色曲線分別表示在試紙條移動過程中對應RGB顏色的變化,利用該功能及輸出試紙塊顏色的RGB值可以對新的測試項的規律進行研究、分析,利用外部工具如Matlab等得出相應的計算公式,然后通過特定的指令添加測試項及對應的系數,以實現相應項的測量,利用輸出反射率可以通過實驗確定各項的半定量區間,并通過特定的指令更改對應項的區間等。
 圖4
				新型尿液分析核心模塊的實物圖
			
												
				Figure4.
				Picture of the new urine analysis core module
						
				圖4
				新型尿液分析核心模塊的實物圖
			
												
				Figure4.
				Picture of the new urine analysis core module
			
								 圖5
				試紙條的原始數據波形圖
			
												
				Figure5.
				Waveform of original data collected within a test strip
						
				圖5
				試紙條的原始數據波形圖
			
												
				Figure5.
				Waveform of original data collected within a test strip
			
								 表2
                試紙條各試紙塊顏色的RGB值
		 	
		 			 				Table2.
    			RGB value of test pieces of a test strip
			
						表2
                試紙條各試紙塊顏色的RGB值
		 	
		 			 				Table2.
    			RGB value of test pieces of a test strip
       		
       				 表3
                試紙條各試紙塊顏色的反射率
		 	
		 			 				Table3.
    			Reflectivity of test pieces within a test strip
			
						表3
                試紙條各試紙塊顏色的反射率
		 	
		 			 				Table3.
    			Reflectivity of test pieces within a test strip
       		
       				 表4
                試紙條各試紙塊的半定量等級
		 	
		 			 				Table4.
    			Semi-quantitative level of test pieces within a test strip
			
						表4
                試紙條各試紙塊的半定量等級
		 	
		 			 				Table4.
    			Semi-quantitative level of test pieces within a test strip
       		
       				另外,為了驗證該核心模塊的可靠性、穩定性以及一致性,進行了大量的實驗,測試的最后結果如表 5所示。在醫學上,常用“-”表示陰性,表示被測試者健康,“+”表示陽性,表示被測試者有疾病。其中,加號越多,代表病情越嚴重。由表 5可以得出,該核心模塊測試的準確度達到95%及以上,完全達到尿液分析測試結果的要求。
 表5
                尿液測試結果
		 	
		 			 				Table5.
    			Results of urine test using the homemade core module
			
						表5
                尿液測試結果
		 	
		 			 				Table5.
    			Results of urine test using the homemade core module
       		
       				3 討論
本文提出了一種基于32位微處理器STM32F103RB和顏色傳感器TCS3104的新型尿液分析儀的核心模塊,采用新穎的光路結構、特定的電路及軟件算法進行補償,使其每項測量精度均在95%及以上,具有很好的穩定性、可靠性和一致性。另外,該模塊可根據外部控制直接輸出當前測試條的原始數據、11項指標各自顏色的RGB值、反射率、半定量等級等信息,并且通過特定的指令還可實現修改反射率計算系數、增加測試項和對應的計算系數、讀取或更改半定量區間等。因此,該模塊具有很好的開發性和可擴展性,從而保證具有很好的通用性,適用于各種類型的尿液分析儀,并可大幅度地降低尿液分析儀的研發和生產成本,具有很好的使用價值和廣闊的市場前景。但目前還需對其整體光路、電路和軟件進一步優化,力求成為一種標準化尿液分析儀核心模塊。
引言
尿液分析是一項重要的臨床化驗指標[1],除用于泌尿系統疾病的診斷、療效觀察以外,還可用于會引起尿液生化成分改變的其它系統疾病的診斷、安全用藥檢測和健康狀態初評等[2-5]。
早期通過人眼直接對比試紙條與標準色卡獲得的尿液分析測試結果,由于受人眼主觀因素影響,誤差較大。隨著計算機及自動化技術的發展,基于干化學的尿液分析儀成為臨床的主流檢測方法,其關鍵是顏色值的獲取和半定量分析算法,其中顏色值的準確性取決于光學系統和顏色采集器。該部分目前主要有三種方式:① 利用不同波長的發光二極管(light emitting diode,LED)燈依次照射試紙條,根據光敏元件接收到不同顏色對應的反射光強,獲取試紙條對應項的顏色值[6-7];② 采用白光光源照射測試試紙條,利用顏色傳感器獲取試紙條對應項的顏色值;③ 采用白光照射測紙條,利用電荷耦合組件(charge coupled Device,CCD)圖像傳感器以圖像的形式接收不同顏色的反射光強,然后通過圖像處理獲取試紙條對應項的顏色值[8-9]。其中,① 和② 都具有成本較低,裝配簡單等優點,但均存在照射光源裝配位置及角度、傳感器離色塊的距離等因素對檢測結果有較大影響。最后一種光學系統比前兩種方式復雜,光照均勻性要求高,成本也較高,且梯度定標繁瑣,目前僅有部分全自動尿液分析在使用。另外,影響尿液分析儀測量精度、重復性和一致性等性能的因素,除半定量分析算法[10]外,還有環境光、溫度、試紙的新鮮度等[11-16]。針對各種影響因素,通常從軟、硬件兩方面改進:如采用先進的超高亮度冷光源提高光學系統的分辨能力和穩定性,降低環境光對測試結果的影響;采用封閉化、模塊化的系統設計,選用大規模集成電路,以降低元件數量,減小系統內部各部件間的相互干擾,提高產品的可靠性、穩定性;采用軟硬件配合的技術,實現對環境溫度、環境光等干擾的自動補償。
本文結合32位微處理器和高精度顏色傳感器構建一種新型尿液分析核心模塊,提出了一種新的光路系統,同時采用軟硬件相結合的技術,對環境溫度、環境光等干擾因素進行自動補償,可提高測量精度、重復性和穩定性等。
1 模塊設計
本文模塊采用新穎的光學結構,盡可能減少光學系統對測量產生的影響,并利用溫度傳感器獲取環境溫度,根據測量數據與溫度的關系進行修正,以減小溫度對測量結果產生的影響。本文以特定的電路結構及相應的計算方法提高測量RGB值及光強控制精度,有效地提高各輸入量的測量精度。另外,根據實驗數據,利用偏最小二乘法獲得維生素C(vitamin C,VC)、尿糖(glucose,GLU)、膽紅素(bilirubin,BIL)、尿酮體(ketone,KET)、尿比重(specific gravity,SG)、隱血(blood,BLD)、酸堿度(pH)、尿蛋白(protein,PRO)、尿膽原(urobilinogen,URO)、亞硝酸鹽(nitrite,NIT)、尿白細胞(leucocyte,LEU)共11項指標的反射率等計算公式及半定量值區間,由于篇幅限制,該部分獲取方法未詳細闡述,只直接引用結果。本文重點描述該新型尿液分析核心模塊的硬件和軟件結構兩部分。其中硬件部分由光學部分、數據采集和處理兩部分構成,軟件部分用Keil uVision3編譯器實現程序的編譯,下面分別對每部分進行詳細闡述。
1.1 光學部分
如圖 1所示,光學部分由白色LED、半反半透鏡、TCS3104顏色傳感器及T形光筒燈構成。
 圖1
				核心模塊的光學及顏色采集原理圖
			
												
				Figure1.
				Structural illustration of optical and color collection system in core module
						
				圖1
				核心模塊的光學及顏色采集原理圖
			
												
				Figure1.
				Structural illustration of optical and color collection system in core module
			
								白色LED提供強度可控的光源,以滿足TCS3104顏色傳感器對光強的要求;半反半透鏡可將LED的光反射到試紙條,并將經試紙條反射的光再透射回TCS3104顏色傳感器;TCS3104顏色傳感器將RGB值分別以模擬電壓的形式輸出,外部根據輸出的電壓獲取相應的顏色和亮度信息;T形光筒主要遮擋環境光對結果的影響。如圖 1所示,該模塊的光學顏色采集方法可實現:① 采集的顏色值是不同顏色光在同一位置的反射光信號,在顏色合成時不會出現顏色的位置偏差;② 減小傳感器與色塊距離不同時對檢測結果的影響。
1.2 數據采集和處理部分
如圖 2所示,本部分由光強控制單元、控制和處理單元、啟停控制單元、高精度參考電壓單元、顏色傳感器單元、溫度測量單元和串行通訊單元共7個單元組成。其中,啟停控制單元實現控制電平的轉換,降低功耗,延長使用壽命;溫度測量單元利用18B20實現溫度的測量,以供溫度補償使用;串行通訊單元實現與外部各種數據的傳輸。下面對其余4部分進行詳細闡述。
 圖2
				數據采集和處理部分框圖
			
												
				Figure2.
				Block diagram of data acquisition and processing
						
				圖2
				數據采集和處理部分框圖
			
												
				Figure2.
				Block diagram of data acquisition and processing
			
								1.2.1 光強控制單元
該單元利用恒流的方式控制白色LED燈光強,獲取更穩定的光強。其主要是通過微處理器STM32F103RB輸出16位分辨率的脈沖寬度調制信號,經濾波、放大等處理后輸出控制電壓,并利用運算放大器實現電壓電流轉換,進而達到用恒流控制白色LED燈的目的。另外,在LED回路串聯了一取樣電阻,并將其采樣電壓送入微處理器STM32F103RB的模擬端口,從而形成閉環控制,提高恒流的控制精度。
1.2.2 控制和處理單元
該單元由32位微處理器STM32F103RB及相應的外圍元件構成[17]。其中STM32F103RB內帶12位、1 μs轉換速度的A/D轉換器、有128 kb可用于程序和數據存儲的flash存儲器、20 kb靜態存儲,最高工作頻率可達72 MHz。本單元可將顏色傳感器輸出的模擬電壓轉換為相應的數字值,實現顏色的采集,并通過相應算法,根據輸入信息輸出所需的信息,同時還可利用內帶的串口實現與外部通信等功能。
1.2.3 高精度參考電壓單元
該單元是為提高每道A/D轉換的精度而設計的。STM32F103RB內帶A/D轉換的值以模擬電源作為A/D轉換的參考電壓,實際使用中模擬電源會出現波動,且不同核心模塊相應的模擬電源電壓值也可能有小的差異,會造成相同輸入對不同核心模塊A/D轉換的值有一定差異,進而出現核心模塊測量的一致性不好。為解決這一問題,本文提出選用精度為0.1%的3 V參考電壓芯片ADR363B(輸出電壓噪聲峰值6.8 μV、電壓精度±3 mV、溫度系數9 ppm/℃)的輸出作為STM32F103RB的一道模擬輸入,以其作為對照,對其它道的A/D轉換值進行修正。實驗證明,該法可以很好地減小電源電壓引入的干擾,并能提高核心模塊測量的一致性和測量精度。
1.2.4 顏色傳感器單元
該單元由高精度顏色傳感器TCS3104組成,可實現與光路部分的銜接。TCS3104顏色傳感器直接輸出顏色的RGB三色分量模擬電壓值,外部引腳可控制其輸出增益為4倍或1倍,采用4倍可有效提高低照度下的測量精度,響應的典型時間為12 μs,輸出對RGB的典型靈敏度分別為0.4、0.25、0.2 mV/(μW·cm-2),在微處理器的控制下實現RGB顏色的采集,并利用白色紙條的值進行修正。
1.3 軟件部分
軟件部分是利Keil uVision3編譯器編寫,以32位微處理器STM32F103RB的定時器、A/D轉換、Flash存儲、串口等實現各種控制數據的采集、保存、處理及通信。如圖 3所示,軟件部分包括啟停控制子程序、光強控制子程序、A/D轉換處理子程序、顏色處理子程序、結果處理子程序、串口通訊子程序、參數處理子程序、主程序等幾部分。其中,串口通訊子程序通過串行口與外部進行通信,實現信息的交換,比如輸出顏色的RGB分量值、各項的結果序號值等;參數處理子程序則是根據輸入的信息,讀取、保存或更改對應的參數,使得模塊具有很好的開發性和可擴展性;光強控制子程序是利用閉環控制方式使加在白色LED上的電流為恒定的預設值;A/D轉換子程序利用STM32F103RB的定時器實現各種數據的A/D轉換值依據式(1)計算出結果并存入相應的緩沖區;顏色處理子程序在主程序的協調下將顏色的RGB分量從A/D轉換子程序緩沖區取出,并利用式(2)進行修正,得到最后計算所需的RGB值;溫度測量子程序完成溫度的測量,通過多次平均后將測量值存入特定的變量之中,以供結果處理單元使用;結果處理子程序在主程序的協調下,根據顏色處理子程序處理后的RGB值的分布特征取出對應不同色塊的數據,再利用對應測試項的式(3)和式(4)計算出相應的反射率,根據設置的半定量區間值(如表 1所示,給出了蛋白質的區間)得出相應的半定量序號值;主程序是調用啟停控制子程序獲取外部控制的信息,即是啟動工作還是停止工作。若停止工作,則進行相應處理使整個核心模塊處于低功耗模式;若啟動工作,則調用相應的子程序通過對應的關鍵公式進行計算和處理,并輸出相應數據。以下將對軟件部分的關鍵公式進行闡述。
 圖3
				軟件框圖
			
												
				Figure3.
				Block diagram of software
						
				圖3
				軟件框圖
			
												
				Figure3.
				Block diagram of software
			
								通過STM32F103RB測量各道輸入電壓的計算公式為:
| ${{V}_{i}}={{D}_{i}}\times 3.0/{{D}_{r}}$ | 
式中Vi為計算所得的輸入電壓值,Dr取3.0 V參考電壓經A/D轉換平均值(為了濾除干擾),Di為需測量的某道A/D轉換值。
| ${{D}_{m}}={{V}_{i}}\times 255/{{V}_{W}},$ | 
式中Dm為計算所得顏色分量值(m=R,G,B,分別表示紅色,綠色和藍色),Vi為式(1)所得的結果值,VW表示用白條測試時式(1)算出的值。
| ${{y}_{25}}^{*}={{c}_{0}}+{{c}_{1}}{{D}_{R}}+{{c}_{2}}{{({{D}_{R}})}^{2}}+{{c}_{3}}{{D}_{G}}+{{c}_{4}}{{({{D}_{G}})}^{2}}+{{c}_{5}}{{D}_{B}}+{{c}_{6}}{{({{D}_{B}})}^{2}},$ | 
| ${{y}^{*}}={{c}_{0}}\prime +{{c}_{1}}\prime T+{{c}_{2}}\prime {{T}^{2}}+{{c}_{3}}\prime {{y}_{25}}^{*}+{{c}_{4}}\prime {{({{y}_{25}}^{*})}^{2}},$ | 
式中DR、DG和DB分別為通過式(2)算出的某一測試項或試紙塊的紅色、綠色和藍色的分量值,c0~c4為某一測試項擬合的系數,y25*為式(3)算出的25℃時的反射率,T為測量時的環境溫度,c0′~c4′為某一測試引入溫度后擬合的系數。不同測試項c0~c4和c0′~c4′的系數不同,具體值是根據大量實驗數據分析得出。如:根據實驗得出蛋白質的計算公式為:
| $\begin{align} & {{y}_{25}}^{*}=-118.656\text{ }6+0.221\text{ }3{{D}_{R}}+0.001\text{ }4{{({{D}_{R}})}^{2}}+1.741\text{ }9{{D}_{G}} \\ & -0.005\text{ }6{{({{D}_{G}})}^{2}}-0.039\text{ }8{{D}_{B}}-0.000\text{ }2{{({{D}_{B}})}^{2}} \\ \end{align}$ | 
| $\begin{align} & {{y}^{*}}=-8.851\text{ }2+0.427\text{ }8T- \\ & 0.002\text{ }4{{T}^{2}}+1.003\text{ }4~{{y}_{25}}^{*}-0.000\text{ }1\text{ }{{({{y}_{25}}^{*})}^{2}} \\ \end{align}$ | 
蛋白質半定量值區間如表 1所示。
 表1
                蛋白質的半定量值區間及半定量值
		 	
		 			 				Table1.
    			Semi-quantitative scales and semi-quantitative values of protein
			
						表1
                蛋白質的半定量值區間及半定量值
		 	
		 			 				Table1.
    			Semi-quantitative scales and semi-quantitative values of protein
       		
       				若輸出為反射率,則通過式(6)算出的反射率,若為RGB值則為當前測定的RGB值。
2 結果
該新型尿液分析核心模塊的實物如圖 4所示,可直接輸出當前測試條的原始數據、人尿中白細胞、酮體等11項物質各自的RGB值、反射率、半定量等級等信息,可方便地用于各種類型的尿液分析儀。為了說明該模塊的結果,下面通過實驗得到不同試紙條的4種輸出,即當前測試條的原始數據如圖 5所示,試紙塊顏色的RGB值如表 2所示,反射率如表 3所示,半定量等級數據如表 4所示。圖 5中,紅色箭頭所對應的位置即每一個極小值對應一試紙塊的顏色值,紅色、綠色和藍色曲線分別表示在試紙條移動過程中對應RGB顏色的變化,利用該功能及輸出試紙塊顏色的RGB值可以對新的測試項的規律進行研究、分析,利用外部工具如Matlab等得出相應的計算公式,然后通過特定的指令添加測試項及對應的系數,以實現相應項的測量,利用輸出反射率可以通過實驗確定各項的半定量區間,并通過特定的指令更改對應項的區間等。
 圖4
				新型尿液分析核心模塊的實物圖
			
												
				Figure4.
				Picture of the new urine analysis core module
						
				圖4
				新型尿液分析核心模塊的實物圖
			
												
				Figure4.
				Picture of the new urine analysis core module
			
								 圖5
				試紙條的原始數據波形圖
			
												
				Figure5.
				Waveform of original data collected within a test strip
						
				圖5
				試紙條的原始數據波形圖
			
												
				Figure5.
				Waveform of original data collected within a test strip
			
								 表2
                試紙條各試紙塊顏色的RGB值
		 	
		 			 				Table2.
    			RGB value of test pieces of a test strip
			
						表2
                試紙條各試紙塊顏色的RGB值
		 	
		 			 				Table2.
    			RGB value of test pieces of a test strip
       		
       				 表3
                試紙條各試紙塊顏色的反射率
		 	
		 			 				Table3.
    			Reflectivity of test pieces within a test strip
			
						表3
                試紙條各試紙塊顏色的反射率
		 	
		 			 				Table3.
    			Reflectivity of test pieces within a test strip
       		
       				 表4
                試紙條各試紙塊的半定量等級
		 	
		 			 				Table4.
    			Semi-quantitative level of test pieces within a test strip
			
						表4
                試紙條各試紙塊的半定量等級
		 	
		 			 				Table4.
    			Semi-quantitative level of test pieces within a test strip
       		
       				另外,為了驗證該核心模塊的可靠性、穩定性以及一致性,進行了大量的實驗,測試的最后結果如表 5所示。在醫學上,常用“-”表示陰性,表示被測試者健康,“+”表示陽性,表示被測試者有疾病。其中,加號越多,代表病情越嚴重。由表 5可以得出,該核心模塊測試的準確度達到95%及以上,完全達到尿液分析測試結果的要求。
 表5
                尿液測試結果
		 	
		 			 				Table5.
    			Results of urine test using the homemade core module
			
						表5
                尿液測試結果
		 	
		 			 				Table5.
    			Results of urine test using the homemade core module
       		
       				3 討論
本文提出了一種基于32位微處理器STM32F103RB和顏色傳感器TCS3104的新型尿液分析儀的核心模塊,采用新穎的光路結構、特定的電路及軟件算法進行補償,使其每項測量精度均在95%及以上,具有很好的穩定性、可靠性和一致性。另外,該模塊可根據外部控制直接輸出當前測試條的原始數據、11項指標各自顏色的RGB值、反射率、半定量等級等信息,并且通過特定的指令還可實現修改反射率計算系數、增加測試項和對應的計算系數、讀取或更改半定量區間等。因此,該模塊具有很好的開發性和可擴展性,從而保證具有很好的通用性,適用于各種類型的尿液分析儀,并可大幅度地降低尿液分析儀的研發和生產成本,具有很好的使用價值和廣闊的市場前景。但目前還需對其整體光路、電路和軟件進一步優化,力求成為一種標準化尿液分析儀核心模塊。
 
        

 
                 
				 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
                                                                    
                                                                        
                                                                        
                                                                         
																   	
                                                                    
                                                                    
																	