0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于實時操作系統(tǒng)μc/OS-II與SPCE061的嵌入式多傳感器測控系統(tǒng)

電子設(shè)計 ? 來源:郭婷 ? 作者:電子設(shè)計 ? 2018-12-07 09:01 ? 次閱讀

1 引言

隨著嵌入式系統(tǒng)的廣泛應(yīng)用,原來單一傳感器嵌入式系統(tǒng)逐漸向嵌入式多傳感器系統(tǒng)發(fā)展。由此提出了多傳感器任務(wù)調(diào)度分配的問題。本文移植典型的實時嵌入式操作系統(tǒng)μc/OS-II到SPCE061高性能處理器平臺,結(jié)合工程項目對于溫度濕度氧濃度的要求,構(gòu)建了實時嵌入式多傳感器測控系統(tǒng)。

2 系統(tǒng)硬件設(shè)計

2.1 單片機(jī)系統(tǒng)設(shè)計

系統(tǒng)硬件電路原理框圖如圖1所示,主要由SPCE061A單片機(jī)、溫濕度傳感器、氧濃度度傳感器、LCD顯示電路、鍵盤電路、RS232通信電路、時鐘電路等組成。SPCE061A是一款基于μ'nSP內(nèi)核的16位單片機(jī)。

基于實時操作系統(tǒng)μc/OS-II與SPCE061的嵌入式多傳感器測控系統(tǒng)

圖1系統(tǒng)硬件電路原理框圖

2.2 傳感器電路設(shè)計

溫度檢測電路選用Dalls公司生產(chǎn)的三線式數(shù)字溫度傳感器DS18B20。該器件只有3個引腳,不需要外部元件,一條數(shù)據(jù)線進(jìn)行通信。該電路的檢測溫度范圍設(shè)計為0~+50℃;精度為0.5℃;用9bit數(shù)字量來表示溫度;每次將溫度轉(zhuǎn)換成數(shù)字量需200ms。在單總線工作方式下,允許一條信號線上掛接多個DS18B20,DS18B20都有唯一的ROM代碼。在多點溫度測控系統(tǒng)中,ROM代碼是識別和操作DS18B20的基礎(chǔ);無論讀取還是選擇對某一個傳感器進(jìn)行操作,SPCE061A必須發(fā)送64位ROM代碼。

本系統(tǒng)用3塊DS18B20來實現(xiàn)對環(huán)境溫度的檢測,保證在被測環(huán)境范圍內(nèi),溫度分布均勻,測量更加準(zhǔn)確,使用時將DS18B20放置在被測環(huán)境的不同位置。獲得溫度信息時,先由SPCE061A的IOB15腳發(fā)送一個1ms的復(fù)位脈沖,以使DS18B20復(fù)位后將向SPCE061A 發(fā)送一個回應(yīng)脈沖,SPCE061A接到回應(yīng)脈沖后將發(fā)送讀DS18B20序列號的讀ROM命令,以分別讀取三個DS18B20的序列號;然后,SPCE061A再發(fā)出定位命令以選擇在線的DS1820并進(jìn)行溫度轉(zhuǎn)換。當(dāng)溫度轉(zhuǎn)換完成后,SPCE061A的IOB15腳會發(fā)送DS1820的存儲命令,從而完成溫度信息數(shù)據(jù)的轉(zhuǎn)換和讀取。

2路氧濃度檢測選用 DW-02型氧濃度傳感器,主要特點是體積小、響應(yīng)快、線性好、溫漂小等特點,穩(wěn)定。主要技術(shù)指標(biāo): 響應(yīng)時間≤30秒(滿量程的90%) ;測量范圍0~50% O2 ;溫度系數(shù)>0.003% O2/℃ ;線性誤差+0.2%~-0.1% O2 ;使用溫度范圍-20℃~+50℃ ;輸出電流1.1mA+15% 。 本系統(tǒng)測定的含氧量不得低于4.5%。

由于是冬季,當(dāng)儲藏室環(huán)境溫度高于14℃或濕度大于95%RH、或氧濃度低于4.5%設(shè)定值時,不能直接將冷空氣送入儲藏室,必須將室外空氣加熱到12℃送入,否則,會造成紅薯受冷變質(zhì)。三個參數(shù)中,最主要的是溫度值,然后是濕度。繼電器電路的工作情況如表1所示。

