陳 誠,董子琦
(1.重慶大學附屬腫瘤醫院,重慶400000;2.重慶郵電大學移通學院智能工程學院,重慶400000)
隨著電子產業的不斷發展,醫學技術也在不斷更新。而微創治療技術作為醫學技術的前沿科技更是受到社會的極大關注。集臨床醫學、光學、機電、信息科學、材料科學以及生物工程學等高科技學科于一身的內鏡微創治療,以其手術傷口小,疼痛輕,手術時間短,操作簡單、安全,術后恢復快等優勢,很受醫患雙方的喜愛,已成為消化、呼吸、泌尿、耳鼻喉科等系統疾病診斷和治療必不可少的醫療儀器[1]。目前受困于圖像傳感器顯示技術,電子內鏡核心技術一直掌握在國外,導致國內電子內鏡價格昂貴。雖然國內一些企業已經開始進行電子內鏡的研發,但是與國外的差距仍然比較大。
文中提出一種低成本電子內鏡系統研究方案,主要依靠三星mini2240的ARM開發板作為開發平臺,然后通過COMS圖像傳感器將采集到的圖像數據進行濾波、存儲,然后在通過液晶顯示屏進行顯示。本電子內鏡系統的光源采用高亮LED光源。
本論文所研究的電子內鏡系統是一種便攜式電子內鏡儀器系統,其前端的圖像采集部分負責向我們提供被觀測部位的圖像信息,并以標準模擬視頻信號(PAL/NTSC制式)輸出中央處理設備中,然后根據系統的控制命令要求進行相應的操作,進行簡單的圖像處理后,如進行靜態圖像存儲、視頻存儲,圖像放大等,再以標準的視頻信號(PAL/NTSC制式)輸出到顯示屏上。其主要信號流程圖如圖1所示。

圖1 系統信號流程圖
本電子內鏡系統主要包括攝像頭、高亮LED燈源、顯示屏、電源、系統控制核心、還有其他交互接口等。在本系統中系統電源主要為LED燈源、攝像頭與系統控制核心等提供電源,在選擇系統電源時需要注意電源紋波,如果紋波大了,將對系統將產生自身干擾,對系統穩定性會造成影響??紤]到電子內鏡系統需要將攝像頭深入到人胃部進行探測,在圖像采集模塊主要考慮攝像是否滿足本系統尺寸要求與像素要求。本系統中攝像頭模塊采用OV9650微型攝像頭,OV9650是OmniVision公司推出的一款高性價比的CMOS圖像傳感器,其大小為1/4英寸,像素為130萬像素,具有像素高,體積小,價格低等優點,完全滿足本系統對尺寸與像素的要求。系統控制核心采用三星mini2240的ARM開發板作為中央處理平臺,該開發板集成linux操作系統,方便后期進行圖像數據處理。其采用S3C2440芯片作為該平臺的處理核心。其工作頻率為400 MHz,采用基于ARM架構,具有良好的數據處理能力,廣泛應用于醫療設備,通信設備中,同時該ARM處理平臺集成了SDRAM與Nand Flash共同構成系統存儲器,在存儲圖片數據時就不需要額外增加存儲器。該電子內鏡系統首先通過高亮LED光源探照胃部等區域,然后將圖像數據傳輸到ARM平臺,最后進行顯示,系統整體結構圖如圖2所示。

