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