0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

验证星务软件在RT-Thread系统运行的可行性

RTThread物联网操作系统 来源:RTThread物联网操作系统 作者:RTThread物联网操作 2021-04-16 11:52 次阅读

本作品为了验证星务软件在RT-Thread系统运行的可行性,底层是否能够驱动星务软件,同时扩展RT-Thread应用范围。ART-Pi作为卫星下位机,星务前端用VS2010开发,两者之间通过异步串口通信。星务前端发送遥控指令,ART-Pi能够正常解析运行,并且能把星务的一些状态遥测发送至星务前端,方便地面人员查看。本作品设计的线程只有星务线程,采集线程,姿控线程,地测线程,Free线程,正常的卫星软件不止这五个线程,简化为这五个,涉及到的外设也简化为只有定时器与异步串口。

开发环境

硬件:ART-Pi开发板

RT-Thread版本:RT-Thread 4.0.2

开发工具及版本:RT-Thread Studio 1.1.5,Visual Studio 2010

RT-Thread使用情况概述

内核部分:线程操作(创建,挂起,删除),二值信号

组件部分:软件定时器,异步串口,

软件包:无

其他:无

硬件框架

本作品验证RT-Thread系统,软件方面应用较多,底层硬件只需要一个ART-Pi开发板模拟卫星系统即可。ART-Pi作为卫星下位机,星务前端用一个PC代替即可,硬件框架如图1所示。

b21f628c-9e22-11eb-8b86-12bb97331649.png

图1 硬件框架

软件框架说明

软件框架如图2所示,软件定时器以4Hz频率给星务线程信号量,星务线程启动后,检测其他各个线程的运行状况,核对线程运行时间,核对软件狗计数是否超过阈值,核对运行时间片,当都满足后,给所有线程信号量。设计的各个线程优先级如表1所示,由表可知,星务线程优先级最高,会一直运行至等待下一个信号量,依据RTT线程抢占运行原理,次一级优先级线程运行。所以在一个时间片内,线程运行顺序为,星务线程→采集线程→姿控线程→地测线程→Free线程。图中的遥测遥控部分在下一章节“软件模块原理”描述。

软件定时器于整秒处开始运行,定时器间隔为250ms,将0-249ms定义为时间片TASK_ROUNDA,将250-499ms定义为时间片TASK_ROUNDB,将500-749ms定义为时间片TASK_ROUNDC,将750-999ms定义为时间片TASK_ROUNDD。各线程运行时间片如表2所示。

b236d3ae-9e22-11eb-8b86-12bb97331649.png

b271fa2e-9e22-11eb-8b86-12bb97331649.png

图2 软件框架

软件模块说明

软件模块分为遥控上传,遥测下传,星务软件管理三个部分,遥控上传流程图如图3-a,3-b所示。

b2809ab6-9e22-11eb-8b86-12bb97331649.png

图3-a 遥控流程

b28e1f06-9e22-11eb-8b86-12bb97331649.png

图3-b 遥控流程

1.遥控流程

星务前端依照表3所示的遥控包结构组包,并通过异步串口发送至ART-Pi串口6,其中类型占用2个字节,定义如表4所示。

b296f63a-9e22-11eb-8b86-12bb97331649.png

b29fe4c0-9e22-11eb-8b86-12bb97331649.png

分系统类型:星务线程0x00,请求线程0x01,姿控线程0x02,无0x03.

指令码:自定义地测线程将串口6FIFO读空,按照表3结构循环解析解析遥控指令,直到无可用遥控包,然后将合法遥控包存储到遥控指令缓存,等待线程来取指令;地测在存储指令前,查看遥控指令缓存是否有可用空间,有可用空间则将指令存储,并将标志位置有效状态,线程检测本线程对应的指令在缓冲区中有有效状态指令时,将指令取出,并将标志位置空闲。具体遥控指令说明参考附录。

2.遥测流程

