分享基于STM32打造的虛擬示波器,資料齊全,有興趣可以看看,所有資料都在附件里了。
1. 分析儀功能介紹
以“低成本和高性能”為設(shè)計(jì)思想,借助虛擬儀器的概念和高速的數(shù)字信號(hào)處理算法將傳統(tǒng)的函數(shù)發(fā)生器、示波器、數(shù)據(jù)記錄儀、頻率計(jì)、譜分析儀以及濾波器設(shè)計(jì)和仿真等功能高度集成、統(tǒng)一平臺(tái)方便使用。
軟件環(huán)境支持聲卡、USB模塊和虛擬仿真,三種模式。聲卡模式,可以借助電腦的聲卡來完成對(duì)音頻范圍內(nèi)信號(hào)的分析和處理;USB模塊,可以完成對(duì)帶寬允許內(nèi)的信號(hào)的分析和處理;其中演示模式采用軟件模擬來實(shí)現(xiàn)所有的功能,便于教學(xué)和理論的演示。
公開軟件通信協(xié)議,可以按照協(xié)議將自己的硬件加入我們的軟件環(huán)境,使用所有的分析功能。
函數(shù)發(fā)生器
支持產(chǎn)生“正弦波”、“三角波”、“矩形波”、“上鋸齒波”、“下鋸齒波”、“白噪聲”和“合成波形”,并提供峰值、頻率、輸出相位差的調(diào)整功能。
波形文件輸出,可以支持“正弦波”、“三角波”、“矩形波”、“上鋸齒波”、“下鋸齒波”、“白噪聲”和“合成波形”,提供峰值、頻率、輸出相位差的調(diào)整功能,支持以wav、txt、hex 和mif 文件形式的輸出。
示波器/譜分析儀
可以工作在“聲卡”、“USB模塊”、“仿真”和“串口捕獲”四種模式。支持任意多畫面的同時(shí)顯示,便于波形的多樣分析;支持輸入波形硬件和軟件觸發(fā);支持輸入波形的插值和等效采樣;支持輸入波形的“相加”、“相減”和“相乘”合成;支持對(duì)輸入波形加“矩形窗”、“三角窗”、“海明窗”、“漢寧窗”和“布萊克曼窗”;支持對(duì)輸入波形的濾波處理; 支持對(duì)輸入波形的“李薩茹圖形”、“幅頻”、“相頻”、“對(duì)數(shù)幅頻”、“自功率譜”、“對(duì)數(shù)自功率譜”、“自相關(guān)”和“互相關(guān)”的分析。
說明:本協(xié)議中B 代表 bit,即8B=1 字節(jié)
1.重啟序列
改序列用于整個(gè)下位機(jī)的重啟,收到該序列后,需重新握手,其過程如下:
PC ---------->0xff,0xff,0xff,0xff,0xff,0x11,0x22,0x33,0x44,0x55
0xff,0xff,0xff,0xff,0xff,0x11,0x22,0x33,0x44,0x55<-------------CE
2.握手
握手用于上位機(jī)和下位機(jī)的相互識(shí)別過程。其過程如下:
PC ---------->XX XX XX XX XX (5 個(gè)隨機(jī)數(shù))
XX XX XX XX XX (5 個(gè)隨機(jī)數(shù)) <-------------CE
PC---------->XX XX XX XX XX XX XX XX XX XX (上面10 個(gè)隨機(jī)數(shù))
版本信息 <-------------CE
PC----------> AA
(握手成功) 55 <-------------CE
版本信息(32B):
static const unsigned char banben[]=
{ ‘Y’,’i’,’X’,’i’,’n’,’g’,’d’,’i’,’a’,’n’,’z’,‘i’, 0, 0, 0, 0,
‘S’,’t’,’u‘,’-’,’0’ ‘.’, ‘1’, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
3.控制
控制協(xié)議用于PC 控制下位機(jī)工作和獲得一些必要的信息。包含兩種格式,第一種:“PC控制特定通道”用于 PC 控制通道 ID 指定的下位機(jī)通道;第二種:“PC 控制所有通道”用于 PC 控制下位機(jī)中支持的所有通道。例如發(fā)送 0x01,0x01,0x00 表示開啟通道 0x01;發(fā)送0xff,0x12,0x00 表示要求下位機(jī)的所有通道開始采集數(shù)據(jù),并上傳。
需要說明的是,假如你有兩個(gè)通道,則這兩個(gè)通道的ID,默認(rèn)為0x01 和0x02。PC 就用這兩個(gè)ID 兩控制下位機(jī)響應(yīng)的通道。
3.1 控制信息格式
PC 控制特定通道:
通道ID(8B) 控制碼(8B) 控制信息(32B) 附加信息
PC 控制所有通道:
通道ID (0xFF) 控制碼(8B) 控制信息(32B) 附加信息
3.2 控制碼
開啟 控制碼 01
關(guān)閉 控制碼 10
通道數(shù) 控制碼 02
采樣位數(shù) 控制碼 04
采樣符號(hào) 控制碼 08
采集并上傳數(shù)據(jù) 控制碼 12
3.3 CE 應(yīng)答信息格式:
通道ID(8B) 應(yīng)答碼(8B) 應(yīng)答信息(32B) 附加信息
成功 應(yīng)答碼 01
失敗 應(yīng)答碼 10
例如:
通道數(shù) 控制碼 02 回復(fù)信息: 0xFF(8B) 0x01(8B) 0x00000002(32B)
通道ID:所有通道 應(yīng)答碼:成功 應(yīng)答信息:2 個(gè)通道
采樣位數(shù) 控制碼 04 回復(fù)信息: 0xFF(8B) 0x01(8B) 0x00000008(32B)
通道ID:所有通道 應(yīng)答碼:成功 應(yīng)答信息:8 位
采樣符號(hào) 控制碼 08 回復(fù)信息: 0xFF(8B) 0x01(8B) 0x00000001(32B)
通道ID:所有通道 應(yīng)答碼:成功 應(yīng)答信息:有符號(hào) 1,無符號(hào)0
4.數(shù)據(jù)傳輸
數(shù)據(jù)傳輸格式(CE---->PC)
通道數(shù)N(8B) 放大倍數(shù) (N *32B) 偏置 (N *32B) 數(shù)據(jù)長度32B) 數(shù)據(jù)(n*8B)
下位機(jī)傳輸采集數(shù)據(jù)的格式,通道數(shù)N 表示這次傳輸中的通道個(gè)數(shù),N 個(gè)通道ID 的表示后面的數(shù)據(jù),各個(gè)通道的排列順序,放大倍數(shù),表示這次數(shù)據(jù) N 個(gè)通道的每個(gè)的放大倍數(shù)是多少。數(shù)據(jù)長度表示后面有多少字節(jié)數(shù)據(jù)。
例如:
0x02 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x00
兩個(gè)通道 通道 0x01 放大 1 倍 通道 0x02 放大2 倍 通道 0x01 偏置
0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00
通道 0x01 偏置 256 字節(jié)數(shù)據(jù)
0x11 0xA3 0x12 0x43………
通道 0x01 數(shù)據(jù) 通道0x02 數(shù)據(jù) 通道 0x01 數(shù)據(jù) 通道0x02 數(shù)據(jù)
附件內(nèi)容截圖: