張楚炎
南京市第二醫院 (江蘇 南京 210000)
顯微鏡是一種精密光學儀器,被廣泛應用于各個領域,尤其是醫學診斷和科研領域[1]。顯微鏡的產品質量主要取決于光學系統(包括照明系統、聚光鏡、物鏡和目鏡等)是否能產生高分辨率、低視覺疲勞感、立體感等優良的視覺效果[2]。
目前,普通顯微鏡的光源主要分為LED 和鹵素燈泡兩大類[3]。其中鹵素燈泡光源顯微鏡的光源部分經常發生故障[4],且燈泡燒壞率較高[5-6]。分析我院近3年的顯微鏡報修記錄發現,光源故障占比69%。究其原因,一方面是燈絲老化所致,屬于自然損耗;而另一方面則是人為操作不規范造成的,如打開光源時未將亮度調節旋鈕置于最低擋,導致開啟瞬間電流過大,燈絲燒斷。另外,使用后忘記關閉電源,從而損害燈泡壽命的情況也時有發生[7-8]。
基于上述情況,除了加強相關使用人員的培訓外,本研究設計了一套顯微鏡光源智能控制系統,可以實時判斷顯微鏡的使用狀態并且根據使用狀態自動調節光源的輸出電壓,從而降低因人為操作失誤所導致的鹵素燈泡異常損耗,也可在一定程度上節約能源。本研究的主要工作包括:(1)改進了光源供電電源的反饋回路,使其輸出電壓數控可調并預留控制接口;(2)設計了控制系統,以單片機為核心配合數模轉換芯片,通過供電電源的控制接口對光源的輸出電壓進行數字化調節;(3)采用光電傳感器和人體紅外傳感器,并編寫相應判斷算法,實現了對顯微鏡使用狀態(即使用或者閑置)的判斷,并根據此結果對顯微鏡光源供電電壓進行自動調節。
顯微鏡光源系統通過調節光源的供電電壓進而調節亮度[1],而市面上的鹵素燈泡大同小異,大多只有額定電壓與功率的區別,因此本研究以一款規格為“6 V、20 W”的鹵素燈泡為例進行了設計。
整個硬件系統分為電力系統和控制系統兩大部分,見圖1。電力系統是以單片式開關電源芯片TOP223為核心的開關電源[9],最大輸出功率為15 W,可將220 V 交流電變為直流電給燈泡供電[10];同時,使用旋轉編碼器代替了傳統的電位器并修改了開關電源的反饋電路部分[11],以實現輸出電壓數控調節的功能[12-13];此外,預留了控制接口,為后續的自動化調節奠定了基礎。控制系統以單片機為核心配合多個傳感器構成,可以實現對顯微鏡使用狀態的判斷和對燈泡供電電壓的自動調節。

圖1 硬件系統結構框圖
系統總體運行流程見圖2。整個系統上電以后,首先進行初始化,然后進行外設和傳感器的初始化,完成后自動將燈泡電壓平緩提升至上次關機時的光源輸出電壓,之后進入循環,在循環中通過讀取傳感器的值判斷顯微鏡的使用狀態并調節輸出電壓;通過讀取旋轉編碼器的輸出來手動調節光源的輸出電壓。

圖2 系統流程圖
選擇T OP223作為開關電源的主控芯片。TOP223芯片是美國PI公司出品的一款單片式開關電源芯片,該芯片內部集成了MOS管,僅需較少的外圍元器件即可搭建一套完整的開關電源。芯片的AC-DC轉換效率高達90%,自帶限流和過溫保護功能,穩定性高,應用廣泛。
電力系統設計原理見圖3,其輸出電壓在1.2~4.6 V 之間可調,最大輸出功率為15 W。圖3中右側所示3個端口中,LIGHT 端口接燈泡正極,GND_A 端口接燈泡負極,ADJ 口接控制系統用于輸入控制電壓。具體電路原理在此不過多講解,本設計主要對電力系統的反饋回路做了改進,以實現輸出數控可調的目的。
圖3中的LM2904為雙運放芯片,運算放大器A 與電阻R23、R60、R63、R61和電容C59組成電壓比較器A,它的作用是輸出一個固定的電壓VA;運算放大器B 與電阻R64、R55、R56和電容C61組成電壓比較器B,用于接收控制信號,由于R55和R56分壓的作用并且兩者阻值相等,因此比較器B 負端的輸入電壓值為OUT 端口電壓值的一半,即電壓比較器B 輸出值VB 等于2倍的AD 端口輸入電壓值。VA 和VB 分別通過而兩個二極管共陰極接入反饋光耦芯片PC6,即該端反饋電壓由VB 控制但不得小于VA,這樣做的原因是由于開關電源的輸出不能為0。另一路光耦芯片PC7連接開關電源的輸出電壓,通過穩壓管D54用于維持輸出電壓的穩定[14-15]。

