在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 以太網(wǎng)網(wǎng)關(guān)節(jié)點(diǎn)在節(jié)能計(jì)量系統(tǒng)中的設(shè)計(jì)

            以太網(wǎng)網(wǎng)關(guān)節(jié)點(diǎn)在節(jié)能計(jì)量系統(tǒng)中的設(shè)計(jì)

            作者: 時(shí)間:2017-10-27 來源:網(wǎng)絡(luò) 收藏

              作者:北京博控自動(dòng)化技術(shù)有限公司技術(shù)總監(jiān) 劉楷
              背 景

            本文引用地址:http://www.biyoush.com/article/201710/368545.htm

              能耗監(jiān)測系統(tǒng):指通過對建筑和大型公共建筑安裝分類和分項(xiàng)能耗計(jì)量裝置,采用遠(yuǎn)程傳輸?shù)仁侄渭皶r(shí)采集能耗數(shù)據(jù),實(shí)現(xiàn)重點(diǎn)建筑能耗的在線監(jiān)測和動(dòng)態(tài)分析功能的硬件系統(tǒng)和軟件系統(tǒng)的統(tǒng)稱。

              能耗監(jiān)控的技術(shù)核心在于能耗優(yōu)化,而優(yōu)化的前提是準(zhǔn)確的能耗計(jì)量以及優(yōu)化過程中能耗的計(jì)量。這樣由傳統(tǒng)意義上的“抄表”這樣簡單的數(shù)據(jù)集中演變成了“在線數(shù)據(jù)匯總與控制”,這就對網(wǎng)絡(luò)提出了更高的要求。

              首先,要求網(wǎng)絡(luò)雙向速度。其次,要求靈活的網(wǎng)絡(luò)架構(gòu)。第三要求網(wǎng)絡(luò)能容納足夠的節(jié)點(diǎn)。

              下圖就是一個(gè)典型的網(wǎng)絡(luò)示意圖:

              

              對于每個(gè)建筑或者相對獨(dú)立的內(nèi)部可以使用無線、PLC或者和無線混合組網(wǎng)方式。內(nèi)部的結(jié)構(gòu)如下圖所示:

              

              圖中采集節(jié)點(diǎn)隨著能耗采集和控制方式演變也有多種形式,從最開始的公共建筑和廠礦中的三項(xiàng)電表,到如下圖所示家用、辦公室用的采集插座和無線燈控,越來越多。

              

              

              整個(gè)系統(tǒng)中計(jì)量的核心在于具有數(shù)據(jù)匯聚和處理功能,并且保證PAN和WAN連接的網(wǎng)關(guān)節(jié)點(diǎn)。

              下面我們就重點(diǎn)討論網(wǎng)關(guān)的設(shè)計(jì)。

              設(shè) 計(jì)

              網(wǎng)關(guān)節(jié)點(diǎn)的內(nèi)部結(jié)構(gòu)如下:

              

              這部分內(nèi)容從函數(shù)的級別詳細(xì)解釋了代碼。我們將分別解釋PAN Co-ordinator和End Device的代碼。

              config.h頭文件將被引用到兩個(gè)源代碼文件中,同時(shí)兩個(gè)源代碼文件也引用了以下的頭文件:

              jendefs.h, AppHardwareApi.h, AppQueueApi.h, mac_sap.h, mac_pib.h

              coordinator.c的內(nèi)容

              開發(fā)者最常問的問題之一就是為什么Jennic的程序都沒有Main函數(shù),這個(gè)熟悉的函數(shù)哪里去了呢?這是因?yàn)镴ennic程序都由boot loader來啟動(dòng)和引導(dǎo),boot loader引導(dǎo)完成后就將自動(dòng)的調(diào)用AppColdStart函數(shù),您可以認(rèn)為AppColdStart就是我們通常所說的Main()。

              AppColdStart將進(jìn)行下面的操作:

              1.AppColdStart將調(diào)用函數(shù)vInitSystem(),這一函數(shù)將完成以下任務(wù):

              初始化設(shè)備的IEEE 802.15.4的協(xié)議棧

              設(shè)置PAN ID和PAN Co-ordinator的短地址,在這個(gè)應(yīng)用中這些參數(shù)都由我們預(yù)定義在config.h這個(gè)文件中

              打開射頻接收器

              使Co-ordinator可以接受其他的設(shè)備加入網(wǎng)絡(luò)

              2.AppColdStart()會(huì)調(diào)用vStartEnergyScan(),這一函數(shù)將會(huì)開始在各個(gè)通道進(jìn)行能量掃描以獲得各個(gè)通道的能量級別。所掃描的通道以及速率都定義在config.h中。掃描將通過初始化一個(gè)MLME請求并將其發(fā)送給IEEE 802.15.4的MAC層來實(shí)現(xiàn)。

              3.AppColdStart()將通過調(diào)用vProcessEventQueues()的方式等待MLME的回應(yīng)。vProcessEventQueues()函數(shù)將檢查三個(gè)不同類型的事件隊(duì)列并將接到的事件交給不同的事件處理函數(shù)處理。比如這個(gè)函數(shù)將調(diào)用vProcessIncomingMlme()函數(shù)來處理MLME回應(yīng)。 而這個(gè)函數(shù)將調(diào)用vHandleEnergyScanResponse()來處理能量檢測掃描的回應(yīng)結(jié)果。這個(gè)函數(shù)將檢查所有通道的能量級別,并挑選一個(gè)最安靜的通道作為建立網(wǎng)絡(luò)的通道。接下來將調(diào)用vStartCoordinator()函數(shù),這個(gè)函數(shù)將設(shè)置必要的參數(shù)并且遞交MLME請求來啟動(dòng)網(wǎng)絡(luò),啟動(dòng)網(wǎng)絡(luò)的請求不需要處理任何的回復(fù)信息。

              4.AppColdStart()循環(huán)調(diào)用vProcessEventQueues()來等待其他設(shè)備的加入網(wǎng)絡(luò)的請求,入網(wǎng)請求將以MLME請求的方式發(fā)送到codinator.當(dāng)請求到達(dá)的時(shí)候函數(shù)將調(diào)用vHandleNodeAssociaTIon來處理。接下來codinator將創(chuàng)建并發(fā)送入網(wǎng)請求回復(fù)。

              5.AppColdStart將循環(huán)調(diào)用vProcessEventQueues來處理來自于MCPS的消息隊(duì)列和來自于硬件的消息隊(duì)列。

              當(dāng)數(shù)據(jù)到達(dá)MCPS隊(duì)列后,vProcessEventQueues首先調(diào)用函數(shù)vProcessIncomingMcps()來接收到達(dá)的數(shù)據(jù)幀.vProcessIncomingMcps()調(diào)用vHandleMcpsDataInd(),這個(gè)函數(shù)將調(diào)用vProcessReceivedDataPacket,在這個(gè)函數(shù)里面您可以自定義您自己的數(shù)據(jù)處理過程。

              當(dāng)硬件事件到達(dá)硬件隊(duì)列后,vProcessEventQueues將調(diào)用函數(shù)vProcessIncomingHwEvent來接收到來的事件。您需要在這個(gè)函數(shù)中自定義自己的事件處理過程。

              您可以參考下面的示意圖來理解

              

              圖4-4-9 Coordinator程序流程圖

              enddevice.c的內(nèi)容介紹

              End Device的運(yùn)行過程仍然是從AppColdStart開始。這一函數(shù)和Co-ordinator的運(yùn)行方式完全的不同,下面將詳細(xì)的講解這個(gè)過程。

              1.AppColdStart調(diào)用vInitSystem,這個(gè)函數(shù)將初始化IEEE 802.15.4的協(xié)議棧

              2.AppColdStart()調(diào)用vStartAcTIveScan()開始對于活動(dòng)通道的掃描, End Device將向掃描的通道發(fā)送信標(biāo)請求,并接收PAN Co-ordinator的信標(biāo)請求回應(yīng)。需要掃描的通道和速率將在config.h中定義。掃描請求的初始化和發(fā)送的工作可以通過MLME請求的方式通過IEEE 802.15.4的MAC層發(fā)送。

              3.AppColdStart()將通過vProcessEventQueues來檢查和處理MLME回應(yīng)。這個(gè)函數(shù)將調(diào)用vProcessIncomingMlme()來處理收到的MLME回應(yīng)。vHandleAcTIveScanResponse()會(huì)被調(diào)用處理返回的活動(dòng)通道掃描結(jié)果:

              如果找到PAN Co-ordinator,函數(shù)將保存相應(yīng)的Co-ordinator信息(比如 PAN ID,短地址,邏輯通道),并且調(diào)用vStartAssociate()向Co-ordinator來提交入網(wǎng)請求,這一請求將通過MLME請求的方式提交。

              如果PAN Co-ordinator沒有被找到(可能是由于Co-ordinator還沒有初始化完成)。這一函數(shù)將重新調(diào)用vStartAcTIveScan()來重新啟動(dòng)掃描。

              4. AppColdStart將循環(huán)的調(diào)用vProcessEventQueues()等待來自Co-ordinator的入網(wǎng)回復(fù)。當(dāng)收到回復(fù)后就將調(diào)用vProcessIncomingMlme(),然后將調(diào)用vHandleAssociateResponse來處理回復(fù),接下來的函數(shù)將檢查回復(fù)的狀態(tài):

              如果PAN Co-ordinator接受的入網(wǎng)請求,將設(shè)備置于聯(lián)網(wǎng)狀態(tài)。

              如果PAN Co-ordinator拒絕了入網(wǎng)的請求,函數(shù)就將重新調(diào)用vStartActiveScan()來開始搜索另外一個(gè)PAN Co-ordinator。

              5. AppColdStart()接下來將循環(huán)的調(diào)用vProcessEventQueues來等待來自于PAN Co-ordinator的MCPS信息或者硬件的隊(duì)列信息。

              當(dāng)數(shù)據(jù)到達(dá)了MCPS隊(duì)列,vProcessEventQueue()首先使用函數(shù)vProcessIncomingMcps()來接收數(shù)據(jù)幀,接著調(diào)用vHandleMcpsDataInd(),接著調(diào)用vProcessReceivedDataPacket(),開發(fā)人員可以在這個(gè)函數(shù)里面編寫自己的數(shù)據(jù)處理過程。

              當(dāng)硬件事件到達(dá)硬件事件隊(duì)列,vProcessEventQueues()將調(diào)用vProcessIncomingHwEvent()來接收到達(dá)的事件,您可以在這個(gè)過程中編寫自己的事件處理邏輯。

              下面的圖表示了End Device的工作過程。

              

            圖4-4-10 EndDevice程序流程

              W5500驅(qū)動(dòng):

              Coordinator作為網(wǎng)絡(luò)的中心,通常也是數(shù)據(jù)匯聚的中心。因?yàn)槲覀冊贑oor的代碼中加入W5500的操作。

              硬件連接上W5500作為SPI Slave工作,使用IO管腳如下:

              在系統(tǒng)的初始化vInitSystem()中加入W5500的初始化,

              // 初始化和W5500連接的SPI

              vAHI_SpiConfigure(1, E_AHI_SPIM_MSB_FIRST, E_AHI_SPIM_TXPOS_EDGE,

              E_AHI_SPIM_RXPOS_EDGE, 1, E_AHI_SPIM_INT_DISABLE,

              E_AHI_SPIM_AUTOSLAVE_DSABL);

              使用Eclipse IDE環(huán)境,在工程文件中添加W5500的驅(qū)動(dòng):

              

              圖4-4-11 Eclipse IDE

              在工程導(dǎo)航欄可以看到:

              

              圖4-4-12 工程導(dǎo)航

              然后,把wizchip_conf.c中的接口代碼替換為JN5168的SPI函數(shù):

              void wizchip_cs_select(void)

              {

              /* select slave 1*/

              vAHI_SpiSelect(E_AHI_SPIM_SLAVE_ENBLE_1);

              };

              void wizchip_cs_deselect(void)

              {

              vAHI_SpiStop();

              };

              uint8_t wizchip_spi_readbyte(void)

              {

              u8AHI_SpiReadTransfer8();

              return 0;

              };

              void wizchip_spi_writebyte(uint8_t wb)

              {

              vAHI_SpiStartTransfer8(wb);

              };

              這樣就完成了代碼,我們可以看到無線IEEE802.15.4和W5500的數(shù)據(jù)轉(zhuǎn)接。

              結(jié) 論

              在使用W5500后我們極大的簡化了網(wǎng)關(guān)設(shè)計(jì),這樣保證了通訊速率和可靠性的要求下,用簡單的結(jié)構(gòu)詮釋了“簡單就是可靠”的道理。
            ——本文選自電子發(fā)燒友網(wǎng)4月《物聯(lián)網(wǎng)技術(shù)特刊》透視新設(shè)計(jì)欄目,轉(zhuǎn)載請注明出處,違者必究!



            關(guān)鍵詞: 以太網(wǎng) WPAN

            評論


            相關(guān)推薦

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

            關(guān)閉