<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 分時(shí)操作系統思想在單片機中的具體應用

分時(shí)操作系統思想在單片機中的具體應用

作者:李興建,李琨,馬文玲 時(shí)間:2003-06-12 來(lái)源:電子設計應用 收藏
摘要:本文提出基于分時(shí)操作系統思想的單片機系統設計方案,用串行通信循環(huán)監測單片機,解決了傳統方案中實(shí)時(shí)性差的問(wèn)題。

關(guān)鍵詞:;

隨著(zhù)單片機技術(shù)的發(fā)展,單片機開(kāi)發(fā)的理念也在不斷更新:逐步采用高性能的16/32位單片機,采用C、JAVA等高級語(yǔ)言編程,采用RTOS及其平臺進(jìn)行開(kāi)發(fā)已經(jīng)成為一種趨勢。

分時(shí)操作系統概述
分時(shí)操作系統把CPU的時(shí)間劃分成長(cháng)短基本相同的時(shí)間區間,即"時(shí)間片",操作系統輪流分配給各個(gè)作業(yè)使用。某個(gè)作業(yè)在時(shí)間片結束完成,該作業(yè)將被掛起,等待下一輪循環(huán)再繼續做。分時(shí)操作系統主要具有以下3個(gè)特點(diǎn):多路性,用戶(hù)通過(guò)各自的終端,可以同時(shí)使用一個(gè)系統。及時(shí)性,用戶(hù)提出的各種要求,能在較短或可容忍的時(shí)間內得到響應和處理。獨占性,在中,雖然允許多個(gè)用戶(hù)同時(shí)使用一個(gè)CPU,但用戶(hù)之間操作獨立,互不干涉。
分時(shí)操作系統主要是針對小型機以上的計算機提出的。一般而言,MPU驅動(dòng)的通用計算機,系統設計人員對每一臺的最終具體應用都是不得而知的,因此,在價(jià)格允許的情況下,硬件設計務(wù)求CPU時(shí)鐘盡可能的快;計算及管理能力盡可能的強;程序和數據存儲器的容量盡可能的大;各種計算機外設的配接盡可能的詳盡等等。特別是采用分時(shí)操作系統的機器,因為是一機多用戶(hù)的管理系統,它的要求就更高了。相對而言,MCU是一個(gè)單片集成系統,它將這些計算機所需的外設,諸如程序和數據存儲器、端口以及有關(guān)的子系統集成到一片芯片上。從硬件上,單片機系統與采用分時(shí)操作系統的計算機系統是無(wú)法比擬的。但是,在單片機系統的設計中,設計人員清楚其最終具體應用,它的使用環(huán)境相對是單一固定的。所控制過(guò)程的可預見(jiàn)性為思想的實(shí)現提供了可能性。具體就是:雖然單片機的CPU速度較低,但其任務(wù)是可預見(jiàn)的,這樣作業(yè)調度將變得簡(jiǎn)單而無(wú)須占用很多的CPU時(shí)間,同時(shí)“時(shí)間片”的設計是具體而有針對性的,因此可變得很有效。

圖1 漏電流智能監測系統框圖

分時(shí)系統的應用實(shí)例
系統硬件及原理
本文設計了一個(gè)涉及單片機通信以及顯示的漏電流智能監測系統,系統框圖如圖1所示。
本系統用在低壓電網(wǎng)中負責監測線(xiàn)路的漏電流,系統中智能采集單元負責采集線(xiàn)路的漏電流,通過(guò)串行總線(xiàn)與主控單片機通信,上傳線(xiàn)路參數值。主控單片機輪詢(xún)各線(xiàn)路,實(shí)時(shí)顯示漏電流值,當線(xiàn)路漏電流超過(guò)設定值時(shí),在EEPROM中記錄漏電流的各項參數和發(fā)生的時(shí)刻,通過(guò)鍵盤(pán)顯示可以查詢(xún)以往線(xiàn)路的情況。由圖1可知:各智能采集模塊共用一個(gè)實(shí)時(shí)時(shí)鐘,因為不管從成本的角度還是從方便角度考慮,都不可能給每個(gè)采集模塊配置一個(gè)實(shí)時(shí)時(shí)鐘。采用傳統的編程方法時(shí)存在一個(gè)問(wèn)題:當智能采集模塊有多路時(shí),數據上傳后需要顯示該路數據,顯示時(shí)間不宜太短,下一路數據的顯示便出現延遲。線(xiàn)路的路數越多,編號靠后的線(xiàn)路的時(shí)間延遲越嚴重,系統的實(shí)時(shí)性變得很差。因此傳統的編程方法不符合實(shí)際情況,本文設計了分時(shí)操作系統解決此問(wèn)題。

