主頁(http://www.130131.com):Lora及LoraWAN
Lora和LoraWAN的區(qū)別LoRa經(jīng)常被誤用來描述整個(gè)LPWAN通信系統(tǒng),其實(shí)Lora是Semtech擁有的專有調(diào)制格式。 SX1272和SX1276 LoRa芯片使用稱為chirp擴(kuò)頻(CSS)的調(diào)制技術(shù)來組成技術(shù)棧的物理層(PHY)。 LoRaWAN是一個(gè)開放標(biāo)準(zhǔn),它定義了基于LoRa芯片的LPWAN技術(shù)的通信協(xié)議。 LoRaWAN在數(shù)據(jù)鏈路層定義媒體訪問控制(MAC),由LoRa聯(lián)盟維護(hù)。 LoRaWAN是一種媒體訪問控制(MAC)層協(xié)議,專為具有單一運(yùn)營(yíng)商的大型公共網(wǎng)絡(luò)而設(shè)計(jì)。 總體而言,LoRa僅包含鏈路層協(xié)議,并且非常適用于節(jié)點(diǎn)間的P2P通信;LoRaWAN也包含網(wǎng)絡(luò)層,因此可以將信息發(fā)送到任何已連接到云平臺(tái)的基站。 Lora及LoraWAN層級(jí)關(guān)系
LoRa = PHY Layer LoRaWAN or Symphony Link = MAC Layer Lora的一些知識(shí)點(diǎn)介紹Lora調(diào)制方式優(yōu)勢(shì)1、LoRa擴(kuò)頻調(diào)制解調(diào)技術(shù)使器件傳輸距離遠(yuǎn)遠(yuǎn)超出現(xiàn)有的基于 FSK 或 OOK 調(diào)制方式的系統(tǒng),能到25公里以上的距離; 2、它還提供了很大的靈活性,用戶可自行決定擴(kuò)頻調(diào)制帶寬(BW)、擴(kuò)頻因子(SF)和糾錯(cuò)率(CR)。 3、每個(gè)擴(kuò)頻因子均呈正交分布,因而多個(gè)傳輸信號(hào)可以占用同一信道而不互相干擾,并且能夠與現(xiàn)有基于 FSK 的系統(tǒng)簡(jiǎn)單共存。 4、LoRa調(diào)制解調(diào)器采用專利擴(kuò)頻調(diào)制技術(shù)。與傳統(tǒng)調(diào)制技術(shù)相比, LoRa可以增加鏈路預(yù)算并增強(qiáng)對(duì)帶內(nèi)干擾的抗干擾能力。同時(shí),放松了對(duì)晶體基準(zhǔn)振蕩器的頻率容限要求,從而能夠在降低系統(tǒng)成本的基礎(chǔ)上提高性能。 SX1276/77/78 器件與關(guān)鍵參數(shù)
圖中可以看出,sx1276功能和頻段覆蓋是最完善的,可以針對(duì)歐洲標(biāo)準(zhǔn)、美國(guó)標(biāo)準(zhǔn)、中國(guó)標(biāo)準(zhǔn)、國(guó)際標(biāo)準(zhǔn)市場(chǎng),目前中國(guó)一般使用的是sx1278(iot520芯片); SX1278接收靈敏度-148dbm,接收電流10.3mA,包長(zhǎng)最大256個(gè)字節(jié)(Payload有效字節(jié)長(zhǎng)度)。實(shí)際LoraWAN在SF7模式下只使用到了222個(gè)字節(jié)。 SX1276/77/78 器件頻段、功率硬件控制1、SX1276/77/78 配備了三個(gè)不同的射頻功率放大器。其中兩個(gè)分別與 RFO_LF 和 RFO_HF引腳連接,能夠?qū)崿F(xiàn)高達(dá)+14dBm 的功率放大功能。第三個(gè)功率放大器與 PA_BOOST 引腳連接,能夠通過專門的匹配網(wǎng)絡(luò)實(shí)現(xiàn)高達(dá)+20dBm 的功率放大功能。與高效功率放大器不同的是,這個(gè)高穩(wěn)定性功率放大器能夠覆蓋頻率合成器處理的所有頻段。 RFO_LF 主要針對(duì)LF頻段( 低頻段169M和433M、470M),RFO_HF主要針對(duì)高頻頻段(868M-915M),而PA_BOOST能覆蓋所有頻段,一般現(xiàn)在設(shè)計(jì)使用PA_BOOST引腳,能保證+20dBM的發(fā)送功率。 2、SPI通信可以達(dá)到10M,一般LoraWAN時(shí)要求使用10M保證SPI通信時(shí)間可以忽略。 電源策略SX1276/77/78在整個(gè)工作溫度及操作電壓范圍內(nèi)采用內(nèi)部電壓調(diào)控機(jī)制,以保證電壓及器件特性的穩(wěn)定性。 在1.8V-3.7V電壓范圍內(nèi), +17dBm輸出功率保持穩(wěn)定,以及保證2.4V-3.7V電壓范圍+20dBm輸出功率保持穩(wěn)定。 BW、SF、CR、RSSI、SNR值擴(kuò)頻調(diào)制帶寬(BW):增加信號(hào)帶寬,可以提高有效數(shù)據(jù)速率縮短傳輸時(shí)間,但會(huì)犧牲靈敏度。 一般使用125K 注意: 較低頻段( 169 MHz )不支持 250kHz 和 500kHz 的帶寬。 擴(kuò)頻因子(SF):SF7~SF12,還有一個(gè)比較特殊的SF6一般很少使用,要使用時(shí)對(duì)寄存器操作要做特殊的操作。 糾錯(cuò)率(CR):一般使用4/5 前向糾錯(cuò)技術(shù) 信道編碼之所以能夠檢出和校正接收比特流中的差錯(cuò),是因?yàn)榧尤胍恍┤哂啾忍,把幾個(gè)比特上攜帶的信息擴(kuò)散到更多的比特上。為此付出的代價(jià)是必須傳送比該信息所需要的更多的比特。 為進(jìn)一步提高鏈路的魯棒性, LoRaTM調(diào)制解調(diào)器采用循環(huán)糾錯(cuò)編碼進(jìn)行前向錯(cuò)誤檢測(cè)與糾錯(cuò)。使用這樣的糾錯(cuò)編碼之后,會(huì)產(chǎn)生傳輸開銷。 在存在干擾的情況下,前向糾錯(cuò)能有效提高鏈路的可靠性。由此,編碼率(及抗干擾性能)可以隨著信道條件的變化而變化——可以選擇在報(bào)頭中加入編碼率以便接收端能夠解析。有關(guān)LoRaTM數(shù)據(jù)包及報(bào)頭的更多信息。 接收信號(hào)強(qiáng)度指示(RSSI):常規(guī)情況下,公式是這樣:
/*
RSSI (dBm) = -157 + Rssi, (高頻口)
RSSI (dBm) = -164 + Rssi, (低頻口)
另外在SNR0時(shí),可以參考如下公式:RSSI = -157+16/15 * PacketRssi (or RSSI = -164+16/15 * PacketRssi)。當(dāng)然SNR<0時(shí),還要注意同樣做噪聲干擾的校正,在公式后面 + PacketSnr * 0.25 。
*/ 在純凈環(huán)境下,RSSI跟與距離是一個(gè)非線性曲線的關(guān)系,所以路測(cè)時(shí)在一定距離內(nèi)RSSI值有參考價(jià)值,過距離后基本沒有參考價(jià)值。 
基本表現(xiàn)為:太近、太遠(yuǎn)RSSI變化并不太明顯,而中間有一段距離表現(xiàn)比較明顯;但是,RSSI值受環(huán)境影響太大,一般情況下僅供參考使用。 Lora的數(shù)據(jù)包結(jié)構(gòu)
前導(dǎo)碼Preamble:前導(dǎo)碼用于保持接收機(jī)與輸入的數(shù)據(jù)流同步。 默認(rèn)情況下, 數(shù)據(jù)包含有12個(gè)符號(hào)長(zhǎng)度的前導(dǎo)碼。 前導(dǎo)長(zhǎng)度是一個(gè)可以通過編程來設(shè)置的變量,所以前導(dǎo)碼的長(zhǎng)度可以擴(kuò)展。接收機(jī)的前導(dǎo)碼長(zhǎng)度應(yīng)與發(fā)射機(jī)一致。如果前導(dǎo)碼長(zhǎng)度為未知或可能會(huì)發(fā)生變化,應(yīng)將接收機(jī)的前導(dǎo)碼長(zhǎng)度設(shè)置為最大值。 可以通過設(shè)置前導(dǎo)碼值進(jìn)行地址過濾,實(shí)現(xiàn)分組通信。 報(bào)頭Header:分顯示報(bào)頭(默認(rèn)模式)和隱式報(bào)頭; 顯示報(bào)頭包括: 以字節(jié)數(shù)表示的有效負(fù)載長(zhǎng)度; 前向糾錯(cuò)碼率; 是否打開可選的16位負(fù)載CRC。 報(bào)頭按照最大糾錯(cuò)碼(4/8)發(fā)送。 有效數(shù)據(jù)Payload:真正發(fā)送的數(shù)據(jù) Payload CRC:對(duì)Payload數(shù)據(jù)的CRC校驗(yàn) 空中傳輸時(shí)間已知擴(kuò)頻因子(SF)、編碼率(CR)及信號(hào)帶寬(BW),可以使用提供的公式計(jì)算出單個(gè)LoRa數(shù)據(jù)包的總傳輸時(shí)間,在LoraWAN需要知道每次數(shù)據(jù)傳輸在空中的傳輸時(shí)間。 LoRa跳頻當(dāng)單個(gè)數(shù)據(jù)包時(shí)間可能超過相關(guān)法規(guī)允許的最大信道停留時(shí)間,一般采用跳頻擴(kuò)頻技術(shù)(FHSS);FHSS方案的工作原理為:每個(gè)LoRa數(shù)據(jù)包的部分內(nèi)容通過在微控制器MCU管理的頻率查詢表中選取的跳頻信道進(jìn)行發(fā)送。在預(yù)定的跳頻周期結(jié)束之后, 發(fā)射機(jī)和接收機(jī)切換到跳頻預(yù)定義列表中的下一個(gè)信道,以便繼續(xù)發(fā)送和接收數(shù)據(jù)包的下一部分內(nèi)容。 占空比(DutyCycle)節(jié)點(diǎn)發(fā)射LoRa數(shù)據(jù)的時(shí)間t1與發(fā)射周期T的比值就是占空比。占空比跟國(guó)家無線電管理的相關(guān)規(guī)定有關(guān)系,占空比滿足不了國(guó)家法律時(shí)過國(guó)家相關(guān)認(rèn)證會(huì)比較麻煩。 例如:470頻段占空比要求為 1%,節(jié)點(diǎn)使用該頻段某個(gè)信道發(fā)送一組數(shù)據(jù)耗時(shí) 10 ms,那么這個(gè)節(jié)點(diǎn)的本次發(fā)送周期為T1。節(jié)點(diǎn)在本周期結(jié)束,也就是 T1−10 ms 以后才可以再次發(fā)送數(shù)據(jù)。 T1=10/%=1000ms,需要等待 1000−10=990ms 才可以再次發(fā)送。 當(dāng)占空比無法滿足國(guó)家法律時(shí),通過跳頻手段可以解決。 信道活動(dòng)檢測(cè)(CAD)可使用信道活動(dòng)檢測(cè)器來檢測(cè)其他LoRa信號(hào)是否占用了本信道;可以一定程度上減輕信道沖突問題。 SX1276狀態(tài)機(jī)| IdleMode | 1: 睡眠模式 | | FromStart | 00:進(jìn)入 LowPowerSelection 狀態(tài) | | LowPowerSelection | 1:進(jìn)入空閑狀態(tài) | | FromIdle | 1:發(fā)生 T1 中斷時(shí)進(jìn)入接收狀態(tài) | | FromReceive | 110:發(fā)生 PreambleDetect 中斷時(shí)進(jìn)入定序器關(guān)閉狀態(tài) |
狀態(tài)間切換跟監(jiān)聽模式有一定的關(guān)系。 LoraWAN的一些知識(shí)點(diǎn)介紹LoraWAN網(wǎng)絡(luò)的射頻芯片介紹主要組成sx1276/77/78芯片作為終端芯片;sx1301+2片sx1255/1257作為基站芯片; Lora 470M頻段有96路上行,48路下行;上、下行的通信信道是不相同的。而上行信道對(duì)應(yīng)的下行信道有一定的算法關(guān)系。 sx1301+sx1255/57SX1301一般外接2片SX1257(或SX1255)。SX125x是射頻前端芯片,它負(fù)責(zé)將I/Q(In-phase / Quadrature,同相正交數(shù)字信號(hào))轉(zhuǎn)換成無線電模擬信號(hào)。 1255支持的頻段為400~510M,1257為862~1020M SX1301的結(jié)構(gòu)圖,它是由2個(gè)MCU和ASIC(ApplicationSpecific Integrated Circuit,專用集成電路)的綜合體。主要部件包括: 射頻MCU:該MCU通過SPI總線連接2片SX125x,主要負(fù)責(zé)實(shí)時(shí)自動(dòng)增益控制、射頻校準(zhǔn)和收發(fā)切換。 數(shù)據(jù)包MCU:該MCU負(fù)責(zé)分配8個(gè)LoRa調(diào)制解調(diào)器給多個(gè)通道,它仲裁數(shù)據(jù)包的機(jī)制包括速率、通道、射頻和信號(hào)強(qiáng)度。 IF0~IF7的LoRa通道:它們的帶寬固定為125kHz,每個(gè)通道可以設(shè)置中心頻率,每個(gè)通道可以接收SF7~SF12共6種速率的LoRa信號(hào)。 理論上可以同時(shí)處理6*8=48個(gè)終端的上行數(shù)據(jù),但是它只有8路LoRa解調(diào)器,所以一個(gè)通道(IF0~I(xiàn)F7)接收了6個(gè)正交數(shù)據(jù)包,解調(diào)器也只負(fù)責(zé)處理其中一個(gè)。 IF8通道:帶寬支持125 / 250 / 500kHz,用于基站之間的高速通信。 IF9通道:收發(fā)(G)FSK信號(hào),LoRaWAN在歐洲地區(qū)使用了該通道。 
一般基站設(shè)計(jì)時(shí),推薦使用GPS作為標(biāo)準(zhǔn)時(shí)鐘信號(hào)源(誤差50ns)
 LoraWAN網(wǎng)絡(luò)本該是個(gè)大角色雖然目前LoraWAN在中國(guó)的前景貌似只能走小型私網(wǎng)為主(運(yùn)營(yíng)商沒有主推),但是LoraWAN天生就比較適用于大型公共網(wǎng)絡(luò),而不是私網(wǎng); 目前LoraWAN公網(wǎng)在歐洲發(fā)展得比較快。 Lora的調(diào)制方式導(dǎo)致通信速率很慢,數(shù)據(jù)在空中傳輸?shù)臅r(shí)間是比較長(zhǎng)的,信道只有96路上行48路下行(中國(guó)470標(biāo)準(zhǔn)),在單一區(qū)域如果有多個(gè)LoraWAN網(wǎng)絡(luò),就更容易產(chǎn)生碰撞問題;由于網(wǎng)絡(luò)可能來自不同廠家,這種碰撞是無法單方面避免的。 LoraWAN的網(wǎng)絡(luò)結(jié)構(gòu)LoraWAN采用星型拓?fù)浣Y(jié)構(gòu),由后臺(tái)服務(wù)器統(tǒng)一管理,能比較好的解決多基站多節(jié)點(diǎn)的接入問題;每個(gè)節(jié)點(diǎn)將數(shù)據(jù)傳輸?shù)揭粋(gè)或多個(gè)基站。然后基站將數(shù)據(jù)轉(zhuǎn)發(fā)到網(wǎng)絡(luò)服務(wù)器,在網(wǎng)絡(luò)服務(wù)器對(duì)信息進(jìn)行必要的處理。 終端設(shè)備可能用任何可用的信道、任何可用的通信速率通信,終端的每次通信以偽隨機(jī)的方式改變通信信道。 
