劉 穎,鐘 凱,章浩偉
(上海理工大學(xué) 健康科學(xué)與工程學(xué)院,上海 200093)
射頻脈沖發(fā)生器是磁共振成像(Magnetic Resonance Imaging,MRI)系統(tǒng)的重要組成部分,可用于產(chǎn)生和控制磁共振激勵(lì)所需的射頻脈沖。在脈沖序列發(fā)生器的控制下,射頻脈沖發(fā)生器產(chǎn)生特定頻率、相位、幅值的射頻(Radio Frequency,RF)信號(hào),并控制射頻信號(hào)的輸出時(shí)間。射頻信號(hào)經(jīng)過射頻功放和射頻開關(guān)以驅(qū)動(dòng)發(fā)射線圈產(chǎn)生射頻場(chǎng)()。
隨著數(shù)字集成電路的發(fā)展,頻率合成技術(shù)越來越多地使用數(shù)字器件來實(shí)現(xiàn)。在射頻發(fā)生器中,頻率合成是其關(guān)鍵的步驟,目前頻率合成主要有3種實(shí)現(xiàn)方法,即:模擬器件合成、鎖相環(huán)技術(shù)以及直接數(shù)字頻率合成技術(shù)。近年來在頻譜儀的設(shè)計(jì)與實(shí)現(xiàn)中,更多地直接采用數(shù)字頻率合成技術(shù)來實(shí)現(xiàn)射頻脈沖的發(fā)生與控制。
現(xiàn)如今在MRI系統(tǒng)中使用DDS生成射頻脈沖的方法時(shí),多會(huì)選用無內(nèi)嵌處理系統(tǒng)的FPGA作為主控芯片。使用嵌入ARM核的SoC架構(gòu)在數(shù)據(jù)處理上更加快速、靈活,對(duì)于復(fù)雜系統(tǒng)的設(shè)計(jì)節(jié)省了FPGA邏輯資源的消耗。此外,在應(yīng)用中不需要額外的處理器與外設(shè)并行總線來外掛FPGA,這也使得整個(gè)嵌入式系統(tǒng)體積足夠小,結(jié)構(gòu)更加靈活。
本文將DDS技術(shù)與片上處理系統(tǒng)應(yīng)用于磁共振成像射頻信號(hào)發(fā)射,設(shè)計(jì)了一種MRI的數(shù)字射頻脈沖發(fā)生系統(tǒng)。設(shè)計(jì)中利用SoC中的ARM核與上位機(jī)通信獲取指令,并生成相應(yīng)的配置數(shù)據(jù)。由FPGA控制雙通道DDS-AD9958實(shí)現(xiàn)射頻頻率合成功能,以及射頻脈沖的波形調(diào)制。這種實(shí)現(xiàn)方式降低了硬件的復(fù)雜程度和數(shù)字化開發(fā)難度,從而進(jìn)一步提高了集成度與靈活性。此外,Zynq的AXI4協(xié)議使得數(shù)據(jù)通訊速度更快,信息傳遞結(jié)構(gòu)更簡(jiǎn)單。
傳統(tǒng)的MRI射頻發(fā)生器主要使用模擬器件合成。隨著數(shù)字集成電路的發(fā)展,數(shù)字射頻發(fā)射已成為當(dāng)下的趨勢(shì),主要就是在數(shù)字域通過數(shù)字調(diào)制的方式,避免模擬調(diào)制中模擬器件的非線性效應(yīng)引起的信號(hào)質(zhì)量問題。同時(shí)由于模擬器件往往會(huì)受到工作溫度、壽命、使用環(huán)境等因素的影響,數(shù)字化射頻方法成為了一個(gè)新的發(fā)展方向。隨著軟件定義無線電技術(shù)(Software Defined Radio,SDR)在數(shù)字化開發(fā)中展開,SDR在SoC中的集成日趨完善,這為數(shù)字化射頻開發(fā)與實(shí)現(xiàn)提供了基礎(chǔ)。并且由于FPGA具有硬件集成、可重構(gòu)性和靈活性等優(yōu)點(diǎn),也有效推動(dòng)了SoC FPGA在射頻硬件開發(fā)中的應(yīng)用。該開發(fā)方法在FPGA中以數(shù)字頻率合成技術(shù)和片上系統(tǒng)代替?zhèn)鹘y(tǒng)的頻率源和主控器件來產(chǎn)生射頻脈沖信號(hào)。
本文使用Zynq的處理系統(tǒng)(process system,PS)讀取上位機(jī)射頻脈沖控制命令,在可編程邏輯(programmable logic,PL)部分生成相應(yīng)配置文件,并通過AXI對(duì)BRAM進(jìn)行讀寫操作。配置完成后,在PL端采用SPI通訊方式實(shí)現(xiàn)對(duì)AD9958的配置,激發(fā)后通過計(jì)數(shù)控制RF開關(guān)的開啟與關(guān)閉,最終得到RF脈沖。系統(tǒng)框架結(jié)構(gòu)如圖1所示。
圖1 Zynq SoC系統(tǒng)框架Fig.1 Block diagram of Zynq SoC
DDS主要包含一個(gè)相位發(fā)生器、正弦查找表和DAC,其中相位發(fā)生器由相位累加器以及一個(gè)提供相位偏移的加法器組成。DDS通過頻率控制字來改變相位增量(步長(zhǎng))。步長(zhǎng)的差異導(dǎo)致周期內(nèi)量化數(shù)據(jù)的取樣樣本數(shù)不同。因此在時(shí)鐘頻率一定時(shí),通過改變相位,頻率將隨之變化;相位偏移、即相位控制字,用于設(shè)置增量的初始值,從而控制初始的相位。查找表一般使用ROM或RAM,并存儲(chǔ)了一個(gè)正弦信號(hào)的樣本,用頻率控制字和相位控制字來獲得取樣地址,就可映射到所需的輸出波形。
DDS在工作時(shí),每個(gè)時(shí)鐘周期內(nèi),相位累加器會(huì)對(duì)初始相位,以頻率控制字進(jìn)行一次累加。當(dāng)累加器溢出時(shí)做取余運(yùn)算,并以余數(shù)為初始值再次進(jìn)行累加。正弦查找表在每個(gè)時(shí)鐘周期通過輸入的地址讀取對(duì)應(yīng)的位置的幅值數(shù)據(jù)。最后經(jīng)過DAC輸出模擬信號(hào)。DDS的輸出信號(hào)公式可以表示為:
其中,Φ表示當(dāng)前周期的相位值;1表示上一周期;為累加器位數(shù)。通過DDS工作原理,可以推得輸出頻率f與相位的計(jì)算公式分別如下:
其中,為頻率控制字;為相位控制字;f為時(shí)鐘頻率;為相位位數(shù)。
DDS為了實(shí)現(xiàn)調(diào)幅功能,在DAC輸入之前,額外加入比例乘法器并用幅值控制字進(jìn)行控制。幅值可由如下公式進(jìn)行計(jì)算:
其中,表示幅值控制字;表示的位數(shù);是DDS的最大輸出電壓。通過以上控制字的調(diào)節(jié)就能使得DDS輸出指定的射頻脈沖。
在MRI系統(tǒng)中,根據(jù)射頻脈沖的選擇特性,可以將射頻脈沖分為非選擇性射頻脈沖(Hard Pulse,硬脈沖)和層面選擇性射頻脈沖(Soft Pulse,軟脈沖)。對(duì)此擬做研究分述如下。
(1)硬脈沖。硬脈沖持續(xù)時(shí)間短且脈沖幅度穩(wěn)定,脈沖包絡(luò)呈矩形,主要特點(diǎn)是激發(fā)范圍大,但層面選擇并不精確。這里給出了硬脈沖的函數(shù)表達(dá)式及對(duì)應(yīng)的傅里葉變換為:
根據(jù)上式可知,脈寬為的硬脈沖頻帶為4π??刂泼}寬,能夠調(diào)節(jié)激發(fā)質(zhì)子核的頻率范圍。由于激發(fā)過程中射頻脈沖持續(xù)時(shí)間一般較短,因此硬脈沖的頻帶范圍較大,通常用于成像層厚較大的場(chǎng)合。
(2)軟脈沖。軟脈沖持續(xù)時(shí)間短,主要有sinc型脈沖、SLR型脈沖、高斯型脈沖。其特點(diǎn)為激發(fā)范圍小,傅里葉變換后有更精確的層面輪廓。在商用MRI中,由于sinc型脈沖較易實(shí)現(xiàn),因此在使用中較為常見。以sinc型脈沖為例,sinc脈沖廣泛用于選擇性激發(fā)脈沖、飽和脈沖以及重聚脈沖。脈沖形狀由主瓣和旁瓣組成。其中,主瓣的幅度最大、且寬度為旁瓣的2倍,旁瓣幅度隨著兩側(cè)的延伸而逐漸減小,同時(shí)旁瓣呈正負(fù)交錯(cuò)狀。在實(shí)際應(yīng)用中若要減少持續(xù)時(shí)間,可以減少右側(cè)旁瓣,即形成非對(duì)稱sinc型脈沖。sinc型脈沖的函數(shù)表達(dá)式以及其傅里葉變換為:
從sinc型脈沖的傅里葉變換可知,其頻譜包絡(luò)呈帶寬為2π的方波,在實(shí)際應(yīng)用中sinc型脈沖的帶寬較為狹窄,通常用于成像層面較窄的場(chǎng)合。
Vivado是Xilinx公司針對(duì)其旗下的FPGA設(shè)計(jì)的開發(fā)軟件,有著高度集成的設(shè)計(jì)環(huán)境和電子系統(tǒng)及設(shè)計(jì)。Vivado基于ASIC綜合技術(shù),支持工具命令語言(TCL)、SDC約束、SV語言等。設(shè)計(jì)人員可以在設(shè)計(jì)與實(shí)現(xiàn)之間進(jìn)行交叉測(cè)試,極大程度上加快了開發(fā)速度。
本設(shè)計(jì)使用SoC架構(gòu)下的Zynq 7010進(jìn)行設(shè)計(jì)與開發(fā),主芯片型號(hào)為XC7Z010-1CLG400C,片內(nèi)集成了2個(gè)ARM Cortex-A9處理器。本設(shè)計(jì)使用片內(nèi)處理器與上位機(jī)通訊獲取射頻脈沖發(fā)射指令,并在PS內(nèi)通過公式(1)~(5)計(jì)算DDS的控制字參數(shù)和波形文件。通過AXI協(xié)議,將配置文件發(fā)送至可編程邏輯部分。最后,利用在Vivado中自定義的IP以SPI的 模 式 配 置DDS。在Vivado的block design中搭建的對(duì)應(yīng)的可視化結(jié)構(gòu)如圖2所示。
圖2 模塊化設(shè)計(jì)框圖Fig.2 Diagram of block design
Xilinx SDK是Xilinx公司為了開發(fā)Zynq系列全可編程片上系統(tǒng)所推出的嵌入式軟件開發(fā)工具。SDK作為首個(gè)具有異構(gòu)多處理器設(shè)計(jì)、實(shí)現(xiàn)與調(diào)試分析的程序,集成了大量的板級(jí)支持包用于支持各種開發(fā)板,同時(shí)還包含了大量的庫函數(shù),這就顯著降低了開發(fā)難度。
在軟件設(shè)計(jì)流程中,程序開始后進(jìn)行初始化設(shè)置,通過串口獲取上位機(jī)指令,并在PS端內(nèi)計(jì)算頻率、相位控制字、波形文件以及脈沖時(shí)間計(jì)數(shù)值。將生成的脈沖波形文件通過AXI協(xié)議發(fā)送至PL端雙端口RAM中,再利用PL端定義的DDS控制模塊通過SPI協(xié)議將配置數(shù)據(jù)發(fā)送至DDS,通過DDS控制模塊計(jì)數(shù)來控制射頻開關(guān)。流程框圖如圖3所示。
圖3 軟件設(shè)計(jì)框圖Fig.3 Diagram of the software design
本設(shè)計(jì)頻率合成使用雙通道DDS-AD9958,該合成器由2個(gè)DDS內(nèi)核組成,每個(gè)內(nèi)核包含有32 bit頻率控制字、14 bit相位控制字以及10 bit輸出比例乘法器,因此具有獨(dú)立調(diào)節(jié)頻率、相位、幅值的能力。AD9958最高工作頻率為500 MSPS,最高輸出頻率可達(dá)200 MHz,滿足高場(chǎng)(3T)及以下的MRI射頻頻率要求。設(shè)計(jì)使用25 MHz的外部晶振通過集成的PLL倍頻至500 MHz,并通過I/O端口進(jìn)行通訊,I/O端口用的是SPI接口模式,其中SCLK為串口數(shù)據(jù)時(shí)鐘線,在本設(shè)計(jì)中頻率設(shè)定為125 MHz,CS為片選,SDIO_0為串 口 數(shù)據(jù) 線,UPDATA將傳輸至緩存的數(shù)據(jù)更新至寄存器中,RST用于芯片的復(fù)位。接口連接示意如圖4所示。
圖4 SPI連接圖Fig.4 Diagram of SPI connection
本設(shè)計(jì)通過Vivado設(shè)計(jì)自定義IP對(duì)AD9958進(jìn)行寫操作,具體結(jié)構(gòu)分為指令周期和數(shù)據(jù)周期兩個(gè)階段。其中,指令周期選擇指定寄存器地址,數(shù)據(jù)周期將指定數(shù)據(jù)發(fā)送至寄存器。本設(shè)計(jì)SPI通訊使用單比特2線模式,其寫數(shù)據(jù)的時(shí)序邏輯如圖5所示。
圖5 AD9958時(shí)序邏輯圖Fig.5 AD9958 sequential logic diagram
設(shè)計(jì)使用截止頻率為200 MHz的巴特沃斯低通濾波器,階數(shù)為9階,電路示意如圖6所示。巴特沃斯濾波器具有通帶內(nèi)最大限度平坦的頻率響應(yīng)曲線,通帶平滑、沒有波紋。在阻帶內(nèi),巴特沃斯濾波器衰減速度隨階數(shù)增加而加快,9階巴特沃斯濾波器衰減率可達(dá)54 dB。
圖6 巴特沃斯濾波器示意圖Fig.6 The schematic diagram of Order 9 Butterworth filter
射頻開關(guān)使用的是ADI公司的非反射式開關(guān)芯片HMC849,通道關(guān)閉狀態(tài)下可產(chǎn)生高達(dá)60 dB的隔離,同時(shí)具有低于0.8 dB插入損耗??刂贫丝跒? V或3.3 V TTL電平控制輸入。PL端的控制IP中,在脈沖生成后進(jìn)行計(jì)數(shù)以控制脈寬,計(jì)數(shù)滿則控制IO電平連接至HMC849的V端口。 開關(guān)功能原理如圖7所示。
圖7 HMC849功能結(jié)構(gòu)Fig.7 Functional diagram of HMC849
本系統(tǒng)使用Xilinx公司的zybo板作為開發(fā)平臺(tái),使用JTAG進(jìn)行程序下載。為驗(yàn)證本設(shè)計(jì)的射頻脈沖發(fā)生效果,設(shè)計(jì)生成1.5 T場(chǎng)強(qiáng)下的射頻脈沖,對(duì)應(yīng)射頻頻率為63.87 MHz,并使雙通道DDS輸出頻率為63.87 MHz的射頻信號(hào)以及對(duì)應(yīng)的軟脈沖。
通過MSO4104示波器對(duì)射頻輸出結(jié)果進(jìn)行檢測(cè),通道一輸出頻率為63.87 MHz的射頻信號(hào)檢測(cè)波形如圖8(a)所示,檢測(cè)到頻率63.86 MHz,峰峰值400 mV,輸出阻抗50 Ω;通道二輸出的63.87 MHz的軟脈沖類型為3sinc型,輸出的波形結(jié)果如圖8(b)所示。使用頻譜儀AT6030D對(duì)63.87 MHz射頻信號(hào)檢測(cè),偏離中心頻率1 MHz的雜散約為-67.23 dB;偏離中心頻率10 kHz的相位噪聲約為-64.57 dB/Hz。結(jié)果證明本設(shè)計(jì)的射頻脈沖輸出較為理想,且經(jīng)多次測(cè)量后輸出穩(wěn)定波形。
圖8 檢測(cè)后的射頻輸出結(jié)果Fig.8 The detected RF output result
實(shí)驗(yàn)通過Zynq 7010進(jìn)行整個(gè)系統(tǒng)的搭建與實(shí)現(xiàn),優(yōu)點(diǎn)是低成本,自帶處理器,相較于目前使用較多的FPGA在工藝上能達(dá)到更低的靜態(tài)功耗。研究中,通過門控時(shí)鐘技術(shù)來減少寄存器反轉(zhuǎn)造成的功耗,即對(duì)相應(yīng)模塊加入了使能信號(hào),能有效降低平均20%的功耗。該系統(tǒng)使用Vivado進(jìn)行設(shè)計(jì)與開發(fā),通過該軟件可以得到系統(tǒng)資源利用率。資源使用情況見表1。表1中,RF為項(xiàng)目工程名。
表1 資源分析結(jié)果表Tab.1 Resource analysis results table
由表1可知,證明單板資源足以支持該系統(tǒng)的工作。然而高場(chǎng)系統(tǒng)往往具有多個(gè)射頻通道,需要的資源也更多。由于Zynq 7010是Zynq-7000系列中的最小型的版本之一,現(xiàn)有資源較少。對(duì)于16通道及以上的設(shè)計(jì),預(yù)計(jì)需要使用多個(gè)芯片或者應(yīng)用具有更多資源的型號(hào)的芯片來支持系統(tǒng)的實(shí)現(xiàn)。
本文基于Zynq SoC提出了一種可用于高場(chǎng)的射頻脈沖發(fā)生方法,以SoC作為主控系統(tǒng),并以DDS為頻率源。利用C、Verilog語言在Vivado及SDK開發(fā)軟件中進(jìn)行設(shè)計(jì)開發(fā),并以可視化界面進(jìn)行結(jié)構(gòu)設(shè)計(jì)。相較于現(xiàn)有的射頻發(fā)射方法,該設(shè)計(jì)采用數(shù)字器件降低了硬件的復(fù)雜程度,利用SoC的優(yōu)勢(shì)提升了系統(tǒng)的靈活性,并且高集成的開發(fā)軟件也在相當(dāng)程度上減小了開發(fā)難度,加快了開發(fā)周期。