基于實時操作系統(tǒng)μc/OS-II與SPCE061的嵌入式多傳感器測控系統(tǒng)

表1 繼電器控制電路工作情況

2.3 鍵盤、顯示電路及通信接口設(shè)計

系統(tǒng)鍵盤電路由3根線連接至SPCE061A的IOA0~IOA2組成,它們分別是功能鍵,增加鍵,減少鍵,用來實現(xiàn)溫、濕度氧濃度的上、下限及控制時間的設(shè)置功能。測控儀采用HT1621驅(qū)動128段LCD顯示器,用于顯示現(xiàn)場的溫、濕度值、O2濃度以及故障和報警狀態(tài)。HT1621是一個128(32×4)段、內(nèi)存映射、多功能、I2C接口的LCD驅(qū)動器

3 軟件設(shè)計

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

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

基于實時操作系統(tǒng)μc/OS-II與SPCE061的嵌入式多傳感器測控系統(tǒng)

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

多任務(wù)系統(tǒng)在運(yùn)行時每個任務(wù)好像獨立占用CPU一樣,因此系統(tǒng)必須為每個任務(wù)開辟一塊內(nèi)存空間作為該任務(wù)的任務(wù)堆棧。該堆棧的作用是保存任務(wù)被切換前時CPU各寄存器的值以及系統(tǒng)堆棧的數(shù)據(jù)。進(jìn)行任務(wù)切換的步驟如下:①將當(dāng)前任務(wù)CPU所有的寄存器壓棧;②將CPU系統(tǒng)堆棧的數(shù)據(jù)全部拷貝到當(dāng)前任務(wù)的任務(wù)堆棧中;③ 得到下一個處于運(yùn)行態(tài)優(yōu)先級最高的任務(wù)的任務(wù)堆棧的指針;④ 恢復(fù)下一個任務(wù)的CPU寄存器的值;⑤ 恢復(fù)下一個任務(wù)的系統(tǒng)堆棧中的數(shù)據(jù);⑥ 通過中斷返回指令或函數(shù)返回指令,間接修改PC寄存器的值來進(jìn)行任務(wù)切換。

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

基于實時操作系統(tǒng)μc/OS-II與SPCE061的嵌入式多傳感器測控系統(tǒng)

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

3.2 μc/OS-II的移植

μC/OS-II是一種專門為微控制器設(shè)計的搶占式實時多任務(wù)操作系統(tǒng),它以源代碼的形式給出。其內(nèi)核主要提供進(jìn)程管理、時間管理、內(nèi)存管理等服務(wù)。系統(tǒng)最多支持56個任務(wù),每個任務(wù)均有一個獨有的優(yōu)先級。

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

基于實時操作系統(tǒng)μc/OS-II與SPCE061的嵌入式多傳感器測控系統(tǒng)

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2552

    文章

    51292

    瀏覽量

    755195
  • 嵌入式
    +關(guān)注

    關(guān)注

    5087

    文章

    19157

    瀏覽量

    306433
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5359

    瀏覽量

    120803
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6859

    瀏覽量

    123502
