999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種單片機多任務操作系統的設計與應用

2014-03-08 07:01:31朱德良吳國強陳新春
自動化與儀表 2014年1期
關鍵詞:嵌入式單片機系統

朱德良,吳國強,陳新春

(中電裝備山東電子有限公司,濟南 250101)

在以51系列單片機為內核的嵌入式產品開發過程中經常使用簡單的前后臺系統,在超級循環中依照一定次序進行任務調用,而實時任務利用中斷進行處理,這樣做的好處是處理起來比較簡單方便。但其缺點也很明顯,尤其是在智能電能表領域中,隨著用戶對智能電表功能要求的不斷增加,需要處理的任務量不斷上升時,任務執行的實時性往往難以保證,而且一旦面臨更換硬件平臺的情況,幾乎沒有移植性可言,需要重復較大的工作量。因此,在嵌入式系統中使用實時操作系統來管理任務的調度是嵌入式應用的一個重要趨勢,是單片機高水平應用開發的一個標識[1-3]。

目前嵌入式實時操作系統有很多,如Vxworks、linux、μC/OSII等,但其系統本身就占用了大量的CPU資源,對于8位的51系列單片機來說太過奢侈[4];文獻[5]在時間觸發的基礎上設計了一種多任務調度器,利用消息傳遞的方式使得控制器在多個任務之間進行切換,得到了較好的效果;文獻[6]則對常用的RTX51實時系統的優缺點進行分析,提出了搶占任務實時處理的重要性。

本文在時間觸發系統的基礎上,增加了搶占式內核的特性,對單片機中多任務操作系統設計提出了具體方法,提高了對搶占任務處理的實時性,并將其成功應用在智能電表中,證明了可行性,且對系統的維護和移植工作提供了方便。

1 系統設計

在嵌入式系統設計時,通常采用時間觸發和事件觸發兩種方式來實現[1],時間觸發機制為各種任務提供了一個共享的定時器中斷,通過定時器形成對任務的周期性調度,完成任務之間的切換。這種系統在規定事件內只有一個任務在調用直到結束,因此是可預測的、可靠的,但對外部緊急任務可能造成延誤;而事件觸發系統主要是依靠系統的中斷來實現,所以能夠對外部事件進行快速的響應,但如果多個中斷源隨機時間間隔中斷,則中斷響應可能遺漏[1]。

本系統在時間觸發系統的基礎上添加搶占的特性,對普通任務以時間觸發形式按照調度器周期按部就班的進行調用;對緊急任務以搶占式系統進行處理,滿足了緊急任務實時性處理的要求。

1.1 任務結構

任務的結構如下組織,是任務中必要的信息,為了得到快速的存取速度,建議存放在DATA區中。

typedef struct

{

unsigned char realtask;//搶占任務標識

unsigned char priority;//任務優先級,以延時時間為衡量delay,deadline

unsigned char ready;// 任務狀態

unsigned char period;// 時間間隔

TASK(*p_task)(void);// 任務指針}TASK[MAX_TASK]

MAX_TASK定義其大小,一般在10個以內為佳。

1.2 調度初始化

在系統的初期,初始化調度器是必要的一步,其主要作用是對時間觸發的定時器進行初始化工作,根據系統要求,設定定時器的各個參數,利用定時器中斷形成時間觸發的調度驅動。

在8051系列的單片機中,可以使用定時器T0來完成此項工作,其具體初始化過程為

Initial_Timer0()

{

1)清空任務序列

2)設置定時器時間間隔數值

3)使能定時器中斷

4)開啟定時器

}

其中,定時器時間間隔數值的設定比較重要,如果時間間隔設定的較長,系統的反應時間就會有影響,造成有的任務執行延誤;如果時間間隔設置過短,反而會降低系統的執行效率,因為過于頻繁的任務調度會消耗過多的系統資源。因此在設定時間間隔數值時應謹慎考慮,建議在 (1~5)ms比較合適。

1.3 調度器的刷新(中斷服務程序ISR)

調度器的刷新任務主要是通過定時器的中斷服務程序對任務進行調度。本系統是允許有搶占式緊急任務和合作式任務共存的,搶占式任務是需要立刻進行處理的,所以在系統中具有最高的優先級,但是搶占式任務的出現打亂了普通任務的執行,所以只有緊系事件才能設為搶占任務,而且處理時間要盡可能的短。這樣,在調度器的每次刷新過程中都要檢測是否有搶占式任務,如果有就直接執行搶占任務;否則判斷各普通任務的優先級,也就是延遲時間,如果到了0說明該任務已需執行,則任務的狀態ready+1,交由調度函數去執行。具體流程如圖1所示。

圖1 調度器的刷新流程圖Fig.1 Flow chart of scheduler updating

void update(void)interrupt2 using1

{

Reset定時器;

檢測是否有搶占任務要運行;

檢測是否有普通任務要運行,ready+1;

還沒有需要運行的任務,優先級減1;

}

1.4 任務增加與刪除

任務的添加函數new_Task()是在系統運行初期將每個任務添加到任務隊列中,成功時返回值為新任務號task_ID,否則為出錯信息。它有三個參數:分別是任務的函數指針;任務的周期;任務類型。如果任務現有任務量沒有達到最大,將各個參數賦值給TASK結構,則插入任務隊列尾,并返回task_ID;否則返回錯誤(有全局變量task_Num來記錄當前)。

相應的,當任務執行結束后(不需要周期執行的任務),可以將任務從任務隊列中刪除,以保證資源的有效利用。其過程與添加函數正好相反。

1.5 調度函數

