0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于MCU和nRF24L01的無線通信系統(tǒng)

jf_pJlTbmA9 ? 來源:網(wǎng)絡 ? 作者:網(wǎng)絡 ? 2023-11-03 16:34 ? 次閱讀
隨著微電子技術的迅速發(fā)展,高性能MCU廣泛地運用在嵌入式系統(tǒng)中,完成數(shù)據(jù)的采集、分析、處理與通訊功能。有線模式下的數(shù)據(jù)通訊系統(tǒng),由于受時空、環(huán)境等因素的制約,不能完全滿足所有條件下任務的執(zhí)行,而通過無線數(shù)據(jù)傳輸方式代替有線數(shù)據(jù)傳輸,則能很好地解決此類問題。綜上論述,文中提出一種基于高性能MCU和nRF24L01的網(wǎng)絡無線通信系統(tǒng)的解決方案,穩(wěn)定可靠地實現(xiàn)數(shù)據(jù)傳輸,滿足各種條件的需要。

1 系統(tǒng)硬件設計

1.1 nRF24L01無線通訊模塊介紹

系統(tǒng)選用云佳科技的nRF24L01無線射頻收發(fā)模塊來實現(xiàn)子母機間的通訊,它使用Nordic公司的nRF24L01芯片開發(fā)而成,是一款工作在2.4~2.5 GHz世界通用ISM頻段的單片無線收發(fā)器芯片,其具有如下性能特點:

(1)低工作電源電壓,且范圍廣1.9~3.6 V,體積小巧,能方便集成到各種電子器件。

(2)極低的功耗。當工作在發(fā)射模式下發(fā)射功率為-6 dBm時電流消耗為9 mA,接收模式時為12.3 mA。待機模式下電流消22μA,掉電模式電流消耗僅為900 nA。

(3)無線速率達到2 Mbit?s-1,SPI接口速率為0~8 Mbit?s-1,具自動應答機制,極大地降低丟包率。

(4)擁有自動重發(fā)功能、地址及CRC校驗功能。

(5)具有125個可選工作頻道,擁有很短的頻道切換時間,可用于跳頻。

1.2 STC12L5608AD芯片簡介

STC12L5608AD型MCU是宏晶科技新一代低電壓增強型8051單片機,該系列單片機具有如下特性:寬工作電壓(2.1~3.6 V);具有1個時鐘/機器周期的高速性能,比普通8051快8~12倍,可用低頻晶振;自帶-8路10位AD轉(zhuǎn)換器等;加密性強,無法解密;超強抗干擾、高抗靜電、輕松過4 kV快速脈沖干擾(EFT測試)、寬溫度范圍(-40~85℃);超低功耗,正常工作模式2.7~7 mA,空閑模式1.8mA,掉電模式功耗<0.1μA;能在系統(tǒng)編程等。

1.3 硬件接口電路

nRF24L01通過SPI接口與外部單片機進行數(shù)據(jù)交換,CE作為片選端,它與CONFIG寄存器的PWR_UP和PRIM_RX位組合用于選擇芯片的工作方式;CSN為芯片內(nèi)部SPI硬件接口的使能端,低電平有效;SCK為SPI的時鐘輸入端,MOSI為SPI接口的數(shù)據(jù)輸入端,MISO為SPI接口的數(shù)據(jù)輸出端,IRQ為中斷請求端,與單片機的外部中斷1相連,當nRF24L01產(chǎn)生中斷后IRQ將置低,單片機檢測到此中斷后通過程序得知其與nRF24L01無線射頻模塊的數(shù)據(jù)收發(fā)情況。通過單片機與無線通訊模塊的硬件連接,從而實現(xiàn)模式控制和數(shù)據(jù)交換。圖2給出兩模塊的硬件接口設計。整個無線通訊系統(tǒng)由3個模塊組成。

2 系統(tǒng)軟件設計

2.1 數(shù)據(jù)包處理方式

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

nRF24L01在接收模式下可以接收6路不同通道的數(shù)據(jù),如圖3所示。每個數(shù)據(jù)通道使用不同的地址,但共用相同的頻道。即6個不同的nRF 24L01設置為發(fā)送模式后,可以與同一個設置為接收模式的nRF24L01進行通訊,而設置為接收模式的nRF24L01可以對這6個發(fā)射端進行識別。n RF24L01在確認收到數(shù)據(jù)后記錄地址,并以此地址為目標地址發(fā)送應答信號。在發(fā)送端,數(shù)據(jù)通道0被用作接收應答信號。

