基于CMOS圖像通道在超聲診斷儀中的應(yīng)用
1 引言
本文引用地址:http://www.ex-cimer.com/article/201706/350313.htm隨著醫(yī)療診斷儀器小型化、便攜化的進(jìn)程,高性能32位微處理器正在越來(lái)越多地應(yīng)用于各類小型醫(yī)療影像設(shè)備中,但是如何利用這些微處理器傳送和處理實(shí)時(shí)圖像,卻是一個(gè)丞待解決的問(wèn)題。從ARM 7系列開(kāi)始,ARM處理器就集成了CMOS(Complementary Metal Oxide SemiConductor)圖像傳感器接口,這為解決上述問(wèn)題提供了可能。處理器可以通過(guò)CMOS圖像傳感器接口適應(yīng)不同的CMOS圖像傳感器。通過(guò)CMOS接口,圖像數(shù)據(jù)將被送入到系統(tǒng)的CMOS圖像通道中。CMOS圖像通道為CMOS圖像傳感器接口與系統(tǒng)AHB(Advanced High peRFormanceBus)總線之間的連接通路,由CSI (CMOS Sensor Interface)和PRP(Pre-Processor)組成。該通道專門(mén)用于高速圖像傳輸,提供了多種圖像格式輸入和傳輸方式,并能在通道內(nèi)進(jìn)行顏色空間變換、窗體調(diào)整等多種操作,是診斷圖像以及其他圖像應(yīng)用傳輸?shù)睦硐胪ǖ馈?/p>
本文討論了一種基于32位微處理器ARM9E和嵌入式Linux的便攜式超聲診斷儀的解決方案。系統(tǒng)以CMOS圖像通道為診斷網(wǎng)像的傳輸通道,將采集的超聲圖像信息送人系統(tǒng)總線,在嵌入式Ijnux操作系統(tǒng)平臺(tái)上,實(shí)現(xiàn)了診斷圖像的實(shí)時(shí)顯示和靜態(tài)圖像的大容量非易失性存儲(chǔ),所實(shí)現(xiàn)的診斷系統(tǒng)不僅功能強(qiáng)大、擴(kuò)展容易,而且還兼顧了小型化的需求。
2 系統(tǒng)構(gòu)架
本文設(shè)計(jì)的便攜式超聲診斷儀系統(tǒng)結(jié)構(gòu)如圖l所示。用戶通過(guò)輸入設(shè)備向系統(tǒng)輸入控制命令,完成超聲圖像的采集、顯示、保存等相關(guān)處理。當(dāng)執(zhí)行掃描命令時(shí),系統(tǒng)通過(guò)串口向以FPGA為核心的超聲圖像采集模塊發(fā)送圖像采集命令,控制超聲探頭掃描驅(qū)動(dòng)電路和信號(hào)發(fā)射接收電路同步動(dòng)作。接收的超聲信號(hào)在超聲圖像采集模塊中經(jīng)放大、模數(shù)轉(zhuǎn)換后送人FPGA,完成數(shù)字掃描變換(DCS)和插值運(yùn)算后,得到二維的B超圖像信息。將該圖像信息進(jìn)行格式轉(zhuǎn)換后通過(guò)ARM芯片CMOS接13送人控制系統(tǒng),經(jīng)圖像通道傳輸后,完成在LCD(Liquid Crystal Display)上的實(shí)時(shí)顯示,同時(shí)可拔插的大容量SD(Secure Digital Memory Card)卡可對(duì)所需的圖像進(jìn)行保存。保存的圖像信息可以進(jìn)行離線處理,比如打印、電影回放、遠(yuǎn)程瀏覽等。
3 系統(tǒng)硬件設(shè)計(jì)
3.1硬件框圖
本設(shè)計(jì)選用以ARM926EJ-S為內(nèi)核的Freescale i.MX21作為處理器,控制系統(tǒng)的硬件框俐如圖2所示,系統(tǒng)是以ARM處理器為核心,外加兼容的硬件外設(shè)。超聲采集模塊完成圖像的采集和傳入,LCD把傳人的圖像信息實(shí)時(shí)的顯示出來(lái),通過(guò)SD卡把大量的圖像數(shù)據(jù)保存起來(lái)以便后期處理。通過(guò)外加USB HUB??蓪⑹髽?biāo)、鍵盤(pán)、打印機(jī)接入系統(tǒng)。本地儲(chǔ)存的診斷圖像數(shù)據(jù)可以通過(guò)快速以太網(wǎng)控制處理器DM9000送入網(wǎng)口,通過(guò)以太網(wǎng)實(shí)現(xiàn)遠(yuǎn)程瀏覽。
3.2 CMOS圖像通道
本控制系統(tǒng)CMOS圖像通道框圖如圖3所示,超聲圖像數(shù)據(jù)的傳入利用i.MX21芯片的CMOS圖像傳感器接口來(lái)實(shí)現(xiàn)。該接口支持的圖像數(shù)據(jù)類型包括RGB565、RGB888、YUV422、YUV444等。不同類型的圖像數(shù)據(jù)在CMOS口經(jīng)過(guò)CSI 8位采樣后,封裝成32位圖像數(shù)據(jù)送人CSI RxFIFO。CSI RxFIFO中的圖像數(shù)據(jù)根據(jù)類型的不同,送顯和存儲(chǔ)的硬件和軟件實(shí)現(xiàn)方法也是不同的。
(1)若類型為RGB565,且圖像窗體不需要調(diào)整(顯示設(shè)備單一)。圖像數(shù)據(jù)可以通過(guò)DMA通道直接傳送到顯示緩沖區(qū),如圖3中通道①;
(2)若類型為RGB565,且圖像窗體需要調(diào)整(顯示設(shè)備多樣化),圖像數(shù)據(jù)則需要經(jīng)過(guò)前處理器(PRPl,在PRP中調(diào)整圖像大小送入顯示緩沖區(qū),如圖3中通道②;
(3)若類型為YUV422,圖像數(shù)據(jù)則需要經(jīng)過(guò)PRP,在PRP中調(diào)整圖像大小并轉(zhuǎn)換成合適的顏色空間后送人顯示緩沖區(qū),如圖3中通道②;
(4)若類型為YUV444、RGB888,圖像數(shù)據(jù)則需通過(guò)軟件編程實(shí)現(xiàn)圖像數(shù)據(jù)的顏色處理和轉(zhuǎn)換后送入PRP調(diào)整窗體,最后送入顯示緩沖區(qū),如圖3中通道③。
本設(shè)計(jì)為使LCD接口輸出的圖像兼容QVGA、VGA、SVGA、XGA等尺寸的顯示屏,且兼顧圖像傳輸?shù)乃俾?、圖像顯示的質(zhì)量,我們使用RGB565格式,選用罔3中通道②。因此需將超聲圖像采集模塊所采集的圖像信息構(gòu)造為RGB565格式,故CMOS接口輸入的罔像信息時(shí)序圖如圖4所示。
圖中Vsync是場(chǎng)I司步信號(hào),Hsync是水平同步信號(hào),Pixelk是象素?cái)?shù)據(jù)輸入同步信號(hào),D [7:0]為象素?cái)?shù)據(jù)信號(hào)。Vsync和Hsync為低電平時(shí)即可開(kāi)始有效圖像數(shù)據(jù)的輸入,Pixelk上升沿的到來(lái)則表明進(jìn)行數(shù)據(jù)輸入,Pixelk的一個(gè)周期將完成一個(gè)圖像數(shù)據(jù)字節(jié)的輸入。在傳輸一幀圖像過(guò)程中,即Vsync的一個(gè)周期內(nèi),Hsync會(huì)出現(xiàn)H次(H為行數(shù))高電平。在Hsync的一個(gè)周期內(nèi),Pixelk將出現(xiàn)W*Pixelbytes次(W為列數(shù),Pixelbytes為每象素占用字節(jié)數(shù))高電平。而下一個(gè)Vsync信號(hào)上升沿的到來(lái)則表明一幀分辨率為W*H的圖像輸入過(guò)程的結(jié)束。
CSI RxFIFO中的圖像數(shù)據(jù)送入PRP進(jìn)行窗體調(diào)整后,通過(guò)AHB(Advanced High peRFormance Bus)進(jìn)入內(nèi)存,PRP窗體的調(diào)整通過(guò)設(shè)置PRP控制寄存器實(shí)現(xiàn)。
3.3圖像顯示及保存
FrameBuffer是Linux為顯示設(shè)備提供的一個(gè)接口,它是顯存抽象后的一種設(shè)備.對(duì)該設(shè)備進(jìn)行讀/寫(xiě)則可直接對(duì)顯存進(jìn)行操作。通過(guò)驅(qū)動(dòng)程序可為FrameBuffer在文件系統(tǒng)中創(chuàng)建一個(gè)設(shè)備文件fb0,用戶要完成對(duì)FrameBuffer的圖像輸入,只需完成對(duì)fb0圖像的寫(xiě)入操作。當(dāng)LCDC(LCD Controller)中的Pixel FIFO為空或者部分為空時(shí),LCDC要求從基于突發(fā)傳輸模式的FrameBuffer中取要顯示的圖像數(shù)據(jù)。當(dāng)LCDC的傳輸請(qǐng)求被存儲(chǔ)控制器中過(guò)的總線仲裁器接收并確認(rèn)后,F(xiàn)rameBuffer中的圖像數(shù)據(jù)將通過(guò)專用的DMA通道送入Pixel FIFO,然后經(jīng)過(guò)字節(jié)翻轉(zhuǎn)、背景前景圖像合成后通過(guò)LCDC邏輯接口直接送入LCD顯示屏接口。
通過(guò)MMC/SD接口可將SD卡接入控制系統(tǒng),利用驅(qū)動(dòng)程序?qū)D卡掛載在文件系統(tǒng)中。用戶可以編寫(xiě)應(yīng)用程序?qū)?nèi)存中的圖像數(shù)據(jù)保存在SD卡中,也可將SD卡中的圖像數(shù)據(jù)讀入到內(nèi)存中。
4 系統(tǒng)軟件設(shè)計(jì)
本控制系統(tǒng)是基于上述硬件平臺(tái)和嵌入式Linux操作系統(tǒng)開(kāi)發(fā)設(shè)計(jì)的。首先在硬件平臺(tái)上實(shí)現(xiàn)嵌入式Linux操作系統(tǒng)內(nèi)核和文件系統(tǒng)的移植,并實(shí)現(xiàn)對(duì)外設(shè)硬件的底層驅(qū)動(dòng)。應(yīng)用程序采用模塊化設(shè)計(jì),其中功能模塊設(shè)計(jì)主要包括GUI(Graphical User Interface)和WebServer程序設(shè)計(jì),應(yīng)用模塊主要包括采集模塊子程序,LCD顯示模塊子程序,打印模塊子程序,SD卡存儲(chǔ)子程序,以太網(wǎng)傳輸子程序等。本文重點(diǎn)對(duì)罔像通道相關(guān)程序做出論述。
如圖3,設(shè)計(jì)CSI RxFIFO中的圖像數(shù)據(jù)通過(guò)專用總線通道②送人PRP,DMA通道①被內(nèi)部邏輯控制器關(guān)斷。因此在CSI和PRP的驅(qū)動(dòng)程序中,CSI和PRP的初始化代碼應(yīng)作如下修改:
CSI初始化:
* (uint32_t *)GPIOB_GIUS = ~0x3FFC00; //關(guān)斷DMA通道
*(uint32_t *) CSI_CSICR1 |= 0x2; //圖像數(shù)據(jù)上升沿觸發(fā)
*(uint32_t *) CSI_CSICR1 |= 0x80; //大端格式
*(uint32_t *) CSI_CSICR1 |= 0x10000000; //PRP使能
PRP初始化:
*(uint32_t *)CRM_PCCR0 |= 0x8008000; //PRP時(shí)鐘使能
*(uint32_t *)EMMA_PRP_CNTL |=0x10000; //PRP復(fù)位
*(uint32_t *)EMMA_PRP_INTRCTRL = 0x00000000; //關(guān)中斷
*(uint32_t *)EMMA_PRP_SPIX_FMT = 0x2CA00565; //RGB565格式數(shù)據(jù)輸入
*(uint32_t *)EMMA_PRP_SFRM_SIZE = 0x028001E0; //輸入圖像窗體為640 x 480
*(uint32_t *)EMMA_PRP_DISIZE_CH1=0 x028001E0; //輸出圖像窗體為640 x 480
*(uint32_t *)EMMA_PRP_DPIX_FMT = 0x2CA00565; //RGB565格式數(shù)據(jù)輸出
*(uint32_t *)EMMA_PRP_DLST_CH1 = 0x00000280; //行步為640
本設(shè)計(jì)初始安裝分辨率為640 x 480的LCD.如上設(shè)置初始化后,圖像數(shù)據(jù)將由CSI RxFIFO進(jìn)入PRP處理。為了使上層用戶在不改變?cè)O(shè)備文件的前提下,直接利用CSI設(shè)備文件描述符,采用如下代碼將CSI設(shè)備文件的虛擬地址映射為PRP輸出的物理地址,用戶就可以直接從CSI設(shè)備文件中讀取經(jīng)PRP處理后的圖像數(shù)據(jù)。
if ((csi_data_buf = (U32 *)__get_free_pages(GFP_KERNEL, 8))) {
prp_buf_phy_addr = virt_to_phys((void *) csi_data_buf);
printk(Buffer start: 0x%08x, PRP addr: 0x%08x , (int) csi_data_buf, (int)prp_buf_phy_addr);
} else {
printk (ERROR: cannot allocate buffer memory for driver ! );
return -1; }
通過(guò)如上驅(qū)動(dòng)程序的修改,用戶就可以編寫(xiě)應(yīng)用程序?qū)崿F(xiàn)對(duì)PRP處理后的圖像數(shù)據(jù)進(jìn)行送顯和存儲(chǔ)。應(yīng)用程序的程序概圖如圖5所示:
5 測(cè)試結(jié)果
本文設(shè)計(jì)的控制系統(tǒng)經(jīng)測(cè)試,診斷圖像實(shí)時(shí)顯示的幀率可以達(dá)到20‰,大于便攜式B超圖像10幀/s的幀率要求.且LCD觀察圖像畫(huà)面清晰。采用RGB565格式的標(biāo)準(zhǔn)位圖保存診斷圖像信息,每張圖片的數(shù)據(jù)大小為:
640 * 480 * (5+6+5)/8=614400 bytes
使用1G的SD卡作為外部存儲(chǔ)設(shè)備,可以存儲(chǔ)1747張?jiān)\斷圖片。完全滿足便攜式診斷設(shè)備的要求和實(shí)際診斷情況的需要。
6 結(jié)論
本設(shè)計(jì)采用ARM9E為核心的Freescale i.MX21芯片作為便攜式超聲診斷儀中央處理器,利用其內(nèi)置的CMOS圖像傳感器通道,將超聲圖像采集模塊輸入的圖像信息實(shí)時(shí)的顯示出來(lái),并根據(jù)需要對(duì)顯示的圖像進(jìn)行保存。經(jīng)測(cè)試,該控制系統(tǒng)工作穩(wěn)定可靠,滿足了常規(guī)的診斷需要,具有較高的實(shí)用價(jià)值。
本文作者創(chuàng)新點(diǎn):本文采用的專用高速CMOS圖像傳輸通道將超聲診斷圖像輸入控制系統(tǒng)并進(jìn)行處理。在軟硬件都滿足需求的基礎(chǔ)上給出了詳細(xì)的設(shè)計(jì)實(shí)現(xiàn),說(shuō)設(shè)計(jì)的系統(tǒng)在診斷圖像的顯示幀率、顯示畫(huà)面清晰度方面都達(dá)到了很好的效果。為同類系統(tǒng)設(shè)計(jì)、升級(jí)和改進(jìn)打下了良好的基礎(chǔ)。
本項(xiàng)目產(chǎn)業(yè)化后投入市場(chǎng),年經(jīng)濟(jì)效益可達(dá) 1000 萬(wàn)元。
評(píng)論