當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]μC/OS-II是一個源代碼開放的實時操作系統(tǒng),可移植、可固化(嵌入到產(chǎn)品中成為產(chǎn)品的一部分)、可裁減,屬于占先式實時內(nèi)核。執(zhí)行時間可確定(即函數(shù)調(diào)用與服務(wù)的時間是可知的,不依賴于應(yīng)用程序的多少),支持現(xiàn)有大多數(shù)型號

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

1 總線式數(shù)據(jù)采集系統(tǒng)的組成與功能

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

1.1 系統(tǒng)組成

    該系統(tǒng)的硬件組成如圖1所示。

 現(xiàn)場監(jiān)測通道狀態(tài)以總線方式,通過總線處理單元傳送到中央控制單元進(jìn)行數(shù)據(jù)采集與處理,其中MCU采用具有10位A/D轉(zhuǎn)換器的80C196KB。

1.2 系統(tǒng)功能

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

2 μC/OS-II在系統(tǒng)中的應(yīng)用

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

2.1 開發(fā)實時內(nèi)核的流程

    開發(fā)實時內(nèi)核的流程如圖2所示。

[!--empirenews.page--]

2.2 內(nèi)核的移植

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

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

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

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

2.3 實時內(nèi)核在應(yīng)用中應(yīng)注意的問題

    一個實時系統(tǒng)的軟件由實時操作系統(tǒng)加上應(yīng)用程序構(gòu)成。應(yīng)用程序與操作系統(tǒng)的接口通過系統(tǒng)調(diào)用來實現(xiàn)。用80C196KB作為系統(tǒng)的MCU,只能用內(nèi)部RAM作為TCB和所有系統(tǒng)存儲器(含各種控制表)以及各個任務(wù)的工作和數(shù)據(jù)單元。因此一定要注意以下幾點:

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

    (2)系統(tǒng)的任務(wù)控制塊只存放各任務(wù)的堆棧指針,而任務(wù)的狀態(tài)均存放于任務(wù)堆棧中。在一個任務(wù)退出運行時,通過中斷把它的狀態(tài)進(jìn)棧,然后把它的堆棧指針保存于系統(tǒng)的TCB中;再根據(jù)優(yōu)先級取出優(yōu)先級最高的已就緒任務(wù)的堆棧指針SP映象值送入SP中;最后執(zhí)行中斷返回指令轉(zhuǎn)去執(zhí)行新任務(wù)。

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

2.4 應(yīng)用μC/OS-II實時內(nèi)核的主要部分

    (1)任務(wù)的分配

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

    (2)任務(wù)的調(diào)度

    μC/OS-II的任務(wù)調(diào)度是按優(yōu)先級進(jìn)行的,根據(jù)各任務(wù)的實時性要求及重要程度,分別置它們的優(yōu)先級為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這幾個優(yōu)先級保留以被系統(tǒng)使用。優(yōu)先級號越低,任務(wù)的優(yōu)先級越高。這樣程序之間的通信可以通過按鍵中斷置標(biāo)志來實現(xiàn),其中按鍵中斷的優(yōu)先級最高。當(dāng)其它任務(wù)運行時,按鍵中斷將使得系統(tǒng)服務(wù)轉(zhuǎn)向運行按鍵中斷處理子程序ISR。當(dāng)中斷處理子程序運行完后,轉(zhuǎn)向判斷就緒狀態(tài)任務(wù)的優(yōu)先級別。如果發(fā)現(xiàn)有比中斷前任務(wù)優(yōu)先級更高的任務(wù),則轉(zhuǎn)向執(zhí)行該任務(wù)。先判斷其運行標(biāo)志,如果是‘非’,則又等待。再重復(fù)上述過程。如果在執(zhí)行完ISR后發(fā)現(xiàn)沒有比中斷前任務(wù)優(yōu)先級更高的,則轉(zhuǎn)向中斷前的子程序繼續(xù)運行。該系統(tǒng)的軟件處理沒有采用優(yōu)先級轉(zhuǎn)換的方法,而是采用狀態(tài)置位判斷的方法,這樣可以減少程序的復(fù)雜性。

    (3)任務(wù)間的通信

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

    ·關(guān)中斷;

    ·使用測試并置位;

    ·禁止任務(wù)切換;

    ·利用信號量。

    在本系統(tǒng)中采用了前兩種。關(guān)中斷是一種最簡單快捷的方式,也是在中斷服務(wù)子程序中處理共享數(shù)據(jù)結(jié)構(gòu)的唯一方法。要注意的是:關(guān)中斷的時間要盡量短,以免影響操作系統(tǒng)的中斷處理。其應(yīng)用模式如下:

    void Function(void)

    {

        OS_ENTER_CRITICAL();

        ……        /*在此處理共享數(shù)據(jù)*/

        OS_EXIT_CRITICAL();

    }

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

    Disable interrupts      /*關(guān)中斷*/

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

         Set  variable  to  1; /*置資源不可用,標(biāo)志為1*/

         Reenable  interrupts; /*重開中斷*/

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

         Disable   interrupts;   /*關(guān)中斷*/

         Set   the  'Access  Variable'  back  to  0;/*清資源不可使用,標(biāo)志為0*/

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

    }else   {                   /*否則*/

         Reenable interrupts;    /*開中斷*/

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

    }

    (4)時鐘節(jié)拍 [!--empirenews.page--]

    時鐘節(jié)拍是特定的周期性中斷,根據(jù)本系統(tǒng)的性能指標(biāo),取1毫秒。時鐘的節(jié)拍式中斷使得內(nèi)核可以將任務(wù)延時若干個整數(shù)時鐘節(jié)拍,以及當(dāng)任務(wù)等待事件發(fā)生時,提供等待超時的依據(jù)。另外,系統(tǒng)信息的定時顯示需要系統(tǒng)每隔一定的時鐘節(jié)拍顯示一次。

    (5)存儲空間的分配

    為了減少操作系統(tǒng)的體積,只應(yīng)用操作系統(tǒng)的任務(wù)調(diào)度、任務(wù)切換、信號量處理、延時及超時服務(wù)幾部分。這樣可使該操作系統(tǒng)的大小減小到3~5KB,再加上應(yīng)用程序最大可達(dá)50KB左右。

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

3 系統(tǒng)運行的實時性分析

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

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

    ·內(nèi)存管理:共需800微秒;

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

    ·任務(wù)管理:共需8毫秒;

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

    ·雜項:約需1毫秒。

    上述時間均是最大運行時間的大概統(tǒng)計,也就是均考慮有任務(wù)切換情況下的時間統(tǒng)計結(jié)果。在整個內(nèi)核的應(yīng)用上對一些函數(shù)進(jìn)行了裁減,沒有用的服務(wù)在預(yù)編譯時屏蔽掉了,因此未計入統(tǒng)計時間。

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

    總之,隨著各種應(yīng)用電子系統(tǒng)的復(fù)雜化和系統(tǒng)實時性需求的提高,并伴隨應(yīng)用軟件朝著系統(tǒng)化方向發(fā)展的加速,μC/OS-II實時內(nèi)核一定會得到更大的發(fā)展。因為它可以使產(chǎn)品更加穩(wěn)定可靠,開發(fā)過程更加規(guī)范,且縮短了開發(fā)周期。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