2.2 系統(tǒng)軟件設計流程

程序基本思路為子模塊配置為接收狀態(tài),如成功接收到數(shù)據(jù)則進行EEPROM子程序操作,否則切換成發(fā)射模式,成功發(fā)送并接收到應答信號后再變成接收模式,進入下一次接收發(fā)射循環(huán);主模塊設置為接收數(shù)據(jù)信息狀態(tài),能與多路處于發(fā)射狀態(tài)的數(shù)據(jù)通道進行通訊,并從接收到的數(shù)據(jù)中判別數(shù)據(jù)通道口;接收信息后自動回復應答信號。通過切換接收發(fā)射狀態(tài)實現(xiàn)多點對單點的雙向無線數(shù)據(jù)通訊。

2.2.1 nRF24L01初始化程序

nRF24L01初始化程序包括引腳初始化和中斷初始化。引腳初始化使芯片工作在待機模式下(CE=0),時鐘設置SCK低電平,片選不使能(CSN=1),工作在串行輸入狀態(tài)(MOSI=0);中斷初始化則使能外部中斷(EX1=1),低電平觸發(fā)。

2.2.2 nRF24L01配置接收/發(fā)射模式

對芯片內(nèi)部的特殊功能寄存器進行初始化操作。

通過對CONFID配置設定其工作模式,設置接收地址,接收有效數(shù)據(jù)寬度、選擇射頻通道、數(shù)據(jù)傳輸率、發(fā)射功率等參數(shù)。配置完成后,置高CE,準備接收數(shù)據(jù)包,如表1所示。

2.2.3 單片機內(nèi)部EEPROM應用子程序

單片機內(nèi)部EEPROM應用子程序進行扇區(qū)的擦除、寫入以及讀出功能,實現(xiàn)系統(tǒng)信息的讀取保存。

STC12L5608AD單片機內(nèi)部有8個扇區(qū),每個扇區(qū)512 Byte。在使用時,統(tǒng)一修改的數(shù)據(jù)放在同一個扇區(qū)。使用ISP/IAP功能,所使用的特殊功能寄存器為ISP_DATA、ISP_ADDRH、ISP_ADDRL、ISP_CMD、ISP_TRIG、ISP_CONTR。扇區(qū)寫入數(shù)據(jù)流程圖如圖5所示,扇區(qū)擦除以及讀操作流程與之類似。

3 結(jié)束語

介紹了利用高性能MCU和nRF24L01芯片設計的網(wǎng)絡化無線通訊系統(tǒng),說明了其軟硬件設計要點。該系統(tǒng)已應用于某故障監(jiān)測系統(tǒng)中,系統(tǒng)成本低、體積小、傳輸速率高、具有良好的通用性和可靠性,可供無線數(shù)據(jù)傳輸系統(tǒng)參考。

審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    450

    文章

    49632

    瀏覽量

    417136
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16666

    瀏覽量

    347759
  • 無線通訊
    +關注

    關注

    5

    文章

    563

    瀏覽量

    39265
