12 PSM+
一、演示功能概述
本篇文档主要是讲解了 iRTU 的 PSM+ 模式下的 GNSS 和自动任务采集功能的使用
二、准备硬件环境
PSM+ 模式适用于 iRTU 支持的所有型号,包括 Air780EPM/Air780EHM/Air780EGG/Air780EGH/Air780EGP/Air780EHV/Air8000,本次测试使用的是 Air780EGG,准备一块 Air780EGG 核心板:点击购买

三、准备软件环境
1.烧录工具:Luatools 工具
2.Air780EGG 烧录需要的 irtu 固件:固件版本
3.tcp 服务器测试地址:https://iot.luatos.com/#/page6/netlab。 详细使用说明参考:合宙 TCP/UDP web 测试工具使用说明
4.GNSS 纠偏网站:https://docs.openluat.com/file/GPS-Offset.html
四、功能选项讲解
4.1 PSM+ 模式详解
iRTU 的 PSM+ 模式目前主要是针对两种场景:
1、平时处于 PSM+ 模式状态下,定时/GPIO 中断触发唤醒,然后模块开始进行采集设备数据,采集完成发送给服务器数据,全部采集进行完成,进入 PSM+ 模式等待下次唤醒或者定时触发。
2、平时处于 PSM+ 模式状态下 ,定时/Gsensor 中断触发,然后模块唤醒之后开始进行 GNSS 定位,定位成功之后发送经纬度数据给服务器。
4.2 电源模式
1.功能解释:在电源模式中,选择 PSM+ 模式,默认是正常模式。
2.举例:

4.3 PSM+ 模式的唤醒时间
1.功能解释:在选择 PSM+ 模式之后,会有一个唤醒时间,这个的功能主要是定时唤醒 PSM+ 状态下的模块,单位:秒,仅支持数字,休眠定时器最大休眠时长为 740 小时。
2.举例:

4.4 PSM+ 模式 GPIO 中断唤醒
1.功能解释:在选择 PSM+ 模式之后,会有一个 GPIO 中断唤醒选项,这个功能主要是可以选择 WAKEUP 脚去中断触发唤醒模块。可选管脚为 PWRKEY,WAKEUP0-WAKEUP6,如果不需要可以选择不启用。默认不启用
wakeup0 支持的型号有:所有型号都支持
wakeup1 支持的型号有:所有型号都支持
wakeup2 支持的型号有:所有型号都支持,Air780EGP/Air780EGG/Air8000A/Air8000D/Air8000U/Air8000AB/Air8000N/Air8000DB 需要搭配内部 Gsensor 震动触发使用。
wakeup3 支持的型号有:除了 Air780EHV,所有型号都支持,Air780EHV 内部用该脚作为音频解码芯片控制开关脚。
wakeup4 支持的型号有:除了 Air780EGH/Air780EGG/Air780EGP 都支持,Air780EGH/Air780EGG/Air780EGP 内部用该脚作为 GNSS 定位芯片的开关脚。
wakeup5 支持的型号有:除了 Air780EHV/Air8000A/Air8000U/Air8000AB/Air8000N/Air8000W 都支持,Air780EHV 推荐用该脚作为 PA 的控制脚,Air8000A/Air8000U/Air8000AB/Air8000N/Air8000W 用于 4G 和 WIFI 的通信使用,不可使用该脚。
wakeup6 支持的型号有:除了 Air780EPM 和 Air780EHM 都支持
pwrkey 支持的型号有:所有型号都支持。
2.举例:

五、使用示例
本次示例展示主要从 6 个 PSM+ 场景进行功能展示:
1、定时唤醒 PSM+ 模式,通过串口采集数据之后,发送到服务器,然后进入 PSM+ 模式
2、通过 GPIO 中断唤醒 PSM+ 模式,通过串口采集数据之后,发送到服务器,然后进入 PSM+ 模式
3、定时唤醒 PSM+ 模式,开启 60 秒时间的 GNSS,定位成功获取经纬度消息发送到服务器,然后关掉 GNSS,进入 PSM+ 模式
4、定时唤醒 PSM+ 模式,开启一个 60 秒的 GNSS,定位成功之后,每 5 秒发送一条经纬度消息到服务器,直到 60 秒结束,然后关掉 GNSS,进入 PSM+ 模式
5、在处于 PSM+ 模式的状态下,利用 780EGG 的内部三轴加速度传感器,在触发震动的时候,进行唤醒 PSM+ 模式,开启一个 60 秒的 GNSS,定位成功之后,每 5 秒发送一条经纬度消息到服务器,直到 60 秒结束,然后关掉 GNSS,进入 PSM+ 模式,等待下次震动触发唤醒。
6、在处于 PSM+ 模式的状态下,利用 780EGG 的内部三轴加速度传感器,在触发震动的时候,进行唤醒 PSM+ 模式,开启 60 秒时间的 GNSS,定位成功获取经纬度消息发送到服务器,然后关掉 GNSS,进入 PSM+ 模式,等待下次震动触发唤醒。
5.1 定时器唤醒之后进行串口采集
1.配置选项:
在基本参数里面,电源模式选择 PSM+ 模式,唤醒时间选择 50s