圖3 電力系統原理圖
控制系統結構見圖4。控制系統以單片機STM32F407VET6為主控芯片[16]。電源模塊通過AC/DC模塊和穩壓模塊將市電轉化成3.3 V直流電壓,為單片機及硬件外設供電;2.5 V基準電壓為精準模擬電路供電;易失數據存儲模塊(EEPROM)作為掉電后數據不丟失的存儲芯片,記錄常用電壓值。DAC模塊通過IIC總線與MCU通信,將每次計算的數字電壓轉換成模擬電壓,用來控制開關電源的輸出電壓。旋轉編碼器用于用戶手動調節電源輸出電壓。光電傳感器和人體紅外傳感器用于判斷顯微鏡的使用狀態,當判斷為空閑狀態時,發出報警并控制輸出電壓平緩步進降至最低;當判斷為在用狀態時,輸出電壓平緩步進至上次關機時的電壓值。顯示模塊、按鍵模塊、蜂鳴器和LED燈等用于用戶交互,顯示相關系統信息進行聲光報警。

圖4 控制系統結構框圖
主控模塊設計見圖5。主控模塊以意法半導體公司所生產的STM32F407VET6單片機為核心,該單片機支持最高為168 MHz 的時鐘頻率,片上存儲容量高達512 kB,共有144個I/O 口,支持IIC、SPI、USART 等通信協議,完全滿足本設計的要求。

圖5 主控模塊設計
電源模塊設計原理見圖6。電源模塊包含一個低壓差穩壓芯片AMS1117和一個基準電壓芯片CJ431。AMS1117將輸入的5 V 直流電轉換成3.3 V給整個控制系統使用,CJ431用于提供一個精準的2.496 V 參考電壓給DAC 模塊使用[17]。

圖6 電源模塊設計原理圖
狀態判斷模塊設計原理見圖7。硬件部分由兩個紅外反射傳感器和一個人體信號感應傳感器構成。圖7左側標注光電傳感器的部分為其中一對紅外反射傳感器的原理圖。LM567是一款常見的編碼器芯片,IR333C-A 為發射管,PT333-3B 為接收管。當接收管接收到信號時,圖7左側的Infrared1口輸出低電平,否則輸出高電平;人體信號感應傳感器選用型號為AS312的紅外熱釋電傳感器,其結構較為簡單,檢測到確切人體信號后端口輸出高電平。
3個傳感器垂直于顯微鏡的后側面,分布見圖8。人體紅外傳感器負責感應周圍的人體信號,當人體紅外傳感器前面有遮擋物時,圖7中PT333-3B 接收到反射信號,輸出高電平。

圖7 狀態判斷模塊設計原理圖

圖8 傳感器分布示意圖
該模塊硬件部分由DAC 和旋轉編碼器構成,DAC用于調節控制系統向電力系統反饋端輸出的電壓值來控制電力系統輸出的電壓值[18];旋轉編碼器則可以在實現自動調節功能的同時保留手動調節功能。
3.5.1 DAC
DAC 選用MCP4725芯片。該芯片為單通道12位緩沖電壓輸出數模轉換器,可以通過IIC 接口命令將輸入和配制數據燒寫到片內非易失性存儲器,使芯片在斷電期間仍能保持之前的輸入代碼,且芯片輸出在上電后立即可用。我們在非易失性存儲器中預先設置了最低電壓值,可使系統上電時直接輸出最低電壓。
MCP4725芯片的輸入代碼為無符號的二進制值,輸出電壓范圍為0 V 至VDD。如式(1)所示,只需要向器件寫入相應的二進制值即可實現輸出電壓的調節功能。以本設計所選用的VDD值2.5 V為例,可實現最高0.0006 V 的步進輸出。

