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