本作品为了验证星务软件在RT-Thread系统运行的可行性,底层是否能够驱动星务软件,同时扩展RT-Thread应用范围。ART-Pi作为卫星下位机,星务前端用VS2010开发,两者之间通过异步串口通信。星务前端发送遥控指令,ART-Pi能够正常解析运行,并且能把星务的一些状态遥测发送至星务前端,方便地面人员查看。本作品设计的线程只有星务线程,采集线程,姿控线程,地测线程,Free线程,正常的卫星软件不止这五个线程,简化为这五个,涉及到的外设也简化为只有定时器与异步串口。
代码地址
RTT软件地址:
https://gitee.com/xudongxiao2020/rtt-competition-use.git
上位机软件地址:
https://gitee.com/xudongxiao2020/rtt-competition-use-upper.git
开发环境
硬件: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所示。
图3-a 遥控流程
图4 线程状态转换与遥控指令对应关系
图4中,红字表示发送的遥控指令,圆圈内表示当前线程状态。
星务软件设计了软件狗,软件狗的作用是为了防止线程死循环,将整个优先级之后的的线程同时卡死的问题,具体过程是每次当星务给线程信 量时,此线程对应的软件狗计数会累加,当线程运行至线程循环底部时,会将软件狗清零;如果在一个周期内,程序由于卡死在死循环或者是任务循环次数过大,导致本周期未运行至函数体底部,则星务会继续累计软件狗,当次数大于设置值时,依据设置的方式对线程处理,线程重启或者是整个操作系统重启。
演示效果
图6 星务前端上位机界面2
扫码 名

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92610 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!