LPRX315超低功耗遥控模块与滚码遥控器配合,实现遥控开门等操作。
Ø超低功耗,特别适合于电池供电的场合;
Ø支持极低功耗模式:如果遥控模块里没有添加遥控器,则上电1分钟后就进入极低功耗模式,电流<5uA;
Ø支持双窗口滚码遥控,真正防止重放攻击(市面上很多遥控器用了滚码芯片,但是接收模块却没有做防重放攻击处理,其效果就跟固定码遥控器一样了);
Ø支持UART通信;
Ø支持自定义协议通信,不占用主机的串口;
工作电压 | 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或者自定义协议通讯,就请不要用按键添加遥控器。

l 串口波特率:9600。
l 主控MCU和遥控模块的RXD/TXD交叉连接。
l 主控MCU的RXD脚需要有下降沿中断唤醒功能,用以遥控接收到有效遥控器后唤醒主控MCU。如果此引脚没有唤醒功能,可以把RXD脚同时并接到其他具有唤醒功能的引脚,如下图所示(INT0具有下降沿唤醒功能)。

通信帧结构:
| 0 | 1 | 2… |
|
同步字节 | 长度 | 命令 | 参数 | 校验和取反 |
0x5A | N | 1字节 | N字节 | 1字节 |
l 同步字节:作为一条命令的开始;
l 长度:指出后续字节,从命令字节开始包括校验字节在内的长度;
l 命令:一个字节;
l 参数:N字节,例如可能是遥控器编号等;
l 校验和:从命令字节的所有字节的累加和取反;
l 主机→遥控模块和遥控模块→主机都遵循上述帧结构。
特别注意:
l 主机→遥控模块:LPRX315平时处于低功耗睡眠状态,因此在发送数据之前,请先发送0x00用来唤醒遥控模块,然后等待3毫秒再发送数据。
l 遥控模块→主机:同样是先发送0x00用来唤醒主机,延时3毫秒再发送数据。

l IO_2必须具有下降沿唤醒的功能;
主机与遥控模块之间的双向通信都遵守下面的时序。
l 在发送数据前,先拉低通讯线4ms,然后发送数据;
l 高电平80us低电平160us代表数据位0;
l 高电平160us低电平80us代表数据位1;
l 高电平在前,低电平在后;
l 一个字节中,先发低位LSB,再发高位。
通信帧结构:
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低电平。
二、通信命令详解
| 主机发送 | 遥控模块应答 |
|
添加遥控 | 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 如果指定的编号已经存在,则提示参数错误;
用于修改指定编号的遥控器。
主机→模块
| 0 | 1 | 2… |
|
同步字节 | 长度 | 命令 | 参数 | 校验和取反 |
0x5A | 4 | 0xC1 | 0xxxyy遥控编号,0x0000表示不指定组号 | 1字节 |
例如:0x00 延时3ms 0x5A 04 C1 00 05 39
l 如果遥控编号为0,则功能跟添加遥控器相同,可以连续添加多个遥控器;
l 如果编号不为0,则新的遥控器会覆盖掉指定编号的遥控器。修改成功后自动退出。
用于删除遥控器,可直接删除指定编号的遥控器。
主机→模块
| 0 | 1 | 2… |
|
同步字节 | 长度 | 命令 | 参数 | 校验和取反 |
0x5A | 4 | 0xC2 | 0xxxyy遥控编号 | 1字节 |
例如:0x00 延时3ms 0x5A 04 C2 00 05 38
l 如果遥控编号为0,表示连续单个删除模式,接收到有效遥控器后(按遥控器按钮),则删除该遥控器;
l 如果遥控编号不为0,表示直接删除指定编号的遥控器(不需要按遥控器按钮),删除成功后退出。
主机→模块
| 0 | 1 | 2… |
|
同步字节 | 长度 | 命令 | 参数 | 校验和取反 |
0x5A | 2 | 0xC3 | 无 | 1字节 |
例如:0x00 延时3ms 0x5A 02 C3 3C
主机→模块
| 0 | 1 | 2… |
|
同步字节 | 长度 | 命令 | 参数 | 校验和取反 |
0x5A | 2 | 0xC4 | 无 | 1字节 |
例如:0x00 延时3ms 0x5A 02 C4 3B
主机→模块
| 0 | 1 | 2… |
|
同步字节 | 长度 | 命令 | 参数 | 校验和取反 |
0x5A | 2 | 0xC5 | 无 | 1字节 |
例如:0x00 延时3ms 0x5A 02 C5 3A
用来退出添加态或者删除态,进入低功耗休眠模式。
主机→模块
| 0 | 1 | 2… |
|
同步字节 | 长度 | 命令 | 参数 | 校验和取反 |
0x5A | 2 | 0xCF | 无 | 1字节 |
例如:0x00 延时3ms 0x5A 02 CF 30
下面主要讲解带参数的应答,不带参数的应答请参考“接收成功”。
表示成功接收到主机命令。
模块→主机
| 0 | 1 | 2… |
|
同步字节 | 长度 | 命令 | 参数 | 校验和取反 |
0x5A | 2 | 0xE0 | 无 | 1字节 |
例如:0x00 延时3ms 0x5A 02 E0 1F
模块→主机
| 0 | 1 | 2… |
|
同步字节 | 长度 | 命令 | 参数 | 校验和取反 |
0x5A | 4 | 0xE1 | 0xxxyy遥控编号:添加的遥控器被保存到此编号 | 1字节 |
例如:0x00 延时3ms 0x5A 04 E1 00 01 1D
模块→主机
| 0 | 1 | 2… |
|
同步字节 | 长度 | 命令 | 参数 | 校验和取反 |
0x5A | 4 | 0xE5 | 0xxxyy遥控编号:成功删除此编号的遥控器 | 1字节 |
例如:0x00 延时3ms 0x5A 04 E5 00 01 19
模块→主机
| 0 | 1 | 2… |
|
同步字节 | 长度 | 命令 | 参数 | 校验和取反 |
0x5A | 4 | 0xEA | 0xxxyy遥控器数量,高字节在前 | 1字节 |
例如:0x00 延时3ms 0x5A 04 EA 00 60 B5,0x60表示96个遥控器
模块→主机
| 0 | 1 | 2… |
|
同步字节 | 长度 | 命令 | 参数 | 校验和取反 |
0x5A | 4 | 0xEB | 0xxxyy空余编号数量,高字节在前 | 1字节 |
例如:0x00 延时3ms 0x5A 04 EB 00 18 FC,0x18表示24个空余编号
模块→主机
| 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 删除成功 |