当前文档版本为 v0.3.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

P2P模式协议使用说明

1 模块概述

1.1 特点简介

ChirpLAN模块是一个支持P2P(点对点)通信协议、 网关协议的半双工无线通信模块, 工作的频段为: 470-510MHz,模块内置功能完整的 AT 指令, 使用串口进行数据收发, 降低了无线应用的门槛, 可实现一对一或者一对多的通信。模块采用 SMT 封装, 可以满足多种应用中的对空间尺寸的要求,本说明书主要介绍模块对P2P(点对点)协议通信的说明 。

1.2 模块特性

  • 使用 AT 指令进行配置及保存,方便开发及调试

  • 支持透传模式进行数据传输

  • 透传模式下支持对数据流进行控制(AUX)

  • 串口支持 9600/19200/38400/57600/115200bps等典型波特率

  • 支持多种无线速率

  • 内置无线电唤醒(间隔性接收), 大大增加电池待机时间

  • 内置等待信道空闲发射, 有效降低同频信号碰撞的几率

  • 可以实现定点传输, 广播等传输方式

1.3 典型应用

  • 高级无线抄表架构(水表、 电表、 气表)

  • 超远距离数据通讯

  • 智能家居系统

  • 无线传感器网络

  • 工业自动化数据采集

1.4 模块基本参数

分类

参数

取值

无线参数

工作频段

398-510MHz

无线参数

发射功率

不带PA:22dBm / 带PA:32dBm(峰值)

无线参数

接收灵敏度

-140dBm

无线参数

传输距离

(1)>300米 @SF7, BW250khz, TX power:22dBm
(2)>2000米 @SF9, BW125khz, Tx power:22dBm
(3)>5000米 @SF11,BW125khz, Tx power:22dBm

无线参数

天线选项

外接 Chirp 天线(焊盘或者 IPEX)

硬件参数

数据接口

波特率:115200(默认)

硬件参数

工作电压

不带 PA:DC3.3V / 带PA:DC5.0V

硬件参数

工作电流

Mode A :
858nA@休眠电流
24uA@5分钟一次收发
Mode B:
1.6uA@休眠电流
3.8uA@30秒唤醒一次
Mode C:
工作电流20mA

硬件参数

工作温度

-40℃ ~ +85℃

硬件参数

存储温度

-45℃ ~ +90℃

硬件参数

封装接口

SMT表贴

1.5 模块引脚说明

image-20220903162925295

ChirpLAN网络模块引脚示意图

引脚名称

IO 类型

引脚描述

VCC

电源

供电引脚

GND

电源

参考地

ANT

模拟

射频信号输入/输出端口, ANT 端口预留匹配电路,
走线使用 50 Ω 阻抗匹配, 铺地并在周围加过孔

AUX

输出

模块状态指示引脚:
0: 模块可以接收串口数据
1: 模块不可以接收串口数据

UART-RX

输入

TTL 串口接收引脚

UART-TX

输出

TTL 串口发送引脚

SETA

输入

AT 与透传切换, 内部上拉,
0: P2P传输模式
1: AT 指令模式

SETB

输入

控制模块休眠, 内部上拉
0: 休眠(或无线电唤醒)
1: 唤醒

注意: 如果 SETA, SETB悬空,模块进入AT指令模式,这种机制是为了方便用户进行AT指令测试。

2 产品功能介绍

ChirpLAN P2P模块支持透明传输模式、定点传输模式和AT指令模式,下图为P2P模块的功能整体框图,可帮助对产品有一个整体的认识。

image-20220908184349355

基本功能框图

image-20220903161640230

模块与TTL工具连接实物图

2.1 工作模式

本章主要介绍ChirpLAN模块的AT指令模式、P2P(点对点)传输模式,P2P(点对点)传输模式又分为透明传输和定点传输模式。

  • 透明传输模式:

名 称

说 明

条 件

AT 指令模式

用户可用AT 指令对模块进行参数配置