圖2 系統整體結構圖
在本系統中,需要為攝像頭提供燈源照明,然后攝像頭開始采集圖像數據。考慮到系統燈源需要深入到人體胃部進行探照,本系統采用大功率高亮LED作為系統燈源,LED具有體積小,亮度高等特點。在LED燈源設計中需要對燈源亮度進行調節,本系統采用PWM方式對燈源亮度進行調節,PWM脈沖可以通過系統控制核心mini2240開發板產生,考慮到本系統LED功率較大,通常需要100 mA以上電流,遠遠超過系統控制核心所能提供的電流,本系統采用PWM大電流驅動芯片BTS7960對LED進行驅動。
BTS7960芯片是一款PWM大電流驅動芯片,其內部通過P型晶體管與N型晶體管相結合方式進行PWM信號大電流驅動。該芯片總共有8個管腳,其中第3管腳用于芯片狀態控制,當3管腳為高電平時,PWM驅動開始工作,當3管腳為低電平時PWM驅動停止工作。該芯片5腳和6腳主要用于PWM頻率設定與電流反饋判斷等。對于PWM信號是通過2管腳輸入的,系統控制核心mini2240開發板通過2腳輸入PWM信號,然后經過一個二極管,到達芯片的輸入管腳,當2腳為高電平時,輸出高,反之輸出低,這樣就實現了PWM信號傳輸。其中在PWM信號輸入中串聯一個二極管主要用于反向保護,不允許該芯片倒灌電流到系統控制核心中,以免損壞mini2240開發板。高亮LED驅動電路如圖3所示。

圖3 LED驅動電路圖
OV9650實現圖像傳感器主要由SCCB總線、時序發生器、DSP、A/D轉換器、相關寄存器等組成。其圖像數據傳輸是通過SCCB總線數據進行傳輸。SCCB(Serial Camera Control Bus)是和I2C相類似的一個協議,支持的數據傳輸速率分別是100 kb/s和400 kb/s。它是歐姆尼圖像技術公司(OmniVision)開發的一種總線技術,廣泛應用于OV系列圖像傳感器上。標準的SCCB協議是一種3線的總線,由SCCB_E、SIO_C、SIO_D組成,分別為SCCB總線的使能線、時鐘線和數據線,可以實現對多個從器件進行控制。但有時為了減少芯片的引腳,將其縮減為2根總線,即SIO_C和SIO_D,時鐘線和數據線。2線的SCCB總線只能是一個主器件對一個從器件控制,且需要主器件至少具備一個以下條件:
1)主器件可以使SIO_D處于除了高、低電平之外的第三態—高阻態。
2)主器件能夠驅動SIO_D,而且驅動電壓可以比正常識別電壓更高或更低。
SCCB控制總線功能的實現主要是依靠SIO_C、SIO_D兩條總線上電平的狀態以及兩者之間的相互配合實現的。SCCB總線傳輸的啟動和停止條件如圖4所示,SIO_E由高到低的變化變表明3線SCCB總線的數據傳輸開始,不過為了避免在數據傳輸開始之前出現不確定的總線狀態,在SIO_E有效前和失效之后,主器件都必須驅動SIO_D為1。

