資料介紹
隨著嵌入式技術的發展,實時操作系統RTOS(Real Time Operating System)被越來越多地應用在嵌入式系統中,如:航空航天、工業控制、汽車電子和核電站建設等眾多領域。對于現有基于軟件實現的實時操作系統,單純依靠改進調度算法已不能使其實時性有更大的提高。如果采用硬件邏輯實現RTOS中的任務調度、中斷處理和定時器管理等功能,則可使其實時性和確定性顯著提高。因為硬件邏輯獨立于處理器運行,不占用處理器的處理時間,所節省的時間用于執行任務程序,從而提高了任務集合的可調度性和實時性。本文基于“外部處理器+FPGA”的硬件平臺結構[1],在FPGA上設計和實現了硬件實時操作系統。
1 硬件實時操作系統的結構和運行原理
硬件實時操作系統能實現典型實時操作系統的各種功能模塊,包括:任務調度內核、中斷管理模塊、定時器模塊、資源管理模塊和內存管理模塊等[2]。為了實現穩定可靠的系統,本文采用逐步演進的方法。首先實現由任務調度內核(也稱作硬件調度內核)、中斷管理、定時器管理和接口軟件構成的最小系統,然后逐步增加其他功能模塊。
硬件RTOS的結構如圖1所示。調度內核是系統的核心,負責任務的調度管理;中斷管理模塊負責管理外部中斷;定時器模塊負責任務延時和周期執行。硬件RTOS的數據通過接口總線與外部系統通信[3]。
任務調度內核使用FPGA的片內寄存器實現任務控制塊TCB(Task Control Block)隊列(簡稱任務隊列)。所有未執行任務放在等待隊列和就緒隊列中。等待隊列中的任務在條件滿足時將變為就緒任務。本文中,等待任務主要等待定時器時間和中斷到達。任務調度內核能在每個調度時機計算出優先級最高的就緒任務。調度內核采用搶占式調度機制,每個調度時機輸出優先級最高的就緒任務。
中斷模塊接管處理器除通知中斷以外的所有外部中斷,中斷服務程序稱作“中斷處理任務”,與普通任務一樣被硬件內核調度。外部中斷到來時,觸發硬件內核的調度時機,保證中斷任務的實時執行。此時,軟件實時操作系統的中斷嵌套已經轉換為處理器中任務的搶占,高優先級的中斷任務可以搶占低優先級任務。
定時器管理模塊實現任務的延時和周期運行,在設定任務周期或延時時間后,每當設定時間到時便會使對應任務就緒,并觸發硬件內核的調度時機,由后者執行一次任務調度。
接口總線硬件實現處理器與硬件RTOS之間的數據傳輸和事件通知。接口軟件從功能上分為兩類:(1)系統API。被應用程序調用,能通過接口總線向硬件RTOS發送命令。硬件RTOS收到命令后,解析數據,執行相應操作。(2)通知中斷服務程序。硬件RTOS進行一次任務調度后,如果發現新“選出”的最高優先級就緒任務與當前處理器正在執行的任務不同,則需要進行現場切換。硬件調度內核將利用通知中斷告知處理器該就緒任務的ID和堆棧地址,觸發后者執行中斷服務程序,以執行現場切換。
任務存在阻塞(S0)、就緒(S1)和運行(S2)三個狀態,定時器存在停止(T0)、運行(T1)兩個狀態,中斷模塊存在無效(I0)、有效(I1)兩個狀態。圖2描述了最小系統各模塊的運行狀態。
2 系統設計與實現
本文選用ARM9系列的處理器S3C2410和Actel公司的FPGA芯片APA075,用后者實現硬件實時操作系統,調度在處理器上執行的任務。
2.1 任務調度內核的設計實現
實時操作系統的核心是任務調度內核,其主要功能是根據調度算法,在每個調度時機確定下一個將要執行的任務,并適時進行現場切換。為此,調度內核需要維護一系列的任務隊列(如就緒任務隊列和等待任務隊列),并在每個調度時機,根據優先級重新排列就緒隊列,以計算出優先級最高的就緒任務。
合理的任務控制塊是實現硬件調度內核的關鍵,應能根據調度算法分配優先級,并利于優先級比較,而且能夠索引最終結果。根據上述需求,設計了如圖3所示的任務控制塊結構。其中ID為任務號,State為任務狀態,Prio為任務優先級,SP_End為任務堆棧終止地址,Run_Time 為任務起始運行時間,End_Time為任務結束運行時間。起始和截止時間能根據特定算法分配任務的優先級。Delay_Counter為任務延時計數器,Timer_Counter為周期任務分頻計數器,Int_Number為中斷號。
1 硬件實時操作系統的結構和運行原理
硬件實時操作系統能實現典型實時操作系統的各種功能模塊,包括:任務調度內核、中斷管理模塊、定時器模塊、資源管理模塊和內存管理模塊等[2]。為了實現穩定可靠的系統,本文采用逐步演進的方法。首先實現由任務調度內核(也稱作硬件調度內核)、中斷管理、定時器管理和接口軟件構成的最小系統,然后逐步增加其他功能模塊。
硬件RTOS的結構如圖1所示。調度內核是系統的核心,負責任務的調度管理;中斷管理模塊負責管理外部中斷;定時器模塊負責任務延時和周期執行。硬件RTOS的數據通過接口總線與外部系統通信[3]。
任務調度內核使用FPGA的片內寄存器實現任務控制塊TCB(Task Control Block)隊列(簡稱任務隊列)。所有未執行任務放在等待隊列和就緒隊列中。等待隊列中的任務在條件滿足時將變為就緒任務。本文中,等待任務主要等待定時器時間和中斷到達。任務調度內核能在每個調度時機計算出優先級最高的就緒任務。調度內核采用搶占式調度機制,每個調度時機輸出優先級最高的就緒任務。
中斷模塊接管處理器除通知中斷以外的所有外部中斷,中斷服務程序稱作“中斷處理任務”,與普通任務一樣被硬件內核調度。外部中斷到來時,觸發硬件內核的調度時機,保證中斷任務的實時執行。此時,軟件實時操作系統的中斷嵌套已經轉換為處理器中任務的搶占,高優先級的中斷任務可以搶占低優先級任務。
定時器管理模塊實現任務的延時和周期運行,在設定任務周期或延時時間后,每當設定時間到時便會使對應任務就緒,并觸發硬件內核的調度時機,由后者執行一次任務調度。
接口總線硬件實現處理器與硬件RTOS之間的數據傳輸和事件通知。接口軟件從功能上分為兩類:(1)系統API。被應用程序調用,能通過接口總線向硬件RTOS發送命令。硬件RTOS收到命令后,解析數據,執行相應操作。(2)通知中斷服務程序。硬件RTOS進行一次任務調度后,如果發現新“選出”的最高優先級就緒任務與當前處理器正在執行的任務不同,則需要進行現場切換。硬件調度內核將利用通知中斷告知處理器該就緒任務的ID和堆棧地址,觸發后者執行中斷服務程序,以執行現場切換。
任務存在阻塞(S0)、就緒(S1)和運行(S2)三個狀態,定時器存在停止(T0)、運行(T1)兩個狀態,中斷模塊存在無效(I0)、有效(I1)兩個狀態。圖2描述了最小系統各模塊的運行狀態。
2 系統設計與實現
本文選用ARM9系列的處理器S3C2410和Actel公司的FPGA芯片APA075,用后者實現硬件實時操作系統,調度在處理器上執行的任務。
2.1 任務調度內核的設計實現
實時操作系統的核心是任務調度內核,其主要功能是根據調度算法,在每個調度時機確定下一個將要執行的任務,并適時進行現場切換。為此,調度內核需要維護一系列的任務隊列(如就緒任務隊列和等待任務隊列),并在每個調度時機,根據優先級重新排列就緒隊列,以計算出優先級最高的就緒任務。
合理的任務控制塊是實現硬件調度內核的關鍵,應能根據調度算法分配優先級,并利于優先級比較,而且能夠索引最終結果。根據上述需求,設計了如圖3所示的任務控制塊結構。其中ID為任務號,State為任務狀態,Prio為任務優先級,SP_End為任務堆棧終止地址,Run_Time 為任務起始運行時間,End_Time為任務結束運行時間。起始和截止時間能根據特定算法分配任務的優先級。Delay_Counter為任務延時計數器,Timer_Counter為周期任務分頻計數器,Int_Number為中斷號。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 合宙新一代物聯網開源操作系統LuatOS,開啟行業嵌入式開發新生態!
- ucosII嵌入式實時操作系統實驗
- DSP硬實時操作系統用戶手冊下載 30次下載
- 安全關鍵的嵌入式實時操作系統內核 5次下載
- MTK嵌入式實時操作系統的硬件培訓教程免費下載 5次下載
- 如何使用物聯網操作系統Zephyr實現“連續集成”開源軟件的詳細說明
- TIDSP/BIOSv6.35實時操作系統用戶指南 4次下載
- 硬件實時操作系統信號量管理的設計解析 0次下載
- 基于QNX實時操作系統及應用分析 12次下載
- 如何選擇實時操作系統 0次下載
- 高效實時操作系統設計 26次下載
- BenOS實時操作系統解密 5次下載
- 實時操作系統RTEMS結構研究 78次下載
- 實時操作系統用于嵌入式應用系統的設計 42次下載
- 嵌入式實時操作系統教程
- 深度解析全球操作系統格局 671次閱讀
- 詳解實時操作系統和非實時操作系統 3500次閱讀
- 什么是實時操作系統(RTOS) 4328次閱讀
- 基于優先級調度的嵌入式實時操作系統內核詳解(下) 754次閱讀
- FreeRTOS:一個迷你的實時操作系統內核 828次閱讀
- Linux是實時系統還是分時操作系統? 1414次閱讀
- 米爾科技嵌入式實時操作系統介紹 2179次閱讀
- 基于μC/OS-II實時操作系統的硬件加速設計 993次閱讀
- 對實時操作系統特性的討論 5039次閱讀
- 嵌入式操作系統是什么_嵌入式操作系統有哪些 2w次閱讀
- 如何安裝實時操作系統RTOS 6104次閱讀
- 基于FreeRTOS的嵌入式實時操作系統的原理和實現 6562次閱讀
- 概述及匯總ARM的嵌入式操作系統 2951次閱讀
- 如何為遠程醫療設備選擇合適的實時操作系統? 2994次閱讀
- 基于CORBA技術的嵌入式控制器設計 1659次閱讀
下載排行
本周
- 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次下載 | 免費
評論
查看更多