1 引 言
醫(yī)學(xué)超聲診斷成像技術(shù)大多數(shù)采用超聲脈沖回波法,即利用探頭產(chǎn)生超聲波進入人體,由人體組織反射產(chǎn)生的回波經(jīng)換能器接收后轉(zhuǎn)換為電信號,經(jīng)過提取、放大、處理,再由數(shù)字掃描變換器轉(zhuǎn)換為標準視頻信號,最后由顯示器進行顯示。在基于FPGA+ARM 9硬件平臺的全數(shù)字化B超診斷儀中,前端探頭返回的回波電信號需由實時采集系統(tǒng)進行波束合成、相關(guān)處理、采集并傳輸至ARM嵌入式處理系統(tǒng),視頻信號數(shù)據(jù)量大,實時性要求高,因此選用FPGA+SRAM構(gòu)成實時采集系統(tǒng),在速度和容量上都能滿足上述要求。主要介紹B超成像系統(tǒng)中應(yīng)用FPGA進行邏輯控制進行超聲視頻圖像采集的原理和實現(xiàn)。
2 系統(tǒng)構(gòu)成工作原理
如圖1所示,采集系統(tǒng)首先由數(shù)字波束合成器對多通道超聲回波信號進行波束合成,數(shù)字波束合成器對不同通道信號進行延時,使同一點的信號同相相加,同時對多個通道的回波信號進行空間域上的加窗,類似匹配濾波,可以提高信號的信噪比。然后對合成后的超聲視頻信號做一個幀相關(guān)的預(yù)處理,即圖像幀與幀之間對應(yīng)象素灰度上的平滑處理。因為疊加在圖像上的噪聲是非相關(guān)且具有零均值的隨機噪聲,如果在相同條件下取若干幀的平均值來代替原圖,則可減弱噪聲強度。在幀相關(guān)過程中,F(xiàn)PGA要控制數(shù)據(jù)的讀取、處理以及存儲。在為了滿足視頻顯示的實時性,該采集系統(tǒng)采用雙幀存結(jié)構(gòu)的乒乓機制,由FPGA實現(xiàn)讀寫互鎖控制。經(jīng)幀相關(guān)處理完后的視頻數(shù)據(jù)交替寫入幀存A和幀存B,幀存讀控制器根據(jù)后端處理速度讀取幀存中的數(shù)據(jù),送往DMA控制器,DMA控制器開啟DMA通道進行數(shù)據(jù)傳輸。FPGA實現(xiàn)讀寫控制時,為了避免同時對一個幀存進行讀寫操作,需要設(shè)置讀寫互斥鎖進行存儲器狀態(tài)切換。
3 系統(tǒng)設(shè)計與實現(xiàn)
3.1 數(shù)字波束合成
對于具有128陣元和32收發(fā)通道的超聲探頭,在進行32路AD轉(zhuǎn)換后,將其分為4組,每組8路接收通道,每組用一片F(xiàn)PGA實現(xiàn),在該FPGA內(nèi)首先進行接收延時和動態(tài)聚焦再進行加權(quán)求和,其后再進行組間的求和產(chǎn)生超聲數(shù)字視頻信號。每一組的系統(tǒng)框圖如圖2所示:
對不同通道的回波信號進行不同的延時是達到波束聚焦的關(guān)鍵,延時按精度可分為粗延時和細延時:粗延時用于控制A/D采樣的開始時間,精度為32 ns,延時參數(shù)由FPGA的片內(nèi)RAM中讀出,更換探頭時系統(tǒng)控制器將相應(yīng)數(shù)據(jù)寫入這些RAM;細延時由采樣時鐘發(fā)生器根據(jù)不同的通道產(chǎn)生不同的A/D采樣時鐘,這些時鐘的相位互相錯開,其錯開的值剛好等于各陣元傳播延遲之差??紤]到系統(tǒng)的實時性以及探測過程中深度的變化,需要采用動態(tài)聚焦。動態(tài)聚焦是在A/D采樣開始后,通過讀取動態(tài)聚焦參數(shù),在采樣的過程中控制采樣時鐘發(fā)生器實現(xiàn)。
8個通道的回波信號經(jīng)過A/D采樣后,送入FPGA,緩沖之后同步讀出進入加權(quán)模塊,加權(quán)模塊由8個無符號為數(shù)字乘法器組成?;夭ㄐ盘柗謩e與加權(quán)參數(shù)相乘后得到具有動態(tài)聚焦和加權(quán)特性的數(shù)據(jù)。8組數(shù)據(jù)再經(jīng)過3級加法器就得到波束合成之后的超聲數(shù)字視頻數(shù)據(jù)。
3.2 幀相關(guān)處理
幀相關(guān)模塊如圖3所示,由幀相關(guān)控制器和一片存儲器組成,進行幀相關(guān)的存儲器采用大小為256 kB的靜態(tài)存儲器(SRAM)。幀相關(guān)控制器由FPGA實現(xiàn),完成地址產(chǎn)生、存儲器讀寫控制、幀相關(guān)計算功能,因為實時性的要求,即保證送往后端雙幀存的數(shù)據(jù)不能中斷,所以考慮到對逐個象素數(shù)據(jù)讀寫的同時就進行相關(guān)處理,而且需要在同一個象素時鐘周期內(nèi)完成。讀寫控制器在1個象素時鐘周期的前半段需要讀出存儲器中的數(shù)據(jù)和當(dāng)前幀數(shù)據(jù)進行相關(guān)處理;時鐘周期的后半段再將相關(guān)處理完的數(shù)據(jù)寫入存儲器以備后用,這樣送往后端雙幀存的數(shù)據(jù)依然是和象素時鐘對應(yīng)的連續(xù)象素數(shù)據(jù)。
幀相關(guān)的工作流程如下:
(1)地址產(chǎn)生。地址的產(chǎn)生由一個象索計數(shù)器實現(xiàn),輸入信號為幀同步信號VS和象素時鐘CLK。前端提供的幀同步信號VS為該計數(shù)器的復(fù)位信號,在每一幀的開始,計數(shù)器清零,然后根據(jù)象素時鐘CLK計數(shù)生成地址,每個象素時鐘周期內(nèi)地址不變,依據(jù)此地址進行存儲器的讀寫。
(2)讀取已有數(shù)據(jù)及相關(guān)處理。在一個象素時鐘周期的前半段,也就是CLK跳變?yōu)楦唠娖綍r,讀寫控制器輸出的讀信號OEl為有效,讀出前幀中一個象素的數(shù)據(jù),送到FPGA內(nèi)部實現(xiàn)的加法器的A口,與同時到達B口的當(dāng)前幀的對應(yīng)象素數(shù)據(jù)相加平均。
(3)數(shù)據(jù)保存及傳輸。在同一個象素時鐘周期的后半段,也就是CLK跳變?yōu)榈碗娖綍r,讀寫控制器輸出的寫信號WEl為有效,相關(guān)處理完的數(shù)據(jù)寫回原來的地址,同時該數(shù)據(jù)也送往幀存寫控制模塊。
3.3 幀存乒乓讀寫控制機制
超聲視頻圖像需要實時地采集并在處理后在顯示器上重建,圖像存儲器就必須不斷地寫入數(shù)據(jù),同時又要不斷地從存儲器讀出數(shù)據(jù)送往后端處理和顯示。另外,為了滿足這種要求,可以在采集系統(tǒng)中設(shè)置2片容量一樣的幀存,通過乒乓讀寫機制來管理,結(jié)構(gòu)如圖3所示。為了確保任何時刻,只能有1片幀存處于寫狀態(tài),設(shè)置1個寫互斥鎖;同時,只能有1片幀存處于讀狀態(tài),設(shè)置一個讀互斥鎖。在系統(tǒng)初始時,1片幀存為等待寫狀態(tài),另1片為等待讀狀態(tài);開始工作后,2片都處于讀寫狀態(tài)輪流轉(zhuǎn)換的過程,轉(zhuǎn)換的過程相同,但是2片狀態(tài)相錯開,這樣就能夠保證數(shù)據(jù)能連續(xù)地寫入和讀出幀存。該機制如圖4所示,工作流程為:
(1)采集過程未開始,幀存A為等待寫狀態(tài),獲得寫互斥鎖;幀存B為等待讀狀態(tài),獲得讀互斥鎖;
(2)幀存寫控制器收到一幀開始信號,判斷為采集開始,設(shè)置幀存A寫信號WE2 A有效,幀存A開始寫入當(dāng)前幀數(shù)據(jù);同時幀存讀控制器設(shè)置幀存B讀信號OE2_B有效,幀存B則開始讀出所存數(shù)據(jù);
(3)一幀結(jié)束,幀存A寫結(jié)束,釋放寫互斥鎖;幀存B讀結(jié)束,釋放讀讀斥鎖;
(4)等待另一幀開始,幀存A獲得讀互斥鎖;幀存B獲得寫讀斥鎖;
(5)另一幀開始,寫控制器設(shè)置幀存B寫信號WE2B有效,幀存B開始寫入數(shù)據(jù);讀控制器設(shè)置幀存A讀信號OE2 A有效,幀存A則開始讀出數(shù)據(jù)。
3.4 DMA傳輸
對整個B超診斷儀來說,系統(tǒng)要完成視頻圖像數(shù)據(jù)的實時采集和指定的處理,高性能ARM處理器的處理能力可達每秒數(shù)百萬條指令,因此數(shù)據(jù)的傳輸設(shè)計是提高系統(tǒng)速度的關(guān)鍵環(huán)節(jié)。ARM處理系統(tǒng)與外部的數(shù)據(jù)傳輸可以通過CPU訪問外部存儲器的方法實現(xiàn),但是效率低下,不能滿足系統(tǒng)實時性的要求,而DMA數(shù)據(jù)傳輸以不占用CPU時間和單周期吞吐率進行數(shù)據(jù)傳輸?shù)膬?yōu)點在實時視頻圖像采集系統(tǒng)中得到廣泛的應(yīng)用。但是因為DMA的傳輸速率和前端視頻圖像數(shù)據(jù)的輸入速率不匹配,很難發(fā)揮出DMA數(shù)據(jù)傳輸?shù)膬?yōu)勢。由可編程的FPGA控制SRAM組成的雙幀存可以很好地解決這個問題;此外,F(xiàn)PGA內(nèi)部嵌入了一定數(shù)量的RAM,可以經(jīng)過配置成緩沖存儲器,通過靈活的邏輯結(jié)構(gòu)可以方便地實現(xiàn)對輸入輸出數(shù)據(jù)流的控制,成為連接ARM處理系統(tǒng)和SRAM的紐帶和橋梁。
4 結(jié) 語
在B超數(shù)字視頻圖像實時采集系統(tǒng)中采用FPGA作為采集控制部分,首先可以提高系統(tǒng)處理的速度及系統(tǒng)的靈活性和適應(yīng)性:由于在FPGA和ARM處理系統(tǒng)之間采用SRAM做數(shù)據(jù)緩沖,并用DMA方式進行傳輸,大大提高系統(tǒng)的性能;由于采用FPGA可編程邏輯器件,對于不同的超聲視頻信號,只要在FPGA內(nèi)對控制邏輯稍做修改,便可實現(xiàn)信號采集;FPGA的外圍硬件電路簡單,因而在硬件設(shè)計中,可以大大減小硬件設(shè)計的復(fù)雜程度。而FPGA的時序邏輯調(diào)試可在軟件上仿真實現(xiàn),因而降低硬件調(diào)試難度。