<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產(chǎn)品分類

      當(dāng)前位置: 首頁 > 工業(yè)電子產(chǎn)品 > 其他電子產(chǎn)品 > IoT物聯(lián)網(wǎng) > IoT傳感器

      類型分類:
      科普知識(shí)
      數(shù)據(jù)分類:
      IoT傳感器

      LoRa學(xué)習(xí):LoRa數(shù)據(jù)接受發(fā)送流程(FIFO)

      發(fā)布日期:2022-05-25 點(diǎn)擊率:51

      包數(shù)據(jù)的時(shí)候才會(huì)啟動(dòng)射頻、PLL和PA模塊,可以減少功耗。。
      如下圖為數(shù)據(jù)發(fā)送流程:

      從上圖可以看出,LoRa發(fā)送前一直處于待機(jī)狀態(tài),在初始化Tx模塊后,將待發(fā)送數(shù)據(jù)(Payload)寫入FIFO,然后切換到發(fā)送狀態(tài)將數(shù)據(jù)通過LoRa調(diào)制成信號(hào)發(fā)送出去,等到發(fā)送完成后,會(huì)產(chǎn)生TxDone中斷,同時(shí)再次切換為待機(jī)狀態(tài),完成一個(gè)發(fā)送流程。。

      需要注意:

      • 靜態(tài)配置寄存器只有在睡眠、待機(jī)模式才可寫

      • LoRa的FIFO只有在待機(jī)模式下才可寫

      • 通過發(fā)送Tx模式請(qǐng)求,開始數(shù)據(jù)的發(fā)送

      • 發(fā)送操作完成后,可手動(dòng)將設(shè)備設(shè)為睡眠模式,或者重新向FIFO寫入數(shù)據(jù),以便稍后再次進(jìn)行Tx操作

      LoRa將數(shù)據(jù)寫入FIFO時(shí)必須:

      (1)將FifoPtrAddr 設(shè)置為 FifoTxPtrbase
      (2)將PayloadLength寫入FIFO(RegFifo)


      2、數(shù)據(jù)接收流程

      LoRa接收有兩種模式:

      • 單一接收

      • 連續(xù)接收

      整體流程如下圖:

      2.1 單一接收模式

      單一模式下,LoRa在給定的時(shí)間窗內(nèi)搜索前導(dǎo)碼,如果該時(shí)間窗結(jié)束時(shí)還未收到,則芯片會(huì)產(chǎn)生RxTimeout中斷信號(hào),同時(shí)切換回待機(jī)模式。。時(shí)間窗長(zhǎng)度在RegSymbTimeout定義,必須為4~1023個(gè)符號(hào),缺省值為5。。

      在Payload接收完成后,如果CRC無效,則會(huì)產(chǎn)生RxDone以及PayloadCrcError中斷信號(hào)。。然而即使CRC無效,仍然可以在FIFO中寫入數(shù)據(jù),以便后續(xù)進(jìn)行處理。。RxDone中斷產(chǎn)生后芯片會(huì)切換回待機(jī)模式。。

      當(dāng)RxDone或RxTimeout中斷信號(hào)產(chǎn)生時(shí),LoRa都會(huì)自動(dòng)切換到待機(jī)模式,因此,只有在數(shù)據(jù)包到達(dá)時(shí)間窗已知的情況下才使用Rx單一接收模式,而在其他情況下,應(yīng)使用Rx連續(xù)模式。

      單一接收模式下數(shù)據(jù)包處理流程如下:

      2.2 連續(xù)接收模式

      連續(xù)模式下,LoRa調(diào)制解調(diào)器會(huì)持續(xù)的掃描信道來搜索前導(dǎo)碼,如果檢測(cè)到后,LoRa都會(huì)在收到數(shù)據(jù)之前對(duì)該前導(dǎo)碼進(jìn)行檢測(cè)及跟蹤,然后繼續(xù)等待檢測(cè)下一前導(dǎo)碼。。。
      如果前導(dǎo)碼長(zhǎng)度超過RegPreambleMsbRegPreambleLsb設(shè)定的預(yù)計(jì)值(按照符號(hào)周期測(cè)量),則前導(dǎo)碼會(huì)被丟棄,并重新開始前導(dǎo)碼搜索。。但這種場(chǎng)景不會(huì)產(chǎn)生中斷標(biāo)志,與單一Rx模式相反,在連續(xù)Rx模式下,當(dāng)產(chǎn)生RxTimeout中斷時(shí),設(shè)備不會(huì)進(jìn)入待機(jī)模式,這時(shí),用戶必須在設(shè)備繼續(xù)等待有效前導(dǎo)碼的同時(shí)直接清除中斷信號(hào)。。

      注意:被解調(diào)的字節(jié)是按照接受序列寫入數(shù)據(jù)緩存區(qū)的。換言之,新數(shù)據(jù)包的第一個(gè)字節(jié)會(huì)在上一個(gè)數(shù)據(jù)包的最后一個(gè)字節(jié)之后立即寫入。。在這種模式下,接受地址指針將不會(huì)重置。因此,MCU必須對(duì)地址指針進(jìn)行處理,以保證FIFO數(shù)據(jù)緩存不會(huì)溢出。。

      在連續(xù)模式下,被接受數(shù)據(jù)包的處理流程如下:

      (1)在睡眠或待機(jī)模式下,選擇RxCOUNT模式
      (2)收到有效報(bào)頭Header后,緊接著會(huì)產(chǎn)生RxDone中斷。芯片一直處于RXCONT模式,等待下一個(gè)LoRa數(shù)據(jù)包。
      (3)檢查PayloadCrcError標(biāo)志,以驗(yàn)證數(shù)據(jù)包的完整性
      (4)如果數(shù)據(jù)包被正確接受,則可以讀取FIFO
      (5)接收過程(2-4)可重復(fù)

      在連續(xù)操作模式下,僅可查看最后一個(gè)接受數(shù)據(jù)包對(duì)應(yīng)的狀態(tài)信息。。換言之,應(yīng)在接受到下一個(gè)RxDone信號(hào)之前讀取對(duì)應(yīng)寄存器。

      從FIFO提取Payload

      為從FIFO中讀取接受的Payload數(shù)據(jù),用戶必須保證狀態(tài)寄存器RegIrqFlags中的ValidHeader、PayloadCrcError、RxDone以及RxTimeout中斷信號(hào)未觸發(fā),以確保數(shù)據(jù)包接受成功終止。(既不應(yīng)設(shè)置任何標(biāo)志)

      如果發(fā)送錯(cuò)誤,應(yīng)跳過一下步驟,同時(shí)丟棄數(shù)據(jù)包。為從FIFO中提取有效數(shù)據(jù),要根據(jù)一下寄存器:

      • RegRxNbBytes:表示到現(xiàn)在為止,已接受到的字節(jié)數(shù)

      • RegFifoAddrPtr:標(biāo)志LoRa接收數(shù)據(jù)寫入FIFO位置的動(dòng)態(tài)指針

      • 將RegFifoAddrPtr設(shè)置為RegFifoRxCurrentAddr,表示將FIFO指針指向FIFO中最后接收的數(shù)據(jù)包存儲(chǔ)位置。可以通過RegRxNbBytes讀取RegFifo中的數(shù)據(jù),以提取數(shù)據(jù)包的Payload

      • 或者,可以手動(dòng)將RegFifoAddrPtr設(shè)置為RegFifoRxByteAddr減去RegRxNbBytes的值,使該指針從當(dāng)前數(shù)據(jù)包開始,一直指向最后接受的數(shù)據(jù)包的存儲(chǔ)位置。。。

      基于前導(dǎo)碼其實(shí)的數(shù)據(jù)包過濾

      LoRa調(diào)制解調(diào)器會(huì)根據(jù)尋址自動(dòng)過濾接受到的數(shù)據(jù)包。。Sx127x支持基于Payload的前幾個(gè)字節(jié)對(duì)數(shù)據(jù)包進(jìn)行軟件過濾。。下面以4字節(jié)地址為例,該地址長(zhǎng)度可變

      數(shù)據(jù)包過濾的目的是:確定數(shù)據(jù)包是否是發(fā)往該設(shè)備的Payload,如果不是,則芯片之后切換回睡眠模式。

      軟件數(shù)據(jù)包過濾的步驟如下:

      接收機(jī)超時(shí)操作

      LoRa在單一/連續(xù)接收模式下,可以啟用接收機(jī)超時(shí)功能,以便接收機(jī)在預(yù)先定義好的時(shí)間內(nèi)監(jiān)聽是否收到有效數(shù)據(jù)包。。定時(shí)器會(huì)在接受模式開啟實(shí)啟動(dòng),并在RegIrqFlags中查詢RxTimeout中斷信號(hào)。。
      在Rx單一模式下,RxTimeout中斷后芯片會(huì)待機(jī),并且之后如果再次進(jìn)入Rx前,必須清除該中斷信號(hào)。。而在Rx連續(xù)模式下,雖然產(chǎn)生中斷信號(hào),但芯片卻會(huì)一直處于Rx連續(xù)模式。因此需要在Rx連續(xù)模式下,MCU定期清除該中斷信號(hào)。。
      設(shè)定的超時(shí)時(shí)間值為符號(hào)周期的整數(shù)倍,計(jì)算公式如下:

      TimeOut = LoRaRxTimeout * Ts


      閱讀更多: LoRa中文學(xué)習(xí)資料, LoRa實(shí)驗(yàn)室, LoRa物聯(lián)網(wǎng)技術(shù)進(jìn)階


      參考分類:

      首頁-推薦學(xué)習(xí)

      上一篇: 433MHz LoRa/FSK 無線頻譜波形分析(頻譜分析儀測(cè)試LoRa/FSK帶寬、功率、頻率誤差等)

      下一篇: LoRa學(xué)習(xí):SX127x寄存器以及FIFO數(shù)據(jù)緩存使用配置

      下一篇: PLC、DCS、FCS三大控

      上一篇: LoRa學(xué)習(xí):SX127x寄存

      推薦產(chǎn)品

      更多
      主站蜘蛛池模板: HEYZO无码综合国产精品227| 国产成人久久综合热| 国产成人综合亚洲AV第一页| 亚洲VA综合VA国产产VA中| 久久天天日天天操综合伊人av| 色天天综合色天天看| 狠狠色丁香婷婷久久综合不卡| 久久久久国产综合AV天堂| 亚洲国产成人久久综合一 | 2020久久精品亚洲热综合一本| 亚洲妓女综合网99| 亚洲国产aⅴ综合网| 狠狠色成人综合网图片区| 色综合色综合色综合| 久久婷婷五月综合97色| 亚洲偷自拍拍综合网| 亚洲国产日韩综合久久精品| 国产综合内射日韩久| 国产综合久久久久久| 五月天综合色激情| 色婷婷综合久久久中文字幕| 青青草原综合久久大伊人| 色综合婷婷在线观看66| 色综合久久夜色精品国产| 亚洲婷婷综合色高清在线| 亚洲亚洲人成综合网络| 国产色婷婷五月精品综合在线| 亚洲国产综合精品中文第一| 亚洲综合校园春色| 亚洲国产成人久久综合一| 综合色就爱涩涩涩综合婷婷| 色天使久久综合网天天| 亚洲国产精品综合久久网络| 色综合久久久无码中文字幕| 亚洲免费综合色在线视频| 日韩综合在线视频| 青青青国产色视频在线观看国产亚洲欧洲国产综合| 久久综合香蕉国产蜜臀AV| 亚洲精品第一国产综合野| 亚洲综合av一区二区三区不卡| 亚洲人成伊人成综合网久久|