背景

在物联网的口号下,我们公司也有幸踏足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。

浅谈NB-IOT模块调试相关推荐

  1. 休眠后gpio状态_浅谈Digi XBee模块的休眠模式

    浅谈Digi XBee模块的休眠模式 2020-3-25 Digi XBee S2C模块,如果仅连接电源线可以测得,在待机情况下,大约是10.5mA左右的电流,在休眠时的功耗可以低到0.5uA.可以知 ...

  2. 浅谈AM5728裸板调试

    一.浅谈ARM裸板调试 1. 连接仿真器,读写寄存器 将硬件仿真器插到ARM板的JTAG口上,然后连接PC,现在的ARM仿真器好像都是通过USB和PC相连了.连接好后,就给板子上电,然后打开PC端的调 ...

  3. 浅谈C++跨模块释放内存

    浅谈C++跨模块释放内存 一, MT改MD 二, DLL提供释放接口 三, 使用进程堆申请内存 在开发主程序和动态库时,首要原则就是:避免跨模块申请和释放内存.这一点,我们在很多开源库或者平常项目中也 ...

  4. 浅谈GSM/GPRS模块软硬件设计(基于有方M660+模块和单片机)

    GSM/GPRS芯片是手机中负责收发短信.拨打电话以及访问GPRS网络的核心器件.有方M660+为深圳有方公司生产的一款超小封装的GSM/GPRS工业无线模块,可以提供高品质的语音.短信.数据业务等功 ...

  5. 若要加载模块二进制_春哥说 | 浅谈NodeJs的模块机制-2

    ★ 目录 ★ 01 Node的模块实现概述 02 优先从缓存中加载 03 路径分析和文件定位 Node的模块实现概述 Nodejs再集成CommonJs的模块机制的规范时进行了取舍,同时增加了特性. ...

  6. 浅谈代码规范基础调试几道面试题

    废话篇:本文由CSUST的FINAL实验室的LX创作,用途是给予CSUST的小鲜肉们一些关于C语言代码规范的一些基本知识,若本文有什么错误或是表述不清之处,欢迎留言讨论指正. 代码规范: 在讲代码规范 ...

  7. 浅谈Node.js模块系统

    模块是什么?模块用于不同node.js文件相互调用功能.也就是说,一个js文件就可以是一个模块. 1.创建模块 main.js文件: var hello = require('./hello'); h ...

  8. python 调用 .netcore api_浅谈Python调用XBee的API来进行通讯

    浅谈Python调用XBee的API来进行通讯 用python编程来控制串口(COM口),来让一对XBee进行通讯.不需要借助终端来发送和接收数据,增大了XBee使用的灵活性.这才是使用XBee模块的 ...

  9. 浅谈游戏服务器---功能模块上来看

    游戏服务器在网游上的作用不容考虑,游戏能做大到什么程度,还是有很大的依靠的,这篇文章先从功能模块的角度来谈一个完善的游戏服务器需要实现哪.     一:游戏服务器的作用:连接各个网游客户端,实现各客户 ...

  10. 浅谈STM32的DMA模块的使用

    浅谈STM32的DMA模块的使用 转自:http://blog.ednchina.com/jack_chang/123085/message.aspx http://article.ednchina. ...

最新文章

  1. 云开发平台开箱,3分钟零基础搭建个人Hexo博客
  2. 基于IdentityServer4 实现.NET Core的认证授权
  3. 上机环境是什么意思_Python能不能自学,可以找到什么工作?
  4. 用c语言写出一个榜单程序,C语言依然位居榜单前列,依然值得程序员学习
  5. Jeecg-Boot 快速开发平台,前后端分离—开发环境搭建
  6. 7-121 删除字符串中的子串 (20 分)
  7. python网页提交表单_Html表单——使用python在web页面上显示用户提交的数据
  8. Web系统开发构架再思考-前后端的完全分离 MVVM
  9. laravel5.1 基于redis实现任务队列
  10. HDU 4553:约会安排(区间合并)
  11. CKEditor 富文本编辑器转PDF
  12. idea改类名快捷键_IDEA使用之快捷键(default设置)
  13. windows 查看ttf字体
  14. ASCII码与10进制、16进制转换对照表
  15. RabbitMQ面试要点
  16. 安卓开发-最简单快速的仿微信聊天实现-附赠微信原生表情,QQ原生表情
  17. 第一章 matlab 学习入门之matlab基础
  18. 美国购房最常用的英文术语全解
  19. Unity3d菜鸟入门的学习路线--笔记1
  20. 【小河今学 | JavaScript+jQuery】JQ插件开发练习之数据表格插件

热门文章

  1. php 实现网站克隆,自己写的php curl库实现整站克隆功能
  2. 人员基础信息一体化采集设备
  3. 怎么用linux给苹果手机降级,如何查询iOS可降级版本?苹果iOS随意降级工具或即将到来...
  4. 永洪BI-相关小知识点
  5. c语言题库-礼炮声响次数,c语言题库与答案精华版资料.doc
  6. 博科光纤交换机配置及管理 CLI篇
  7. 图像处理-RGB24转YUV420遇到的坑以及执行效率对比
  8. 网络调试助手无法连接tcp服务器,W5500 TCP 客户端网络调试助手连不上
  9. 宅男福利——在控制台上跳极乐净土(音频版)
  10. 二级C语言考试环境注意事项