SETA=1
SETB=1

透明传输(NORMAL)

SETB为1时,支持全速运行模式,模块处于NORMAL状态,
此状态下,模块同时监听串口和RF,接收到数据包后就相互转发端口数据

SETA=0
SETB=1

透明传输(LPMODE)

SETB为0时,支持空中唤醒和低功耗模式,模块处于LPMODE状态:
空中唤醒模式时,模块会启动RTC定期唤醒检测空中RF前导码
低功耗模式时,模块进入休眠状态,只能通过SETA/SETB唤醒
注:当SETB为0且WAKET=0时模块进入低功耗模式
当SETB为0且WAKET!=0时模块空中唤醒模式

SETA=0
SETB=0

  • 定点传输模式:

名 称

说 明

条 件

AT 指令模式

用户可用AT 指令对模块进行参数配置

SETA=1
SETB=1

定点传输(NORMAL)

与透明传输的全速运行类似,只是在数据包前加了两个字节的地址信息(ADDR0,ADDR1),
发送时,地址信息为目的节点的ADDR0,ADDR1;
接收时,节点要比对数据包中的ADDR0,ADDR1与自己的ADDR0,ADDR1是否相符,
若相符则通过串口转发数据,若不相符,则丢弃数据。

SETA=0
SETB=1

定点传输(LPMODE)

与透明传输的低功耗模式类似,也只是在数据包前加了两个字节的地址信息(ADDR0,ADDR1)。
注:当SETB为0且WAKET=0时模块进入低功耗模式
当SETB为0且WAKET!=0时模块空中唤醒模式

SETA=0
SETB=0

注:模式切换需要保证模块处于空闲状态, 因为模式切换过程中会清空缓冲区

2.1.1 AT 指令模式

AT 指令模式主要实现用户通过串口发送命令设置模组相关的参数。 在 AT 指令模式下,模组串口用于接收 AT 命令,用户可以通过串口发送 AT 命令给模组,用于查询和设置模组的 UART、Chirp等相关参数。 详细的 AT 指令介绍请参考“3.3 AT 指令格式”

2.1.2 P2P透明传输模式

透明传输协议即数据的传输过程不影响数据的内容, 所发即所收。 透明传输的优势在于可实现两个模块即插即用, 无需其他操作。

2.1.2.1 全速运行模式

节点配置为点对点透明传输协议后,通讯各节点需满足 3 个条件:

  • 模组信道(freq)、速率(rate,cr,sf,bw)参数一致

  • 模组crc校验参数一致

  • 模组加密参数一致

指令

数值

AT+CH

设置/查询通信信道

AT+RATE

设置/查询通信速率

AT+ENC

设置/查询加密开关

AT+KEY

设置/查询加密密钥

透明传输指令列表
  • [ ] 上位机软件设置方法如下图

image-20220908155735355

注:全速运行模式测试时,要保持SETA,SETB为高电平,由指令进行工作模式切换。

  • [ ] 打开两个上位机界面分别连接至两个模块进行透传测试,一个上位机发送“1234”,另一个上位机发送“4321”,测试效果如下:

image-20220908160024817

2.1.2.2 空中唤醒模式

节点配置为点对点透明传输协议后,通讯各节点需满足 以下几个条件:

  • 模组信道(freq)、速率(rate,cr,sf,bw)参数一致

  • 模组crc校验一致

  • 模组加密参数一致

  • 发送端要配置与接收端匹配的前导码时长

指令

数值

AT+CH

设置/查询通信信道

AT+RATE

设置/查询通信速率

AT+ENC

设置/查询加密开关

AT+KEY

设置/查询加密密钥

AT+RXGAS

设置/查询唤醒时间间隔,此模式下RXGAS要设置为100~5000ms的非零数值(例:AT+RXGAS=5000\r\n)