圖2暫存RAM分配圖

分時(shí)操作的實(shí)現
系統設計中首先劃分了一塊暫存參數的RAM,RAM區的大小跟需要監測線(xiàn)路的多少有關(guān),其分配情況如圖2所示,每一路參數都設置多組參數存貯,防止參數未讀取就被刷新。每一組的參數包括漏電流大小、漏電標志位、線(xiàn)路的編號和發(fā)生的時(shí)間。

圖3 顯示任務(wù)流程圖

圖4 定時(shí)器中斷流程圖

要合理的實(shí)現單片機分時(shí)系統必需要有合理的調度機制,完善的調度機制由調度指針和調度表組成。系統的調度就是“路任務(wù)”的調度,在系統設計中按各線(xiàn)路智能采集模塊把系統劃分為N個(gè)“路任務(wù)”, “路任務(wù)”的執行順序固定不變,從第一路任務(wù)到第N路,再從頭返回第一路,如此循環(huán)往復。相對應的"路"調度指針還應構造"路"調度表。"路"調度表每一項表示各"路"程序入口地址及跳轉指令。以MCS-51單片機為例,采用AJMP addr11作為每一項的內容,則調度表的每一表項占2個(gè)字節;當程序較長(cháng)超過(guò)2K字節,則采用LJMP addr16作為每一項內容,占3個(gè)字節。所設計的單片機系統共有多少"路任務(wù)",該調度表就有多少項數。調度指針為1個(gè)字節的整數變量。調度指針與調度表的聯(lián)系是通過(guò)指令JMP @A+DPTR實(shí)現的。DPTR中是調度表的首地址。累加器A中的內容是調度指針的整數倍,若表項內容是AJMP addr11,則A的值為調度指針乘2;若表項內容是LJMP addr16,則A的值為調度指針乘3。
“路任務(wù)”的職責就是與智能采集模塊的CPU通信,收集線(xiàn)路的漏電參數的值,儲存在暫存RAM中,“路任務(wù)”中共同的部分:從串口讀取數據,安排在定時(shí)中斷中實(shí)現,因為各線(xiàn)路需要上傳的字節數很少,為三個(gè)字節(漏電流大小占用2個(gè),超限標志占用1個(gè)字節),因此在波特率9600的情況下,通信時(shí)間極短(3/960<4ms),安排在定時(shí)中斷中實(shí)現比較合理。這樣“路任務(wù)”只需要設計出訪(fǎng)問(wèn)暫存RAM的方法,本例中在每路暫存區的開(kāi)頭定義訪(fǎng)問(wèn)指針,“路任務(wù)”每次訪(fǎng)問(wèn)時(shí)先讀取該值,然后把數據寫(xiě)入相應的RAM區,返回時(shí)將訪(fǎng)問(wèn)指針指向下次要訪(fǎng)問(wèn)的地址,到了末尾地址時(shí)重新指向RAM的開(kāi)頭。因為需要上傳和存貯的數據很少,每次任務(wù)(包括通信、讀取時(shí)鐘的值和存取數據)的執行非???,在ms級別,不超過(guò)10ms。為了使每次任務(wù)有充分時(shí)間執行,留下一定的裕度設為20ms,并且把時(shí)間片設置成跟一次“路任務(wù)”的時(shí)間相同。每次時(shí)間片執行完一次“路任務(wù)”,不需要在任務(wù)切換時(shí)保存寄存器的值,也不需要給每個(gè)任務(wù)分配特定的RAM單元使用,因此占用系統的資源很少。每一次“路任務(wù)”負責查詢(xún)線(xiàn)路的參數,查詢(xún)到后讀取實(shí)時(shí)時(shí)鐘的值,每次任務(wù)的時(shí)間都在ms級,因此即使要監測的線(xiàn)路有多條,延遲的時(shí)間也在可以忽略的范圍內(按照時(shí)鐘1s的時(shí)間步長(cháng)計算,一次任務(wù)20ms,可以設置1000ms/20ms=50條線(xiàn)路,如果監測線(xiàn)路≤50,最后延遲的時(shí)間也在1s之內,比傳統方法延遲100s有了質(zhì)的提高)。
在完成線(xiàn)路參數讀取的“路任務(wù)”之外,設置了一個(gè)“顯示任務(wù)”,采用LED顯示,顯示數據的時(shí)間不能太短,因此要考慮延時(shí)刷新顯示數據。采用軟件延時(shí)會(huì )占用CPU時(shí)間,使系統實(shí)時(shí)性變差,因此該任務(wù)交給硬件完成。設計中采用了Intel8279芯片,Intel8279具有主動(dòng)管理顯示存貯器輸出和同步掃描信號的能力。對用戶(hù)而言,只需編制寫(xiě)入顯示信息的程序,顯示任務(wù)執行時(shí),從暫存RAM中取數據并賦給Intel8279相應的顯示RAM單元,只要顯示RAM的值不變,LED的顯示就不會(huì )改變。因此“顯示任務(wù)"就變成了寫(xiě)Intel 8279的顯示RAM,在一次時(shí)間片內足夠完成?!帮@示任務(wù)"的特殊之處在于每隔兩秒執行一次,采用如下措施實(shí)現:在定時(shí)器中斷中定義一個(gè)計數器,每次定時(shí)器中斷后,在定時(shí)服務(wù)子程序中計數器自動(dòng)加1。如果計數器達到相應的數值(本例中時(shí)間片=20ms,延時(shí)2s需要計數I=2000ms/20ms=100),則調用“顯示任務(wù)”,計時(shí)器清0,否則調用“路任務(wù)”,計數器自動(dòng)加一。延時(shí)都采用這種方式,延時(shí)值即為計數器的值乘以20ms。這樣任何延時(shí)都不占用CPU機時(shí)?!帮@示任務(wù)”流程如圖3所示。
定時(shí)中斷定義為20ms,每次“任務(wù)“都由定時(shí)中斷負責開(kāi)啟,也就是每次時(shí)間片都是由定時(shí)終端負責分配的。定時(shí)器中斷流程如圖4所示。
分時(shí)操作系統最大的優(yōu)點(diǎn)是為本系統提供了很強的,因而程序具有很強的抗干擾能力。時(shí)間片的時(shí)間可以定義的很低,一些用軟件比較費時(shí)的操作轉給硬件完成,因此對于程序來(lái)說(shuō)還提供了較好的實(shí)時(shí)性。

