《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 基于Small RTOS51的數(shù)據(jù)采集器設(shè)計(jì)

基于Small RTOS51的數(shù)據(jù)采集器設(shè)計(jì)

2008-08-01
作者:未知

?

摘要:介紹如何運(yùn)用Small RTOS51多任務(wù)" title="多任務(wù)">多任務(wù)操作系統(tǒng)進(jìn)行嵌入式控制器的軟件設(shè)計(jì)" title="軟件設(shè)計(jì)">軟件設(shè)計(jì)。首先介紹Small RTOS51多任務(wù)操作系統(tǒng),然后介紹基于該操作系統(tǒng)進(jìn)行數(shù)據(jù)采集器" title="數(shù)據(jù)采集器">數(shù)據(jù)采集器軟件系統(tǒng)的設(shè)計(jì)。 ?

??? 關(guān)鍵詞:Small RTOS51 多任務(wù)操作系統(tǒng) 數(shù)據(jù)采集器?

?

  隨著嵌入式系統(tǒng)的發(fā)展,嵌入式軟件設(shè)計(jì)向軟件平臺靠近,單片機(jī)軟件設(shè)計(jì)不再是單一線程結(jié)構(gòu)方式,而是逐步采用多任務(wù)的設(shè)計(jì)思想。實(shí)時內(nèi)核也稱為實(shí)時操作系統(tǒng)或RTOS。它使得實(shí)時應(yīng)用程序的設(shè)計(jì)、擴(kuò)展和維護(hù)變得更容易,不需要大的改動就可以增加新的功能。通過應(yīng)用程序分割成若干獨(dú)立的任務(wù),RTOS使得應(yīng)用程序的設(shè)計(jì)過程大為簡化。使用可剝奪性內(nèi)核時,所有時間要求苛刻的事件都得到了盡可能快捷、有效的處理。通過有效的服務(wù),如信號量" title="信號量">信號量、郵箱、隊(duì)列、延時、超時等,RTOS使得資源得到更好的利用。?

  目前8位單片機(jī)在嵌入式系統(tǒng)中,應(yīng)用還是最廣泛的。51多任務(wù)系統(tǒng)中,Keil C51 所帶的RTX51 Full 太大(6KB多),且需要外部RAM,又無源代碼,很多時候不實(shí)用。RTX51 Tiny雖然小(900多字節(jié)),但是任務(wù)沒有優(yōu)先級和中斷管理,也無源代碼,也不太實(shí)用。而uC/OSII雖有源代碼,但是它太大,又需要外部RAM,所有函數(shù)又必須是重入函數(shù),用在51這類小片內(nèi)RAM的單片機(jī)上有點(diǎn)勉強(qiáng)。Small RTOS為小RAM系統(tǒng)設(shè)計(jì),RAM需求小,比較適合51這種資源比較少的系統(tǒng)上。?

1 數(shù)據(jù)采集器系統(tǒng)設(shè)計(jì)?

??? 1.1 數(shù)據(jù)采集器原理?

  數(shù)據(jù)采集器是將采集到的電表脈沖信號轉(zhuǎn)換為電能量數(shù)據(jù)整理保存,并與上行設(shè)備通信傳輸?shù)焦芾韱卧M(jìn)行電表數(shù)據(jù)的統(tǒng)一管理。?

??? 1.2 硬件設(shè)計(jì)?

  主控制器采用AT89C52芯片,利用7032將脈沖信號采樣,經(jīng)過CPU的處理將數(shù)據(jù)存儲到EEPROM芯片中,數(shù)據(jù)通過紅外信道上傳到掌上電腦中。系統(tǒng)框圖如圖1所示。?

2 Small RTOS51多任務(wù)操作系統(tǒng)?

  Small RTOS是一個源代碼公開的多任務(wù)實(shí)時操作系統(tǒng),Small RTOS 51是其在8051系列處理器上的移植(使用Keil C51)。Small RTOS可以簡化那些復(fù)雜而且時間要求嚴(yán)格的工程的軟件設(shè)計(jì)工作。?

Small RTOS有以下的特點(diǎn)。?

① 公開源代碼。只要遵循許可協(xié)議,任何人可以免費(fèi)獲得源代碼。?

