《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > μC/OS-II在總線式數據采集系統中的應用

μC/OS-II在總線式數據采集系統中的應用

2009-01-16
作者:張興國 徐筱麟

??? 摘? 要: 介紹源代碼開放的μC/OS-II實時操作系統,以及基于此技術的總線式數據采集系統,討論了μC/OS-II在實際開發應用中應注意的幾個問題,并通過實例論述實時操作系統在單片機系統應用開發的廣闊前景。?

????關鍵詞: 實時操作系統? μC/OS-II? 前后臺系統? 總線式? 移植

?

??? μC/OS-II是一個源代碼開放的實時操作系統,可移植、可固化(嵌入到產品中成為產品的一部分)、可裁減,屬于占先式實時內核。執行時間可確定(即函數調用與服務的時間是可知的,不依賴于應用程序的多少),支持現有大多數型號的8位、16位、32位MCU/MPU,已被廣泛應用于交換機、路由器、過程控制、汽車業、辦公自動化、計算機外設以及民用消費類產品等,具有穩定的可靠性。把μC/OS-II應用在總線式數據采集系統中,可使該系統比以往的前后臺系統能夠更加穩定地工作,而且在一定程度上滿足了監控測量實時性的需求。?

1 總線式數據采集系統的組成與功能?

??? 隨著社會信息化程度的提高,人們對重要工業及生活設施智能化監控的要求也越來越高。應這種需求,設計了這套總線式數據采集系統。該系統采用總線巡檢方式,對監測對象進行數據采集與處理,系統硬件以模塊化結構,實現32/64/128路模擬或數字量的集中監測,適用于各種標準現場一次儀表或二次儀表數據測量與控制。整機采用先進的微機處理技術和通信控制技術,并嵌入實時處理內核,智能化程度較高,工作性能更加穩定,測量精度高,通用性強。?

1.1 系統組成?

??? 該系統的硬件組成如圖1所示。?

?

?

??? 現場監測通道狀態以總線方式,通過總線處理單元傳送到中央控制單元進行數據采集與處理,其中MCU采用具有10位A/D轉換器的80C196KB。?

1.2 系統功能?

??? 該系統可以對各通道的工作參數、狀態進行即時修改設定,并可以通過面板LED實時顯示32/64/128路通道的工作狀態,同時各通道的實時參數通過LCD進行逐屏顯示。對發生報警的信道可以通過打印處理單元進行打印輸出、聲光報警及顯示。該系統采用總線巡檢方式,對各信道工作狀態進行遠程數據采集并進行集中數據處理。為進一步滿足智能化管理的需要,具有和計算機通信的功能,可以實現監測數據的共享。同時,也可以通過計算機對各信道的工作狀態進行設置,進一步增強了該系統的智能化管理能力。?

2 μC/OS-II在系統中的應用?

??? 該系統若采用以往的前后臺式工作方式,即后臺為主應用程序,前臺為中斷處理程序;通常情況下執行主程序,若有中斷發生時,則轉向前臺處理中斷服務程序。前臺需要處理定時顯示系統信息子程序,或按鍵中斷處理子程序,然后根據中斷程序中所置的狀態標志,由主程序判斷其狀態標志后再進入相應的子程序,也就是主程序采用狀態查詢方式進行工作。這樣在一定程度上不能保證整個系統測量的實時性。因為主程序在執行其它程序時,不可能隨時去檢測這些狀態標志,尤其是處理多信道A/D采樣計算時,耗時較多。當工作的信道增加或減少時,這種現象則表現得尤為明顯,而且難以實現并行操作的相互通信。在主程序的各個子模塊中,有需要橫向通信聯系交換信息的,這在一般的前后臺系統中是很困難的,且存在系統不穩定的隱患。實時內核兼具實時多任務性和穩定性,因此考慮采用實時內核。μC/OS-II是一個源碼開放的實時內核,且又有許多成功的先例可供參考,可針對不同的MCU/MPU,通過條件編譯裁減其內核的大小,以滿足系統要求。μC/OS-II是占先式內核,總是運行就緒條件下優先級最高的任務。最大可以管理64個任務,其中保留8個給系統,故應用程序最多可以有56個任務。鑒于許多成功先例和系統成本,采用了80C196KB作為系統的MCU。通過實驗,基本滿足了系統所要求的實時性。?

