罗拉边缘跟踪参考设计,用户指南文档(v2)

固件

两个软件交付与罗拉的边缘跟踪参考设计:

  1. 罗拉基本知识调制解调器固件+应用程序代码运行在罗拉边缘跟踪参考设计

  2. 罗拉边缘配置(移动应用程序)

本节描述罗拉边缘跟踪参考设计固件。

固件源代码可以在罗拉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位置帮助更新

引导装载程序模式和名义操作

跟踪应用程序首次启动时,它开始引导装载程序模式。如果一个应用程序安装,需要以下操作:

  1. 根据设定的配置罗拉边缘配置应用程序,跟踪器可以连接到一个LoRaWAN-compatible网络服务器使用Semtech罗拉云连接服务器的主要推导算法的智能手机应用程序(如果选择)。

  2. 当检测到运动,追踪:

    1. 发送一个wi - fi扫描每X秒或分钟/ NAV消息,由用户定义。wi - fi / GNSS扫描策略定义如下:

      1. 执行GNSS扫描移动模式。

      2. 如果扫描检测到足够的卫星:

        1. 发送结果LoRaWAN端口194。

      3. 如果GNSS扫描结果不够好或无效,进行无线扫描。

        1. 如果无线扫描检测到足够的访问点,发送结果LoRaWAN端口196。

      4. 如果扫描结果不够/有效:

        1. 发送传感器的值在LoRaWAN端口193。

    2. 开始一个被动的wi - fi扫描/ NAV消息发送一次,一旦运动不再是发现。

  3. 执行和发送GNSS扫描静态模式在静态模式下(每X分钟/小时,由用户定义)。

  4. 当霍尔效应传感器检测到的存在一个磁体,追踪重置本身和进入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

图35:跟踪应用程序流

软件开发工具包

跟踪器的软件开发工具包(SDK)包含几层,如图36所示。

_images / SDKLayers.png

图36:罗拉边缘跟踪参考设计固件SDK层

完整的固件是由:

  • 一个管理应用程序的引导装载程序固件更新无线

  • 一个应用程序

  • 地理位置属于软件的中间件层,简化了集成GNSS和wi - fi扫描和发送操作在用户应用程序。

固件(引导装载程序+应用)编程到M4 STM32WB的核心。

Semtech使用STM32WBXX_HAL,由意法半导体提供。Semtech提供了一个抽象,叫做SMTC_HAL,目标是成为一个哈尔共同Semtech固件。

获取更多关于固件和中间件的信息请参考跟踪应用程序描述

负载格式规范

每个类型的有效载荷使用专用端口负载。

表4:接口命令输入负载的内容

类型

描述

港口

导航信息

导航信息扫描

194年

数据无线扫描

数据无线扫描

196年

来自传感器的数据

从传感器收集的数据

193年

跟踪日期

跟踪当前日期

151年

跟踪器设置

完成设置的追踪

151年


跟踪日期和跟踪设置载荷应在“标签”或“类型”/长度/值(电磁阀)格式。常用的数据通信协议,电磁阀是一种编码方案在通信协议用于信息元素。

标签长度是固定的大小(一个字节),和的大小价值字段是可变的。使用这些字段如下:

  • 标签:二进制代码,往往简单的字母数字显示的字段代表的这部分信息

  • 长度:value字段的大小(通常以字节为单位)

  • 价值:其中包含的字节大小可变的系列数据消息的一部分

标签长度是一个固定大小的一个字节。这意味着可能有256操作码长度为256字节。这是足以涵盖所有可能的命令。

表5:跟踪负载阀格式

标签

长度

价值

0

1

2…长度的价值


表6:界面载荷格式

命令

标签

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:

表7:可配置参数

命令

标签

Len

祝福

LoRaWAN

价值

评论

弗兰克-威廉姆斯版本

0 x01

0

X

X

返回len 3(大/小/子副)

LoRaWANDevEUI

0 x02

8

X

X

MSB第一

得到LoRaWANDevEUI

0 x03

0

X

X

返回len 8

LoRaWANJoinEui

0 x04

8

X

X

MSB第一

得到LoRaWANJoinEui

0 x05

0

X

X

返回len 8

LoRaWANAppKey

0 x06

16

X

X

MSB第一

得到LoRaWANAppKey

0 x07

0

X

X

返回len 16

GNSS星座

0 x0a

1

X

X

0 = GPS;1 =北斗;2 = GPS和北斗

得到GNSS星座

0 x0b

0

X

X

len返回1

GNSS援助位置

0 x0c

8

X

X

返回len 8 4字节(0 - 3)纬度;4个字节为经度(4 - 7)

得到GNSS援助位置

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日期排在第二

Fuota调制解调器开始

0 x31

146年

X

现代图像块ID(2字节)片段(144字节)

得到硬件版本

0 x32

0

X

X

返回len 4

得到LoRaWAN堆栈版本

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第一

使用Semtech罗拉加入服务器

0 x3a

1

X

X

0 =禁用/ 1 =启用

得到使用Semtech罗拉加入服务器

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

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

得到LR1110固件版本

0 x55

0

X

X

支持命令

0 xff

0

X

X

这种操作码的跟踪器将回答当接收到的命令不支持


得到跟踪日期/ LoRaWAN

表8:跟踪日期命令

命令

标签

Len

跟踪日期

0 x46

0


下行负载(十六进制)是:4600

在LoRaWAN改变设置

表9:获取/设置跟踪设置

命令

标签

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

这是闪存中的每个记录扫描结构:

表10:内部日志标题

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扫描结果。也有可能为这个元素是空的。

表11:GNSS扫描

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

表12:wi - fi扫描

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 +核心程序。但是,如果由于某种原因堆栈需要重新编程或更新,遵循以下的步骤:

  1. 安装STM32CubeProgrammer

  2. 复制粘贴的。斌文件(s)到STM32CubeProgrammer文件夹:

    。斌https://github.com/Lora-net/SWSD004/apps/demonstrations/tracker_application/middleware/ble/stack_binaryC: \程序文件\意法半导体\ STM32Cube \ STM32CubeProgrammer \ bin文件夹中。

  3. 开关STM32WB55引导装载程序模式。

    1. 保持BOOT0销高跟踪时重置。

    2. STM32WB55使用线连接到一台电脑/笔记本电脑。

  4. 打开一个命令提示符窗口。

    1. 导航到STM32CubeProgrammer bin文件夹:cdC: \程序文件\意法半导体\ STM32Cube \ STM32CubeProgrammer \ bin

    2. 删除现有的固件:STM32_Programmer_CLI.exe- c端口= usb1-fwdelete

    3. 阅读和付家升级版:STM32_Programmer_CLI.exe- c端口= usb1-r320 x200300301

_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、执行命令。

堆栈固件命令:

  1. STM32_Programmer_CLI.exe- c端口= usb1-fwupgradestm32wb5x_FUS_fw_for_fus_0_5_3.bin0 x080ec000firstinstall = 0

  2. STM32_Programmer_CLI.exe- c端口= usb1-fwupgradestm32wb5x_FUS_fw.bin0 x080ec000firstinstall = 0

  3. STM32_Programmer_CLI.exe- c端口= usb1-fwupgradestm32wb5x_BLE_Stack_full_fw.bin0 x080cb000firstinstall = 1

_images / FlashBLEStack.png

图38:Flash BLE堆栈固件