華為提供NB-IoT端到端解決方案的支持,提供多種開放能力供合作伙伴快速集成應(yīng)用。提供海思的NB-IoT芯片,基站網(wǎng)絡(luò)和Ocean Connect連接管理平臺(tái)。開發(fā)者可以根據(jù)芯片/模組開發(fā)手冊(cè)進(jìn)行終端的開發(fā),基于IoT平臺(tái)進(jìn)行APP Server開發(fā)。 ● Device:NB-IoT終端(如智能水表、智能氣表等)通過(guò)空口連接到eNodeB。 ● eNodeB:主要承擔(dān)空口接入處理和小區(qū)管理等相關(guān)功能,通過(guò)S1-lite接口與IoT核心網(wǎng)進(jìn)行連接,將非接入層數(shù)據(jù)轉(zhuǎn)發(fā)給高層網(wǎng)元處理。 ● IoT Core:承擔(dān)與終端非接入層交互的功能,將IoT業(yè)務(wù)相關(guān)數(shù)據(jù)轉(zhuǎn)發(fā)到IoT平臺(tái)進(jìn)行處理。 ● IoT Platform:IoT聯(lián)接管理平臺(tái)匯聚從各種接入網(wǎng)得到的IoT數(shù)據(jù),根據(jù)不同類型轉(zhuǎn)發(fā)給相應(yīng)的業(yè)務(wù)應(yīng)用進(jìn)行處理。 ● APP Server:是IoT數(shù)據(jù)的最終匯聚點(diǎn),根據(jù)客戶的需求進(jìn)行數(shù)據(jù)處理等操作。
步驟 | 執(zhí)行 |
---|---|
step1 | 模組上電,初始化USIM卡 |
step2 | 搜索小區(qū)信號(hào) |
step3 | 附著到NB網(wǎng)絡(luò),進(jìn)入connect狀態(tài) |
step4 | 激活PDN,獲得IP地址,建立PDN承載 |
step5 | 建立用戶數(shù)據(jù)鏈接,收發(fā)用戶數(shù)據(jù) |
step6 | 一段時(shí)間無(wú)數(shù)據(jù)交互后,依次進(jìn)入Drx(Idle)、PSM狀態(tài) |
step7 | 等待上發(fā)用戶數(shù)據(jù),或TAU(跟蹤區(qū)域更新)再進(jìn)入connect狀態(tài) |
在模組進(jìn)入PSM狀態(tài)后IP地址會(huì)保留,若PSM狀態(tài)時(shí)模組請(qǐng)求發(fā)送數(shù)據(jù),模組會(huì)轉(zhuǎn)化為connect狀態(tài),但模組不會(huì)重新獲取IP,還是以之前的IP發(fā)送數(shù)據(jù)。即:模組上電成功獲取IP后,任何時(shí)刻查詢其IP地址都是同樣的IP值。
- 以下為NB模組(利爾達(dá)和移遠(yuǎn)都可以)測(cè)試步驟,方框內(nèi)為發(fā)送相應(yīng)指令后,NB模組返回的數(shù)據(jù);
第一步:開機(jī)/重啟,模塊已經(jīng)正常啟動(dòng)!
REBOOTING REBOOT_CAUSE_APPLICATION_AT Neul OK
第二步:AT+NBAND? 查看當(dāng)前頻段信息,確定是否和模塊型號(hào)對(duì)應(yīng),默認(rèn)移動(dòng)/聯(lián)通 8,電信模塊需要將NBAND設(shè)置為5,之后重啟模塊
第三步:AT+NBAND=5 電信模塊,設(shè)置頻段為850MHZ
第四步:AT+NRB 重啟模塊
REBOOTING REBOOT_CAUSE_APPLICATION_AT Neul OK
第五步:AT+NBAND? 再次查詢模塊頻段信息,確認(rèn)設(shè)置成功
+NBAND:5 OK
第六步:AT+NCONFIG? 查詢配置信息,主要包括自動(dòng)連接使能配置信息,默認(rèn)使能
+NCONFIG:AUTOCONNECT,TRUE // 自動(dòng)連接網(wǎng)絡(luò) +NCONFIG:CR_0354_0338_SCRAMBLING,TRUE 開啟了擾碼功能 +NCONFIG:CR_0859_SI_AVOID,TRUE +NCONFIG:COMBINE_ATTACH,FALSE +NCONFIG:CELL_RESELECTION,FALSE +NCONFIG:ENABLE_BIP,FALSE OK
第七步:AT+CFUN? 模塊是否處于全工作模式,打開射頻電路,搜索信號(hào),如果返回0,請(qǐng)確定AUTOCONNECT值是否為TRUE,以及是否安裝NBIOT專用SIM卡
+CFUN:1 OK
第八步:AT+CIMI 查詢IMSI信息,如果返回具體數(shù)值,說(shuō)明已經(jīng)正常識(shí)別SIM卡
460111176314533 OK
第九步:AT+CSQ 查詢信號(hào)強(qiáng)度,返回的第一個(gè)數(shù)值代表信號(hào)強(qiáng)度,0-31代表有信號(hào),數(shù)值越大信號(hào)越強(qiáng),99代表沒(méi)有NBIOT網(wǎng)絡(luò)信號(hào),第二個(gè)參數(shù)還沒(méi)有實(shí)施,一直為99
+CSQ:21,99 OK
第十步:AT+NUESTATS 查詢模塊狀態(tài)
Signal power:-842 Total power:-718 TX power:-32768 TX time:0 RX time:2472 Cell ID:79044177 ECL:255 SNR:-16 EARFCN:2506 PCI:3 RSRQ:-148 OK
第十一步:AT+CGATT? 查詢是否模塊附著成功,返回1代表成功;網(wǎng)絡(luò)分為測(cè)試網(wǎng)絡(luò)和商用網(wǎng),SIM也分為測(cè)試卡和商用卡,確保一一對(duì)應(yīng)才能附著成功,具體網(wǎng)絡(luò)信息和SIM卡信息可跟運(yùn)營(yíng)商確認(rèn)
+CGATT:1 OK
第十二步:AT+CEREG? 查詢網(wǎng)絡(luò)注冊(cè)狀態(tài),第二個(gè)數(shù)值返回1代表:網(wǎng)絡(luò)注冊(cè)成功,返回2代表:正在注冊(cè)網(wǎng)絡(luò),注冊(cè)時(shí)間和信號(hào)強(qiáng)度有關(guān)
+CEREG:0,1 OK
第十三步:AT+CSCON? 查看模塊工作的連接狀態(tài),第二個(gè)返回?cái)?shù)值代表模塊的工作狀態(tài),1代表CONNECT連接狀態(tài),0代表IDLE睡眠狀態(tài),如果沒(méi)有數(shù)據(jù)交互,在CONNECT狀態(tài)持續(xù)20秒,之后進(jìn)入IDLE狀態(tài);如果仍然沒(méi)有數(shù)據(jù)交互,10秒之后從IDLE狀態(tài)進(jìn)入PSM深度睡眠狀態(tài),此時(shí)模塊不在接收任何下行數(shù)據(jù),如果需要下行傳輸數(shù)據(jù)必須在CONNECT 和 IDLE狀態(tài)下進(jìn)行
+CSCON:0,0 OK
第十四步:AT+NSOCR=DGRAM,17,5683,1 創(chuàng)建UDP SOCKET 傳輸信道,DGRAM和17固定,5683代表本地端口號(hào),1代表使能接收下行數(shù)據(jù);最多可創(chuàng)建7個(gè)SOCKET傳輸信道,返回?cái)?shù)值代表信號(hào)ID號(hào),在發(fā)送和接收數(shù)據(jù)時(shí)需要指定
0 OK
第十五步:AT+NSOST=0,...,####,3,303132 發(fā)送UDP數(shù)據(jù),0代表UDP SOCKET信道ID,...代表遠(yuǎn)程服務(wù)器的IP地址(公網(wǎng)IP地址),####代表遠(yuǎn)程服務(wù)器端口號(hào),3代表發(fā)送的字符個(gè)數(shù)(發(fā)送了3個(gè)字符),303132代表“012”3個(gè)hex表示的字符;返回值代表成功從0信道發(fā)送了3個(gè)字節(jié)的數(shù)據(jù)(我這里測(cè)試發(fā)送了74個(gè)字節(jié))
AT+NSOST=0,54.223.248.94,9502,74,FFAAD0D00000490F3836353335323033303030313031390000041F0000000000000000026B44F8FCF700F1000000020018020A6C002600004D380000000000000000000200000644628E 0,74 OK
1.如果遠(yuǎn)程服務(wù)端接收模塊發(fā)送的數(shù)據(jù),必須在30s = ( CONNECT狀態(tài)20s + IDLE狀態(tài)10s ) 之內(nèi)發(fā)送下行數(shù)據(jù),否則在沒(méi)有數(shù)據(jù)交互的情況下模塊會(huì)進(jìn)入PSM深度睡眠狀態(tài),將 無(wú)法再接收到任何下行數(shù)據(jù),但是此時(shí)模塊仍然可以再次發(fā)送數(shù)據(jù); 2.模塊可以在CONNECT + IDLE + PSM任何狀態(tài)下發(fā)送數(shù)據(jù),只能CONNECT + IDLE 狀態(tài)下 接接收數(shù)據(jù); 3.只需要執(zhí)行一次AT+NSOCR命令創(chuàng)建UDP SOCKET信道,之后任何模式下直接執(zhí)行 AT+NSOST發(fā)送數(shù)據(jù)
第十六步:+NSONMI:0,67 信息代表模塊接收到新的數(shù)據(jù),需要讀取,如果不及時(shí)讀取,接收到下一條數(shù)據(jù),將不會(huì)主動(dòng)上報(bào)該信息;但可以連續(xù)讀??;0代表 UDP SOKECT信道,67代表有67個(gè)字節(jié)數(shù)據(jù)需要讀取。
+NSONMI:0,67
第十七步:AT+NSORF=0,3 讀取數(shù)據(jù);0代表UDP SOCKET 信道,3代表需要讀取數(shù)據(jù)字節(jié)長(zhǎng)度;需要從返回值中提取出有效數(shù)據(jù)303132,代表字符“012”
0,54.223.248.94,9502,67,FFAAD1D10000430F3836353335323033303030313031390000015E8569078F03C000000002000801C1000000030012000000140000003C000003C20000000400080198,0 OK
1.+NSONMI主動(dòng)上報(bào)信息說(shuō)明,如果模塊接收到多包數(shù)據(jù),但是沒(méi)有使用AT+NSORF 命令讀取數(shù)據(jù),那么只會(huì)在第一次接收到數(shù)據(jù)時(shí)上報(bào) +NSONMI 信息,此后不在主動(dòng)上報(bào),直到執(zhí)行 AT+NSORF 讀取數(shù)據(jù)之后才會(huì)上報(bào)。
第十八步:AT+NSOCL=0 關(guān)閉UDP SOCKET 傳輸信道
OK
- 南向設(shè)備:開發(fā)者自行開發(fā)的終端硬件設(shè)備(包含多個(gè)傳感器和MCU)。
- 北向應(yīng)用:開發(fā)者自行開發(fā)的服務(wù)端應(yīng)用(基于華為OceanConnect物聯(lián)網(wǎng)平臺(tái)提供的RESTful接口)。
- NB-IoT:窄帶物聯(lián)網(wǎng),華為等公司主推的物聯(lián)網(wǎng)通訊用蜂巢網(wǎng)絡(luò)。
- NB芯片/模組:類似于3G/4G通信模組,將設(shè)備端數(shù)據(jù)打包發(fā)送到指定平臺(tái)的硬件模塊。
- SoftRadio:用于模擬NB模組、基站、核心網(wǎng)的PC端軟件,可用于在缺乏NB模組和NB實(shí)網(wǎng)環(huán)境時(shí)的設(shè)備對(duì)接調(diào)試。
- OceanConnect:華為物聯(lián)網(wǎng)全聯(lián)接平臺(tái),南向設(shè)備和北向應(yīng)用通過(guò)該平臺(tái)交換數(shù)據(jù)和信令。
- 設(shè)備Profile文件:描述設(shè)備“是什么”、“能干什么”的json格式文件,上傳到OceanConnect平臺(tái)(上傳時(shí)是zip包格式),設(shè)備綁定平臺(tái)和提供服務(wù)的關(guān)鍵配置文件。
- 編解碼插件:用來(lái)對(duì)NB設(shè)備上報(bào)的數(shù)據(jù)進(jìn)行解碼,同時(shí)對(duì)下發(fā)給NB設(shè)備的信令進(jìn)行編碼的插件,對(duì)接前需上傳到OceanConnect平臺(tái)。
概念:信令下發(fā)是另一個(gè)物聯(lián)網(wǎng)的基本業(yè)務(wù)。應(yīng)用服務(wù)器通過(guò)物聯(lián)網(wǎng)平臺(tái),發(fā)送信令到南向設(shè)備,而設(shè)備也將做出一些對(duì)應(yīng)的響應(yīng)。 流程: 1. 應(yīng)用創(chuàng)建信令(命令的相關(guān)項(xiàng)需要和設(shè)備Profile中的描述一致),發(fā)送到平臺(tái); 2. 如果平臺(tái)判斷設(shè)備在線,則立即下發(fā)信令;如果平臺(tái)判斷設(shè)備離線,則 信令將緩存于平臺(tái)的數(shù)據(jù)庫(kù)中; 3. 南向設(shè)備在某時(shí)刻上報(bào)數(shù)據(jù),平臺(tái)收到數(shù)據(jù)后,將檢索對(duì)應(yīng)設(shè)備在數(shù)據(jù)庫(kù)中是否存在有效未下發(fā)的信令,如有,則下發(fā)該信令; 4. 信令通過(guò)編解碼插件進(jìn)行編碼(json到16進(jìn)制碼流),并被發(fā)送到設(shè)備端; 5. 設(shè)備收到信令,執(zhí)行完畢,返回信令執(zhí)行結(jié)果; 6. 平臺(tái)收到上述執(zhí)行結(jié)果,通過(guò)編解碼插件的解析,獲取信令執(zhí)行的結(jié)果,修改對(duì)應(yīng)的信令狀態(tài)。
概念:信令下發(fā)是另一個(gè)物聯(lián)網(wǎng)的基本業(yè)務(wù)。應(yīng)用服務(wù)器通過(guò)物聯(lián)網(wǎng)平臺(tái),發(fā)送信令到南向設(shè)備,而設(shè)備也將做出一些對(duì)應(yīng)的響應(yīng)。 流程: 1. 應(yīng)用創(chuàng)建信令(命令的相關(guān)項(xiàng)需要和設(shè)備Profile中的描述一致),發(fā)送到平臺(tái); 2. 如果平臺(tái)判斷設(shè)備在線,則立即下發(fā)信令;如果平臺(tái)判斷設(shè)備離線,則信令將緩存于平臺(tái)的數(shù)據(jù)庫(kù)中; 3. 南向設(shè)備在某時(shí)刻上報(bào)數(shù)據(jù),平臺(tái)收到數(shù)據(jù)后,將檢索對(duì)應(yīng)設(shè)備在數(shù)據(jù)庫(kù)中是否存在有效未下發(fā)的信令,如有,則下發(fā)該信令; 4. 信令通過(guò)編解碼插件進(jìn)行編碼(json到16進(jìn)制碼流),并被發(fā)送到設(shè)備端; 5. 設(shè)備收到信令,執(zhí)行完畢,返回信令執(zhí)行結(jié)果; 6. 平臺(tái)收到上述執(zhí)行結(jié)果,通過(guò)編解碼插件的解析,獲取信令執(zhí)行的結(jié)果,修改對(duì)應(yīng)的信令狀態(tài)。