LoRa有兩種數(shù)據(jù)包格式:顯示和隱式
其中顯示數(shù)據(jù)包的報(bào)頭較短,主要包含字節(jié)數(shù)、編碼率及是否使用CRC等信息。
LoRa數(shù)據(jù)包包含:
-
Preamble(前導(dǎo)碼)
-
Header(可選類(lèi)型的報(bào)頭)
-
Payload(數(shù)據(jù)有效負(fù)載)
如下圖:
1、Preamble
前導(dǎo)碼用于保持接收機(jī)與輸入的數(shù)據(jù)流同步。。作用是提醒接收芯片,即將發(fā)送的是有效信號(hào),注意接收,以免丟失有用信號(hào),當(dāng)前導(dǎo)碼發(fā)送完畢后,會(huì)立即發(fā)送有效數(shù)據(jù)。。
默認(rèn)Preamble數(shù)據(jù)size為12個(gè)符號(hào)長(zhǎng)度,長(zhǎng)度可以根據(jù)實(shí)際應(yīng)用擴(kuò)展(內(nèi)部變量)。。例如:在接收密集型應(yīng)用中,為了縮短接收機(jī)占空比,可以縮短前導(dǎo)碼長(zhǎng)度。。實(shí)際發(fā)送前導(dǎo)碼長(zhǎng)度范圍為6+4 ~ 65535 +4個(gè)符號(hào)。。。
LoRa的接收機(jī)會(huì)定期檢測(cè)前導(dǎo)碼。。因此接收和發(fā)射端前導(dǎo)碼長(zhǎng)度需一致,如果未知,應(yīng)將接收機(jī)的前導(dǎo)碼長(zhǎng)度設(shè)置為最大值。
2、Header
可以通過(guò)操作模式,選擇顯示/隱式兩種Header類(lèi)型:在RegModemConfig1寄存器上,通過(guò)設(shè)定ImplicitHeaderModeOn選擇。
2.1 顯式報(bào)頭模式
LoRa默認(rèn)都為顯式Header模式,在這種模式下,Header會(huì)包含Payload的相關(guān)信息,包括:
-
Payload長(zhǎng)度(byte)
-
前向糾錯(cuò)編碼率
-
是否使用CRC(16位)
Header按照最大糾錯(cuò)碼(4/8)發(fā)送,另外Header還包含自己的CRC,接收機(jī)可以先Check該項(xiàng)以丟棄無(wú)效Header數(shù)據(jù)包。。
2.2 隱式報(bào)頭模式
在特定情況下,如果Payload長(zhǎng)度、編碼率以及CRC為固定值或已知,則可以通過(guò)隱式Header模式來(lái)縮短發(fā)送時(shí)間。。該情況下 ,需要手動(dòng)設(shè)置無(wú)線鏈路兩端的Payload長(zhǎng)度、錯(cuò)誤編碼率以及CRC。。。
注意:如果擴(kuò)頻因子SF設(shè)為6,則只能使用隱式報(bào)頭模式
3、Payload
數(shù)據(jù)包有效負(fù)載Payload是一個(gè)長(zhǎng)度不固定的字段,實(shí)際長(zhǎng)度和編碼率CR則可以由顯式Header模式下的報(bào)頭制定或者由隱式模式下在寄存器的設(shè)置來(lái)決定。。另外,還可以選擇在Payload中包含CRC。。。Payload是在FIFO中讀寫(xiě)。。。
4、數(shù)據(jù)傳輸時(shí)間的計(jì)算
由上一節(jié)http://murata.eetrend.com/article/2017-10/1000907.html可以得出Rs,則單個(gè)LoRa數(shù)據(jù)包的符號(hào)周期Ts:
Ts=1/Rs
其中,LoRa數(shù)據(jù)包總傳輸時(shí)間,等于前導(dǎo)碼傳輸時(shí)間Tpre+數(shù)據(jù)包傳輸時(shí)間Tpay。前導(dǎo)碼傳輸時(shí)間即為:
Tpre = (Npre+4.25)Tpay
其中,Npre表示已設(shè)定的前導(dǎo)碼長(zhǎng)度,(可以讀取RegPreambleMsb和RegPreambleLsb寄存器得到),Payload有效負(fù)載的時(shí)間Tpay取決于所使用的報(bào)頭模式。。。
計(jì)算Payload符號(hào)數(shù)的公式如下:
因此,總傳輸時(shí)間實(shí)際為:
Tpacket = Tpre + payloadSymNb*Tpay
-
LoRa
+關(guān)注
關(guān)注
349文章
1689瀏覽量
231962
原文標(biāo)題:LoRa數(shù)據(jù)包結(jié)構(gòu)分析及數(shù)據(jù)傳輸時(shí)間的計(jì)算
文章出處:【微信號(hào):murata-eetrend,微信公眾號(hào):murata-eetrend】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論