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