分享基于STM32打造的虚拟示波器,资料齐全,有兴趣可以看看,所有资料都在附件里了。
1.  分析仪功能介绍
以“低成本和高性能”为设计思想,借助虚拟仪器的概念和高速的数字信号处理算法将传统的函数发生器、示波器、数据记录仪、频率计、谱分析仪以及滤波器设计和仿真等功能高度集成、统一平台方便使用。
软件环境支持声卡、USB模块和虚拟仿真,三种模式。声卡模式,可以借助电脑的声卡来完成对音频范围内信号的分析和处理;USB模块,可以完成对带宽允许内的信号的分析和处理;其中演示模式采用软件模拟来实现所有的功能,便于教学和理论的演示。
公开软件通信协议,可以按照协议将自己的硬件加入我们的软件环境,使用所有的分析功能。
函数发生器
支持产生“正弦波”、“三角波”、“矩形波”、“上锯齿波”、“下锯齿波”、“白噪声”和“合成波形”,并提供峰值、频率、输出相位差的调整功能。
波形文件输出,可以支持“正弦波”、“三角波”、“矩形波”、“上锯齿波”、“下锯齿波”、“白噪声”和“合成波形”,提供峰值、频率、输出相位差的调整功能,支持以wav、txt、hex 和mif 文件形式的输出。
示波器/谱分析仪
可以工作在“声卡”、“USB模块”、“仿真”和“串口捕获”四种模式。支持任意多画面的同时显示,便于波形的多样分析;支持输入波形硬件和软件触发;支持输入波形的插值和等效采样;支持输入波形的“相加”、“相减”和“相乘”合成;支持对输入波形加“矩形窗”、“三角窗”、“海明窗”、“汉宁窗”和“布莱克曼窗”;支持对输入波形的滤波处理; 支持对输入波形的“李萨茹图形”、“幅频”、“相频”、“对数幅频”、“自功率谱”、“对数自功率谱”、“自相关”和“互相关”的分析。
说明:本协议中B 代表 bit,即8B=1 字节
1.重启序列  
改序列用于整个下位机的重启,收到该序列后,需重新握手,其过程如下:  
PC ---------->0xff,0xff,0xff,0xff,0xff,0x11,0x22,0x33,0x44,0x55
0xff,0xff,0xff,0xff,0xff,0x11,0x22,0x33,0x44,0x55<-------------CE
2.握手  
握手用于上位机和下位机的相互识别过程。其过程如下:  
PC ---------->XX XX XX XX XX (5 个随机数)
XX XX XX XX XX  (5 个随机数)  <-------------CE
PC---------->XX XX XX XX XX XX XX XX XX XX  (上面10 个随机数)
版本信息  <-------------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.控制  
控制协议用于PC 控制下位机工作和获得一些必要的信息。包含两种格式,第一种:“PC控制特定通道”用于 PC 控制通道 ID 指定的下位机通道;第二种:“PC 控制所有通道”用于 PC  控制下位机中支持的所有通道。例如发送 0x01,0x01,0x00 表示开启通道 0x01;发送0xff,0x12,0x00 表示要求下位机的所有通道开始采集数据,并上传。
需要说明的是,假如你有两个通道,则这两个通道的ID,默认为0x01 和0x02。PC 就用这两个ID 两控制下位机响应的通道。
3.1 控制信息格式
PC 控制特定通道:
通道ID(8B)  控制码(8B)  控制信息(32B)  附加信息
PC 控制所有通道:
通道ID  (0xFF)  控制码(8B)  控制信息(32B)  附加信息
3.2 控制码
开启  控制码  01
关闭  控制码  10
通道数  控制码  02
采样位数  控制码  04
采样符号  控制码  08
采集并上传数据  控制码  12
3.3 CE 应答信息格式:
通道ID(8B)  应答码(8B)  应答信息(32B)  附加信息
成功  应答码  01
失败  应答码  10
例如:
通道数 控制码 02  回复信息:  0xFF(8B)  0x01(8B)  0x00000002(32B)
通道ID:所有通道  应答码:成功  应答信息:2 个通道
采样位数 控制码  04 回复信息:  0xFF(8B)  0x01(8B)  0x00000008(32B)
通道ID:所有通道  应答码:成功  应答信息:8 位
采样符号 控制码  08 回复信息: 0xFF(8B)  0x01(8B)  0x00000001(32B)
通道ID:所有通道  应答码:成功  应答信息:有符号 1,无符号0
4.数据传输  
数据传输格式(CE---->PC)
通道数N(8B)  放大倍数  (N *32B)  偏置  (N *32B)  数据长度32B)  数据(n*8B)
下位机传输采集数据的格式,通道数N 表示这次传输中的通道个数,N 个通道ID 的表示后面的数据,各个通道的排列顺序,放大倍数,表示这次数据 N  个通道的每个的放大倍数是多少。数据长度表示后面有多少字节数据。
例如:
0x02  0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x00
两个通道  通道 0x01 放大 1 倍  通道 0x02 放大2 倍  通道 0x01 偏置
0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00
通道 0x01 偏置  256 字节数据
0x11  0xA3  0x12  0x43………
通道 0x01 数据  通道0x02 数据  通道 0x01 数据  通道0x02 数据
附件内容截图:
								
								
								
124
					