透明传输指令列表
  • [ ] 上位机软件设置方法如下图,将唤醒周期设置为5000ms(AT+RXGAS=5000\r\n),模块在P2P模式时会每隔5000ms唤醒一次检测CAD信号,

    • 若没有检测到CAD信号,模块会再次休眠5000ms;

    • 若检测到CAD信号,模块会将收取整个RF数据包,再将数据包通过串口发送出去,之后再次进入休眠。

image-20220908155735355

上位机设置完成后,将SETA、SETB引脚拉低,即可进入空中唤醒模式。在此模式下模块由于间歇性进入低功耗模式,所以不能与上位机工具正常通信;若要让模块再次与上位机正常通信,则要将SETA、SETB引脚拉高,唤醒模块后才能与上位机正常通信。

2.1.2.3 低功耗模式

节点配置为点对点透明传输协议后,通讯各节点需满足 3 个条件:

  • 模组信道(freq)、速率(rate,cr,sf,bw)参数一致

  • 模组crc校验参数一致

  • 模组加密参数一致

指令

数值

AT+CH

设置/查询通信信道

AT+RATE

设置/查询通信速率

AT+ENC

设置/查询加密开关

AT+KEY

设置/查询加密密钥

AT+RXGAS

设置/查询唤醒时间间隔,此模式下RXGAS须设置为0(AT+RXGAS=0\r\n)

透明传输指令列表
  • [ ] 上位机软件设置方法如下图,将唤醒周期设置为0ms(AT+RXGAS=0\r\n),表示一直休眠,直到SETB拉高唤醒模块。

image-20220908161033065

上位机设置完成后,将SETA、SETB引脚拉低,即可进入休眠模式。在休眠模式下模块由于进入低功耗模式,所以不能与上位机工具正常通信;若要再想与上位机进行连接,则需将SETB引脚拉高,唤醒模块后才能与上位机正常通信。

2.1.3 P2P定点传输模式

定点传输协议在透明传输的基础上将发送数据的前 2 字节作为地址0和地址1, 发送时模块改变目标地址和 信道, 发送后恢复原有设置。 定点传输协议优势在于数据发送时可以灵活的改变目标地址和信道从而实现灵活的改变目标模块。

image-20220729171345305

如 :

  • 设备 A B 地址为 100,100 能通信 (速率,频率相同)

  • 设备 C 地址为 101,100 不能通讯

  • 设备 E 地址为 255,100 不能通讯

  • 一个模块触发发送,另外一个模块接收

注:

● 模块 A 与模块 B 地址相同、且频率、无线速率相同的两个模块(非串口波特率)

● 点对点,地址不一样的模块无法收到数据,用于一对一通讯

2.1.3.1 全速运行模式

节点配置为点对点定点传输协议后,通讯各节点需满足 3 个条件:

  • 模组信道(freq)、速率(rate,cr,sf,bw)参数一致

  • 模组crc校验参数一致

  • 模组加密参数一致

指令

数值

AT+WMODE

设置/查询工作模式

AT+PTC

设置/查询透传模式

AT+CH

设置/查询通信信道

AT+RATE

设置/查询通信速率

AT+ENC

设置/查询加密开关

AT+KEY

设置/查询加密密钥

透明传输指令列表
  • [ ] 上位机软件设置方法如下图

image-20220908161427218

注:全速运行模式测试时,要保持SETA,SETB为高电平,由指令进行工作模式切换。

  • [ ] 打开两个上位机界面分别连接至两个模块进行透传测试,一个上位机发送“1234”,另一个上位机发送“4321”,测试效果如下:

image-20220908162307922

2.1.3.2 空中唤醒模式

节点配置为点对点透明传输协议后,通讯各节点需满足 3 个条件:

  • 模组信道(freq)、速率(rate,cr,sf,bw)参数一致

  • 模组crc校验参数一致

  • 模组加密参数一致

指令

数值

AT+CH

设置/查询通信信道

AT+RATE

设置/查询通信速率

AT+ENC

设置/查询加密开关

