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

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > ZigBee空中下載技術(shù)研究及其優(yōu)化設(shè)計(jì)

          ZigBee空中下載技術(shù)研究及其優(yōu)化設(shè)計(jì)

          作者: 時(shí)間:2012-12-05 來(lái)源:網(wǎng)絡(luò) 收藏

          Z-Stack運(yùn)行在一個(gè)OSAL操作系統(tǒng)上,OSAL是一種基于任務(wù)事件調(diào)度機(jī)制的操作系統(tǒng)。每個(gè)任務(wù)包含若干事件,每個(gè)事件對(duì)應(yīng)一個(gè)事件號(hào)。當(dāng)一個(gè)事件需要產(chǎn)生時(shí),可以通過(guò)API函數(shù)設(shè)置相應(yīng)的事件號(hào),然后提交給操作系統(tǒng)調(diào)度觸發(fā)。本文設(shè)計(jì)的功能正是基于這種機(jī)制。OTA服務(wù)器的處理流程如圖2所示,OTA服務(wù)器為每一個(gè)請(qǐng)求更新的節(jié)點(diǎn)分配一個(gè)事件號(hào),并通過(guò)請(qǐng)求節(jié)點(diǎn)的短地址索引,設(shè)置特定的事件。進(jìn)入事件后,OTA服務(wù)器通過(guò)串口向OTA應(yīng)用控制臺(tái)請(qǐng)求鏡像數(shù)據(jù)塊,并向節(jié)點(diǎn)發(fā)送鏡像塊數(shù)據(jù)。通過(guò)把事件添加到定時(shí)器鏈表,就能夠以響應(yīng)間隔為時(shí)間單位,循環(huán)發(fā)送鏡像塊數(shù)據(jù),直到累計(jì)的發(fā)送鏡像塊大小等于節(jié)點(diǎn)的請(qǐng)求鏡像頁(yè)大小,從而完成一次的傳輸過(guò)程。

          本文引用地址:http://www.ex-cimer.com/article/153699.htm

          b.JPG


          Z-Stack協(xié)議棧有一個(gè)MAC定時(shí)器為操作系統(tǒng)提供計(jì)時(shí)。該定時(shí)器以每1 ms為單位,更新系統(tǒng)的定時(shí)器事件鏈表。定時(shí)器事件鏈表如圖3所示,鏈表的每一個(gè)結(jié)點(diǎn)記錄了任務(wù)號(hào)(task_id)、事件號(hào)(event_flag),計(jì)時(shí)時(shí)間(timeout)和下一個(gè)結(jié)點(diǎn)地址(*next)。圖中的ZCL_OTA_MT_ READ n定義為每個(gè)請(qǐng)求節(jié)點(diǎn)對(duì)應(yīng)的事件號(hào),Response Spacing即為節(jié)點(diǎn)請(qǐng)求的響應(yīng)間隔,把兩者添加到鏈表當(dāng)中。當(dāng)計(jì)時(shí)時(shí)間減為0后,系統(tǒng)自動(dòng)設(shè)定對(duì)應(yīng)的事件號(hào),從而使OTA服務(wù)器循環(huán)地向OTA應(yīng)用控制臺(tái)索取鏡像塊數(shù)據(jù),并向節(jié)點(diǎn)發(fā)送鏡像塊響應(yīng)。

          c.JPG


          OTA服務(wù)器處理鏡像頁(yè)請(qǐng)求的部分代碼段如下:
          d.JPG
          e.JPG



          評(píng)論


          相關(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); })();