(3)LoraWAN:链路控制、SF BW CR
三、Introduction on LoRaWAN options
本文件描述了一種用于可為移動(dòng)的或固定在一個(gè)固定位置的電池供電的終端設(shè)備而優(yōu)化的LoRaWAN?網(wǎng)絡(luò)協(xié)議。LORA?是一個(gè)由Semtech公司開發(fā)的長距離低功耗低通信速率無線調(diào)制應(yīng)用。設(shè)備實(shí)現(xiàn)多類包括CLASSA在內(nèi)的通信模式。LoRaWAN網(wǎng)絡(luò)通常部署成星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu), 網(wǎng)關(guān)中繼終端及后端網(wǎng)絡(luò)中央服務(wù)器的數(shù)據(jù)。網(wǎng)關(guān)通過標(biāo)準(zhǔn)IP協(xié)議連接至網(wǎng)絡(luò)服務(wù)器,而終端采用單跳網(wǎng)絡(luò)LORA?或FSK與一個(gè)或多個(gè)網(wǎng)關(guān)通信。所有通信一般是雙向的,當(dāng)然上行通信預(yù)計(jì)將是主要的流量。各個(gè)終端設(shè)備和網(wǎng)關(guān)的通信分散在不同的頻率信道和通信速率之中。通信速率將根據(jù)通信范圍和消息的持續(xù)時(shí)間取一個(gè)折中值,以不同的速率通信實(shí)現(xiàn)互不干擾。Lora的通信速率范圍從0.3kbps到50kbps。為了最大限度的提高終端設(shè)備的電池壽命和網(wǎng)絡(luò)容量,LoRa基礎(chǔ)網(wǎng)絡(luò)能管理通信速率和每個(gè)終端設(shè)備的RF輸出,也就是說,具備自適應(yīng)通信速率(ADR)功能。只要遵守以下規(guī)則,終端設(shè)備可能用任何可用的信道、任何可用的通信速率通信:
- [x] 1)終端的每次通信以偽隨機(jī)的方式改變通信信道。產(chǎn)生的頻率多樣性使系統(tǒng)在干擾上更具魯棒性。
- [x] 2)終端遵守該子帶規(guī)定的最大發(fā)送占空比和地方法規(guī)。
- [x] 3)終端遵守該子帶規(guī)定的最大發(fā)射持續(xù)時(shí)間(或滯留時(shí)間)和地方法規(guī)。
所有LoRaWAN設(shè)備至少實(shí)現(xiàn)了CLASSA的功能。此外,他們還可能實(shí)現(xiàn)了本文檔描述的CLASS B,CLASS C或被其他人自定義的功能。
所有多字節(jié)采用的都是小端模式(little endian)和EUI是64位整數(shù),發(fā)送為小端模式。
LoRaWAN CLASSA CLASSB CLASSC 區(qū)分
雙向終端設(shè)備(CLASSA)
A類的終端設(shè)備允許雙向通信,每一個(gè)終端設(shè)備的上行傳輸,跟隨兩個(gè)短的下行接收窗口。發(fā)送時(shí)隙的調(diào)度基于終端設(shè)備自己的通信需求,該時(shí)隙是基于隨機(jī)時(shí)間基礎(chǔ)(ALOHA類型的協(xié)議的)上的很小變動(dòng)。CLASSA適用于超低功耗終端系統(tǒng)的應(yīng)用,該類應(yīng)用只要求終端發(fā)送上行傳輸之后,服務(wù)端再下行傳輸至終端。從服務(wù)端在任何其他時(shí)間下行鏈路通信將必須等待直到下一個(gè)預(yù)定的上行鏈路通信(即每次只能先上行數(shù)據(jù)才能收到下行數(shù)據(jù))。
帶接收時(shí)隙的雙向終端設(shè)備(CLASSB)
B類的終端設(shè)備允許更多的接收時(shí)隙。除A類隨機(jī)接收窗口,B類設(shè)備中在計(jì)劃的時(shí)間打開額外的接收窗口。為了使終端設(shè)備打開它的接收窗口,在計(jì)劃的時(shí)間中接收到來自網(wǎng)關(guān)的同步信標(biāo)(Beacon幀)。這允許服務(wù)端知道什么時(shí)候終端正在偵聽信號。
最大接收時(shí)隙的雙向終端設(shè)備(CLASSC)
C類有近連續(xù)打開接收窗口的終端設(shè)備,只有發(fā)射時(shí)才關(guān)閉接收。CLASSC終端設(shè)備將比CLASS A、CLASS B功耗更大,但CLASS C終端設(shè)備的通信延遲最低。
LoRa調(diào)制解調(diào)器的鏈路控制
通過配置寄存器RegOpMode,就能將FSK調(diào)制解調(diào)器切換成LoRaTM調(diào)制解調(diào)器,切換操作可以在飛行模式(睡眠模式)下進(jìn)行;LoRa調(diào)制解調(diào)器采用專有的調(diào)制和解調(diào)程序,將擴(kuò)頻調(diào)制與循環(huán)糾錯(cuò)編碼技術(shù)結(jié)合起來,從而提高了鏈路預(yù)算和抗干擾性。LoRa調(diào)制解調(diào)器的配置圖:
LoRa調(diào)制解調(diào)器擁有獨(dú)立的雙端口數(shù)據(jù)緩沖FIFO,而且在所有操作模式下均可通過SPI接口訪問該通道。選定LoRa調(diào)制模式之后,配置寄存器中SX1276/77/78的映射關(guān)系發(fā)生變化。
RegOpMode寄存器
| LongRangeMode | 7bit | 0:FSK/OOK模式 1:LoRa模式 該位僅可在睡眠模式下修改。 |
| AccessSharedReg | 6bit | 設(shè)置該位,允許在LoRa 模式下訪問FSK 寄存器頁面 |
| reserved | 5~4bits | 預(yù)留 |
| LowFrequencyModeOn | 3bit | 訪問低頻模式寄存器(從地址0x61開始)0:高頻 1:低頻 |
| Mode | 2~0bits | 收發(fā)器模式(睡眠、待機(jī)等) |
RegOpMode.LongRangeMode進(jìn)入Lora模式
#define OPMODE_LORA 0x80 //LoRa模式,該位僅可在睡眠模式下修改。 // 進(jìn)入Lora模式的操作 static void opmodeLora() {u1_t u = OPMODE_LORA; #ifdef CFG_sx1276_radiou |= 0x8; // TBD: sx1276 high freq #endifwriteReg(RegOpMode, u); }RegOpMode.AccessSharedReg
一般情況下僅當(dāng)器件設(shè)置為 LoRa 模式時(shí),才能訪問到 LoRa 寄存器(同理, FSK 寄存器僅在 FSK 模式下才能訪問);但是如果設(shè)置了AccessSharedReg位,則允許在LoRa模式下訪問位于地址空間(0x0D:0x3F)的 FSK 寄存器頁面 。
該位在器件處于睡眠模式時(shí)工作。為確保之后能夠正常訪問 LoRa 寄存器,完成相關(guān)設(shè)置后清零該位。
RegOpMode.AccessSharedReg=0:訪問LoRa寄存器頁面0x0D:0x3F
RegOpMode.AccessSharedReg=1:(在LoRa模式下)訪問FSK寄存器頁面0x0D:0x3F
RegOpMode.mode(2~0bits) 進(jìn)入操作模式
#define OPMODE_SLEEP 0x00 //000:睡眠模式 #define OPMODE_STANDBY 0x01 //001:待機(jī)模式 #define OPMODE_FSTX 0x02 //010:頻率合成發(fā)送(FSTx) #define OPMODE_TX 0x03 //011:發(fā)送(Tx) #define OPMODE_FSRX 0x04 //100:頻率合成接收(FSRx) #define OPMODE_RX 0x05 //101:持續(xù)接收(RXCONTINUOUS) #define OPMODE_RX_SINGLE 0x06 //110:單次接收(RXSINGLE) #define OPMODE_CAD 0x07 //111:信道活動(dòng)檢測(CAD) // 操作進(jìn)入相應(yīng)模式 static void opmode (u1_t mode) {writeReg(RegOpMode, (readReg(RegOpMode) & ~OPMODE_MASK) | mode); } opmode(OPMODE_SLEEP); opmode(OPMODE_STANDBY); // ...擴(kuò)頻因子(SF值)、調(diào)制帶寬(BW)、糾錯(cuò)編碼率(CR)
針對特定的應(yīng)用,可以通過調(diào)整 擴(kuò)頻因子(SF值)、調(diào)制帶寬(BW)及糾錯(cuò)編碼率(CR) 這三個(gè)關(guān)鍵設(shè)計(jì)參數(shù)對LoRa調(diào)制解技術(shù)進(jìn)行優(yōu)化。對上述某個(gè)或多個(gè)參數(shù)進(jìn)行調(diào)整之后,可實(shí)現(xiàn)在鏈路預(yù)算、 抗干擾性、頻譜占用度及標(biāo)稱數(shù)據(jù)速率之間達(dá)到平衡。
擴(kuò)頻因子
LoRaTM擴(kuò)頻調(diào)制技術(shù)采用多個(gè)信息碼片來代表有效負(fù)載信息的每個(gè)位。擴(kuò)頻信息的發(fā)送速度稱為符號速率(Rs),而碼片速率與標(biāo)稱符號速率之間的比值即為擴(kuò)頻因子,其表示每個(gè)信息位發(fā)送的符號數(shù)量。
擴(kuò)頻因子取值
| 6 | 64 | -5 dB |
| 7 | 128 | -7.5dB |
| 8 | 256 | -10 dB |
| 9 | 512 | -12.5 dB |
| 10 | 1024 | -15 dB |
| 11 | 2048 | -17.5 dB |
| 12 | 4096 | -20 dB |
因?yàn)椴煌瑪U(kuò)頻因子(SpreadingFactor)之間為正交關(guān)系,因此必須提前獲知鏈路發(fā)
送端和接收端的擴(kuò)頻因子。另外,還必須獲知接收機(jī)輸入端的信噪比。在負(fù)信噪比條件下信號也能正常接收, 這改善了LoRa接收機(jī)的靈敏度、鏈路預(yù)算及覆蓋范圍。
擴(kuò)頻因子寄存器取值在RegModemConfig2寄存器中。
RegModemConfig2寄存器
- [x] RegModemConfig2.SpreadingFactor 取值(SF值):
- [x] RegModemConfig2.RxPayloadCrcOn取值:
上行數(shù)據(jù)格式
前導(dǎo)碼可選報(bào)頭數(shù)據(jù)有效負(fù)載 0x34(8bytes) 報(bào)頭+報(bào)頭_CRC PayLoad+PayLoad_CRC 下行數(shù)據(jù)格式
前導(dǎo)碼可選報(bào)頭數(shù)據(jù)有效負(fù)載 0x34(8bytes) 報(bào)頭+報(bào)頭_CRC PayLoad 上行、下行報(bào)頭CRC及數(shù)據(jù)有效負(fù)載CRC都是芯片自動(dòng)填充的,并且有時(shí)候某一項(xiàng)PayLoad_CRC不是必選項(xiàng)。
擴(kuò)頻因子6(SF6)設(shè)置(特定)
當(dāng)擴(kuò)頻因子SF為6時(shí), LoRa調(diào)制解調(diào)器的數(shù)據(jù)傳輸速率最快,因此這一擴(kuò)頻因子僅在特定情況下使用。使用時(shí),需在SX1276/77/78寄存器上進(jìn)行以下幾項(xiàng)設(shè)置:
- [x] 將RegModemConfig2.SpreadingFactor設(shè)置為6;
- [x] 將報(bào)頭設(shè)置為隱式模式(即RegModemConfig1.ImplicitHeaderModeOn設(shè)置為1);傳輸對時(shí)間有苛求的數(shù)據(jù)時(shí)使用隱式報(bào)頭。
- [x] 在寄存器地址(0x31)的2至0位中寫入0b101一值;0x31在Lora模式下為預(yù)留寄存器,除本情況外不使用。
- [x] 在寄存器地址(0x37)中寫入0x0C一值。0x37在Lora模式下為預(yù)留寄存器,除本情況外不使用。
編碼率
LoRaTM調(diào)制解調(diào)器采用循環(huán)糾錯(cuò)編碼進(jìn)行前向錯(cuò)誤檢測與糾錯(cuò),以提高鏈路的魯棒性。使用糾錯(cuò)編碼之后,會(huì)產(chǎn)生額外的傳輸開銷。每次傳輸產(chǎn)生的循環(huán)編碼開銷見下表。
| 1 | 4/5 | 1.25 |
| 2 | 4/6 | 1.5 |
| 3 | 4/7 | 1.75 |
| 4 | 4/8 | 2 |
前向糾錯(cuò)能有效提高鏈路的可靠性。由此,編碼率(及抗干擾性能)可以隨著信道條件的變化而變化——可以選擇在報(bào)頭中加入編碼率以便接收端能夠解析。
RegModemConfig1.CodingRate 糾錯(cuò)編碼率
隱式報(bào)頭模式下應(yīng)在接收機(jī)上設(shè)置該位,以確定預(yù)期編碼率。
RegModemConfig1.CodingRate = 001 : 4/5
RegModemConfig1.CodingRate = 010 : 4/6
RegModemConfig1.CodingRate = 011 : 4/7
RegModemConfig1.CodingRate = 100 : 4/8
所有其他值:預(yù)留
信號帶寬
增加信號帶寬,可以提高有效數(shù)據(jù)速率以縮短傳輸時(shí)間,但這是以犧牲部分一接收靈敏度為代價(jià)。當(dāng)然,多數(shù)國家對允許占用帶寬都設(shè)有一定的約束。FSK調(diào)制解調(diào)器描述的帶寬是指單邊帶帶寬,而LoRaTM調(diào)制解調(diào)器中描述的帶寬則是指雙邊帶帶寬(或全信道帶寬)。LoRaTM調(diào)制解調(diào)器規(guī)格表中列出了在多數(shù)規(guī)范約束的帶寬范圍。
| 7.8 | 12 | 4/5 | 18 |
| 10.4 | 12 | 4/5 | 24 |
| 15.6 | 12 | 4/5 | 37 |
| 20.8 | 12 | 4/5 | 49 |
| 31.2 | 12 | 4/5 | 73 |
| 41.7 | 12 | 4/5 | 98 |
| 62.5 | 12 | 4/5 | 146 |
| 125 | 12 | 4/5 | 293 |
| 250 | 12 | 4/5 | 586 |
| 500 | 12 | 4/5 | 1172 |
注意: 較低頻段(169 MHz)不支持250kHz和500kHz的帶寬。
RegModemConfig1.Bw 信號帶寬
#define SX1276_MC1_BW_125 0x70 #define SX1276_MC1_BW_250 0x80 #define SX1276_MC1_BW_500 0x90// ... switch (getBw(LMIC.rps)) { case BW125: mc1 |= SX1276_MC1_BW_125; break; case BW250: mc1 |= SX1276_MC1_BW_250; break; case BW500: mc1 |= SX1276_MC1_BW_500; break; default:ASSERT(0); } // ... // set ModemConfig1 writeReg(LORARegModemConfig1, mc1); // ...比特速率、碼片速率和符號速率等區(qū)分
經(jīng)過信源編碼的含有信息的數(shù)據(jù)稱為“比特”;
經(jīng)過信道編碼和交織后的數(shù)據(jù)稱為“符號”;
經(jīng)過最終擴(kuò)頻得到的數(shù)據(jù)稱為“碼片”。
符號表示約定
- BW表示帶寬(BandWidth)
- SF表示擴(kuò)頻因子(SpreadingFactor)
- Rs符號速率(Symbol Rate)
- cps碼片速率(chip per-second)
- Rb比特率(Bit Rate)
符號速率(Symbol Rate)
- SymbolRate和BitRate的對應(yīng)關(guān)系要依據(jù)調(diào)制方式。如是BPSK調(diào)制,那么1bit可以代表0,1兩種信息,此時(shí)BitRate=SymbolRate。如是QPSK調(diào)制,4個(gè)信息就需要2bit來表示,此時(shí)BitRate=2 SymbolRate。
- 符號速率*擴(kuò)頻因子=碼片速率。
碼片速率(chip per-second)
- 系統(tǒng)通過擴(kuò)頻把比特轉(zhuǎn)換成碼片。碼片相當(dāng)于模擬調(diào)制中的載波作用,是數(shù)字信號的載體。
- 一個(gè)數(shù)據(jù)信號(如邏輯1或0)通常要用多個(gè)編碼信號來進(jìn)行編碼,那么其中的一個(gè)編碼信號就稱為一個(gè)碼片。
- 碼片數(shù)率是指擴(kuò)頻調(diào)制之后的數(shù)據(jù)數(shù)率,用cps表示(chip per-second) 。
LoRa發(fā)送參數(shù)關(guān)系(擴(kuò)頻因子、碼片速率、符號速率)
- [x] LoRa符號速率
發(fā)送信號為恒包絡(luò)信號。每赫茲每秒發(fā)送一個(gè)碼片。
- [x] 擴(kuò)頻因子
碼片速率=符號速率×擴(kuò)頻因子
轉(zhuǎn)載于:https://www.cnblogs.com/younining/p/9514464.html
總結(jié)
以上是生活随笔為你收集整理的(3)LoraWAN:链路控制、SF BW CR的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何修改以前登录过的共享文件夹的用户名和
- 下一篇: VMware网络连接模式—桥接、NAT以