基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试

这篇具有很好参考价值的文章主要介绍了基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

完成了测试台软件分析和编程环境搭建后,接下来就是软件的编写。本章主要包括
软件窗口界面设计和功能代码实现。以某型号数据记录仪的工作需求为目标,根据测试
工作流程,以 Linux-Qt 为主要开发手段,设计一款功能完备、界面友好、操作简洁的测
试台软件。
3.1 软件设计原理
根据需求和总体设计软件分为三个工作模式,功能模块图如图 3.1 所示。从图中可
以明显看到软件包括模拟信号源、存储器检测回读、数据处理三个功能窗口。每个窗口
功能独立,又紧密结合。可以配合工作进行测试,也可以单独工作进行某一项测试。
基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试
首先是模拟源窗口,主要负责飞行实验前地面数据源模拟,由上位机发送指令控制
测试台中的主控 CPU ,产生 5 路开关量、 2 路模拟量、 1 422 数据, 5 路网络数据。
目的是为了在飞行试验前,对系统的整个流程进行测试。通过发送已设定好的模拟数据
并存储到 Flash 中,然后回读数据,经过初步对比和进一步数据处理来验证整个系统的
工作状态。存储器检测回读窗口包括网络配置、存储器选择、查询当前存储状态、读取
次数和读取量设置、停止读数、记录仪擦除等功能,核心任务是对已经存在 Flash 中的
数据进行回读。最后是数据处理窗口,主要功能是对已经回读并存放到桌面的的原始数
据文件进行分离,按照不同通道将数据分开,便于单独研究。
通讯模式采用串口指令收发和 UDP 数据回读两种。其中串口通讯采用发送 + 反馈的
方式,保证每一条指令的准确度,同时在软件界面给予即时显示,退出时生成 .log 日志
文件,便于查看。
下位机收到某一条指令以后会及时给予反馈。当上位机发送数据回读指令时,记录
仪通过网络 UDP 传输将已存到 Flash 中的数据传回上位机并储存为本地文件,进行下一
步处理。数据包格式为:帧头 + 帧计数 + 数据 + 校验和。表 3.1 3.2 为详细的控制指令表。
基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试

 基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试

