當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于SoPC的數(shù)字示波器設(shè)計(jì)

摘要:在此提出一種基于SoPC的數(shù)字示波器設(shè)計(jì)。采用FPGA作為核心器件,通過硬件邏輯模塊和NiosⅡ嵌入式處理器對高速A/D所采集的數(shù)據(jù)進(jìn)行快速存儲(chǔ)和處理,最終將波形還原顯示在彩色液晶屏上。另外,還設(shè)計(jì)了用于PC機(jī)的軟件以還原存儲(chǔ)的波形信息,該軟件同樣也能夠進(jìn)行光標(biāo)測量等操作。
關(guān)鍵詞:數(shù)字示波器;SoPC;NiosⅡ;光標(biāo)測量

0 引言
    在電子技術(shù)領(lǐng)域中,示波器的應(yīng)用非常廣泛,使用它可以方便直觀地觀察到信號的全貌,并測量信號的幅度、頻率、周期等基本參數(shù)。傳統(tǒng)的模擬示波器顯示時(shí)采用熒光物質(zhì)的余輝時(shí)間都是一定的,導(dǎo)致其難以觀測到周期較長的信號。另外,模擬示波器還無法對信號進(jìn)行一些特殊的數(shù)學(xué)處理(如FFT)。而數(shù)字示波器正好可以克服模擬示波器的不足,它采用各種先進(jìn)的測量技術(shù)來滿足各種應(yīng)用。如基于采樣原理,采用高速A/D轉(zhuǎn)換器實(shí)現(xiàn)高速數(shù)據(jù)采集,將模擬信號數(shù)字化,然后借助處理器強(qiáng)大的數(shù)據(jù)處理能力實(shí)現(xiàn)各種數(shù)字信號處理算法,將波形以圖形的方式直觀地顯示出來,并能夠得到被測信號各種豐富的參數(shù)。

1 系統(tǒng)總體方案
    本設(shè)計(jì)的系統(tǒng)框圖如圖1所示,得益于FPGA的靈活性,系統(tǒng)的大部分功能都在FPGA內(nèi)部完成,使得整體結(jié)構(gòu)非常簡潔。外圍電路主要包括A/D轉(zhuǎn)換模塊、LCD顯示器、SD卡、FLASH和按鍵。


    A/D轉(zhuǎn)換模塊的功能是實(shí)現(xiàn)模擬信號到數(shù)字信號的轉(zhuǎn)換;FLASH模塊的功能是存儲(chǔ)SoPC(System-on-a-Programmable-Chip)片上系統(tǒng)的固件程序;SD卡模塊的功能是實(shí)現(xiàn)測量信息的長期、大量存儲(chǔ),提供與PC機(jī)的接口,便于后期在計(jì)算機(jī)上進(jìn)行分析;LCD模塊的功能是對測量信號波形和相關(guān)參數(shù)的實(shí)時(shí)顯示;按鍵模塊的功能是提供整機(jī)的調(diào)節(jié)和控制接口。

2 FPGA邏輯功能模塊設(shè)計(jì)
    FPGA內(nèi)部系統(tǒng)框圖如圖2所示。它主要由采樣率控制器、觸發(fā)控制單元、FIFO控制器、頻率測量單元、按鍵控制單元和LCD驅(qū)動(dòng)器構(gòu)成。


[!--empirenews.page--]
3 SoPC設(shè)計(jì)
    本設(shè)計(jì)中使用的是NiosⅡ/f處理器,使用硬件乘除法器,工作于50 MHz。使用FPGA內(nèi)嵌的RAM塊作為系統(tǒng)的運(yùn)行內(nèi)存。采用FLASH作為片外存儲(chǔ)器,保存用戶程序,其通過Avalon總線三態(tài)橋與NiosⅡ處理器相連。
3.1 SoPC軟件設(shè)計(jì)
    系統(tǒng)開機(jī)調(diào)用相關(guān)函數(shù)初始化LCD,SD卡和FAT文件系統(tǒng)之后,首先繪制圖形界面,輸出固定信息,接著讀取波形參數(shù),將其顯示在LCD上,然后等待FIFO寫滿。若FIFO寫滿則將FIFO數(shù)據(jù)讀入緩沖區(qū)中,同時(shí)在屏幕上繪制波形,獲得波形的最大和最小值。最后如果有用戶按鍵輸入則處理按鍵事件,否則檢測波形參數(shù)是否變化,若有變化則更新顯示,否則等待FIFO寫滿,進(jìn)行下一次顯示。流程如圖3所示。


