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% |
4.管脚描述
管脚标号 |
管脚名称 |
描述 |
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.1帧结构
通信帧结构:
|
0 |
1 |
2… |
|
同步字节 |
长度 |
命令 |
参数 |
校验和取反 |
05A |
N |
1字节 |
N字节 |
1字节 |
l 同步字节:作为一条命令的开始;
l 长度:指出后续字节,从命令字节开始包括校验字节在内的长度;
l 命令:一个字节;
l 参数:N字节,例如可能是遥控器编号等;
l 校验和:从命令字节的所有字节的累加和取反;
l 主机→遥控模块和遥控模块→主机都遵循上述帧结构。
特别注意:
l 主机→遥控模块:LPRX315平时处于低功耗睡眠状态,因此在发送数据之前,请先发送000用来唤醒遥控模块,然后等待3毫秒再发送数据。
l 遥控模块→主机:同样是先发送000用来唤醒主机,延时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… |
|
命令 |
参数 |
校验和取反 |
1字节 |
N字节 |
1字节 |
l 命令:一个字节;
l 参数:N字节,例如可能是遥控器编号等;
l 校验和:从命令字节的所有字节的累加和取反;
l 主机→遥控模块和遥控模块→主机都遵循上述帧结构。
l 自定义通讯帧结构跟UART帧结构不同之处在于,这里没有同步字节05A和字节数,其它都是一样的。
3.按键模式
如果不想修改主控MCU程序来与遥控模块通讯,那么最简单的办法就是用按键模式。
1) 添加遥控器:短按一次遥控模块上的设置按键,则遥控模块上的蓝灯开始闪烁。在此闪烁期间,按一下需要设置的遥控器上的任何一个按钮,就可以添加到遥控模块里。添加成功是蓝灯长亮1秒钟;
2) 删除遥控器:长按遥控模块上的设置按键5秒钟,看到蓝灯闪烁3次时,松开按键,然后会看到蓝灯长亮2次,就表示所有的遥控器都被删除了。不支持删除单个遥控器;
3) 接收到有效遥控器:RXD脚平时为低电平,TXD脚平时为高电平。接收到有效遥控器后,RXD脚输出500mS高电平,TXD脚输出500mS低电平。
二、通信命令详解
1.命令列表
|
主机发送 |
遥控模块应答 |
|
添加遥控 |
0C0 |
|
该命令发出后,模块接收到之后马上应答008,然后等待遥控信号10秒,收到有效遥控信号则添加 |
|
0E0 |
接收成功 |
|
|
0E1 |
添加成功,可继续添加下一个 |
|
|
0E2 |
存储满,并退出 |
|
|
0E3 |
遥控已存在(不退出) |
|
|
0E4 |
指定位置非空,已经有遥控器 |
|
修改 |
0C1 |
|
跟添加遥控器的应答相同 |
删除单个遥控 |
0C2 |
|
该命令发出后,模块接收到之后马上应答008,然后等待遥控信号10秒,收到有效遥控信号自动删除 |
|
0E5 |
删除成功,可继续删除下一个 |
|
|
0E6 |
遥控器不存在(可能已删除),可继续删除下一个 |
|
删除所有遥控 |
0C3 |
|
|
|
0E8 |
所有遥控删除成功 |
|
提取已存遥控器数量 |
0C4 |
|
|
|
0EA |
已注册遥控器数量 |
|
提取空位数量 |
0C5 |
|
|
|
0EB |
空余位置数量 |
|
退出 |
0CF |
|
用于退出正在进行添加或删除过程 |
其他 |
|
0E9 |
接收到有效遥控 |
|
|
0EC |
参数错误 |
|
|
0ED |
超时退出 |
|
|
0EF |
通用返回 |