謝長生,陳振嬌,張 俊,王勝輝
(1.中國電子科技集團公司第五十八研究所,江蘇 無錫214035;2.上海海驕機電工程有限公司,上海201801;3.上海市特種設(shè)備監(jiān)督檢驗技術(shù)研究院,上海200333)
PE 管的原材料是聚乙烯,它是一種高分子有機合成材料。PE 管的焊接質(zhì)量直接影響到管道系統(tǒng)的安全和壽命,為了安全考慮,必須對PE 管環(huán)焊縫進行內(nèi)部缺陷的全面探傷,但是目前對PE 管焊接缺陷檢測尚無成熟可靠的方法,國內(nèi)和國際上在此領(lǐng)域尚處于探索和研究階段。相比于采用傳統(tǒng)的超聲無損探傷,超聲相控陣檢測技術(shù)具有較寬的有效探傷范圍、良好的缺陷定位和定量分析能力、更高的缺陷分辨率及檢出率[1]。目前市面上的相控陣探傷儀主要用于金屬領(lǐng)域,在PE 材料及環(huán)焊縫探傷方面尚有待改進和增強。
PE 超聲相控陣探傷儀由于要用于作業(yè)現(xiàn)場檢測,所以對其便攜性、待機時間長等有一定要求。相控陣探傷儀的算法復(fù)雜、計算量大、實時性強,所以其軟硬件實現(xiàn)架構(gòu)必須具有很強的信號和數(shù)據(jù)處理能力。TI 公司推出了C66AK2Hxx 系列數(shù)字信號處理SoC 器件,內(nèi)含多達4 個ARM 核、8 個C66x DSP核。此處設(shè)計采用該系列中的一款C66AK2H06 芯片,其含2 個ARM 核、4 個C66x DSP 核。將其運用到PE 超聲相控陣探傷儀設(shè)計中,可達到高性能、低功耗、低成本的目標。
PE 超聲相控陣探傷儀主要有信號發(fā)射/接收、信號處理、圖像處理、用戶人機界面、測量計算、數(shù)據(jù)庫管理等功能組成。其中信號發(fā)射/接收、信號處理、圖像處理是相控陣探傷儀的核心部分,其處理流程如圖1 所示。
圖1 PE 超聲相控陣探傷儀算法處理流程
發(fā)射脈沖放大、VCA、ADC 為模擬前端,功能為生成高壓發(fā)射脈沖以驅(qū)動探頭、接受探頭回波信號及預(yù)放、壓控增益放大以及模數(shù)轉(zhuǎn)換等。發(fā)射波束形成、接收波束形成為數(shù)字前端,發(fā)射波束形成產(chǎn)生發(fā)射脈沖序列,接收波束形成接收來自于多路ADC的數(shù)據(jù),實現(xiàn)對某一給定深度和方向的聚焦,其后經(jīng)過解調(diào)和FIR 濾波、動態(tài)范圍壓縮、邊緣增強、噪聲抑制、灰階變換、幀插值等各階段信號處理、數(shù)據(jù)處理和圖像處理,最后在LCD 上顯示出被檢測物的超聲圖像[2-3]。此外還有測量、計算分析、數(shù)據(jù)庫管理、掃查控制以及用戶人機界面等功能,一般由上位機(HOST 端)實現(xiàn)。
超聲相控陣探傷儀的具體架構(gòu)實現(xiàn)有不同的方法。前端設(shè)計一般采用高壓開關(guān)、VCA、ADC 等器件,電路結(jié)構(gòu)相對比較固定。發(fā)射、接收波束形成目前主要采用FPGA 或ASIC 來實現(xiàn),以上是前端處理,中后端實現(xiàn)方案比較多,有FPGA+PC 架構(gòu)的,有FPGA+DSP+PC 架構(gòu)等。在此采用TI 公司推出的C66AK2H06 異構(gòu)多核SoC 器件,除了波束形成這種計算數(shù)據(jù)通量大的運算采用FPGA 實現(xiàn)外,其它信號處理、數(shù)據(jù)處理和圖像處理及HOST 端的用戶人機界面、測量計算、數(shù)據(jù)庫管理等功能均可采用一片C66AK2H06 芯片實現(xiàn),也省去了HOST 端處理的CPU 芯片或PC 板,提高了產(chǎn)品的便攜性,降低了功耗,具有一定的先進性和優(yōu)越性。
設(shè)計實現(xiàn)的PE 超聲相控陣探傷儀的系統(tǒng)框圖如圖2 所示。
圖2 PE 超聲相控陣探傷儀系統(tǒng)框圖
基于C66AK2H06 異構(gòu)多核SoC 芯片對超聲成像的中、后端算法處理以及HOST 應(yīng)用程序進行了并行設(shè)計與實現(xiàn),充分利用了其中多核DSP 的數(shù)據(jù)處理性能與C 語言編程的靈活性,采用軟件實現(xiàn)數(shù)據(jù)和圖像處理,提高設(shè)計的靈活性,使系統(tǒng)具有可擴展性和可升級性優(yōu)點。本系統(tǒng)軟件架構(gòu)和算法處理流程圖3 所示。圖中標灰色的模塊為ARM(HOST)上運行的軟件模塊,無標色的模塊為DSP(Local)上運行的軟件模塊。ARM 端主要實現(xiàn)用戶應(yīng)用程序,包括用戶界面、測量計算、注冊、檔案、報告、工作表管理以及輸出和聯(lián)網(wǎng)功能。DSP 端主要實現(xiàn)掃查控制、解調(diào)、基于Vector(掃描線)和Frame(掃描幀)的數(shù)據(jù)計算、掃描變換、圖像處理等。本系統(tǒng)中的信號處理、數(shù)據(jù)處理和圖像處理算法運算量大,采用DSP實現(xiàn),正好發(fā)揮C66AK2H06 SoC 中多核DSP 的高性能數(shù)字信號處理能力和靈活的算法實現(xiàn)能力。
圖3 軟件架構(gòu)和其算法處理流程
多核DSP 器件通過將多個DSP 內(nèi)核集成在一個芯片內(nèi),極大提高了數(shù)字信號處理芯片的運算性能。C66AK2Hxx 系列高性能數(shù)字信號處理SoC 采用異構(gòu)多核架構(gòu),DSP 部分的每個DSP 內(nèi)核可以運行單獨的程序,且擁有相互獨立的內(nèi)存空間,可看作是一種典型的MIMD 計算機。不同于多個DSP 芯片組成的系統(tǒng)架構(gòu),多核DSP 單芯片具有片上共享的存儲空間以及快速的核間通信能力。
此處采用的66AK2H06 芯片,擁有2 個ARM核和4 個DSP 核,其功能框圖如圖4 所示。
圖4 C66AK2H06 功能框圖
其中,DSP 核為1.2 GHz 定/浮點DSP 核,性能高達定點40 GMacs/Core、浮點20 GFlops/Core 運算能力。采用4 級存儲結(jié)構(gòu),每個C66x 核心上都集成了32 kB 的L1 程序緩存和L1 數(shù)據(jù)緩存以及512 kB 的本地L2 存儲。ARM 核為A15 ARM,工作在1.4GHz下,具有32 kB 的L1 程序緩存和L1 數(shù)據(jù)緩存以及共用的4 MB 的L2 存儲。除此之外,芯片還集成了多核共享存儲器控制器(MSMC),所有核共享MSMC控制的存儲空間,包括6 MB 的片上SRAM 以及通過72-Bit EMIF 接口擴展的DDR3 外部DRAM[4]。
程序并行設(shè)計首先對應(yīng)用進行任務(wù)規(guī)劃,將一個應(yīng)用分解為多個任務(wù),然后根據(jù)一定的任務(wù)分配模式將其分配到相應(yīng)的DSP 核上執(zhí)行。實現(xiàn)方案歸納分析如下:
1)主從模式
主核作為控制核進行任務(wù)分配、調(diào)度和觸發(fā)。該模式適用于含有多個獨立任務(wù)的應(yīng)用。主核與從核間需要進行頻繁地消息通信,從核之間不需要進行同步和數(shù)據(jù)傳遞。
2)基于任務(wù)的分配模式
各核處理不同的任務(wù),核之間的工作以流水線的方式進行。該模式適用于分布式控制和數(shù)據(jù)處理的應(yīng)用,這類應(yīng)用中通常包含多個復(fù)雜的算法模塊,單個DSP 核不能滿足計算能力需求,且各算法模塊間有很強的數(shù)據(jù)依賴關(guān)系[5]。該實現(xiàn)方式很容易實現(xiàn)核間任務(wù)的分配,但要在每個核中分配相近的計算負荷是很困難的。
3)基于數(shù)據(jù)的分配模式
各核處理相同的任務(wù),每個核分配、處理輸入新掃描線或新掃描幀數(shù)據(jù)的一部分,且通常每個核所分配的輸入運算數(shù)據(jù)量大小是相等的,所以每個核上的任務(wù)計算量是均衡的。該實現(xiàn)方式需要在數(shù)據(jù)的劃分和計算結(jié)果的整合上作相應(yīng)的考慮和優(yōu)化。
4)基于幀的分配模式
該實現(xiàn)方式是一個核或核集合處理給定掃描幀的所有處理功能,包括該幀所包含的所有掃描線處理。多個核或核集合可同時處理多個連續(xù)獨立幀,根據(jù)系統(tǒng)的幀速率要求確定需要的獨立的核或核集合個數(shù)。此法的不足之處是從數(shù)據(jù)輸入到幀計算結(jié)果的延遲要比前兩種方法略大,但DSP 核處理任務(wù)均衡,數(shù)據(jù)處理吞吐率高,在高強度的計算時會用到。
系統(tǒng)對實時性有一定的要求,最終設(shè)計方案綜合了上述所列的前三種方法的多核程序開發(fā)任務(wù)分配模式,采用了Core0 核為主核,Core1耀Core3 為從核。Core1-Core2、Core3 以及Core0 之間以基于任務(wù)的分配模式采用流水方式執(zhí)行算法處理。Core1、Core2 之間則采用基于數(shù)據(jù)的分配模式對接收波束形成數(shù)據(jù)分塊并行處理。
多核并行計算的關(guān)鍵是如何分配每個核完成任務(wù)的時間使之相近。如果每個核之間的計算任務(wù)分配不均衡,則系統(tǒng)最終性能會受計算量最繁重、耗時最長的那個核所限制。一般來說數(shù)據(jù)吞吐量大、算法復(fù)雜的處理要花很長時間。
為高效地實現(xiàn)超聲成像算法,首先對算法在單個DSP 核上運行的性能進行評估,然后根據(jù)算法各模塊的時間消耗和數(shù)據(jù)依賴關(guān)系進行任務(wù)規(guī)劃,將算法分配到4 個DSP 核上執(zhí)行。核間通信采用MessageQ 消息隊列和Notify 方案來實現(xiàn)各DSP 核間的掃查指令傳遞、狀態(tài)通知和任務(wù)同步,使用EDMA3 來實現(xiàn)片外(FPGA 和DDR3 內(nèi)存)、共享內(nèi)存、DSP 核本地內(nèi)存之間的數(shù)據(jù)交換。利用Core 0實現(xiàn)統(tǒng)一的同步控制、消息分發(fā)和數(shù)據(jù)傳輸接口。
最終DSP Core 0耀Core 3 核任務(wù)以及在系統(tǒng)中所承擔的算法運算分配如表1 所示。
表1 DSP 核任務(wù)分配
Core 0 為主控核,主要進行消息的分發(fā)、參數(shù)數(shù)據(jù)的搬移、EDMA 控制,以實現(xiàn)DSP 各運算模塊、FPGA 和前端的設(shè)置、以及Core 1耀Core 3 算法任務(wù)的統(tǒng)一調(diào)度。復(fù)數(shù)正交解調(diào)和FIR 濾波放在Core 1、Core 2 上執(zhí)行。由于復(fù)數(shù)正交解調(diào)和FIR 濾波運算是很耗時的算法運算,此處采用兩個DSP 核,分別對經(jīng)過接收波束形成的多波束BM0、BM1 分開并行計算。行間平均、空間復(fù)合、頻率復(fù)合、數(shù)字掃描變換(Scan Converter)等放在Core 3 上執(zhí)行,數(shù)字掃描變換后的圖像處理如圖像增強等放在Core 0 核上運行。設(shè)計使用C66AK2H06 的4 個DSP 核以流水方式從Core 1/Core 2→Core 3→Core 0 進行數(shù)據(jù)處理。DSP 核間的數(shù)據(jù)傳輸、參數(shù)傳遞、狀態(tài)通知和控制如圖5 所示。
圖5 DSP 端運行流程
圖中實線代表超聲數(shù)據(jù)的傳輸,虛線代表MessageQ、Notify、中斷的傳輸,長劃線代表EDMA和SRIO 數(shù)據(jù)傳輸控制。由圖可見,Core 0 作為主控核接收HOST(ARM)傳來的掃查指令,然后通過消息隊列將其派發(fā)給各個所需要的DSP 核、FPGA 及其它前端器件,完成掃查序列切換的掃查參數(shù)設(shè)置。DSP 接收來自FPGA 的中斷,將波束形成后的數(shù)據(jù)通過SRIO 總線,傳輸?shù)紺ore1 和Core 2 的MSMC SRAM 空間。其后依次通過Core 1/Core 2、Core 3、Core0 的算法處理,并將處理好的數(shù)據(jù)最終輸出到HOST 作進一步處理及顯示。同時各個核的運行狀態(tài)和輸出數(shù)據(jù)的內(nèi)存首地址通過Notify/中斷也統(tǒng)一發(fā)送給Core0,然后Core0 在適當時刻通過Notify/中斷通知相關(guān)DSP 核啟動數(shù)據(jù)傳輸和任務(wù)啟動,使多核中的各算法任務(wù)和數(shù)據(jù)傳輸有條不紊進行。
核間通信包括數(shù)據(jù)傳輸和同步。數(shù)據(jù)傳輸包括核間算法參數(shù)以及掃查指令的傳輸;同步主要是在核間交互任務(wù)完成狀態(tài)和共享資源的狀態(tài)。由于算法參數(shù)、掃查指令、狀態(tài)變量的數(shù)據(jù)量大小是不一樣的,所以要采取不同的通信方式。
在Host(ARM)和Local(DSP)以及不同DSP 核任務(wù)之間傳輸?shù)乃惴▍?shù),其大小在幾十kB 到幾百kB,此處采用EDMA 傳輸在不同核間內(nèi)存地址空間進行傳輸,掃查指令大小32 B耀64 B,采用消息隊列(MessageQ)機制傳輸,同步采用Notify/中斷來實現(xiàn)。MessageQ 雖然比Notify/中斷延遲大,比EDMA帶寬低,但靈活性好,尤其是,調(diào)用者無需考慮接收者和接收處理的事,這使得核間頻繁的可變長度掃查指令傳輸變得很方便。對MessageQ 機制,接受者需要事先訂閱它們感興趣的信息。消息分發(fā)模塊維持訂閱列表,每當消息發(fā)布,便將消息發(fā)給訂閱者。
在HOST(ARM)和Local(DSP)之間的通信,在此選用TI 提供的SYSLINK。SYSLINK 是一個runtime 軟件和移植工具包,簡化了ARM 和DSP 之間的通信,提供ARM 和DSP 之間信息交換的通信協(xié)議,實現(xiàn)多核之間的軟件互連。同時通過SYSLINK使用,一個核可以指定為Master,控制其它Slave 核的執(zhí)行,包括Slave 核的bootload 啟動,ARM 也可以通過SYSLINK 存取公用模塊[6]。
HOST-DSP 間通信包括:接受ARM 過來的消息;將消息傳遞到訂閱消息的DSP 線程中;將消息發(fā)送給ARM 不同的線程。整體通信情況如圖6。消息隊列方案通過在共享內(nèi)存中開辟消息隊列的方法實現(xiàn)DSP 核間的通信,接收DSP 核通過中斷或輪詢專屬消息隊列的方式來完成消息的獲取,發(fā)送DSP 核可擁有多個寫消息端,即可同時向多個DSP 核發(fā)送消息。該方案支持可變長度數(shù)據(jù)的發(fā)送和接收,可滿足DSP 核同步、核間數(shù)據(jù)傳輸?shù)榷喾N需求[7-8]。
圖6 HOST-DSP 間通信
DSP 上的消息分發(fā)使用了消息隊列和信號量。硬件信號量是多核處理器中一種新模塊,實現(xiàn)快速實時的操作,并和硬件中斷聯(lián)系在一起,實現(xiàn)多核之間的握手協(xié)議,其工作流程如圖7 所示。
Core 0 中的Diapatcher 進程是負責消息分發(fā)的,其消息分發(fā)的流程如下:
Step1:初始化線程、MsgNotify、消息隊列方案所用資源;
Step2:使用MessageQ_get()函數(shù)等待HOST 傳來消息;
圖7 DSP 上的消息分發(fā)工作流程
Step3:對消息進行同步處理;
Step4:將消息發(fā)送到目標隊列中;
Step5:通知目標線程處理消息。
消息分發(fā)過程中,Core 0耀Core 3 中的目標線程處理如下:
Step1:等待Core0 中的Diapatcher 發(fā)送過來的信號量;
Step2:從消息隊列中獲取消息;
Step2:根據(jù)MessageID 處理消息;
Step4:釋放消息。
C66AK2H06 芯片和片外的通信除了和DDR3存儲器、LCD 顯示屏、SD 卡及網(wǎng)絡(luò)之外,主要是和FPGA 通信,用于前端控制參數(shù)傳送的和波束形成數(shù)據(jù)的接收。此處采用SRIO 接口。SRIO 通信接口優(yōu)點是占用管腳少,數(shù)據(jù)帶寬高。系統(tǒng)超聲掃查時序如圖8,一次掃查波束形成數(shù)據(jù)最大32 kB,接收時間0.2ms,故BFM 數(shù)據(jù)速率為160MB/s。設(shè)計中的SRIO 接口速率選擇為3.125Gb/s,其數(shù)據(jù)傳輸速率峰值可達312.5 MB/s,大于BFM 數(shù)據(jù)速率,滿足波束形成數(shù)據(jù)傳輸?shù)男枰?。同時使用GPIO 接口,產(chǎn)生中斷INT_BFMRD 進行傳輸?shù)耐娇刂?,?shù)據(jù)傳輸采用DirectIO 機制。
圖8 超聲掃查時序
C66AK2H06 內(nèi)存系統(tǒng)可劃分為L1P/L1D、L2、MSMC SRAM、DDR3 存儲四級,其中前三級為片上存儲。32 kB 的L1D、512 kB 的L2 既可以作Cache也可以作SRAM 使用,視實際需要而定。不同層級存儲器有不同存取帶寬,依L1P/L1D、L2、MSMC SRAM、DDR3 次序遞減。高帶寬會減小取指、數(shù)據(jù)存取的時間,從而提高整個算法的運算速度[9]。因此關(guān)鍵的代碼和數(shù)據(jù)應(yīng)盡量放在片上存儲,甚至L1 上。表2 給出了不同層級的存儲器的理論帶寬。
表2 不同層級存儲器的理論帶寬
在DSP 軟件方案的6 MB 的MSMC RAM 中規(guī)劃了BeamBuffer、IQBuffer、VectorBuffer、FrameBuffer、ImageBuffer、DisplayBuffer 等幾部分,用于各DSP核、ARM 核中的各進程處理數(shù)據(jù)的存儲和交換。其中,BeamBuffer 是暫存從FPGA 來的波束形成后的數(shù)據(jù);IQBuffer 是復(fù)數(shù)正交解調(diào)后的數(shù)據(jù);VectorBuffer是檢波后、掃查線處理的數(shù)據(jù)暫存;FrameBuffer 是掃查幀處理的數(shù)據(jù)暫存;ImageBuffer 是圖像后處理的數(shù)據(jù)緩存;DisplayBuffer 是圖像顯示的數(shù)據(jù)緩存。DDR3 片外存儲大小配置為64MB,DSP/ARM 代碼、消息通信、發(fā)射/接收波束形成Cache 參數(shù)數(shù)據(jù)、各算法處理的參數(shù)/表數(shù)據(jù)、掃查指令、程序堆??臻g都分配在DDR3 上。另外CineBuffer 也分配在DDR3上,用于DSP 和ARM 之間的連續(xù)128 幀圖像數(shù)據(jù)保存和傳輸。整個DSP 算法處理完的數(shù)據(jù)存儲到DDR3 的CineBuffer 區(qū)域,然后傳輸?shù)紿OST(ARM)端,用于其后與圖形、字符等數(shù)據(jù)等混合并顯示。
L1、L2 除了一部分用于Cache 外,同時可規(guī)劃出一部分作為SRAM 使用,用來存放對算法速度影響大的代碼、參數(shù)和數(shù)據(jù),提升DSP 核存取指令和數(shù)據(jù)的速度。由于L1、L2 的空間有限,所以一般只對當前運算用到的關(guān)鍵參數(shù)和數(shù)據(jù)才傳輸?shù)絃1、L2上。為充分利用DSP 核的運算性能,DDR3、MSMC SRAM 與L1/L2 之間采用EDMA 傳輸和PingPong機制。多級內(nèi)存的具體規(guī)劃方式如圖9。
圖9 多級內(nèi)存規(guī)劃
此PE 超聲波相控陣探傷儀的核心基本上基于異構(gòu)多核信號處理SoC 來實現(xiàn),因此不需要獨立的CPU,F(xiàn)PGA 也可選擇較小一些的容量,故其便攜性和低功耗性能得到提高。系統(tǒng)實現(xiàn)的關(guān)鍵是系統(tǒng)響應(yīng)速度和運算能力是否能滿足系統(tǒng)技術(shù)指標要求。系統(tǒng)主要技術(shù)指標如下:
探測深度>20cm;
掃查幀頻>20Hz;
線密度>200 線/幀;
系統(tǒng)啟動時間<12s;
模式切換時間<1s。
通過對系統(tǒng)的測試,發(fā)現(xiàn)模式切換時間、掃查幀頻這兩項是主要需要優(yōu)化的指標。
為優(yōu)化模式切換時間,需要考慮到:模式切換需要做的工作是掃查模式的設(shè)置、探頭文件等相關(guān)資源文件的讀取、波束形成Cache、解調(diào)、TGC、數(shù)字掃描變換的算法系數(shù)、曲線、查找表等算法參數(shù)的計算,以及算法參數(shù)的傳輸?shù)?。為減小模式切換時間,在此比較了對模式切換時間影響較大的算法參數(shù)計算及傳輸?shù)? 種方式,分別為:
方式1:ARM 計算,ScanCtrl 模塊位于ARM 上;
方式2:DSP 計算,ScanCtrl 模塊位于DSP Core 0 上;
方法3:DSP 分布計算,ScanCtrl 模塊主體計算功能位于DSP Core0,部分計算在DSP Core1耀Core 3中進行。
由于參數(shù)計算中有大量的浮點運算,所以用DSP 分布計算效果最好,既發(fā)揮了定/浮點DSP 核的優(yōu)勢,也發(fā)揮了多核的優(yōu)勢,使算法參數(shù)計算時間大幅度減少。其余部分參數(shù)計算是在本地進行的,節(jié)省了其后參數(shù)數(shù)據(jù)傳輸?shù)臅r間,進一步縮減模式切換時間。此外,模式切換時間還包括一幀掃描圖像通常接收、處理和顯示的時間,一般不會超過50 ms。優(yōu)化后模式切換時間可控制在1s 以內(nèi)。不同算法參數(shù)計算方法和對模式切換時間的影響對比如表所3 示。
表3 不同算法參數(shù)計算方法及結(jié)果比較
關(guān)于掃查幀頻,一方面和各核算法的計算速度有關(guān),另一方面和掃查序列切換的時間有關(guān)。掃查序列切換主要的工作內(nèi)容是掃查指令的傳輸、下一個掃查線的算法參數(shù)準備就緒。為降低掃查序列切換時間(如圖8 中的T1),采用硬件中斷SCSync 來觸發(fā)掃查序列控制工作,并采用高中斷優(yōu)先級,以減少掃查指令傳輸、下一個掃查線算法參數(shù)傳遞的響應(yīng)時間。中斷優(yōu)先級具體設(shè)定如表4 所示。
表4 中斷優(yōu)先級
實驗測試表明,得到的掃查指令傳輸(大小為32 B,采用MessageQ)時間為6.2 μs,當前掃查線算法參數(shù)傳遞時間為15μs 左右,加上FE 前端消息傳輸時間,總共不超過24μs。因此在實際設(shè)計中,從SCSync 到TxTrig 的T1 值,設(shè)定為30 μs 即可。對于探測深度20 cm,掃查周期可控制在230 μs 之內(nèi)(T1=30μs,T2+T3 取200 μs 值),對于200 掃描線/幀,幀頻指標即可達到21.7Hz 以上,滿足幀頻20Hz設(shè)計要求。
當探測深度降低時,掃查幀頻就會提高。為獲得較為理想的實時成像,要求算法處理幀頻在40Hz以上,這樣對每個DSP 核上算法運算執(zhí)行時間會有相應(yīng)的限制。假設(shè)1 幀256 線,線頻是256×40Hz=10240Hz,亦即執(zhí)行Vector Processing 任務(wù)的DSP 核總處理時間不超過97.66μs,執(zhí)行Frame Processing任務(wù)的DSP 核總處理時間不超過25ms,即Core1、Core2 的計算負荷是最大的。
Core1、Core2 的運算任務(wù)是復(fù)數(shù)正交解調(diào)、FIR濾波、抽取、檢波、焦點拼接、動態(tài)范圍壓縮等。其中比較耗時的是復(fù)數(shù)正交解調(diào)、FIR 濾波。為加快速度,在此將計算使用頻率高的SIN/COS 表(<4 kB)、FIR 濾波器系數(shù)緩存在L1 存儲器中,將TGCTable、SQRT 表、LOG 表等算法參數(shù)緩存在L2 存儲器內(nèi),程序代碼存儲在MSMC SRAM 中,運算的輸入輸出數(shù)據(jù)存儲在MSMC SRAM 中,通過盡量使用高的內(nèi)存讀取速度提高了DSP 核整體處理性能。經(jīng)過實驗測試,復(fù)數(shù)正交解調(diào)所花費運算時間為18.3 μs,128階FIR 濾波所花費運算時間為26.7μs,兩者相加為45μs,占DSP 核可用時間的46%,為滿足線頻、幀頻的要求提供了保證。
通過對基于C66AK2H06 的相控陣探傷儀設(shè)計的優(yōu)化和結(jié)果分析,系統(tǒng)實現(xiàn)的性能滿足技術(shù)指標需求,基于多核DSP 的算法能夠處理每秒鐘40 幀以上尺寸為512×256 的超聲圖像,滿足了實時成像的要求。PE 超聲相控陣探傷儀的實際界面如圖10。
圖10 PE 超聲相控陣探傷儀界面圖
為測試本PE 超聲相控陣探傷儀的實際效果,對PE 管焊接質(zhì)量進行檢測,實驗結(jié)果如圖11。圖11(a)所示表明焊接正常,圖中的白色亮點是金屬絲;圖11(b)所示為焊接中存在缺陷,白色橫線是因為未熔合故障造成的。
本設(shè)計不僅具有常規(guī)相控陣探傷儀的檢測能力,而且針對PE 檢測應(yīng)用進行了有針對性的優(yōu)化,提供了作業(yè)現(xiàn)場照片和作業(yè)位置等數(shù)據(jù)上傳、與中心數(shù)據(jù)庫聯(lián)網(wǎng)管理、空間復(fù)合成像、材料特性設(shè)置和聲速校準等功能。
圖11 PE 超聲相控陣探傷儀實測效果
本PE 超聲相控陣探傷儀的設(shè)計和PE 管道超聲相控陣檢測技術(shù)的研究,為上海市燃氣用PE 管道焊接接頭相控陣超聲檢測地方標準的制定提供了技術(shù)支撐[10]。
基于異構(gòu)多核數(shù)字信號處理SoC 的設(shè)計需要較多的開發(fā)考慮,在后續(xù)研究中,還可針對某些應(yīng)用場合作出進一步優(yōu)化和完善,如優(yōu)化通信方式,利用異構(gòu)多核SoC 芯片內(nèi)部專用設(shè)計的多核導(dǎo)航器、隊列、仲裁器來進一步提高核間數(shù)據(jù)通信的運行效率和傳輸帶寬[11]。
設(shè)計實現(xiàn)了基于異構(gòu)多核數(shù)字信號處理SoC器件的PE 超聲相控陣探傷儀,對其系統(tǒng)架構(gòu)、算法組成和軟件部分的實現(xiàn)技術(shù)進行了研究,將HOST應(yīng)用程序和本地算法運算在一個異構(gòu)SoC 處理器芯片中完成,并對多核并行計算和核間通訊、內(nèi)存設(shè)計等關(guān)鍵技術(shù)進行分析、設(shè)計及優(yōu)化。相比于以前的實現(xiàn)方法,采用異構(gòu)多核SoC 器件的相控陣探傷儀系統(tǒng)架構(gòu)更加靈活,整機系統(tǒng)具有很好的可擴展性和可升級性,性能有所提高、功耗更低、更加便攜化。