0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

驗(yàn)證星務(wù)軟件在RT-Thread系統(tǒng)運(yùn)行的可行性

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:RTThread物聯(lián)網(wǎng)操作 ? 2021-04-16 11:52 ? 次閱讀

本作品為了驗(yàn)證星務(wù)軟件在RT-Thread系統(tǒng)運(yùn)行的可行性,底層是否能夠驅(qū)動(dòng)星務(wù)軟件,同時(shí)擴(kuò)展RT-Thread應(yīng)用范圍。ART-Pi作為衛(wèi)星下位機(jī),星務(wù)前端用VS2010開(kāi)發(fā),兩者之間通過(guò)異步串口通信。星務(wù)前端發(fā)送遙控指令,ART-Pi能夠正常解析運(yùn)行,并且能把星務(wù)的一些狀態(tài)遙測(cè)發(fā)送至星務(wù)前端,方便地面人員查看。本作品設(shè)計(jì)的線程只有星務(wù)線程,采集線程,姿控線程,地測(cè)線程,F(xiàn)ree線程,正常的衛(wèi)星軟件不止這五個(gè)線程,簡(jiǎn)化為這五個(gè),涉及到的外設(shè)也簡(jiǎn)化為只有定時(shí)器與異步串口。

開(kāi)發(fā)環(huán)境

硬件:ART-Pi開(kāi)發(fā)板

RT-Thread版本:RT-Thread 4.0.2

開(kāi)發(fā)工具及版本:RT-Thread Studio 1.1.5,Visual Studio 2010

RT-Thread使用情況概述

內(nèi)核部分:線程操作(創(chuàng)建,掛起,刪除),二值信號(hào)

組件部分:軟件定時(shí)器,異步串口,

軟件包:無(wú)

其他:無(wú)

硬件框架

本作品驗(yàn)證RT-Thread系統(tǒng),軟件方面應(yīng)用較多,底層硬件只需要一個(gè)ART-Pi開(kāi)發(fā)板模擬衛(wèi)星系統(tǒng)即可。ART-Pi作為衛(wèi)星下位機(jī),星務(wù)前端用一個(gè)PC代替即可,硬件框架如圖1所示。

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

圖1 硬件框架

軟件框架說(shuō)明

軟件框架如圖2所示,軟件定時(shí)器以4Hz頻率給星務(wù)線程信號(hào)量,星務(wù)線程啟動(dòng)后,檢測(cè)其他各個(gè)線程的運(yùn)行狀況,核對(duì)線程運(yùn)行時(shí)間,核對(duì)軟件狗計(jì)數(shù)是否超過(guò)閾值,核對(duì)運(yùn)行時(shí)間片,當(dāng)都滿足后,給所有線程信號(hào)量。設(shè)計(jì)的各個(gè)線程優(yōu)先級(jí)如表1所示,由表可知,星務(wù)線程優(yōu)先級(jí)最高,會(huì)一直運(yùn)行至等待下一個(gè)信號(hào)量,依據(jù)RTT線程搶占運(yùn)行原理,次一級(jí)優(yōu)先級(jí)線程運(yùn)行。所以在一個(gè)時(shí)間片內(nèi),線程運(yùn)行順序?yàn)椋莿?wù)線程→采集線程→姿控線程→地測(cè)線程→Free線程。圖中的遙測(cè)遙控部分在下一章節(jié)“軟件模塊原理”描述。

軟件定時(shí)器于整秒處開(kāi)始運(yùn)行,定時(shí)器間隔為250ms,將0-249ms定義為時(shí)間片TASK_ROUNDA,將250-499ms定義為時(shí)間片TASK_ROUNDB,將500-749ms定義為時(shí)間片TASK_ROUNDC,將750-999ms定義為時(shí)間片TASK_ROUNDD。各線程運(yùn)行時(shí)間片如表2所示。

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

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

圖2 軟件框架

軟件模塊說(shuō)明

軟件模塊分為遙控上傳,遙測(cè)下傳,星務(wù)軟件管理三個(gè)部分,遙控上傳流程圖如圖3-a,3-b所示。

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

圖3-a 遙控流程

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

圖3-b 遙控流程

1.遙控流程

星務(wù)前端依照表3所示的遙控包結(jié)構(gòu)組包,并通過(guò)異步串口發(fā)送至ART-Pi串口6,其中類型占用2個(gè)字節(jié),定義如表4所示。

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

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