AT+KEY

设置/查询加密密钥

AT+RXGAS

设置/查询唤醒时间间隔,此模式下RXGAS要设置为100~5000ms的非零时间

透明传输指令列表
  • [ ] 上位机软件设置方法如下图,将唤醒周期设置为4000ms(AT+RXGAS=4000\r\n),模块在P2P模式时会每隔5000ms唤醒一次检测CAD信号,

    • 若没有检测到CAD信号,模块会再次休眠4000ms;

    • 若检测到CAD信号,模块会将收取整个RF数据包,再将数据包通过串口发送出去,之后再次进入休眠。

image-20220908162717014

上位机设置完成后,将SETA、SETB引脚拉低,即可进入空中唤醒模式。在此模式下模块由于间歇性进入低功耗模式,所以不能与上位机工具正常通信;若要让模块再次与上位机正常通信,则要将SETA、SETB引脚拉高,唤醒模块后才能与上位机正常通信。

2.1.3.3 低功耗模式

节点配置为点对点透明传输协议后,通讯各节点需满足 3 个条件:

  • 模组信道(freq)、速率(rate,cr,sf,bw)参数一致

  • 模组crc校验参数一致

  • 模组加密参数一致

指令

数值

AT+CH

设置/查询通信信道

AT+RATE

设置/查询通信速率

AT+ENC

设置/查询加密开关

AT+KEY

设置/查询加密密钥

AT+RXGAS

设置/查询唤醒时间间隔,此模式下RXGAS须设置为0(AT+RXGAS=0\r\n)

透明传输指令列表
  • [ ] 上位机软件设置方法如下图,将唤醒周期设置为0ms(AT+RXGAS=0\r\n),表示一直休眠,直到有IO口唤醒。

image-20220908162945278

上位机设置完成后,将SETA、SETB引脚拉低,即可进入休眠模式。在休眠模式下模块由于进入低功耗模式,所以不能与上位机工具正常通信;若要再想与上位机进行连接,则需将SETB引脚拉高,唤醒模块后才能与上位机正常通信。

2.2 AUX时序说明

  • 模块初始化AUX逻辑:

    模式上电后AUX为高电平表示模块正在初始化,持续时间大约 30ms,初始化完成后,AUX变以低电平,表示模式可以正常通信了。

image-20220623102040245
  • 模块休眠和唤醒AUX逻辑:

    模块休眠期间,AUX为高电平,被RTC,SETA,SETB等唤醒后,AUX不会立即变低,待模块工作状态恢复之后AUX才会变低,表示模式进入

    正常工作状态,可以正常收发数据了。

image-20220623102158742
  • 透传下接收到串口数据的AUX逻辑:

    当串口接收到第一个字节后,AUX 变成高电平,表示 FIFO 非空进入 TX 状态,等到RF将串口数据全部发送完成后, AUX变成低电平,

    表示可以再次接收下一包串口数据。

image-20220902193824929
  • 串口数据输出指示( 用于唤醒休眠的外部 MCU)

    AT+AUXT=10,0

image-20220623102634313

2.4 固件升级

固件升级步骤

  1. 模块断电状态下,保持SETA,SETB引脚浮空,将uart_tx,uart_rx,gnd引脚连接至电脑(一般要用到usb转ttl模块)

  2. 模块上电,打开模块设置软件,之后依次打开串口、点击进入配置状态、点击固件升级、选择固件升级文件(*.bin)等,具体操作如下图。

image-20220908163124324

3 产品配置

3.1 配置工具

产品配有通用设置软件(AT 指令设置软件)以及配套设置软件,支持参数设置,可简化用户的操作,推荐使用配套设置软件来配置参数。

3.1.1 配套设置软件

该配套设置软件适用于ChirpLAN系列模组的参数读取以及配置。下图中序号依次对应以下步骤:

image-20220908163452985

