日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于RTOS的面向?qū)ο蟮木幊谭椒?/div>
[1] [2]  下一頁
基于RTOS的面向?qū)ο蟮木幊谭椒?/strong>
 更新時間:2008-8-18 9:55:43  點擊數(shù):12
【字體: 字體顏色

摘要 在嵌入式系統(tǒng)中使用RTOS是大勢所趨。這種多任務(wù)實時操作系統(tǒng)一方面可以提高系統(tǒng)的實時處理能力,另一方面可以提高開發(fā)效率,也能提高軟件的可維護性。本文以RTOS的簡化版本Small RTOS51為開發(fā)平臺,以電子短跑儀為實例,提出面向?qū)ο蟮木幊谭椒ā?/P>

關(guān)鍵詞 嵌入式系統(tǒng) RTOS 面向?qū)ο?任務(wù)分配 任務(wù)通信 電子短跑測試儀

引言
實時操作系統(tǒng)(RTOS)是一段在嵌入式系統(tǒng)啟動后首先執(zhí)行的背景程序。用戶的應(yīng)用程序是運行于RTOS之上的各個任務(wù),RTOS根據(jù)各個任務(wù)要求,進行資源管理、消息管理、任務(wù)調(diào)度和異常處理等工作。在RTOS支持的系統(tǒng)中,每個任務(wù)均有一個優(yōu)先級。RTOS根據(jù)各個任務(wù)的優(yōu)先級,動態(tài)地切換各個任務(wù),保證對實時性的要求。
對于前后臺系統(tǒng),任務(wù)是順序運行的,是一種過程性編程,比較容易實現(xiàn);但對于RTOS,任務(wù)是以分時方式運行的,看上去好像是多個任務(wù)“同時”運行。基于RTOS編程,需要掌握任務(wù)的分配方法以及如何在任務(wù)間進行通信與同步。本文提出的面向?qū)ο蟮木幊谭椒ň褪且环N行之有效的方法。
1Small RTOS51簡介
Small RTOS51是在周立功網(wǎng)站上發(fā)布的一款源代碼公開的,針對51單片機小RAM系統(tǒng)設(shè)計的占先式實時操作系統(tǒng),可以說是μC/OSII的簡化版。基于Small RTOS51的任務(wù)之間的通信與同步可用圖1、圖2來描述。
其中:
(a) 信號量——(1)作為任務(wù)之間的互斥方法,(2)同步方法,(3)作為計數(shù)器。
圖1信號量管理示意(b) 消息隊列——用于任務(wù)之間傳遞多個數(shù)據(jù)。
2電子短跑測試儀簡介
電子短跑測試儀是電子體能測試儀的一部分,它的功能描述如下:
① 基于IC卡進行身份識別和數(shù)據(jù)采集的測試儀,起點與終點間采用無線電進行數(shù)據(jù)傳輸。
② 人機接口部分有8個數(shù)碼管(主畫面顯示),2個發(fā)光二極管(電池欠壓指示與測試狀態(tài)指示),4個按鍵(自檢、查詢、測試),1個蜂鳴器(信號提示),1個IC卡插槽(識別SLE4442測試卡和Atmel 24C64數(shù)據(jù)匯總卡)。
③ 完整的測試步驟——將測試卡插入IC卡插槽內(nèi),數(shù)碼管顯示學(xué)號,按測試鍵啟動測試,蜂鳴器模擬起跑信號,同時開始計時,直到收到終點線傳感器發(fā)來的無線電信號后結(jié)束測試。之后,分別在測試卡與機內(nèi)E2PROM中保存測試成績。
④ E2PROM內(nèi)存儲的數(shù)據(jù)可以用數(shù)據(jù)匯總卡取出,在上位機管理軟件中作進一步處理。
3面向?qū)ο蟮木幊?br>步驟一: 發(fā)現(xiàn)對象
根據(jù)上述對電子短跑儀的描述和需求文檔,寫出所有
圖2消息隊列管理示意可作為候選類的名詞如下:
【IC卡】、【測試儀】、【數(shù)碼管】、【發(fā)光二極管】、【電源】、【按鍵】、【蜂鳴器】和【E2PROM】。
【IC卡】有兩種,雖然占用相同的I2C總線,但驅(qū)動程序不一樣,需要作為兩個對象。
【測試儀】可以把測試儀作為一個虛擬主控對象,用來管理所有的對象。這樣做的好處是具有很高的可復(fù)用性和很低的耦合度,但增加了管理的復(fù)雜性,不建議這樣做。
【按鍵】雖然有4個,但它們都是觸發(fā)不同功能的按鈕,并沒有什么內(nèi)在的不同,可以合并為一個對象。
其他的都可以分別作為一個對象。
步驟二: 識別責(zé)任
舉個例子,【蜂鳴器】的責(zé)任是打開蜂鳴器,設(shè)定鳴叫的頻率、鳴叫的時間,關(guān)閉蜂鳴器。其他的對象限于篇幅,不再詳述。
步驟三: 描述行為
實際上,現(xiàn)在要尋找系統(tǒng)提供的服務(wù),并通過為在系統(tǒng)中的對象分配工作來決定怎樣提供這些服務(wù)。在決定如何分配工作時,建議使用UML順序圖。
圖3測試程序UML順序圖圖4任務(wù)間通信示意圖舉個例子,當(dāng)按下【測試鍵】啟動測試后,過程如下:① 測試狀態(tài)燈亮; ② 延時3 s,若收到搶跑信號退出測試;表1
驅(qū)動方式〖〗對象〖〗備注使用任務(wù)〖〗8個數(shù)碼管,4個按鍵電源蜂鳴器2個發(fā)光二極管〖〗數(shù)碼管刷新,按鍵掃描,
需周期服務(wù)電池欠壓,充電管理,自動關(guān)機,需周期服務(wù)因調(diào)用頻率高,可作為一個任務(wù)來處理因調(diào)用頻率高,可作為一個任務(wù)來處理使用消息
隊列〖〗無線接收〖〗將接收到的數(shù)據(jù)送到消息隊列中使用
信號量〖〗E2PROM 24C256IC卡 24C64,4442〖〗共享資源,需要互斥;
為寫操作和讀操作分配不同的消息隊列
③ 蜂鳴器模擬槍聲鳴叫;④ 啟動計時器,數(shù)碼管顯示測試時間;⑤ 收到結(jié)束信號后退出測試;⑥ 保存測試成績。順序圖如圖3所示。
步驟四: 為對象編寫驅(qū)動程序
① 使用任務(wù)編寫驅(qū)動程序。有一些設(shè)備需要CPU周期為其服務(wù),典型的就是掃描顯示和掃描鍵盤?梢越o它們分配相應(yīng)的任務(wù),與用戶任務(wù)一起調(diào)度。
② 使用消息隊列編寫驅(qū)動程序。有一些設(shè)備具有自己的中斷,典型的是串口輸出?梢岳孟㈥犃袑⒂脩羧蝿(wù)需要的服務(wù)通過消息隊列排隊、緩沖起來,利用中斷功能依次服務(wù)。
③ 使用信號量編寫驅(qū)動程序。有一些設(shè)備既不需要CPU的周期服務(wù),又不具有自己的中斷,典型的是全局變量、模擬I2C總線等?梢岳眯盘柫康幕コ夤δ軐崿F(xiàn)對共享資源的保護。
步驟五: 任務(wù)分配及任務(wù)間通信
① 任務(wù)的初次分配。把所有對象按驅(qū)動方式列成表格,初次分配得到4個基本任務(wù),如表1所列。
② 任務(wù)的再次分配。如果系統(tǒng)比較復(fù)雜,需要在基本的任務(wù)上再擴展出一些任務(wù)。在本方案中,擴展了按鍵預(yù)處理任務(wù)、串口接收任務(wù)、顯示管理任務(wù)。在按鍵預(yù)處理任務(wù)中,增加了對按鍵去抖,組合鍵,連擊鍵的支持,鍵命令解釋等;在串口接收任務(wù)中,增加了對通信協(xié)議的處理;在顯示管理任務(wù)中,實現(xiàn)了對主畫面顯示,錯誤提示,查詢界面等管理。
③  任務(wù)間的通信。經(jīng)過以上的多步分析,得到任務(wù)分配及通信示意圖,如圖4所示。
在圖4的基礎(chǔ)上,就可以根據(jù)具體的RTOS比較方便地進行軟件的開發(fā)了。
結(jié)語
基于RTOS編程雖然增加了系統(tǒng)硬件開銷,但隨著現(xiàn)代半導(dǎo)體工藝的迅速發(fā)展,使得硬件的性能在不斷地提升而成本在不斷地下降。這就意味著作為一個嵌入式系統(tǒng)工程師,需要關(guān)注更多的是軟件開發(fā)。面向?qū)ο箝_發(fā)具有減少費用、開發(fā)產(chǎn)品所需時間短的優(yōu)勢,并在開發(fā)過程中具有靈活性。
參考文獻
1陳明計,周立功. 嵌入式實時操作系統(tǒng)Small RTOS51原理及應(yīng)用. 北京:北京航空航天大學(xué)出版社,2004
2Labrosse Jean J.  嵌入式實時操作系統(tǒng)μC/OSII. 北京:北京航空航天大學(xué)出版社,2003
3Richard C. Lee William M. Tepfenhart C++面向?qū)ο箝_發(fā). 北京:機械工業(yè)出版社,2002


  • 上一篇: 陣列聲波信號采集系統(tǒng)的電磁兼容性設(shè)計
  • 下一篇: 嵌入式瀏覽器Konqueror/embedded的技術(shù)分析
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1