趙瑞卿,陳小惠,林圣東
(南京郵電大學, 210046)
電解質分析儀在臨床醫學中主要用于各種離子濃度的檢測,是現在醫院中的必備設備。本文介紹的一種基于USB數據采集系統的新型電解質分析儀,具有高輸入阻抗與高分辨率的特點,能夠與多種離子選擇電極進行配套使用,可測量K、Na、Cl、Ca等離子濃度。
在基于USB的電解質分析儀的設計中,我們使用了Cypress公司的EZ-USB FX2LP系列芯片CY7C68013A,CY7C68013A是一種集成了USB協議的增強型51單片機,電路設計相對簡單,系統集成度高。通用串行總線USB接口與傳統計算機接口如RS232、PCI接口和PS/2接口等相比,具有速度快,可靠性高,體積小,成本低,連接方便,支持熱插拔,兼容性高,可擴展性好等優點。與傳統電解質分析儀不同,我們使用USB協議將采集到的數據傳輸到計算機中,使測量結果的處理、顯示與存儲變的更加簡單,對于臨床的操作與使用來說更加方便。在AD轉換部分,選擇了16位的高精度AD轉換芯片,保證了信號精度的要求。在進樣模塊的步進電機控制部分,使用單片機與光電開關進行聯合控制,提高了儀器的可靠性。
在進樣與傳感器模塊中采集過來的微小信號,經過調理電路對信號進行處理與放大,再經選通后進入AD轉換芯片,將模擬信號轉換成數字信號,再經集成有USB協議的微處理器通過USB接口控制傳輸至上位機,由上位機軟件進行處理和顯示;同時,上位機軟件通過微處理器,能夠對儀器的整個運作流程進行控制,實現相應的功能。實際電路中主要使用的芯片有CD4051BE、AD7715和CY7C68013A等。固件程序采用KeilC51編寫,上位機程序采用VC++編寫,并運用多線程技術,使數據采集與用戶界面控制互不干擾。各模塊都有各自分工,并且模塊之間相互協作,最終實現本儀器的整體功能。整個系統框圖如圖1所示。

圖1 系統整體設計框圖
目前國內外電解質分析系統主流的檢測方法一般為離子選擇電極法(ion selective electrode,ISE),它是通過檢測離子選擇電極和參比電極輸出之間的電壓差來得到待測離子活度的。離子選擇電極是一類化學傳感器,它的電位對溶液中給定的離子活度的對數呈線性關系,它符合能斯特方程。
由于外界因素如溫度、液體電位等因素的影響,所以在儀器的長時間間隔的測量中,要對電極進行兩點定標。設A標液與B標液的質量分數分別為aA和aB,電位分別是EA和EB,A標液和B標液的電位差為ΔE標,有:

得到電極斜率K為:

上式中ΔE標測量可得,aA和aB已知,故能求出K。
因此,由下式可以測定液體中特定離子的濃度:

K由兩點定標時式(2)求得,ΔEX測量可得,aA已知,故可求出aX。
本模塊主要實現使被測液進入系統與傳感器進行反應這一過程中具體硬件電路的設計,傳感器獲得的信號為模擬數據,具體體現為高阻、微弱的電信號。在設計中,使用光電開關用來作為邏輯控制與檢測,用步進電機實現被測液的選擇與抽取。相對于傳統的緩沖寄存器、環形分配器控制邏輯以及正反轉控門組成的步進電機控制器,使用單片機和ULN2003對步進電機進行控制,這使得電路變的更加簡單,控制更加靈活。
在具體的設計中,我們使用了兩個步進電機,其中一個步進電機作為配液閥,用來選擇吸取用于定標的A標液與B標液或清洗用的空氣,另一個步進電機用來吸取被測液或空氣。步進電機再配以光電開關,可以很方便的使用單片機對其進行控制,實現功能,具體控制流程見上位機軟件部分。
USB的控制器芯片一般分為兩種:一種是內部不集成CPU的USB接口芯片,另一種是控制器內帶有通用功能CPU的芯片。因此,對于第一種芯片我們可以與普通的單片機共同使用,USB芯片只負責與USB相關的通信工作,使用單片機進行主控。對于使用這種芯片的方法硬件電路相對復雜,不利于設計和維護。而對于自帶CPU的USB控制器芯片,本身就是一個帶有USB功能的增強型單片機,使用方便,開發相對簡單,產品集成度高。
設計基于USB2.0規范的USB設備接口時,USB接口芯片選用了具有微控制器的Cypress公司的EZ-USB FX2LP系列芯片CY7C68013A。該芯片包括1個增強型8051、串行引擎(SIE)、1個USB2.0收發器、8.5KB的RAM、4KB的FIFO、I/O口、數據總線、地址總線及1個通用可編程接口。
多路傳感器采集到信號之后,經過信號調理電路對模擬信號進行放大與處理后,通過CD4051BE芯片進行選通控制。CD4051BE芯片相當于一個單刀8擲開關,有8路輸入,1路輸出,通道選擇功能由3條地址線ABC進行控制。
AD芯片選擇的是AD7715芯片。AD7715片內有4個寄存器,分別是通訊寄存器、設定寄存器、測試寄存器和數據寄存器。在實際設計中我們通過對寄存器進行讀寫設置來實現所需的模數轉換功能。

