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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Tronlong123 于 2024-7-21 17:37 编辑 ; n; e6 f+ C- ~1 i

1 P8 Q, l  g7 n; Y; h3 W

目录
( t8 S/ n9 g4 y! ?! ^' K2 NB-IoT模块测试
" H5 j9 [, u" f2.1 获取IMEI和IMSI
' M# T& p# s' c7 _2.2 创建云端NB-IoT设备
( E0 m1 l+ x6 |) x) I' S) K2.3 创建通信套件实例7 E9 b7 v* [5 U
2.3.1 生成配置参数
5 u% f5 r- Y2 p8 h9 {- R, M2.3.2 创建实例
0 z+ ?$ h# i! u- [3 {前言本文主要介绍基于创龙科技TLIMX6U-EVM评估板的物联网模块开发案例,适用开发环境:
+ _8 S. U  h. t$ m! F6 ?8 RWindows开发环境:Windows 7 64bit、Windows 10 64bit
) \% c- t$ G) e$ G( R8 S9 l虚拟机:VMware15.1.0+ x1 P3 W2 F4 r$ |: h
Linux开发环境:Ubuntu18.04.4 64bit; \$ w  w* D2 X1 {
U-Boot:U-Boot-2020.046 @4 |2 G+ v2 k! J! b2 U8 C
Kernel:Linux-5.4.70+ x+ p1 Z2 N! b
Linux SDK:5.4.70_2.3.0: s3 z7 s& y$ a' N
无特殊说明情况下,默认使用USB TO UART1作为调试串口,使用Linux系统启动卡(SD启动模式)启动系统,通过路由器与PC机进行网络连接。4 R1 N$ g+ f6 p; j# B, E
创龙科技TLIMX6U-EVM是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。# K+ f+ I- y  p# {: e+ ~( u& l

评估板正面图
2 NB-IoT模块测试本案例使用的NB-IoT模块型号为:亿佰特EA01-D,详细参考资料请查看产品资料“1-开箱必读\产品规格书\拓展模块规格书\”目录下的《EA01-D_Usermanual_CN_v1.1》文件。请将NB-IoT物联网卡插至NB-IoT模块Micro SIM卡槽,然后将模块插至评估板NB-IoT接口,将2.4G天线连接至模块天线接口,如下图所示。2 v' q. i6 M7 n
备注:由于存在引脚复用关系,请勿同时将Zigbee、LoRa模块连接至评估板。
" w) n$ S  U, {4 p( M
2.1 获取IMEI和IMSI
' R# O! [/ `2 [  Y进入评估板文件系统,执行如下命令指定串口后台运行,用于接收模块信息。
. t% E& k4 M# U  z3 t$ ZTarget#cat /dev/ttymxc5 &5 p- G/ v  S; E  Z2 I! P
Target#stty -F /dev/ttymxc5 -echo
7 G% ?4 l7 e1 V- \7 ^
执行如下命令,获取IMEI码和IMSI码。& @/ ~6 C, \. K
Target#echo "AT+CGSN=1" > /dev/ttymxc5 //获取IMEI码% t* Q$ {/ Z$ r8 M+ |5 C9 b! e  ~( h
Target#echo "AT+CIMI" > /dev/ttymxc5 //获取IMSI码* R& ^5 @% N. G/ Y* _
本次获取的IMEI码为"864624050017021",获取的IMSI码为"460082267401907"。
9 Y$ g$ i# }8 z6 ^4 Y" T2.2 创建云端NB-IoT设备3 i  V1 C3 V. n4 f0 J) m7 x+ M: p
本次测试以中国移动NB-IoT物联网解决方案OneNET为例进行演示。请登录官方网站:open.iot.10086.cn,通过手机号进行注册账号并登录。% p* ^. p' [1 o8 A( J
账号登录成功,进入如下界面,点击右上角“控制台”。
5 l6 R" d) Y. ?' j) ^
进入如下界面,点击左上角“切换至旧版”。
* g' @( J: C+ J1 A% K3 P
进入如下界面,进入“NB-IoT物联网套件”。
3 s2 Z. _* T9 Y5 C
进入如下界面,点击“添加产品”。
+ }0 a5 p( e1 ~. h/ |
进入如下界面,根据实际情况依次输入产品信息:产品名称、产品行业、产品类别,以及技术参数:联网方式选择"NB-IoT"、设备接入协议选择"LWM2M"、操作系统选择"Linux"、网络运营商选择“移动”。. {: A4 M6 s1 W- \* h, i
产品添加完成后,弹出如下窗口,点击“立即添加设备”。% Z7 ~- Y9 d% {8 n8 u
进入如下界面,点击“添加设备”。
, T& |! O( X3 e) I* S5 o* ~+ F# X
进入如下界面,依次输入设备类型、设备名称、IMEI码和IMSI码,并开启自动订阅功能。2 X9 [( }6 l" C1 ]: [  S0 ]
设备添加成功后,将会弹出如下窗口,请将设备ID:969146269和PSK码:8NKXxti2IS5WaDjW记录保存,用于后续测试,然后点击“知道了”按钮关闭窗口。
6 E2 F% y$ ^# r
进入如下界面,可观察到目前设备处于离线状态,点击“详细”。6 G8 O; {7 F+ ]4 W
进入如下界面,点击“编辑”,在弹出的窗口输入自定义Auth_Code:Tronlong,然后点击确认关闭窗口。至此,云端NB-IoT设备创建完成。
5 }7 Z% o4 ?2 B: b1 i
2.3 创建通信套件实例/ e% Z$ c6 _+ k9 ]
本章节主要演示NB-IoT模块的通信实例,详细参考资料请查看产品资料“6-开发参考资料\其他参考文档\”目录下的《EA01-S+3GPP和运营商云平台标准指令手册》文件。
- v, A- h" H8 H  K% M" C& A2.3.1 生成配置参数
2 u4 e% I: o' d2 x将产品资料“4-软件资料\Tools\Windows\”目录下的cfg_tool.zip和Sublime-Text-Build-3211_x64.zip压缩包拷贝至Windows非中文目录下并解压。. k' R% c* f9 x. s
进入Sublime-Text-Build-3211_x64目录,双击sublime_text.exe程序进行安装。* Q% m" z3 s0 h  @/ c1 W
进入cfg_tool目录,使用文本工具打开test.xml文件,2 h& `) Q! [0 ~# H& N
根据前面步骤获取的信息,修改AuthCode为Tronlong,修改PSK为8NKXxti2IS5WaDjW,如下图所示。; Q4 Y& |5 ^0 ^4 @1 B
打开Windows命令行CMD,输入如下命令进入ctg_tool目录,生成配置文件。1 T/ A; n1 H9 Z" O' h/ A
CMD#cd /d E:\tools\cfg_tool\
* Z* g) G$ L0 j9 P" W7 q$ z2 z# CCMD#cis_cgtool.exe test.xml out.bin' @. r2 x# t6 h$ M0 H
执行完成后,将会在ctg_tool目录下生成out.bin文件。
/ f0 i- O3 b" a( O; d# Y
打开Sublime Text软件,将生成的out.bin文件拖入该软件打开,可看到设备配置参数以16进制显示。同时鼠标右击点击out.bin文件可查看该文件大小为93Byte。
0 K* r6 G' V+ ~
2.3.2 创建实例
4 _* y' `+ l6 J! r6 G* g0 w(1) 创建OneNET通信套件实例* t9 b) r% x# _$ @4 ^! H
测试命令为:echo AT+MIPLCREATE=<total size>,<config>,<index>,<currentsize>,<flag> > /dev/ttymxc5
! f1 F% i/ I% s5 Z$ T参数解析:& R* r9 g7 W1 H: {
<total size>:配置文件的总长度。即out.bin文件大小,本次测试文件为93Byte。' S/ j7 @3 [" Z: s& `
<config>:配置文件内容,16进制数的形式。1 C( F  r- k- t7 J& L
<index>:配置文件的序号。考虑到AT指令长度有限,一个完整的配置文件未必能在一条AT指令中发送完成,可将内容切分成多段。比如分为N段,则从前到后按照降序依次分配序号为N-1~0,按照从大到小序号的顺序每段调用一次AT指令。如当index为0时,意味着该条指令为最后一条配置消息。
6 B5 @1 t7 H: o+ V# {: u; M<currentsize>:当前命令所包含的配置文件长度。本次测试为93Byte。
+ i% `2 S$ @: l$ P6 ?+ |<flag>:消息标识,1:第一条消息,2:中间消息,0:最后一条消息。/ E2 ^/ R6 T6 p( k, W% w
进入评估板文件系统,在可执行程序所在目录下执行如下命令,返回OK表示创建成功。9 `3 E1 }) O( I: Y+ n; e
Target# echo "AT+MIPLCREATE=93,13005df10003f2004f040011800005434d494f540000000000123138332e3233302e34302e33393a35363833002741757468436f64653a54726f6e6c6f6e673b50534b3a384e4b58787469324953355761446a573bf30008e400c80000,0,93,0" > /dev/ttymxc5
& ~6 v( ]4 L) ?! K6 f5 G$ s
(2) 创建LwM2M协议实例8 c) m- h1 Y2 y) k& e4 i2 Q
测试命令为:echo AT+MIPLADDOBJ=<ref>,<objectid>,<instancecount>,<instancebitmap>,<attributecount>,<actioncount> > /dev/ttymxc5
+ b: R+ K" s6 b8 }8 n8 z( k参数解析:
# W, }( }! A% D* e<ref>:基础通信套件的一个实例标识,类型为一个无符号整数。' ]+ o9 B1 _1 y4 R& S
<objectid>:对象ID。
/ R$ |$ E8 J  @0 {1 y8 n* g: ?1 \<instancecount>:实例个数。
! V  t# @3 O5 e, J0 ]6 R$ k0 K<instancebitmap>:实例位图,字符串格式,每一个字符表示为一个实例,其中1表示可用,0表示不可用。例如添加的Object有5个实例,其中1、3可用,则实例位图为00101。9 I5 }2 c/ `. }: R9 ?
<attributecount>:属性个数。# ^, b* H0 I% i+ f8 d/ |$ Y
<actioncount>:操作个数。. i3 j7 H) }# Y7 C7 _7 ]
在可执行程序所在目录下执行如下命令。
" g6 V$ Z5 D0 G- z3 l1 HTarget# echo AT+MIPLADDOBJ=0,3311,2,11,4,3 > /dev/ttymxc57 Y5 k) U  \8 T# H: B8 O
(3) 发送注册请求
' L" R! [1 z4 n4 Y+ H测试命令为:ehco AT+MIPLOPEN=<ref>,<lifetime>,<timeout> > /dev/ttymxc5; Y! ~7 m) r2 R8 |9 A3 A
<ref>:基础通信套件的一个实例标识,类型为一个无符号整数。
) |3 g9 i( O8 O8 @- `; T3 L<lifetime>:生命周期,单位为秒。. `) M+ O4 o" E- R* X
<timeout>:注册的超时时长,单位为秒。1 J& q5 H: r, x7 r. A
在可执行程序所在目录下执行如下命令。当通信无误时,将会返回OK,模块接下来开始上报状态事件,如下图所示。( ?( w8 e" ?& c$ @( Z
Target#echo AT+MIPLOPEN=0,3000,30 > /dev/ttymxc5
2 A( A, m- b! e: k( X- N# K4 M8 c
状态事件信息说明如下。
& E) R: O2 b2 @: W/ C" y" q0 q+MIPLEVENT:0,1 //bootstrap启动2 B0 k' x  P6 h' n0 t
+MIPLEVENT:0,2 //bootstrap启动成功
) }  X6 {% V& a! [5 T5 v+MIPLEVENT:0,4 //连接成功$ Z+ h0 `1 i2 u! Z
+MIPLEVENT:0,6 //注册成功/ L" d: j; `; X
(4) 验证Observe请求. t- m; P* u3 @" Z3 T2 b
实例注册成功后,NB-IoT模块将会上报Observe请求,其中上报请求中第二个参数为消息的ID,如下图所示。5 s1 c: R8 B, W
每当模块上报一次Observe请求,请务必在5秒内执行如下命令进行验证,验证成功后,将会返回OK。如模块继续上报Observe请求,需继续执行命令验证,直至实例订阅成功,如下图所示。1 V3 r, Z! ?. Q1 f) F& {1 l
Target#echo AT+MIPLOBSERVERSP=0,104148,1 > /dev/ttymxc5 //验证第一条请求# z- J& E, K# ^! n& V, M5 o; R8 }
Target#echo AT+MIPLOBSERVERSP=0,169685,1 > /dev/ttymxc5 //验证第二条请求
% F  f5 N  G2 N# U) M
同时,在云端设备管理界面,可观察到对应设备呈现自动订阅成功状态,至此,创建实例完成。
: P1 L7 j6 J5 g' L/ {* M8 ]
7 Y  n; |# [: Q! Q3 {
& ?, v9 R/ N: ~

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 13:33 , Processed in 0.156250 second(s), 22 queries , Gzip On.

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

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

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