• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2021-07-20 12:02:44錢光明易超
      計(jì)算機(jī)時(shí)代 2021年6期
      關(guān)鍵詞:同步

      錢光明 易超

      摘 ?要: 物聯(lián)網(wǎng)相關(guān)課程的實(shí)驗(yàn)及演示非常重要。文章以nRF24L01無線模塊和STM32F103單片機(jī)組成基本無線節(jié)點(diǎn),設(shè)計(jì)教學(xué)模板程序,對同步和輪轉(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ǎng)絡(luò)中相關(guān)重要概念的基本實(shí)現(xiàn)。

      關(guān)鍵詞: 同步; 基本無線節(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ǎ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é)演示和典型無線原理的底層實(shí)現(xiàn),對于引導(dǎo)學(xué)生、啟發(fā)學(xué)生、提高學(xué)生興趣來說,無疑是至關(guān)重要的。我們用淘寶網(wǎng)購的nRF24L01無線模塊和STM32F103RCT6單片機(jī)組成價(jià)格實(shí)惠的基本無線節(jié)點(diǎn)(下稱基本節(jié)點(diǎn)) [2-3],針對同步和輪轉(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)用簡單無線局域網(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無線模塊通過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é)點(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)一開始處于等待狀態(tài)(nRF24L01置于無線接收方式),即等待主節(jié)點(diǎn)發(fā)來同步包。從節(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))如果接收無誤,則硬件自動(dòng)快速地產(chǎn)生一個(gè)簡短的應(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è)置相對簡單,如表1所示。這里還要用到nRF24L01中的“管道”概念[2]。在同步階段,所有從節(jié)點(diǎn)使用的都是管道0。而在數(shù)據(jù)發(fā)送階段,主節(jié)點(diǎn)也使用管道0來接收來自從節(jié)點(diǎn)0、從節(jié)點(diǎn)1和從節(jié)點(diǎn)2的數(shù)據(jù)包。

      表1中的英文縮寫含義參見文獻(xiàn)[2]。例如,節(jié)點(diǎn)的無線地址寬度寄存器表示為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ù)包,而對于從節(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ù)來自哪一從節(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中沒有設(shè)計(jì)應(yīng)答包(ACK包),從節(jié)點(diǎn)發(fā)送完數(shù)據(jù)包后,不知道主節(jié)點(diǎn)到底收到了沒有。而如果采用“自動(dòng)應(yīng)答”方式,發(fā)送方可以較快速地知道對方是否已正確收包,程序中不需要專門準(zhǔn)備ACK包。按照nRF24L01的設(shè)計(jì),采用同一個(gè)頻率通道,一個(gè)主節(jié)點(diǎn)可以接收來自六個(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)通過管道0發(fā)出數(shù)據(jù)包后需要等待這樣的ACK包,需要使能其管道0的自動(dòng)應(yīng)答,所以EN_AA=0x01。三個(gè)從節(jié)點(diǎn)都使用管道0來接收ACK包,接收地址就是各自的發(fā)送地址,這幾個(gè)地址對于這幾個(gè)從節(jié)點(diǎn)是不一樣的,主節(jié)點(diǎn)可以據(jù)此判斷數(shù)據(jù)包來自哪一從節(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)如果沒收到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é)束語

      文中基于無線芯片nRF24L01,以“非自動(dòng)應(yīng)答”和“自動(dòng)應(yīng)答”方式,實(shí)現(xiàn)了一個(gè)簡單的四節(jié)點(diǎn)星型網(wǎng)。通過串口調(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)成簡單、經(jīng)濟(jì)實(shí)惠,并且可設(shè)計(jì)進(jìn)一步的拓展實(shí)驗(yàn)。例如,可以通過設(shè)定SETUP_RETR為非零值,來設(shè)置自動(dòng)重發(fā)次數(shù)和改變?nèi)笔〉淖詣?dòng)重發(fā)延遲。還可以進(jìn)行以競爭方式實(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)變與中國經(jīng)濟(jì)結(jié)構(gòu)調(diào)整的同步
      商情(2016年42期)2016-12-23 14:26:58
      公共藝術(shù)與城市設(shè)計(jì)的協(xié)調(diào)與同步
      有源應(yīng)答器DBPL解碼算法研究及FPGA實(shí)現(xiàn)
      一種新型雙軌同步焊接的焊接裝置
      讓思維訓(xùn)練與口才訓(xùn)練同時(shí)進(jìn)行
      汽車空調(diào)產(chǎn)品的協(xié)同開發(fā)探討
      “四化”同步發(fā)展的實(shí)證檢驗(yàn)及實(shí)現(xiàn)路徑研究
      冠修復(fù)與根管同步治療隱裂牙牙髓病的臨床研究
      時(shí)間統(tǒng)一系統(tǒng)秒同步故障遠(yuǎn)程預(yù)警系統(tǒng)設(shè)計(jì)
      合作市| 乃东县| 赣榆县| 满洲里市| 旬阳县| 苏尼特左旗| 萨嘎县| 吕梁市| 登封市| 青神县| 尉犁县| 滦南县| 和林格尔县| 信丰县| 宣城市| 海口市| 泾源县| 疏附县| 东辽县| 山西省| 松桃| 和政县| 柳州市| 日土县| 邳州市| 肥乡县| 会宁县| 桂阳县| 揭西县| 九龙坡区| 平原县| 安福县| 弋阳县| 灵石县| 福贡县| 阜阳市| 湾仔区| 汉寿县| 宿迁市| 隆子县| 宜君县|