KPS-600/20-ESC傳統(tǒng)的嵌入式系統(tǒng)設計大多采用單任務順序機制,應用程序一個無限的大循環(huán),所有的事件都按順序執(zhí)行,與時間相關性較強的事件靠定時中斷來保證,由此帶來系統(tǒng)的穩(wěn)定性、實時性較差;尤其當系統(tǒng)功能較復雜,且對實時性要求較嚴格時,種單任務機制的弱點暴露無遺。
本文引入的KPS-600/20-ESC嵌入式操作系統(tǒng)μC/OS-II是一個多任務的實時內核,主要提供任務管理功能。在實時系統(tǒng)中的多個任務,必須決定這些任務的優(yōu)先級順序,任務調度算法需要動態(tài)為就緒任務的優(yōu)先級排序。為了滿足對實時性要求越來越高的需要,同時避免頻繁改變就緒任務的優(yōu)先級,在分析μC/OS-II源代碼的基礎上,對其調度算法進行改進。
KPS-600/20-ESC概述
μC/OS-II是一個完整的,可移植、可固化、可裁剪的占先式實時多任務內核; 支持56個用戶任務,支持信號量、、消息隊列等常用的進程間通信機制;適用于各種微控制器和微處理器;所有代碼用ANSI C語言編寫,程序的可讀性強,具有良好的可移植性,已被移植到多種處理器架構中,在某些實時性要求嚴格的領域中得到廣泛應用。
1.1 工作原理 KPS-600/20-ESC的核心工作原理是:近似地讓zui高優(yōu)先級的就緒任務處于隕行狀態(tài)。首先初始化MCU,再進行操作系統(tǒng)初始化,主要完成任務控制塊TCB初始化,TCB優(yōu)先級表初始化,TCB鏈表初始化,事件控制塊(ECB)鏈表初始化,空任務的創(chuàng)建等。然后,開始創(chuàng)建新任務,并可在新創(chuàng)建的任務中再創(chuàng)建其他新任務。zui后,訶用OSStart()函數(shù)啟動多任務調度。在多任務調度開始后,啟動時鐘節(jié)拍源開始計時,此節(jié)拍源給系統(tǒng)提供周期性的時鐘中斷信號,實現(xiàn)延時和超時確認。
1.2 任務調度
KPS-600/20-ESC操作系統(tǒng)在下面的情況下進行任務調度:中斷(系統(tǒng)占用的時間片中斷OSTimeTick()、用戶使用的中斷)和調用API函數(shù)(用戶主動調用)。一種是當時鐘中斷來臨時,系統(tǒng)把當前正在執(zhí)行的任務掛起,保護現(xiàn)場,進行中斷處理,判斷有無任務延時到期;若沒有別的任務進入就緒態(tài),則恢復現(xiàn)場繼續(xù)執(zhí)行原任務。另一種調度方式是任務級的調度,即調用API函數(shù)(由用戶主動調用),足通過發(fā)軟中斷命令或依靠處理器在任務執(zhí)行中調度。當沒有任何任務進入就緒態(tài)時,就去執(zhí)行空任務。
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