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