国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

短距離無(wú)線網(wǎng)的一個(gè)教學(xué)實(shí)驗(yàn)設(shè)計(jì)

2020-06-30 10:13錢光明易超
計(jì)算機(jī)時(shí)代 2020年6期
關(guān)鍵詞:同步

錢光明 易超

摘? 要: 物聯(lián)網(wǎng)相關(guān)課程的實(shí)驗(yàn)及演示非常重要。文章以nRF24L01無(wú)線模塊和STM32F103單片機(jī)組成基本無(wú)線節(jié)點(diǎn),設(shè)計(jì)教學(xué)模板程序,對(duì)同步和輪轉(zhuǎn)發(fā)包這樣的基本通信手段進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)強(qiáng)調(diào)軟件和硬件相結(jié)合,需要學(xué)生從細(xì)節(jié)入手,充分理解相關(guān)原理,有助于他們真正認(rèn)識(shí)無(wú)線網(wǎng)絡(luò)中相關(guān)重要概念的基本實(shí)現(xiàn)。

關(guān)鍵詞: 同步; 基本無(wú)線節(jié)點(diǎn); 自動(dòng)應(yīng)答; 輪轉(zhuǎn)發(fā)包

中圖分類號(hào):TP393.1? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2020)06-109-03

Abstract: The experiment and demonstration of Internet of Things related courses are very important. In this paper, with a basic wireless node consisted of nRF24L01 wireless module and STM32F103 single-chip microcomputer, the teaching template program is designed to carry out the experiments on the basic communication methods such as synchronization and packet delivery with round robin. The experiment emphasizes the combination of software and hardware, and students need to start with details and fully understand the relevant principles, which is helpful for them to truly understand the basic implementation of the relevant important concepts in wireless networks.

Key words: synchronization; basic wireless node; auto acknowledgment; round robin delivery

0 引言

關(guān)于短距離無(wú)線網(wǎng)課程內(nèi)容的安排,有些學(xué)校偏向于介紹藍(lán)牙和ZigBee等多種協(xié)議,而這些協(xié)議有的其實(shí)非常復(fù)雜[1]。課堂上堆積太多的理論和協(xié)議文件,有時(shí)會(huì)損害學(xué)生的學(xué)習(xí)興趣。并且,相關(guān)實(shí)驗(yàn)教學(xué)的內(nèi)容,也不宜只注重于協(xié)議的高層。較底層的教學(xué)演示和典型無(wú)線原理的底層實(shí)現(xiàn),對(duì)于引導(dǎo)學(xué)生、啟發(fā)學(xué)生、提高學(xué)生興趣來(lái)說(shuō),無(wú)疑是至關(guān)重要的。我們用淘寶網(wǎng)購(gòu)的nRF24L01無(wú)線模塊和STM32F103RCT6單片機(jī)組成價(jià)格實(shí)惠的基本無(wú)線節(jié)點(diǎn)(下稱基本節(jié)點(diǎn)) [2-3],針對(duì)同步和輪轉(zhuǎn)發(fā)包等基本的通信手段,設(shè)計(jì)了相應(yīng)的教學(xué)模板程序和演示實(shí)驗(yàn)。

1 實(shí)驗(yàn)設(shè)計(jì)

1.1 網(wǎng)絡(luò)基本組成和工作方式

圖1是實(shí)驗(yàn)用簡(jiǎn)單無(wú)線局域網(wǎng)示意圖,一個(gè)主節(jié)點(diǎn),三個(gè)從節(jié)點(diǎn)。主節(jié)點(diǎn)和每一個(gè)從節(jié)點(diǎn)的硬件組成(一個(gè)基本節(jié)點(diǎn))完全相同,如節(jié)點(diǎn)2所示,即nRF24L01無(wú)線模塊通過(guò)SPI總線與單片機(jī)STM32F103RCT6相接。

三個(gè)從節(jié)點(diǎn)以輪轉(zhuǎn)方式向主節(jié)點(diǎn)發(fā)送數(shù)據(jù)包。輪轉(zhuǎn)方式是網(wǎng)絡(luò)通信的一種傳統(tǒng)方式[4-5],看似簡(jiǎn)單,不過(guò)首先就需要節(jié)點(diǎn)同步。

通電后,網(wǎng)絡(luò)首先進(jìn)入同步階段。這一階段中,每個(gè)節(jié)點(diǎn)的nRF24L01均設(shè)置為 “非自動(dòng)應(yīng)答”方式,即不能自動(dòng)應(yīng)答[2]。每個(gè)從節(jié)點(diǎn)一開(kāi)始處于等待狀態(tài)(nRF24L01置于無(wú)線接收方式),即等待主節(jié)點(diǎn)發(fā)來(lái)同步包。從節(jié)點(diǎn)成功接收同步包后,就認(rèn)為同步階段結(jié)束。主節(jié)點(diǎn)成功發(fā)送同步包后,也認(rèn)為同步階段結(jié)束。

