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

news2024/11/26 21:44:30
地面测试台属于某型号数据记录仪的配套测试设备,主要工作包括:飞行前对记录
仪的功能检查,测试其工作状态和稳定性;实验结束后对已存储到记录仪中的数据进行
回读和进一步处理,通过数据分析得出导弹各项参数在飞行试验中的变化,从而反馈该
弹的工作状况。因此,地面测试的稳定性和数据处理能力对导弹研究有着重要作用。本
章将从需求入手,针对记录仪主要工作任务做一个整体分析,确定总体设计方案。
2.1 任务需求分析
2.1 为记录仪的工作流程图,图中除第三步之外的所有流程都需要地面测试台的
参与。根据记录仪的工作需求,测试台软件主要实现对产品的地面自检测试、数据回读
与显示。该软件需要具有数据读取与清除、参数设置、设备检测等功能。通讯接口分别
采用串口和网口两种方式进行指令收发和数据回读。测试台软件需要满足的主要任务包
括以下内容:

1. 地面自检。在飞行实验前,测试端模拟真实数据进行测试,上位机控制主控 CPU
生成模拟数据,存入记录仪中,然后进行回读,通过检查回读数据与模拟数据是否一致
来确定记录仪工作状态。工作模式包括手动和自动两种,由上位机进行串口指令控制,
波特率 57600bps ,每一路数据测试台都有相应的 LED 灯作为标志。数据格式为:帧头+帧计数 + 数据 + 校验和。表 2.1 为模拟数据的详细信息,具体数据类型包括以下内容:

a) 1 422 数字量信号源: 57 字节,波特率 460.8kbps ,频率 200Hz
b) 2 路模拟量信号源:
c) 5 路开关量信号源;
d) 5 路以太网数据信号源,其中网络数据 1 频率为 50Hz ,网络数据 2 3 4 的频
率为 200Hz ,网络数据 5 频率为 100Hz
2. 具备数据 UDP 回读功能。数据回读使用网络 UDP 传输协议,文件格式为 .hex
件。
2. 在数据回读模式下,通过指令进行存储器主备份选择及查询存储状态(如:上电
次数和存储容量);
2. 在数据回读模式下,通过侧向监测口,以存储的文件(或块)为单位读出存储信
息,并将数据存储在上位机中;
2. 在数据回读模式下,可擦除数据记录装置(整体擦除),擦除前需再次确认。
3. 数据分离。按照表 2.1 所示,不同通道数据帧头的不同,将回读的数据按照不同
的帧头进行最后分离,最终输出 1 个源码文件和 7 个子数据文件,通过 USB 口读出做
进一步分析处理。表 2.2 为系统文件输出表。
2.2 系统总体方案设计
根据测试台任务需求,测试台和记录仪功能结构图如图 2.2 rk3399 作为测试台系
统的上位机,通过通过串口指令与主控 CPU 进行通讯,控制测试台的电源系统。同时
发送指令生成模拟数据,数据由主控 CPU 发送到存储端,存放到记录仪的 Flash 存储芯
片中,最后通过网络 UDP 协议进行数据回读,开发板嵌入到测试台中,外接小型 LCD
屏幕作为软件界面显示端。
根据记录仪工作需求,测试台软件主要包括模拟源模式、数据回读模式、数据分离
模式三种工作模式。模拟源模式下,连接测试台与记录仪, rk3399 控制主控 CPU 生成
模拟数据,包括 5 路开关量、 2 路模拟量, 1 422 数字量和 5 路以太网网络数据,其
中开关量由 rk3399 指令控制 5 路继电器开关,模拟量由主控 CPU 采集发送。可以选择
自动或手动两种工作模式。自动会生成全部模拟数据,手动可以根据情况选择某一路或
者几路数据,目的是增加检测的灵活性。在测试台上有相对应的 LED 灯作为显示。模
拟数据会存入记录仪中,一般需要多次记录以便记录仪进行自检。数据回读模式主要任
务是选择要读取的记录仪存储器,读取该存储器当前存储状态,包括工作次数和已经存
储的数据容量。然后选择合适的次数和读取量开始读取,数据会以 .hex 的形式被存放到
桌面上。读数结束后,根据需求选择是否擦除当前存储器。数据解析模式是对回读的数
据进行分离和解析。
软件包括模拟源、存储器检测回读、数据处理三个功能模块。三个模块共同构成了
记录仪的测试回路。工作流程图如图 2.3 所示。
2.3 自主可控平台搭建
2.3.1 国产芯片 rk3399 简介
rk3399 是由本土芯片厂商瑞芯微( Rockchip )研发的高性能、低功耗 中国芯 。在
2016 4 月, rk3399 首次在香港举行的电子展上亮相。芯片使用六核大 LITTLE 处理器:
包括四核的 Cortex-A53 和双核的 Cortex-A72 ,主频可达 2.0GHz 。芯片兼容 3G 4G
络通讯,接口资源丰富、整体性能方面优异,比如 USB3.0 MIPI 双摄像头等设备接口。
在操作系统的使用上也有很多可选性,用户可以选择 Android/Linux/Debain 等作为操作
系统,也可以选择菲尼克斯、 Flint OS 等轻型办公开发环境,常用软件都可兼容。在 2017
年,官方宣布 rk3399Linux 系统开源。目前 rk3399 主要的开发应用场景如图 2.4 所示。

 