圖4 三線數據傳輸時序圖
在本系統中,圖像采集模塊主要用OV9650 CMOS攝像頭。OV9650攝像頭主要是由一塊封裝有SXGA攝像傳感器和圖像處理器構成。OV9650利用先進的傳感器技術,降低甚至消除普通的光照設備或者電子干擾造成的圖像污染。例如混合模式噪聲,拖尾效應等。可以得到一個清晰,十分穩定的彩色圖像,極大的提高了圖像質量。OV9650可以提供全幀,或者8/10位窗口輸出幀??梢酝ㄟ^設置OV9650相關寄存器以控制圖像顯示時的幀速率,輸出格式,數據傳輸,曝光控制,伽馬控制白平衡等。OV9650可以輸出SXGA,VGA,QVGAF等格式。
OV6950圖像傳感器的讀寫主要是通過SCCB總線進行讀寫的。其接口支持多字節讀/寫。主設備必須保證內部地址在寫周期中而不是在讀周期中。OV6950讀內部地址是在寫周期之前。在多字節讀/寫周期中,內部寄存器地址可以在第一個數據字節之后自動增加,以便于連續的放置在一個總線周期上。在一個多字節周期內重寫它的原始內部寄存器地址;如果一個讀周期緊跟著一個多字節周期的話,在一個單字節寫周期內可以將一個新的地址插入其中。OV6950還支持一個單設備ID號,在寫周期的時候這個ID被預先設置為0x6C,而在讀的時候被預先設置為0x6D。在SCCB中的寫周期中,第二個字節是為選擇單個芯片上寄存器的內部寄存器地址。第三個字節是這個寄存器要寫入的數據。但是寫入沒有生效的內部地址將會被忽略的。在讀周期中,第二個字節是預先存儲的內部地址的數據,在無效的內部地址讀時,會返回不確知的信息。OV9650攝像頭主要電路圖如圖5所示。
由圖5可知,OV9650攝像頭外圍電路主要有外部晶振與電源,其中外部晶振一般為12MHz用于給攝像頭提供時鐘信號。時鐘信號通過Video Timing Generator(時序發生器)后實現幀信號的產生、幀的相關速率控制等,該時序發生器能產生七中不同的幀。電源模塊主要給攝像頭提供電源,在開始進行圖像采集后,圖像數據就通過OV_D0-OV_D8這8位數據端口傳輸到中央處理器中。
本系統是以是以mini2240開發板作為處理器,該開發板是以linux操作系統為軟件平臺,在此基礎上進行linux內核的裁剪,相關模塊底層驅動設計,圖像采集模塊軟件設計,led燈源設計等。
圖像采集主要完成OV9650攝像頭的圖像采集,將內核采集到的圖像信息發送給應用層,應用層在將接受到的數據進行圖像壓縮及格式轉換,將yuyv格式圖像信息壓縮轉換為jpeg格式,在編寫圖像采集程序時需要編寫底層驅動程序。驅動程序主要是圍繞file_operations結構體展開的,實現里面的各個函數,主要有 camera_open()、camera_read()和camera_ioctl()等。編寫好驅動程序后需要編寫應用層圖像采集程序。

圖5 OV9650電路圖
在應用層圖像采集程序中主要函數接口如下,打開圖像設備open("/dev/video0",O_RDWR|O_NONBLOCK),查詢圖像設備的功能函數ioctl(camerafd,VIDIOC_QUERYCAP,&cap),設置圖像捕獲格式函數ioctl(fd,VIDIOC_S_FMT,&fmt),當設置好圖像格式后需要向內存申請幀緩沖函數ioctl(fd,VIDIOC_REQBUFS,&req),申請到幀緩沖后需要將采集到的數據從內核復制到應用層,但是這樣對系統的開銷比較大,使用mmap()函數,直接將內核地址映射到用戶空可以減小系統開銷。
在本系統中,我們采用可控的高亮LED作為本系統的燈源,該燈源采用PWM進行通信。利用CMOS圖像傳感器獲取的圖像,將其顯示在開發板自帶的液晶顯示器上。當液晶屏上的圖像中有一塊80*80個點圖像區域的平均亮度數值小于暗閾值value_back(默認為10)時,則說明圖像過暗。將需要增加的LED光源的數值增加,然后通過增加PWM占空比從而增加光源亮度。當有一塊40*40個點圖像區域的平均亮度數值大于亮閾值value_bright(默認為250)時,則說明圖像過亮。將需要減少的LED光源的數值,然后通過減小PWM占空比從而減小光源亮度。從而實現光源的智能控制。
本次實驗用3節7號干電池串聯作為CMOS攝像頭的電源,電壓在3.8 V附近,采用計算機顯示器來顯示CMOS攝像頭所采集的圖像,顯示器色溫參數調整為6 500 K。在測試程序中圖片采集格式為YUV422,采集速度為15幀每秒,圖片分辨率為320*240,采集截圖如圖6所示。與傳統系統相比該系統在視頻采集過程中穩定,沒有出現抖動現象,畫面流暢,圖像色彩較好。

圖6 測試結果圖
文中設計了一種內鏡系統的研發,對系統硬件結構,工作原理進行了分析,詳細介紹了攝像頭的原理,硬件原理圖,以及在linux下的驅動設計。最后通過實驗證明該系統穩定,圖像數據清楚,可以廣泛應用于醫療設備中。