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

    文章

    4039

    浏览量

    45579
  • RT-Thread
    +关注

    关注

    32

    文章

    1543

    浏览量

    44296

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    首搭RT-Thread程翧车控平台| RT-Thread程翧 S32K344 快速原型开发平台正式上市!| 产品动态

    智能汽车迈向高集成与高安全的时代,VCU/ECU开发正面临效率与可靠的双重考验。依赖单一硬件或拼凑软件方案的传统模式,已成为制约创新的瓶颈。为此,RT-Thread带来里程碑式的解
    的头像 发表于 10-31 11:53 513次阅读
    首搭<b class='flag-5'>RT-Thread</b>程翧车控平台| <b class='flag-5'>RT-Thread</b>程翧 S32K344 快速原型开发平台正式上市!| 产品动态

    【CPKCOR-RA8D1】5、运行RT-THREAD的适应调整

    CPKCOR-RA8D1B开发板不能直接使用,必须进行适应调整。 一、安装env-windows RT-Thread Env 工具包括配置器和包管理器,用来对内核和组件的功能进行配置,对组件进行自由裁剪,对线
    发表于 10-27 14:49

    RT-Thread studio打不开 RT-thread setting界面怎么解决?

    硬件环境 电脑操作系统Windows 11 Pro for Workstations 版本23H2 操作描述1 我官网 https://www.rt-thread
    发表于 10-14 07:06

    Windows上使用ENV工具开发基于先楫MCU的RT-Thread应用

    前言Env是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理
    的头像 发表于 08-29 12:22 964次阅读
    Windows上使用ENV工具开发基于先楫MCU的<b class='flag-5'>RT-Thread</b>应用

    Ubuntu上开发基于先楫MCU的RT-Thread应用指南

    1、前言RT-ThreadEnv是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统
    的头像 发表于 08-29 12:22 1244次阅读
    <b class='flag-5'>在</b>Ubuntu上开发基于先楫MCU的<b class='flag-5'>RT-Thread</b>应用指南

    【好书推荐】RT-Thread第20本相关书籍!《嵌入式实时操作系统RT-Thread原理与应用》| 技术集结

    01内容简介ContentSummary本书为读者提供了一个全面、系统RT-Thread学习指南,旨在帮助初学者及有经验的开发者掌握RT-Thread实时操作系统和STM32嵌入式微
    的头像 发表于 08-24 10:05 695次阅读
    【好书推荐】<b class='flag-5'>RT-Thread</b>第20本相关书籍!《嵌入式实时操作<b class='flag-5'>系统</b><b class='flag-5'>RT-Thread</b>原理与应用》| 技术集结

    RT-Thread荣获2025优秀开源项目 | 新闻速递

    6月底,RT-Thread睿赛德受邀参与由上海开源信息技术协会主办的2025上海开源创新精英荟。上海市商委副主任张杰出席会议并致辞。RT-Thread嵌入式操作系统项目凭借其卓越的技术创新与开源生态
    的头像 发表于 07-04 09:04 2442次阅读
    <b class='flag-5'>RT-Thread</b>荣获2025优秀开源项目 | 新闻速递

    揭秘RT-Thread上的AUTOSAR CP系统

    标准,同时保留RT-Thread的POSIX支持与可裁剪,实现了通信隔离、诊断模块集成等关键技术突破,为车载系统提供高安全、可扩展的解决方案。车载电子系统与传统
    的头像 发表于 06-23 20:22 2959次阅读
    揭秘<b class='flag-5'>RT-Thread</b>上的AUTOSAR CP<b class='flag-5'>系统</b>

    人形机器人敏捷开发新路径:RT-Thread软件底座破解复杂系统难题 | 新闻速递

    机器人行业解决方案负责人郭占鑫发表《从异构通信到虚拟化技术:RT-Thread助力机器人敏捷、可持续开发》主题演讲,系统阐述了RT-Thread操作系统
    的头像 发表于 06-04 14:03 1037次阅读
    人形机器人敏捷开发新路径:<b class='flag-5'>RT-Thread</b>以<b class='flag-5'>软件</b>底座破解复杂<b class='flag-5'>系统</b>难题 | 新闻速递

    2025 RT-Thread全球技术大会议程正式发布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技术大会)是聚焦基础软件技术创新与实践的嵌入式技术盛会,持续推动技术价值转化
    的头像 发表于 05-27 19:28 1078次阅读
    2025 <b class='flag-5'>RT-Thread</b>全球技术大会议程正式发布!

    RT-Thread审核团招募: 深度参与开源RTOS社区治理与演进

    全球开发者招募:RT-Thread审核团(ReviewTeam)正式开放申请!开源的世界里,代码审查(CodeReview)是保证软件质量、促进技术交流的关键环节。RT-Thread
    的头像 发表于 05-21 18:02 1071次阅读
    <b class='flag-5'>RT-Thread</b>审核团招募: 深度参与开源RTOS社区治理与演进

    RT-Thread睿赛德亮相深圳机器人产业大会,聚焦机器人软件系统技术前沿 | 新闻速递

    RT-Thread睿赛德嵌入式软件工程师梁瑛健在会上发表题为《RT-Thread为机器人软件系统赋能》的主题演讲,深入探讨了
    的头像 发表于 05-20 18:15 802次阅读
    <b class='flag-5'>RT-Thread</b>睿赛德亮相深圳机器人产业大会,聚焦机器人<b class='flag-5'>软件</b><b class='flag-5'>系统</b>技术前沿 | 新闻速递

    软件定义汽车: RT-Thread程翧整车OS亮相上海车展 | 媒体视角

    4月25日,第二十一届上海国际汽车工业展览会技术论坛上,RT-Thread睿赛德创始人兼CEO熊谱翔重磅发布了“程翧整车基础软件操作系统”。这一成果引发了广泛关注,多家媒体对此跟进报
    的头像 发表于 05-07 18:40 932次阅读
    <b class='flag-5'>软件</b>定义汽车: <b class='flag-5'>RT-Thread</b>程翧整车OS亮相上海车展 | 媒体视角

    RT-Thread睿赛德携“程翧整车基础软件OS”亮相车展,多核虚拟化跨域驱动智能汽车发展

    ,携RT-Thread“程翧整车基础软件OS”首发亮相,并系统性阐述睿赛德多核MCU虚拟化技术领域的突破成果。
    的头像 发表于 04-25 20:53 1215次阅读
    <b class='flag-5'>RT-Thread</b>睿赛德携“程翧整车基础<b class='flag-5'>软件</b>OS”亮相车展,多核虚拟化跨域驱动智能汽车发展

    如何将RT-Thread移植到NXP MCUXPressoIDE上

    RT-Thread默认支持的IDE只有IAR 和 Keil, 那如何将RT-Thread移植到NXP MCUXPressoIDE上呢?本文内容比较简单但稍有琐碎,希望对有需要的小伙伴有所帮助。
    的头像 发表于 02-13 10:37 2445次阅读
    如何将<b class='flag-5'>RT-Thread</b>移植到NXP MCUXPressoIDE上