Skip to content

LHXB111/LabVIEW-Serial-PCM-Waveform-Viewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

LabVIEW-Serial-PCM-Waveform-Viewer

A LabVIEW upper-computer module for UART signal acquisition, frame parsing, and real-time waveform display, designed for a lock-in amplifier system.

基于 LabVIEW 的串口上位机程序,用于接收下位机发送的 PCM 数据帧,完成数据解析,并实时显示原始波形。
本项目是锁相放大上位机开发的第一阶段成果,当前已实现:

  • 串口连续接收数据
  • 按自定义帧格式解析 PCM 数据
  • 处理半包 / 粘包 / 连续帧情况
  • 实时显示单帧波形与连续波形
  • 使用虚拟串口进行联调测试

1. 项目简介

本项目面向单片机串口数据采集场景,使用 LabVIEW 编写上位机程序。
下位机按照约定的数据帧格式发送 PCM 采样数据,上位机完成串口读取、缓存拼接、帧头帧尾校验、数据区提取以及 int16 解析,并将结果实时显示为波形。

当前版本主要完成“串口接收 PCM 数据并显示原始波形”这一基础功能,为后续实现参考信号生成、锁相乘法、低通滤波和直流量提取打下基础。


2. 功能特点

  • 基于 VISA 串口通信实现数据接收
  • 采用缓存区 + 子 VI 解析结构,支持连续字节流处理
  • 自定义帧协议解析,支持:
    • 帧头检测
    • 长度判断
    • 帧尾检测
    • Payload 提取
    • 小端 int16 数据还原
  • 支持原始波形单帧显示(Graph)
  • 支持连续波形滚动显示(Chart)
  • 可配合虚拟串口工具进行无下位机调试

3. 开发环境

  • LabVIEW
  • NI-VISA
  • Virtual Serial Port Driver(虚拟串口测试)
  • UartAssist(串口调试与测试数据发送)

4. 数据帧格式

当前项目采用如下帧格式:

AA 55 + 长度字段(2字节) + 数据区(2N字节) + 55 AA

说明:

  • AA 55:帧头,2 字节
  • 长度字段:2 字节
  • 数据区:N 个采样点,每个点为 int16,共 2N 字节
  • 55 AA:帧尾,2 字节

完整帧总长度为:

FrameBytes = 2 + 2 + 2N + 2 = 2N + 6

5. 程序结构

5.1 main.vi

负责整体流程控制,包括:

  • 串口初始化
  • 串口字节流读取
  • 缓存拼接
  • 调用解析子 VI
  • 原始波形显示
  • 停止后关闭串口

5.2 sub_Parse_PCM_Frame.vi

负责单帧解析,包括:

  • 查找帧头 AA 55

  • 判断数据长度是否足够一整帧

  • 检查帧尾 55 AA

  • 提取数据区 Payload

  • 将 2 字节数据还原为一个 I16

  • 输出:

    • Out Buffer
    • valid?
    • Samples I16
    • Frame Length
    • Parse Status

6. 使用方法

6.1 真实下位机接收

  1. 打开 main.vi
  2. 选择对应串口号
  3. 设置波特率、采样率 fs、每帧点数 N
  4. 运行 VI
  5. 下位机发送符合协议的数据帧
  6. 上位机解析并实时显示波形

6.2 无下位机虚拟测试

本项目可使用虚拟串口工具进行测试:

  • 使用 Virtual Serial Port Driver 创建一对虚拟串口(如 COM1COM2
  • LabVIEW 连接其中一个串口
  • UartAssist 连接另一个串口
  • 在 UartAssist 中以 HEX 模式 发送测试帧

例如,当 N = 2 时,可发送:

AA 55 00 00 01 00 02 00 55 AA

解析结果应为:

Samples I16 = [1, 2]

7. 测试结果

项目已完成以下测试:

  • 未找到帧头测试
  • 数据不足一帧测试
  • 帧尾错误测试
  • 正常帧解析测试
  • 正负数 int16 数据解析测试
  • 虚拟串口连续发送测试
  • 连续波形显示测试

测试表明,本程序能够稳定完成串口数据接收、帧结构识别、PCM 数据解析与原始波形显示。


8. 当前完成情况

当前版本已完成:

  • 串口接收字节流
  • PCM 数据帧解析
  • 原始波形显示
  • 虚拟串口联调测试

当前版本暂未完成:

  • 参考信号生成
  • 锁相乘法运算
  • 低通滤波 / 积分
  • 直流分量输出
  • 双相锁相与幅值计算

9. 后续计划

后续将在当前串口接收与原始波形显示的基础上,继续实现锁相放大上位机功能,包括:

  1. 参考信号生成
  2. 相敏检波
  3. 低通滤波
  4. 直流输出显示
  5. 原始信号 / 参考信号 / 锁相输出联合显示

10. 说明

本项目当前版本主要用于项目申报 / 上位机功能验证。 如果后续接入真实单片机系统,可进一步完善长度字段校验、异常处理和数据存储功能。


11. Author

项目作者:LHXB111

如用于课程作业、项目申报或毕业设计,可根据实际情况修改。

About

A LabVIEW upper-computer module for UART signal acquisition, frame parsing, and real-time waveform display, designed for a lock-in amplifier system.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors