国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

實(shí)時(shí)多任務(wù)操作系統(tǒng)在MCS-51單片機(jī)中的應(yīng)用

2010-09-25 02:29:12張林生毛朝慶
關(guān)鍵詞:多任務(wù)實(shí)時(shí)性原型

張林生,袁 勇,毛朝慶

(重慶電子工程職業(yè)學(xué)院 電子信息系,重慶 401331)

實(shí)時(shí)多任務(wù)操作系統(tǒng)在MCS-51單片機(jī)中的應(yīng)用

張林生,袁 勇,毛朝慶

(重慶電子工程職業(yè)學(xué)院 電子信息系,重慶 401331)

嵌入式技術(shù)是21世紀(jì)具有廣闊發(fā)展前景的技術(shù)之一,由于其可靠性高、實(shí)時(shí)性強(qiáng)、便于開發(fā)和維護(hù)等諸多特點(diǎn),而被廣泛地應(yīng)用在各種系統(tǒng)中。本文介紹了RTX-51實(shí)時(shí)多任務(wù)操作系統(tǒng),通過實(shí)例解析其在項(xiàng)目開發(fā)中的應(yīng)用。

實(shí)時(shí)多任務(wù);MCS-51;RTX-51 Tiny

1 引 言

傳統(tǒng)的單片機(jī)程序多為單任務(wù)系統(tǒng),其業(yè)務(wù)邏輯順序安排在主函數(shù)中,主函數(shù)是整個(gè)程序的入口,一般為死循環(huán),循環(huán)過程中通過調(diào)用函數(shù)未完成相應(yīng)的操作,而對(duì)于一些較短的實(shí)時(shí)任務(wù)則通過中斷方式進(jìn)行處理。此種程序結(jié)構(gòu)簡(jiǎn)單、直觀,易于實(shí)現(xiàn),但對(duì)于較復(fù)雜的應(yīng)用此種結(jié)構(gòu)表極為不便,并且不能滿足實(shí)時(shí)性要求較高的場(chǎng)合,因此必須考慮一種新的開發(fā)模式。

實(shí)時(shí)多任務(wù)操作系統(tǒng)具有高效的設(shè)計(jì)、可靠性高、實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn)被廣泛應(yīng)用在嵌入式系統(tǒng)開發(fā)中?,F(xiàn)在世面上已經(jīng)存在很多嵌入式操作系統(tǒng),如uCOS、VxWork、linux、WinCE等等,但這幾種操作系統(tǒng)規(guī)模較大,對(duì)硬件資源要求較高,一般應(yīng)用在16/32位的處理器中。而對(duì)于處理能力有限的MCS-51八位單片機(jī)無(wú)法支持。

RTX-51是專門應(yīng)用于MCS-51系列單片機(jī)的一種小型的實(shí)時(shí)多任務(wù)操作系統(tǒng),它允許循環(huán)任務(wù)切換,支持信號(hào)傳遞,還能并行的利用中斷功能,RAM需求量小,非常適合在MCS-51單片機(jī)上運(yùn)行。

2 RTX-51簡(jiǎn)介

RTX-51是德國(guó)Keil公司開發(fā)的適用于MCS-51單片機(jī)的實(shí)時(shí)多任務(wù)操作系統(tǒng),RTX-51有RTX-51 Full和RTX51 Tiny兩個(gè)版本。本文以RTX-51 Tiny為例介紹,它支持循環(huán)任務(wù)切換與信號(hào)傳遞,還能并行的利用中斷功能,不提供搶先的任務(wù)切換。

2.1 RTX-51任務(wù)

在RTX-51系統(tǒng)中就是一個(gè)C51函數(shù)一個(gè)任務(wù),該函數(shù)沒有返回值,也沒有參數(shù)。該函數(shù)體必須是一個(gè)無(wú)限的循環(huán),以保證該函數(shù)不能返回。實(shí)際應(yīng)用中,一個(gè)復(fù)雜的系統(tǒng)往往被分解成若干可以并行處理的任務(wù),每個(gè)任務(wù)只完成一個(gè)單一的操作,從而降低系統(tǒng)設(shè)計(jì)的難度。在RTX-51 Tiny系統(tǒng)中一個(gè)具體的任務(wù)通過下面的格式定義:

2.2 RTX-51任務(wù)狀態(tài)