分系統(tǒng)類型:星務(wù)線程0x00,請(qǐng)求線程0x01,姿控線程0x02,無(wú)0x03.

指令碼:自定義地測(cè)線程將串口6FIFO讀空,按照表3結(jié)構(gòu)循環(huán)解析解析遙控指令,直到無(wú)可用遙控包,然后將合法遙控包存儲(chǔ)到遙控指令緩存,等待線程來(lái)取指令;地測(cè)在存儲(chǔ)指令前,查看遙控指令緩存是否有可用空間,有可用空間則將指令存儲(chǔ),并將標(biāo)志位置有效狀態(tài),線程檢測(cè)本線程對(duì)應(yīng)的指令在緩沖區(qū)中有有效狀態(tài)指令時(shí),將指令取出,并將標(biāo)志位置空閑。具體遙控指令說(shuō)明參考附錄。

2.遙測(cè)流程

遙測(cè)流程星上程序簡(jiǎn)單,地測(cè)線程依據(jù)包發(fā)送的時(shí)間片,符合本周期則發(fā)送,不符合則丟棄,發(fā)送的數(shù)據(jù)包結(jié)構(gòu)符合表3,包下發(fā)的具體信息請(qǐng)參考附錄。具體解包流程可參考上位機(jī)代碼,非本設(shè)計(jì)詳述部分,故不再贅述。

3.星務(wù)軟件管理

星務(wù)初始化時(shí),初始化各個(gè)線程,初始化硬件等;當(dāng)星上軟件運(yùn)行起來(lái)時(shí),檢測(cè)各個(gè)線程狀態(tài),給合法線程信號(hào)量。當(dāng)前線程共有三種狀態(tài),即允許運(yùn)行、線程掛起、線程停止。各個(gè)線程的狀態(tài)不僅受到遙控指令控制,還會(huì)與星務(wù)軟件狗有關(guān),各個(gè)線程之間的轉(zhuǎn)換關(guān)系如圖4所示。

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

圖4 線程狀態(tài)轉(zhuǎn)換與遙控指令對(duì)應(yīng)關(guān)系

圖4中,紅字表示發(fā)送的遙控指令,圓圈內(nèi)表示當(dāng)前線程狀態(tài)。

星務(wù)軟件設(shè)計(jì)了軟件狗,軟件狗的作用是為了防止線程死循環(huán),將整個(gè)優(yōu)先級(jí)之后的的線程同時(shí)卡死的問(wèn)題,具體過(guò)程是每次當(dāng)星務(wù)給線程信號(hào)量時(shí),此線程對(duì)應(yīng)的軟件狗計(jì)數(shù)會(huì)累加,當(dāng)線程運(yùn)行至線程循環(huán)底部時(shí),會(huì)將軟件狗清零;如果在一個(gè)周期內(nèi),程序由于卡死在死循環(huán)或者是任務(wù)循環(huán)次數(shù)過(guò)大,導(dǎo)致本周期未運(yùn)行至函數(shù)體底部,則星務(wù)會(huì)繼續(xù)累計(jì)軟件狗,當(dāng)次數(shù)大于設(shè)置值時(shí),依據(jù)設(shè)置的方式對(duì)線程處理,線程重啟或者是整個(gè)操作系統(tǒng)重啟。

演示效果

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

圖5 星務(wù)前端上位機(jī)界面1

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

圖6 星務(wù)前端上位機(jī)界面2

比賽感悟

本作品較好的實(shí)現(xiàn)了原定的目標(biāo),在真實(shí)情況下,RTT也會(huì)有較好表現(xiàn),擴(kuò)展了RTT的應(yīng)用范圍,對(duì)其他的類似系統(tǒng)也有很好的借鑒作用;但是作為功能強(qiáng)大的ART-Pi開(kāi)發(fā)板,真正用到的功能較少,后期可以再開(kāi)發(fā)一些其他的有意義的應(yīng)用。