結語(yǔ)
分時(shí)系統的設計思想對于多路重復控制的系統具有很好的實(shí)用性。本例將分時(shí)操作系統的思想引入單片機系統,并利用該方法實(shí)現了多路監測任務(wù),提高了系統的性能價(jià)格比,滿(mǎn)足了項目的一些特殊要求,在實(shí)際應用中獲得成功。本例中的一些應用只對本系統設計,時(shí)間片設置的時(shí)間太長(cháng),任務(wù)的執行定義在一次時(shí)間片內,對于本系統來(lái)說(shuō)簡(jiǎn)化了編程。如果把時(shí)間片設置的更低,并且每次任務(wù)劃出特定的內存作為任務(wù)堆棧,任務(wù)在一次時(shí)間片內不能執行完時(shí),壓棧處理。這樣可以更好的體現分時(shí)操作系統的原理,可以實(shí)現更高需求的應用。
參考文獻
1 蔡建平. 關(guān)于嵌入式應用開(kāi)發(fā)技術(shù)[J], 單片機與嵌入式系統應用,2001,[1]
2 李大友主編. 計算機操作系統[M].北京:機械工業(yè)出版社,1998
3陸惠恩,陸陪恩. 軟件工程[M].北京:電子工業(yè)出版社,1997



關(guān)鍵詞: 分時(shí)系統 可靠性

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>