<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于STM32F的智能家居服務網(wǎng)關(guān)設(shè)計

          基于STM32F的智能家居服務網(wǎng)關(guān)設(shè)計

          作者: 時間:2013-02-01 來源:網(wǎng)絡(luò) 收藏

          3.2 軟件流程

          軟件流程分為根任務軟件流程和WSN 軟件設(shè)計流程。

          (1)根任務軟件設(shè)計流程

          操作系統(tǒng)環(huán)境中,每個任務都是無限循環(huán)的相對獨立的功能模塊,通常都會有一個根任務,它應

          該被設(shè)定該系統(tǒng)的核心功能業(yè)務。如圖5 為根任務程序流圖,首先板級初始化是對硬件的抽象和封裝,為應用程序提供更友好的接口。然后創(chuàng)建其余6 個應用任務,創(chuàng)建格式與創(chuàng)建開始任務類似。最后程序進入WEB 主循環(huán)程序,為了讓別的優(yōu)先級低的任務能夠執(zhí)行,必須調(diào)用任務掛起函數(shù)。

          圖5 根任務流程

          (2)WSN 網(wǎng)關(guān)軟件設(shè)計流程

          WSN 網(wǎng)關(guān)也叫WSN 協(xié)調(diào)器,它是整個傳感器網(wǎng)絡(luò)的總控制中心和數(shù)據(jù)采集的匯聚點,無線傳感

          器節(jié)點分布在其覆蓋范圍內(nèi)[5]。傳感網(wǎng)網(wǎng)關(guān)的軟件流圖如圖6 所示。程序開始建立Zigbee 網(wǎng)絡(luò),此時網(wǎng)絡(luò)中沒有其他節(jié)點。然后進入無線監(jiān)控程序,查找是否有請求加入網(wǎng)絡(luò)的信號產(chǎn)生,若有新節(jié)點信號申請則根據(jù)信號類型添加入網(wǎng)并分配網(wǎng)絡(luò)號,若不是新節(jié)點,則判定節(jié)點傳輸?shù)臄?shù)據(jù)有效性,有效則接收并發(fā)送到ARM 網(wǎng)關(guān),否則丟棄。

          圖6 WSN 網(wǎng)關(guān)軟件流程

          4 結(jié)語

          文中系統(tǒng)地討論了物聯(lián)網(wǎng)服務網(wǎng)關(guān)這一項物聯(lián)網(wǎng)應用的關(guān)鍵性技術(shù)[6-7],結(jié)合家庭自動化進行

          應用設(shè)計。在硬件方面,按照嵌入式板級硬件設(shè)計流程,設(shè)計并實現(xiàn)了一種ARM 處理器的低成本網(wǎng)關(guān)硬件。軟件設(shè)計上采用自頂向下和分層的設(shè)計方法,結(jié)合網(wǎng)關(guān)硬件,利用嵌入式操作系統(tǒng)

          uCOS-II 和協(xié)議棧LwIP,搭建了一個應用開發(fā)平臺,為應用軟件的開發(fā)提供了良好的軟件環(huán)境。


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();