步骤说明:

  1. 在串口设置界面中,将波特率、校验位、数据位、停止位设置为节点对应参数,节点串口默认参数为 115200、NONE、8、1,点击打开串口按钮

  2. 点击进入配置状态按钮,节点回复+OK,即节点进入 AT 指令模式

  3. 按读取参数按钮,读取模块参数信息

  4. 选择点定点协议,再选择定点或透传功能;再设置其它参数(信道/速率/加密等参数)

  5. 参数更改之后点击设置参数按钮,软件会自动设置模块参数,设置完毕后,模块自动保存参数

  6. 点击退出配置状态按钮,模块退出配置模式进入P2P工作模式

3.2 配置指令介绍

配置指令即 AT 指令,是指在 AT 指令模式下用户通过 UART 与模组进行命令传递的指令集,后面将详细讲解 AT 指令的使用格式。

上电启动成功后,可以通过 UART 对模组进行设置。

模组的缺省 UART 口参数为: 波特率 115200、无校验、8 位数据位、1 位停止位。

从非 AT 命令模式下切换到 AT 命令模式,若用配套设置软件点击进入配置模式即可进入,若手动进入 AT 命令模式需要以下两个步骤:

  • [ ] 在 UART 上输入“+++”,模组在收到“+++”后会返回一个确认码“a”;

  • [ ] 3 秒内在 UART 上输入确认码“a”,模组收到确认码后,返回“+OK”确认,进入AT命令模式,如下图所示;

image-20220729184051075

  1. 指令切换工作模式

AT模式与P2P模式的指令切换状态图如下图:

image-20220908110923053

表 AT指令切换时序图
  1. SETA引脚切换工作模式

    SETA为高时进入AT工作模式,SETA为低时进入P2P工作模式,具体如下图:

image-20220908142832925

SETA引脚切换时序图

注:指令切换与引脚SETA切换的优先级相同

  • 用户用上位机工具配置测试时,建议用指令进行工作模式切换

  • 用户在用MCU与模块连接时,建议用引脚切换的方式进行工作模式切换

3.3 AT 指令格式

发送命令格式:以回车<CR>、换行<LF>或者回车换行<CR><LF>结尾,具体如下表所示。

类型

指令格式

说明

举例

0

AT+CMD? <CR><LF>

查询参数

AT+VER? <CR><LF>

1

AT+CMD <CR><LF>

查询参数

AT+VER<CR><LF>

2

AT+CMD=para <CR><LF>

设置参数

AT+CH1=66<CR><LF>

表 AT 指令格式

模组回复格式(关闭回显): 设置参数:<CR><LF>OK<CR><LF> 查询参数:<CR><LF> +CMD=PARA<CR><LF>OK<CR><LF> CMD:命令字 PARA:参数

表 AT返回代码说明

返回代码

返回说明

OK

响应成功

ERR CHECK ARGS FORMAT FAILED!

无效的命令格式

ERR CMD MATCH FAILED!

无效的命令

ERR PARSE ARGS FAILED!

无效的参数

ERROR

其它错误

3.4 AT 指令集