串口配置选择串口参数为,串口 1,波特率 115200,数据位 8 位,无校验位,1 位停止位,不选择 485 转向脚

网络通道选择 Socket,TCP,输入 IP 地址和端口,自动任务采集本次选择了 10 秒,因为模块在连接了服务器之后会主动进行一次自动任务采集动作,然后等待 10 秒之后,会再次进行采集动作,因为本次用的是 PSM+ 模式,进行一轮采集动作之后就会进入 PSM+ 模式。所以自动采集任务间隔时间只需大于自动任务采集的总时长即可。

预置信息里面,自动任务采集,本次展示选择了串口 1,采集等待 1000ms,即第一条数据和第二条数据发送的间隔相差 1000ms,本次发送了两条指令给到串口。后续可以根据自己的实际需求修改发送内容。

2.接线和供电
本次用的是 Air9000P 给核心板进行供电,Air9000P 的 + 接核心板的 VBAT,-接核心板的 GND
TTL 转 USB 工具和核心板的接线方式为,TTL 转 USB 工具的 UART-TX-接核心板 U1RXD,TTL 转 USB 工具的 UART-RX-接核心板 U1TXD,TTL 转 USB 工具的 GND 接核心板的 GND
接线图片为:

3.测试结果
1、Air780EGG 开机之后,iRTU 配置的自动任务采集启动,通过串口发送数据给电脑上的串口工具
2、电脑上的串口工具收到数据后,在串口工具上手动回复一段数据给 Air780EGG 核心板
3、Air780EGG 的串口收到数据后,将数据发送到服务器
4、Air780EGG 进入 PSM+ 模式
5、Air780EG 等待下次定时器唤醒,唤醒后,继续重复 1 到 5 步的动作

定时器唤醒:

为什么设置的是 50s,但是收到数据的时间不是固定的?
这个是因为设置的 50s 是唤醒时间,还有模块的联网时间和连接服务器的时间,还有自动任务采集设置的等待时间,所以会导致每次唤醒收到的数据时间不是固定的。没办法像正常模式下定时器触发那么准时。
5.2 GPIO 中断触发唤醒之后进行串口采集
1.配置选项:
在基本参数里面,电源模式选择 PSM+ 模式,GPIO 中断唤醒选择 wakeup0 管脚

串口配置选择串口参数为,串口 1,波特率 115200,数据位 8 位,无校验位,1 位停止位,不选择 485 转向脚

网络通道选择 Socket,TCP,输入 IP 地址和端口,自动任务采集本次选择了 10 秒,因为模块在连接了服务器之后会主动进行一次自动任务采集动作,然后等待 10 秒之后,会再次进行采集动作,因为本次用的是 PSM+ 模式,进行一轮采集动作之后就会进入 PSM+ 模式。所以自动采集任务间隔时间只需大于自动任务采集的总时长即可。

预置信息里面,自动任务采集,本次展示选择了串口 1,采集等待 1000ms,即第一条数据和第二条数据发送的间隔相差 1000ms,本次发送了两条指令给到串口。后续可以根据自己的实际需求修改发送内容。

2.接线和供电
本次用的是 Air9000P 给核心板进行供电,Air9000P 的 + 接核心板的 VBAT,-接核心板的 GND
TTL 转 USB 工具和核心板的接线方式为,TTL 转 USB 工具的 UART-TX-接核心板 U1RXD,TTL 转 USB 工具的 UART-RX-接核心板 U1TXD,TTL 转 USB 工具的 GND 接核心板的 GND
接线图片为:

3.测试结果
1、Air780EGG 开机之后,iRTU 配置的自动任务采集启动,通过串口发送数据给电脑上的串口工具
2、电脑上的串口工具收到数据后,在串口工具上手动回复一段数据给 Air780EGG 核心板
3、Air780EGG 的串口收到数据后,将数据发送到服务器
4、Air780EGG 进入 PSM+ 模式
5、Air780EG 等待下次 wakeup0 中断触发唤醒,手动拉高拉低 wakeup0 可以触发中断唤醒,唤醒后,继续重复 1 到 5 步的动作

wakeup0 中断触发唤醒:

5.3 定时器唤醒之后开启 GNSS 定位,定位成功之后关闭 GNSS
1.配置选项:
在基本参数里面,电源模式选择 PSM+ 模式,唤醒时间为 70s

网络通道选择 Socket,TCP,输入 IP 地址和端口