收藏 人收藏

    評論

    相關推薦

    SI24R1 TO NRF24L01P 引腳及軟硬件中文開發(fā)資料

    的視野是與友商的NRF24L01P芯片兼容通信。從而被打上了國產(chǎn)NRF24L01P的標簽,更有甚者居然磨掉芯片原本的SI24R1的LOGO打成NRF
    發(fā)表于 07-30 14:26

    NRF24L01加個if就發(fā)送不成功的原因?

    我最近在調(diào)個NRF24L01其實早已經(jīng)調(diào)試好了,之前都是一個發(fā)送一個接,我現(xiàn)在想改成,我發(fā)送端發(fā)送成功后,接收端能返回信息回來。我調(diào)試時發(fā)現(xiàn)在把發(fā)送函數(shù)放到“if”里面發(fā)送不成功.把\"
    發(fā)表于 05-10 07:06

    無線通信時代nRF24L01無線模塊的應用與特點

    nRF24L01是一種低功耗、高性能的2.4GHz無線收發(fā)器,由Nordic Semiconductor公司開發(fā)。它廣泛應用于無線通信領域,特別是在低功耗應用和物聯(lián)網(wǎng)設備中。
    的頭像 發(fā)表于 04-16 16:05 ?2356次閱讀
    <b class='flag-5'>無線通信</b>時代<b class='flag-5'>nRF24L01</b><b class='flag-5'>無線</b>模塊的應用與特點

    NRF24L01P和SI24R1的區(qū)別

    NRF24L01無線模塊廣泛地運用于:無線門禁、無線數(shù)據(jù)通訊、安防系統(tǒng)、遙控裝置、遙感 勘測、智能運動設備、工業(yè)傳感器;平常我們用到的
    發(fā)表于 03-29 15:05

    nrf24l01接收延遲什么原因

    NRF24L01是一種低功耗的無線收發(fā)模塊,廣泛應用于各種無線通信系統(tǒng)中。它具有高度集成的特點,具備理想的發(fā)射和接收功率,還能提供數(shù)據(jù)速率高達2Mbps的
    的頭像 發(fā)表于 12-29 10:14 ?903次閱讀

    nRF24L01單片無線收發(fā)器芯片中文手冊

    電子發(fā)燒友網(wǎng)站提供《nRF24L01單片無線收發(fā)器芯片中文手冊.pdf》資料免費下載
    發(fā)表于 11-17 10:07 ?3次下載
    <b class='flag-5'>nRF24L01</b>單片<b class='flag-5'>無線</b>收發(fā)器芯片中文手冊

    請問nrf24l01最遠能達到多遠?

    nrf24l01最遠能達到多遠,淘寶上有幾千米的,是真的嗎?
    發(fā)表于 11-07 07:02

    利用SPI控制器控制nRF24L01射頻模塊的驅(qū)動程序設計

    電子發(fā)燒友網(wǎng)站提供《利用SPI控制器控制nRF24L01射頻模塊的驅(qū)動程序設計.pdf》資料免費下載
    發(fā)表于 11-06 16:34 ?1次下載
    利用SPI控制器控制<b class='flag-5'>nRF24L01</b>射頻模塊的驅(qū)動程序設計

    基于nRF24L01的通用無線通信模塊設計案例

    電子發(fā)燒友網(wǎng)站提供《基于nRF24L01的通用無線通信模塊設計案例.pdf》資料免費下載
    發(fā)表于 11-06 16:28 ?8次下載
    基于<b class='flag-5'>nRF24L01</b>的通用<b class='flag-5'>無線通信</b>模塊設計案例

    基于nRF24L01+的數(shù)據(jù)無線傳輸系統(tǒng)的設計與實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于nRF24L01+的數(shù)據(jù)無線傳輸系統(tǒng)的設計與實現(xiàn).pdf》資料免費下載
    發(fā)表于 11-06 15:53 ?1次下載
    基于<b class='flag-5'>nRF24L01</b>+的數(shù)據(jù)<b class='flag-5'>無線</b>傳輸<b class='flag-5'>系統(tǒng)</b>的設計與實現(xiàn)

    基于nRF24L01無線通信系統(tǒng)設計

    電子發(fā)燒友網(wǎng)站提供《基于nRF24L01無線通信系統(tǒng)設計.pdf》資料免費下載
    發(fā)表于 10-26 14:42 ?0次下載
    基于<b class='flag-5'>nRF24L01</b>的<b class='flag-5'>無線通信系統(tǒng)</b>設計

    基于NRF24L01的IMU數(shù)據(jù)無線傳輸系統(tǒng)設計

    電子發(fā)燒友網(wǎng)站提供《基于NRF24L01的IMU數(shù)據(jù)無線傳輸系統(tǒng)設計.doc》資料免費下載
    發(fā)表于 10-26 11:21 ?0次下載
    基于<b class='flag-5'>NRF24L01</b>的IMU數(shù)據(jù)<b class='flag-5'>無線</b>傳輸<b class='flag-5'>系統(tǒng)</b>設計

    基于TC35和nRF24L01的遠程智能監(jiān)控系統(tǒng)設計

    電子發(fā)燒友網(wǎng)站提供《基于TC35和nRF24L01的遠程智能監(jiān)控系統(tǒng)設計.pdf》資料免費下載
    發(fā)表于 10-23 10:34 ?0次下載
    基于TC35和<b class='flag-5'>nRF24L01</b>的遠程智能監(jiān)控<b class='flag-5'>系統(tǒng)</b>設計

    請問nrf24l01傳輸過程中結(jié)束符有什么作用?

    nrf24l01傳輸過程中結(jié)束符有什么作用?
    發(fā)表于 10-23 07:31

    nrf51822怎么和nrf24l01通訊?

    51822可以不使用藍牙協(xié)議棧,然后怎么和nrf24l01通訊
    發(fā)表于 09-27 06:50