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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM9處理器的ZigBee工業(yè)以太網(wǎng)網(wǎng)關(guān)設(shè)計

          基于ARM9處理器的ZigBee工業(yè)以太網(wǎng)網(wǎng)關(guān)設(shè)計

          作者: 時間:2011-08-22 來源:網(wǎng)絡(luò) 收藏
          圖3 網(wǎng)關(guān)軟件設(shè)計架構(gòu)

            圖3 軟件架構(gòu)

            軟件執(zhí)行流程圖如圖4 所示,底層的硬件初始化包括時鐘的設(shè)置、GPIO 的管理、串口的配置、接口MII 的配置以及PHY 芯片的設(shè)置等,然后CC2520 的初始化配置無線通信模塊符合 協(xié)議標(biāo)準(zhǔn),CC2520 初始化設(shè)置后,模塊即可以實現(xiàn)透明串口傳輸,與ARM 進(jìn)行數(shù)據(jù)交互。為適應(yīng)短幀實時和確定性通信發(fā)展趨勢,通信采用UDP/IP 協(xié)議啟動linux 內(nèi)核多任務(wù)調(diào)度管理,進(jìn)行串口數(shù)據(jù)的收發(fā)、UDP 的接收與發(fā)送以及嵌入式WebServer 等任務(wù)。

            

          圖4 軟件執(zhí)行流程

            圖4 軟件執(zhí)行流程

            3 協(xié)議轉(zhuǎn)換軟件

            TCP/IP 協(xié)議使用MAC 地址進(jìn)行硬件地址的識別并使用ARP 協(xié)議進(jìn)行硬件地址到IP 地址的解析因此必須完成 到ARP 地址的轉(zhuǎn)換,才能保證正常通訊ZigBee 中每個節(jié)點都有自己的MAC 地址,格式由64 位長地址和16 位短地址組成文章實現(xiàn)了ZigBee協(xié)議中適配層和ARP,完成ZigBee 中MAC 地址到以太網(wǎng)IP 地址的映射工作流程圖如圖5 所示當(dāng)接收到一個正常發(fā)往本地IP 的以太網(wǎng)數(shù)據(jù)包后,經(jīng)過協(xié)議判斷送往上層UDP(TCP)處理,最后到的應(yīng)用程序處理網(wǎng)關(guān)應(yīng)用程序經(jīng)過分析判斷,確定需要轉(zhuǎn)發(fā)給ZigBee 網(wǎng)絡(luò)中的哪個節(jié)點,經(jīng)過ZigBee 端的ARP 地址解析出對應(yīng)的ZigBee 中的節(jié)點MAC地址,將相應(yīng)的數(shù)據(jù)包送至該節(jié)點,完成一次數(shù)據(jù)通訊。

            同理,當(dāng)ZigBee 端收到數(shù)據(jù)包后,通過同樣的解析將數(shù)據(jù)包送至對應(yīng)節(jié)點或設(shè)備通過內(nèi)嵌的WebServer 用戶可實現(xiàn)ZigBee 節(jié)點的實時訪問、修改、組態(tài)等。

            

          圖5 網(wǎng)關(guān)協(xié)議工作框圖

            圖5 網(wǎng)關(guān)協(xié)議工作框圖

            4 結(jié)束語

            在網(wǎng)關(guān)中內(nèi)嵌WebServer,可通過以太網(wǎng)隨時訪問或修改現(xiàn)場儀表的數(shù)據(jù),實現(xiàn)遠(yuǎn)程控制,遠(yuǎn)程診斷等該產(chǎn)品有效的解決了現(xiàn)場短距離ZigBee 無線通訊連接以太網(wǎng)的問題,以全新的方式向物聯(lián)網(wǎng)靠攏.


          上一頁 1 2 下一頁

          評論


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