GNSS 定位里面,选择串口 2,波特率 115200,上报间隔为 5 秒,GNSS 打开时间为 60 秒,定位成功之后关闭 GNSS,采集方式为连续采集,GNSS 定时开启时间为 0,上报通道为网络通道 1,上报内容为 RMC,后续可以根据自己的需求进行修改。因为本次采用 PSM+ 模式唤醒,然后定位成功之后就关掉了 GNSS,然后进入 PSM+ 模式,所以上报间隔和 GNSS 定时开启时间使用默认值即可。

2.接线和供电
本次用的是 Air9000P 给核心板进行供电,Air9000P 的 + 接核心板的 VBAT,-接核心板的 GND
1
接线图片为:

3.测试结果
开机之后先开启 GNSS 定位,开启时长为 60s,定位成功发送经纬度数据,然后进入 PSM+ 模式,等待定时器唤醒模块之后,再次进行定位。如果超时定位失败,会关掉 GNSS 然后进入 PSM+ 模式
第一次开机:

定时唤醒之后:

5.4 定时器唤醒之后开启 GNSS 定位,定位成功之后持续上报数据
1.配置选项:
在基本参数里面,电源模式选择 PSM+ 模式,唤醒时间为 70s

网络通道选择 Socket,TCP,输入 IP 地址和端口

GNSS 定位里面,选择串口 2,波特率 115200,上报间隔为 5 秒,GNSS 打开时间为 60 秒,定位成功之后不关闭 GNSS,采集方式为连续采集,GNSS 定时开启时间为 0,上报通道为网络通道 1,上报内容为 RMC,后续可以根据自己的需求进行修改。

2.接线和供电
本次用的是 Air9000P 给核心板进行供电,Air9000P 的 + 接核心板的 VBAT,-接核心板的 GND
接线图片为:

3.测试结果
开机之后先开启 GNSS 定位,开启时长为 60s,定位成功发送经纬度数据,然后每 5 秒发送一次数据,直到到达 GNSS 的打开时间,然后关闭 GNSS,进入 PSM+ 模式,如果超时定位失败,会关掉 GNSS 然后进入 PSM+ 模式
第一次开机:

定时唤醒之后:

5.5 检测到震动开启 GNSS 定位,定位成功之后关闭 GNSS
1.配置选项:
在基本参数里面,电源模式选择 PSM+ 模式,唤醒时间填 0,GPIO 中断唤醒不启用

网络通道选择 Socket,TCP,输入 IP 地址和端口

GNSS 定位里面,选择串口 2,波特率 115200,上报间隔为 5 秒,GNSS 打开时间为 60 秒,定位成功之后关闭 GNSS,采集方式为触发采集,GNSS 定时开启时间为 0,上报通道为网络通道 1,上报内容为 RMC,后续可以根据自己的需求进行修改。其中采集方式配置为触发采集,会自动加载内部 Gsensor,配置 wakeup2 为触发震动之后的中断检测脚

2.接线和供电
本次用的是 Air9000P 给核心板进行供电,Air9000P 的 + 接核心板的 VBAT,-接核心板的 GND
接线图片为:

3.测试结果
开机之后会连接服务器之后进入 PSM+ 模式,然后触发震动之后,开启 GNSS 定位,开启时长为 60s,定位成功之后
发送经纬度消息到服务器,关闭 GNSS,然后进入 PSM+ 模式,如果超时定位失败,会关掉 GNSS 然后进入 PSM+ 模式
触发震动开机,然后开启 GNSS 定位,定位成功发送经纬度消息到服务器:

5.6 检测到震动开启 GNSS 定位,定位成功之后持续上报数据
1.配置选项:
在基本参数里面,电源模式选择 PSM+ 模式,唤醒时间填 0,GPIO 中断唤醒不启用

网络通道选择 Socket,TCP,输入 IP 地址和端口

GNSS 定位里面,选择串口 2,波特率 115200,上报间隔为 5 秒,GNSS 打开时间为 60 秒,定位成功之后不关闭 GNSS,采集方式为触发采集,GNSS 定时开启时间为 0,上报通道为网络通道 1,上报内容为 RMC,后续可以根据自己的需求进行修改。其中采集方式配置为触发采集,会自动加载内部 Gsensor,配置 wakeup2 为触发震动之后的中断检测脚

2.接线和供电
本次用的是 Air9000P 给核心板进行供电,Air9000P 的 + 接核心板的 VBAT,-接核心板的 GND
接线图片为:

3.测试结果
开机之后会连接服务器之后进入 PSM+ 模式,然后触发震动之后,开启 GNSS 定位,开启时长为 60s,定位成功之后
发送经纬度消息到服务器,然后每 5 秒发送一次数据,直到到达 GNSS 的打开时间,然后关闭 GNSS,进入 PSM+ 模式,如果超时定位失败,会关掉 GNSS 然后进入 PSM+ 模式
触发震动开机,然后开启 GNSS 定位,定位成功发送经纬度消息到服务器:

六、总结
本文演示如何在 Air780EGG 核心板上面,用 iRTU 固件,展示了 PSM+ 模式下的 GNSS 和自动任务采集功能使用