KPS-600/20-ESC傳統的嵌入式系統設計大多采用單任務順序機制,應用程序一個無限的大循環,所有的事件都按順序執行,與時間相關性較強的事件靠定時中斷來保證,由此帶來系統的穩定性、實時性較差;尤其當系統功能較復雜,且對實時性要求較嚴格時,種單任務機制的弱點暴露無遺。
本文引入的KPS-600/20-ESC嵌入式操作系統μC/OS-II是一個多任務的實時內核,主要提供任務管理功能。在實時系統中的多個任務,必須決定這些任務的優先級順序,任務調度算法需要動態為就緒任務的優先級排序。為了滿足對實時性要求越來越高的需要,同時避免頻繁改變就緒任務的優先級,在分析μC/OS-II源代碼的基礎上,對其調度算法進行改進。
KPS-600/20-ESC概述
μC/OS-II是一個完整的,可移植、可固化、可裁剪的占先式實時多任務內核; 支持56個用戶任務,支持信號量、、消息隊列等常用的進程間通信機制;適用于各種微控制器和微處理器;所有代碼用ANSI C語言編寫,程序的可讀性強,具有良好的可移植性,已被移植到多種處理器架構中,在某些實時性要求嚴格的領域中得到廣泛應用。
1.1 工作原理 KPS-600/20-ESC的核心工作原理是:近似地讓zui高優先級的就緒任務處于隕行狀態。首先初始化MCU,再進行操作系統初始化,主要完成任務控制塊TCB初始化,TCB優先級表初始化,TCB鏈表初始化,事件控制塊(ECB)鏈表初始化,空任務的創建等。然后,開始創建新任務,并可在新創建的任務中再創建其他新任務。zui后,訶用OSStart()函數啟動多任務調度。在多任務調度開始后,啟動時鐘節拍源開始計時,此節拍源給系統提供周期性的時鐘中斷信號,實現延時和超時確認。
1.2 任務調度
KPS-600/20-ESC操作系統在下面的情況下進行任務調度:中斷(系統占用的時間片中斷OSTimeTick()、用戶使用的中斷)和調用API函數(用戶主動調用)。一種是當時鐘中斷來臨時,系統把當前正在執行的任務掛起,保護現場,進行中斷處理,判斷有無任務延時到期;若沒有別的任務進入就緒態,則恢復現場繼續執行原任務。另一種調度方式是任務級的調度,即調用API函數(由用戶主動調用),足通過發軟中斷命令或依靠處理器在任務執行中調度。當沒有任何任務進入就緒態時,就去執行空任務。
LEICA INS2000 ASSY PARTS_SETTING BUTTON (F,A)
UNIT MFC MASS FLOW CONTROLLER UFC-8160 1L Ar
UNIT MFC MASS FLOW CONTROLLER UFC-8160 Ar 5L
DASAN ANALOG BOARD D010131
AERA TC FC-PA7800C-BW MFC MASS FLOW CONTROLLER, 3 SLM NH3
AERA TC FC-PA7810C-BW MFC MASS FLOW CONTROLLER 10 SLM Ar
AERA TC FC-PA7810C-BW MFC MASS FLOW CONTROLLER, 10 SLM N2O
YASKAWA SERVOPACK JUSP-WS05AA,JUSP-WSCB05AA,JUSP-WSCA 05AA,MITSUBISHI PM20CNJ060
MYKROLIS INLI FLOW DIGITAL FLOW CONTROLLER DSPTP1B1 100SCCM CF4(N2 ON LABEL)
MYKROLIS INLI FLOW DIGITAL FLOW CONTROLLER DSPTP1B1 300SCCM CF4(N2 ON LABEL)
KB ELECTRONICS AC MOTOR SPEED CONTROL KBVF-23(9958C)
ADLINK MOTION CONTROL PCI-8164 007 51-12406-0A3 BOARD
YASKAWA SERVOPACK SGDS-02A05A #1
ESI CKA 77288D VME/MMB INTERFACE BOARD #1