2.1 開發實時內核的流程?

??? 開發實時內核的流程如圖2所示。

?

?

2.2 內核的移植?

??? 內核的移植也就是使實時內核能夠在某個微處理器或微控制器上正常運行。移植工作包括以下幾個內容:?

??? (1)在OS_CPU.H中用#define定義三個宏,聲明C96中能夠識別的數據類型和堆棧的增長方向。?

??? (2)在OS_CPU.C中用C語言重新編寫以下幾個函數:OSTaskStkInit、OSStartHighRdy、OSTaskCreateHook、OSTaskSwHook、OSTaskDelHook、OSTaskStatHook、OSTimeTickHook。?

??? (3)在OS_CPU.ASM中編寫幾個匯編語言函數LoadCtx()、OSCtxSw()、OSIntCtxSw()、OSTickISR()。?

2.3 實時內核在應用中應注意的問題

??? 一個實時系統的軟件由實時操作系統加上應用程序構成。應用程序與操作系統的接口通過系統調用來實現。用80C196KB作為系統的MCU,只能用內部RAM作為TCB和所有系統存儲器(含各種控制表)以及各個任務的工作和數據單元。因此一定要注意以下幾點:?

??? (1)為各個任務分配各自的堆棧區,該堆棧區既作為任務的工作單元,也作為任務控制塊的保護單元。?

??? (2)系統的任務控制塊只存放各任務的堆棧指針,而任務的狀態均存放于任務堆棧中。在一個任務退出運行時,通過中斷把它的狀態進棧,然后把它的堆棧指針保存于系統的TCB中;再根據優先級取出優先級最高的已就緒任務的堆棧指針SP映象值送入SP中;最后執行中斷返回指令轉去執行新任務。?

??? (3)各任務的數據和工作單元盡量用堆棧實現,這樣可以允許各任務使用同一個子程序。使用堆棧實現參數傳遞并作為工作單元,而不使用絕對地址的RAM,可實現可重入子程序。該子程序既可為各個任務所調用,也可以實現遞歸調用。?

2.4 應用μC/OS-II實時內核的主要部分?

??? (1)任務的分配?

??? 實時系統中的任務有別于前后臺系統中的子程序模塊,任務是處理機按程序處理數據的過程,是個動態的概念。一般一個任務對應于一段獨立的主程序,它可能調用各種子程序,并使用各種系統資源如中斷、外設等,以完成某種選定的功能,且允許多個任務并行。根據該系統的性能指標和技術要求,可對系統進行如下的任務劃分:按鍵中斷、LCD顯示、串行通信、打印與報警、信道巡檢A/D采樣與數據處理、系統信息顯示、系統工作參數測量、電源切換與充電管理共八個任務。?

??? (2)任務的調度?

??? μC/OS-II的任務調度是按優先級進行的,根據各任務的實時性要求及重要程度,分別置它們的優先級為4、9、8、7、6、11、10、5。其中0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRIO-2、OS_LOWEST_PRIO-1、OS_LOWEST_PRIO這幾個優先級保留以被系統使用。優先級號越低,任務的優先級越高。這樣程序之間的通信可以通過按鍵中斷置標志來實現,其中按鍵中斷的優先級最高。當其它任務運行時,按鍵中斷將使得系統服務轉向運行按鍵中斷處理子程序ISR。當中斷處理子程序運行完后,轉向判斷就緒狀態任務的優先級別。如果發現有比中斷前任務優先級更高的任務,則轉向執行該任務。先判斷其運行標志,如果是‘非’,則又等待。再重復上述過程。如果在執行完ISR后發現沒有比中斷前任務優先級更高的,則轉向中斷前的子程序繼續運行。該系統的軟件處理沒有采用優先級轉換的方法,而是采用狀態置位判斷的方法,這樣可以減少程序的復雜性。?