后臺(tái)服務(wù)分運(yùn)營(yíng)商服務(wù)和應(yīng)用商服務(wù)。 LoraWAN通信通信模式CLASS A CLASS B CLASS C所有LoRaWAN設(shè)備至少實(shí)現(xiàn)了CLASSA的功能。此外,他們還可能實(shí)現(xiàn)了CLASS B,CLASS C或被其他人自定義的功能。 CLASSA 雙向終端設(shè)備 每一個(gè)終端設(shè)備的上行傳輸,跟隨兩個(gè)短的下行接收窗口。每次只能先終端上行數(shù)據(jù)才能收到基站的下行數(shù)據(jù);CLASSA適用于超低功耗終端系統(tǒng)的應(yīng)用。 CLASSB 帶接收時(shí)隙的雙向終端設(shè)備 除A類隨機(jī)接收窗口,B類設(shè)備中在計(jì)劃的時(shí)間打開額外的接收窗口。在計(jì)劃的時(shí)間中接收到來自基站的同步信標(biāo)(Beacon幀)。 CLASSC 最大接收時(shí)隙的雙向終端設(shè)備 C類有近連續(xù)打開接收窗口的終端設(shè)備,只有發(fā)射時(shí)才關(guān)閉接收。 本次主要針對(duì)CLASS A模式下進(jìn)行介紹。
Message type 消息類型,通信命令000 Join Request Join請(qǐng)求幀001 Join Accept Join接受幀010 Unconfirmed Data Up 上行非確認(rèn)幀011 Unconfirmed Data Down 下行非確認(rèn)幀100 Confirmed Data Up 上行確認(rèn)幀101 Confirmed Data Down 下行確認(rèn)幀110 Rejoin Request Rejoin請(qǐng)求幀111 Proprietary (自定義專有幀) MAC commands MAC層命令MAC層命令(最大15個(gè)字節(jié))可以夾帶在上、下行數(shù)據(jù)中, MAC層命令對(duì)于應(yīng)用程序、應(yīng)用服務(wù)器以及終端上的應(yīng)用程序來說都是不可見的。 Link Check commands (LinkCheckReq, LinkCheckAns) :鏈路檢測(cè) Link ADR commands (LinkADRReq, LinkADRAns) : ADR設(shè)置 End-Device Transmit Duty Cycle (DutyCycleReq, DutyCycleAns):占空比設(shè)置 Receive Windows Parameters (RXParamSetupReq, RXParamSetupAns) :接收窗口參數(shù)設(shè)置 End-Device Status (DevStatusReq, DevStatusAns) :設(shè)備狀態(tài) Creation / Modification of a Channel (NewChannelReq, NewChannelAns) :信道修改 Setting delay between TX and RX (RXTimingSetupReq, RXTimingSetupAns) :設(shè)置接收窗口時(shí)間 Join過程網(wǎng)絡(luò)在建立之初,終端設(shè)備啟動(dòng)后需要向服務(wù)端發(fā)起Join請(qǐng)求(接入請(qǐng)求),只有在接入請(qǐng)求得到成功答復(fù),并根據(jù)答復(fù)配置相關(guān)參數(shù)后,終端才算成功加入網(wǎng)絡(luò)。Join成功后才能進(jìn)行數(shù)據(jù)的上行、下行通信。 Join過程、CLASS A等模式下,服務(wù)器、終端之間約定了兩個(gè)下行接收窗口(時(shí)間窗口)來實(shí)現(xiàn)數(shù)據(jù)的交互。一般通信方式為:終端上行數(shù)據(jù)包后進(jìn)入低功耗模式,等到約定的時(shí)間窗口后開始進(jìn)入接收模式,接收服務(wù)器下行來的數(shù)據(jù)。 在Join之前要了解一下Receive Windows概念。 接收窗口Receive Windows 在每次上行傳輸?shù)慕K端設(shè)備打開兩個(gè)短的接收窗口。接收窗口開始時(shí)間是一個(gè)配置周期的傳輸結(jié)束的最后一個(gè)上行比特。 終端在上行結(jié)束后考慮到功耗等問題不會(huì)立即進(jìn)入接收模式,低功耗到合適時(shí)機(jī)再打開接收,接收下行數(shù)據(jù)。此協(xié)議約定了兩個(gè)窗口,數(shù)據(jù)只會(huì)在其中一個(gè)窗口中接收到。 開窗時(shí)間誤差要求為+/- 20us 
First receive window:第一接收窗口,一般第一接收窗口的信道值是上一次上行信道對(duì)應(yīng)的下行信道值,而通信速率相同。 Second receive window:第二接收窗口,一般第二窗口的信道值和數(shù)據(jù)速率是不變的,但是可通過MAC命令修改的第二接收窗口的頻率和數(shù)據(jù)速率。 接收窗口持續(xù)時(shí)間 接收窗口的長(zhǎng)度必須至少為有效地檢測(cè)的下行鏈路前同步碼(前導(dǎo)碼)所要求的終端設(shè)備的無線電收發(fā)機(jī)的時(shí)間。比如同為12字節(jié)的前導(dǎo)碼,SF7和SF12的有效監(jiān)測(cè)時(shí)間是不同的。 基站發(fā)送數(shù)據(jù)要求 如果網(wǎng)絡(luò)打算發(fā)送的下行鏈路到一個(gè)終端設(shè)備,必須在接收窗口(兩個(gè)之一)開始之前發(fā)起傳輸。 終端發(fā)送數(shù)據(jù)要求 一個(gè)終端不得發(fā)送另一個(gè)上行消息給基站,除非它已經(jīng)接收在上次發(fā)送的第一或第二接收窗的下行基站消息,或者前一次傳輸?shù)牡诙邮沾翱谝堰^期。 Join-request Join請(qǐng)求主要信息Join-request信息包含終端的AppEUI、DevEUI及隨機(jī)的DevNonce(2字節(jié))。 DevNonce是一個(gè)隨機(jī)值,主要用于重放攻擊;在Join過程中要求服務(wù)器對(duì)每個(gè)終端保留一定數(shù)量的DevNonce歷史值(一般5個(gè)以上);當(dāng)檢測(cè)到某次Join時(shí)值為DevNonce歷史值則判斷為發(fā)生了安全問題,將直接拒絕本次Join。 Join-accept Join接受主要信息1) 假如終端被允許接入網(wǎng)絡(luò),網(wǎng)絡(luò)服務(wù)器將用join-accept響應(yīng)終端的join-request請(qǐng)求。Join-accept信息將像普通的下行一樣的發(fā)送,只不過會(huì)使用JOIN_ACCEPT_DELAY1 或JOIN_ACCEPT_DELAY2,而不是分別用RECEIVE_DELAY1和RECEIVE_DELAY2 這樣的延時(shí)。 2) Join-accept信息中包含3字節(jié)的App應(yīng)用隨機(jī)數(shù)(AppNonce),一個(gè)網(wǎng)絡(luò)標(biāo)示(NetID),一個(gè)設(shè)備地址(DevAddr),一個(gè)TX和RX之間延時(shí)(RxDelay)以及一個(gè)終端正在加入的網(wǎng)絡(luò)的頻率信道列表選項(xiàng)(CFList)。 以后該終端的通信將隨機(jī)使用該CFList信道值。 DevEUI是IEEE標(biāo)準(zhǔn)中的全球終端ID;EUI64地址空間是終端的全球唯一標(biāo)示。相當(dāng)于是設(shè)備的MAC地址。 AppEUI是IEEE標(biāo)準(zhǔn)的全球APP應(yīng)用ID,EUI地址空間是終端APP應(yīng)用供應(yīng)商的唯一標(biāo)示。 所述AppEUI、DevEUI在執(zhí)行激活過程之前就被存儲(chǔ)在終端中。DevEUI AppEUI需要向相關(guān)機(jī)構(gòu)申請(qǐng)。 AppNonce是一個(gè)隨機(jī)值或者基于某些形式的由網(wǎng)絡(luò)服務(wù)器提供的唯一ID值,AppNonce用于終端導(dǎo)出NwkSKey和AppSKey兩個(gè)會(huì)話密鑰;作為網(wǎng)絡(luò)安全登錄的一個(gè)參與變量。 NetID格式如下:低7位(LSB)命名為NwkID與前面章節(jié)所述的的7位MSB短地址相匹配。相鄰或者重疊的網(wǎng)絡(luò)必須具有不同的NwkIDs。剩下的17個(gè)高位可以由網(wǎng)絡(luò)運(yùn)營(yíng)商任意選擇。 NetID不同運(yùn)營(yíng)商或者漫游網(wǎng)絡(luò)標(biāo)識(shí)。 AppKeyAES-128加密/解密密鑰,該密鑰由應(yīng)用程序所有者分配給該終端設(shè)備。 設(shè)備地址(DevAddr)由當(dāng)前運(yùn)營(yíng)商網(wǎng)絡(luò)提供的設(shè)備地址。終端提供了DevEUI、AppEUI,服務(wù)器將答復(fù)一個(gè)DevAddr和一個(gè)隨機(jī)的AppNonce,以后通信就直接可以用DevAddr通信了,而AppNonce則是密鑰產(chǎn)生者。 配網(wǎng)方式終端要加入LoRaWAN網(wǎng)絡(luò),有2種方法完成入網(wǎng):ABP(Activation by Personalization,個(gè)性化激活)和OTAA(Over-the-Air Activation,空中激活)。 ABP方式一般向服務(wù)器端提供終端的DevEUI,由服務(wù)器端生成:設(shè)備地址(DevAddr),APP應(yīng)用標(biāo)示(AppEUI),網(wǎng)絡(luò)會(huì)話密鑰(NwkSKey),APP應(yīng)用密鑰 (AppSKey)信息并將該信息寫入終端中,終端重啟后將直接接入基站(沒有Join過程)。 OTAA方式終端Join之前必須要明確以下信息:全球唯一終端標(biāo)示(DevEUI)、APP應(yīng)用標(biāo)示(AppEUI)、AES-128加密/解密密鑰(AppKey)。 終端Join以后將保存:設(shè)備地址(DevAddr),APP應(yīng)用標(biāo)示(AppEUI),網(wǎng)絡(luò)會(huì)話密鑰(NwkSKey),APP應(yīng)用密鑰 (AppSKey)信息。 NwkSKey、AppSKey都是基于由AppNonce、AppKey、NetID 等參數(shù)經(jīng)過一定的算法得出。 NwkSKey僅作用于MIC校驗(yàn)(數(shù)據(jù)完整性校驗(yàn))和和Payload MAC層相關(guān)的加密;如MAC commands操作。 AppSKey APP應(yīng)用會(huì)話密鑰。網(wǎng)絡(luò)服務(wù)器和終端通過AppSKey加密和解密Payload字段中APP應(yīng)用程序特定數(shù)據(jù)信息。它也可以用來計(jì)算和驗(yàn)證包含在Payload字段中應(yīng)用程序特定數(shù)據(jù)消息的應(yīng)用程序級(jí)的MIC。 終端并沒有設(shè)置任何形式的網(wǎng)絡(luò)密鑰,相比ABP而言O(shè)TAA方式可以自動(dòng)接入任意運(yùn)營(yíng)商的網(wǎng)絡(luò)。 安全性評(píng)估:NwkSKey為運(yùn)營(yíng)商級(jí)的網(wǎng)絡(luò)密鑰不能解析數(shù)據(jù),而AppSKey是應(yīng)用商級(jí)的密鑰;這樣能保證運(yùn)營(yíng)商無法獲取到應(yīng)用商的真實(shí)數(shù)據(jù),保證了應(yīng)用商數(shù)據(jù)的安全性。 Up Link/Down Link 數(shù)據(jù)上行/下行| 010 | Unconfirmed Data Up | 上行非確認(rèn)幀 | | 011 | Unconfirmed Data Down | 下行非確認(rèn)幀 | | 100 | Confirmed Data Up | 上行確認(rèn)幀 | | 101 | Confirmed Data Down | 下行確認(rèn)幀 |

