国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發(fā)布時間:2010-11-16 16:07    發(fā)布者:eetech
介紹如何運用Small RTOS51多任務(wù)操作系統(tǒng)進(jìn)行嵌入式控制器的軟件設(shè)計。首先介紹Small RTOS51多任務(wù)操作系統(tǒng),然后介紹基于該操作系統(tǒng)進(jìn)行數(shù)據(jù)采集器軟件系統(tǒng)的設(shè)計。
  
隨著嵌入式系統(tǒng)的發(fā)展,嵌入式軟件設(shè)計向軟件平臺靠近,單片機(jī)軟件設(shè)計不再是單一線程結(jié)構(gòu)方式,而是逐步采用多任務(wù)的設(shè)計思想。實時內(nèi)核也稱為實時操作系統(tǒng)或RTOS。它使得實時應(yīng)用程序的設(shè)計、擴(kuò)展和維護(hù)變得更容易,不需要大的改動就可以增加新的功能。通過應(yīng)用程序分割成若干獨立的任務(wù),RTOS使得應(yīng)用程序的設(shè)計過程大為簡化。使用可剝奪性內(nèi)核時,所有時間要求苛刻的事件都得到了盡可能快捷、有效的處理。通過有效的服務(wù),如信號量、郵箱、隊列、延時、超時等,RTOS使得資源得到更好的利用。  

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

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

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

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


  
1.2 硬件設(shè)計  

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

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

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

Small RTOS有以下的特點。  

① 公開源代碼。只要遵循許可協(xié)議,任何人可以免費獲得源代碼。  
② 可移植。盡量把與CPU相關(guān)部分壓縮到最小,與CPU無關(guān)部分用ANSI C編寫。  
③ 可固化。Small RTOS為嵌入式系統(tǒng)設(shè)計,如果有固化手段,它可以嵌入到產(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è)計,因而RAM需求小,相應(yīng)的,系統(tǒng)服務(wù)也少。  

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

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

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

主程序進(jìn)行系統(tǒng)初始化以后,順序建立6個任務(wù),進(jìn)入CPU休眠狀態(tài)。各個任務(wù)運行后,首先進(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ù)包的特點進(jìn)行錯誤處理。數(shù)據(jù)包被正確接收后,喚醒命令處理任務(wù)。命令處理任務(wù)判斷數(shù)據(jù)包的校驗和,若正確就處理相應(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ā)送處理采用隊列模式,設(shè)立發(fā)送和接收兩個緩沖區(qū),獨立的進(jìn)出隊列處理。數(shù)據(jù)解包和數(shù)據(jù)打包采用單獨處理方式,這樣單獨處理通信協(xié)議,以利于今后協(xié)議的改動。  

系統(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 %26;amp; 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ò)展。隊列長度各為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ù)運行。  

4 結(jié) 論  

在嵌入式系統(tǒng)中,使用RTOS是大勢所趨,因為在大多數(shù)情況下編程效率比執(zhí)行效率重要。利用Small RTOS多任務(wù)系統(tǒng)設(shè)計,可以使51單片機(jī)發(fā)揮的更有效,并且今后的軟件維護(hù)和改進(jìn)更方便,更可靠。
本文地址:http://m.qingdxww.cn/thread-39829-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日本久久久久久久久久| 欧美极限变态扩张video| 中文字幕精品在线| 扒开双腿疯进出爽爽爽动态图| 国产色精品久久人妻无码看片| 泡妞高手在都市完整版视频免费| 亚洲在线国产日韩欧美| 香蕉一区二区三区观| 人妖系列精品视频在线观看| 四虎国产精品一区二区| 欧美一区在线播放| 色综合天天色| 色综合中文| 亚洲在线精品| 国产69精品久久久久妇女| 欧美一级黄色影院| 亚洲精品视频在线观看免费| 午夜视频在线免费看| 天堂avwww| 无码一区二区三区视频| 中国男人gay网| 久久99re热在线播放7| 亚洲激情一区| 亚洲国产网站| 日本最新免费不卡二区在线| 亚洲精品高清在线观看| 亚洲国产综合久久精品| WWW国产色情在线观看APP| 免费精品国偷自产在线| 在线免费观看毛片网站| 色九九视频| 天美传媒精品一区| 亚洲欧洲日韩国产一区二区三区| 成人区在线观看免费视频| 日本湿姝在线观看| 亚洲伦理中文字幕一区| 欧美无专区| 亚洲成在线| 亚洲免费在线视频| 国产WW高清大片免费看| 日韩中文字幕亚洲无线码|