地面测试台属于某型号数据记录仪的配套测试设备,主要工作包括:飞行前对记录
仪的功能检查,测试其工作状态和稳定性;实验结束后对已存储到记录仪中的数据进行
回读和进一步处理,通过数据分析得出导弹各项参数在飞行试验中的变化,从而反馈该
弹的工作状况。因此,地面测试的稳定性和数据处理能力对导弹研究有着重要作用。本
章将从需求入手,针对记录仪主要工作任务做一个整体分析,确定总体设计方案。
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
所示。