罗拉边缘跟踪参考设计,用户指南文档(v2)
固件¶
两个软件交付与罗拉的边缘™跟踪参考设计:
罗拉基本知识™调制解调器固件+应用程序代码运行在罗拉边缘跟踪参考设计
罗拉边缘配置(移动应用程序)
本节描述罗拉边缘跟踪参考设计固件。
固件源代码可以在罗拉GitHub库:
https://github.com/Lora-net/SWSD004
存储库包含了SDK源代码以及凯尔®项目和一个GCC makefile。有关更多细节,请参见软件开发工具包。
SWSD004 SDK包含以下应用程序,您可以使用它来探索罗拉边缘跟踪参考设计的功能:
跟踪应用程序:详细的在本节的其余部分。
简单的wi - fi示例:这个例子说明了wi - fi扫描和发送过程:
罗拉的配置基础现代图书馆
执行使用wi - fi无线扫描和发送功能定位中间件
地理定位GNSS示例应用程序:这个例子说明了GNSS扫描和发送过程:
罗拉的配置基础现代图书馆
执行GNSS扫描和发送功能使用GNSS地理定位中间件
完整的年鉴更新示例:本例中执行一个完整的年鉴更新使用LR1110 API。
跟踪应用程序功能¶
跟踪应用程序是高度可配置的。
以下功能嵌入到应用程序:
LoRaWAN连接EU868和US915地区
wi - fi被动扫描
GNSS扫描
运动检测
BLE连接:
固件更新无线(FUOTA)
罗拉边缘跟踪参考设计跟踪应用程序
LR1110固件
年鉴更新
应用程序配置
内部日志阅读(如果激活)
Semtech罗拉云调制解调器和地理定位服务:
微分年鉴更新
GNSS位置帮助更新
引导装载程序模式和名义操作¶
跟踪应用程序首次启动时,它开始引导装载程序模式。如果一个应用程序安装,需要以下操作:
根据设定的配置罗拉边缘配置应用程序,跟踪器可以连接到一个LoRaWAN-compatible网络服务器使用Semtech罗拉云连接服务器的主要推导算法的智能手机应用程序(如果选择)。
当检测到运动,追踪:
发送一个wi - fi扫描每X秒或分钟/ NAV消息,由用户定义。wi - fi / GNSS扫描策略定义如下:
执行GNSS扫描移动模式。
如果扫描检测到足够的卫星:
发送结果LoRaWAN端口194。
如果GNSS扫描结果不够好或无效,进行无线扫描。
如果无线扫描检测到足够的访问点,发送结果LoRaWAN端口196。
如果扫描结果不够/有效:
发送传感器的值在LoRaWAN端口193。
开始一个被动的wi - fi扫描/ NAV消息发送一次,一旦运动不再是发现。
执行和发送GNSS扫描静态模式在静态模式下(每X分钟/小时,由用户定义)。
当霍尔效应传感器检测到的存在一个磁体,追踪重置本身和进入BLE模式。
祝福方式¶
沟通在BLE模式包括:
配置跟踪器的参数
更新年鉴
更新LR1110固件
固件更新跟踪应用程序
阅读内部日志
跟踪扫描策略¶
你可以改变通过改变扫描策略扫描的优先级参数。两种扫描策略可供选择:
GNSS扫描优先:追踪执行GNSS扫描。如果GNSS扫描结果不够好,无线扫描不执行,只发送GNSS的结果。
没有扫描优先:GNSS和wi - fi扫描执行,即使GNSS扫描就足够了。结果被发送。
“飞行模式”¶
跟踪器是装在飞机模式。从飞机模式切换到默认的操作模式,配置相应的追踪装置,使用罗拉边缘配置通过BLE连接应用程序。
领导的指标¶
有一个双色LED追踪董事会:
的黄色LED被称为RX领导和领导的红色是TX领导。
领导的RX眨眼当跟踪接收广播消息(下行)。
领导的TX眨眼当追踪传输广播消息(上行)。
应用程序使用LED显示以下事件:
应用程序启动:TX领导和RX LED闪烁两次与一段100 ms (50 ms领导/ 50 ms领导)。
BLE无线电连接模式的广告:TX LED闪烁而adverstising模式的跟踪每200毫秒(100 ms领导/ 100 ms)领导。
BLE无线电活动:TX LED固体在跟踪连接模式。
加入过程:领导的TX和RX LED闪烁在3000毫秒内25 ms (25 ms领导/ 2975 ms)领导跟踪时加入。
霍尔效应传感器中断:领导的RX是打开。RX领导承认中断时是关闭的。
地理位置和传感器帧发送:TX(100毫秒)领导LED闪烁一次。
下行帧收到:领导的RX眨眼(100毫秒)。
电池耗尽:TX领导和RX LED闪烁5次与一段500 ms(领导250 ms / 250 ms)领导。
状态机¶
![_images / TrackerAppFlow.png](http://www.csimin.com/lora-developers/themes/user/rst_to_ee/html/TrackerRefV5/_images/TrackerAppFlow.png)
图35:跟踪应用程序流
软件开发工具包¶
跟踪器的软件开发工具包(SDK)包含几层,如图36所示。
![_images / SDKLayers.png](http://www.csimin.com/lora-developers/themes/user/rst_to_ee/html/TrackerRefV5/_images/SDKLayers.png)
图36:罗拉边缘跟踪参考设计固件SDK层
完整的固件是由:
一个管理应用程序的引导装载程序固件更新无线
一个应用程序
地理位置属于软件的中间件层,简化了集成GNSS和wi - fi扫描和发送操作在用户应用程序。
固件(引导装载程序+应用)编程到M4 STM32WB的核心。
Semtech使用STM32WBXX_HAL,由意法半导体提供。Semtech提供了一个抽象,叫做SMTC_HAL,目标是成为一个哈尔共同Semtech固件。
获取更多关于固件和中间件的信息请参考跟踪应用程序描述。
负载格式规范¶
每个类型的有效载荷使用专用端口负载。
类型 |
描述 |
港口 |
---|---|---|
导航信息 |
导航信息扫描 |
194年 |
数据无线扫描 |
数据无线扫描 |
196年 |
来自传感器的数据 |
从传感器收集的数据 |
193年 |
跟踪日期 |
跟踪当前日期 |
151年 |
跟踪器设置 |
完成设置的追踪 |
151年 |
跟踪日期和跟踪设置载荷应在“标签”或“类型”/长度/值(电磁阀)格式。常用的数据通信协议,电磁阀是一种编码方案在通信协议用于信息元素。
的标签和长度是固定的大小(一个字节),和的大小价值字段是可变的。使用这些字段如下:
标签:二进制代码,往往简单的字母数字显示的字段代表的这部分信息
长度:value字段的大小(通常以字节为单位)
价值:其中包含的字节大小可变的系列数据消息的一部分
标签和长度是一个固定大小的一个字节。这意味着可能有256操作码长度为256字节。这是足以涵盖所有可能的命令。
标签 |
长度 |
价值 |
---|---|---|
0 |
1 |
2…长度的价值 |
命令 |
标签 |
Len |
价值 |
评论 |
---|---|---|---|---|
导航信息 |
NA |
变量 |
导航 |
|
数据无线扫描 |
NA |
变量 |
x nb_detected_ap MAC(6字节) |
值> 1个字节大端字节序MAC在大端字节 |
来自传感器的数据 |
NA |
6个字节 |
[温度(2字节)][追踪费用(2字节)][电压(2字节)] |
值> 1个字节大端字节序 |
跟踪日期 |
0 x46 |
4 |
跟踪当前日期 |
值> 1个字节大端字节序 |
跟踪器设置 |
0 x4c |
变量 |
电磁阀内部与跟踪设置 |
值> 1个字节大端字节序 |
可配置的设备参数¶
本节描述跟踪参数可通过祝福和LoRaWAN。
沟通是电磁阀的格式,用于负载。罗拉边缘的支持可配置参数配置应用程序和LoRaWAN:
命令 |
标签 |
Len |
祝福 |
LoRaWAN |
价值 |
评论 |
---|---|---|---|---|---|---|
|
0 x01 |
0 |
X |
X |
返回len 3(大/小/子副) |
|
|
0 x02 |
8 |
X |
X |
MSB第一 |
|
|
0 x03 |
0 |
X |
X |
返回len 8 |
|
|
0 x04 |
8 |
X |
X |
MSB第一 |
|
|
0 x05 |
0 |
X |
X |
返回len 8 |
|
|
0 x06 |
16 |
X |
X |
MSB第一 |
|
|
0 x07 |
0 |
X |
X |
返回len 16 |
|
|
0 x0a |
1 |
X |
X |
0 = GPS;1 =北斗;2 = GPS和北斗 |
|
|
0 x0b |
0 |
X |
X |
len返回1 |
|
|
0 x0c |
8 |
X |
X |
返回len 8 4字节(0 - 3)纬度;4个字节为经度(4 - 7) |
|
|
0 x0d |
0 |
X |
X |
||
|
0 x24 |
1 |
X |
X |
返回len 1 0 =禁用1 =启用 |
|
|
0 25 |
0 |
X |
X |
||
|
0 x26 |
2 |
X |
X |
返回len 2 10到1800 |
|
|
0 x27 |
0 |
X |
X |
||
|
0 x28 |
2 |
X |
X |
返回len 2 10到1440 |
|
|
0 x29 |
0 |
X |
X |
||
|
0 x2a |
0 |
X |
X |
返回len 0 |
|
|
0 x2b |
0 |
X |
X |
返回len 0 |
|
|
0 x2c |
12 |
X |
返回len 12块ID(2字节)年鉴片段(10个字节) |
||
|
0 x2d |
4 |
X |
X |
返回len 4日期排在第二 |
|
|
0 x31 |
146年 |
X |
现代图像块ID(2字节)片段(144字节) |
||
|
0 x32 |
0 |
X |
X |
返回len 4 |
|
|
0 x33 |
0 |
X |
X |
返回len 2 |
|
|
0 x34 |
0 |
X |
X |
返回len 3(大/小/子副) |
|
|
0 x36 |
0 |
X |
X |
1 = EU868 / 3 = US915 |
|
|
0 x37 |
1 |
X |
0 =禁用/ 1 =启用 |
||
|
0 x38 |
0 |
X |
X |
0 =禁用/ 1 =启用 |
|
|
0 x39 |
0 |
X |
X |
返回len 4 |
MSB第一 |
|
0 x3a |
1 |
X |
X |
0 =禁用/ 1 =启用 |
|
|
0 x3b |
0 |
X |
X |
0 =禁用/ 1 =启用 |
|
|
0 x3c |
1 |
X |
X |
0 = GNSS优先;1 = wi - fi 2 =不优先 |
|
|
0 x3d |
0 |
X |
X |
0 = GNSS优先;1 = wi - fi 2 =不优先 |
|
|
0 x40 |
0 |
X |
X |
返回电压在mV 2字节 |
|
|
0 x41 |
1 |
X |
X |
0 =禁用/ 1 =启用 |
|
|
0× |
0 |
X |
X |
||
|
0 x43 |
146年 |
X |
见5.2.8章 |
||
|
0 x44 |
0 |
X |
X |
返回len 8 |
MSB第一 |
|
0 x49 |
0 |
X |
X |
%的剩余空间,返回len 1字节 |
|
|
0 x4a |
0 |
X |
X |
mAh的价值,回报len 4字节 |
MSB第一 |
|
0 x4b |
0 |
X |
X |
||
|
0 x4c |
0 |
X |
X |
||
|
0 x54 |
0 |
X |
X |
||
|
0 x55 |
0 |
X |
X |
||
|
0 xff |
0 |
X |
X |
这种操作码的跟踪器将回答当接收到的命令不支持 |
得到跟踪日期/ LoRaWAN¶
命令 |
标签 |
Len |
---|---|---|
跟踪日期 |
0 x46 |
0 |
下行负载(十六进制)是:4600
在LoRaWAN改变设置¶
命令 |
标签 |
Len |
价值 |
评论 |
---|---|---|---|---|
0 |
1 |
2 n |
||
跟踪器设置 |
0 x4c |
变量 |
[nb_TLV][电磁阀设置) |
值> 1个字节大端字节序 |
例子:
改变scan_interval 15秒:
[标签:4 c] [len: 05年][[nb_params: 1][标签:26][len: 02][值:000 f]]
下行负载(十六进制)如下:4 c05012602000f
得到所有设置和HW版本:
[标签:4 c] [len: 05年][[nb_params: 2][标签:4 c] [len: 00][标签:01][len: 00]]
下行负载(十六进制)如下:4 c05024c000100
解析内部日志¶
本节描述如何解析每个扫描读取单片机的内部闪存。得到更多关于如何解析内部日志的信息,请参考tracker_restore_internal_log。
这是闪存中的每个记录扫描结构:
0:1 |
2 |
3:4 |
17:17 + n |
22 + 18 + n: n |
---|---|---|---|---|
Scan_len |
nb_elem |
Scan_number |
电磁阀(GNSS和或wi - fi) |
Next_scan_address |
第一个扫描总是位于用户的开始flash_addr_start地址。这个地址是在flash初始化计算,如果一个内部日志中不存在。每个扫描结构包含下一个扫描的flash地址结构。
唯一的变量元素是电磁阀的部分,它可以包含GNSS和/或wi - fi扫描结果。也有可能为这个元素是空的。
0 |
1 |
2个5 |
6 |
7 |
8 |
9 |
10:2 +兰 |
---|---|---|---|---|---|---|---|
标签 |
Len |
Scan_timestamp (sec) |
令牌 |
多颗卫星 |
最后一次扫描 |
配置文件 |
导航信息 |
GNSS_SCAN有两个可能的标签:
0 x01: TAG_GNSS_PCB_ANTENNA
0 x02: TAG_GNSS_PATCH_ANTENNA
0 |
1 |
2个5 |
6:6 + 6 |
6 + 6 + 1 |
… |
m: n + 7 * |
6 +兰 |
||
---|---|---|---|---|---|---|---|---|---|
标签 |
Len |
Scan_timestamp (sec) |
MAC_Address |
RSSI |
… |
MAC_Address |
RSSI |
而MAC_Address总是6个字节,RSSI总是一个字节。
的Wi-Fi_SCAN有一个可能的标签:
0 x03: TAG_WIFI_ANTENNA
如何Flash单片机的核心STM32WB55致力于祝福¶
堆栈跟踪的祝福M0 +核心程序。但是,如果由于某种原因堆栈需要重新编程或更新,遵循以下的步骤:
复制粘贴的。斌文件(s)到STM32CubeProgrammer本文件夹:
。斌从
https://github.com/Lora-net/SWSD004/apps/demonstrations/tracker_application/middleware/ble/stack_binary
来C: \程序文件\意法半导体\ STM32Cube \ STM32CubeProgrammer \ bin
文件夹中。开关STM32WB55引导装载程序模式。
保持BOOT0销高跟踪时重置。
STM32WB55使用线连接到一台电脑/笔记本电脑。
打开一个命令提示符窗口。
导航到STM32CubeProgrammer bin文件夹:
cdC: \程序文件\意法半导体\ STM32Cube \ STM32CubeProgrammer \ bin
删除现有的固件:
STM32_Programmer_CLI.exe- c端口= usb1-fwdelete
阅读和付家升级版:
STM32_Programmer_CLI.exe- c端口= usb1-r320 x200300301
![_images / CheckFUSVersion.png](http://www.csimin.com/lora-developers/themes/user/rst_to_ee/html/TrackerRefV5/_images/CheckFUSVersion.png)
图37:检查付版本
安装堆栈固件使用以下三个命令,根据付家的版本。
如果付版本是:
0 x20030030: 00050300: FUSv0.5.3,执行命令1、2和3(见下文)。
0 x20030030: 01000100或01000200:FUSv1.0.x2和3,执行命令。
0 x20030030: 01010000: FUSv1.1.03、执行命令。
堆栈固件命令:
STM32_Programmer_CLI.exe- c端口= usb1-fwupgradestm32wb5x_FUS_fw_for_fus_0_5_3.bin0 x080ec000firstinstall = 0
STM32_Programmer_CLI.exe- c端口= usb1-fwupgradestm32wb5x_FUS_fw.bin0 x080ec000firstinstall = 0
STM32_Programmer_CLI.exe- c端口= usb1-fwupgradestm32wb5x_BLE_Stack_full_fw.bin0 x080cb000firstinstall = 1
![_images / FlashBLEStack.png](http://www.csimin.com/lora-developers/themes/user/rst_to_ee/html/TrackerRefV5/_images/FlashBLEStack.png)
图38:Flash BLE堆栈固件
找之前的版本吗?在这里找到它: