蔣哲倫 劉雨佶 陳偉 王慧源 陳弈書 顧瑞沖
摘? ?要:在水聲學(xué)實(shí)驗(yàn)中,不僅需要正弦波、方波等常規(guī)信號(hào),也常常需要用到一些非常規(guī)信號(hào),我們?cè)O(shè)計(jì)的基于嵌入式的長(zhǎng)時(shí)間、高速率的任意波形模擬器可以很好地滿足水聲學(xué)實(shí)驗(yàn)的需求。文章以ARM內(nèi)核的S3C2440作為主體控制芯片,以SD卡存儲(chǔ)器作為波形存儲(chǔ)設(shè)備設(shè)計(jì)了一款任意波形模擬器,在PC機(jī)上使用Matlab仿真出需要的波形數(shù)據(jù),并將其存儲(chǔ)到SD卡中,然后在儀器上對(duì)波形的輸出進(jìn)行控制操作。
關(guān)鍵詞:任意波形模擬器;嵌入式操作系統(tǒng);Matlab;S3C2440
隨著計(jì)算機(jī)微電子技術(shù)的不斷發(fā)展,各種復(fù)雜信號(hào)層出不窮[1],因此,在教學(xué)和科研中對(duì)高精度、高采樣率信號(hào)源的需求與日俱增[2]。作為水聲工程專業(yè)的學(xué)生,在進(jìn)行水聲學(xué)的學(xué)習(xí)中發(fā)現(xiàn),水聲學(xué)研究中需要接觸很多非常規(guī)信號(hào),而傳統(tǒng)的信號(hào)發(fā)生器輸出的波形有限,很難滿足部分實(shí)驗(yàn)對(duì)復(fù)雜信號(hào)的需求。因此,設(shè)計(jì)一臺(tái)不僅能生成標(biāo)準(zhǔn)的正弦波、方波等通用信號(hào),還能夠輸出各種水聲學(xué)中所需要的各種非常規(guī)的信號(hào)的任意波形模擬器,對(duì)水聲學(xué)研究有著很重要的意義。
本文設(shè)計(jì)的任意波形模擬器以ARM內(nèi)核的S3C2440作為主體控制芯片,能夠平穩(wěn)輸出PC機(jī)上仿真的波形信號(hào)。具有價(jià)格便宜、操作簡(jiǎn)單、攜帶方便的特點(diǎn),能夠滿足絕大多數(shù)實(shí)驗(yàn)對(duì)于信號(hào)源的需求[3]。
1? ? 設(shè)計(jì)思路
1.1? 總體設(shè)計(jì)框架
本次項(xiàng)目設(shè)計(jì)的基于嵌入式的長(zhǎng)時(shí)間、高速率任意波形模擬器的總體框架(見圖1),主要分為硬件平臺(tái)部分和軟件平臺(tái)部分兩大部分。
硬件平臺(tái)主要由3部分組成,其中,波形信號(hào)存儲(chǔ)設(shè)備選擇的是2G的SD卡,通過(guò)SD卡可以將上位機(jī)仿真的波形數(shù)據(jù)傳輸至任意波形模擬器中。主控制電路需要讀取SD卡中存儲(chǔ)的數(shù)據(jù),同時(shí),還要將數(shù)據(jù)傳輸至信號(hào)調(diào)理電路中。信號(hào)調(diào)理電路的作用是對(duì)輸出信號(hào)進(jìn)行時(shí)序控制、數(shù)模轉(zhuǎn)換、低通濾波,使波形信號(hào)能夠連續(xù)、平穩(wěn)地輸出。現(xiàn)場(chǎng)可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)時(shí)序控制電路主要是對(duì)信號(hào)輸出進(jìn)行時(shí)序控制[4]。
軟件平臺(tái)分為4部分。嵌入式操作系統(tǒng)主要包括外部中斷服務(wù)、多任務(wù)管理系統(tǒng)、人機(jī)交互系統(tǒng),能夠有效提高CPU的利用率和程序的執(zhí)行速度。存儲(chǔ)系統(tǒng)主要負(fù)責(zé)存儲(chǔ)波形數(shù)據(jù),而文件管理系統(tǒng)則需要對(duì)存儲(chǔ)系統(tǒng)中的波形數(shù)據(jù)文件進(jìn)行管理,使波形文件能夠有序地在顯示器上顯示,使設(shè)備便于操作。硬件驅(qū)動(dòng)系統(tǒng)主要包括液晶顯示器和串口等外圍硬件設(shè)備的驅(qū)動(dòng)程序以及對(duì)SD卡的讀取,主要負(fù)責(zé)軟件平臺(tái)與外圍硬件驅(qū)動(dòng)的信息溝通任意波形模擬器的硬件總體框架如圖2所示。
1.2? 硬件設(shè)計(jì)概述
任意波形模擬器的硬件設(shè)計(jì)分為底板、核心板和液晶觸摸屏3部分[5]。底板采用了4層板工藝,上面搭載了DA轉(zhuǎn)換器,F(xiàn)PGA,SD卡存儲(chǔ)器,ARM處理器等電路。其中,F(xiàn)PGA和DA轉(zhuǎn)換器構(gòu)成了信號(hào)調(diào)理電路,負(fù)責(zé)調(diào)節(jié)控制信號(hào)的輸出。ARM處理器負(fù)責(zé)控制直接內(nèi)存存?。―irect Memory Access,DMA)傳輸和人機(jī)交互界面,以及與上位機(jī)的通信,起總控制器的作用[6]。底板電源使用的是5 V的外接電源。核心板選擇了Mini2440開發(fā)板任意波形模擬器實(shí)物如圖3所示。
1.3? 軟件設(shè)計(jì)簡(jiǎn)要介紹
基于嵌入式的長(zhǎng)時(shí)間、高速率任意波形模擬器的軟件設(shè)計(jì)主要包括利用FPGA對(duì)數(shù)據(jù)的輸出提供時(shí)序控制和嵌入式操作系統(tǒng)的編寫。
在程序運(yùn)行過(guò)程中,ARM處理器數(shù)據(jù)的輸出并不是按照時(shí)鐘周期連續(xù)的輸出,因此,需要利用FPGA給不同時(shí)鐘域的信號(hào)匹配速率,同時(shí),給DA轉(zhuǎn)換器提供數(shù)據(jù)和時(shí)序的控制,使數(shù)據(jù)能夠以800 K的頻率持續(xù)輸出。
嵌入式操作系統(tǒng)主要是由多個(gè)任務(wù)配合進(jìn)行管理工作的過(guò)程(見圖4)。外部中斷服務(wù)主要負(fù)責(zé)響應(yīng)外部器件FPGA與ARM之間的數(shù)據(jù)傳輸,對(duì)DMA通道中的數(shù)據(jù)進(jìn)行預(yù)處理。主任務(wù)主要負(fù)責(zé)對(duì)運(yùn)行界面的操作,并負(fù)責(zé)創(chuàng)建其他任務(wù)如觸摸屏任務(wù)、文件裝載任務(wù)、串口任務(wù)等,是整個(gè)系統(tǒng)的核心[7]。
2? ? 實(shí)驗(yàn)結(jié)果分析
2.1? 測(cè)試結(jié)果
測(cè)試中使用Matlab仿真出100 Hz,1 KHz,10 KHz和80 KHz的波形信號(hào),并將信號(hào)以無(wú)符號(hào)16位整數(shù)的文件形式拷貝到SD卡中。將SD卡插入任意波形模擬器的卡槽中,通過(guò)觸摸屏選擇波形文件進(jìn)行播放,使用數(shù)字示波器對(duì)波形進(jìn)行測(cè)試。表1為各個(gè)頻率段下的波形數(shù)據(jù)對(duì)比。
2.2? 結(jié)果分析
經(jīng)試驗(yàn),基于嵌入式的長(zhǎng)時(shí)間、高速率任意波形模擬器能夠較為準(zhǔn)確地將上位機(jī)仿真的信號(hào)進(jìn)行輸出,輸出信號(hào)產(chǎn)生的誤差包括以下幾點(diǎn)。
(1)由于 DA 轉(zhuǎn)換器只能接收無(wú)符號(hào)16位的整數(shù)量化數(shù)據(jù),因此,需要在PC軟件Matlab中對(duì)模擬信號(hào)的數(shù)據(jù)進(jìn)行取整量化,這一過(guò)程將產(chǎn)生誤差。同時(shí),溫度等因素的變化也會(huì)影響DA轉(zhuǎn)換器從而產(chǎn)生誤差。
(2)示波器、萬(wàn)用表等測(cè)量?jī)x器等器件也會(huì)產(chǎn)生數(shù)據(jù)量化等誤差。
3? ? 結(jié)語(yǔ)
本文設(shè)計(jì)的基于嵌入式的長(zhǎng)時(shí)間、高速率的任意波形模擬器具有便于攜帶、高性價(jià)比、低功耗等優(yōu)點(diǎn),以ARM為主控制器,并以SD卡作為數(shù)據(jù)存儲(chǔ)設(shè)備,使用FPGA實(shí)現(xiàn)時(shí)序的調(diào)理和DA轉(zhuǎn)換器的控制,通過(guò)液晶觸摸屏來(lái)對(duì)信號(hào)的輸出進(jìn)行控制。論文完成的主要工作總結(jié)如下:
(1)提出了系統(tǒng)總體設(shè)計(jì)方案。(2)完成了以ARM處理器為核心進(jìn)行了硬件系統(tǒng)設(shè)計(jì),包括FPGA電路設(shè)計(jì)和存儲(chǔ)設(shè)備的選擇。(3)實(shí)現(xiàn)了整個(gè)系統(tǒng)的軟件設(shè)計(jì)。(4)對(duì)于任意波形模擬器進(jìn)行測(cè)試分析,并對(duì)測(cè)試的結(jié)果進(jìn)行了誤差分析。
經(jīng)實(shí)驗(yàn)測(cè)試,設(shè)計(jì)的任意波形模擬器易于攜帶、操作簡(jiǎn)單,可以滿足大多數(shù)情況下對(duì)信號(hào)源的需求。
[參考文獻(xiàn)]
[1]馬忠梅.ARM嵌入式處理器與嵌入式系統(tǒng)[J].電子世界,2003(3):41-42.
[2]宦敏.寬覆蓋、低雜散頻率合成器的研制[D].成都:電子科技大學(xué),2007.
[3]楊碩.基于ARM的任意波形發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),2011.
[4]謝完成.基于FPGA的數(shù)字電視信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2008(7):138-140.
[5]杜華.任意波形發(fā)生器及其應(yīng)用[J].國(guó)外電子測(cè)量技術(shù),2005(1):38-40.
[6]顧峰.基于DMA傳輸方式的SDRAM控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].船舶電子對(duì)抗,2009(2):108-111.
[7]張坤.任意波形發(fā)生器設(shè)計(jì)及實(shí)現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),2013.