圖2 選通與AD轉換電路
Cypress公司提供了一個完整的固件程序框架,我們可以直接基于此框架開發我們的固件程序,用以簡化開發難度,提高開發效率。固件開發我們采用Keil公司的C51編譯器,集成開發環境為uVision2。固件程序的結構框架如圖3所示。我們在文件periph.c中的DR_VendorCmnd函數中添加自定義的控制命令代碼,代碼會在CY7C68013A芯片的8051內核中運行,最終實現對芯片的控制。

圖3 固件程序結構框架
固件程序可以有兩種存儲方式。第一種固件程序存放于主機中,每次USB芯片上電后,USB主機會將程序下載到片內的RAM中,USB芯片掉電后,RAM中的程序和數據都將丟失。第二種存儲方式是將固件程序固化到與USB芯片的IIC總線相連的片外部存儲器如EEPROM中,這樣每次USB芯片上電后會自動將固件程序從EEPROM中加載到片內RAM中,接著USB主機復位EZ-USB,并執行固件代碼。在實際中使用的是第二種方式。
上位機程序主要實現以下功能:讀取并處理采集到的數據;對處理后的數據進行準確顯示;實現用戶對整個系統的控制。總之,上位機程序的編寫要做到數據處理的精確性,與人機交互界面的易操作性。在Windows下,VC++下的MFC應用程序框架正適合我們的需求。Cypress公司提供了在VC++開發中所需要的API函數,要實現對CY7C68013A的控制,只需要將提供的動態鏈接庫加入工程并調用相應的函數即可。
在應用程序的編寫中,考慮到,由于數據采集和處理過程是需要一定時間的,為了防止在這段時間內數據采集與用戶控制界面互相干擾,采用了多線程技術。程序的主線程是用戶控制界面,新建一個輔助線程進行數據采集和處理,這樣就把數據采集和處理放在了程序的后臺,不會影響用戶控制界面。在程序的開始我們就創建出自動重置的事件對象以及數據采集和處理的線程,并用事件對象將此線程暫停,在用戶按下主界面的相應按鈕之后,在其消息響應函數中使用SetEvent函數解放輔助線程,執行數據采集和處理,實際效果如圖4所示。

圖4 用戶控制界面實際效果圖
儀器實際測量過程中主要有進樣、一點定標、兩點定標和數據采集等步驟。進樣是儀器的準備階段,主要用來將標準液吸入管道,排除儀器管道中殘留的空氣。兩點定標主要用來確定電極斜率K的值,一點定標用來確定EA的值。由于EA變化比K值受外界影響變化快,再結合實際使用情況,兩點定標可每天測一次,一點定標可每三十分鐘一次。在定標結束后就可用采集數據按鈕測定待測液的濃度了。兩點定標的流程圖如圖5所示。

圖5 兩點定標流程圖
基于USB的電解質分析儀,設計了硬件電路,并編寫了相應的系統軟件,通過USB協議與計算機相連,實現了高精度的特定離子濃度采集和數據的實時顯示,同時又可以通過上位機軟件對整個儀器進行控制,用戶界面友好,并且即插即用,可移植性強。
[1]徐建麗.高精度多路數據采集系統的設計[J].現代電子技術,2010(3):99-101.
[2]武建衛,趙英凱.應用于電解質分析儀的信號調理電路的設計[J].傳感器與微系統,2009(28):101-105.
[3]Cypress Semiconductor.EZ-USB FX2LP(TM) USB Microcontroller High-Speed USB Peripheral Controller Cypress Semiconductor,2008.
[4]宋成艷.基于USB接口通訊的多傳感器數據采集系統[J].儀表技術與傳感器,2008(11):101-103.
[5]龔志勇.USB及其在水質監測系統中的開發與應用[D].武漢:華中科技大學,2005.
[6]薛園園.USB應用開發技術大全[M].北京:人民郵電出版社,2007.
[7]王鐵流,李宗芳,陳東升.基于STM32的USB數據采集模塊的設計與實現[J].測控技術,2009(8):37-40.
[8]孫鑫,余安萍.VC++深入講解[M].北京:電子工業出版社,2006.