亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種單片機多任務操作系統(tǒng)的設計與應用

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

        朱德良,吳國強,陳新春

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

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

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

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

        1 系統(tǒng)設計

        在嵌入式系統(tǒng)設計時,通常采用時間觸發(fā)和事件觸發(fā)兩種方式來實現(xiàn)[1],時間觸發(fā)機制為各種任務提供了一個共享的定時器中斷,通過定時器形成對任務的周期性調(diào)度,完成任務之間的切換。這種系統(tǒng)在規(guī)定事件內(nèi)只有一個任務在調(diào)用直到結(jié)束,因此是可預測的、可靠的,但對外部緊急任務可能造成延誤;而事件觸發(fā)系統(tǒng)主要是依靠系統(tǒng)的中斷來實現(xiàn),所以能夠?qū)ν獠渴录M行快速的響應,但如果多個中斷源隨機時間間隔中斷,則中斷響應可能遺漏[1]。

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

        1.1 任務結(jié)構(gòu)

        任務的結(jié)構(gòu)如下組織,是任務中必要的信息,為了得到快速的存取速度,建議存放在DATA區(qū)中。

        typedef struct

        {

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

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

        unsigned char ready;// 任務狀態(tài)

        unsigned char period;// 時間間隔

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

        MAX_TASK定義其大小,一般在10個以內(nèi)為佳。

        1.2 調(diào)度初始化

        在系統(tǒng)的初期,初始化調(diào)度器是必要的一步,其主要作用是對時間觸發(fā)的定時器進行初始化工作,根據(jù)系統(tǒng)要求,設定定時器的各個參數(shù),利用定時器中斷形成時間觸發(fā)的調(diào)度驅(qū)動。

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

        Initial_Timer0()

        {

        1)清空任務序列

        2)設置定時器時間間隔數(shù)值

        3)使能定時器中斷

        4)開啟定時器

        }

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

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

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

        圖1 調(diào)度器的刷新流程圖Fig.1 Flow chart of scheduler updating

        void update(void)interrupt2 using1

        {

        Reset定時器;

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

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

        還沒有需要運行的任務,優(yōu)先級減1;

        }

        1.4 任務增加與刪除

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

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

        1.5 調(diào)度函數(shù)

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

        2 應用

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

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

        性,并且可以在相同系列的系統(tǒng)中進行移植,大大節(jié)約了開發(fā)時間。其主程序可以描述為

        void main(void)

        {

        1)初始化調(diào)度器;

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

        3)調(diào)用任務添加函數(shù)將任務加載到任務序列;

        while(1)

        {

        各任務調(diào)度函

        }

        }

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

        3 結(jié)語

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

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

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

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

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

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

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

        猜你喜歡
        嵌入式單片機系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于單片機的SPWM控制逆變器的設計與實現(xiàn)
        電子制作(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的嵌入式開發(fā)平臺
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
        Microchip推出兩個全新PIC單片機系列
        国产诱惑人的视频在线观看| 先锋影音av资源我色资源| 色综合久久无码中文字幕app| 亚洲免费成年女性毛视频| 东北熟妇露脸25分钟| 麻豆精品国产精华液好用吗| 麻豆av传媒蜜桃天美传媒| 亚洲精品乱码久久久久久按摩高清 | 国产亚洲精品久久久ai换| 香蕉视频一级| 国产成人久久综合第一区| 一区二区三区高清在线观看视频| 少妇仑乱a毛片| 成人a在线观看| 久久夜色精品国产九色| 久久精品熟女亚洲av麻| 正在播放东北夫妻内射| 国产精品无码久久久久免费AV | 免费无遮挡毛片中文字幕| 亚洲AV成人无码久久精品老人| 亚洲九九九| 精品国产三区在线观看| 精品九九人人做人人爱| 久久精品国产亚洲av高清色欲| 亚洲国产高清在线视频| 人妻少妇久久中中文字幕| 欧美放荡的少妇| 久久亚洲AV无码精品色午夜| 亚洲激情视频在线观看a五月| 麻豆亚洲av熟女国产一区二| 免费无码av片在线观看| 日韩偷拍视频一区二区三区| 亚洲国产熟女精品传媒| 精品水蜜桃久久久久久久 | 日本一区二区国产精品| 欧美成人在线视频| 久久久国产精品樱花网站| 亚洲综合伊人久久综合| 亚洲午夜成人精品无码色欲| 韩国19禁主播深夜福利视频| 日韩人妻有码中文字幕|