软件功能包括以下内容:
1 ,用户可以在软件开机界面选择工作模式。包括模拟源模式 / 数据回读模式 / 数据分
离模式。
2 ,在模拟源模式下,软件通过发送串口指令使能测试台中的继电器,同时控制 CPU
产生模拟数据源。操作方式分为自动和手动两种。实验过程中可随时开启或关闭任意一
路开关量,方便测试系统的某一路开关是否正常工作。
3 ,在数据回读模式下,上位机通过查询指定存储器中的存储信息选择读取数据,读
数过程中不能进行其他操作。读数完毕后,可根据需求擦除数据记录装置(整体擦除),
擦除前需要再次确认。
4 ,数据分离模式。对已经回读并存储的数据文件进行进一步分离,用户可按照需求
分离一路或者多路数据。每路数据分离互不干扰,都是独立的功能模块。
3.2 Qt 信号通信机制
作为一款上位机控制软件,与通过指令收发的形式与下位机进行通信是其主要职能。
使用 Qt 开发,首先要考虑通信问题。信号与槽( Signal & Slot )机制是 Qt 软件独创的
一种通信方式 [16] 。信号类似与一个开关,而槽函数类似于一个灯泡。当开关触发后,灯
泡开始工作。信号与槽也是如此 [17] 。当表示信号函数的事件触发后,比如点击一个按钮,
就会发出一个信号,需要实现的目的就是槽函数要表达的信息。它隐藏了复杂的底层实
现,完成信号和槽的关联后,发射信号并不需要知道 Qt 是如何找到槽函数的 [18] 。与某
些开发框架的回调函数( callbacl )相比,信号与槽这种机制更加灵活多变,也让 Qt
界面设计时,对各个组件的编程目标更加明确。
信号和槽函数是用 QObject::connect() 函数进行连接的的。一般写成:
QObject::connect(sender,SIGNAL(signal()),recevier,SLOT(slot()));
或者 connect(sender,SIGNAL(signal()),recevier,SLOT(slot()));//QObject 可省略
在上面的函数中, sender 表示发出信号的控件名, signal() 是该信号的名称。比如按
钮的点击,文本框的输入等。同理, recevier 表示接收信号的类名称,可以是窗体,或
者对话框等。 slot() 函数为相对应的槽函数,表明接收信号的类要执行的操作 [19] 。可以是
窗体的弹出,或者显示一段文本。在使用信号和槽函数机制进行编程时,需要明确以下
内容:
4. 一个信号允许与数个槽函数进行配对,数个信号也能够关联相同的槽函数 [20] 。信
号与槽函数之间并没有固定的数目匹配。需要注意的是,当一个信号与几个槽函数连接
时,槽函数的实现需要参照具体程序,根据程序中关系的先后依次进行。这种一对多,
多对一的对应关系可以用图 3.2 表示。
基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试
5. 不同信号之间也能够互相建立关系。并不是信号必须对应槽函数。信号也可以触
发另一个信号,再去响应一个或几个槽函数,可以根据具体的情况灵活运用 [21]
6. 信号与槽函数的关联方式是很迅速的、即时的。类似于中断,当触发了一个信号
槽函数时,会立刻执行。只有这个槽函数执行完毕,主程序才会继续运行 [22]
信号与槽函数的通信机制是 Qt 编程的根本原则。除此之外,还有一些函数需要事件
去触发。比如鼠标操作和键盘的键入。这些操作在 Qt 中都有对应的函数来响应。图 3.3
为常见的几种事件处理函数 [23]
基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试
3.3 软件程序界面的设计和实现
根据 Qt 的通信机制,结合项目需求,软件除开机界面外,设计为三个功能窗口。分
别是模拟源窗口、数据回读窗口、数据分离窗口。
3.3.1 开机界面
开机界面显示软件名称和版本号以及软件功能入口。包括模拟源窗口、数据回读窗
口、数据分离窗口三个功能窗口。每个窗口都是功能独立,互不干扰。使用时,可以根
据具体需求选择对应的的功能按钮。开机界面如图 3.4 所示。
基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试
3.3.2 地面数据模拟窗口
地面数据模拟是整个系统的必要一环。在飞行试验前,有必要用模拟数据来检测记
录仪的工作情况。模拟源分为手动和自动两种模式。模拟源窗口界面如图 3.5 所示。
基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试
点击系统上电后,软件发指令给 CPU ,控制继电器工作,系统上电。手动模式下可
以自由选择任意开关量和模拟量进行测试,方便检查系统某一路是否故障。自动模式下,
软件只发送一条指令。 CPU 收到指令后,会自动上电,依次启动各路开关量和模拟量数
据,并记录在存储器中,实现操作自动化。测试台上都有相应的信号灯显示某一路开关
是否打开。右边窗口显示即时操作信息和反馈信息。
模拟源模式的工作时间可以自行控制,通常试验时间为 3-5 分钟。其中,每一路开
关量数据的开关时间均以数据的形式存存储器中,回读后可以通过数据直观的看到每个
开关的启动时间和顺序。图 3.4 < 系统上电 > < 自动模式 > 按钮均为为复用按钮,点击
一次就会变 < 系统断电 > < 停止测试 > 。测试台中的主控 CPU 负责对收到的数据进行总
体的编帧存储。
3.3.3 数据回读窗口
数据回读是整个软件功能的核心部分。负责将已经编帧并存储到 Flash 中的数据回
读到上位机。硬件接口为百兆以太网接口芯片 W5300 ,采用 UDP 协议进行回读。回读
后的数据存储到桌面上,数据格式为 .hex 文件。窗口界面如图 3.6 所示。
首先点击 < 系统上电 > 按钮,然后配置网络 IP 和端口号。点击 < 连接 > 按钮,界面显
基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试
示当前网络连接状态。接着选择存储器。系统装配有两个存储器芯片,且均有备份,确
保数据保存完整。点击 < 读取记录器信息 > 按钮,会在界面显示当前存储器的存储状态,
包括上电次数,数据大小等信息,用户可根据显示的信息选择读取次数和读取量,点击
< 读主存储器 > 或者 < 读备存储器 > 开始读数。数据会保存到桌面,以读取时间命名。读取
结束后,文本框内会有提示。最后点击 < 停止读数 > 按钮,使 FPGA 端空闲。用户也可以
根据情况选择擦除存储器。界面右侧文本框内容为操作步骤。每一步操作和反馈均在下
方文本框内即时显示。每个按钮在上一步操作未完成之前,都是灰色不可用的,这样做
的目的是为了防止用户误操作。读取结束后点击 < 退出 > 按钮,退出当前界面,返回主界
面,执行下一步操作。
3.3.4 数据分离窗口
数据分离窗口的主要功能是对已经回读的原始数据文件进行分离。数据分离窗口界
面如图 3.7 所示。
基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试
图中每一个按钮都代表分离一路数据。点击每个按钮,自动弹出文件索引窗口,选
择分离已经回读的任意一次原始数据。分离结束后,弹出信息提示框表明分离结束。输
出的子数据文件存放到桌面上。通过分离数据,进一步观察分析每一路数据,与预先设
定好的模拟数据作对比,进而对整个系统的运行情况作出结论。
数据分离基本思路是按照不同通道数据的帧头进行分离。由于每个通道的数据都是
独立互不影响的,且数据格式固定,即帧头 + 帧计数 + 数据 + 校验和。所以按照帧头判断
可以很准确的将原始数据分离开来。分离过程程序设计流程图如图 3.8 所示。

 深圳信迈提供RK3399+FPGA的软硬件方案。