RTX-51 Tiny的用戶任務(wù)有5種狀態(tài),如表1所示。某一時(shí)刻用戶任務(wù)處在某個(gè)狀態(tài),在一定條件下,任務(wù)狀態(tài)可以發(fā)生改變,如圖1所示。

表1 RTx-51Ti ng任務(wù)狀態(tài)表

2.3 RTX-51的事件

(1)信號(hào):信號(hào)是用于任務(wù)之間進(jìn)行通訊的位,可以用系統(tǒng)函數(shù)進(jìn)行置位或復(fù)位。如果一個(gè)任務(wù)調(diào)用了os_wait1函數(shù)等待信號(hào),而信號(hào)未置位,則該任務(wù)被掛起直到信號(hào)置位,才返回到“就緒狀態(tài)”,并可以被再次執(zhí)行。

(2)超時(shí):超時(shí)由os_wait2函數(shù)開始的時(shí)間延時(shí),其持續(xù)時(shí)間可由定時(shí)節(jié)拍數(shù)確定。調(diào)用os_wait2函數(shù)的任務(wù)將被掛起,直到延時(shí)時(shí)間到,才返回“就緒狀態(tài)”,并可以被再次執(zhí)行。

(3)間隔:間隔由os_wait2函數(shù)開始的時(shí)間間隔,其持續(xù)時(shí)間可由定時(shí)節(jié)拍數(shù)確定。調(diào)用os_wait2函數(shù)的任務(wù)將被掛起,直到時(shí)間間隔到,才返回“就緒狀態(tài)”,并可以被再次執(zhí)行。與超時(shí)不同,任務(wù)的節(jié)拍計(jì)數(shù)器不復(fù)位,因此可以實(shí)現(xiàn)準(zhǔn)確的定時(shí)。

3 RTX-51 Tiny的功能函數(shù)介紹

3.1 任務(wù)控制類函數(shù)

①os_create_task

函數(shù)原型:char os_create_task(unsigned char task_id);

功能說明:?jiǎn)?dòng)已定義的由task_id說明的任務(wù)。此任務(wù)根據(jù)RTX-51運(yùn)行規(guī)則,標(biāo)記為就緒,并準(zhǔn)備執(zhí)行。

②os_delete_task

函數(shù)原型:char os_delete_task(unsigned char task_id);

功能說明:停止task_id說明的任務(wù),此任務(wù)將從任務(wù)表中刪除。

③os_running_task_id

函數(shù)原型:charos_running_task_id(unsignedchartask_id);

功能說明:判斷當(dāng)前執(zhí)行任務(wù)的編號(hào)。

3.2 延時(shí)控制類函數(shù)

函數(shù)原型:char os_wait(unsigned char event_sel, unsigned char tisks,unsigned char dummy);功能說明:停止當(dāng)前執(zhí)行的任務(wù),并等待一個(gè)或多個(gè)事件,如時(shí)間間隔、超時(shí)、從另一個(gè)任務(wù)或中斷發(fā)出的信號(hào)等。參數(shù)event_sel說明所等待的一個(gè)事件或幾個(gè)事件的組合 (可以用字符“|”進(jìn)行邏輯或)。參數(shù)ticks規(guī)定等待一個(gè)間隔或超時(shí)事件的報(bào)時(shí)信號(hào)數(shù)目。參數(shù)dummy在RTX-51 Tiny中沒有使用。

3.3 信號(hào)控制類函數(shù)

①isr_send_signal

函數(shù)原型:char isr_send_signal(unsigned char task_id);

功能說明:發(fā)送一個(gè)信號(hào)到task_id說明的任務(wù)。如果此任務(wù)已在等待一個(gè)信號(hào),那么調(diào)用函數(shù)將使此任務(wù)就緒,準(zhǔn)備執(zhí)行。否則,信號(hào)將存儲(chǔ)在此任務(wù)的信號(hào)標(biāo)志中。此函數(shù)只能在中斷函數(shù)中調(diào)用。

②os_clear_signal

函數(shù)原型:char os_clear_signal(unsigned char task_id);

功能說明:清除由task_id說明的任務(wù)的信號(hào)。

③os_send_signal

函數(shù)原型:char os_send_signal(unsigned char task_id);

