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