陕西省城乡住房建设厅网站建设网站怎么收费标准
rk3399 是由本土芯片厂商瑞芯微(Rockchip)研发的高性能、低功耗“中国芯”。在 
 
2016 年 4 月,rk3399 首次在香港举行的电子展上亮相。芯片使用六核大 LITTLE 处理器: 
 
包括四核的 Cortex-A53 和双核的 Cortex-A72,主频可达 2.0GHz。芯片兼容 3G、4G 网 
 
络通讯,接口资源丰富、整体性能方面优异,比如 USB3.0、MIPI 双摄像头等设备接口。 
 
在操作系统的使用上也有很多可选性,用户可以选择 Android/Linux/Debain 等作为操作 
 
系统,也可以选择菲尼克斯、Flint OS 等轻型办公开发环境,常用软件都可兼容。
 
在硬件接口上,rk3399 提供了大量的资源,信迈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 等开源操作系统,用户可 
 自己选择合适的固件进行烧写。
 
以某型号数据记录仪的工作需求为目标,根据测试 工作流程,以 Linux-Qt 为主要开发手段,设计一款功能完备、界面友好、操作简洁的测试台软件。 
 3.1 软件设计原理 
 根据需求和总体设计软件分为三个工作模式,功能模块图如图 3.1 所示。从图中可 
 以明显看到软件包括模拟信号源、存储器检测回读、数据处理三个功能窗口。每个窗口 
 功能独立,又紧密结合。可以配合工作进行测试,也可以单独工作进行某一项测试。
 
首先是模拟源窗口,主要负责飞行实验前地面数据源模拟,由上位机发送指令控制 
 测试台中的主控 CPU,产生 5 路开关量、2 路模拟量、1 路 422 数据,5 路网络数据。 
 目的是为了在飞行试验前,对系统的整个流程进行测试。通过发送已设定好的模拟数据 
 并存储到 Flash 中,然后回读数据,经过初步对比和进一步数据处理来验证整个系统的 
 工作状态。存储器检测回读窗口包括网络配置、存储器选择、查询当前存储状态、读取
 次数和读取量设置、停止读数、记录仪擦除等功能,核心任务是对已经存在 Flash 中的 
 数据进行回读。最后是数据处理窗口,主要功能是对已经回读并存放到桌面的的原始数 
 据文件进行分离,按照不同通道将数据分开,便于单独研究。 
 通讯模式采用串口指令收发和 UDP 数据回读两种。其中串口通讯采用发送+反馈的 
 方式,保证每一条指令的准确度,同时在软件界面给予即时显示,退出时生成.log 日志 
 文件,便于查看。 
 下位机收到某一条指令以后会及时给予反馈。当上位机发送数据回读指令时,记录 
 仪通过网络 UDP 传输将已存到 Flash 中的数据传回上位机并储存为本地文件,进行下一 
 步处理。数据包格式为:帧头+帧计数+数据+校验和。表 3.1、3.2 为详细的控制指令表。
 
 
软件功能包括以下内容: 
 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 表示。 
 
5. 不同信号之间也能够互相建立关系。并不是信号必须对应槽函数。信号也可以触 
 发另一个信号,再去响应一个或几个槽函数,可以根据具体的情况灵活运用[21]。 
 6. 信号与槽函数的关联方式是很迅速的、即时的。类似于中断,当触发了一个信号 
 槽函数时,会立刻执行。只有这个槽函数执行完毕,主程序才会继续运行[22]。 
 信号与槽函数的通信机制是 Qt 编程的根本原则。除此之外,还有一些函数需要事件 
 去触发。比如鼠标操作和键盘的键入。这些操作在 Qt 中都有对应的函数来响应。图 3.3 
 为常见的几种事件处理函数[23]。
 
