1. 程式人生 > >淺談NB-IOT模組除錯

淺談NB-IOT模組除錯

背景

在物聯網的口號下,我們公司也有幸踏足NB物聯這塊,當然也只是二次應用開發。
NB核心開發技術都掌握在幾個大公司大佬手裡,例如:華為海思、高通、intel。當然模組
廠商又例如:移遠 ublox等。晶片的資料和技術不像Lora這樣開源,所以我們小公司
只有使用模組的份,裡面的技術實現我們是觸碰不到的。那麼我們就拿華為海思的芯
片(移遠模組)來做一下淺嘗輒止的探討。以下敘述內容只屬於個人言論,不摻雜任何
感情色彩。

一、除錯聯通步驟:

公司先提交專案方案和產品使用場景給到華為,經過稽核後華為和你會簽訂合作協議,具體
內容不詳。這一階段會給出一部分資料,大多是軟體平臺的對接方式和硬體模組的一些開發
AT指令集。這時候公司自己拿到資料後進行開發進度和時間評估。
對接分為南北向介面,一個是介面是:終端----》華為平臺
                另一個是:華為平臺---》到自己私有應用平臺
1、軟體平臺對接
    提供兩種對接方式
    @1:使用華為的平臺,嵌入我們自己的解析層程式碼,使用profile檔案提前說明等等。
       解析層程式碼:要依據華為給出的編解碼庫開發文件進行編寫。
       profile檔案:意思是裡面要按照華為給定的json格式填寫,裡面稍有填寫不正
       確可能第一次除錯都通不過。profile裡面講到的主要是----》你終端是什麼?
       屬於哪家公司?裡面都會傳輸什麼資料到平臺?
       只有把這些東西填寫完整之後,提交到華為平臺進行稽核,如果沒有出現錯誤,那
       麼恭喜你,你可以進行軟硬體聯調了。但是我們就沒有那麼順利來來回回改了不下
       於5次,這還是在看了好多資料的情況下才寫出來的profile,可能也是自己才疏
       學淺,笨啊。最終還是成功了。如果你走到了這一步,那麼剩下來的就是硬體準備
       了。開發完成之後進行聯調。
    說實話,從硬體開發--到---上線,總共的除錯要分為三個階段。走到這裡聯調的第一
    階段的第一步才剛剛開始。因為涉及到運營商的網路鋪設問題(畢竟這個基站升級部署
    NB網路需要時間,大家都理解,只是動作快與慢的問題)。華為很聰明的給出了一個
    softradio軟體,這樣的話就不需要你用到基站的網路進行除錯,畢竟這個基站什麼
    時候部署完善現在也沒有定性,就算部署完善之後訊號怎麼樣也不好說,所以乾脆去除
    這個不確定因素。為華為的這一舉動點個贊。
    上面提到了一個softradio軟體,這個軟體是幹什麼的呢?這個軟體就是模擬的你使
    用的NB模組,也就是說你可以脫離物理上的NB模組來進行除錯與平臺的連通性。這個
    軟體裡面安裝之後,登入地址是:localhost:8090,不過想要使用這個軟體需要向
    華為那邊進行key值,給到之後新增上去才能用。

這裡寫圖片描述
這裡面的操作是與你寫的profile裝置描述有關係的,等你把profile瞭解清楚之後這裡該填什麼到時候自然會知道。
這裡寫圖片描述
這個裡面有個com口設定,這個是幹什麼的呢?這個就是你的NB模組與MCU的介面,這個就是模擬的NB物理模組的串列埠。在這裡你可以使用一個串列埠除錯工具或者是真正的MCU去控制資料的收發。連線之後你傳送NB模組能識別的AT指令,他會回覆你相應的回覆,當然前提是你的網路是通的還有就是你的softradio已經和平臺通訊沒有問題了才可以,否則softradio只能回覆你error.具體原因是什麼我就不一一列舉了,畢竟情況千奇百態只有親身測試過才知道。
這裡寫圖片描述

這個就是模擬的NB物理模組與平臺之間的一系列有線連線和無線連線,當然在這個軟體中你只需要把平臺的IP地址和埠寫上就可以了,這個配置就是省去了實際的物理模型(NB模組—-》基站—–》公網——》平臺側)的連線,直接一個IP埠代表了所有。這就排除了網路運營商的基站佈設問題。
這裡寫圖片描述
這個裡面就是在進行除錯的時候,你與平臺互動的指令跟蹤查證用的。你的上報和下發的資料都會在這裡呈現,到時候在這裡進行查詢就可以了。當然前提是你的前幾個步驟必須配置正確之後才可以奧。
這裡寫圖片描述