在硬件接口上, rk3399 提供了大量的资源,开发板外观和具体接口定义如图 2.5
示。 rk3399 有以下独特优点:
1. 显示接口丰富。还可以根据需求双屏同显或者双屏异显。视频方面支持双 MIPI
HDMI EDP DP 等众多主流显示输出口。
2. 网络通道多样化。双频无线网络接收( 2.4GHz/5GHz ),千兆以太网口,蓝牙通
4.1 。此外开发板上还接有 Mini PCle 口,可以扩展 3G 4G 通信。
3. 外设接口齐全。 USB2.0/3.0HOST ,独立 PCIE 接口。常规的串口调试, 42Pin
GPIO 接口方便开发者调试使用。
4. 操作系统兼容性强。 Linux Ubuntu Debain Android 等开源操作系统,用户可
自己选择合适的固件进行烧写。

深圳信迈RK3399开发板外观及接口

2.3.2 rk3399 嵌入式环境搭建
有了合适的硬件平台后,接下来进行软件开发平台的搭建。选择嵌入式 Linux 操作
系统作为开发手段,因为 Linux 操作系统具有免费和开源两大特点。要在 rk3399 硬件平
台上运行 Linux 操作系统,首要任务是在台式机上安装虚拟机并安装虚拟 Linux 环境,
然后在虚拟机下安装交叉编译器,搭建虚拟机交叉编译环境,在 Linux 环境下编译生成
适合 rk3399 硬件的 Linux 系统。这样做的原因是传统 PC 机器的硬件和 rk3399 平台有不
小的差异。不同的编译环境生成的固件有一定的区别。为了保证生成的固件能完美契合
硬件,选择在 Linux 环境下安装交叉编译器,确保 rk3399 固件编译成功。
首先在 PC 机上安装虚拟机,在官网选择下载合适的 Ubuntu16.4 系统(基于 Linux
内核的开源操作系统)。整个过程包括以下步骤:
1. 进入 Ubuntu16.04 系统,打开终端界面,安装开发包:
sudo apt-get install build-essential lzop libncurses5-dev libssl-dev
界面如图 2.6 所示。

 