使用DevAddr與基站通信 Fopts 攜帶的是MAC cmd指令(如果有的話) FRMPayload 為實(shí)際要上行的數(shù)據(jù) 470M頻段(中國(guó))特性同步字長(zhǎng)度要求 | LORA | 0x34 | 8 symbols | | GFSK | 0xC194C1 | 5 bytes |
|
|
|
96路上行,470.3 MHz 每 200 kHz遞增一個(gè)到 489.3 MHz,SF7~SF12 4/5 48路下行,500.3 MHz 每 200 kHz遞增一個(gè)到 509.7 MHz,SF7~SF12 4/5 • 默認(rèn)發(fā)送功率 14 dBm. • 125 kHz BW 最大至 +17 dBm. • 傳輸時(shí)間不大于 5000 ms. • 所有終端必須支持96路信道 • Join過程中要求從SF7~SF12并從96路信道中隨機(jī)挑選一個(gè)接入 JoinResp CFList 信道列表分配Join答復(fù)中,服務(wù)器將信道列表帶給終端;以后終端將以這些信道值與基站通信。 
| CFList | ChMask | ChMask | ChMask | ChMask | ChMask | ChMask | RFU | CFListType |
信道分配列表,從470.3 MHz開始,每200 kHz一個(gè),一直講96個(gè)分配完。 LinkADRReq ADR請(qǐng)求信道分配列表當(dāng)終端開啟了ADR后,服務(wù)器檢測(cè)到要啟動(dòng)ADR時(shí),將發(fā)生LinkADRReq重新配置終端的通信速率、發(fā)生功率和信道列表。 
| 0 | Channels 0 to 15 |
| | 1 | Channels 16 to 31 |
| | 2 | Channels 32 to 47 |
| | 3 | Channels 48 to 63 |
| | 4 | Channels 64 to 79 |
| | 5 | Channels 80 to 95 |
| | 6 | All channels ONThe device should enable all currently defined channels independently of the ChMask field value. |
| | 7 | RFU |
|
Max Payload最大發(fā)送長(zhǎng)度要求| 0 | 59 | 51 | | 1 | 59 | 51 | | 2 | 59 | 51 | | 3 | 123 | 115 | | 4 | 230 | 222 | | 5 | 230 | 222 | | 6:15 | Not defined |
|
Tx和Rx窗口信道的對(duì)應(yīng)關(guān)系第一窗口Rx1第一窗口信道:Rx1 = |本次Tx信道-48|;如本次Tx為49、47信道,則下行信道為1信道。 Rx1第一窗口DR值選擇: 
取決于RX1DROffset (0~7)及上行的DR值,目前RX1DROffset4~7預(yù)留 
第二窗口• DR值保持與第一窗口相同 • RX2 信道值 = DevAddr%48,當(dāng)然也可以通過MAC commands修改。 470M頻段默認(rèn)配置參數(shù)RECEIVE_DELAY1 1 s
RECEIVE_DELAY2 2 s //(must be RECEIVE_DELAY1 + 1s)JOIN_ACCEPT_DELAY1 5 s
JOIN_ACCEPT_DELAY2 6 s
MAX_FCNT_GAP 16384ADR_ACK_LIMIT 64ADR_ACK_DELAY 32ACK_TIMEOUT 2 //+/- 1 s (random delay between 1 and 3 seconds) MAX_FCNT_GAP: 為接收方會(huì)同步保存接收數(shù)據(jù)的的幀號(hào),對(duì)比收到的增加過的值和當(dāng)前保存的值如果兩者之差大于 MAX_FCNY_GAP 就說明中間丟失了很多數(shù)據(jù)然后就會(huì)丟掉這條數(shù)據(jù)。 ADR_ACK_LIMIT ADR_ACK_DELAY: 如果終端的數(shù)據(jù)速率經(jīng)過網(wǎng)絡(luò)優(yōu)化比最低速率大,那節(jié)點(diǎn)就要定期檢查保證服務(wù)器仍然能夠收到上傳的數(shù)據(jù)。 終端上行的幀計(jì)數(shù)器每遞增一次(重傳時(shí)計(jì)數(shù)器不遞增)的同時(shí),設(shè)備的 ADR_ACK_CNT 計(jì)數(shù)器也遞增。如果 ADR_ACK_LIMIT (ADR_ACK_CNT >= ADR_ACK_LIMIT)次上行之后沒有收到下行回復(fù),就會(huì)設(shè)置 ADR 請(qǐng)求響應(yīng)位(將 ADRACKReq 設(shè)為1)。此時(shí)要求網(wǎng)絡(luò)在接下來的 ADR_ACK_DELAY 次上行之內(nèi)做出響應(yīng),在任何一次上行后收到下行數(shù)據(jù),節(jié)點(diǎn)都會(huì)重置計(jì)數(shù)器 ADR_ACK_CNT。在此期間的下行數(shù)據(jù)不需設(shè)置ACK位,因?yàn)榻K端在等待接收期間收到任何應(yīng)答都表示網(wǎng)關(guān)還能接收來自該設(shè)備的上行數(shù)據(jù)。如果在接下來 ADR_ACK_DELAY 次之內(nèi)(比如:總共發(fā)送次數(shù) ADR_ACK_LIMIT + ADR_ACK_DELAY)沒有收到回復(fù),就切換到更低的數(shù)據(jù)速率上,以獲得更遠(yuǎn)的射頻傳輸距離,并重復(fù)上述過程7。終端設(shè)備每達(dá)到 ADR_ACK_DELAY 就會(huì)再次降低自己的數(shù)據(jù)速率。 LoraWAN的使用場(chǎng)景低數(shù)據(jù)量、容忍高時(shí)延的非移動(dòng)(或偶爾移動(dòng))的終端設(shè)備
(中國(guó)集群通信網(wǎng) | 責(zé)任編輯:李俊勇) |