??? (3)任務間的通信?

??? 任務間通信最簡便的方法是使用共享數據結構。雖然共享數據區法簡化了任務間的信息交換,但是必須保證每個任務在處理共享數據時的排它性,以避免競爭和數據的破壞。通常與共享資源打交道時,使之滿足互斥條件最一般的方法有以下幾種:?

??? ·關中斷;?

??? ·使用測試并置位;?

??? ·禁止任務切換;?

??? ·利用信號量。?

??? 在本系統中采用了前兩種。關中斷是一種最簡單快捷的方式,也是在中斷服務子程序中處理共享數據結構的唯一方法。要注意的是:關中斷的時間要盡量短,以免影響操作系統的中斷處理。其應用模式如下:?

??? void Function(void)?

??? {?

??? ??? OS_ENTER_CRITICAL();?

??? ??? ……??????? /*在此處理共享數據*/?

??? ??? OS_EXIT_CRITICAL();?

??? }?

??? 測試并置位方式需要有一個全局變量,約定好先測試該變量;如果是約定的數值,則執行該任務,否則不執行該任務。這種方法稱測試并置位(TEST-AND-SET),或TAS。其應用程序如下:?

??? Disable interrupts? ??? /*關中斷*/?

??? If? ('Access Variable' is? 0){?/*若資源不可用,標志為0*/?

????? ?? Set? variable? to? 1; /*置資源不可用,標志為1*/?

????? ?? Reenable? interrupts; /*重開中斷*/?

????? ?? Access?? the?? resource;?/*處理該資源*/?

???????? Disable?? interrupts; ? /*關中斷*/?

????? ?? Set?? the? 'Access? Variable'? back? to? 0;/*清資源不可使用,標志為0*/?

????? ?? Reenable? interrupts; ? /*重新開中斷*/?

??? }else?? {???????????? ????? /*否則*/?

????? ?? Reenable interrupts;? ? /*開中斷*/?

????????????????? ?????????????/*資源不可使用,以后再試*/?

??? }?

??? (4)時鐘節拍?

??? 時鐘節拍是特定的周期性中斷,根據本系統的性能指標,取1毫秒。時鐘的節拍式中斷使得內核可以將任務延時若干個整數時鐘節拍,以及當任務等待事件發生時,提供等待超時的依據。另外,系統信息的定時顯示需要系統每隔一定的時鐘節拍顯示一次。

??? (5)存儲空間的分配?

??? 為了減少操作系統的體積,只應用操作系統的任務調度、任務切換、信號量處理、延時及超時服務幾部分。這樣可使該操作系統的大小減小到3~5KB,再加上應用程序最大可達50KB左右。?

??? 因為每個任務都是獨立運行的,每個任務都具有自己的棧空間。這樣可以根據任務本身的需求(局部變量、函數調用、中斷嵌套等)來分配其RAM空間。?

3 系統運行的實時性分析?

??? 在該系統中應用μC/OS-II實時內核,一是增強了系統運行的穩定性,更重要的是滿足了系統測量所需的實時性要求。系統采用12MHz晶振,一條指令的周期是1微秒。以下時間的統計是將C語言編譯為匯編語言后,根據其指令的多少而計算出來的。經統計如下:?

??? ·中斷管理:共需3毫秒;?

??? ·內存管理:共需800微秒;?

??? ·信號量管理:共約4.5毫秒; ?

??? ·任務管理:共需8毫秒;?

??? ·時鐘管理:共需約20毫秒;?

??? ·雜項:約需1毫秒。?

??? 上述時間均是最大運行時間的大概統計,也就是均考慮有任務切換情況下的時間統計結果。在整個內核的應用上對一些函數進行了裁減,沒有用的服務在預編譯時屏蔽掉了,因此未計入統計時間。?