2. 安装 mkbootimg 工具
git clone https://github.com/neo-technologies/rockchip-mkbootimg.git
cd rockchip-mkbootimg
make && sudo make install
3. 获取内核源码和安装交叉编译工具链
mkdir project
cd project
rk3399Linux 内核代码获取方式 ː
git clone https://TeeFirefly@gitlab.com/TeeFirefly/linux-kernel.git.
获取交叉编译工具 :
git clone https://TeeFirefly@gitlab.com/TeeFirefly/prebuilts.git
4. kernel 编译
Linux 内核采用的 config 文件为 firefly_linux_defconfig, dts 文件为 rk3399-linux.dts
config 文件在~ /linux-kernel/arch/arm64/configs/firefly_linux_defconfig ,对应生成 kernel.
img 文件; dts 文件在~ / linux-kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-linux.dts
对应生成 resource.img 文件;
编译内核:
cd ~/project/linux-kernel
make ARCH=arm64 firefly_linux_defconfig
make ARCH=arm64 rk3399-firefly-linux.img -j8
编译完成后,会在 linux--kernel 目录下生成 kernel.img resource.imgresource.img
如图 2.7 所示。
2.3.3 rk3399 Qt 配置
在成功启动 rk3399 开发板后,需要安装 Qt 软件作为软件设计的最后一步基础。首
先打开终端,更新软件源和升级更新软件。在终端输入以下指令:
sudo apt-get update
sudo apt-get upgrade
更新过程将持续 30-40 分钟。然后开始安装 Qt5 所需的库文件和 QtCreator
sudo apt-get install qt5-default
sudo apt-get install qtcreator
安装完成后,打开终端,命令行键入 qtcreator 。屏幕出现 Qt 启动窗口。界面如图
2.10 所示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/621127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果的首款“头显设备”Vision Pro在短期内必将被Meta Quest超越

