找回密码
 注册
关于网站域名变更的通知
查看: 229|回复: 1
打印 上一主题 下一主题

基于NXP i.MX 6ULL核心板的物联网模块开发案例(2)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
 楼主| 发表于 2024-7-17 13:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Tronlong123 于 2024-7-21 17:37 编辑 $ T/ j3 n, w+ n% H
' [: L& H! ]/ u. z' c0 ^

目录
' `  D1 P5 O3 b! N2 NB-IoT模块测试
0 \1 S9 o9 m5 ~' q& D+ X2.1 获取IMEI和IMSI
  o: h' F# D# B: F. ~2.2 创建云端NB-IoT设备* r7 p& j" [5 Y- k4 s  N
2.3 创建通信套件实例
* ?1 r7 u; w2 x' ~2.3.1 生成配置参数
; E$ X' f& f) ~8 x2.3.2 创建实例
$ Y' p' E/ k, ], [前言本文主要介绍基于创龙科技TLIMX6U-EVM评估板的物联网模块开发案例,适用开发环境:
5 i; \& e4 @. V. QWindows开发环境:Windows 7 64bit、Windows 10 64bit9 M2 O! w. q) R. [) ]
虚拟机:VMware15.1.04 W& H/ D, }9 s7 g: j) B- n
Linux开发环境:Ubuntu18.04.4 64bit
7 l8 I9 ?+ ~3 W- ^1 `' BU-Boot:U-Boot-2020.04. x; g4 `- [, S' r- U
Kernel:Linux-5.4.70
% J0 o+ U( I1 {% y, P6 |. [1 qLinux SDK:5.4.70_2.3.0
) x0 G: N! V, i/ o8 O) M无特殊说明情况下,默认使用USB TO UART1作为调试串口,使用Linux系统启动卡(SD启动模式)启动系统,通过路由器与PC机进行网络连接。! y9 b/ a7 v7 d5 I' Y6 l
创龙科技TLIMX6U-EVM是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
1 \$ B$ G1 V2 b* i2 n* ^

评估板正面图
2 NB-IoT模块测试本案例使用的NB-IoT模块型号为:亿佰特EA01-D,详细参考资料请查看产品资料“1-开箱必读\产品规格书\拓展模块规格书\”目录下的《EA01-D_Usermanual_CN_v1.1》文件。请将NB-IoT物联网卡插至NB-IoT模块Micro SIM卡槽,然后将模块插至评估板NB-IoT接口,将2.4G天线连接至模块天线接口,如下图所示。
( I0 H( `8 x; \* z0 W备注:由于存在引脚复用关系,请勿同时将Zigbee、LoRa模块连接至评估板。% U0 J8 S8 z5 v3 |/ l
2.1 获取IMEI和IMSI
9 s" h! j. r' `, `0 {3 @, C进入评估板文件系统,执行如下命令指定串口后台运行,用于接收模块信息。
+ m1 v- |9 Z. tTarget#cat /dev/ttymxc5 &2 z5 b0 b! r1 U: o  R4 D5 M. [4 U
Target#stty -F /dev/ttymxc5 -echo: R; ~, N0 n! @- K4 M
执行如下命令,获取IMEI码和IMSI码。( U; e* {$ N- _2 r" X7 o
Target#echo "AT+CGSN=1" > /dev/ttymxc5 //获取IMEI码6 z7 V$ r2 a* B$ e6 X
Target#echo "AT+CIMI" > /dev/ttymxc5 //获取IMSI码
1 d! G0 {# {! n/ J
本次获取的IMEI码为"864624050017021",获取的IMSI码为"460082267401907"。0 R$ m6 P+ C) G5 U* v/ c( j
2.2 创建云端NB-IoT设备$ t1 J5 P/ p3 G" d7 T9 |$ O6 z
本次测试以中国移动NB-IoT物联网解决方案OneNET为例进行演示。请登录官方网站:open.iot.10086.cn,通过手机号进行注册账号并登录。" V$ s4 @# x: K( a* D  ?
账号登录成功,进入如下界面,点击右上角“控制台”。
" |( n/ ]9 ~, K
进入如下界面,点击左上角“切换至旧版”。8 O0 `# m# G, N
进入如下界面,进入“NB-IoT物联网套件”。
! i' J4 K% Y- L9 Y, I+ x+ v7 S
进入如下界面,点击“添加产品”。6 u( C# `6 D+ u4 ~0 F- p' o" X
进入如下界面,根据实际情况依次输入产品信息:产品名称、产品行业、产品类别,以及技术参数:联网方式选择"NB-IoT"、设备接入协议选择"LWM2M"、操作系统选择"Linux"、网络运营商选择“移动”。
. u8 D/ @* c0 P9 {+ ^$ D
产品添加完成后,弹出如下窗口,点击“立即添加设备”。
1 ?2 m4 c" T' o+ K0 Q
进入如下界面,点击“添加设备”。
! l8 r% E9 \' ~% v, L) l
进入如下界面,依次输入设备类型、设备名称、IMEI码和IMSI码,并开启自动订阅功能。
0 `1 ]# B2 M- G2 ^
设备添加成功后,将会弹出如下窗口,请将设备ID:969146269和PSK码:8NKXxti2IS5WaDjW记录保存,用于后续测试,然后点击“知道了”按钮关闭窗口。7 ~3 h9 H( t- j" L9 i# x9 Z' U& D, h
进入如下界面,可观察到目前设备处于离线状态,点击“详细”。
' V- \2 Z( e9 B& ^+ {7 [: w
进入如下界面,点击“编辑”,在弹出的窗口输入自定义Auth_Code:Tronlong,然后点击确认关闭窗口。至此,云端NB-IoT设备创建完成。9 B( l1 F3 r4 f( _. T5 G3 r
2.3 创建通信套件实例
6 a$ U3 M/ g* |7 _本章节主要演示NB-IoT模块的通信实例,详细参考资料请查看产品资料“6-开发参考资料\其他参考文档\”目录下的《EA01-S+3GPP和运营商云平台标准指令手册》文件。
( s  H3 P; P! I! e( K% |1 m! |2.3.1 生成配置参数
) R, i. Q7 T* n! j3 B! L+ O3 p: a将产品资料“4-软件资料\Tools\Windows\”目录下的cfg_tool.zip和Sublime-Text-Build-3211_x64.zip压缩包拷贝至Windows非中文目录下并解压。, M* R# K( t" W! }9 \
进入Sublime-Text-Build-3211_x64目录,双击sublime_text.exe程序进行安装。
% h& [4 v- S( i1 S  ]+ B
进入cfg_tool目录,使用文本工具打开test.xml文件,
, e# _. O2 r/ f- ~# `- I# {+ D
根据前面步骤获取的信息,修改AuthCode为Tronlong,修改PSK为8NKXxti2IS5WaDjW,如下图所示。4 T2 V" X( M0 S: ?
打开Windows命令行CMD,输入如下命令进入ctg_tool目录,生成配置文件。
2 A: `- k  {- w) p2 r* b& Y# eCMD#cd /d E:\tools\cfg_tool\6 D, I  X: X" H. `3 X3 o
CMD#cis_cgtool.exe test.xml out.bin
$ Y% u8 j5 F5 Y
执行完成后,将会在ctg_tool目录下生成out.bin文件。3 @5 @! {: ]3 X. m( q" S0 U
打开Sublime Text软件,将生成的out.bin文件拖入该软件打开,可看到设备配置参数以16进制显示。同时鼠标右击点击out.bin文件可查看该文件大小为93Byte。6 W1 o8 Z3 ]0 i1 K) w8 d. K
2.3.2 创建实例  l" [9 k* |7 E8 o+ @. q
(1) 创建OneNET通信套件实例" S1 y# C( a# |0 c$ L
测试命令为:echo AT+MIPLCREATE=<total size>,<config>,<index>,<currentsize>,<flag> > /dev/ttymxc5. j2 B/ J7 T: G$ p: V
参数解析:
: ^& \" U* m: r2 n<total size>:配置文件的总长度。即out.bin文件大小,本次测试文件为93Byte。9 ^9 v+ r9 K# [
<config>:配置文件内容,16进制数的形式。/ Q( |+ ^& a6 v- d6 a+ [
<index>:配置文件的序号。考虑到AT指令长度有限,一个完整的配置文件未必能在一条AT指令中发送完成,可将内容切分成多段。比如分为N段,则从前到后按照降序依次分配序号为N-1~0,按照从大到小序号的顺序每段调用一次AT指令。如当index为0时,意味着该条指令为最后一条配置消息。
. B8 D, |, J- @<currentsize>:当前命令所包含的配置文件长度。本次测试为93Byte。
: t0 s2 W+ C: [% r2 U2 D8 y<flag>:消息标识,1:第一条消息,2:中间消息,0:最后一条消息。
8 \% }) _( n, |. H进入评估板文件系统,在可执行程序所在目录下执行如下命令,返回OK表示创建成功。
# y4 N. l4 }! @6 ITarget# echo "AT+MIPLCREATE=93,13005df10003f2004f040011800005434d494f540000000000123138332e3233302e34302e33393a35363833002741757468436f64653a54726f6e6c6f6e673b50534b3a384e4b58787469324953355761446a573bf30008e400c80000,0,93,0" > /dev/ttymxc5* C! ^# X% Y0 J* M
(2) 创建LwM2M协议实例; S1 O2 X7 [5 Y) L' P4 p
测试命令为:echo AT+MIPLADDOBJ=<ref>,<objectid>,<instancecount>,<instancebitmap>,<attributecount>,<actioncount> > /dev/ttymxc5
, U2 x4 V* F: t+ z" Q1 z参数解析:" f1 W2 U- Y/ x+ U
<ref>:基础通信套件的一个实例标识,类型为一个无符号整数。
/ w3 z5 E9 f) @6 C/ i3 K<objectid>:对象ID。
  Q& l6 r1 K# L1 A! f<instancecount>:实例个数。
& k: F' E2 b8 U! t6 S1 t<instancebitmap>:实例位图,字符串格式,每一个字符表示为一个实例,其中1表示可用,0表示不可用。例如添加的Object有5个实例,其中1、3可用,则实例位图为00101。, d; g7 G- H/ b1 F0 P3 v
<attributecount>:属性个数。
1 v2 r9 L. b( y, i<actioncount>:操作个数。* ?1 U+ g' m- V7 U: ~8 ^
在可执行程序所在目录下执行如下命令。; N/ I' i% S; F8 u; \
Target# echo AT+MIPLADDOBJ=0,3311,2,11,4,3 > /dev/ttymxc5& t( Y* d% v2 O+ A: w
(3) 发送注册请求
$ ~# a4 K( C# }: [5 ^$ }测试命令为:ehco AT+MIPLOPEN=<ref>,<lifetime>,<timeout> > /dev/ttymxc5/ t- j$ A; D  |" S4 D  X0 x
<ref>:基础通信套件的一个实例标识,类型为一个无符号整数。$ Z& U% G8 B: _2 o5 @$ l$ q9 C
<lifetime>:生命周期,单位为秒。
1 D3 B# _& _  W# Y. V6 {<timeout>:注册的超时时长,单位为秒。
$ Z1 @, B* w0 Y2 `0 C- O在可执行程序所在目录下执行如下命令。当通信无误时,将会返回OK,模块接下来开始上报状态事件,如下图所示。
9 g9 ~1 \; w/ f2 M  C7 X8 vTarget#echo AT+MIPLOPEN=0,3000,30 > /dev/ttymxc58 U8 F# C6 D0 g. k" O: D2 Y6 J  v
状态事件信息说明如下。) i! P, ^" l2 O, J% v& g5 j( m# A
+MIPLEVENT:0,1 //bootstrap启动
: G+ O0 k, a0 C8 \- `* q- r+MIPLEVENT:0,2 //bootstrap启动成功2 l9 z7 H, w! @4 W; x1 o' Y, L
+MIPLEVENT:0,4 //连接成功* X1 y# }5 r4 E- p/ e: {* e( V
+MIPLEVENT:0,6 //注册成功
3 g! _, h& X$ [' U- d2 I(4) 验证Observe请求+ y' `# Z  ^& M2 G) s5 n$ [" ]
实例注册成功后,NB-IoT模块将会上报Observe请求,其中上报请求中第二个参数为消息的ID,如下图所示。
" B$ y; g4 g- T  c9 v6 t: |" _
每当模块上报一次Observe请求,请务必在5秒内执行如下命令进行验证,验证成功后,将会返回OK。如模块继续上报Observe请求,需继续执行命令验证,直至实例订阅成功,如下图所示。# _/ K  u1 S: d% `8 @0 m  E
Target#echo AT+MIPLOBSERVERSP=0,104148,1 > /dev/ttymxc5 //验证第一条请求7 m) A6 k$ b* I3 R( O
Target#echo AT+MIPLOBSERVERSP=0,169685,1 > /dev/ttymxc5 //验证第二条请求
; U7 M3 g0 @* f0 h* A+ S4 V
同时,在云端设备管理界面,可观察到对应设备呈现自动订阅成功状态,至此,创建实例完成。
/ e5 }5 d1 p/ n9 @9 N$ T6 C

" N! ~1 C' ~6 y$ V4 t! j, l* H  N7 j9 U; [* {; }

该用户从未签到

2#
发表于 2024-7-18 10:37 | 只看该作者
整个草错流程很详细
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 14:42 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表