② 可移植。盡量把與CPU相關(guān)部分壓縮到最小,與CPU無關(guān)部分用ANSI C編寫。?

③ 可固化。Small RTOS為嵌入式系統(tǒng)設(shè)計(jì),如果有固化手段,它可以嵌入到產(chǎn)品中成為產(chǎn)品的一部分。?

④ 占先式。Small RTOS可以管理17個任務(wù),用戶最多可以使用16個任務(wù),每個任務(wù)優(yōu)先級不同。?

⑤ 中斷管理。中斷可以使正在執(zhí)行的任務(wù)掛起。如果優(yōu)先級更高的任務(wù)被中斷喚醒,則高優(yōu)先級的任務(wù)在中斷嵌套全部退出后立即執(zhí)行。中斷嵌套層數(shù)可達(dá)255 層。如果需要,可以禁止中斷嵌套管理。?

⑥ RAM需求小。Small RTOS為小RAM系統(tǒng)設(shè)計(jì),因而RAM需求小,相應(yīng)的,系統(tǒng)服務(wù)也少。?

目前,Small RTOS的最新版本為1.20.0。可以進(jìn)行任務(wù)的建立、刪除、動態(tài)內(nèi)存分配等操作。?

3 任務(wù)分解設(shè)計(jì)?

  數(shù)據(jù)采集器主要包括采集處理、顯示處理、按鍵處理、通信處理等模塊,由中斷處理相應(yīng)采集脈沖信號和串口" title="串口">串口通信。因此,將任務(wù)分解為按鍵顯示處理、接收數(shù)據(jù)、命令處理、發(fā)送數(shù)據(jù)、采樣濾波處理、系統(tǒng)檢測6個任務(wù)。?

  主程序進(jìn)行系統(tǒng)初始化以后,順序建立6個任務(wù),進(jìn)入CPU休眠狀態(tài)。各個任務(wù)運(yùn)行后,首先進(jìn)入任務(wù)休眠狀態(tài),等待相應(yīng)任務(wù)的喚醒。任務(wù)被喚醒以后,進(jìn)行相應(yīng)處理,再次進(jìn)入休眠狀態(tài)。這樣,可以減少任務(wù)切換,減輕系統(tǒng)負(fù)擔(dān)。

  任務(wù)框圖如圖2所示,主程序流程如圖3所示。

  脈沖到來時,引發(fā)相應(yīng)外部中斷,由中斷處理程序處理后,置相應(yīng)信號量,然后喚醒采樣濾波處理任務(wù)。采樣濾波處理任務(wù)將數(shù)據(jù)整理后,存儲到外部存儲器中。?

  串口數(shù)據(jù)到來時,引發(fā)串口中斷,串口中斷處理程序喚醒數(shù)據(jù)接收任務(wù)。數(shù)據(jù)接收任務(wù)完成數(shù)據(jù)包的接收,并根據(jù)通信數(shù)據(jù)包的特點(diǎn)進(jìn)行錯誤處理。數(shù)據(jù)包被正確接收后,喚醒命令處理任務(wù)。命令處理任務(wù)判斷數(shù)據(jù)包的校驗(yàn)和,若正確就處理相應(yīng)的命令。命令處理完成以后,將回應(yīng)數(shù)據(jù)打包,然后喚醒發(fā)送數(shù)據(jù)任務(wù),將數(shù)據(jù)通過串口發(fā)送出去。?

  每個任務(wù)均采用以下結(jié)構(gòu)。?

while(1)?

{?

OSWait(K_SIG, 0); // 任務(wù)睡眠,等待任務(wù)喚醒處理過程?

}?

任務(wù)的喚醒用OSTaskResume(TASK_ID)完成。?

  串口接收和發(fā)送處理采用隊(duì)列模式,設(shè)立發(fā)送和接收兩個緩沖區(qū),獨(dú)立的進(jìn)出隊(duì)列處理。數(shù)據(jù)解包和數(shù)據(jù)打包采用單獨(dú)處理方式,這樣單獨(dú)處理通信協(xié)議,以利于今后協(xié)議的改動。?

  串口緩沖I/O模塊的程序見本刊網(wǎng)站www.dpj.com.cn。?

  系統(tǒng)節(jié)拍設(shè)置:將OS_TICKS_PER_SEC設(shè)為20,即系統(tǒng)時鐘節(jié)拍為每秒20次。定義定時器0的中斷時間設(shè)為50ms。?