遥测流程星上程序简单,地测线程依据包发送的时间片,符合本周期则发送,不符合则丢弃,发送的数据包结构符合表3,包下发的具体信息请参考附录。具体解包流程可参考上位机代码,非本设计详述部分,故不再赘述。

3.星务软件管理

星务初始化时,初始化各个线程,初始化硬件等;当星上软件运行起来时,检测各个线程状态,给合法线程信号量。当前线程共有三种状态,即允许运行、线程挂起、线程停止。各个线程的状态不仅受到遥控指令控制,还会与星务软件狗有关,各个线程之间的转换关系如图4所示。

b2a9b3b0-9e22-11eb-8b86-12bb97331649.png

图4 线程状态转换与遥控指令对应关系

图4中,红字表示发送的遥控指令,圆圈内表示当前线程状态。

星务软件设计了软件狗,软件狗的作用是为了防止线程死循环,将整个优先级之后的的线程同时卡死的问题,具体过程是每次当星务给线程信号量时,此线程对应的软件狗计数会累加,当线程运行至线程循环底部时,会将软件狗清零;如果在一个周期内,程序由于卡死在死循环或者是任务循环次数过大,导致本周期未运行至函数体底部,则星务会继续累计软件狗,当次数大于设置值时,依据设置的方式对线程处理,线程重启或者是整个操作系统重启。

演示效果

b2bf3d16-9e22-11eb-8b86-12bb97331649.png

图5 星务前端上位机界面1

b2f26948-9e22-11eb-8b86-12bb97331649.png

图6 星务前端上位机界面2

比赛感悟

本作品较好的实现了原定的目标,在真实情况下,RTT也会有较好表现,扩展了RTT的应用范围,对其他的类似系统也有很好的借鉴作用;但是作为功能强大的ART-Pi开发板,真正用到的功能较少,后期可以再开发一些其他的有意义的应用。

本作品所用的代码与实际卫星使用代码原理一致而具体不同,有部分借鉴的成分,主要的困难是需要将星务系统底层适配RTT,并且不能照抄原版代码,一是为了避免涉密,二是为了提高移植的意义,使我对整个卫星的软件框架有了很好的认识,对我本人从事的工作也有很好的促进作用。而且开源卫星代码的原理也让卫星代码圈子增加一点生态,也对其将来的发展有好的促进作用。

原文标题:【RT-Thread开源作品秀】基于RT-Thread的星务平台研究

文章出处:【微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    3256

    浏览量

    42420
  • RT-Thread
    +关注

    关注

    31

    文章

    1274

    浏览量

    39940