本作品所用的代碼與實(shí)際衛(wèi)星使用代碼原理一致而具體不同,有部分借鑒的成分,主要的困難是需要將星務(wù)系統(tǒng)底層適配RTT,并且不能照抄原版代碼,一是為了避免涉密,二是為了提高移植的意義,使我對(duì)整個(gè)衛(wèi)星的軟件框架有了很好的認(rèn)識(shí),對(duì)我本人從事的工作也有很好的促進(jìn)作用。而且開(kāi)源衛(wèi)星代碼的原理也讓衛(wèi)星代碼圈子增加一點(diǎn)生態(tài),也對(duì)其將來(lái)的發(fā)展有好的促進(jìn)作用。

原文標(biāo)題:【RT-Thread開(kāi)源作品秀】基于RT-Thread的星務(wù)平臺(tái)研究

文章出處:【微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開(kāi)源
    +關(guān)注

    關(guān)注

    3

    文章

    3398

    瀏覽量

    42665
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1305

    瀏覽量

    40331

原文標(biāo)題:【RT-Thread開(kāi)源作品秀】基于RT-Thread的星務(wù)平臺(tái)研究

文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    混合部署 | 迅為RK3568上同時(shí)部署RT-Thread和Linux系統(tǒng)

    的任務(wù),則可以獨(dú)立的 RT-Thread 分區(qū)中運(yùn)行,與 Linux 系統(tǒng)相隔離,以確保系統(tǒng)的安全
    發(fā)表于 11-01 10:31

    混合部署 | 迅為RK3568上同時(shí)部署RT-Thread和Linux系統(tǒng)

    的任務(wù),則可以獨(dú)立的 RT-Thread 分區(qū)中運(yùn)行,與 Linux 系統(tǒng)相隔離,以確保系統(tǒng)的安全
    發(fā)表于 09-18 10:54

    【QEMU系列】不用開(kāi)發(fā)板運(yùn)行RT-Thread指南-ARM架構(gòu)

    成為一個(gè)門檻。本文將詳細(xì)介紹如何在QEMU虛擬機(jī)的Vexpress-A9平臺(tái)上運(yùn)行RT-Thread,幫助開(kāi)發(fā)者沒(méi)有實(shí)際硬件開(kāi)發(fā)板的情況下,輕松體驗(yàn)和學(xué)習(xí)RT-Th
    的頭像 發(fā)表于 08-09 08:35 ?1037次閱讀
    【QEMU系列】不用開(kāi)發(fā)板<b class='flag-5'>運(yùn)行</b><b class='flag-5'>RT-Thread</b>指南-ARM架構(gòu)

    RT-Thread內(nèi)部機(jī)制大揭秘,帶你深入操作系統(tǒng)內(nèi)核

    一、RT-Thread概述RT-Thread是一款具有顯著優(yōu)勢(shì)的開(kāi)源嵌入式實(shí)時(shí)操作系統(tǒng)。它不僅具備輕量級(jí)、實(shí)時(shí)強(qiáng)的特點(diǎn),還擁有廣泛的開(kāi)源社區(qū)支持和豐富的應(yīng)用場(chǎng)景。
    的頭像 發(fā)表于 08-01 08:11 ?3947次閱讀
    <b class='flag-5'>RT-Thread</b>內(nèi)部機(jī)制大揭秘,帶你深入操作<b class='flag-5'>系統(tǒng)</b>內(nèi)核

    RT-Thread 新里程碑達(dá)成——GitHub Star 破萬(wàn)!

    RT-Thread實(shí)時(shí)操作系統(tǒng)開(kāi)源項(xiàng)目GitHub上的star數(shù)量突破一萬(wàn)!截止發(fā)文,RT-Thread作為實(shí)時(shí)操作系統(tǒng)在業(yè)界Star數(shù)量
    的頭像 發(fā)表于 07-04 08:35 ?512次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達(dá)成——GitHub Star 破萬(wàn)!

    基于 RT-Thread專業(yè)版的EtherCAT主站方案

    特點(diǎn)。RT-Thread實(shí)時(shí)操作系統(tǒng)運(yùn)行EtherCAT主站協(xié)議,大大提高了實(shí)時(shí),極大降低了循環(huán)同步抖動(dòng)時(shí)間,可滿足各種對(duì)實(shí)時(shí)性要求苛
    的頭像 發(fā)表于 06-19 08:35 ?1046次閱讀
    基于 <b class='flag-5'>RT-Thread</b>專業(yè)版的EtherCAT主站方案

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

    嵌入式軟件工程師郭占鑫老師為您講解有關(guān)技術(shù)知識(shí)和實(shí)踐經(jīng)驗(yàn)。通過(guò)本次workshop能深入理解RT-Thread專業(yè)版與混合部署的潛力,RK3568平臺(tái)上提升系統(tǒng)實(shí)時(shí)
    的頭像 發(fā)表于 05-28 08:35 ?475次閱讀
    6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

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

    嵌入式軟件工程師郭占鑫老師為您講解有關(guān)技術(shù)知識(shí)和實(shí)踐經(jīng)驗(yàn)。通過(guò)本次workshop能深入理解RT-Thread專業(yè)版與混合部署的潛力,RK3568平臺(tái)上提升系統(tǒng)實(shí)
    的頭像 發(fā)表于 05-01 08:35 ?408次閱讀
    5月16日南京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread混合部署Workshop北京站來(lái)啦!

    嵌入式軟件工程師郭占鑫老師為您講解有關(guān)技術(shù)知識(shí)和實(shí)踐經(jīng)驗(yàn)。通過(guò)本次workshop能深入理解RT-Thread專業(yè)版與混合部署的潛力,RK3568平臺(tái)上提升系統(tǒng)
    的頭像 發(fā)表于 04-19 08:34 ?469次閱讀
    <b class='flag-5'>RT-Thread</b>混合部署Workshop北京站來(lái)啦!

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

    嵌入式軟件工程師郭占鑫老師為您講解有關(guān)技術(shù)知識(shí)和實(shí)踐經(jīng)驗(yàn)。通過(guò)本次workshop能深入理解RT-Thread專業(yè)版與混合部署的潛力,RK3568平臺(tái)上提升系統(tǒng)
    的頭像 發(fā)表于 04-16 08:35 ?454次閱讀
    4月25日北京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

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

    嵌入式軟件工程師農(nóng)曉明老師為您講解有關(guān)技術(shù)知識(shí)和實(shí)踐經(jīng)驗(yàn)。通過(guò)本次workshop能深入理解RT-Thread專業(yè)版與混合部署的潛力,RK3568平臺(tái)上提升系統(tǒng)實(shí)
    的頭像 發(fā)表于 04-04 08:34 ?376次閱讀
    【4月10日-深圳-workshop】<b class='flag-5'>RT-Thread</b>帶你探索混合部署新模式

    4月10日深圳場(chǎng)RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請(qǐng)到
    的頭像 發(fā)表于 03-27 11:36 ?871次閱讀
    4月10日深圳場(chǎng)<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳場(chǎng)RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    嵌入式軟件工程師農(nóng)曉明老師為您講解有關(guān)技術(shù)知識(shí)和實(shí)踐經(jīng)驗(yàn)。通過(guò)本次workshop能深入理解RT-Thread專業(yè)版與混合部署的潛力,RK3568平臺(tái)上提升系統(tǒng)實(shí)
    的頭像 發(fā)表于 03-27 08:34 ?562次閱讀
    4月10日深圳場(chǎng)<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread榮獲“中國(guó)汽車軟件新銳企業(yè)”獎(jiǎng)

    RT-Thread作為中國(guó)嵌入式實(shí)時(shí)操作系統(tǒng)領(lǐng)域的領(lǐng)航者,智能汽車與物聯(lián)網(wǎng)技術(shù)緊密結(jié)合的浪潮中,以其卓越的技術(shù)創(chuàng)新能力、深厚的專業(yè)積累和廣泛的市場(chǎng)應(yīng)用,榮獲了由權(quán)威媒體和行業(yè)觀察機(jī)構(gòu)蓋世汽車頒發(fā)
    的頭像 發(fā)表于 03-20 10:00 ?418次閱讀
    <b class='flag-5'>RT-Thread</b>榮獲“中國(guó)汽車<b class='flag-5'>軟件</b>新銳企業(yè)”獎(jiǎng)

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

    嵌入式軟件工程師郭老師為您講解有關(guān)技術(shù)知識(shí)和實(shí)踐經(jīng)驗(yàn)。通過(guò)本次workshop能深入理解RT-Thread專業(yè)版與混合部署的潛力,RK3568平臺(tái)上提升系統(tǒng)實(shí)時(shí)
    的頭像 發(fā)表于 03-20 08:34 ?600次閱讀
    就在本周四!探索<b class='flag-5'>RT-Thread</b>混合部署新模式!