#define m_Fosc 11059200L?

#define m_TIME 65536L - (m_Fosc / (OS_TICKS_PER_SEC *?

12L))?

void InitTimer0(void) {?

TMOD = (TMOD & 0xF0) | 0x01;?

TH0 = m_TIME / 256;?

TL0 = m_TIME % 256;?

ET0 = 1;?

TF0 = 0;?

}?

  TestSys任務(wù)定時檢測各任務(wù)的回應(yīng),若長時間沒有回應(yīng),則啟動復(fù)位功能,熱啟動整個系統(tǒng),以保證系統(tǒng)的可靠性。?

  由于單片機(jī)采用AT89C52,片內(nèi)RAM為256,使用DS12887中的一部分RAM作為擴(kuò)展。隊(duì)列長度各為15個字節(jié)時,程序經(jīng)過9級優(yōu)化后,RAM占用140字節(jié),XRAM占用106字節(jié)。由于系統(tǒng)RAM很小,因此,沒有使用信號量和消息進(jìn)行數(shù)據(jù)傳輸。在其它應(yīng)用時,可以根據(jù)系統(tǒng)資源進(jìn)行信號量和消息的使用,這樣可以更有效地使任務(wù)運(yùn)行。?

4 結(jié)?

  在嵌入式系統(tǒng)中,使用RTOS是大勢所趨,因?yàn)樵诖蠖鄶?shù)情況下編程效率比執(zhí)行效率重要。利用Small RTOS多任務(wù)系統(tǒng)設(shè)計(jì),可以使51單片機(jī)發(fā)揮的更有效,并且今后的軟件維護(hù)和改進(jìn)更方便,更可靠。?

?

?