原文标题:【RT-Thread开源作品秀】基于RT-Thread的星务平台研究

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    混合部署 | 迅为RK3568上同时部署RT-Thread和Linux系统

    的任务,则可以独立的 RT-Thread 分区中运行,与 Linux 系统相隔离,以确保系统的安全
    发表于 11-01 10:31

    混合部署 | 迅为RK3568上同时部署RT-Thread和Linux系统

    的任务,则可以独立的 RT-Thread 分区中运行,与 Linux 系统相隔离,以确保系统的安全
    发表于 09-18 10:54

    【QEMU系列】不用开发板运行RT-Thread指南-ARM架构

    成为一个门槛。本文将详细介绍如何在QEMU虚拟机的Vexpress-A9平台上运行RT-Thread,帮助开发者没有实际硬件开发板的情况下,轻松体验和学习RT-Th
    的头像 发表于 08-09 08:35 812次阅读
    【QEMU系列】不用开发板<b class='flag-5'>运行</b><b class='flag-5'>RT-Thread</b>指南-ARM架构

    RT-Thread内部机制大揭秘,带你深入操作系统内核

    一、RT-Thread概述RT-Thread是一款具有显著优势的开源嵌入式实时操作系统。它不仅具备轻量级、实时强的特点,还拥有广泛的开源社区支持和丰富的应用场景。
    的头像 发表于 08-01 08:11 3114次阅读
    <b class='flag-5'>RT-Thread</b>内部机制大揭秘,带你深入操作<b class='flag-5'>系统</b>内核

    RT-Thread 新里程碑达成——GitHub Star 破万!

    RT-Thread实时操作系统开源项目GitHub上的star数量突破一万!截止发文,RT-Thread作为实时操作系统在业界Star数量
    的头像 发表于 07-04 08:35 410次阅读
    <b class='flag-5'>RT-Thread</b> 新里程碑达成——GitHub Star 破万!

    基于 RT-Thread专业版的EtherCAT主站方案

    特点。RT-Thread实时操作系统运行EtherCAT主站协议,大大提高了实时,极大降低了循环同步抖动时间,可满足各种对实时性要求苛
    的头像 发表于 06-19 08:35 808次阅读
    基于 <b class='flag-5'>RT-Thread</b>专业版的EtherCAT主站方案

    6月6日杭州站RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    嵌入式软件工程师郭占鑫老师为您讲解有关技术知识和实践经验。通过本次workshop能深入理解RT-Thread专业版与混合部署的潜力,RK3568平台上提升系统实时
    的头像 发表于 05-28 08:35 414次阅读
    6月6日杭州站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    5月16日南京站RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    嵌入式软件工程师郭占鑫老师为您讲解有关技术知识和实践经验。通过本次workshop能深入理解RT-Thread专业版与混合部署的潜力,RK3568平台上提升系统
    的头像 发表于 05-01 08:35 336次阅读
    5月16日南京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread混合部署Workshop北京站来啦!

    嵌入式软件工程师郭占鑫老师为您讲解有关技术知识和实践经验。通过本次workshop能深入理解RT-Thread专业版与混合部署的潜力,RK3568平台上提升系统
    的头像 发表于 04-19 08:34 419次阅读
    <b class='flag-5'>RT-Thread</b>混合部署Workshop北京站来啦!

    4月25日北京站RT-Thread线下workshop,探索RT-Thread混合部署新模式

    嵌入式软件工程师郭占鑫老师为您讲解有关技术知识和实践经验。通过本次workshop能深入理解RT-Thread专业版与混合部署的潜力,RK3568平台上提升系统
    的头像 发表于 04-16 08:35 397次阅读
    4月25日北京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    【4月10日-深圳-workshop】RT-Thread带你探索混合部署新模式

    嵌入式软件工程师农晓明老师为您讲解有关技术知识和实践经验。通过本次workshop能深入理解RT-Thread专业版与混合部署的潜力,RK3568平台上提升系统
    的头像 发表于 04-04 08:34 311次阅读
    【4月10日-深圳-workshop】<b class='flag-5'>RT-Thread</b>带你探索混合部署新模式

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到
    的头像 发表于 03-27 11:36 786次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    嵌入式软件工程师农晓明老师为您讲解有关技术知识和实践经验。通过本次workshop能深入理解RT-Thread专业版与混合部署的潜力,RK3568平台上提升系统
    的头像 发表于 03-27 08:34 498次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread荣获“中国汽车软件新锐企业”奖

    RT-Thread作为中国嵌入式实时操作系统领域的领航者,智能汽车与物联网技术紧密结合的浪潮中,以其卓越的技术创新能力、深厚的专业积累和广泛的市场应用,荣获了由权威媒体和行业观察机构盖世汽车颁发
    的头像 发表于 03-20 10:00 367次阅读
    <b class='flag-5'>RT-Thread</b>荣获“中国汽车<b class='flag-5'>软件</b>新锐企业”奖

    就在本周四!探索RT-Thread混合部署新模式!

    嵌入式软件工程师郭老师为您讲解有关技术知识和实践经验。通过本次workshop能深入理解RT-Thread专业版与混合部署的潜力,RK3568平台上提升系统实时
    的头像 发表于 03-20 08:34 512次阅读
    就在本周四!探索<b class='flag-5'>RT-Thread</b>混合部署新模式!