資料介紹
1.引言
近年來,嵌入式發展迅速,采用51單片機死循環的事件觸發編程方式已逐漸不能滿足企業對產品穩定性和安全性的要求。目前,嵌入式系統軟件有VxWork、Linux、WinCE、μC/OS-II等,可出于成本和技術上的考慮,微控制器往往不會選取其進行設計。在實際應用中,往往會面臨同時應付多外設、多任務的情況,則對它們的相互調度必不可少。時間觸發嵌入式系統就是這樣的簡單實用的操作系統。
本文設計了基于AVR微控制器的時間觸發多任務調度器并應用于實際。該調度器使用傳遞消息(message)的方式使得微控制器在多個任務及設備間切換。
2.AVR微控制器的結構特點
AVR是目前使用以該系列的ATmega128為例說明,它采用哈佛結構,RISC指令集、低功耗、片上資源豐富的特點,極大簡化了外圍電路,使系統更加穩定可靠。其特點為嵌入式系統設計提供了良好的硬件保證。
3.嵌入式兩種觸發方式的對比
在嵌入式系統中,通常采用兩種本質上不同的調度方式:事件觸發和時間觸發。事件觸發方式往往使用多級中斷來實現,其發生時間具有隨機性;而時間觸發方式由一個全局時鐘驅動,系統的行為在功能與時間上都是確定的,即具有可預測性。
3.1 事件觸發方式存在的問題
嵌入式系統開發人員有一種中斷事件絕不會丟失的錯誤觀念,這往往給開發的產品帶來災難性的后果。中斷事件丟失在實際應用中是一個不爭的事實,產生的原因有多方面,但無外乎內因和外因兩種。外因指嵌入式系統外產生的原因,這里主要指中斷源信號丟失或過于頻繁;而內因又可分為硬件原因和軟件原因,硬件原因主要由所用嵌入式器件的中斷嵌套能力所致,軟件原因主要由開發者編程時對任務中斷優先級設置錯誤以及任務處理不當所致。
例如,中斷0是一個高優先級中斷,而中斷1是一個低優先級中斷,則由高優先級中斷激活的中斷服務程序不能被低優先級的中斷打斷。于是,對第二個中斷的響應將被延遲,甚至在一些情況下它有被完全忽略的可能。
如果多個中斷源可能在“隨機的”時間間隔產生中斷,則中斷響應可能被遺漏。實際上,在同時有幾個有效的中斷源的情況下,幾乎不可能創建程序代碼來正確地處理所有可能的中斷組合。并且同時處理多個事件不但增加了系統復雜性,而且降低了系統在所有情況下的行為預測能力。至于使用效率,Metzner討論并得出結論:一個包含27個任務、采用RM調度算法的事件觸發系統,CPU的實際利用率僅為18%.
3.2 時間觸發方式的優勢
在該系統中,設計人員能夠通過仔細安排可控的順序,保證一次只處理一個事件。它的可預測性使其成為安全相關的系統的首選。
Kopetz首先提出:使用基于時間觸發的合作式調度器會使得系統有非常好的可預測性。除可提高可靠性之外,使用該方式有助于減輕CPU的負荷及存儲器的使用量。
4.時間觸發嵌入式系統的設計
在該調度器中,定時器的設置被分離出來,并使之不依賴于編譯器的數據類型以及處理器的位數,通過修改該部分可以輕松移植到多種硬件平臺。系統整體方框圖如圖1所示:
4.1 消息隊列
消息隊列是調度器的核心,它是用戶自定義的數據類型,包括了每個任務所需要的信息。盡量將其存儲在DATA區,以供快速存取。
對于基于時間觸發的混合式調度器,使用如下的數據結構,對于每個任務存儲器的開銷僅為8個字節。即使是使用32位處理器,每個任務的開銷也僅為14個字節。
4.2 調度器定時器初始化函數
該函數用來產生驅動調度器的定時時標。
本文所選用AVR系列的ATmega128微控制器具有四個定時器(兩個8位,兩個16位),任一個都能用來驅動調度器,權衡考慮選用定時器0.
void SCH_Init_T0(void){逐個刪除各個任務;停止定時器0;設置時間大小函數;使能定時器0方式;啟動定時器0;}
注:在此期間不可開啟總中斷,即:
SREG=0×80或SEI();調度器必須先設定一個默認的時間片,這并不是件簡單的事。時間片過長會導致系統對交互行為的響應表現欠佳;時間片太短又會明顯地增大調度器處理耗時,而留給任務運行的時間卻很短。
根據筆者經驗,一個較為可取的時間片是略大于一次典型的交互所需要的時間,使大多數進程在一個時間片內完成。經反復嘗試,時間片選擇在1~5ms之間執行效率較高,這樣既可滿足響應速度的要求又能把任務執行的時間降到最低。該時間與任務個數和任務運行時間均有關,具體大小視情況而定。
4.3 中斷服務程序
建議該函數由CTC方式激活,當某任務需要運行時,使之處于就緒態等待被執行。該函數內容由具體任務而定。
近年來,嵌入式發展迅速,采用51單片機死循環的事件觸發編程方式已逐漸不能滿足企業對產品穩定性和安全性的要求。目前,嵌入式系統軟件有VxWork、Linux、WinCE、μC/OS-II等,可出于成本和技術上的考慮,微控制器往往不會選取其進行設計。在實際應用中,往往會面臨同時應付多外設、多任務的情況,則對它們的相互調度必不可少。時間觸發嵌入式系統就是這樣的簡單實用的操作系統。
本文設計了基于AVR微控制器的時間觸發多任務調度器并應用于實際。該調度器使用傳遞消息(message)的方式使得微控制器在多個任務及設備間切換。
2.AVR微控制器的結構特點
AVR是目前使用以該系列的ATmega128為例說明,它采用哈佛結構,RISC指令集、低功耗、片上資源豐富的特點,極大簡化了外圍電路,使系統更加穩定可靠。其特點為嵌入式系統設計提供了良好的硬件保證。
3.嵌入式兩種觸發方式的對比
在嵌入式系統中,通常采用兩種本質上不同的調度方式:事件觸發和時間觸發。事件觸發方式往往使用多級中斷來實現,其發生時間具有隨機性;而時間觸發方式由一個全局時鐘驅動,系統的行為在功能與時間上都是確定的,即具有可預測性。
3.1 事件觸發方式存在的問題
嵌入式系統開發人員有一種中斷事件絕不會丟失的錯誤觀念,這往往給開發的產品帶來災難性的后果。中斷事件丟失在實際應用中是一個不爭的事實,產生的原因有多方面,但無外乎內因和外因兩種。外因指嵌入式系統外產生的原因,這里主要指中斷源信號丟失或過于頻繁;而內因又可分為硬件原因和軟件原因,硬件原因主要由所用嵌入式器件的中斷嵌套能力所致,軟件原因主要由開發者編程時對任務中斷優先級設置錯誤以及任務處理不當所致。
例如,中斷0是一個高優先級中斷,而中斷1是一個低優先級中斷,則由高優先級中斷激活的中斷服務程序不能被低優先級的中斷打斷。于是,對第二個中斷的響應將被延遲,甚至在一些情況下它有被完全忽略的可能。
如果多個中斷源可能在“隨機的”時間間隔產生中斷,則中斷響應可能被遺漏。實際上,在同時有幾個有效的中斷源的情況下,幾乎不可能創建程序代碼來正確地處理所有可能的中斷組合。并且同時處理多個事件不但增加了系統復雜性,而且降低了系統在所有情況下的行為預測能力。至于使用效率,Metzner討論并得出結論:一個包含27個任務、采用RM調度算法的事件觸發系統,CPU的實際利用率僅為18%.
3.2 時間觸發方式的優勢
在該系統中,設計人員能夠通過仔細安排可控的順序,保證一次只處理一個事件。它的可預測性使其成為安全相關的系統的首選。
Kopetz首先提出:使用基于時間觸發的合作式調度器會使得系統有非常好的可預測性。除可提高可靠性之外,使用該方式有助于減輕CPU的負荷及存儲器的使用量。
4.時間觸發嵌入式系統的設計
在該調度器中,定時器的設置被分離出來,并使之不依賴于編譯器的數據類型以及處理器的位數,通過修改該部分可以輕松移植到多種硬件平臺。系統整體方框圖如圖1所示:
4.1 消息隊列
消息隊列是調度器的核心,它是用戶自定義的數據類型,包括了每個任務所需要的信息。盡量將其存儲在DATA區,以供快速存取。
對于基于時間觸發的混合式調度器,使用如下的數據結構,對于每個任務存儲器的開銷僅為8個字節。即使是使用32位處理器,每個任務的開銷也僅為14個字節。
4.2 調度器定時器初始化函數
該函數用來產生驅動調度器的定時時標。
本文所選用AVR系列的ATmega128微控制器具有四個定時器(兩個8位,兩個16位),任一個都能用來驅動調度器,權衡考慮選用定時器0.
void SCH_Init_T0(void){逐個刪除各個任務;停止定時器0;設置時間大小函數;使能定時器0方式;啟動定時器0;}
注:在此期間不可開啟總中斷,即:
SREG=0×80或SEI();調度器必須先設定一個默認的時間片,這并不是件簡單的事。時間片過長會導致系統對交互行為的響應表現欠佳;時間片太短又會明顯地增大調度器處理耗時,而留給任務運行的時間卻很短。
根據筆者經驗,一個較為可取的時間片是略大于一次典型的交互所需要的時間,使大多數進程在一個時間片內完成。經反復嘗試,時間片選擇在1~5ms之間執行效率較高,這樣既可滿足響應速度的要求又能把任務執行的時間降到最低。該時間與任務個數和任務運行時間均有關,具體大小視情況而定。
4.3 中斷服務程序
建議該函數由CTC方式激活,當某任務需要運行時,使之處于就緒態等待被執行。該函數內容由具體任務而定。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于32位ARM嵌入式系統的通信電源參數采集系統設計方案
- 嵌入式系統系列叢書-時間觸發嵌入式系統設計模式 0次下載
- 嵌入式系統定義
- 無人機中嵌入式系統方案的設計
- 嵌入式發動機活塞溫度測試系統設計方案 22次下載
- 基于ARM的嵌入式Web服務器設計方案 20次下載
- 如何使用UNIO總線的實現嵌入式系統的設計方案
- 如何使用ARM進行嵌入式系統的設計與實現 14次下載
- 基于8051的時間觸發嵌入式系統的設計 17次下載
- 嵌入式軟件技術應用設計方案匯總 4次下載
- 嵌入式視頻系統的設計方案匯總 0次下載
- 利用時間觸發式系統開發嵌入式產品 13次下載
- 基于SMV算法的嵌入式系統設計與實現
- 采用FPGA的嵌入式系統設計方案
- 時間觸發嵌入式系統設計模式(使用8051微控制器開發可靠應用
- 嵌入式fpga是什么意思 992次閱讀
- 什么是嵌入式系統?嵌入式系統的具體應用 2096次閱讀
- 嵌入式系統的全面解析 3146次閱讀
- 如何實現嵌入式系統遠程調試 5077次閱讀
- LabView開發嵌入式系統的的挑戰及應用解決方案 1718次閱讀
- 基于時間觸發多任務調度器的嵌入式系統設計與應用 1958次閱讀
- 基于μC/OS嵌入式操作系統的嵌入式數據管理設計 1178次閱讀
- 關于嵌入式系統以及嵌入式平臺下的學科分工詳解 1855次閱讀
- 基于嵌入式環境的WiFi通信設計方案詳解 5593次閱讀
- 嵌入式系統的特點大匯總 5743次閱讀
- 液晶顯示屏設計方案:基于Nios嵌入式軟核處理器 1081次閱讀
- 嵌入式系統有哪些部分組成_嵌入式系統的應用領域 3.3w次閱讀
- 典型的嵌入式系統設計 2650次閱讀
- 一種嵌入式Web服務器的設計方案 4151次閱讀
- 基于ARM的嵌入式無線視頻采集系統設計 1809次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多