??? 用戶定義函數:按鍵中斷處理15毫秒,LCD顯示一屏30毫秒,串行通信10毫秒,打印及聲光報警400毫秒,信道巡檢A/D采樣與數據處理20毫秒,系統信息顯示10毫秒,系統工作參數測量150毫秒,電源的切換與充電50毫秒。可見系統各任務中除打印所需時間較長外,其余任務所需時間都比較短。通過采用實時內核,在很大程度上保證了對信道掃描的定時性,即實時性要求。若采用前后臺編程,在查詢信道掃描的情況下,系統掃描信道的時間不能確定;隨著信道數的變化,信道掃描的定時性很難得到保證,各種顯示的定時性也比較差。?

??? 總之,隨著各種應用電子系統的復雜化和系統實時性需求的提高,并伴隨應用軟件朝著系統化方向發展的加速,μC/OS-II實時內核一定會得到更大的發展。因為它可以使產品更加穩定可靠,開發過程更加規范,且縮短了開發周期。?

參考文獻?

1 (美) 拉伯羅斯著, 邵貝貝譯. μC/OS-II:源碼公開的實時嵌入式操作系統. 北京:中國電力出版社,2001?

2 孫涵芳主編.? Intel 16 位單片機. 北京:北京航空航天大學出版社,1999?