同步階段之后,進(jìn)入數(shù)據(jù)發(fā)送階段,每個(gè)從節(jié)點(diǎn)以一定時(shí)間間隔輪流向主節(jié)點(diǎn)發(fā)送數(shù)據(jù)包。在這一階段,每個(gè)節(jié)點(diǎn)的nRF24L01可以設(shè)置為“非自動(dòng)應(yīng)答”方式,也可以設(shè)置為“自動(dòng)應(yīng)答”方式?!白詣?dòng)應(yīng)答”的主要原理是:發(fā)送方(本階段為從節(jié)點(diǎn))發(fā)包后,接收方(本階段為主節(jié)點(diǎn))如果接收無(wú)誤,則硬件自動(dòng)快速地產(chǎn)生一個(gè)簡(jiǎn)短的應(yīng)答包(ACK包)并發(fā)出,發(fā)送方收到該ACK包后,就認(rèn)為本次發(fā)送成功,并可產(chǎn)生中斷。

1.2 “非自動(dòng)應(yīng)答”方式的輪轉(zhuǎn)發(fā)包

采用“非自動(dòng)應(yīng)答”方式通信時(shí),節(jié)點(diǎn)中nRF24L01的設(shè)置相對(duì)簡(jiǎn)單,如表1所示。這里還要用到nRF24L01中的“管道”概念[2]。在同步階段,所有從節(jié)點(diǎn)使用的都是管道0。而在數(shù)據(jù)發(fā)送階段,主節(jié)點(diǎn)也使用管道0來(lái)接收來(lái)自從節(jié)點(diǎn)0、從節(jié)點(diǎn)1和從節(jié)點(diǎn)2的數(shù)據(jù)包。

表1中的英文縮寫含義參見(jiàn)文獻(xiàn)[2]。例如,節(jié)點(diǎn)的無(wú)線地址寬度寄存器表示為SETUP_AW,選擇地址寬度為5字節(jié)就使SETUP_AW=0x03,如主節(jié)點(diǎn)在同步階段的5字節(jié)發(fā)送地址為0xE7E7E7E7E7。又如,EN_AA代表硬件自動(dòng)應(yīng)答寄存器。采用“非自動(dòng)應(yīng)答”方式,主從節(jié)點(diǎn)都設(shè)EN_AA=0x00。

關(guān)于輪轉(zhuǎn)的時(shí)間,可以如圖2所示安排:同步后,從節(jié)點(diǎn)0立即發(fā)出數(shù)據(jù)包,而對(duì)于從節(jié)點(diǎn)1和2,同步后要分別等待T和2T時(shí)間后,才發(fā)出各自的數(shù)據(jù)包。數(shù)據(jù)包負(fù)載的第一個(gè)字節(jié)設(shè)計(jì)為節(jié)點(diǎn)的編號(hào),以便主節(jié)點(diǎn)區(qū)分?jǐn)?shù)據(jù)來(lái)自哪一從節(jié)點(diǎn)。利用串口調(diào)試助手,可以直觀地演示出實(shí)驗(yàn)結(jié)果,主節(jié)點(diǎn)情況如圖3所示。圖3中,同步正確后從節(jié)點(diǎn)即輪流發(fā)包,圖中數(shù)字40代表nRF24L01的狀態(tài)寄存器STATUS中6號(hào)位為1,即接收數(shù)據(jù)準(zhǔn)備好標(biāo)志RX_DR有效。

1.3 “自動(dòng)應(yīng)答”方式的輪轉(zhuǎn)發(fā)包

圖2中沒(méi)有設(shè)計(jì)應(yīng)答包(ACK包),從節(jié)點(diǎn)發(fā)送完數(shù)據(jù)包后,不知道主節(jié)點(diǎn)到底收到了沒(méi)有。而如果采用“自動(dòng)應(yīng)答”方式,發(fā)送方可以較快速地知道對(duì)方是否已正確收包,程序中不需要專門準(zhǔn)備ACK包。按照nRF24L01的設(shè)計(jì),采用同一個(gè)頻率通道,一個(gè)主節(jié)點(diǎn)可以接收來(lái)自六個(gè)從節(jié)點(diǎn)的數(shù)據(jù)包。如表2是相關(guān)的參數(shù)設(shè)置。

表2與表1的差異主要在數(shù)據(jù)發(fā)送階段。表2中,主節(jié)點(diǎn)收到任一從節(jié)點(diǎn)的數(shù)據(jù)包后都要硬件自動(dòng)應(yīng)答(發(fā)ACK包),故設(shè)EN_AA=0x07,并且,從節(jié)點(diǎn)通過(guò)管道0發(fā)出數(shù)據(jù)包后需要等待這樣的ACK包,需要使能其管道0的自動(dòng)應(yīng)答,所以EN_AA=0x01。三個(gè)從節(jié)點(diǎn)都使用管道0來(lái)接收ACK包,接收地址就是各自的發(fā)送地址,這幾個(gè)地址對(duì)于這幾個(gè)從節(jié)點(diǎn)是不一樣的,主節(jié)點(diǎn)可以據(jù)此判斷數(shù)據(jù)包來(lái)自哪一從節(jié)點(diǎn),而不需要如表1那樣在數(shù)據(jù)包負(fù)載中作專門安排。另外,主節(jié)點(diǎn)管道2的接收地址與管道1的只差一個(gè)低8位,寫入寄存器RX_ADDR_P2時(shí)只需寫入這一個(gè)字節(jié)。

