自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

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

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

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

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


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

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

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

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