EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Tronlong123 于 2024-7-21 17:37 编辑
/ V' ^: v9 e* d- h) d+ {; x) t, ^; Y, x6 k" N$ D, w
目录
8 U9 Y2 n% I+ X- v. j5 N2 NB-IoT模块测试
$ E+ A: s) ` L7 c6 I* F" \2.1 获取IMEI和IMSI
: V7 V' M4 d" A% e* u2.2 创建云端NB-IoT设备1 y* F4 M# E3 N; u `% B
2.3 创建通信套件实例
. U8 [( @ ]1 ?0 @7 k2.3.1 生成配置参数
+ L# D, V+ c2 o% F C1 q2 P2 M2.3.2 创建实例% c" Y" ^( N9 d4 b9 w5 A4 b& D; U( Q
前言本文主要介绍基于创龙科技TLIMX6U-EVM评估板的物联网模块开发案例,适用开发环境:
) G: e. _& m6 u) X3 K9 @4 x4 HWindows开发环境:Windows 7 64bit、Windows 10 64bit- y# V8 w' K6 R6 v; s5 p; Q
虚拟机:VMware15.1.0
' ^: i; L0 J d+ k3 q* ~5 X5 n8 F8 yLinux开发环境:Ubuntu18.04.4 64bit
% h" D# m7 X4 B \0 ]4 PU-Boot:U-Boot-2020.04
, `4 h' Z5 B; |- D9 ^Kernel:Linux-5.4.70
8 o( H# H, Y. W* R& z5 K" XLinux SDK:5.4.70_2.3.0
& Y- O. ?% H! S/ ~4 C1 r& n无特殊说明情况下,默认使用USB TO UART1作为调试串口,使用Linux系统启动卡(SD启动模式)启动系统,通过路由器与PC机进行网络连接。2 _ M) _# T7 ?9 m
创龙科技TLIMX6U-EVM是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
- [4 J9 @" {; h 评估板正面图 2 NB-IoT模块测试本案例使用的NB-IoT模块型号为:亿佰特EA01-D,详细参考资料请查看产品资料“1-开箱必读\产品规格书\拓展模块规格书\”目录下的《EA01-D_Usermanual_CN_v1.1》文件。请将NB-IoT物联网卡插至NB-IoT模块Micro SIM卡槽,然后将模块插至评估板NB-IoT接口,将2.4G天线连接至模块天线接口,如下图所示。+ i2 W/ d) y; F; p
备注:由于存在引脚复用关系,请勿同时将Zigbee、LoRa模块连接至评估板。
/ F, q4 B/ {( ~9 H& p2.1 获取IMEI和IMSI
@' A0 j; D! H& @; A进入评估板文件系统,执行如下命令指定串口后台运行,用于接收模块信息。
6 ~( p6 l' J! n3 Y+ UTarget#cat /dev/ttymxc5 &/ ~6 V- y1 `8 i7 ^: k
Target#stty -F /dev/ttymxc5 -echo5 G$ Z& a6 Z, l2 G! `* A
执行如下命令,获取IMEI码和IMSI码。
* w w6 v a/ U- Y- o8 TTarget#echo "AT+CGSN=1" > /dev/ttymxc5 //获取IMEI码* g' I* }( y! b2 P! `8 y8 y9 @/ k6 B
Target#echo "AT+CIMI" > /dev/ttymxc5 //获取IMSI码
" s& T. N3 g" d- q T' \本次获取的IMEI码为"864624050017021",获取的IMSI码为"460082267401907"。
5 K1 Z& ` B: T% H; G; l2.2 创建云端NB-IoT设备
% x4 w7 g/ u2 u& X9 u2 e' \! @本次测试以中国移动NB-IoT物联网解决方案OneNET为例进行演示。请登录官方网站:open.iot.10086.cn,通过手机号进行注册账号并登录。 \! {/ b& N y5 |# k
账号登录成功,进入如下界面,点击右上角“控制台”。4 m+ B1 Q) g+ p% m7 ~
进入如下界面,点击左上角“切换至旧版”。
i) H0 w2 H4 A c B进入如下界面,进入“NB-IoT物联网套件”。% x3 |+ `. F# W( v( @' L6 H
进入如下界面,点击“添加产品”。; \7 J; |1 M/ n/ S0 g$ ?
进入如下界面,根据实际情况依次输入产品信息:产品名称、产品行业、产品类别,以及技术参数:联网方式选择"NB-IoT"、设备接入协议选择"LWM2M"、操作系统选择"Linux"、网络运营商选择“移动”。
9 c5 F- W; b7 i/ _( ?产品添加完成后,弹出如下窗口,点击“立即添加设备”。9 e! N* z$ i; l3 y" [$ |( I
进入如下界面,点击“添加设备”。, z" \9 y7 J0 {% c% U, d8 P
进入如下界面,依次输入设备类型、设备名称、IMEI码和IMSI码,并开启自动订阅功能。
8 }( F; @% [6 U. G. B+ R& @0 | y设备添加成功后,将会弹出如下窗口,请将设备ID:969146269和PSK码:8NKXxti2IS5WaDjW记录保存,用于后续测试,然后点击“知道了”按钮关闭窗口。
$ o7 h h6 n4 ~6 Z# X( t进入如下界面,可观察到目前设备处于离线状态,点击“详细”。0 [% I2 X; s% Z& I9 O
进入如下界面,点击“编辑”,在弹出的窗口输入自定义Auth_Code:Tronlong,然后点击确认关闭窗口。至此,云端NB-IoT设备创建完成。: ]1 C" B# Z7 v' p( W0 _' u9 @
2.3 创建通信套件实例
* g# ?1 `5 Z7 @ y* l3 \* k V本章节主要演示NB-IoT模块的通信实例,详细参考资料请查看产品资料“6-开发参考资料\其他参考文档\”目录下的《EA01-S+3GPP和运营商云平台标准指令手册》文件。
+ o* r' h7 [/ t) t/ z) l2.3.1 生成配置参数
. o2 H2 ~* K( X0 h# E将产品资料“4-软件资料\Tools\Windows\”目录下的cfg_tool.zip和Sublime-Text-Build-3211_x64.zip压缩包拷贝至Windows非中文目录下并解压。: Q. U! [# @/ n& c: c& b2 A
进入Sublime-Text-Build-3211_x64目录,双击sublime_text.exe程序进行安装。7 P; W$ ?# E) N2 O) q
进入cfg_tool目录,使用文本工具打开test.xml文件,5 t' F7 h {, ^0 P: h
根据前面步骤获取的信息,修改AuthCode为Tronlong,修改PSK为8NKXxti2IS5WaDjW,如下图所示。$ K5 v4 ?$ t% I, c9 C
打开Windows命令行CMD,输入如下命令进入ctg_tool目录,生成配置文件。
5 o: ?: T8 b' S O& pCMD#cd /d E:\tools\cfg_tool\5 l7 b! U; a& }+ A, _4 t. ?
CMD#cis_cgtool.exe test.xml out.bin
$ r F+ z4 ?/ ~" |* B8 u% m. D/ S执行完成后,将会在ctg_tool目录下生成out.bin文件。& j, p/ v( v6 t5 N3 j1 |' e
打开Sublime Text软件,将生成的out.bin文件拖入该软件打开,可看到设备配置参数以16进制显示。同时鼠标右击点击out.bin文件可查看该文件大小为93Byte。
; @- A& i- _: v: |& O2.3.2 创建实例
7 I, n/ x; E" J* ~# ~/ g+ [(1) 创建OneNET通信套件实例
) r5 @7 f; u" d; p+ ~8 T8 u# s测试命令为:echo AT+MIPLCREATE=<total size>,<config>,<index>,<currentsize>,<flag> > /dev/ttymxc5' `5 F. |2 \& R y4 i
参数解析: {) H9 f1 q( {( p5 ?- v
<total size>:配置文件的总长度。即out.bin文件大小,本次测试文件为93Byte。
2 Y4 b2 E4 f, O) h<config>:配置文件内容,16进制数的形式。* z* o: V5 W& ^/ `1 R
<index>:配置文件的序号。考虑到AT指令长度有限,一个完整的配置文件未必能在一条AT指令中发送完成,可将内容切分成多段。比如分为N段,则从前到后按照降序依次分配序号为N-1~0,按照从大到小序号的顺序每段调用一次AT指令。如当index为0时,意味着该条指令为最后一条配置消息。
+ l S' O: j1 B& v+ Y2 h4 x: |<currentsize>:当前命令所包含的配置文件长度。本次测试为93Byte。
" o: Q6 \4 p, i! Z- F<flag>:消息标识,1:第一条消息,2:中间消息,0:最后一条消息。
! L1 a# z& \0 u+ N2 i; I5 F进入评估板文件系统,在可执行程序所在目录下执行如下命令,返回OK表示创建成功。7 B j% O: i3 N, F5 ~/ @4 Y0 r
Target# echo "AT+MIPLCREATE=93,13005df10003f2004f040011800005434d494f540000000000123138332e3233302e34302e33393a35363833002741757468436f64653a54726f6e6c6f6e673b50534b3a384e4b58787469324953355761446a573bf30008e400c80000,0,93,0" > /dev/ttymxc5
3 M8 E* _8 F) K( x(2) 创建LwM2M协议实例
# D5 ?- K! s' w" N& t测试命令为:echo AT+MIPLADDOBJ=<ref>,<objectid>,<instancecount>,<instancebitmap>,<attributecount>,<actioncount> > /dev/ttymxc5
, Y8 E/ l1 C, _参数解析:
' A3 }. s4 ~5 G- I<ref>:基础通信套件的一个实例标识,类型为一个无符号整数。5 A3 Z( E! ?; q$ x- k. S
<objectid>:对象ID。6 E% T S S: L; `4 s h( i
<instancecount>:实例个数。
$ L* `- S( C7 [# N$ h+ Q r<instancebitmap>:实例位图,字符串格式,每一个字符表示为一个实例,其中1表示可用,0表示不可用。例如添加的Object有5个实例,其中1、3可用,则实例位图为00101。
- m* m* ^2 E5 C<attributecount>:属性个数。
7 i2 G: f5 x, v5 J" c: y<actioncount>:操作个数。
- ~. O5 q7 i. S) h- z2 Z在可执行程序所在目录下执行如下命令。
4 F' I- p% O! m" E2 bTarget# echo AT+MIPLADDOBJ=0,3311,2,11,4,3 > /dev/ttymxc5; L z9 V/ k, l
(3) 发送注册请求+ p7 B" v; e, `2 ?; }4 S; ]2 R* M
测试命令为:ehco AT+MIPLOPEN=<ref>,<lifetime>,<timeout> > /dev/ttymxc5
" o1 n: }3 O# \1 a' g<ref>:基础通信套件的一个实例标识,类型为一个无符号整数。
7 x+ ]# b4 `+ F<lifetime>:生命周期,单位为秒。; y9 R6 k% w" f; c# m6 H
<timeout>:注册的超时时长,单位为秒。
% P$ j$ a9 R& |: F3 J在可执行程序所在目录下执行如下命令。当通信无误时,将会返回OK,模块接下来开始上报状态事件,如下图所示。
. W p' J. |: X: X- YTarget#echo AT+MIPLOPEN=0,3000,30 > /dev/ttymxc5- b# B" `+ A9 U3 x1 z% v# h7 `: y
状态事件信息说明如下。9 Z z: I0 v7 @: b+ j
+MIPLEVENT:0,1 //bootstrap启动
4 [3 p, r+ `5 \$ `+ n: ~+MIPLEVENT:0,2 //bootstrap启动成功3 z1 m- _8 l6 l, n
+MIPLEVENT:0,4 //连接成功$ j3 v. V3 h9 r# g+ x1 l& A, ^7 f
+MIPLEVENT:0,6 //注册成功$ y. Z5 `( I& B' P
(4) 验证Observe请求
* s y$ w3 a7 K实例注册成功后,NB-IoT模块将会上报Observe请求,其中上报请求中第二个参数为消息的ID,如下图所示。
% p4 E# H" x# ]; Q5 e0 H) ^每当模块上报一次Observe请求,请务必在5秒内执行如下命令进行验证,验证成功后,将会返回OK。如模块继续上报Observe请求,需继续执行命令验证,直至实例订阅成功,如下图所示。& ~- f7 G; S( s( X8 c# i( j2 k
Target#echo AT+MIPLOBSERVERSP=0,104148,1 > /dev/ttymxc5 //验证第一条请求" [) e0 c9 L- P1 }
Target#echo AT+MIPLOBSERVERSP=0,169685,1 > /dev/ttymxc5 //验证第二条请求
' L, [/ w& m- n; G% J; j同时,在云端设备管理界面,可观察到对应设备呈现自动订阅成功状态,至此,创建实例完成。# \9 s% U6 K% A+ J9 M% Z
+ g* Q+ |; x- m1 t# x. @4 i$ q+ k
; M: J$ N# M1 ]* Y- r& N$ M5 X |