《基于Small RTOS51的數(shù)據(jù)采集器設(shè)計(jì)》一文由3edu教育網(wǎng)www.3edu.net摘錄,版權(quán)歸作者所有,轉(zhuǎn)載請注明出處!?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
午夜精品久久久久久久白皮肤 | 久久av红桃一区二区小说| 亚洲精品一区二区在线| 在线观看成人av电影| 国产一区再线| 国产日韩一级二级三级| 国产精品麻豆va在线播放| 欧美私人网站| 欧美体内谢she精2性欧美| 欧美日韩亚洲在线| 欧美日韩国产在线一区| 欧美日韩福利在线观看| 欧美日本一区二区三区| 欧美日韩国产在线观看| 欧美色欧美亚洲另类七区| 欧美日韩免费高清一区色橹橹| 欧美国产激情| 欧美激情网站在线观看| 欧美精品自拍| 国产精品国产三级国产专播品爱网| 欧美日韩中文字幕综合视频 | 亚洲精品综合| 一区二区三区不卡视频在线观看| 99re66热这里只有精品4| aaa亚洲精品一二三区| 亚洲午夜国产一区99re久久| 亚洲一区二区成人| 午夜视频一区| 亚洲国产精品一区制服丝袜| 亚洲国产视频一区二区| 亚洲日本va在线观看| aaa亚洲精品一二三区| 亚洲天堂av在线免费观看| 亚洲欧美亚洲| 久久久久在线观看| 欧美成人一区二区三区| 欧美精品尤物在线| 国产精品久久久久久久7电影| 国产日韩欧美不卡在线| 亚洲电影在线观看| 一区二区三区视频在线看| 亚洲欧美日韩在线一区| 亚洲福利国产精品| 一个色综合av| 性欧美xxxx大乳国产app| 久久久久国产精品麻豆ai换脸| 久久在线免费| 欧美日韩免费在线视频| 国产九区一区在线| 在线观看亚洲| 一区二区三区视频在线播放| 性18欧美另类| 亚洲毛片一区| 欧美主播一区二区三区美女 久久精品人| 久久国产日韩| 欧美精品一区二区三区蜜桃 | 国产精品日韩电影| 悠悠资源网久久精品| 日韩一级裸体免费视频| 欧美在线国产精品| 99在线视频精品| 久久精品国产精品亚洲| 欧美激情国产日韩精品一区18| 国产精品久久久久婷婷| 激情五月婷婷综合| 亚洲天堂黄色| 亚洲片在线资源| 新狼窝色av性久久久久久| 欧美第一黄色网| 国产丝袜一区二区| 一区二区电影免费观看| 亚洲国产va精品久久久不卡综合| 一区二区三区波多野结衣在线观看| 久久精品成人欧美大片古装| 欧美日本精品一区二区三区| 国产一区二区观看| 99精品视频一区| 最新成人av在线| 久久爱www久久做| 欧美欧美天天天天操| 国产一区91| 中国成人在线视频| 日韩视频精品在线| 麻豆精品传媒视频| 国产日韩欧美日韩大片| 在线视频中文亚洲| 99精品黄色片免费大全| 久久人人97超碰国产公开结果| 国产精品国产自产拍高清av王其| 亚洲国产日韩美| 久久成人久久爱| 性伦欧美刺激片在线观看| 欧美日韩另类视频| 91久久黄色| 亚洲黄色成人| 久久久精品一区| 国产欧美精品一区| 午夜综合激情| 久久精品电影| 性久久久久久久久久久久| 欧美日韩大陆在线| 尤物精品在线| 欧美一站二站| 久久aⅴ乱码一区二区三区| 欧美丝袜一区二区三区| 亚洲理伦电影| 一本到高清视频免费精品| 久久一区二区三区av| 国产欧美精品在线| 亚洲一区二区三区激情| 一区二区三区视频免费在线观看| 欧美成人午夜77777| 怡红院av一区二区三区| 久久精品视频亚洲| 久久全国免费视频| 激情91久久| 久久精品亚洲一区二区| 久久精品99国产精品日本| 国产拍揄自揄精品视频麻豆| 亚洲一卡二卡三卡四卡五卡| 亚洲男人第一av网站| 国产精品老牛| 亚洲一区二区三区精品动漫| 亚洲欧美清纯在线制服| 国产精品久久久久毛片软件| 亚洲性感激情| 午夜日本精品| 国产欧美日韩不卡免费| 性欧美精品高清| 久久久久99| 在线成人激情| 亚洲理论在线观看| 欧美了一区在线观看| 亚洲伦理在线| 亚洲一区二区三区涩| 国产精品美女一区二区在线观看 | 午夜精品亚洲一区二区三区嫩草| 欧美一区二区国产| 国产欧美综合一区二区三区| 久久精品成人| 欧美+日本+国产+在线a∨观看| 亚洲娇小video精品| 一区二区三区视频在线观看| 欧美调教视频| 亚洲欧美日韩中文播放| 久久伊伊香蕉| 日韩午夜激情av| 午夜精品美女自拍福到在线 | 黄色一区二区三区| 日韩性生活视频| 国产精品高潮呻吟久久av黑人| 亚洲校园激情| 久久综合中文| 99精品国产99久久久久久福利| 亚洲欧美日韩在线综合| 国产一区二区精品在线观看| 亚洲国产成人在线| 欧美日韩日本网| 午夜欧美大片免费观看 | 欧美国产日韩视频| 亚洲最黄网站| 久久国产综合精品| 亚洲国产精品一区二区尤物区| 亚洲视频免费观看| 国产欧美一区二区三区久久| 亚洲激情另类| 国产精品性做久久久久久| 亚洲大胆女人| 欧美视频一区二区三区在线观看 | 久久国产精品久久久久久久久久| 欧美韩日一区二区| 亚洲砖区区免费| 免费一级欧美片在线播放| 一本色道久久综合亚洲精品不 | 亚洲欧洲99久久| 在线电影院国产精品| 亚洲尤物精选| 亚洲第一天堂av| 亚洲免费中文字幕| 亚洲电影av| 欧美一级在线播放| 最新中文字幕一区二区三区| 欧美一区二区三区日韩| 亚洲黄色在线| 久久精品一区二区三区四区| 亚洲精品视频在线| 久久久久久久久久久一区 | 国产欧美一二三区| 亚洲片国产一区一级在线观看| 欧美香蕉视频| 亚洲欧洲一区二区天堂久久 | 欧美日本免费| 久久精品亚洲国产奇米99| 欧美亚日韩国产aⅴ精品中极品| 久久精品国产免费| 国产精品五区| 亚洲一二三区在线| 亚洲电影自拍| 久久久久中文| 亚洲欧美成人网|