其中,Dn為輸入的二進制值。
3.5.2 旋轉編碼器
旋轉編碼器型號為KY40,其共有3種操作:逆時針旋轉、順時針旋轉、向下按。本設計主要用到了其中的順時針和逆時針旋轉,用于手動調節輸出電壓。使用旋轉編碼器代替電位器的優點包括:(1)可以實現燈泡輸出電壓的無極調壓,調節精度和準確性更高;(2)擺脫了電位器物理調節方式的限制,方便后續控制系統進行自動調節。
易失數據存儲模塊采用BL24C256A 芯片,電路見圖9。該模塊用于記錄顯微鏡從在用狀態轉為空閑狀態時的輸出電壓值,當顯微鏡恢復在用狀態可以還原為此值。

圖9 EEPROM 電路連接圖
用戶交互部分由顯示模塊、按鍵、蜂鳴器、LED 燈組成,見圖10。顯示模塊選用1.14寸的TFT顯示屏,分辨率為135×240,主控芯片為ST7789,用來顯示燈泡輸出電壓、實際輸出電壓、顯微鏡狀態等信息。蜂鳴器選擇為3.3 V 有源蜂鳴器。LED選擇型號為MHP5050RGB 的三色LED,當系統處于在用狀態時, LED 發出綠光;當系統處于判斷狀態時,LED 發出藍光;當系統處于空閑狀態時,蜂鳴器短鳴一聲報警,LED 發出紅光。

圖10 用戶交互模塊
本設計軟件編寫所用開發環境為Keil μVision5,開發語言為C 語言,兩者應用廣泛,在此不再贅述。
傳感器的值與判斷結果的邏輯關系見表1,其中L 表示傳感器輸出邏輯低電平,H 為邏輯高電平,X 表示為任意狀態。從表1可以看出,只有當3個傳感器均為L 時,系統才判斷這個瞬間設備處于在用狀態,否則均判斷為空閑狀態。
然而,僅使用上表的判斷方式會導致系統的不穩定,因此本設計采用圖11所示的流程對兩種狀態進行判斷[19]。設置標志Flag 用于指示顯微鏡當前的運行模式,Flag 為0表示顯微鏡處于空閑模式,Flag 為1表示顯微鏡處于在用模式;設置N_Count 為空閑狀態計數標志,設置C_Count 為在用狀態計數標志;設置判斷標志C_Flag 用于指示根據表1判斷后所得到的顯微鏡即時狀態(注意區別于Flag),C_Flag 為1表示在用,C_Flag 為0表示空閑。每隔200 ms 讀取傳感器的值并根據表1判斷設備即時狀態:若為空閑,空閑計數標志N_Count 計 數+1,C_Flag 和C_Count 歸 零; 當N_Count 大 于2 400(即2 min)時,Flag 置0,設 置顯微鏡當前模式為空閑模式;若判斷為在用,C_Flag 標志置為1,開始計數C_Count,當C_Count 大于10(即2 s)時,Flag 置1,設置顯微鏡當前模式為在用模式。

圖11 設備使用狀態判斷流程圖

表1 傳感器的值與判斷結果的邏輯關系
自動升壓流程設計見圖12。開機時,MCP4725芯片直接輸出最低電壓1 V,然后讀取24C256中保存的值,輸出電壓以每20毫秒步進一格的速度提升電壓至該值;同樣,當設備轉為空閑狀態時,輸出電壓以每20毫秒下降一格的速度降至1 V,實現了電壓的步進提升與降低。

圖12 自動升壓流程圖
手動亮度調節主要依靠旋轉編碼器和DAC,實現流程見圖13。設置計數標記Count 記錄旋轉方向,在定時器的中斷處理函數中判斷旋轉編碼器旋轉時的電平,判斷到旋轉時,順時針旋轉一格Count 值加1,逆時針旋轉一格Count 值減1。每格的步進值設置為0.04 V。為了保證輸出電壓不能超過最大輸出功率,當輸出電壓達到最高電壓時,輸出不再增大(本設計設置最大值為4.6 V);同時,由于開關電源的特性輸出電壓不能為0 V,當輸出電壓低于設置的最低電壓1 V 時,輸出1 V。

