分時(shí)操作系統(tǒng)思想在單片機(jī)中的實(shí)現(xiàn)
前言
作為嵌入式系統(tǒng)主控單元——單片機(jī),其軟件往往是一個(gè)微觀的實(shí)時(shí)操作系統(tǒng),且大部分是為某種應(yīng)用而專門設(shè)計(jì)的。系統(tǒng)程序有實(shí)時(shí)過程控制或?qū)崟r(shí)信息處理的能力,要求能夠及時(shí)響應(yīng)隨機(jī)發(fā)生的外部事件并對(duì)該事件做出快速處理。而分時(shí)操作系統(tǒng)卻是把CPU的時(shí)間劃分成長短基本相同的時(shí)間區(qū)間,即“時(shí)間片”,通過操作系統(tǒng)的管理,把這些時(shí)間片依次輪流地分配給各個(gè)用戶使用。如果某個(gè)作業(yè)在時(shí)間片結(jié)束之前,整個(gè)任務(wù)還沒有完成,那么該作業(yè)就被暫停下來,放棄CPU,等待下一輪循環(huán)再繼續(xù)做。此時(shí)CPU又分配給另一個(gè)作業(yè)去使用。由于計(jì)算機(jī)的處理速度很快,只要時(shí)間片的間隔取得適當(dāng),那么一個(gè)用戶作業(yè)從用完分配給它的一個(gè)時(shí)間片到獲得下一個(gè)CPU時(shí)間片,中間有所“停頓”;但用戶察覺不出來,好像整個(gè)系統(tǒng)全由它“獨(dú)占”似的。分時(shí)操作系統(tǒng)主要具有以下3個(gè)特點(diǎn):① 多路性。用戶通過各自的終端,可以同時(shí)使用一個(gè)系統(tǒng)。② 及時(shí)性。用戶提出的各種要求,能在較短或可容忍的時(shí)間內(nèi)得到響應(yīng)和處理。③ 獨(dú)占性。在分時(shí)系統(tǒng)中,雖然允許多個(gè)用戶同時(shí)使用一個(gè)CPU,但用戶之間操作獨(dú)立,互不干涉。
分時(shí)操作系統(tǒng)主要是針對(duì)小型機(jī)以上的計(jì)算機(jī)提出的。一般而言,微處理器(MPU)驅(qū)動(dòng)的通用計(jì)算機(jī),系統(tǒng)設(shè)計(jì)人員對(duì)每一臺(tái)的最終具體應(yīng)用都是不得而知的,因此,在價(jià)格允許的情況下,硬件設(shè)計(jì)務(wù)求 CPU時(shí)鐘盡可能的快;計(jì)算及管理能力盡可能的強(qiáng);程序和數(shù)據(jù)存儲(chǔ)器的容量盡可能的大;各種計(jì)算機(jī)外設(shè)的配接盡可能的詳盡等等,特別是采用分時(shí)操作系統(tǒng)的機(jī)器,因?yàn)槭且粰C(jī)多用戶的管理系統(tǒng),它的要求就更高了。相對(duì)而言,微控制器(MCU)俗稱單片機(jī),是一個(gè)單片集成系統(tǒng),它將這些或那些計(jì)算機(jī)所需的外設(shè),諸如程序和數(shù)據(jù)存儲(chǔ)器、端口以及有關(guān)的子系統(tǒng)集成到一片芯片上。從硬件上,單片機(jī)系統(tǒng)與采用分時(shí)操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)是無法比擬的。但是,在單片機(jī)系統(tǒng)的設(shè)計(jì)中,設(shè)計(jì)人員對(duì)其最終具體應(yīng)用是一清二楚的,它的使用環(huán)境相對(duì)是單一固定的。所控制的過程的可預(yù)見性為分時(shí)系統(tǒng)思想的實(shí)現(xiàn)提供了可能性。具體一點(diǎn)就是:雖然單片機(jī)的CPU速度較低,但其任務(wù)是可預(yù)見的,這樣作業(yè)調(diào)度將變得簡單而無須占用很多的CPU時(shí)間,同時(shí)“時(shí)間片”的設(shè)計(jì)是具體而有針對(duì)性的,因此可變得很有效。
一、單片機(jī)分時(shí)系統(tǒng)的設(shè)計(jì)
單片機(jī)系統(tǒng)往往是一個(gè)嵌入式的控制系統(tǒng),因此目前絕大部分的單片機(jī)系統(tǒng)還是一實(shí)時(shí)系統(tǒng)。能夠真正體現(xiàn)分時(shí)系統(tǒng)的設(shè)計(jì)思想的往往是那些多路重復(fù)檢測控制系統(tǒng)。即便是在這些多路重復(fù)檢測控制系統(tǒng)中,它的實(shí)時(shí)性也是非常重要的。也就是說,在單片機(jī)系統(tǒng)中應(yīng)用了分時(shí)系統(tǒng)設(shè)計(jì)思想,但其及時(shí)性應(yīng)首先進(jìn)行考慮。
1.對(duì)單片機(jī)分時(shí)系統(tǒng)硬件設(shè)計(jì)的建議
隨著單片機(jī)性能的提高,單片機(jī)系統(tǒng)設(shè)計(jì)中的一些硬件功能軟件化是大勢(shì)所趨。但同時(shí),一日千里的芯片技術(shù)也為低成本的硬件完成高性能的功能提供可能。讓一種功能到底是通過硬件實(shí)現(xiàn)還是通過軟件來實(shí)現(xiàn)不能一概而論,只能是通過系統(tǒng)設(shè)計(jì)讓整個(gè)系統(tǒng)的性能價(jià)格比最高才是每個(gè)單片機(jī)系統(tǒng)設(shè)計(jì)者孜孜追求的目標(biāo)。
在單片機(jī)分時(shí)系統(tǒng)的硬件設(shè)計(jì)中,由于對(duì)系統(tǒng)的及時(shí)性的要求不能降低,而大多數(shù)單片機(jī)的處理速度相對(duì)而言是較慢的。因此,在接口硬件的設(shè)計(jì)上應(yīng)采用一些能將信息量保持的器件,如觸發(fā)器、鎖存器。同時(shí)要求這些器件應(yīng)該是三態(tài)門輸出,因?yàn)槭嵌嗦贩謺r(shí)系統(tǒng),當(dāng)CPU沒有訪問到時(shí),器件輸出呈現(xiàn)高阻,以利于總線對(duì)其他器件的訪問。還有,一些用軟件比較費(fèi)時(shí)的操作應(yīng)轉(zhuǎn)給硬件完成。如LED動(dòng)態(tài)顯示,沒有必要一定用intel 8155或intel 8255硬件接口讓軟件時(shí)時(shí)為顯示數(shù)字而煞費(fèi)苦心,完全可以用intel 8279或MAX7218及MAX7219這些可編程外圍器件來完成,使顯示既漂亮又簡單。當(dāng)然,到底哪些功能留給硬件完成,哪些功能留給軟件完成,應(yīng)根據(jù)系統(tǒng)的不同而具體設(shè)計(jì)。總之,應(yīng)總體考慮,追求最高的性能價(jià)格比。
評(píng)論