3.3 软件程序界面的设计和实现 
 根据 Qt 的通信机制,结合项目需求,软件除开机界面外,设计为三个功能窗口。分 
 别是模拟源窗口、数据回读窗口、数据分离窗口。 
 3.3.1 开机界面 
 开机界面显示软件名称和版本号以及软件功能入口。包括模拟源窗口、数据回读窗 
 口、数据分离窗口三个功能窗口。每个窗口都是功能独立,互不干扰。使用时,可以根 
 据具体需求选择对应的的功能按钮。开机界面如图 3.4 所示。
 
3.3.2 地面数据模拟窗口 
 地面数据模拟是整个系统的必要一环。在飞行试验前,有必要用模拟数据来检测记 
 录仪的工作情况。模拟源分为手动和自动两种模式。模拟源窗口界面如图 3.5 所示。
 
点击系统上电后,软件发指令给 CPU,控制继电器工作,系统上电。手动模式下可 
 以自由选择任意开关量和模拟量进行测试,方便检查系统某一路是否故障。自动模式下, 
 软件只发送一条指令。CPU 收到指令后,会自动上电,依次启动各路开关量和模拟量数 
 据,并记录在存储器中,实现操作自动化。测试台上都有相应的信号灯显示某一路开关 
 是否打开。右边窗口显示即时操作信息和反馈信息。 
 模拟源模式的工作时间可以自行控制,通常试验时间为 3-5 分钟。其中,每一路开 
 关量数据的开关时间均以数据的形式存存储器中,回读后可以通过数据直观的看到每个 
 开关的启动时间和顺序。图 3.4 中<系统上电>和<自动模式>按钮均为为复用按钮,点击 
 一次就会变<系统断电>和<停止测试>。测试台中的主控 CPU 负责对收到的数据进行总 
 体的编帧存储。 
 3.3.3 数据回读窗口 
 数据回读是整个软件功能的核心部分。负责将已经编帧并存储到 Flash 中的数据回 
 读到上位机。硬件接口为百兆以太网接口芯片 W5300,采用 UDP 协议进行回读。回读 
 后的数据存储到桌面上,数据格式为.hex 文件。窗口界面如图 3.6 所示。 
 首先点击<系统上电>按钮,然后配置网络 IP 和端口号。点击<连接>按钮,界面显
 
示当前网络连接状态。接着选择存储器。系统装配有两个存储器芯片,且均有备份,确 
 保数据保存完整。点击<读取记录器信息>按钮,会在界面显示当前存储器的存储状态, 
 包括上电次数,数据大小等信息,用户可根据显示的信息选择读取次数和读取量,点击 
 <读主存储器>或者<读备存储器>开始读数。数据会保存到桌面,以读取时间命名。读取 
 结束后,文本框内会有提示。最后点击<停止读数>按钮,使 FPGA 端空闲。用户也可以 
 根据情况选择擦除存储器。界面右侧文本框内容为操作步骤。每一步操作和反馈均在下 
 方文本框内即时显示。每个按钮在上一步操作未完成之前,都是灰色不可用的,这样做 
 的目的是为了防止用户误操作。读取结束后点击<退出>按钮,退出当前界面,返回主界 
 面,执行下一步操作。 
 3.3.4 数据分离窗口 
 数据分离窗口的主要功能是对已经回读的原始数据文件进行分离。数据分离窗口界 
 面如图 3.7 所示。
 
图中每一个按钮都代表分离一路数据。点击每个按钮,自动弹出文件索引窗口,选 
 择分离已经回读的任意一次原始数据。分离结束后,弹出信息提示框表明分离结束。输 
 出的子数据文件存放到桌面上。通过分离数据,进一步观察分析每一路数据,与预先设 
 定好的模拟数据作对比,进而对整个系统的运行情况作出结论。 
 数据分离基本思路是按照不同通道数据的帧头进行分离。由于每个通道的数据都是 
 独立互不影响的,且数据格式固定,即帧头+帧计数+数据+校验和。所以按照帧头判断 
 可以很准确的将原始数据分离开来。分离过程程序设计流程图如图 3.8 所示
 
信迈提供RK3399+LINUX QT软硬件及定制方案。