這個上面就是之前說的keys值就是根據你的ESN生成的,你需要提交這個ESN值到華為,他那邊生成key之後在進行下面匯入key值之後,軟體才可以使用奧。
就此一些軟體方面的工具除錯已經介紹完了。奧,對了這個除錯是基於Coap協議進行除錯的。如果你是用的是UDP,那麼不好意思,還沒辦法調,不知道現在可以了沒有。
Coap也是一種資料傳輸協議,同一種資料傳輸量比較
16進位制 ===== Coap/2 <<<<<<<< http
Coap就是在把16進位制的高8位和低8位分別轉化成字元進行傳輸的,例如要
傳輸16進位制的:0xAB
Coap傳輸:字元A 字元B ====》轉換成ASCII字元===》0x41 0x42都變成可見字元了
http傳輸:json(0xAB)資料量就大了。
UDP——–>封裝———》Coap (形式差不多,不需要回復)
TCP———>封裝———》http (形式差不多,要回復)

因為華為NB現階段支援Coap和UDP,所以所有的終端和伺服器的資料解析都得按照Coap這種協議進行。

@2:另一種對接形式就是使用UDP的性質,你終端只需要在華為的平臺上註冊過也就是IMEI號碼註冊過,UDP傳輸的時候,你可以IP寫成你自己公司的IP,之前所有的對接都不需要了。像什麼profile和編解碼庫都不需要開發,可以直接把資料吐到自己的資料解析服務上面去。但是有一個問題就是,假設你的網路情況很好的話還可以,畢竟不怎麼用除錯,看到資料上來了就好。假設發上去了你伺服器沒有收到,這時候你就頭大了,你不能確定是你硬體開發寫的AT指令不對還是網路不行還是其他的情況。畢竟你沒有東西可以查證。畢竟之前那種的話有個softradio軟體供你查證。

二、實驗室除錯

當以上情況都正常,資料聯通正常的情況下,這次就需要去華為的實驗室進行除錯,這個除錯一般都很簡單,就是把硬體模組的APN設定成華為的實驗室的佈設的網路,IP地址換一下,埠換一下,這時候在進行收發資料。如果華為實驗室的網路沒有多大問題,你的終端沒有改動的情況下,這個調通是很快的,不過原先的運營商的sim卡要換成華為專門為你提供的才可以。否則上不去網。不過華為實驗室的改動比較大,更新貌似與移遠釋出模組版本還不一致。有的時候實驗室版本上上去了,老的模組不支援,還必須給移遠要新的版本進行升級。說道這個升級我就鬱悶了。給了兩種升級工具一種是直接傻瓜式的UI介面的操作,一種是需要在dos下修改批處理檔案的操作,但我就喜歡傻瓜式操作啊,使用哪個貌似和51微控制器下載程式的東西一樣,只是韌體需要下載三個,按照上面的標註,把三個韌體新增進行下載。進行重新上電之後就開始下載,不過這次升級很不成功,有的版本使用這種升級方式死活升不上去,具體原因不詳,如果沒有特殊說明這兩種工具有什麼區別,或者是什麼場景下應該使用哪種工具。那麼問題就來了為什麼傻瓜式的升級工具就不行呢?大家都是開發人員,什麼情況大家都懂。我就不再這裡多說啥了,希望是我操作失誤導致的。但是隻操作4次滑鼠單擊,我覺著我還沒有笨到這地步這也會出錯,另註明,沒事使用的工具都是和韌體在一塊的工具。多次嘗試不行換成了另一種工具一次就OK了。普通的(傻瓜式)下載工具如下:
這裡寫圖片描述

三、運營商線上除錯

最後華為實驗室聯調通過之後,在和運營商之間除錯。你NB使用哪家的sim卡就和誰去除錯。當然之前的APN要重新設定成運營商的要不網路你是連線不上公網的。這個除錯更簡單基本上就是修改APN之後資料收發正常就OK了。剩下的工作就該時間來證明了,就是你測試階段。看看網路情況適不適合了。

四、另一種資料收發形式

最後一種華為和運營商都不會提供,除去以上兩種形式之外還有一種可以進行與平臺通訊,我們只是有嘗試,但也沒有真正去用。畢竟這種形式2個大佬沒提供肯定也有不提供的緣由,我就在這不過多贅述。畢竟他們會控制不住。

五、NB-IOT使用體驗

在經過幾個月的測試和驗證,感覺網上說的續航可達7/8年,我咋不太信呢。檢測啟動峰值電流與普通的2G模組沒有下降多少啊。只是在發射和接收的時候的確下降了不少。但是那個電流值看下來還是比較高的,與區域網組網的那種(Lora)還是有不少的差距,因為使用的場景不一樣,我也不過多的評述什麼,能續航7/8年的,我就想知道你們的上報週期是多少的啊,很頻繁的話,根本就不可能啊。有的甚至新聞鼓吹待機10年,我真呵呵了。除此之外就是電池這塊,續航除了裝置自身消耗之外還有電池的自損,能成10年的電池,也是很牛逼啊。真希望最後的發展真像宣傳的那樣牛逼,那時候我就服你NB-IOT。