基于SoPC的數字示波器設計
(5)將波形保存到SD卡。在停止狀態(tài)若檢測到保存按鍵輸入,則將數據保存到SD卡。首先在FAT表中查找空簇,返回簇號,并在FAT表中標記該簇已被占用,同時(shí)更新FAT表。然后在根目錄中查找已存在的DAT文件,若有DAT文件則返回最大的文件名,否則返回0。然后將緩沖區的數據寫(xiě)入SD卡的對應扇區,扇區地址=根目錄地址+根目錄大小+(簇號-2)×每簇的扇區數。接著(zhù)在根目錄中找到一個(gè)空閑項,將文件名稱(chēng)、大小、所在簇寫(xiě)入該項,即完成文件的保存。最后在LCD上輸出相應的提示信息。流程如圖6所示。
(6)波形顯示窗口的移動(dòng)。在停止狀態(tài)若檢測到左右移動(dòng)輸入,則進(jìn)行波形顯示窗口的移動(dòng)。當左/右鍵按下時(shí),若窗口沒(méi)超過(guò)FIFO邊界,則將窗口的首地址左/右移2個(gè)像素,然后更新顯示的窗口,同時(shí)按比例更新窗口指示器的位置。
(7)波形文件格式。用于保存波形的文件使用8.3格式命名,名稱(chēng)為OSC_xxxx.DAT,其中xxxx為文件的編號。由于每次采集的波形數據量大小相同,因此文件的大小也為固定值。FIFO深度為256 B,添加觸發(fā)電平、觸發(fā)沿、時(shí)間刻度等信息后,文件的體積為260 B。由于磁盤(pán)的底層讀寫(xiě)操作是按照扇區進(jìn)行的,一個(gè)扇區512 B,所以將文件的大小定義為512 B。前256 B為波形數據,第257 B為觸發(fā)沿信息,第258 B為觸發(fā)電平信,第259 B,260 B為分頻系數,通過(guò)軟件轉換后可得時(shí)間刻度的大小。
4 PC機軟件設計
PC端軟件使用C語(yǔ)言設計。圖形部分使用SDL庫。PC機軟件用于打開(kāi)示波器保存的波形文件,還原波形信息,并可以進(jìn)行光標測量。程序首先初始化SDL視頻,然后打開(kāi)文件讀取260個(gè)字節,關(guān)閉文件。載入背景圖案,初始化TTF字體。將波形繪制到背景圖案上并計算相關(guān)參數輸出到相應位置,繪制兩個(gè)光標,等待用戶(hù)移動(dòng)光標。光標移動(dòng)后重新載入背景和波形并更新相關(guān)信息。軟件流程如圖7所示。本文引用地址:http://dyxdggzs.com/article/177387.htm
5 結語(yǔ)
本文介紹了一種基于SoPC的數字示波器設計,實(shí)際測試結果表明,系統完成了數字示波器的基本功能,各部分工作正常,各項指標達到設計要求。在設計過(guò)程中采用了FPGA芯片、嵌入式NiosⅡ處理器以及Verilog HDL語(yǔ)言,簡(jiǎn)化了電路的設計,提高了靈活性,縮短了設計周期。
評論