• 工作总结
  • 工作计划
  • 读后感
  • 发言稿
  • 心得体会
  • 思想汇报
  • 述职报告
  • 作文大全
  • 教学设计
  • 不忘初心
  • 打黑除恶
  • 党课下载
  • 主题教育
  • 谈话记录
  • 申请书
  • 对照材料
  • 自查报告
  • 整改报告
  • 脱贫攻坚
  • 党建材料
  • 观后感
  • 评语
  • 口号
  • 规章制度
  • 事迹材料
  • 策划方案
  • 工作汇报
  • 讲话稿
  • 公文范文
  • 致辞稿
  • 调查报告
  • 学习强国
  • 疫情防控
  • 振兴乡镇
  • 工作要点
  • 治国理政
  • 十九届五中全会
  • 教育整顿
  • 党史学习
  • 建党100周
  • 当前位置: 蜗牛文摘网 > 实用文档 > 公文范文 > 一种飞控系统参数管理的嵌入式解决方案

    一种飞控系统参数管理的嵌入式解决方案

    时间:2023-04-22 18:30:05 来源:千叶帆 本文已影响

    詹福宇*,徐 亮,陈 林

    (中电科特种飞机系统工程有限公司,四川 成都)

    大多数软件都会涉及到参数的存储与读取,小至运行单片机的软件,大至操作系统级别的软件,均会有专门的子程序或者模块进行参数的读写和存储。不同开发平台下,参数管理会存在一定的差异化,例如Windows 和Linux 下的软件则会以ini、xml 或json 等配置文件的形式保存参数;
    而单片机等嵌入式环境下,由于资源的限制无法使用这些功能接口,需要另外设计,一般将参数是保存EEPROM或ROM等。

    文献[1]和文献[2]中介绍了嵌入式平台中参数存储介质、数据类型设计、读写接口设计等。文献[3]发明了一种应用于呼吸机的嵌入式设备的参数管理方法、嵌入式设备的参数管理系统、计算机可读存储介质以及嵌入式设备,但是该专利中没有涉及上位机通信、数据存储结构、多线程通信等功能,另外飞控系统相对呼吸机更加复杂。

    飞控系统是一个复杂、高效、可靠的嵌入式系统[4],针对飞行参数记录仪的研究工作[5-6]很多,但是涉及飞控系统参数管理的资料相对很少。本研究提出一种飞控系统参数管理的完整解决方案,包括参数的定义、获取、更新、保存,跨线程支持以及上位机通信协议等。

    (1)高效性,参数修改必须及时通知并更新所用应用该参数的模块。

    (2)可靠性,飞控参数会直接影响飞行安全,因此参数更新过程必须可靠,尤其是在多线程访问的情况下。

    (3)模块化,每个模块具备独立定义自己参数,不影响其他模块,参数可以在所有C 文件定义。

    (4)扩展性,产品升级,若涉及增加、删除、修改参数,应不影响其它参数,不影响上位机通信协议。

    2.1 飞控参数管理框架

    飞控参数管理系统框架(见图1),主要包含三层:

    图1 飞控参数管理框架

    (1)存储介质,可以是EPPEOM、FLASH、FILE等永久存储介质。

    (2)参数管理配置模块,提供了一套API 接口用于管理飞控参数。

    (3)上位机通信模块,可以通过上位机进行参数查询和修改等。

    本研究方案中每一个飞控参数都可能存在多份拷贝:

    (1)参数管理模块维护一份包含所有参数的元数据和当前值的表__param_table。

    (2)每个模块独立保存所使用参数的副本,运行过程中检测PARAM_UPDATE 事件则将副本同步为__param_table 中的值。

    2.2 飞控参数结构设计

    参数结构设计由param_info_t 和param_data_t 两个结构体定义:

    (1)param_info_t,结构体,包括分组名、变量名(全局唯一)、默认值、类型、标志位(修改需要重启、解锁后禁止修改、是否系统预留等)和真实值地址。

    (2)param_data_t,结构体,包括参数当前使用值、状态位(表征参数是否修改,是否保存,是否启用等)等。

    2.3 飞控参数变量定义

    参数变量定义包括param_info_t 和param_data_t两部分,前者用于存储参数元数据,后者用于存储参数使用值。为了便于用户使用,一般通过PARAM_DEFINE_FLOAT/INT32 等一系列宏来简化参数定义,比如:

    其中PARAM_EXPORT 宏将param_info_t 变量定义到lds 文件指定的ParamTab section 区域,这样参数可以定义在任意*.c 文件,但均可统一通过section 地址来索引和查找,便于软件模块化开发。

    通过以下方式获取参数表格的首地址和数量,其中__param_section_start 和__param_section_end 是lds文件中ParamTab 区域的首尾地址:

    2.4 飞控参数读写流程

    飞控参数通过唯一变量名进行索引, 一个典型的参数读写流程见图 2。param_find 函数从__param_table 中搜索第一个与name 相匹配的参数,返回其句柄,并将该参数的状态设置为“已使用”;
    param_get函 数 将 参 数 当 前 值param_info_ptr->data->value 拷贝到本地,用于飞控计算。运行过程如果检测到PARAM_UPDATE 事件,则重新拷贝。

    图2 飞控参数典型读写流程

    param_set 函数用于修改参数的当前值,同时将该参数的状态设置为“已修改”和“未保存”,并广播一个PARAM_UPDATE 事件,其它模块收到该事件,会将最新的参数值拷贝到本地。

    2.5 飞控参数存储机制

    如图3 所示,飞控启动时,调用param_load 函数从默认存储介质中读取param_save_head_t 和param_save_data_t 数据并校验:如果校验失败,则调用param_save 函数将“已修改”参数来初始化存储介质;
    如果校验成功,则在for 循环中调用param_find 和param_set 函数将参数修改为存储值,并广播PARAM_UPDATE 事件,通知其它模块参数已经更新了。

    图3 飞控参数存储控制流程

    运行过程中,PARAM_AUTO_SAVE 后台线程,如果检测PARAM_UPDATE 事件(一般调用param_set 函数时触发),则将所有标记为“已修改”的参数保存到存储介质中,同时将参数状态设置为“已保存”,但不会重置“已修改”状态,保存到存储的结构体数据为:

    (1)param_save_head_t,存储头部信息,包含时间戳、参数个数,以及参数HASH 校验。

    (2)param_save_data_t,存储参数内容,包含变量名和变量值,变量名作为参数的唯一索引,即使飞控软件升级了,参数列表发生了变化,仍可以通过变量名与升级后的参数列表建立一一对应关系,不会因为程序升级导致已存参数失效或丢失。

    2.6 与上位机通信接口

    上位机对飞控参数的操作主要是获取所有参数(见图4)、读取某个参数(见图5)、修改某个参数(见图6)。需要说明的是,通过改变PARAM_LIST 的属性值,可以下载特定属性的参数,比如只下载被修改的参数,或者只下载EKF 分组的参数,另外上位机在接收参数过程中,会进行超时和序号连续性判断。

    图4 上位机获取所有参数流程

    图5 上位机读取某个参数流程

    图6 上位机修改某个参数流程

    为了防止批量下载参数时阻塞通信链路,飞控每个发送周期(20 ms)只发送3 个参数,也就是每秒发送150 个参数,占用带宽约43.36 kbps,绝大部分数据链都能满足这个传输要求,比如Microhard P900 数传拥有57.6 kbps~276 kbps 无线速率。

    某飞控系统基于RT-Thread V4.1.x[7]嵌入式实时操作系统;
    编译工具链为GNU Arm Embedded Toolchain 10.3-2021.10[8];
    处理器为STM32H753II,CPU 主频480 MHz,拥有2 Mb Flash 和1 Mb RAM,飞控内部运行了各种传感器驱动、姿态位置估计、航线管理、位置控制、姿态控制等30 多个模块,一共有649 个参数,其中整数132 个,浮点数517 个。

    通过软件在环测试、硬件在环测试,以及真机飞行测试等,通过累积1 660 多个小时试验,参数管理模块工作正常,能够正确的读取、修改、存储飞控参数,上位机实时对参数进行管理,修改后的参数能够及时同步使用模块,试验过程没有出现参数管理故障。

    本研究提出了一套完整的飞控系统参数管理解决方案,涵盖了飞控参数的读取、修改、存储以及与上位机通信等,支持多线程、支持模块化,并成功应用到某飞控系统。试验结果表明该方案完整、高效、可靠,并具备良好的扩展性,满足飞控系统嵌入式软件要求。

    猜你喜欢存储介质飞控控系统关于DALI灯控系统的问答精选家庭影院技术(2021年3期)2021-05-21联调联试中列控系统兼容性问题探讨铁道通信信号(2020年5期)2020-09-21民用飞机飞控通电自检测安全性研究民用飞机设计与研究(2019年2期)2019-08-05机载飞控1553B总线转以太网总线设计测控技术(2018年8期)2018-11-25档案馆移动存储介质管理方法探讨信息记录材料(2018年7期)2018-06-1202 飞控技术与机场安保引关注中国公共安全(2017年7期)2017-10-13一种使用存储介质驱动的方式数码世界(2017年7期)2017-07-25飞控系统故障告警实时监控软件的设计与实现计算机测量与控制(2017年6期)2017-07-01一种新型列控系统方案探讨铁道通信信号(2016年10期)2016-06-01简析GSM-R在CTCS-3列控系统中的作用和故障判断处理铁路通信信号工程技术(2014年5期)2014-02-28
    相关热词搜索:嵌入式解决方案参数

    • 名人名言
    • 伤感文章
    • 短文摘抄
    • 散文
    • 亲情
    • 感悟
    • 心灵鸡汤