5.1 软件功能测试
将开发板与测试台连接,包括开发板电源 12V 由测试台提供。串口、网口与测试台
连接。接通测试台电源,可以看到测试台电压显示窗口数值稳定为 27.7V ,表明电源、
串口、网口接通状态的指示灯都为绿色。系统硬件连接如图 5.1 所示。
基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试
打开软件,首先选择进入模拟源工作模式。点选 < 手动模式 > 。依次点击各个开关量
模拟量按钮,工作时间设为 5 分钟。软件工作界面如图 5.2 。窗口即时显示操作信息。
基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试
系统工作结束,开始回读数据。在软件数据回读界面,按照提示框内的操作流程进
行读数配置。工作界面如图 5.3 所示。
基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试

数据回读后自动存到桌面上,生成以存储时间命名的数据源文件。

5.2 测试结果
将回读成功的数据从 rk3399 提供的 USB 口传输到 PC 端。通过数据解析软件处理,
按各通道数据帧头将原始数据分离,最终输出 7 路数据。用 Hexedit Matlab 软件进行
查看和处理,得到对应的数据源码和波形图。每一路数据前 8 个字节中, 4 个字节为数
据帧头, 4 个字节为帧计数,在原始数据中都可以直观的看出。
7. 开关量和模拟量测试结果如图 5.4 所示。数据帧头 F1F20000 ,频率 100Hz ,帧计
数间隔为 2
基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试

 文章来源地址https://www.toymoban.com/news/detail-482546.html

