<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è) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM9和μC/OSII的多頻道數據采集系統的智能化設計

基于A(yíng)RM9和μC/OSII的多頻道數據采集系統的智能化設計

作者: 時(shí)間:2012-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏


圖3 各個(gè)頻段內部命令

3.1 任務(wù)優(yōu)先級設置及采樣任務(wù)優(yōu)先級動(dòng)態(tài)調度

μC/OSII操作系統是基于優(yōu)先級的搶占式操作系統,所有任務(wù)必須有各自獨立且唯一的優(yōu)先級[1]。命令掃描和數據顯示分別設置為最高優(yōu)先級和最低優(yōu)先級。掃描函數的最高優(yōu)先級可以確保隨時(shí)對用戶(hù)命令進(jìn)行響應,而顯示任務(wù)由于其運行速速慢,將其設置為最低優(yōu)先級。只要系統設計合理,適當避免低優(yōu)先級任務(wù)的饑餓現象,即可實(shí)現將用戶(hù)有效信息顯示輸出。

內部?jì)?yōu)先級設置規則是,低頻段、中頻段、高頻段3個(gè)頻段的任務(wù)之間優(yōu)先級依次遞減。低頻段的采樣周期明顯比高頻段長(cháng),在低頻段數據采集的空閑時(shí)間里系統可以順利地將CPU使用權切換給其他任務(wù),使其他任務(wù)得到CPU使用權并執行。每個(gè)頻段內部的各個(gè)任務(wù)的優(yōu)先級從采樣到數據存儲、數據處理、數據提交依次遞減。
為了使得整個(gè)系統實(shí)現優(yōu)先級動(dòng)態(tài)調度也可以修改其他采樣參數,在軟件設計時(shí)將所有頻段采樣任務(wù)的優(yōu)先級、采樣周期以全局變量的形式在進(jìn)入操作系統之前進(jìn)行設置,并將其定義為volatile格式分配獨立的變量存儲地址。而后設立獨立的掃描任務(wù),來(lái)專(zhuān)門(mén)完成這些參數的判斷、修改、存儲和動(dòng)態(tài)更新。這樣便使得系統除了可以按照根據采樣周期設計的初始化優(yōu)先級和初始化參數運行外,還可以依據用戶(hù)自身需要對各個(gè)頻段、各個(gè)通道的采樣任務(wù)優(yōu)先級以及采樣頻率進(jìn)行設置和修改。修改完并確認后,修改任務(wù)會(huì )保存、更新當前系統工作參數并退出操作系統,而后重新啟動(dòng)并初始化,整個(gè)采集系統將按照全新的狀態(tài)開(kāi)始工作。當然,在這里用戶(hù)優(yōu)先級和采樣周期設置是受限的,必須符合上文提及的優(yōu)先級規則及各個(gè)頻段對采樣周期的要求。

3.2 任務(wù)時(shí)限設置

為了對整個(gè)系統的時(shí)間調度進(jìn)行優(yōu)化,首先說(shuō)明幾個(gè)內部工作時(shí)間。i386體系和Linux2.5內核中操作系統節拍率都設置為1000 Hz[2]。在這里將μC/OSII操作系統調度時(shí)間OS_TICKS_PER_SEC也設置為1000,也就是說(shuō)操作系統的任務(wù)調度以ms為單位。內核CPU工作頻率設置為400 MHz,即CPU機械周期以ns為單位。外設包括上位機命令掃描和上位機、下位機顯示部分工作都以s為單位。μC/OSII系統中任務(wù)切換、調度及延時(shí)都以系統節拍率為單位,而內部代碼的運行是以機械周期為單位。內部任務(wù)時(shí)限可以以節拍律為單位,也可以以實(shí)時(shí)時(shí)間為基準,獲得一個(gè)絕對時(shí)間差。

