1.简介
LPRX315超低功耗遥控模块与滚码遥控器配合,实现遥控开门等操作。
2.产品特点Ø超低功耗,特别适合于电池供电的场合;
Ø支持极低功耗模式:如果遥控模块里没有添加遥控器,则上电1分钟后就进入极低功耗模式,电流<5uA;
Ø支持双窗口滚码遥控,真正防止重放攻击(市面上很多遥控器用了滚码芯片,但是接收模块却没有做防重放攻击处理,其效果就跟固定码遥控器一样了);
Ø支持UART通信;
Ø支持自定义协议通信,不占用主机的串口;
3.性能参数
工作电压 |
DC4~7 V |
静态电流 |
<35uA |
工作电流 |
<10mA |
支持遥控器 |
HCS301滚码遥控器 |
遥控器数量 |
120 |
遥控距离 |
开阔地40米 |
外围尺寸 |
41mm x 30mm x 5mm |
环 境 |
工作温度:-20~70℃ 储存温度:摄氏-30~125℃ 相对湿度:5%~95% |
管脚标号 |
管脚名称 |
描述 |
1 |
VIN |
电源正极 |
2 |
GND |
电源负极 |
3 |
RXD |
遥控模块接收脚,主控MCU→遥控模块 |
4 |
TXD |
遥控模块发送脚,遥控模块→主控MCU |
5 |
- |
未定义 |
6 |
- |
未定义 |
7 |
- |
未定义 |
LPRX315支持3种通信模式:
l UART通信:使用TXD和RXD脚进行双向全双工通信;
l 自定义协议:类似单总线,用两根线进行双向通信;
l 按键模式:无需跟主机通信,用遥控模块上的设置按键来启动遥控器添加和删除,接收到有效遥控器时就发送一个脉冲给主机。
遥控模块会保留最后一次添加遥控器时的通讯模式,此后接收到有效遥控器就会采用此通讯模式,即使重新上电也是如此。所以,如果采用UART或者自定义协议通讯,就请不要用按键添加遥控器。
1.UART通信协议1.1 UART通信接线图
l 串口波特率:9600。
l 主控MCU和遥控模块的RXD/TXD交叉连接。
l 主控MCU的RXD脚需要有下降沿中断唤醒功能,用以遥控接收到有效遥控器后唤醒主控MCU。如果此引脚没有唤醒功能,可以把RXD脚同时并接到其他具有唤醒功能的引脚,如下图所示(INT0具有下降沿唤醒功能)。
1.2帧结构
通信帧结构:
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
N |
1字节 |
N字节 |
1字节 |
l 同步字节:作为一条命令的开始;
l 长度:指出后续字节,从命令字节开始包括校验字节在内的长度;
l 命令:一个字节;
l 参数:N字节,例如可能是遥控器编号等;
l 校验和:从命令字节的所有字节的累加和取反;
l 主机→遥控模块和遥控模块→主机都遵循上述帧结构。
特别注意:
l 主机→遥控模块:LPRX315平时处于低功耗睡眠状态,因此在发送数据之前,请先发送0x00用来唤醒遥控模块,然后等待3毫秒再发送数据。
l 遥控模块→主机:同样是先发送0x00用来唤醒主机,延时3毫秒再发送数据。
2.自定义通讯协议2.1接线图
l IO_2必须具有下降沿唤醒的功能;
2.2时序图主机与遥控模块之间的双向通信都遵守下面的时序。
l 在发送数据前,先拉低通讯线4ms,然后发送数据;
l 高电平80us低电平160us代表数据位0;
l 高电平160us低电平80us代表数据位1;
l 高电平在前,低电平在后;
l 一个字节中,先发低位LSB,再发高位。
2.3帧结构通信帧结构:
1 | 2 | 3 |
命令参数 | 参数 | 校验和取反 |
1字节 | N字节 | 1字节 |
l 命令:一个字节;
l 校验和:从命令字节的所有字节的累加和取反;l 参数:N字节,例如可能是遥控器编号等;
l 主机→遥控模块和遥控模块→主机都遵循上述帧结构。
l 自定义通讯帧结构跟UART帧结构不同之处在于,这里没有同步字节0x5A和字节数,其它都是一样的。
3.按键模式如果不想修改主控MCU程序来与遥控模块通讯,那么最简单的办法就是用按键模式。
1) 添加遥控器:短按一次遥控模块上的设置按键,则遥控模块上的蓝灯开始闪烁。在此闪烁期间,按一下需要设置的遥控器上的任何一个按钮,就可以添加到遥控模块里。添加成功是蓝灯长亮1秒钟;
2) 删除遥控器:长按遥控模块上的设置按键5秒钟,看到蓝灯闪烁3次时,松开按键,然后会看到蓝灯长亮2次,就表示所有的遥控器都被删除了。不支持删除单个遥控器;
3) 接收到有效遥控器:RXD脚平时为低电平,TXD脚平时为高电平。接收到有效遥控器后,RXD脚输出500mS高电平,TXD脚输出500mS低电平。
二、通信命令详解
1.命令列表
主机发送 |
遥控模块应答 |
||
添加遥控 |
0xC0 |
该命令发出后,模块接收到之后马上应答0x08,然后等待遥控信号10秒,收到有效遥控信号则添加 |
|
0xE0 |
接收成功 |
||
0xE1 |
添加成功,可继续添加下一个 |
||
0xE2 |
存储满,并退出 |
||
0xE3 |
遥控已存在(不退出) |
||
0xE4 |
指定位置非空,已经有遥控器 |
||
修改 |
0xC1 |
跟添加遥控器的应答相同 |
|
删除单个遥控 |
0xC2 |
该命令发出后,模块接收到之后马上应答0x08,然后等待遥控信号10秒,收到有效遥控信号自动删除 |
|
0xE5 |
删除成功,可继续删除下一个 |
||
0xE6 |
遥控器不存在(可能已删除),可继续删除下一个 |
||
删除所有遥控 |
0xC3 |
||
0xE8 |
所有遥控删除成功 |
||
提取已存遥控器数量 |
0xC4 |
||
0xEA |
已注册遥控器数量 |
||
提取空位数量 |
0xC5 |
||
0xEB |
空余位置数量 |
||
退出 |
0xCF |
用于退出正在进行添加或删除过程 |
|
其他 |
0xE9 |
接收到有效遥控 |
|
0xEC |
参数错误 |
||
0xED |
超时退出 |
||
0xEF |
通用返回 |
用于添加新的遥控器,并保存到遥控模块中。
主机→模块
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
4 |
0xC0 |
0xxxyy遥控编号,0x0000表示不指定组号 |
1字节 |
例如:0x00 延时3ms 0x5A 04 C0 00 00 3F
C0+00+00=C0 /C0=3F
l 遥控编号为0x0000表示不指定组号,由遥控模块自动分配遥控器的组号。可以连续添加多个遥控器;
l 如果遥控编号不为0,则表示指定把遥控器添加到哪个组号,添加成功后就退出添加模式,不可连续添加。
l 如果指定的编号已经存在,则提示参数错误;
2.2修改遥控用于修改指定编号的遥控器。
主机→模块
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
4 |
0xC1 |
0xxxyy遥控编号,0x0000表示不指定组号 |
1字节 |
例如:0x00 延时3ms 0x5A 04 C1 00 05 39
l 如果遥控编号为0,则功能跟添加遥控器相同,可以连续添加多个遥控器;
l 如果编号不为0,则新的遥控器会覆盖掉指定编号的遥控器。修改成功后自动退出。
2.3删除单个遥控器用于删除遥控器,可直接删除指定编号的遥控器。
主机→模块
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
4 |
0xC2 |
0xxxyy遥控编号 |
1字节 |
例如:0x00 延时3ms 0x5A 04 C2 00 05 38
l 如果遥控编号为0,表示连续单个删除模式,接收到有效遥控器后(按遥控器按钮),则删除该遥控器;
l 如果遥控编号不为0,表示直接删除指定编号的遥控器(不需要按遥控器按钮),删除成功后退出。
2.4删除所有遥控器主机→模块
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
2 |
0xC3 |
无 |
1字节 |
例如:0x00 延时3ms 0x5A 02 C3 3C
2.5提取已存遥控器数量主机→模块
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
2 |
0xC4 |
无 |
1字节 |
例如:0x00 延时3ms 0x5A 02 C4 3B
2.6提取空余位置数量主机→模块
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
2 |
0xC5 |
无 |
1字节 |
例如:0x00 延时3ms 0x5A 02 C5 3A
2.7退出用来退出添加态或者删除态,进入低功耗休眠模式。
主机→模块
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
2 |
0xCF |
无 |
1字节 |
例如:0x00 延时3ms 0x5A 02 CF 30
3.遥控模块→主机应答详解下面主要讲解带参数的应答,不带参数的应答请参考“接收成功”。
3.1接收成功表示成功接收到主机命令。
模块→主机
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
2 |
0xE0 |
无 |
1字节 |
例如:0x00 延时3ms 0x5A 02 E0 1F
3.2添加成功模块→主机
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
4 |
0xE1 |
0xxxyy遥控编号:添加的遥控器被保存到此编号 |
1字节 |
例如:0x00 延时3ms 0x5A 04 E1 00 01 1D
3.3删除成功
模块→主机
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
4 |
0xE5 |
0xxxyy遥控编号:成功删除此编号的遥控器 |
1字节 |
例如:0x00 延时3ms 0x5A 04 E5 00 01 19
3.4返回已注册遥控器数量
模块→主机
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
4 |
0xEA |
0xxxyy遥控器数量,高字节在前 |
1字节 |
例如:0x00 延时3ms 0x5A 04 EA 00 60 B5,0x60表示96个遥控器
3.5返回空余编号数量模块→主机
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
4 |
0xEB |
0xxxyy空余编号数量,高字节在前 |
1字节 |
例如:0x00 延时3ms 0x5A 04 EB 00 18 FC,0x18表示24个空余编号
3.6接收到有效遥控器模块→主机
0 |
1 |
2… |
||
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
0x5A |
4 |
0xE9 |
0xxxyy:遥控器编号 |
1字节 |
例如:0x00 延时3ms 0x5A 04 E9 00 05 11
三、声光提示表遥控模块采用蓝色LED来指示各种状态。
蓝灯 |
含义 |
短闪2次 |
l 指定编号已存在(指定编号添加) l 删除未注册过的遥控器 l 重复添加遥控器 l 存储器已满 |
短闪3次 |
l 准备删除全部遥控器(长按设置按键5秒钟) l 无效的遥控器 |
长亮1次 |
l 添加成功 l 检测到有效遥控器(遥控开门) |
长亮2次 |
l 删除成功 |
全部0条评论
快来发表一下你的评论吧 !