浅谈NB-IOT模块调试

2023-11-08

背景

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浅谈NB-IOT模块调试 的相关文章

  • 数据结构——链表例题1

    1 在递增有序链表L中插入值为x的元素 使L依旧保持递增 void Insert LinkList L DataType x LinkList p L q p gt next s while x gt q gt data q NULL q可
  • 基于Vision Transformer的鸟类图像分类(200个类别)完整代码+数据

    视频讲解 Vision Transformer的鸟类图像分类 200个类别 完整代码 数据 哔哩哔哩 bilibili 项目结构 数据展示 主要的运行代码 import os import math import random import
  • 深入理解生产者与消费者问题

    缓冲区的形象理解 缓冲区好像使用一条传送带替代托架 传送带上一次可以放多个产品 生产者在缓冲区尾加入数据 消费者在缓冲区头读取数据 缓冲区满时 缓冲区上锁并等待消费者线程读取数据 每一个生产或消费动作使得传送带向前移动一个单位 因此 消费者

随机推荐

  • Day22_7 Java学习之对象数组

    目录 一 什么是对象数组 二 对象数组的作用 三 对象数组的语法定义及动静初始化 语法定义 静态初始化 在定义数组的同时对数组元素进行初始化 动态初始化 使用运算符new为数组分配空间 四 对象数组案例演示 案例需求 具体实现代码 一 什么
  • 《数据结构》第4章 串、数组和广义表

    数据结构 第4章 串 数组和广义表 第4章 串 数组和广义表 4 1 串的定义 4 2 串的类型定义 存储及其 运算 知识点1 串的表示 方法1 定长顺序存储表示 方法2 堆分配存储表示 方法3 串的块链存储表示 知识点2 必考 串的模式匹
  • Snipaste - 截图工具

    Snipaste 简介 Snipaste 是一个简单开源且强大的截图工具 也可以让你将截图贴回到屏幕上 下载并打开 Snipaste 按下 F1 来开始截图 再按 F3 截图就在桌面置顶显示了 就这么简单 你还可以将剪贴板里的文字或者颜色信
  • VS2008配置opencv

    配置过程 1 需要先提前安装好VS2008并下载好opencv的库 2 配置Windows环境变量 具体步骤为 右键我的电脑 属性 详细设定标签里 gt 环境变量 gt 系统变量 找到Path 将D Program Files opencv
  • 网络通信之应用层协议--Linux

    文章目录 关于应用层协议的理解 应用层协议的制定 理论部分 代码部分 完整代码以及测试 HTTP协议 代码测试HTTP协议 HTTPS协议 加密原因 基础的加密方式 数据摘要 数据指纹 数字签名 HTTPS的加密方式的选择 总结 关于应用层
  • OWASP TOP-10(2023) API风险

    OWASP API 1 对象级别授权失效 水平越权 攻击者就可以通过改变请求中的对象ID来绕过授权限制 从而获取敏感数据或者完全掌控账户 这个漏洞在基于API的应用程序中非常普遍 因为服务器通常无法跟踪完整的用户状态 而是依赖于请求参数中的
  • 网络攻防复习篇

    绪论 1 网络空间的4个要素 设施 数据 用户 操作 见第一章PPT 61页 下面这个图要背好 2 网络空间安全基本概念 络空间安全涉及到 络空间中的电磁设备 电 信息系统 运 数据和系统应 中所存在的安全问题 既要防 保护 信息通信技术系
  • open3d读取、显示和保存点云数据

    1 从文件中读取点云 接口1 bool open3d io ReadPointCloud const std string filename geometry PointCloud pointcloud const ReadPointClo
  • NCC申请授权

    1 进入home路径下的bin文件夹 打开sysconfig配置文件 2 在sysconfig配置界面 点击license 生成硬件锁 在弹框界面输入产品号 产品号可在点击 读取授权 按钮后 进行查看 后 点击确定 自动生成一个hardke
  • CryptoPP使用介绍

    CryptoPP使用介绍 发表时间 2012年06月15 分类 编程开发 作者 天缘 Crypto 是个免费的C 加解密类库 由于资格太老 持续更新 最新版本到了CryptoPP 5 6 对天缘而言 第一眼看到CryptoPP就感觉头大 根
  • 文本语言模型的参数估计-最大似然估计、MAP及贝叶斯估计

    以PLSA和LDA为代表的文本语言模型是当今统计自然语言处理研究的热点问题 这类语言模型一般都是对文本的生成过程提出自己的概率图模型 然后利用观察到的语料数据对模型参数做估计 有了语言模型和相应的模型参数 我们可以有很多重要的应用 比如文本
  • JavaWeb - Servlet:重定向和转发,状态管理

    Servlet JDBC 应用 在 Servlet 中可以使用 JDBC 技术访问数据库 常见功能如下 查询 DB 数据 然后生成显示页面 例如 列表显示功能 接收请求参数 然后对 DB 操作 例如 注册 登录 修改密码等功能 为了方便重用
  • 代理重加密(Proxy Re-Encryption)技术原理和Java代码实现

    欢迎关注公众号 区块链之美 致力于区块链技术研究 传播区块链技术和解决方案 区块链应用落地 区块链行业动态等 1 代理重加秘的应用介绍 由于大部分的云服务供应商并不能完全值得信任 云服务供应商可能会在未经用户允许的情况下 擅自泄露用户的隐私
  • 【node】10、express模块搭建服务

    express模块是一个外部引入模块 不是node内部自身的模块 所以需要下载express模块才能引入 下载express之前需要初始化项目文件 npm init y 初始化后安装express npm install express 安
  • org.springframework.aop.AopInvocationException: Null return value from advice does not match primiti

    private static Object processReturnType Object proxy Object target Method method Object retVal Massage return value if n
  • Python3 TypeError: Required argument ‘outImg‘ (pos 3) not found

    问题 在用python3使用img3 cv2 drawMatchesKnn img1 kp1 img2 kp2 good flags 2 的时候 可能会产生错误 TypeError Required argument outImg pos
  • solidity 安全 合约的短地址攻击——这个锅谁来背

    前一段时间 有个用户用说发交易的时候提示地址错误 后来发现发送的地址少了一字节 所以钱包检测发送地址时 会提示错误 当时也没当回事 以为是用户自己搞错了 最近研究solidity的时候 才明白了当时是怎么回事 原来这个用户遇到了短地址攻击
  • 超详细解释MyBatis与Spring的集成原理

    前言 最原始的MyBatis的使用 通常有如下几个步骤 读取配置文件mybatis config xml构建SqlSessionFactory 通过SqlSessionFactory拿到SqlSession 通过SqlSession拿到Ma
  • SpringCloud

    文章目录 微服务架构 SpringCloud 二 上篇SpringCloud本Cloud 1 SpringCloud的命名规则及版本关系 1 1 springboot与springcloud的版本依赖 1 2 本次博文使用的环境及版本 2
  • 浅谈NB-IOT模块调试

    背景 在物联网的口号下 我们公司也有幸踏足NB物联这块 当然也只是二次应用开发 NB核心开发技术都掌握在几个大公司大佬手里 例如 华为海思 高通 intel 当然模块 厂商又例如 移远 ublox等 芯片的资料和技术不像Lora这样开源 所