圖13 手動調壓流程圖
本設計使用中斷方式對旋轉編碼器進行計數,手動亮度調節具有最高的優先級,即系統一旦讀取到旋轉編碼器發生旋轉操作,系統立即將使用狀態變為在用,其之前已經計數的空閑時間計數立刻清零,重新判斷。
需要注意的是,在最初的實驗過程中,旋轉過程中計數標志Count 偶爾計錯,經調試發現是由中斷優先級設置不當導致的,定時器中斷會影響旋轉編碼器計數,將旋轉編碼器的中斷優先級提高后,計數標志Count 穩定不再計錯。
系統的電氣連接見圖14,實物連接見圖15(電力系統板安裝于顯微鏡底部,主控系統板安裝于顯微鏡后側,使光電傳感器垂直于操作人員)。

圖14 系統電氣連接圖

圖15 實物連接圖
圖16為控制信號的輸出電壓與燈泡電壓監測圖,曲線(1)為控制信號,曲線(2)為燈泡輸出電壓,使用了泰克TBS1102C 型示波器進行采樣。需要說明的是,由于開關電源輸出不能為0,空閑狀態燈泡輸出電壓將保持最低輸出1.2 V;本系統的最大輸出功率為15 W,因此最大輸出電壓為4.6 V。圖16中兩條左側的上升曲線為顯微鏡從空閑狀態轉為在用狀態時的控制電壓的上升圖,控制信號以每20毫秒步進一格(0.04 V)的速度提升2.5 V,輸出電壓以2倍的提升速度步進至4.54 V(這里的結果不為5 V 是由于需要去除二極管的壓降);右側曲線為顯微鏡從在用狀態轉為空閑狀態時的電壓下降圖。當顯微鏡處于空閑狀態時,由于燈泡從熱變冷無需太多時間,可以加快下降速度,控制信號以每20毫秒步進一格(0.1 V)的速度下降,同時燈泡輸出電壓以2倍的速度相應下降,結果符合本設計要求。

圖16 輸出電壓測試結果圖
極限距離測試結果見表2,表中所示的距離為操作人員與控制板光電傳感器的直線距離。本設計對表中所列出的每個距離分別測試了20 次,可以看出,在25 cm 以下系統可以完美識別;在25~30 cm 時,由于接近傳感器的極限距離,因此傳感器受到的干擾較大;而在大于35 cm 時,是否有遮擋物均不會對系統造成干擾。根據實際使用習慣,使用人員在操作顯微鏡時,與設備的距離不會超過20 cm;而且大于35 cm 時不進行判斷,也能在一定程度上排除其他遮擋物的干擾,因此該結果完全滿足本設計的要求。

表2 極限距離測試結果
本設計用旋轉編碼器代替傳統的電位器,配合單片機和模數轉換芯片實現了對顯微鏡光源的數控調節,獲得了更高的調節精度;并且在此基礎上結合光電傳感器和人體紅外傳感器初步實現了對顯微鏡使用狀態的判斷,比單純的光電傳感器判斷更加準確;最后,將兩者結合實現了根據使用狀態自動調節燈泡的亮度。本設計只是提出了一個初步的想法,目前市場上鮮有涉足設備使用狀態判斷的裝置,尤其是醫療設備領域。實現設備使用狀態的判斷并且智能化開關機不僅可以減少設備故障,延長設備使用壽命,還可以做到節能減排,符合國家綠色環保,可持續發展的理念。
本設計在使用狀態判斷方面雖有改進,但無論是硬件方案的選擇還是軟件算法的設計仍處于起步階段,存在一些不足(如何保證實時性,即使用人員如果很快來到設備面前,可能需要等待2 s 左右,亮度才能提升上來),均會影響使用體驗。本設計更多的作用是拋磚引玉,希望可以吸引更多專家學者不斷改進硬件和算法,例如未來可以配合AI 實現對使用人員行為的預測,使該系統更加智能。