醫(yī)用電子內(nèi)鏡嵌入式視頻采集控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
點(diǎn)擊:950
A+ A-
所屬頻道:新聞中心
摘要:介紹了一套基于視頻編解碼芯片、閃存以及FPGA的醫(yī)用電子內(nèi)鏡實(shí)時(shí)圖像采集控制系統(tǒng)。文中給出了整套系統(tǒng)的硬件方案及其設(shè)計(jì)框圖并介紹了乒乓操作的原理及系統(tǒng)的FPGA程序?qū)崿F(xiàn)方法。經(jīng)測試表明系統(tǒng)的性能穩(wěn)定易于維護(hù)成本低廉、性價(jià)比較高,在醫(yī)用內(nèi)窺鏡領(lǐng)域有較好的應(yīng)用前景。
隨著內(nèi)窺鏡外科、微創(chuàng)外科技術(shù)的迅猛發(fā)展,醫(yī)用電子內(nèi)窺鏡已經(jīng)成為當(dāng)前應(yīng)用非常廣泛的一種醫(yī)療儀器。目前,國產(chǎn)醫(yī)用電子內(nèi)鏡一般采用視頻卡采集,然后在微機(jī)中進(jìn)行處理,有信號損失大、圖像效果差、數(shù)據(jù)容易丟失、處理時(shí)間較慢、設(shè)備繁多和成本高等缺陷。采用嵌人式視頻控制處理技術(shù),可以借助數(shù)字化技術(shù)對信號進(jìn)行處理,信號損失少、圖像效果好、配置靈活、維護(hù)方便,而且大大降低了成本。
本文采用視頻編解碼芯片SRAM, NAND FLASH與現(xiàn)場可編程門陣列FPGA (Field Programmable Gate Array)設(shè)計(jì)了一套醫(yī)用內(nèi)鏡嵌人式圖像采集控制系統(tǒng)。其中,視頻解碼芯片可以從視頻信號中自動獲取行、場同步信號并完成A/D轉(zhuǎn)換,而視頻編碼芯片則可自動對數(shù)字信號進(jìn)行D/A轉(zhuǎn)換,輸出模擬信號。SRAM用于對視頻流進(jìn)行乒乓操作,起緩沖作用,而FLASH則用于對個別圖像進(jìn)行存儲,適時(shí)進(jìn)行回放。使用FPGA/CPLD開發(fā)數(shù)字電路,可大大增加電路的集成度、減小PCB體積小、增強(qiáng)系統(tǒng)功能、降低投資和縮短開發(fā)周期,且具有可反復(fù)編程修改、開發(fā)工具智能化和電路設(shè)計(jì)靈活等特點(diǎn)。隨著電子工藝的不斷改進(jìn),低成本的FPGA/CPLD器件已成為當(dāng)今硬件開發(fā)設(shè)計(jì)的首選方式之一。因此,本設(shè)計(jì)具有小體積、低成本、高可靠性和易于再開發(fā)等優(yōu)點(diǎn)。
1.系統(tǒng)工作原理及設(shè)計(jì)方案
視頻采集的系統(tǒng)框圖如圖1所示。系統(tǒng)上電后,單片機(jī)(MCU)通過I2C總線對視頻編解碼芯片初始化。初始化成功后,視頻解碼芯片開始工作,將通過CCD攝像頭采集到的模擬視頻信號轉(zhuǎn)換成720x576的YUV4:2:2數(shù)字信號,然后輸人FPGA。FPGA一方面作為SRAM的地址發(fā)生器,將數(shù)據(jù)輸人到SRAM;另一方面還產(chǎn)生SRAM的讀寫控制信號,用兩片SRAM以乒乓操作方式工作,使每片保存一場圖像。與此同時(shí),F(xiàn)PGA又將SRAM中的數(shù)據(jù)傳人視頻編碼芯片中。由于采用了乒乓操作,因此保證了視頻流的流暢性,而視頻編碼芯片則對從FPGA輸人進(jìn)來的數(shù)字信號進(jìn)行編碼處理,從而將數(shù)字信號還原成模擬視頻信號,傳人顯示器進(jìn)行顯示。
通過外部按鍵,可對FPGA發(fā)送的圖像進(jìn)行凍結(jié)、存儲、刪除、回放以及分屏回放等處理。一旦得到外部按鍵信號,F(xiàn)PGA將會按照NAND FLASH的讀寫協(xié)議,在產(chǎn)生SRAM地址信號和讀寫控制信號的同時(shí),自動產(chǎn)生FLASH讀寫控制信號,并向FLASH發(fā)送相關(guān)的讀寫命令以及地址信息,從而將數(shù)據(jù)從SRAM搬移至FLASH中(存儲)或者從FLASH中搬移至SRAM(回放)。而當(dāng)FLASH中數(shù)據(jù)不再需要時(shí),可通過FPGA發(fā)送刪除命令,直接對FLASH的指定位置進(jìn)行擦除操作,從而避免了存儲空間的不足。其各部分硬件選擇和設(shè)計(jì)如下:
圖1系統(tǒng)結(jié)構(gòu)圖
Fig. 1 System structure diagram
視頻解碼芯片采用CONEXANT公司的Bt835KRF,對輸人信號進(jìn)行A/D轉(zhuǎn)換,并提供同步信號與數(shù)字信號。視頻編碼芯片采用CONEXANT公司的型號為Bt860產(chǎn)品,根據(jù)解碼器提供的同步信號和數(shù)據(jù),在輸出端完成D/A轉(zhuǎn)換。FPGA采用ALTERA公司Cyclone系列的EP1C6Q240C8芯片。該芯片采用0.13um工藝技術(shù),全銅SRAM工藝,具有5980個邏輯單元,支持近12萬門的設(shè)計(jì),內(nèi)嵌RAM共有92160bits,包含2個鎖相環(huán)電路,包含34個差分通道,最大用戶I/O數(shù)有185個,可滿足設(shè)計(jì)要求。
圖像緩存模塊采用的SRAM芯片是美國IDT公司生產(chǎn)的IDT71V424。它是采用高性能和可靠性的CMOS工藝生產(chǎn)的高速靜態(tài)存儲器,其單片存儲容量為512Kx8 Bit,恰好可以存放一幀圖像的數(shù)據(jù),且具有高速的訪問時(shí)間(10或12 ns),足夠用來保證視頻流傳輸過程中的實(shí)時(shí)性。其內(nèi)部完全由靜態(tài)異步電路構(gòu)成,無需輸入時(shí)鐘信號,也不必對芯片進(jìn)行刷新,即可直接對無用數(shù)據(jù)進(jìn)行覆蓋。
圖像存儲模塊采用SAMSUNG公司生產(chǎn)的NAND FLASH,型號為K9F5608UOD,容量為264M。NAND結(jié)構(gòu)的FLASH是SAMSUNG公司推出并著力開發(fā)的新一代數(shù)據(jù)存儲器件,電源電壓為1.7-3.6V,體積小,功耗低,容量最大可達(dá)1GB,按頁進(jìn)行讀寫,按塊擦除,通過I/O口分時(shí)復(fù)用作為命令壯也址墩據(jù)。
2.系統(tǒng)的FPGA設(shè)計(jì)與實(shí)現(xiàn)
2.1乒乓緩存控制原理
乒乓操作是一個常常應(yīng)用于數(shù)據(jù)流控制的處理技巧,典型的操作方法如圖2所示。輸人數(shù)據(jù)流通過輸入數(shù)據(jù)選擇單元(在本采集系統(tǒng)中,F(xiàn)PGA內(nèi)部邏輯結(jié)
構(gòu)完成此數(shù)據(jù)選擇功能),等時(shí)地將數(shù)據(jù)流分配到數(shù)據(jù)緩沖區(qū)SRAM A和SRAM B中。在第一個緩沖周期,也就是第一場的時(shí)間,將輸人的數(shù)據(jù)流緩存到SRAM A;在第二場的時(shí)間,通過輸人數(shù)據(jù)選擇單元的切換,將輸人的數(shù)據(jù)流緩存到SRAM B。與此同時(shí),將SRAM A中緩存的第一周期數(shù)據(jù)(第一場圖像數(shù)據(jù)),通過輸出數(shù)據(jù)選擇單元的選擇,送到數(shù)據(jù)流處理模塊(視頻流編碼芯片BT860)處理。在第三個緩沖周期,通過輸人數(shù)據(jù)選擇單元的再次切換,將輸人的數(shù)據(jù)流緩存到SRAM A中,與此同時(shí)將SRAM B中緩存的第二周期數(shù)據(jù)(第二場圖像數(shù)據(jù))通過輸出數(shù)據(jù)選擇單元的切換,送到數(shù)據(jù)流處理模塊運(yùn)算處理。如此循環(huán)運(yùn)行,周而復(fù)始。
圖2乒乓操作原理圖
Fig. 2 Ping-pong operation schemantic diagram
乒乓操作的最大特點(diǎn)是通過輸人數(shù)據(jù)選擇單元和輸出數(shù)據(jù)選擇單元,按節(jié)拍、相互配合地切換,將經(jīng)過緩沖的數(shù)據(jù)流不停頓地送到數(shù)據(jù)流運(yùn)算處理模塊進(jìn)行運(yùn)算及處理。把乒乓操作模塊當(dāng)作一個整體,此模塊兩端的輸人數(shù)據(jù)流與輸出數(shù)據(jù)流均是連續(xù)不斷的,沒有任何停頓,因此非常適合進(jìn)行流水線式處理,完成數(shù)據(jù)的無縫緩沖與處理。
2.2 FLAS日內(nèi)部結(jié)構(gòu)
由圖3所示可知,該器件由2K個塊(block)組成,每個塊有32頁,每頁有512+16字節(jié),總?cè)萘繛?56+8M。其中,528字節(jié)分成A, B, C, 3個區(qū)(如圖4所示)。對每一頁的尋址需要通過I/O口將地址分成三次發(fā)送,其中第二、三次發(fā)送的是行(頁)地址(A9-A24),指明尋址到某一頁;而第一次發(fā)送的則是列地址(AO-A7),指明尋址到指定頁中某一字節(jié)。
圖4起始指針與區(qū)域關(guān)系對照表
Fig. 4 Relationship between pointer and region
由圖4可以看出,OOH, O1H和SOH只是選區(qū)指針。選定區(qū)的內(nèi)部尋址是由第一個列地址完成的,AO-A7可以最大尋址256字節(jié)。由于OOh、O1h和5Oh這三個命令信號中包含著片地址信息,因此我們把他們稱為FLASH的地址A8。
2.3 FPGA的邏輯控制
在本系統(tǒng)中,主要通過VHDL語言對FPGA的邏輯控制進(jìn)行了兩部分的設(shè)休一部分是數(shù)據(jù)緩存部分,也即SRAM,另一部分則是數(shù)據(jù)的存儲部分一FLASH,這兩部分在下面著重介紹。
2.3.1數(shù)據(jù)緩存部分(SRAM)
在視頻采集過程中,必先將數(shù)據(jù)存儲至SRAM進(jìn)行緩沖,并在采樣的同時(shí)產(chǎn)生地址。FPGA的讀寫控制模塊需要同時(shí)給出兩組地址線,兩組輸人、輸出數(shù)據(jù)總線以及讀、寫、片選等控制SRAM的控制信號線,其中一組用以控制SRAM A,另一組則控制SRAM B,以便將解碼出來的數(shù)字信號通過數(shù)據(jù)信號總線交替地送給SRAM A DATA與SRAM B DATA。為了解決共用總線時(shí)的競爭冒險(xiǎn)問題,還要適當(dāng)?shù)乜刂茢?shù)據(jù)信號與SRAM A DATA, SRAM B DATA的通斷??梢杂闷媾紙鲂盘杹砜刂芐RAM A和SRAM B的選擇控制。而對SRAM的讀寫控制,則依靠讀寫控制信號SRAM WE來完成。實(shí)際上,SRAM的數(shù)據(jù)線也有兩組,其工作方式和地址線一樣。為了給FPGA以充足的時(shí)間來讀取SRAM中的數(shù)據(jù),還要控制每場圖像存人不同的SRAM,從而使得兩片SRAM以乒乓方式交替工作。
本設(shè)計(jì)采用VHDL對FPGA進(jìn)行邏輯實(shí)現(xiàn),程序中的乒乓控制部分仿真圖如圖5所示。
圖5乒乓操作仿真圖
Fig.S Ping-pong Operation Simulation
其中bt835_ field是解碼芯片BT835的場同步信號,當(dāng)它低時(shí),我們看到SRAM A的輸出信號sram_oel為低,而寫人信號sram wel為高,8位數(shù)據(jù)線sram_diol則呈高阻態(tài),這代表此時(shí)SRAM A正執(zhí)行讀取操作,將前鎖存的奇場信號輸出至編碼器BT860。而此時(shí)的SRAM B則恰恰相反,它的輸出信號sram_ oe2為高,而寫人信號sram_ wet為低,這說明它正在執(zhí)行寫人操作,將輸人端的信號進(jìn)行鎖存。因此,我們可以看到在它的8位數(shù)據(jù)線sram_ dio址的數(shù)據(jù)與輸人端的bt835_ dat吐的數(shù)據(jù)完全一致。而當(dāng)bt835_ field為高時(shí),則兩塊SRAM互換職責(zé),由此奇偶交替,完成乒乓操作。
2.3.2數(shù)據(jù)存儲部分(FLASH)
當(dāng)發(fā)現(xiàn)有用數(shù)據(jù),需要將有用數(shù)據(jù)存儲至FLASH或者通過FLASH進(jìn)行回放時(shí),F(xiàn)PGA不僅要產(chǎn)生SRAM的地址以及讀寫控制信號,還需按照FLASH真值表(表1)的要求,產(chǎn)生FLASH讀寫控制信號FLASH_WE和FLASH_ RE,以及命令鎖存信號FLASH_ CLE和地址鎖存信號FLASH_ ALE,并根據(jù)具體需要,產(chǎn)生不同的操作指令以及相對應(yīng)的地址信息,從而使得FLASH按照要求進(jìn)行擦除、存儲以及讀取等操作。
表1 K9F5608UOD真值表
Tab. 1 K9F5608UOD Truth-table
本設(shè)計(jì)用QuartusII 7.2對FLASH各功能單元進(jìn)行仿真,并用SignalTapII對實(shí)際工作情況進(jìn)行信號采集,采集所得結(jié)果如圖6所示。
(c). Display operation
圖6 FLASH各功能單元仿真
Fig. 6 Flash Function Simulation
每當(dāng)flash_cle處在高電平時(shí)flash we產(chǎn)生一布生升沿,則將此時(shí)8位數(shù)據(jù)線flash_io上的信號作為命令信氣由圖6所示,擦除的命令信號為60 h,存儲則為80 h。而進(jìn)行讀取操作時(shí),00h, Olh, 50h皆可,具體選用情況取決于初始地址位于A, B, C中的哪個區(qū),詳見圖4所示。
當(dāng)發(fā)送完操作命令信號后,若是執(zhí)行存儲或讀取操作,則需要將24位地址(AO-A7, A9-A24)從低到高每次8位的形式分三次發(fā)送,此時(shí)flash_ale置高位,flash_we共需產(chǎn)生三個匕升沿,每產(chǎn)生一個上升沿,則將flash_io上采集到的信號作為地址信號發(fā)送。而由于擦除操作是以塊為單位進(jìn)行,在擦除時(shí)只需發(fā)送塊地址,即A9-A24共16位地址即可,因此在地址命令發(fā)送階段,flash we只需產(chǎn)生兩個上升沿即可。地址發(fā)送完畢后,需再拉低flash_ale和拉高flash_cle,發(fā)送一個命令信號DOh。
3.結(jié)果
本設(shè)計(jì)最終實(shí)物如圖7中所示,其中,(a)為整個醫(yī)用電子內(nèi)鏡系統(tǒng)圖,包括內(nèi)窺鏡(信號源)、顯示器以及信號采集控制系統(tǒng)(本文設(shè)計(jì)核心);(b)為本設(shè)計(jì)整體外觀圖;(c)為本設(shè)計(jì)詳細(xì)實(shí)物圖。
本設(shè)計(jì)于2009年4月與上海醫(yī)用光學(xué)儀器廠生產(chǎn)的醫(yī)用電子內(nèi)鏡成功配套,極好的還原了電子內(nèi)鏡所采集的圖像信號,實(shí)現(xiàn)了對視頻信號.的PAL制式兼容,可輸出Video, S-Video信號;圖像可由操作者控制,實(shí)現(xiàn)動態(tài)、靜態(tài)(凍結(jié))的切換;紅綠藍(lán)色彩分離單獨(dú)可調(diào);圖像的亮度和對比度亦單獨(dú)可調(diào);可保存最多40幅圖像(720 x 480);在顯示設(shè)備上可以全屏顯示,也可分屏顯示(一次回放4幅圖像,即圖中所示)等多項(xiàng)功能。以上功能均通過上海醫(yī)用光學(xué)廠質(zhì)檢部門檢測,檢測結(jié)果合格。
4.結(jié)束語
本文設(shè)計(jì)了一套基于視頻編解碼芯片、靜態(tài)隨機(jī)存儲器、閃存與FPGA的醫(yī)用電子內(nèi)鏡嵌人式圖像采集控制系統(tǒng)。利用解碼芯片BT835將模擬信號轉(zhuǎn)換為數(shù)字信號,并由FPGA進(jìn)行邏輯控制,將采集的圖像進(jìn)行存儲和回放等操作。其硬件結(jié)構(gòu)簡單,穩(wěn)定性高,易于維護(hù),成本低廉,具有很強(qiáng)的實(shí)時(shí)性、實(shí)用性和可移植性,可用于各類圖像采集系統(tǒng)。
(審核編輯: 智匯張瑜)
分享