功能說明:發(fā)送一個(gè)信號(hào)到task_id說明的任務(wù)。如果此任務(wù)已在等待一個(gè)信號(hào),那么調(diào)用函數(shù)將使此任務(wù)就緒,準(zhǔn)備執(zhí)行。否則,信號(hào)將存儲(chǔ)在此任務(wù)的信號(hào)標(biāo)志中。此函數(shù)只能在任務(wù)函數(shù)中調(diào)用。

4 案例應(yīng)用

如下圖2所示是通過RTX-51系統(tǒng)進(jìn)行編程實(shí)現(xiàn)的,帶溫度顯示的萬(wàn)年歷系統(tǒng)。

4.1 硬件結(jié)構(gòu)

硬件組成如圖2所示。

4.2 軟件結(jié)構(gòu)

軟件的主程序功能分解成5個(gè)子任務(wù)。init()任務(wù)用于創(chuàng)建其它的任務(wù),它是第一個(gè)被系統(tǒng)執(zhí)行的任務(wù);lcd()任務(wù)用來處理在液晶屏1602上顯示信息;gettemper()任務(wù)用來從DS18b20傳感器讀取溫度值;getclock()任務(wù)用來從DS1302芯片中讀出時(shí)間信息;key()任務(wù)用于處理按鍵操作。程序流程圖如圖3所示。

主程序的代碼如下:

5 結(jié) 語(yǔ)

通過實(shí)例我們可以看到,在MCS-51單片機(jī)中引入微型操作系統(tǒng)RTX-51 Tiny,使我們的開發(fā)更加輕松和方便,同時(shí)提高了系統(tǒng)的實(shí)時(shí)性和可靠性。

[1]劉明路,王亮生,李世煜.基于RTX51的單片機(jī)軟件設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002(3).

[2]歐偉明.面向嵌入式系統(tǒng)設(shè)計(jì)的RTX51[J].應(yīng)用技術(shù)研究,2007(5).

[3]KEIL Software,Inc.《RTX51 Real-time Kernel》[EB/OL].http: //www.keil.com/rtx51,2004-09-10.

責(zé)任編輯 王榮輝

On Application of Real-time Multi-task Operating System in Single chip of MCS-51

ZHANG Linsheng,YUAN Yong,MAO Zhaoqing
(Chongqing College of Electronic Engineering,Department of Electronic Information,Chongqing 401331,China)

The embedded system is one of the most promising technical trends in 21st century.With good reliability and instantaneity,as well as features of being easy to develop and maintain,etc.,it has been widely applied in various systems.An appropriate mini-operating system applied in single chip of MCS-51 is introduced in this thesis;meanwhile,the application of it in developing projects is illustrated with simple examples.

real-time multi-task;MCS-51;RTX-51 Tiny

TP39

A

1674-5787(2010)05-0160-03

2010-07-03

張林生(1981—),男,吉林德惠人,重慶電子工程職業(yè)學(xué)院,助教,技師,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。

猜你喜歡
多任務(wù)實(shí)時(shí)性原型
基于規(guī)則實(shí)時(shí)性的端云動(dòng)態(tài)分配方法研究
包裹的一切
基于中心化自動(dòng)加權(quán)多任務(wù)學(xué)習(xí)的早期輕度認(rèn)知障礙診斷
《哈姆雷特》的《圣經(jīng)》敘事原型考證
基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實(shí)時(shí)性仿真
航空電子AFDX與AVB傳輸實(shí)時(shí)性抗干擾對(duì)比
基于判別性局部聯(lián)合稀疏模型的多任務(wù)跟蹤
論《西藏隱秘歲月》的原型復(fù)現(xiàn)
電測(cè)與儀表(2016年5期)2016-04-22 01:13:46
原型理論分析“門”
人間(2015年20期)2016-01-04 12:47:08
福泉市| 车险| 大港区| 女性| 钦州市| 萍乡市| 巴里| 茌平县| 侯马市| 罗甸县| 静海县| 上饶市| 胶南市| 湄潭县| 吴堡县| 塘沽区| 吉隆县| 丰镇市| 遵化市| 双江| 广州市| 池州市| 沙田区| 博罗县| 滁州市| 朝阳市| 昭苏县| 登封市| 两当县| 合川市| 天镇县| 平顶山市| 新竹市| 龙游县| 鹤庆县| 乌鲁木齐县| 定日县| 澄江县| 秭归县| 竹山县| 新化县|