3.1.1 SoPC底層軟件設(shè)計(jì)
    底層軟件為各設(shè)備的驅(qū)動(dòng)程序,主要有:
    (1)LCD驅(qū)動(dòng)。根據(jù)顯示內(nèi)容的需求,LCD驅(qū)動(dòng)程序設(shè)計(jì)了以下函數(shù):
    ①發(fā)送數(shù)據(jù)/命令:將數(shù)據(jù)/命令通過驅(qū)動(dòng)器發(fā)送到LCD;
    ②LCD初始化:完成LCD的上電復(fù)位和初始化;
    ③LCD清屏:清空顯示;
    ④輸出一個(gè)像素:在指定位置輸出一個(gè)指定顏色的像素點(diǎn);
    ⑤畫直線:畫從(x0,y0)到(x1,y1)的指定顏色的直線;
    ⑥畫矩形:畫從(x0,y0)到(x1,y1)的指定顏色的矩形,可選擇是否填充;
    ⑦輸出一個(gè)字符:在指定位置輸出一個(gè)指定顏色的字符;
    ⑧輸出一個(gè)字符串:在指定位置輸出一個(gè)指定顏色的字符串。
    (2)SD卡驅(qū)動(dòng)。SD卡通信采用SPI模式,SD卡驅(qū)動(dòng)的函數(shù)及功能為:
    ①發(fā)送數(shù)據(jù)/命令:將數(shù)據(jù)/命令發(fā)送到SD卡;
    ②讀取數(shù)據(jù):從SD卡讀取一個(gè)字節(jié);
    ③SD卡復(fù)位:SD卡上電后復(fù)位并使其進(jìn)入SPI模式;
    ④SD卡初始化:初始化SD卡使其作好數(shù)據(jù)讀寫準(zhǔn)備;
    ⑤讀一個(gè)扇區(qū):從指定的扇區(qū)地址讀取一個(gè)扇區(qū)的數(shù)據(jù)到緩沖區(qū);
    ⑥寫一個(gè)扇區(qū):將緩沖區(qū)數(shù)據(jù)寫入指定的扇區(qū)地址處。
    (3)FAT16文件系統(tǒng)。FAT16文件系統(tǒng)的主要函數(shù)及功能為:
    ①FAT初始化:獲取每簇的扇區(qū)數(shù)、FAT表地址、根目錄地址和FAT表占用的扇區(qū)數(shù)等FAT信息;
    ②確定文件名稱:查找已存在的波形文件以確定要保存的文件的名稱;
    ③添加根目錄項(xiàng):將保存的文件的名稱、大小、位置等添加到根目錄;
    ④添加FAT表項(xiàng):查找FAT表的空簇,將新文件的簇號寫入FAT表。[!--empirenews.page--]
3.1.2 SoPC頂層軟件設(shè)計(jì)
    SoPC的頂層軟件主要完成波形及參數(shù)的顯示、運(yùn)行/停止控制、光標(biāo)測量、波形窗口移動(dòng)、保存數(shù)據(jù)到SD卡等功能。
    (1)波形參數(shù)顯示。繪制完圖形界面后首先輸出波形信息的固定部分,如Vpp:???mV,其中“???”將在讀取相關(guān)參數(shù)后更新。然后讀取相關(guān)參數(shù)并判斷是否變化,若有變化則更新相關(guān)顯示,在波形輸出結(jié)束后將峰峰值更新到屏幕上。
    (2)波形顯示。波形參數(shù)顯示完成之后,CPU進(jìn)入等待狀態(tài),若FIFO寫滿信號為1,則開始讀FIFO數(shù)據(jù)并顯示波形。流程如圖4所示。


    (3)運(yùn)行/停止控制。波形顯示完后,若讀到stop為1,則等到FIFO寫滿后進(jìn)入停止?fàn)顟B(tài)。在停止?fàn)顟B(tài)FIFO中的數(shù)據(jù)保持不變。在停止?fàn)顟B(tài)若檢測到用戶輸入,則執(zhí)行相應(yīng)函數(shù)。若檢測到stop為0,則清屏,重繪圖形界面,輸出運(yùn)行圖標(biāo),返回到顯示波形狀態(tài)。
    (4)光標(biāo)測量。在停止?fàn)顟B(tài)若檢測到光標(biāo)測量為1,則進(jìn)入光標(biāo)測量狀態(tài)。首先將2個(gè)光標(biāo)的y軸坐標(biāo)轉(zhuǎn)換為實(shí)際電壓值輸出到LCD,然后計(jì)算2個(gè)光標(biāo)電壓的差值輸出到LCD上的相應(yīng)位置處。再根據(jù)分頻系數(shù)將2個(gè)光標(biāo)的x軸差值轉(zhuǎn)換為實(shí)際的時(shí)間,輸出到LCD。最后繪制2個(gè)十字光標(biāo),每個(gè)光標(biāo)由一橫一縱2條直線構(gòu)成,其交點(diǎn)位于波形上。
    光標(biāo)繪制完成后檢測用戶按鍵,如果有左右移動(dòng)或光標(biāo)切換按鍵操作,則對相應(yīng)光標(biāo)的x坐標(biāo)做加減運(yùn)算,然后從緩沖區(qū)重新讀取波形輸出到LCD,將之前的信息覆蓋,接著再次調(diào)用光標(biāo)繪制函數(shù)繪制新的光標(biāo)位置和光標(biāo)的信息。流程如圖5所示。

