NB-IOT 終端開發板對接 NB-IOT 網路模擬器調試與測試記錄

NB-IOT 今年很火,業內人士今年要是不和 NB-IOT 扯上點關係都不好意思出門。移動,電信,聯通等各運營商在部分區域已經開始有 NB-IOT 的信號覆蓋了,有業務需求的可以去相應區域測試;當然有些業務用華為的 softradio 的虛擬測試環境。無論那種方式,對於業務開發測試人員來說都比較麻煩,哪怕是運營商的的 NB-IOT 基站建到你辦公室了,因為網路畢竟不由你控制,數據平台也是用別人的。本文告訴你如何使用NB-IOT 終端開發板對接 NB-IOT 網路模擬器調測記錄,揭秘NB-IOT數據處理和伺服器交互細節 。

測試環境

NB-IOT 網路

採用基於通用軟體無線電技術的 Amari LTE100 軟體,運行在一台 Lenovo ThinkPad 工作站筆記本電腦上,射頻模塊採用 USRP B210。

NB-IOT 開發板

本測試環境用的是電信版,通信模組是上海移遠的 BC95 B5。某寶賣家發來的配件材料很多,其實最終用到的就是 USIM 卡、天線、USB 線。

串口調試工具

開發板用 USB 連接到調試筆記本,需要使用串口工具對開發板進行操作控制。臨時網上搜索下載了SSCOM4.2。後來見過更高版本的 SSCOM5.2 貌似功能更強一些。有機會再找來試試。SSCOM 是綠色 免安裝的。

UDP 調試工具

我現在當然是沒有 NB-IOT 的業務平台的,因此為了驗證模塊的通信功能,需要用一個 UDP server來模擬應用系統的數據收發功能。臨時網上搜索,下載了一個 TCP/UDP Socket 調試工具。綠色免安裝,打開後界面是這樣的:

測試過程

1. 啟動 LTE 基站

Amari LTE100 軟基站的啟動是很簡單的,USB 線連接好 B210,然後開兩個Terminal,分別運行幾條 指令即可。下圖網路啟動完後的狀態,左邊是基站 ENB 模塊的Terminal,右邊是核心網 MME 模塊的Terminal。

當然,有寫配置工作是需要提前做好的:

1) B5 的頻點,也就是 EARFCN 了,在 ENB 模塊的配置文件中需要配置好。根據網上搜到信息,一 開始設置成了 2560,後來發現在模塊賣家提供圖片中,電信的實際使用頻點是 2506,因為後面 就該為 2506 了。

2) 核心網 MME 模塊中,將 PLMN 改成,46011,與電信的 PLMN 一致。

3) 寫一張測試 USIM 卡,IMSI 設置為 46011xxxxxxxxxx,並在 UE 信息添加到 MME 的用戶配置中。

2. NB 模塊連接電腦

這個環節就不多做描述了,畢竟就是一個 USB 線的事情,搞定無壓力。

3. 打開 SSCOM4.2 連接 NB 模塊

1) SSCOM4.2 剛打開是這樣的,看起來什麼都沒有啊

2) 在下部的配置區域的串口號下拉框中,選中 NB-IOT 模塊對應的串口號。調測的時候只有一個串 口設備,沒得選就是 COM16。

3) 選中 COM 口後,點擊「打開串口」,旁邊的指示燈圖標就變紅了,表示連接成功。

4) 為了後面的操作方便,把常用的 AT 指令填寫上。在哪裡填寫呢?單擊一下「擴展」按鈕,界面 的右側就會出現「多條字元串發送」框,在這裡可以把需要用到的指令都先填好。下圖中是我們用到的手動找網模式主要命令

4. NB-IOT 開發板手動連接到網路

1) 依次點擊上圖右側的 AT 指令,主要在執行 AT+CFUN=1 時,需要等待幾秒,才能點擊下 一條,否則會提示 ERROR。

2) 下圖是執行到 AT+CDGCONT 的輸出。可以看出完整的 IMSI 是 460111108972389, 工作的 Band 是 band5。

3) 下圖是執行到 AT+CSQ 的輸出。可以看出已經找到信號了,28,99, 28 就是信號強度, 最大 31。如果沒有找到信號,會顯示 99,99。

4) 執行到 AT+NUESTATS 後輸出

5) 執行到 AT+CSCON 後輸出

成果走到這一步,NB-IOT 開發模塊,已經完成了接入到 Amari LTE100 網路的操作。

2.5. 模塊執行 Ping 命令證實聯網狀態

Ping 用於是最簡單的網路狀態工具。在指令中增加 AT+NPING=192.168.4.1。192.168.4.1 是什麼 IP? 這個 IP 是在 Amari LTE100 中配置的 P-CSCF 地址。

點擊發送執行,可以看到返回 OK,以及 IP 地址,位元組等信息。

6.NB-IOT 模塊介入後 LTE100 系統狀態變化

1) 基站 ENB 模塊的 Terminal 上會顯示無線狀態信息,如 MCS、比特率等

2)MME 模塊的 Terminal 上,輸入 ue 命令,會顯示當前已註冊用戶的信息。可以看到一個 UE 已 經註冊,分配的 IP 地址為 192.168.3.2

7.從 Amari LTE100 網路側 Ping NB 模塊

1)新開一個 Terminal,執行 ping 192.168.3.2 命令,此時 ping 命令,沒有反應。

2)在上面的 Ping 命令還在持續未退出時,在 SSCOM4.2 上,點擊執行一次 AT+NPING=192.168.4.1, 這是 SSCOM 界面上會顯示錯誤,但是從 LTE100 電腦上發起的 ping 顯示成功,能收到 UE 的反饋。

8. 從 NB-IOT 模塊發送 UDP 消息至 UDP Server

另外找了一台pc,和 Amari LTE100 連接到同一個路由器,用 TCP/UDP Socket 調試工具新建一個 UDP server,監控本機相應埠即可。

從 SSCOM4.2 上通過 UDP 發包命令,給 UDP server 的 IP 地址發送內容,在 TCP/UDP Socket 就能顯 示收到的內容。

9. 從 UDP Server 發送 UDP 消息至 NB-IOT 模塊

環境與上一條完全一樣,但發包從 TCP/UDP Socket 發起,在 SSCOM 上通過相應的 AT 命令,即可顯示收到的 UDP 包內容。

測試總結與注意事項

1) 基於通用軟體無線電技術的 AmariLTE100 模擬 NB-IOT 網路,能夠與上海移遠的 NB-IOT 模組互 通;當然其它廠商的模組目前還沒有測試,原理上也應該能互通。

2) NB-IOT 模塊和基站之間的連接,必須是 NB-IOT 模塊先發主動發起連接,之後基站側才能進行 與 NB-IOT 模塊的通信。

3) 在測試過程中發現,頻段內有較大幹擾,NB-IOT 模塊會很難接入,看起來比之前純 LTE 的接入 更容易受干擾影響。

4) 在基站發射較大時,NB-IOT 模塊的接入會受影響。一開始時把 LTE100 的發射功率定在最大, 但是優於距離很近,對 NB 模塊來說接收功率過高,也會影響接入質量。

更多可關注 微信公眾號:iotbanks

加入NB-IOT討論微信群可聯繫微信號:seciot

推薦閱讀:

一周工作所用的日常 Git 命令
為什麼我的egg-bin在Visual Studio Code中調試功能無法使用?
追求技術之上的進階閱讀學習索引

TAG:NB-IoT | 物联网 | 软件开发 |