新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于μc/OS-II的多傳感器測控系統(tǒng)研究

基于μc/OS-II的多傳感器測控系統(tǒng)研究

作者: 時間:2014-11-27 來源:網(wǎng)絡 收藏

  3 軟件設計

本文引用地址:http://www.2s4d.com/article/266073.htm

  3.1 系統(tǒng)任務分配

  為了充分發(fā)揮操作系統(tǒng)在任務調(diào)度、任務管理、任務通信、時間管理和內(nèi)存管理等方面的優(yōu)勢,首先必須根據(jù)需要實現(xiàn)的功能,合理的劃分任務和分配任務的優(yōu)先級。按溫濕度測控系統(tǒng)所要求實現(xiàn)的功能,將整個系統(tǒng)劃分為并行存在的任務層和中斷程序。μC/OS-II嵌入式實時操作系統(tǒng)中的任務狀態(tài)轉(zhuǎn)換如圖2所示。

  

 

  圖2 μC/OS-II任務狀態(tài)轉(zhuǎn)換示意圖

  多任務系統(tǒng)在運行時每個任務好像獨立占用CPU一樣,因此系統(tǒng)必須為每個任務開辟一塊內(nèi)存空間作為該任務的任務堆棧。該堆棧的作用是保存任務被切換前時CPU各寄存器的值以及系統(tǒng)堆棧的數(shù)據(jù)。在進行任務切換時需要完成工作的主要步驟如下:①將當前任務CPU所有的寄存器壓棧;②將CPU系統(tǒng)堆棧的數(shù)據(jù)全部拷貝到當前任務的任務堆棧中;③ 得到下一個處于運行態(tài)優(yōu)先級最高的任務的任務堆棧的指針;④ 恢復下一個任務的CPU寄存器的值;⑤ 恢復下一個任務的系統(tǒng)堆棧中的數(shù)據(jù);⑥ 通過中斷返回指令或函數(shù)返回指令,間接修改PC寄存器的值來進行任務切換。在為μC/OS-II編寫任務切換代碼時需要注意的是:μC/OS-II在每次發(fā)生中斷后都會產(chǎn)生任務調(diào)度,但在中斷結(jié)束后進行的任務切換,不能調(diào)用普通任務切換函數(shù),這是因為在中斷過程中往往伴隨將CPU的狀態(tài)寄存器壓棧操作。

  任務切換方法:凌陽SPACE061A單片機有R1-R5 五個通用寄存器,還有1個SR(CPU狀態(tài)寄存器),再加上PC,總共有7個CPU內(nèi)部寄存器在任務切換時需要保存。μC/OS-II系統(tǒng)調(diào)用OSCtxSw( )來實現(xiàn)任務的切換。系統(tǒng)中并行存在的幾個任務按優(yōu)先級從高到低依次是:系統(tǒng)監(jiān)視任務、數(shù)據(jù)采集任務、數(shù)據(jù)處理任務、數(shù)據(jù)輸出任務、顯示任務。在實際系統(tǒng)中,每個任務都是無限循環(huán)的,分別實現(xiàn)某一特定的功能,由μC/OS-II內(nèi)核來進行調(diào)度。系統(tǒng)監(jiān)視任務主要完成系統(tǒng)可靠性的監(jiān)管;數(shù)據(jù)采集任務主要完成溫度濕度氧濃度的檢測和A/D轉(zhuǎn)換;數(shù)據(jù)處理任務主要完成采集數(shù)據(jù)和設定數(shù)據(jù)的比較判定;數(shù)據(jù)輸出任務主要完成數(shù)據(jù)輸出給LCD、通過RS232傳輸給主機、以及輸出控制信號給繼電器電路,完成通風、加熱、加濕等功能;顯示任務主要完成溫度濕度氧濃度參數(shù)的顯示。系統(tǒng)主程序任務流程圖如圖3所示。

  

 

  圖3 系統(tǒng)主程序任務流程圖

  3.2 μc/OS-II的移植

  μC/OS-II是一種專門為微控制器設計的搶占式實時多任務操作系統(tǒng),它以源代碼的形式給出。其內(nèi)核主要提供進程管理、時間管理、內(nèi)存管理等服務。系統(tǒng)最多支持56個任務,每個任務均有一個獨有的優(yōu)先級。由于其內(nèi)核為搶先式,所以總是處于運行態(tài)最高優(yōu)先級的任務占用CPU。系統(tǒng)提供了豐富的API函數(shù),實現(xiàn)進程之間的通信以及進程狀態(tài)的轉(zhuǎn)化。

  μC/OS-II的軟件體系結(jié)構(gòu)如圖4所示。從圖4中可以看到,如果要使用μC/OS-II, 必須為其編寫OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM三個文件。這三個文件是與芯片的硬件特性有關(guān)的,它們主要提供任務切換與系統(tǒng)時鐘的功能。其它文件用C寫成,它們?yōu)橄到y(tǒng)提供任務管理、任務之間通信、時間管理以及內(nèi)存管理等功能。

  

 

  圖4 μC/OS-II 軟件體系結(jié)構(gòu)示意圖

  μC/OS-II系統(tǒng)時鐘:以凌陽單片機的TMB2時基信號作為系統(tǒng)時鐘,每經(jīng)歷一個時鐘節(jié)拍的時間將產(chǎn)生一次中斷,在中斷服務子程序中會調(diào)用OSTickISR()函數(shù)。

  移植工作的主要內(nèi)容:用#define 設置一個常量值(OS_CPU.H);聲明10個數(shù)據(jù)類型(OS_CPU.H); 用#define 聲明3個宏(OS_CPU.H);用C語言編寫6個簡單的函數(shù)(OS_CPU_C.C);編寫4個匯編語言函數(shù)(OS_CPU_A.ASM)。

  4 結(jié)論

  μC/OS-II RTOS是當今嵌入式應用的熱點之一,應用RTOS提高了測控系統(tǒng)系統(tǒng)的可靠性、實時性,降低了研發(fā)周期。本文基于μC/OS-II構(gòu)建的測控系統(tǒng)應用在漯河農(nóng)業(yè)局2000萬公斤紅薯儲藏保鮮工程項目中,完全達到了設計的控制指標:溫度10-14℃±0.5℃ ,濕度80—95%RH±2%,氧濃度≮4.5%。降低了紅薯因為溫度濕度氧濃度不正常造成的變質(zhì),完好率100%,與不使用本系統(tǒng)的倉儲對比減少損耗25%,約500萬公斤,直接經(jīng)濟效益500多萬元,同時也取得了較好的社會效益。另外,該系統(tǒng)具有較好的可擴展性,很容易擴展到其它對溫度、濕度或者氧濃度有一定要求的領(lǐng)域。經(jīng)試驗,溫度測定范圍可以達到-20-85℃±0.5℃;濕度20—98%RH±2%;氧濃度≮1.5%。所以,該測控系統(tǒng)具有較廣的應用前景。

  本文創(chuàng)新點:采用高性能單片機和高精度溫度傳感器、濕度傳感器和氧濃度傳感器,通過移植μC/OS-II多任務實時操作系統(tǒng),構(gòu)建了高精度、高可靠性的多傳感器嵌入式測控系統(tǒng)。實際工程應用表明,系統(tǒng)擴展性好、測控精度高、性能穩(wěn)定。

傳感器相關(guān)文章:傳感器工作原理


風速傳感器相關(guān)文章:風速傳感器原理
電容傳感器相關(guān)文章:電容傳感器原理
土壤濕度傳感器相關(guān)文章:土壤濕度傳感器原理

上一頁 1 2 下一頁

關(guān)鍵詞: μc/OS-II DS18B20 SPCE061A

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