• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 手機與無線通信 > 設計應用 > 基于MCU和nRF24L01的無線通信系統設計

    基于MCU和nRF24L01的無線通信系統設計

    作者: 時間:2012-06-27 來源:網絡 收藏


    2 軟件
    2.1 數據包處理方式
    配置成增強型ShockBurst模式,使得雙向鏈接協議執行更為簡易有效。發送方要求終端設備在接收數據后有應答信號,以便發送方檢測有無數據丟失。一旦數據丟失則通過重新發送功能將丟失的數據恢復。它可以同時控制應答及重發功能而無需增加工作量。nR F24L01配置為增強型的ShockBurst發送模式下時,只要有數據要發送,就會啟動ShockBurst模式來發送數據。在發送完數據后轉到接收模式并等待終端的應答信號。如未收到應答信號,nRF24L01將重發相同的數據包,直到收到應答信號或重發次數超過SETUP _RETR_ARC寄存器中設置的值為止。如果重發次數超過了設定值,則產生MAX_RT中斷。只要收到確認信號,nRF24L01就認為最后一包數據已經發送成功,把TX FIFO中的數據清除掉并產生TX_DS中斷,IRQ引腳置高。

    本文引用地址:http://www.czjhyjcfj.com/article/154546.htm

    c.JPG


    nRF24L01在接收模式下可以接收6路不同通道的數據,如圖3所示。每個數據通道使用不同的地址,但共用相同的頻道。即6個不同的nRF 24L01設置為發送模式后,可以與同一個設置為接收模式的nRF24L01進行通訊,而設置為接收模式的nRF24L01可以對這6個發射端進行識別。n RF24L01在確認收到數據后記錄地址,并以此地址為目標地址發送應答信號。在發送端,數據通道0被用作接收應答信號。
    2.2 軟件流程
    圖4為子模塊和主模塊程序流程圖,軟件開發環境為KeilC uVision3。

    d.JPG


    程序基本思路為子模塊配置為接收狀態,如成功接收到數據則進行EEPROM子程序操作,否則切換成發射模式,成功發送并接收到應答信號后再變成接收模式,進入下一次接收發射循環;主模塊設置為接收數據信息狀態,能與多路處于發射狀態的數據通道進行通訊,并從接收到的數據中判別數據通道口;接收信息后自動回復應答信號。通過切換接收發射狀態實現多點對單點的雙向無線數據通訊。
    2.2.1 nRF24L01初始化程序
    nRF24L01初始化程序包括引腳初始化和中斷初始化。引腳初始化使芯片工作在待機模式下(CE=0),時鐘設置SCK低電平,片選不使能(CSN=1),工作在串行輸入狀態(MOSI=0);中斷初始化則使能外部中斷(EX1=1),低電平觸發。
    2.2.2 nRF24L01配置接收/發射模式
    對芯片內部的特殊功能寄存器進行初始化操作。
    通過對CONFID配置設定其工作模式,設置接收地址,接收有效數據寬度、選擇射頻通道、數據傳輸率、發射功率等參數。配置完成后,置高CE,準備接收數據包,如表1所示。

    e.JPG



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 牙克石市| 毕节市| 汤原县| 濮阳市| 乐平市| 濮阳市| 汝南县| 方正县| 庆阳市| 武威市| 灵山县| 蓬莱市| 灵寿县| 平罗县| 黄平县| 防城港市| 连州市| 五家渠市| 阳朔县| 上高县| 万山特区| 古交市| 桂东县| 遂平县| 兴安县| 宕昌县| 腾冲县| 江孜县| 喀喇沁旗| 奎屯市| 通榆县| 舟曲县| 保靖县| 平山县| 陆河县| 故城县| 宝鸡市| 昌邑市| 道孚县| 黎城县| 镇平县|