基于 ARM+FPGA+AD平台的多类型同步信号采集仪开发及试验验证(一)上位机设计

采集仪上位机设计
本章开发了一款基于 C# 的上位机软件,用于对多类型同步信号采集仪的各项功能
进行操作。从采集仪的数据传输需求出发,上位机利用以太网 UDP 协议实现与采集仪
的数据交互,包括向采集仪发送控制信息与配置信息、接收采集仪传来的 AD 数据,然
后对数据进行解析,根据面向用户原则,开发图形用户界面 GUI ,实现性能配置、数据
可视化和本地存储的功能。
4.1 总体设计
本文开发的多类型同步信号采集仪可以根据 UDP 协议传来配置信息对 AD 芯片进
行配置,并通过 UDP 协议发送同步采集到的 AD 芯片数据,因此,用于对采集仪进行
各项功能操作的上位机软件将实现如下的功能:开发 UDP 从机与采集仪 UDP 主机建立
通信;通过 UDP 协议向采集仪发送配置信息和控制信息;通过 UDP 协议接收采集仪发
送过来的 AD 数据;开发面向用户的图形用户界面 GUI ;实现数据配置、数据可视化与
本地存储的功能。
根据上述需求分析,上位机软件模型可划分为主界面模块、数据交互模块、数据配
置模块、数据可视化模块和数据本地存储模块,利用这五个模块来实现对采集仪的各项
功能操作,功能模块结构如图 4.1 所示。

上位机的每个模块实现功能如下:
( 1 )主界面模块:搭建起 GUI 的整体界面,后续的子界面均在主界面中添加。
( 2 )数据交互模块:搭建 UDP 从机,建立起与采集仪的 UDP 通信,将数据配置
模块的配置信息通过 UDP 协议发送到采集仪,接收采集仪通过 UDP 协议发送来的 AD
数据并将其传送给数据可视化模块。
( 3 )数据配置模块:建立数据配置界面,用户可以对每一个通道 AD 芯片的类型
与灵敏度进行设置,类型信息发送到采集仪进行配置,灵敏度信息将用于数据可视化模
块对数据进行解析。
( 4 )数据可视化模块:建立数据可视化界面,根据灵敏度信息对采集仪发送来的
AD 数据处理,用户可以观察到每一个通道数据的变化曲线。
( 5 )数据本地存储模块:建立数据本地存储设置界面,用户可以根据监测需求对解
析后的 AD 数据进行相应的存储。
4.1.1 C#编程语言
C# 是一款由微软开发的现代通用面向对象的编程语言,凭其简洁的语法与强大的性
能得到广大程序员的青睐,在接近 C 和 C++ 构想的同时也兼顾了 Java 的特性,并提供
了可视化工具,可以方便快捷高效地开发 GUI 界面等应用程序,因此,本文选用 C# 编
写采集仪的上位机,完成对采集仪的控制与配置功能。
C# 包含有如下特点:
( 1 )简单、安全。 C# 提供了命名空间用于管理文件,可利用 using 关键字添加命
名空间;拥有广泛的数据类型并且每个数据类型的大小是固定的;不像 C++ 和 C 那样使
用指针,没有直接读取内存的危险操作,满足结构健康监测系统稳定监测的需求。
( 2 )面向对象,组件。封装、继承和多态这三个功能保证了 C# 编程语言的高速的
开发效率;大量的标准库和组件版本极大地方便了 GUI 界面的开发。
( 3 )支持多种类型程序。不仅可以开发 Windows 窗体 GUI 程序,同时也可以开发
Web 应用程序和手机应用程序。
( 4 )可在多种计算机平台编译。在 Windows 、 Linux 和 Mac 系统均可以使用。
( 5 )支持自动垃圾回收。可以节约大量系统资源。
4.1.2 文件结构
本章将上位机的所有资源、程序文件均存放在 eDAQ_Sampling_Software 工程文件
下,文件结构如图 4.2 所示。
主要程序文件的介绍如下:
( 1 ) Program.cs :上位机主程序运行入口。
( 2 ) Form_Dashboard.cs ,上位机 GUI 主界面。
( 3 ) Form_Welcome.cs 、 UDP_Comm.cs 、 UDP_Config.cs :数据交互模块。
( 4 ) Form_Config.cs ,数据配置模块。
( 5 ) Form_Chart.cs 、 Channel_Parameters.cs ,数据可视化模块。
( 6 ) Form_Save.cs 、 Form_Save_Setting.cs ,数据本地存储模块。
4.1.3 主程序入口
主程序使用了 System.Windows.Forms 命名空间,该命名空间是开发 Windows GUI
界面的基础,通过使用其包含的大量类可以方便快捷地实现丰富的用户界面功能。
在 Main 主函数中,首先可以利用 Application 类自带的 EnableVisualStyles 和
SetCompatibleTextRenderingDefault 方法完成对 GUI 界面的初始化,最后利用 Run 函数
开启 Form_Dashboar 类,即 GUI 的主界面。
4.2 主界面模块设计
通过创建 Form_Dashboard 类搭建起上位机的主界面,该类继承自 Form 类,主界面
如图 4.3 所示,包含左侧菜单栏与右侧功能栏两个部分。


相关推荐
仲南音2 天前
Xilinx FPGA——时钟IP核MMCM、PLL
fpga开发
I'm a winner2 天前
基于Xilinx FPGA的LVDS高速串行通信系统(三)--数据训练及握手机制【文末源码】
fpga开发
upper20203 天前
coremark移植坑之-nostartfiles -nostdlib参数
学习·fpga开发·coremark移植·riscv设计
Eloudy3 天前
Vivado 纯命令行构建 FPGA 项目教程
fpga开发
Rambo.xia3 天前
AXI跨时钟域与数据一致性——CDC FIFO深度不够、写后读冒险、多Master仲裁、乱序返回,出了Bug根本查不出来
fpga开发·bug
upper20203 天前
FPGA部署卷积神经网络识别MINST图片
fpga开发·卷积神经网络·minst·minst识别·部署神经网络·神经网络识别图片
你是我的解忧王子3 天前
嵌入式 ADC采样 原始数据分析上层(平均值 波动率 正态分布 线性补偿 系统误差)
fpga开发·数据挖掘·数据分析
9527华安4 天前
FPGA纯verilog代码ISP图像处理培训教程,基于IMX214,提供工程源码+视频教程+FPGA开发板
图像处理·fpga开发·isp·imx214·mipi
千寻xun4 天前
二、实战篇-NVME SSD控制之ZYNQ实现(六)-读写NVME SSD硬盘数据
fpga开发·nvme·nvme ssd
千寻xun5 天前
二、实战篇-NVME SSD控制之ZYNQ实现(三)
fpga开发·nvme ssd·nvme协议