日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀] 1.前言 近年來,嵌入式發(fā)展迅速,采用51單片機死循環(huán)的事件觸發(fā)編程方式已逐漸不能滿足企業(yè)對產品穩(wěn)定性和安全性的要求。目前,嵌入式系統(tǒng)軟件有VxWork、Linux、WinCE、μC/OS-II等,可出于成本和技

1.前言

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


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

2.AVR微控制器的結構特點

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

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

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

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

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

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

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

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

在該系統(tǒng)中,設計人員能夠通過仔細安排可控的順序,保證一次只處理一個事件。它的可預測性使其成為安全相關的系統(tǒng)的首選。

Kopetz首先提出:使用基于時間觸發(fā)的合作式調度器會使得系統(tǒng)有非常好的可預測性。除可提高可靠性之外,使用該方式有助于減輕CPU的負荷及存儲器的使用量。

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

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

4.1 消息隊列

消息隊列是調度器的核心,它是用戶自定義的數(shù)據類型,包括了每個任務所需要的信息。盡量將其存儲在DATA區(qū),以供快速存取。

對于基于時間觸發(fā)的混合式調度器,使用如下的數(shù)據結構,對于每個任務存儲器的開銷僅為8個字節(jié)。即使是使用32位處理器,每個任務的開銷也僅為14個字節(jié)。

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

該函數(shù)用來產生驅動調度器的定時時標。

本文所選用AVR系列的ATmega128微控制器具有四個定時器(兩個8位,兩個16位),任一個都能用來驅動調度器,權衡考慮選用定時器0.

void SCH_Init_T0(void){逐個刪除各個任務;停止定時器0;設置時間大小函數(shù);使能定時器0方式;啟動定時器0;}

注:在此期間不可開啟總中斷,即:

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

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

4.3 中斷服務程序

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

4.4 調度器任務添加函數(shù)

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

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

4.5 調度函數(shù)

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

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

void SCH_Dispatch_Tasks(void){定義靜態(tài)變量i;如果運行標志位大于0,則執(zhí)行該任務;該標志位清零;如果是單次任務,則將其刪除;}

4.6 調度器任務刪除函數(shù)

void SCH_Delete_Task(const uint8task_id){定義 靜態(tài)返回值;若指針函數(shù)為空,返回空閑代碼;否則,對其延遲、周期、狀態(tài)等變量清零;返回代碼;}

5.應用實驗

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

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

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

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

6.結論

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


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