收藏 人收藏

    評論

    相關(guān)推薦

    【圖書分享】嵌入式實時操作系統(tǒng)μC/OS-II經(jīng)典實例

    嵌入式實時操作系統(tǒng)μC/OS-II經(jīng)典實例:基于STM32處理》作  者:劉波文 等編著 內(nèi)
    發(fā)表于 03-13 10:26

    什么是嵌入式操作系統(tǒng)μC/OS-II?

    任務(wù)較多的應(yīng)用,就會暴露出實時性差、系統(tǒng)可靠性低、穩(wěn)定性差等缺點。什么是嵌入式操作系統(tǒng)μC/OS-II
    發(fā)表于 08-07 06:25

    如何使用凌陽SPCE061A設(shè)計嵌入式應(yīng)用系統(tǒng)?

    。只需設(shè)計少量的片外擴(kuò)展電路即可實現(xiàn)應(yīng)用系統(tǒng)的硬件功能要求。μC/OS-II是一個源代碼公開的精簡的實時性很強(qiáng)的操作系統(tǒng)內(nèi)核,移植性強(qiáng),為什
    發(fā)表于 08-08 06:41

    嵌入式實時操作系統(tǒng)μC/OS-II在LPC2378上怎么移植?

    操作系統(tǒng)及CPU是什么 μCOS-Ⅱ內(nèi)核結(jié)構(gòu)及工作原理嵌入式實時操作系統(tǒng)μ
    發(fā)表于 04-26 06:32

    嵌入式實時操作系統(tǒng)μC/OS-II原理及應(yīng)用

    嵌入式實時操作系統(tǒng)μC/OS-II原理及應(yīng)用 學(xué)習(xí)筆記及課后習(xí)題(節(jié)選)
    發(fā)表于 12-16 06:54

    嵌入式實時操作系統(tǒng)μC/OS-II與eCos的比較

    敘述嵌入式系統(tǒng)嵌入式操作系統(tǒng)的概念,簡述嵌入式實時系統(tǒng)
    發(fā)表于 04-15 09:36 ?12次下載

    嵌入式實時操作系統(tǒng)μC OS-II與eCos的比較

    敘述嵌入式系統(tǒng)嵌入式操作系統(tǒng)的概念,簡述嵌入式實時系統(tǒng)
    發(fā)表于 05-16 14:38 ?20次下載

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

    移植典型的實時嵌入式操作系統(tǒng)μc/OS-IISPCE061 高性能處理
    發(fā)表于 07-09 09:52 ?12次下載

    基于ARM的嵌入式操作系統(tǒng)μC/OS-II的移植

        介紹了μC/OS-II RTOS 的內(nèi)核結(jié)構(gòu)和任務(wù)管理,闡述了ARM 嵌入式芯片的體系結(jié)構(gòu),給出了基于ARM 的嵌入式
    發(fā)表于 09-04 09:49 ?28次下載

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

    基于μc/OS-II傳感器測控系統(tǒng)研究 ?摘要:移植典型的
    發(fā)表于 01-12 10:48 ?920次閱讀
    基于μ<b class='flag-5'>c</b>/<b class='flag-5'>OS-II</b>的<b class='flag-5'>多</b><b class='flag-5'>傳感器</b><b class='flag-5'>測控</b><b class='flag-5'>系統(tǒng)</b>研究

    嵌入式實時操作系統(tǒng)uC/OS-II內(nèi)核_英版

    嵌入式實時操作系統(tǒng)uC/OS-II內(nèi)核_英版資料。
    發(fā)表于 10-29 16:58 ?0次下載

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

    單片機(jī)SPCE061A作為控制芯片,移植可裁剪的多任務(wù)實時操作系統(tǒng)c/OS-II管理多任務(wù)的處理,選用高精度溫度
    發(fā)表于 01-18 01:30 ?464次閱讀

    嵌入式實時操作系統(tǒng)的應(yīng)用詳細(xì)教程說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是嵌入式實時操作系統(tǒng)的應(yīng)用詳細(xì)教程說明包括了:1 嵌入式系統(tǒng)嵌入式
    發(fā)表于 12-05 08:00 ?2次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>實時</b><b class='flag-5'>操作系統(tǒng)</b>的應(yīng)用詳細(xì)教程說明

    基于μC/OS-II操作系統(tǒng)SPCE061A上的移植優(yōu)化研研究

    /OS-II移植到SPCE061A上,在μC/OS-II的平臺上設(shè)計軟件對于提高相關(guān)嵌入式應(yīng)用系統(tǒng)
    發(fā)表于 03-07 09:57 ?850次閱讀
    基于μ<b class='flag-5'>C</b>/<b class='flag-5'>OS-II</b><b class='flag-5'>操作系統(tǒng)</b>在<b class='flag-5'>SPCE061</b>A上的移植優(yōu)化研研究

    基于實時嵌入式操作系統(tǒng)mC/OS-II實現(xiàn)GPRS終端系統(tǒng)的設(shè)計

    實時嵌入式操作系統(tǒng)mC/OS-II面向中小型嵌入式應(yīng)用,包含全部功能模塊的內(nèi)核大約為10KB,RAM的應(yīng)用量主要與
    的頭像 發(fā)表于 05-28 09:59 ?2407次閱讀
    基于<b class='flag-5'>實時</b><b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>mC/<b class='flag-5'>OS-II</b>實現(xiàn)GPRS終端<b class='flag-5'>系統(tǒng)</b>的設(shè)計