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

        ?

        基于ATmega128的時間觸發(fā)嵌入式系統(tǒng)的設(shè)計與應(yīng)用

        2013-12-31 00:00:00邵峰劉林陰
        電子世界 2013年18期

        【摘要】針對51單片機速度慢、驅(qū)動能力差、抗干擾能力低及事件觸發(fā)往往帶來不確定性和不穩(wěn)定性等問題,提出了AVR微控制器與時間觸發(fā)方式相結(jié)合的嵌入式系統(tǒng)。該系統(tǒng)結(jié)合了AVR的硬件優(yōu)勢及時間觸發(fā)的調(diào)度理念將系統(tǒng)精度有效的控制在ms級,具有占存儲單元少,可靠性好,可預(yù)測性強,安全性高的特點。實驗表明,該系統(tǒng)適用于中小型實時控制系統(tǒng),并可靠穩(wěn)定運行。

        【關(guān)鍵詞】AVR;微控制器;時間觸發(fā);嵌入式系統(tǒng);混合式調(diào)度器

        1.引言

        近年來,嵌入式發(fā)展迅速,采用51單片機死循環(huán)的事件觸發(fā)編程方式已逐漸不能滿足企業(yè)對產(chǎn)品穩(wěn)定性和安全性的要求。目前,嵌入式系統(tǒng)軟件有VxWork、Linux、WinCE、μC/OS-II等,可出于成本和技術(shù)上的考慮,微控制器往往不會選取其進行設(shè)計。在實際應(yīng)用中,往往會面臨同時應(yīng)付多外設(shè)、多任務(wù)的情況,則對它們的相互調(diào)度必不可少。時間觸發(fā)嵌入式系統(tǒng)就是這樣的簡單實用的操作系統(tǒng)。

        本文設(shè)計了基于AVR微控制器的時間觸發(fā)多任務(wù)調(diào)度器并應(yīng)用于實際。該調(diào)度器使用傳遞消息(message)的方式使得微控制器在多個任務(wù)及設(shè)備間切換。

        2.AVR微控制器的結(jié)構(gòu)特點

        AVR是目前使用以該系列的ATmega128為例說明,它采用哈佛結(jié)構(gòu),RISC指令集、低功耗、片上資源豐富的特點,極大簡化了外圍電路,使系統(tǒng)更加穩(wěn)定可靠。其特點為嵌入式系統(tǒng)設(shè)計提供了良好的硬件保證。

        3.嵌入式兩種觸發(fā)方式的對比

        在嵌入式系統(tǒng)中,通常采用兩種本質(zhì)上不同的調(diào)度方式:事件觸發(fā)和時間觸發(fā)。事件觸發(fā)方式往往使用多級中斷來實現(xiàn),其發(fā)生時間具有隨機性;而時間觸發(fā)方式由一個全局時鐘驅(qū)動,系統(tǒng)的行為在功能與時間上都是確定的,即具有可預(yù)測性。

        3.1 事件觸發(fā)方式存在的問題

        嵌入式系統(tǒng)開發(fā)人員有一種中斷事件絕不會丟失的錯誤觀念,這往往給開發(fā)的產(chǎn)品帶來災(zāi)難性的后果。中斷事件丟失在實際應(yīng)用中是一個不爭的事實,產(chǎn)生的原因有多方面,但無外乎內(nèi)因和外因兩種。外因指嵌入式系統(tǒng)外產(chǎn)生的原因,這里主要指中斷源信號丟失或過于頻繁;而內(nèi)因又可分為硬件原因和軟件原因,硬件原因主要由所用嵌入式器件的中斷嵌套能力所致,軟件原因主要由開發(fā)者編程時對任務(wù)中斷優(yōu)先級設(shè)置錯誤以及任務(wù)處理不當(dāng)所致。

        例如,中斷0是一個高優(yōu)先級中斷,而中斷1是一個低優(yōu)先級中斷,則由高優(yōu)先級中斷激活的中斷服務(wù)程序不能被低優(yōu)先級的中斷打斷。于是,對第二個中斷的響應(yīng)將被延遲,甚至在一些情況下它有被完全忽略的可能。

        如果多個中斷源可能在“隨機的”時間間隔產(chǎn)生中斷,則中斷響應(yīng)可能被遺漏。實際上,在同時有幾個有效的中斷源的情況下,幾乎不可能創(chuàng)建程序代碼來正確地處理所有可能的中斷組合。并且同時處理多個事件不但增加了系統(tǒng)復(fù)雜性,而且降低了系統(tǒng)在所有情況下的行為預(yù)測能力。至于使用效率,Metzner討論并得出結(jié)論:一個包含27個任務(wù)、采用RM調(diào)度算法的事件觸發(fā)系統(tǒng),CPU的實際利用率僅為18%。

        3.2 時間觸發(fā)方式的優(yōu)勢

        在該系統(tǒng)中,設(shè)計人員能夠通過仔細安排可控的順序,保證一次只處理一個事件。它的可預(yù)測性使其成為安全相關(guān)的系統(tǒng)的首選。Kopetz首先提出:使用基于時間觸發(fā)的合作式調(diào)度器會使得系統(tǒng)有非常好的可預(yù)測性。除可提高可靠性之外,使用該方式有助于減輕CPU的負荷及存儲器的使用量。

        4.時間觸發(fā)嵌入式系統(tǒng)的設(shè)計

        在該調(diào)度器中,定時器的設(shè)置被分離出來,并使之不依賴于編譯器的數(shù)據(jù)類型以及處理器的位數(shù),通過修改該部分可以輕松移植到多種硬件平臺。系統(tǒng)整體方框圖如圖1所示:

        4.1 消息隊列

        消息隊列是調(diào)度器的核心,它是用戶自定義的數(shù)據(jù)類型,包括了每個任務(wù)所需要的信息。盡量將其存儲在DATA區(qū),以供快速存取。對于基于時間觸發(fā)的混合式調(diào)度器,使用如下的數(shù)據(jù)結(jié)構(gòu),對于每個任務(wù)存儲器的開銷僅為8個字節(jié)。即使是使用32位處理器,每個任務(wù)的開銷也僅為14個字節(jié)。

        typedef data struct

        {void(code*pTask)(void);uint16 Delay;

        uint16 Period;uint8 State;uint8 Co_op;}s_task;

        s_task SCH_task_array[SCH_MAX_TASKS];

        4.2 調(diào)度器定時器初始化函數(shù)

        該函數(shù)用來產(chǎn)生驅(qū)動調(diào)度器的定時時標(biāo)。本文所選用AVR系列的ATmega128微控制器具有四個定時器(兩個8位,兩個16位),任一個都能用來驅(qū)動調(diào)度器,權(quán)衡考慮選用定時器0。

        void SCH_Init_T0(void)

        {逐個刪除各個任務(wù);停止定時器0;設(shè)置時間大小函數(shù);

        使能定時器0方式;啟動定時器0;}

        注:在此期間不可開啟總中斷,即:SREG=0x80或SEI();

        調(diào)度器必須先設(shè)定一個默認(rèn)的時間片,這并不是件簡單的事。時間片過長會導(dǎo)致系統(tǒng)對交互行為的響應(yīng)表現(xiàn)欠佳;時間片太短又會明顯地增大調(diào)度器處理耗時,而留給任務(wù)運行的時間卻很短。

        根據(jù)筆者經(jīng)驗,一個較為可取的時間片是略大于一次典型的交互所需要的時間,使大多數(shù)進程在一個時間片內(nèi)完成。經(jīng)反復(fù)嘗試,時間片選擇在1~5ms之間執(zhí)行效率較高,這樣既可滿足響應(yīng)速度的要求又能把任務(wù)執(zhí)行的時間降到最低。該時間與任務(wù)個數(shù)和任務(wù)運行時間均有關(guān),具體大小視情況而定。

        4.3 中斷服務(wù)程序

        建議該函數(shù)由CTC方式激活,當(dāng)某任務(wù)需要運行時,使之處于就緒態(tài)等待被執(zhí)行。該函數(shù)內(nèi)容由具體任務(wù)而定。

        4.4 調(diào)度器任務(wù)添加函數(shù)

        該函數(shù)用來將任務(wù)添加到消息隊列,以保證條件滿足時被調(diào)用,函數(shù)如下所示:

        uint8 SCH_Add_Task(void(code*pFu-nction)(),const uint16 delay,const uint16 period)

        {定義靜態(tài)變量i;循環(huán)判斷任務(wù)隊列是否有空間;若無,報錯返回;否則,添加任務(wù);}

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

        刷新函數(shù)雖然能夠直接激活任務(wù),但若直接運行,長任務(wù)將破壞時標(biāo)中斷,這意味著所有的系統(tǒng)定時都將受到嚴(yán)重影響,造成許多任務(wù)不能被調(diào)度。因此,為了在長任務(wù)存在的情況下使調(diào)度器的可靠性最大化,分離刷新和調(diào)度這兩個操作是必要的。

        時間觸發(fā)嵌入式系統(tǒng)采用的是FCFS算法,為了提高系統(tǒng)的響應(yīng)速度,必須要求Dura-tiontask

        void SCH_Dispatch_Tasks(void)

        {定義靜態(tài)變量i;如果運行標(biāo)志位大于0,則執(zhí)行該任務(wù);

        該標(biāo)志位清零;如果是單次任務(wù),則將其刪除;}

        4.6 調(diào)度器任務(wù)刪除函數(shù)

        void SCH_Delete_Task(const uint8 task_id)

        {定義 靜態(tài)返回值;若指針函數(shù)為空,返回空閑代碼;

        否則,對其延遲、周期、狀態(tài)等變量清零;返回代碼;}

        5.應(yīng)用實驗

        以電磁爐系統(tǒng)為例,進一步介紹基于AVR微控制器的時間觸發(fā)嵌入式系統(tǒng)的具體應(yīng)用。

        電磁爐系統(tǒng)是一個復(fù)雜的嵌入式系統(tǒng),如圖2所示,AVR要處理大量的外圍設(shè)備,為便于開發(fā),將整個程序按照硬件及功能進行模塊劃分,各個功能模塊之間通過傳遞消息的方式來完成多任務(wù)的處理。

        針對該應(yīng)用,可設(shè)計功能模塊:MSGMap[],該數(shù)組由各個功能模塊組成,具體子函數(shù)如表1所列,使用函數(shù)數(shù)組的方式可以增強程序的擴展能力。如果有新的外設(shè),只需在這里添加對應(yīng)的模塊入口,并完成相應(yīng)的模塊就可以增加系統(tǒng)的功能。

        其中每個任務(wù)的運行周期間隔時間是程序中設(shè)定的參數(shù)(周期應(yīng)為4ms的倍數(shù)),具體執(zhí)行時間由AVR Studio測得,均應(yīng)小于設(shè)定時間片4ms,否則應(yīng)用將出錯,需重新設(shè)定時間片大小或再次分割功能模塊。其中看門狗處理任務(wù)是唯一的搶占式任務(wù)。

        6.結(jié)論與展望

        實驗表明,以AVR微控制器為核心的控制系統(tǒng),外圍擴展功能強大、開發(fā)較簡單,結(jié)合以時間觸發(fā)理念為內(nèi)核的操作系統(tǒng),設(shè)計時一次只為一個任務(wù)分配空間,每個任務(wù)的存儲開銷只有8個字節(jié),采用由C語言與匯編混合式編程,簡單、安全,可預(yù)測性強,尤其適用于對成本和穩(wěn)定性均有要求的中小企業(yè)。隨著嵌入式系統(tǒng)的發(fā)展,基于AVR的時間觸發(fā)嵌入式系統(tǒng)必然有著廣闊的應(yīng)用前景。

        參考文獻

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

        [2]Robert Love.Linux,陳莉君,等譯.內(nèi)核設(shè)計與實現(xiàn)[M].北京:機械工業(yè)出版社,2006:31-32.

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

        作者簡介:

        邵峰(1979—),男,河南鄭州人,碩士研究生,畢業(yè)于太原理工大學(xué),現(xiàn)供職于鄭州科技學(xué)院電氣工程學(xué)院,研究方向:電力設(shè)備與嵌入式軟硬件開發(fā)。

        劉林陰(1985—),女,河南鄭州人,碩士研究生,畢業(yè)于天津工業(yè)大學(xué),現(xiàn)供職于鄭州科技學(xué)院電氣工程學(xué)院,研究方向:機電一體化智能控制裝備。

        久久天堂综合亚洲伊人hd妓女| 人妻熟女中文字幕av| 国产白浆一区二区在线| 国产专区一线二线三线码 | 区一区一日本高清视频在线观看| 女同一区二区三区在线观看| 国产精品特级毛片一区二区三区| 婷婷丁香社区| 国产午夜av一区二区三区| 国产三级精品三级在线专区| 大屁股人妻女教师撅着屁股| 推油少妇久久99久久99久久| 亚洲乱精品中文字字幕| 亚洲av高清一区二区在线观看 | 久热综合在线亚洲精品| 亚洲国产成人精品激情资源9| 日产一区二区三区的精品| 狠狠色丁香婷婷久久综合| 亚洲欧美日韩中文无线码| 日韩无码尤物视频| 日本在线观看一二三区| 国产精品v片在线观看不卡| 日本不卡视频免费的| 丝袜美腿av免费在线观看| 老鲁夜夜老鲁| 真实单亲乱l仑对白视频| 久久久久久久久国内精品影视| 一区二区高清视频免费在线观看| 国产超碰人人做人人爽av大片 | 2017天天爽夜夜爽精品视频| 免费在线国产不卡视频| 狠狠精品久久久无码中文字幕| 四虎4545www国产精品| 精品国产一区二区三区毛片| 丰满人妻一区二区三区视频| 丁香五香天堂网| 欧美亚洲国产丝袜在线| 91偷拍与自偷拍亚洲精品86| 最新亚洲人成网站在线观看| 免费无码精品黄av电影| 六月丁香婷婷色狠狠久久|