調度函數是在主循環中運行的唯一函數,將其與刷新函數相分離是為了防止長任務對系統的影響,其主要作用就是將已經就緒的任務進行執行。其過程為從任務隊列中取出就緒任務 (TASK[i].ready>0)進行執行,并將其中的優先級恢復為設定的時間間隔period重新開始,如果此任務是一次性任務,則調用任務刪除函數進行清理。

2 應用

目前基于51系列內核的單片機和soc芯片不計其數,本文所描述的操作系統是業余標準的8051系列芯片,因此可以在任何基于8051系列芯片的嵌入式系統中進行移植。

智能電能表系統是一個比較復雜的嵌入式系統,它的MCU需要處理大量的內部外部的任務和設備,其中主要任務有485通信、LCD液晶顯示、按鍵、讀寫E2PROM,紅外通訊,讀取計量芯片、蜂鳴器、ESAM模塊、載波模塊等,如圖2所示。基于傳統的前后臺系統中對于其開發越發復雜,也更加不可控,而將本文所述的系統運用在其中,則有效地降低了開發的復雜性,提高了系統的可控性和魯棒

性,并且可以在相同系列的系統中進行移植,大大節約了開發時間。其主程序可以描述為

void main(void)

{

1)初始化調度器;

2)初始化各個模塊信息;

3)調用任務添加函數將任務加載到任務序列;

while(1)

{

各任務調度函

}

}

圖2 智能電表系統任務示意圖Fig.2 Drawing of smart meter system tasks

3 結語

在嵌入式系統中使用實時操作系統來管理任務的調度是嵌入式應用的一個重要趨勢,但大部分商業實時系統需要很大的系統開銷,對51單片機來說很難實現。本文在時間觸發系統的基礎上,增加了搶占式內核的特性,提高了對搶占任務處理的實時性,并將其成功應用在智能電表中,證明了可行性,且對系統的維護和移植工作提供了方便。

[1] Michael J Pont.時間觸發嵌入式系統設計模式[M].北京:中國電力出版社,2004.

[2] 鄭宗漢.實時系統軟件基礎[M].北京:清華大學出版社,2003.

[3] 陳明計,周立功.嵌入式實時操作系統SmallRTOS 51原理及應用[M].北京:北京航空航天大學出版社,2004.

[4] 朱鳳新,姚竹亭.基于AVR的時間觸發嵌入式系統[J].工業控制計算機,2006,19(7):56-57.

[5] 李奇,樊曉平.一種時間觸發的多任務調度器設計[J].單片機與嵌入式系統應用,2008(5):17-19.

[6] 徐哲.論RTX51單片機實時操作系統[J].齊齊哈爾工程學院學報,2012,6(3):22-24.

猜你喜歡
嵌入式單片機系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Microchip推出兩個全新PIC單片機系列
主站蜘蛛池模板: 波多野结衣一区二区三区四区视频 | 日韩欧美视频第一区在线观看| 成人小视频网| 四虎影视永久在线精品| 精品国产女同疯狂摩擦2| 97亚洲色综久久精品| 青青青视频蜜桃一区二区| 精品三级在线| 91视频精品| 国产精品乱偷免费视频| 欧美日韩综合网| 成人国产精品一级毛片天堂| 亚洲有码在线播放| 免费可以看的无遮挡av无码| 国产欧美在线视频免费| 天堂网亚洲系列亚洲系列| 一本久道久综合久久鬼色| 国产精女同一区二区三区久| 成人在线欧美| 日本午夜三级| 日韩午夜福利在线观看| 日韩欧美中文字幕在线精品| 伊人婷婷色香五月综合缴缴情| 欧美精品一区二区三区中文字幕| 亚洲精品视频网| 国产女同自拍视频| 国产精品极品美女自在线看免费一区二区 | 欧美一区中文字幕| 色婷婷丁香| 99精品一区二区免费视频| 青青操国产| 国产成人a毛片在线| 欧美人与性动交a欧美精品| 日韩精品成人网页视频在线| 日本亚洲成高清一区二区三区| 98超碰在线观看| 91尤物国产尤物福利在线| 久久人体视频| 一级不卡毛片| 免费A级毛片无码无遮挡| 五月天久久综合国产一区二区| 久久国产热| 国产美女叼嘿视频免费看| 欧洲免费精品视频在线| 国产免费人成视频网| 综合社区亚洲熟妇p| 亚洲国产成人无码AV在线影院L| 丁香婷婷综合激情| аv天堂最新中文在线| a在线亚洲男人的天堂试看| 亚洲精品动漫| 91年精品国产福利线观看久久| 精品欧美一区二区三区在线| 亚洲网综合| 亚洲av无码成人专区| 国产簧片免费在线播放| 天堂岛国av无码免费无禁网站| 就去色综合| 狠狠干综合| 一级做a爰片久久免费| 亚洲av色吊丝无码| 四虎国产永久在线观看| 色悠久久久久久久综合网伊人| 亚洲成人网在线播放| 日韩欧美视频第一区在线观看| 免费在线a视频| av大片在线无码免费| 欧美国产视频| 五月婷婷精品| 欧美日韩一区二区在线免费观看 | 久久婷婷五月综合色一区二区| 亚卅精品无码久久毛片乌克兰| 国产99精品久久| 国产高清自拍视频| 狠狠色噜噜狠狠狠狠色综合久| 任我操在线视频| 久久久久国产一级毛片高清板| 国产亚洲视频免费播放| 日本亚洲国产一区二区三区| 污污网站在线观看| 天天躁日日躁狠狠躁中文字幕| 免费欧美一级|