来源:猛兽财经 作者:猛兽财经 总结: (1)Vision Pro是苹果在今年的WWDC2023开发者大会上发布的一款结合了增强现实(AR)和虚拟现实(VR)的“头显设备”,Vision Pro 的最终售价高达 3499 美元(约合…

观察级水下机器人使用系列之二多普勒速度记录仪(DVL)

本文主要讲述观察级水下机器人所使用的多普勒速度记录仪器(DVL),见下图。多普勒测速技术自1960年开始研究,1980年开始实现商业化,80年代中后期,窄带多普勒测速技术研究已日趋成熟,90年代以后&am…

初学者应该怎么学git-上

初学者应该怎么学git-上 Git 下载&安装 官网 地址: https://git-scm.com/ 下载版本: Git-2.33.0.2-64-bit.exe 下载慢,可以到镜像下载: http://npm.taobao.org/mirrors/git-for-windows/ 卸载 说明:如果安装过,可以卸载和老师版本…

详解Java中static的使用及其注意事项

1.可以用来修饰的结构: 主要用来修饰类的内部结构 属性、方法、代码块、内部类 2.static修饰属性:静态变量(或类变量) ​ 2.1 属性,是否使用static修饰,又分为:静态属性 vs 非静态属性(实例…

Yolov5更换上采样方式( 最近邻 / 双线性 / 双立方 / 三线性 / 转置卷积)

原文地址: https://www.iotword.com/3138.html 1. 常用上采样方式介绍 1. 1 最近邻插值(Nearest neighbor interpolation) >>> input torch.arange(1, 5, dtypetorch.float32).view(1, 1, 2, 2) >>> input tensor([[[[ 1., 2.],[ 3., 4.]]]])>>&g…

【goframe】(4):使用goframe 接入grpc服务,非常的方便,可以简单的构建和生成服务代码,并且启动方法也特别简单,使用代码本地调用成功

目录 前言1,关于grpc微服务2,修改生成代码3,相关的goframe的grpc配置4,总结 前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/108971807 未经博主允许不得转载。 博主CSDN地址是:https://b…

3.变量|Java学习笔记

文章目录 数据类型整型的类型浮点型的类型字符类型boolean类型 基本数据类型转换自动类型转换强制类型转换 基本数据类型和String类型的转换 变量 变量名 值 数据类型 https://www.matools.com/# 数据类型 整型的类型 浮点型的类型 关于浮点数在机器中存放形式的简单说明&…

Ibatis与Mybatis的区别—侧重于Ibatis

目录 一、什么是Ibatis? 1、iBatis是一款轻量级的持久化框架 2、iBatis最大的特点是将SQL语句与Java代码分离 3、iBatis具有以下几个关键组成部分: 二、Ibatis与Mybatis的区别 1、基本信息不同 2、开发时间不同 3、配置方法不同 三、Ibatis与My…

HotSpot虚拟机垃圾回收算法及收集器

目录 一、对象引用 二、堆区和方法区回收 1. 堆区回收 2. 方法区回收 三、垃圾回收算法 1. 算法总结 2. 算法相关细节 四、垃圾收集器 1. 新生代收集器 2. 老年代收集器 3. 混合式收集器G1 4. 低延迟收集器 五、参考资料 一、对象引用 判定对象是否存活和引用离…

Unix/Linux编程:Unix domain socket

〇、前言 socket 是一种 IPC (Inter-Process Communication,进程间通信)方法,它允许位于同一主机(计算机)或使用网络连接起来的不同主机上的应用程序之间交换数据。通过使用Socket,开发人员可以…

在VSCode中使用LaTex,语法检测插件grammarly

整个文章分为以下几个内容,打 * 的是必须要安装的 LaTex 安装*VSCode 安装*在 VSCode 中配置 LaTexGrammarly语法检测插件 LaTex 安装* latex的下载安装可参考:LaTex(2021)安装教程 VSCode 安装* VSCode下载:VSCo…

带你用WePY框架提升开发效率

在小程序开发中,提高开发效率、优化代码质量和增强用户体验是每位开发者都追求的目标。而wepy作为一种基于Vue.js的小程序开发框架,提供了更好的开发体验和更高效的开发方式。本文将介绍wepy的基本功能和特性,分享一些实际的代码案例&#xf…

图像的匹配

2023.6.7 图像的匹配 模板匹配是一种在较大图像中搜索和查找模板图像位置的方法。为此,OpenCV 带有一个函数 cv.matchTemplate()。它只是在输入图像上滑动模板图像(如在 2D 卷积中),并比较模板图像下的模板和输入图像的补丁。在…

STM32——CAN通信

1、CAN通信概述 STM32F103有两个CAN,都分别有自己的发送接收邮箱。 发送邮箱共有3个来发送报文,发送调度器根据优先级决定哪个邮箱的报文先被发送。 共有2个接收FIFO,每个FIFO都可以存放3个完整的报文。它们完全由硬件来管理。 CAN通信通过…

Mujoco 控制器接口(四)

目录 .1 简介 1.1 控制器实现 .2 sim.step() .3 实例 References .1 简介 control看到下面的图中就是mjtNum类型 mjtNum实际上就是浮点数 ctrl是底层的输入 外界扰动就是通过上图的qfrc和xfrc来添加的 1.1 控制器实现 实际上加上控制器就是xml里添加actuator joint就是…

算法提高-图论-单源最短路的建图方式

单源最短路的建图方式 单源最短路的建图方式AcWing 1129. 热浪AcWing 1128. 信使AcWing 1127. 香甜的黄油AcWing 1126. 最小花费AcWing 920. 最优乘车AcWing 903. 昂贵的聘礼 单源最短路的建图方式 AcWing 1129. 热浪 #include <iostream> #include <cstring>usi…

安装OpenWrt到电脑,安装包选哪个?

https://downloads.openwrt.org/releases/22.03.5/targets/x86/ releases发行&#xff0c;targets目标&#xff1b; —————————————— 64&#xff1a;具有64位功能的计算机&#xff1b; generic&#xff1a;一般的&#xff0c;通用的&#xff0c;仅32位计算机&…

学习Vue这一个就够

1、淘宝镜像 1: 解释一下 npm 为什么要配置淘宝镜像原因&#xff1a;因为node.js 默认使用的是国外的网站 。国内访问有一个跨国内局域网的操作。所以就会有时候很慢。这就跟为什么网站的静态资源有些会使用CDN 加速一样的淘宝镜像是什么&#xff1f;就是npm 很多的插件淘宝已经…

docker cgroub

docker 的资源管理 1、cpu的资源控制 一&#xff1a;设置cpu的资源上限 cd /sys/fs/cgroup/cpu/docker/ cpu 的占用量达到100% cpu 设置一半50% 2. 设置cpu资源占用比&#xff08;设置多个容器才有用&#xff09; docker run -itd --name c3 --cpu-shares 512 centos:7 do…

springboot+mybatis实现删除(二)

一&#xff0c;XML映射文件和动态SQL XML映射文件的名称与Mapper接口名称一致&#xff0c;并且将XML映射文件和Mapper接口放置在相同包下&#xff08;同包同名&#xff09;&#xff0c;右键创建目录/分隔&#xff0c;例&#xff1a;com/baidu/crm XML映射文件的namespace属性为…