3 張友德,涂時亮,陳章龍. M68H08系列單片機原理與應用.上海:復旦大學出版社,2001

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产人成一区二区三区影院| 亚洲午夜精品福利| 这里只有视频精品| 可以看av的网站久久看| 欧美国产一区二区在线观看| 欧美精品在线免费观看| 欧美欧美天天天天操| 99精品热视频只有精品10| 99在线精品免费视频九九视| 黄色亚洲在线| 国产偷久久久精品专区| 在线亚洲成人| 国产精品国产自产拍高清av| 久久精品一本| 黄色一区二区三区四区| 亚洲国产精品久久久久秋霞不卡| 香蕉视频成人在线观看| 亚洲精品1234| 欧美另类在线播放| 夜夜嗨av一区二区三区网页| 美女精品一区| 国产精品揄拍一区二区| 欧美大片在线看| 日韩午夜在线电影| 欧美大片网址| 国产精品女主播一区二区三区| 久久国产一区二区| 91久久精品www人人做人人爽| 亚洲国产第一| 影音先锋亚洲电影| 久久久水蜜桃av免费网站| 欧美视频手机在线| 国产精品午夜av在线| 国产精品免费小视频| 欧美亚洲成人精品| 欧美高清视频在线播放| 国产视频亚洲| 国产喷白浆一区二区三区| 国产精品美女午夜av| 国产精品人人爽人人做我的可爱| 亚洲精品午夜| 亚洲韩国一区二区三区| 国产精品hd| 亚洲一区3d动漫同人无遮挡| 欧美一区二区视频在线| 精品成人一区二区| 欧美日韩美女| 亚洲国产精品成人综合| 性色av一区二区三区| 国产精品www网站| 亚洲综合精品自拍| 亚洲女人av| 亚洲国语精品自产拍在线观看| 欧美激情精品久久久久| 久久免费少妇高潮久久精品99| 国产精品a久久久久| 狠狠色综合日日| 国产精品久久久久影院色老大| 女仆av观看一区| 欧美亚日韩国产aⅴ精品中极品| 欧美日韩中文在线| …久久精品99久久香蕉国产| 美女黄色成人网| 老司机精品导航| 欧美日韩一区二区三区在线看| 久久阴道视频| 国产亚洲精品资源在线26u| 久久综合九色综合欧美就去吻| 亚洲作爱视频| 欧美日韩成人一区二区| 国产在线精品一区二区夜色| 久久久久久久精| 中文在线不卡| 久久在线播放| 亚洲作爱视频| 国产日韩在线视频| 亚洲美女色禁图| 另类图片综合电影| 欧美www视频在线观看| 久久国产精品久久w女人spa| 亚洲另类自拍| 久久久夜精品| 久久婷婷成人综合色| 欧美吻胸吃奶大尺度电影| 国产日韩欧美制服另类| 欧美激情aaaa| 亚洲欧美日本国产专区一区| 亚洲高清不卡一区| 久久综合色天天久久综合图片| 欧美 日韩 国产 一区| 久久xxxx精品视频| 国产自产精品| 欧美色一级片| 亚洲日本在线视频观看| 136国产福利精品导航网址应用| 欧美精品在线观看91| 久久成人av少妇免费| 欧美国产亚洲视频| 亚洲国产99精品国自产| 香蕉乱码成人久久天堂爱免费| 在线日韩一区二区| 亚洲一区二区三区色| 国产精品sm| 欧美日韩综合精品| 激情综合五月天| 一区二区三区精品在线| 国产偷国产偷亚洲高清97cao| 国产美女精品视频免费观看| 欧美性事免费在线观看| 免费人成网站在线观看欧美高清| 亚洲精品一品区二品区三品区| 欧美一级成年大片在线观看| 欧美精品久久久久久久久久| 亚洲娇小video精品| 在线视频日本亚洲性| 久久久久久久999精品视频| 狠狠色狠狠色综合| 亚洲一二区在线| 国产欧美日韩另类视频免费观看| 免费在线成人| 欧美色中文字幕| 国产精品自拍网站| 亚洲精品少妇30p| 国产精品人人爽人人做我的可爱| 欧美粗暴jizz性欧美20| 免费高清在线视频一区·| 国内精品久久久久久| 欧美一区二区三区免费在线看| 欧美日本国产一区| 伊人久久亚洲美女图片| 亚洲欧美中文日韩v在线观看| 久久精品国产免费看久久精品| 久久精品国产亚洲a| 欧美色视频日本高清在线观看| 日韩视频专区| 亚洲在线免费视频| 亚洲精品看片| 激情伊人五月天久久综合| 国产精品国产三级国产aⅴ入口| 久久精品视频导航| 免费短视频成人日韩| 久久精品毛片| 亚洲午夜精品视频| 欧美一级大片在线观看| 久久精品国产v日韩v亚洲| 国产精品―色哟哟| 在线综合亚洲欧美在线视频| 欧美午夜大胆人体| 国产欧美日韩一级| 亚洲日本成人在线观看| 99精品国产一区二区青青牛奶| 精品999日本| 国产精品剧情在线亚洲| 亚洲永久字幕| 亚洲美女一区| 欧美成人精品激情在线观看| 亚洲一区二区三区成人在线视频精品| 欧美啪啪一区| 亚洲欧美日韩一区| 午夜精品久久久久久久久久久| 国产在线播放一区二区三区| 国产精品中文字幕在线观看| 亚洲人成艺术| 欧美成人精品在线| 国产精品亚洲综合| 黄色免费成人| 91久久精品国产91性色tv| 亚洲综合欧美日韩| 久久亚洲欧美| 久久精彩免费视频| 欧美日韩国产首页| 欧美亚洲免费高清在线观看| 久久精品官网| 亚洲夜晚福利在线观看| 一区二区欧美视频| 国产精品久久久久久久9999| 久久一综合视频| 欧美一级片在线播放| 老鸭窝毛片一区二区三区| 国产精品高清在线观看| 日韩亚洲在线观看| 亚洲自拍偷拍麻豆| 欧美三级网址| 久久久777| 亚洲看片网站| 久久久国产精品一区二区三区| 亚洲精品一级| 欧美一区二区精品| 亚洲乱码国产乱码精品精98午夜| 欧美—级高清免费播放| 国产日韩欧美视频在线| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲欧美视频在线观看视频| 久久精品av麻豆的观看方式| 久久精品一区二区三区不卡牛牛| 亚洲大胆美女视频| 免费在线观看日韩欧美| 午夜精品亚洲一区二区三区嫩草| 久久精品一区| 久久免费国产| 国产日韩欧美电影在线观看| 在线日本高清免费不卡| 欧美日韩成人综合天天影院| 欧美日韩精品高清| 国产精品免费一区豆花| 欧美成人国产一区二区| 亚洲高清在线观看一区| 国产精品日韩精品欧美在线| 一区二区三区视频在线播放| 国产精品青草综合久久久久99| 国产久一道中文一区| 亚洲国产精品传媒在线观看| 国产精品扒开腿做爽爽爽视频| 久久国产视频网| 亚洲二区免费| 国产色婷婷国产综合在线理论片a| 国产精品亚洲视频| 国产在线精品自拍| 亚洲香蕉成视频在线观看| 欧美大片免费观看| 亚洲一区二区av电影| 国产午夜亚洲精品羞羞网站| 亚洲欧美在线免费观看| 午夜在线视频一区二区区别| 欧美日韩国产a| 久久综合电影一区| 欧美成人午夜免费视在线看片| 久久久免费av| 狠狠色狠狠色综合系列| 亚洲精品视频免费观看| 99国产精品国产精品久久| 欧美va天堂在线| 亚洲精品在线二区| 一区二区三区欧美日韩| 欧美91大片| 久久成年人视频| 国产精品国产三级国产aⅴ入口| 亚洲视频1区| 欧美日韩xxxxx| 欧美日韩一区在线播放| 亚洲在线1234| 中文欧美字幕免费| 欧美一区二区三区免费看| 亚洲综合电影| 黄色成人av网| 亚洲高清av| 国内精品一区二区三区| 久久亚洲一区二区三区四区| 欧美区在线播放| 欧美日韩国产123区| 欧美日韩中文字幕| 最新亚洲电影| 国产精品普通话对白| 欧美一区亚洲二区| 欧美午夜免费影院| 亚洲国产日日夜夜| 国产资源精品在线观看| 欧美韩国日本综合| 99re这里只有精品6| 在线欧美一区| 欧美视频1区| 国产精品久久久久久久久果冻传媒| 亚洲国产高清一区二区三区| 狠狠久久亚洲欧美专区| 亚洲国产日韩在线一区模特| 亚洲国产黄色| 国产精品视频一二| 牛人盗摄一区二区三区视频| 一区二区三区在线看| 夜夜夜精品看看| 国产精品一区二区三区成人| 国产美女精品| 猫咪成人在线观看| 在线观看精品视频| 亚洲欧美国产va在线影院| 91久久国产综合久久91精品网站| 9久re热视频在线精品| 欧美一级淫片播放口| 一本色道久久综合亚洲精品高清| 欧美精品一区二区三区久久久竹菊| 一本色道久久综合狠狠躁篇的优点| 国产欧美日韩在线观看| 国产亚洲成av人片在线观看桃| 欧美成人午夜激情在线| 欧美视频一区二区三区…| 日韩亚洲欧美精品| 国模精品一区二区三区色天香| 99热在这里有精品免费| 国产精品夜夜夜一区二区三区尤| 国产一区视频在线观看免费| 亚洲国产欧美精品| 午夜精品福利一区二区蜜股av| 国产一区二区三区电影在线观看| 久久久国产一区二区| 亚洲婷婷国产精品电影人久久| 午夜精品视频在线观看| 久久精品一本久久99精品| 一区二区三区国产盗摄| 久久久天天操| 国产精品久久久久毛片大屁完整版| 久久这里只精品最新地址| 久久在精品线影院精品国产| 国产偷自视频区视频一区二区| 狠狠色丁香婷婷综合久久片| 欧美freesex8一10精品| 永久免费精品影视网站| 亚洲女同同性videoxma| 国产精品福利在线观看网址| 欧美日本韩国一区| 亚洲一区在线直播| av成人天堂| 亚洲激情成人网| 国产精品国产福利国产秒拍| 另类av一区二区| 欧美国产视频一区二区| 欧美另类在线观看| 亚洲人成人77777线观看| 欧美日韩高清一区| 国产精品videossex久久发布| 欧美日韩免费| 亚洲片国产一区一级在线观看| 性欧美1819sex性高清| 亚洲视频一区二区免费在线观看| 两个人的视频www国产精品| 亚洲国产一区视频| 亚洲日本中文字幕免费在线不卡| 亚洲国产专区校园欧美| 欧美激情一二区|