到了这里,关于基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于RK3399 Android11适配OV13850 MIPI摄像头

      从上图可看出,我们需要关心的,①MIPI数据和时钟接口使用的是MIPI_TX1/RX1 ②I2C使用的是I2C4总线 ③RST复位引脚使用的是GPIO2_D2 ④PWDN使用的是GPIO1_C7 ⑤MCLK使用的是GPIO3_B7 ⑥需要保证红色框框的供电电源正常。   结合RK提供的文档,如下摄像头数据采集拓扑图所示,我们

    2024年03月14日
    浏览(46)
  • RK3399驱动开发 | 15 - RTC实时时钟芯片HYM8563S调试(基于linux5.4.32内核)

    Linux内核中使用RTC设备来提供硬件时间,为了兼容各种各样的RTC硬件,Linux内核提供了R

    2024年02月09日
    浏览(47)
  • RK3399平台开发系列讲解(内核调试篇)IO 数据工具:iostat和iotop

    🚀 返回专栏总目录 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 在 Linux 系统上, iostat 和 iotop 这两个 IO 数据工具非常常用。它们都是性能分析领域中不可缺少的工具性软件。 iostat 命令,是用来展示系统中的 IO 设备和 CPU 使用情况的。它的最大优势在于能汇报

    2024年02月09日
    浏览(35)
  • RK3399驱动开发 | 21 -Marvell交换机芯片88E6390X调试(基于linux主线5.4.32内核)

    88E6390X芯片是Marvell的一款11端口交换器芯片,有1个CPU端口、8个10/100/1000Mbsp以太网端口、两个XAUI/RXAUI/2500光口。 RK3399只有一个MAC控制器,所以只能外接一个PHY芯片作为网口,但有了外部的交换机芯片后,连接架构如下:

    2024年02月13日
    浏览(47)
  • 基于深度学习的人工林地面激光扫描点云立木特征参数提取方法

    Paper题目:A Deep Learning-Based Method for Extracting Standing Wood Feature Parameters from Terrestrial Laser Scanning Point Clouds of Artificially Planted Forest 利用基于三维点云的技术量化立木和立木参数,可以在林业生态效益评估和立木培育和利用中发挥关键作用。随着光探测与测距(LiDAR)扫描等三维信

    2024年02月05日
    浏览(37)
  • RK3399之8250串口驱动

    前言 内核版本4.4 平台 瑞芯微RK3399 8250串口 一、驱动整体框架 二、驱动结构体对象 关系如下图所示 三、驱动代码流程 驱动加载由以下入口 1.8250_core.c的serial8250_init 个人理解代码里有三套串口设备注册代码, 方式一,嵌入式常用的方式,驱动通过与dts硬件信息匹配注册uart

    2024年02月09日
    浏览(50)
  • RK3399 板子烧录Armbian

    本来不想写在CSDN这里的。帮有需要的同学了吧。 板子上面标记型号为: 没有HDMI接口(我也是汗,买的时候注意到,坑了),配置信息。 刷机过程 准备12V电压; USB先连接microUSB 网线一根 img下载:http://my.kos.org.cn:880/rockchip/mrk3399_kj/Armbian_23.8.1_mrk3399_jammy_current_6.1.50.7z 1. 按住

    2024年02月03日
    浏览(46)
  • rk3399移植linux kernel

    参考文章: 1.RK3399移植u-boot 2.I.MX6Q-SDB开发板移植ubuntu 3.Rockchip RK3399 - 移植ubuntu 20.04.4根文件系统 4.Rockchip RK3399 - 移植uboot 2023.04 linux 6.3   在前一节中移植了rk3399的u-boot,这一节就继续移植linux kernel。不过rk3399在移植kenel前,需要先制作根文件系统,这样才能在生成内核镜像

    2024年02月14日
    浏览(54)
  • Rockchip RK3399 - 移植uboot 2023.04

    ---------------------------------------------------------------------------------------------------------------------------- 开发板   :NanoPC-T4开发板 eMMC   :16GB LPDDR3:4GB 显示屏   :15.6 HDMI接口显示屏 u-boot    :2023.04 linux      :6.3 -----------------------------------------------------------------------------------

    2024年02月06日
    浏览(47)
  • rk3399 android以太网和wifi共存

    1.修改 frameworks/base/core/java/android/net/NetworkFactory.java evalRequest 方法 注释两行 2.修改frameworks/opt/net/ethernet/java/com/android/server/ethernet/EthernetNetworkFactory.java文件修改 NETWORK_SCORE=30  降低优先级 这样以太网和wifi都能连接成功 frameworksoptnetethernetjavacomandroidserverethernetEthernetNetwork

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包