新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ZigBee無線網絡的嵌入式智能家居監控系統

        基于ZigBee無線網絡的嵌入式智能家居監控系統

        作者: 時間:2014-04-18 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/256955.htm

        1.3.uC/OS-II的移植

        實時系統中任務的執行大多數都是由外部事件觸發的。也就是說,實時操作系統的主要工作就是響應并處理各種外部事件。因此,對于每個外部事件都對應有一個處理這個事件的程序模塊,這些模塊就是任務。在移植前,把問題分析清楚,將問題分割成多個任務,每個任務都是整個應用的一部分,被賦予一定的優先級,有自己的一套CPU寄存器和堆棧空間。任務執行一次后,設置延時OSTDIy,表明經過OSTDIy個定時器中斷周期后任務再次運行,然后進行任務切換,讓處于就緒態的優先級最高的任務運行。uC/OS-II的任務實際上就是一段程序,在運行該程序時,可以認為CPU就完全屬于該程序本身。在本設計中,所移植的系統建立了8個任務(參照見圖2):

        0號任務,用來監測安防傳感器(煤氣泄露)。在執行該任務時通過網絡協調器選擇與安防傳感器(煤氣泄露)終端節點通信,采集傳感器數據。

        1號任務,用來監測安防傳感器(溫度)。在執行該任務時通過網絡協調器選擇與安防傳感器(溫度)終端節點通信,采集傳感器數據。

        2號任務,與0號任務對應,將安防傳感器(煤氣泄露)采集的數據最終通過以太網上傳到上位機上。

        3號任務,與1號任務對應,將安防傳感器(溫度)采集的數據最終通過以太網上傳到上位機上。

        4號任務,用來控制冰箱、空調、電視、燈的電源開關,通常情況下,這些開關型控制,只用一個任務就可以完成,只要在執行該任務時,同時通過網絡協調器同時發送一個16位地址符就可以選擇出所要執行開關任務的終端節點。

        5號任務,單獨為窗簾建立一個任務。因為窗簾的控制是一個閉環控制。

        6號任務,為電表、水表、燃氣表的數據采集建立一個任務。因為水表、電表、燃氣表的數據對實時性要求沒有那么高,可以分時采集,在執行該任務時,同時通過ZigBee網絡協調器同時發送一個16位地址符就可以選擇出所要執行數據采集任務的終端節點,另外,還要為該任務調用一個延時函數,并設置延時時鐘周期數,從而最終實現在三表間輪流數據采集。

        7號任務,用來對三表數據上傳到上位機建立任務。對應于任務6,分別將從水、電、燃氣表采集的數據立即上傳。

        它們具有各自獨立的堆棧空間和不同的靜態優先級,0號任務優先級最高,7號任務優先級最低。對于0號任務---3號任務,由于它們是保證家居安全的是不允許中斷響應的,所以在這些任務開始執行時,一定要關閉中斷。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 塔河县| 固阳县| 黎城县| 沽源县| 宿州市| 武功县| 新泰市| 科技| 鹿邑县| 凌海市| 景东| 磐石市| 西峡县| 柳江县| 托里县| 报价| 屏东市| 永靖县| 安康市| 师宗县| 罗平县| 钟山县| 肇源县| 灯塔市| 双江| 郓城县| 滨海县| 南郑县| 烟台市| 康平县| 东光县| 嵩明县| 武川县| 炎陵县| 教育| 全南县| 南充市| 夏河县| 三明市| 衡南县| 巩义市|