[!--empirenews.page--]
    (5)將波形保存到SD卡。在停止?fàn)顟B(tài)若檢測到保存按鍵輸入,則將數(shù)據(jù)保存到SD卡。首先在FAT表中查找空簇,返回簇號,并在FAT表中標(biāo)記該簇已被占用,同時(shí)更新FAT表。然后在根目錄中查找已存在的DAT文件,若有DAT文件則返回最大的文件名,否則返回0。然后將緩沖區(qū)的數(shù)據(jù)寫入SD卡的對應(yīng)扇區(qū),扇區(qū)地址=根目錄地址+根目錄大小+(簇號-2)×每簇的扇區(qū)數(shù)。接著在根目錄中找到一個(gè)空閑項(xiàng),將文件名稱、大小、所在簇寫入該項(xiàng),即完成文件的保存。最后在LCD上輸出相應(yīng)的提示信息。流程如圖6所示。
    (6)波形顯示窗口的移動(dòng)。在停止?fàn)顟B(tài)若檢測到左右移動(dòng)輸入,則進(jìn)行波形顯示窗口的移動(dòng)。當(dāng)左/右鍵按下時(shí),若窗口沒超過FIFO邊界,則將窗口的首地址左/右移2個(gè)像素,然后更新顯示的窗口,同時(shí)按比例更新窗口指示器的位置。
    (7)波形文件格式。用于保存波形的文件使用8.3格式命名,名稱為OSC_xxxx.DAT,其中xxxx為文件的編號。由于每次采集的波形數(shù)據(jù)量大小相同,因此文件的大小也為固定值。FIFO深度為256 B,添加觸發(fā)電平、觸發(fā)沿、時(shí)間刻度等信息后,文件的體積為260 B。由于磁盤的底層讀寫操作是按照扇區(qū)進(jìn)行的,一個(gè)扇區(qū)512 B,所以將文件的大小定義為512 B。前256 B為波形數(shù)據(jù),第257 B為觸發(fā)沿信息,第258 B為觸發(fā)電平信,第259 B,260 B為分頻系數(shù),通過軟件轉(zhuǎn)換后可得時(shí)間刻度的大小。

4 PC機(jī)軟件設(shè)計(jì)
    PC端軟件使用C語言設(shè)計(jì)。圖形部分使用SDL庫。PC機(jī)軟件用于打開示波器保存的波形文件,還原波形信息,并可以進(jìn)行光標(biāo)測量。程序首先初始化SDL視頻,然后打開文件讀取260個(gè)字節(jié),關(guān)閉文件。載入背景圖案,初始化TTF字體。將波形繪制到背景圖案上并計(jì)算相關(guān)參數(shù)輸出到相應(yīng)位置,繪制兩個(gè)光標(biāo),等待用戶移動(dòng)光標(biāo)。光標(biāo)移動(dòng)后重新載入背景和波形并更新相關(guān)信息。軟件流程如圖7所示。



5 結(jié)語
    本文介紹了一種基于SoPC的數(shù)字示波器設(shè)計(jì),實(shí)際測試結(jié)果表明,系統(tǒng)完成了數(shù)字示波器的基本功能,各部分工作正常,各項(xiàng)指標(biāo)達(dá)到設(shè)計(jì)要求。在設(shè)計(jì)過程中采用了FPGA芯片、嵌入式NiosⅡ處理器以及Verilog HDL語言,簡化了電路的設(shè)計(jì),提高了靈活性,縮短了設(shè)計(jì)周期。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