表 AT 指令列表(以下所有指令后默认带<CR><LF>

命令

描 述

命令格式

可保存 (Y/N)

AT

AT测试指令,模块接收到AT命令后,返回OK

发:AT
收:OK

No

AT+ENTM

进入退出 AT 命令,切换到设定的工作模式(AT+WMODE设置)

发:AT+ENTM
收:OK

No

AT+E

AT 命令回显设置:
关闭:0(默认)
开启:1

发:AT+E=<0/1>
收:OK

No

AT+Z

重启模块,模块内MCU执行软复位动作,所有外设重新初始化。

发:AT+Z
收:OK

No

AT+SAVE

保存当前设置为默认设置:
所有可设置的参数均保存。

发:AT+SAVE
收:OK

No

AT+DEFAULT

恢复默认设置:
所有可设置的参数均恢复初厂设置

发:AT+DEFAULT
收:OK

No

AT+VER

查询设备固件版本号,格式:x.x.x

发:AT+VER?
收:+VER=1.0.0
OK

No

AT+UART

设置/查询串口参数:
baudrate:9600/19200/38400/57600/115200
databit:默认为8,暂不可设置为其它值
stopbits:默认为1,暂不可设置为其它值
parity:默认无较验,暂不可设置为其它值
注:不建议用户设置此参数以免因忘记参数而引起连接问题

发:AT+UART=<baudrate>,<databits>,<stopbits>, <parity>
收:OK

Yes

AT+UARTINT

设置/查询串口打包间隔:
范围:1~100,单位ms
注:打包间隔是指在一定时间内没有收到新的数据就认为收到了一个完整包。

发:AT+UARTINT=<1~100>
收:OK

Yes

AT+PWR

设置/查询发射功率:
PWR范围:0~29

发:AT+PWR=<0~29>
收:OK

Yes

AT+CH

设置/查询通信信道:
CH范围:1~100
注:1~100对应相应的通信频率

发:AT+CH=<1~100>
收:OK

Yes

AT+RATE

设置/查询RF通信速率:
RATE范围:4~10
速率对应关系:
4 - 878bps、5 - 977bps、6 - 1758bps、7 - 3125bps、
8 - 6250bps、9 - 10937bps、10 - 21875bps

发:AT+RATE=<4~10>
收:OK

Yes

AT+SF

设置/查询SF:
SF范围:7~12

发:AT+SF=<SF>
收:OK

Yes

AT+BW

设置/查询BW:
BW范围:6~9(6 - 62.5k,7 - 125k,8 - 250k,9 - 500k)

发:AT+BW=<BW>
收:OK

Yes

AT+CR

设置/查询CR
CR范围:1~4(1 - CR4/5,2 - CR4/6,3 - CR4/7,4 - CR4/8)

发:AT+CR=<CR>
收:OK

Yes

AT+NID

设置/查询模组ID

Yes

AT+WMODE

设置模块工作模式:
点对点模式:0( 默认)
网络模式:1

发:AT+WMODE=<workmode>
收:OK

Yes

AT+RFADDR

设置/查询模块地址(作为定点透传地址):
Addr0: 0-255
Addr1: 0-255

发:AT+RFADDR=<Addr0>,<Addr1>
收:OK

Yes

AT+AUXT

设置/查询 AUX 输出时间:
当接收到数据后,AUX 相对与串口 TX提前置高和延时置低的时间
默认为 0ms, 如果 MCU 可能处于休眠,则需要设置一个合理的值,
用于等待MCU 唤醒,PreTime、auxDelayTime范围为0~100,单位:ms

发:AT+RFADDR=<PreTime>,<auxDelayTime0>
收:OK

Yes

AT+PREAMABLE

设置/查询模块的发送前导码时间:
PREAMABLE范围:0,100~5000ms
注:
PREAMABLE为0时,表示使用模块常规前导码
PREAMABLE为100~5000ms时,表示为唤醒前导码

AT+RXGAS

设置/查询模组的唤醒间隔:
范围:100~5000,单位ms
接收端的RXGAS时间要与发送端的PREAMABLE要匹配,
PREAMABLE时间应略大于RXGAS时间。
注:当WAKET=0且SETB为0时进入休眠不定时唤醒。

发:AT+RXGAS=<wakeuptime>
收:OK

AT+ENC

设置/查询通信加密开关:
加密关闭:0( 默认)
加密开启:1

发:AT+ENC=<0/1>
收:OK

Yes

AT+KEY

设置/查询加密密钥:
KEY为16 字节 HEX 字符串(0~9,A~F),实际传输时占用32个字节。
例: 设置密钥为“0123456789abcdef”时,
则发送AT+KEY=30313233343536373839414243444546
注:为保障数据安全, 此加密字只可设置不可查询

发:AT+KEY=<KeyHex>
收:OK

Yes