類似地,“自動(dòng)應(yīng)答”方式的輪轉(zhuǎn)設(shè)計(jì)和主節(jié)點(diǎn)串口助手演示分別如圖4和圖5。圖4與圖2的不同在于每個(gè)節(jié)點(diǎn)都要處理ACK包。例如,發(fā)出一個(gè)數(shù)據(jù)包后從節(jié)點(diǎn)如果沒(méi)收到ACK包,則認(rèn)為本次發(fā)送不成功。圖5中的數(shù)字40、42和44則分別是接收三個(gè)從節(jié)點(diǎn)數(shù)據(jù)包后,主節(jié)點(diǎn)nRF24L01中STATUS寄存器的值。高位4表示RX_DR=1,低位0、2和4分別表示管道0、管道1和管道2。

2 結(jié)束語(yǔ)

文中基于無(wú)線芯片nRF24L01,以“非自動(dòng)應(yīng)答”和“自動(dòng)應(yīng)答”方式,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的四節(jié)點(diǎn)星型網(wǎng)。通過(guò)串口調(diào)試助手軟件,可以較直觀地演示輪轉(zhuǎn)發(fā)包和收包效果。教學(xué)實(shí)踐中激發(fā)了學(xué)生的學(xué)習(xí)興趣,并促使學(xué)生較好地體會(huì)了同步、定時(shí)、輪轉(zhuǎn)調(diào)度等基本原理的實(shí)現(xiàn)。文中的節(jié)點(diǎn)硬件構(gòu)成簡(jiǎn)單、經(jīng)濟(jì)實(shí)惠,并且可設(shè)計(jì)進(jìn)一步的拓展實(shí)驗(yàn)。例如,可以通過(guò)設(shè)定SETUP_RETR為非零值,來(lái)設(shè)置自動(dòng)重發(fā)次數(shù)和改變?nèi)笔〉淖詣?dòng)重發(fā)延遲。還可以進(jìn)行以競(jìng)爭(zhēng)方式實(shí)現(xiàn)收發(fā)包的實(shí)驗(yàn)等。

參考文獻(xiàn)(References):

[1] Bluetooth SIG Proprietary. BLUETOOTH CORESPECIFICATION Version: 5.2[Z].https://www.bluetooth.com,2019.

[2] Nordic Semiconductors. nRF24L01+Single Chip 2.4GHzTransceiver Product Specification v1.0[Z]. https://infocenter.nordicsemi.com,2008.

[3] STMicroelectronics.STM32F103xC STM32F103xDSTM32F103xE Datasheet production data[Z]. https://www.st.com,2018.

[4] 肖敏.交換機(jī)及交換網(wǎng)仿真技術(shù)研究[D].湖南師范大學(xué),2010.

[5] 段敏.基于iSLIP算法的FIFO特性研究[D].湖南師范大學(xué),2010.

猜你喜歡
同步
素質(zhì)教育理念下藝術(shù)教育改革的思路
政府職能的轉(zhuǎn)變與中國(guó)經(jīng)濟(jì)結(jié)構(gòu)調(diào)整的同步
公共藝術(shù)與城市設(shè)計(jì)的協(xié)調(diào)與同步
汽車空調(diào)產(chǎn)品的協(xié)同開(kāi)發(fā)探討
“四化”同步發(fā)展的實(shí)證檢驗(yàn)及實(shí)現(xiàn)路徑研究
冠修復(fù)與根管同步治療隱裂牙牙髓病的臨床研究
時(shí)間統(tǒng)一系統(tǒng)秒同步故障遠(yuǎn)程預(yù)警系統(tǒng)設(shè)計(jì)
基于CAZAC序列的MIMOOFDM定時(shí)同步算法
基于ETL技術(shù)的數(shù)字化校園共享數(shù)據(jù)中心設(shè)計(jì)
育儿| 平和县| 景德镇市| 溆浦县| 武城县| 新绛县| 双牌县| 巴马| 景德镇市| 望谟县| 威宁| 太仆寺旗| 渑池县| 祥云县| 天柱县| 河西区| 军事| 鄯善县| 应用必备| 运城市| 陵水| 达州市| 屯昌县| 巴彦县| 芷江| 涪陵区| 定襄县| 泸水县| 珠海市| 兴安盟| 桑植县| 武乡县| 广丰县| 绥阳县| 苏尼特右旗| 固原市| 永清县| 固安县| 巴青县| 黑水县| 金堂县|