單個(gè)采樣任務(wù)通道內部只有采樣任務(wù)需要時(shí)限設置。為了達到智能化,用消息隊列的等待延時(shí)替代了采樣任務(wù)時(shí)限,而該延時(shí)便是本通道的采樣周期。其他的后續任務(wù)包括內存開(kāi)辟、數據處理、數據發(fā)送,都依次等待上一級任務(wù)消息,受上一級任務(wù)鉗制不設置任務(wù)時(shí)限。顯示任務(wù)時(shí)限按ms設置為絕對時(shí)間差。

3.3 針對外設的時(shí)間優(yōu)化

針對命令掃描和解析任務(wù),將其設置為中斷方式,在檢測到有用戶(hù)命令輸入時(shí)發(fā)生中斷,在中斷里對用戶(hù)命令進(jìn)行解析、分析、提取和處理。在中斷下半部分對命令進(jìn)行廣播式發(fā)布,發(fā)布到各個(gè)采樣任務(wù)函數使其立即刷新執行。因為用戶(hù)工作方式改變,命令刷新頻率并不高而且任務(wù)量不大,所以完全可以利用中斷的快速處理來(lái)實(shí)現這種功能。

圖4 顯示任務(wù)工作原理圖

在處理完命令掃描和采樣任務(wù)之后,影響整個(gè)系統性能的就剩下上位機和下位機顯示部分了。顯示任務(wù)工作原理如圖4所示,利用μC/OSII系統提供的消息隊列對顯示部分進(jìn)行改善。分別建立兩個(gè)長(cháng)度為16的消息隊列和內存塊鏈表,數據提交任務(wù)從空閑內存池中得到可用內存塊之后將本任務(wù)要顯示的數據存入該內存塊,此時(shí)該內存就變成了帶有數據的待顯示數據塊。而后將該內存塊的地址以消息的形式注冊在顯示消息隊列上。消息隊列的長(cháng)度設置為16,雖然這里只有12個(gè)任務(wù)會(huì )發(fā)送消息給消息隊列,但在實(shí)時(shí)多任務(wù)程序中,各個(gè)任務(wù)的運行是隨機的,消息隊列在一段時(shí)間內得到的消息個(gè)數是個(gè)不定值,所以留出4個(gè)空位作為裕度。而且設置初始值為16的計數信號量來(lái)保護消息隊列,數據提交任務(wù)在提交數據之前先檢測該信號量,如該信號量有效就可以發(fā)送信號,如信號量無(wú)效則需等待,直到有可用信號位時(shí)方可將信號發(fā)出。在外部硬件操作端,由外部發(fā)送任務(wù)將消息隊列中的消息按照固定速率發(fā)送到外部信號線(xiàn)上。

這樣設計,消息隊列就相當于一個(gè)緩沖區,使得所有提交任務(wù)都可以向這個(gè)緩沖區發(fā)送待顯示數據,有效地避免了多個(gè)任務(wù)爭用一個(gè)外圍設備而引起的死鎖、競爭冒險等問(wèn)題。同時(shí)減少了任務(wù)數量,減少了任務(wù)切換的次數,充分利用了系統時(shí)間,提高了系統性能。

3.4 關(guān)鍵區保護

多任務(wù)設計中每個(gè)任務(wù)在任何時(shí)刻都可能被其他任務(wù)打斷,必須充分考慮代碼的安全性、可重入性、可靠性、饑餓、互鎖、死鎖等情況。[3]

為了避免上述情況,任務(wù)間消息發(fā)送和傳遞時(shí)以及在數據采樣時(shí)對相應函數體進(jìn)行關(guān)鍵區保護,在這些函數運行的時(shí)候禁止中斷和任務(wù)調度,以保證數據傳遞和數據采樣的絕對正確性和系統運行的絕對安全性。

4 極限頻率測定及總結

上位機超級終端接收到的極限頻率測試結果如圖5所示。

圖5 極限頻率測量結果

分別測試了高頻段、中頻段和低頻段的極限頻率,結果在CPU使用率80%~90%的情況下測定。該系統成功實(shí)現了智能化設計和優(yōu)先級動(dòng)態(tài)調度、系統參數動(dòng)態(tài)設置等功能,達到了設計指標。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: ARM9 μCOSII 數據采集系統

評論


相關(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>