关于基于RT-Thread的无人机数据记录仪的设计与实现.doc
《关于基于RT-Thread的无人机数据记录仪的设计与实现.doc》由会员分享,可在线阅读,更多相关《关于基于RT-Thread的无人机数据记录仪的设计与实现.doc(5页珍藏版)》请在三一文库上搜索。
1、关于基于RT-Thread的无人机数据记录仪的设计与实现0 引言传统的无人机数据记录仪仅仅是记录无人机在整个飞行过程中各状态参数的机载电子设备,大多采用FPGA作为控制器,NAND Flash作为存储单元,SRAM作为数据缓存,以并行的方式完成数据的缓存和处理1-2,虽然也能实现飞行数据的有效存储,但又产生了功耗大和体积大的问题。而且FPGA需要外部存储模块(如EEPROM或Flash)来存储编程文件2-3,相比于ARM内置SRAM和Flash运行和存储编程文件,这无疑增加了外围电路的复杂性。此外,以NAND Flash作为大容量存储设备,就必须设计相应的坏块管理算法和擦写平衡算法,在实际存储
2、过程中进行实时ECC校验,并实时维护一个NAND Flash坏块表,以防把数据写入坏块造成无法读出4-5,大大降低了系统的存储效率。日新月异的无人机应用场合要求数据记录仪不仅要记录飞行器的飞行状态,还要记录各种任务设备的指令、数据和工作信息以便离线使用,功能举例如下:(1)存储差分GPS基站和移动站的原始星历数据做后差分解算,提高航测作业的位置解算精度;(2)在静止时和飞行时存储导航传感器的所有高频原始数据,进行离线噪声建模,优化滤波模型;(3)在地面和机上分别记录数据链上行和下行的指令和数据,离线分析链路可靠性。除此之外还有诸多功能等待开发和挖掘,但这些功能都要求数据的存储必须满足实时、可靠
3、、低功耗、小型化和易存取等特点。本文结合无人机领域的实际应用需求,设计了一种基于嵌入式实时操作系统RT-Thread的数据记录仪。1 功能模块选型为满足实时、可靠、低功耗、小型化、低成本和易存取的无人机数据记录仪设计需求,从低功耗、小型化和低成本的角度考虑,ARM微处理器必然是最优选择;从满足实时性和高可靠的角度考虑,在硬件平台上移植嵌入式实时操作系统,通过线程的时间片轮转来保证无疑是最优选择;从易存取的角度考虑,使用SD卡作为存储介质能够避免系统将CPU资源浪费在擦写平衡和ECC校验等环节,使用USB进行数据读取能提高数据读取效率。本文所设计的无人机数据记录仪使用的硬件嵌入式平台为STM32
4、F4系列微处理器,使用该微处理器的SDIO模块读写SD卡,接收、缓冲并存储多路串口的输入数据,USB模块读取存储的数据,并移植了嵌入式实时操作系统RT-Thread进行线程调度和文件系统支持,主体架构如图1所示。RT-Thread相较于?滋C/OS-III和FreeRTOS等嵌入式实时操作系统有很多优点:首先是开源的,且符合POSIX规范,稳定性高;支持Fatfs文件系统,采用多级目录结构,能够对不同类型、不同来源和不同用途的无人机数据进行更科学化的文件管理,且能够与PC端实现文件互传,便于数据导出;采用基于优先级的全抢占式多线程调度算法和基于时间片的轮转调度算法,使用内核对象(包括信号量、互
5、斥量等)进行线程同步,极大地优化了线程的执行和调度效率,提升了微处理器的数据存取性能,在此基础上进行有效的硬件驱动开发和应用程序开发就能够满足无人机行业对数据存取的要求。2 硬件驱动开发硬件驱动的开发主要为3部分,包括在嵌入式实时操作系统RT-Thread的架构上进行串口模块、SDIO模块和USB模块的驱动开发。RT-Thread为这些模块定义了中间层框架,这个框架向上和向下各提供一个接口,向下是底层驱动对硬件的接口,这个接口完成对硬件模块的控制并从硬件获得数据,向上是与应用程序交互的接口,通过这个中间层框架,应用程序就可以通过统一的接口访问底层硬件,即使硬件有所改动上层代码几乎不用改动,提高
6、了系统的移植性6。串口驱动主要包括串口的初始化程序以及中断接收程序,以实现对外部输入数据的快速响应。SDIO驱动主要包括SD卡的初始化程序、SD卡的产品信息读取函数和SD卡读写函数,用来实现对SD卡的功能配置,还需要在SD卡上运行Fatfs文件系统,以文件系统的组织形式进行串口数据的快速存储。USB驱动用于实现PC对SD卡中存储数据的拷贝,以便在PC上进行处理和分析,这就需要开发USB的大容量存储设备驱动7,而USB主要通过描述符(descriptor)进行接口描述,本文按照如下结构配置描述符8:一个设备描述符,采用USB2.0协议,并支持一个配置描述符;一个配置描述符,包含一个接口描述符;一
7、个接口描述符,接口设备类为Mass Storage类,下设两个端点;两个端点描述符,一个IN端点和一个OUT端点负责数据接收和发送,并都采用块传输形式,最大传输数据包长度为64 B。描述符配置完毕后,USB就可以响应大容量存储的各类设备请求并按照标准的USB2.0协议进行数据传输了。最后将这3个模块的底层驱动与RT-Thread中间层框架实现对接,就可以通过调用RT-Thread应用层的标准设备接口进行应用程序开发了。3 多线程数据缓冲存储策略在多通道数据量大且复杂度高的应用场合,如果把非周期字节流的接收和存储放在一个线程里去执行,难免会引发存储设备的频繁写入,大容量存储设备大多以块而非字节为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 基于 RT Thread 无人机 数据 记录仪 设计 实现
链接地址:https://www.31doc.com/p-3388170.html