利用DEMO系统 评估LoRa终端与网关
一. 系统意义
为帮助客户有效评估LoRa终端(
http://www.rimelink.com/pd.jsp?id=2)和网关(
http://www.rimelink.com/pd.jsp?id=14),我们设计一个DEMO板,该DEMO板需要满足:简单易用,成本低廉,稳定可靠,开放设计资料(免费下载源代码:
http://www.rimelink.com/nd.jsp?id=38&_np=105_315)。达到:
1. 帮助用户与LoRa终端硬件接线;
2. 帮助用户与LoRa终端解析软件协议帧;
3. 有效评估LoRa终端的性能(通信距离、能耗等)和LoRa网关功能。
如此一来,客户可以快速搭建一个物联网系统,该系统如下图所示,可以将温湿度采集到云服务器,通过智能手机查看。
二. 产品框架
DEMO板的整体框架如下图所示,MCU选用STM8L151C8T6,达到开发和采购低成本;温湿度传感器选用SHT10,它的成本较低;电池盒安装2节AAA干电池,贴片方式焊接在电路板上;miniUSB接口方便接入5V供电;2.0mm圆孔8芯排座用于安装LoRa终端。
三. 硬件设计
四. 软件设计
1. 软件开发环境
开发语言为ASNI C,IDE为IAR for STM8,为降低复杂度没有使用操作系统。
2. Demo系统逻辑
Demo系统的主程序逻辑如上图所示,非常简洁,基于最简单的软件结构:while(1)无限循环。经过实测:Demo系统采集SHT10的12位湿度约用时62毫秒,采集14位温度约用时216毫秒。用户每3秒采集一次温湿度数据,再传输给RNDU470T。
3. UART驱动时序
RNDU470T是超低功耗产品,它大部分时间都处于休眠状态,因此Demo系统需要“唤醒”RNDU470T才能发送UART数据帧;同理,考虑Demo系统也可能处于休眠状态,RNDU470T在发送UART数据帧也通过信号线“唤醒”用户系统。具体时序请查看《锐米LoRa终端说明书》。
如下图所示,当Demo系统发送UART数据帧时,先置高P7引脚,然后启动UART端口发送序列,当发送结束时再拉低P7引脚;置高P7引脚(T0时刻)与启动UART端口发送(T1时刻)有一个延时Tx prepare time,它的最小值为100微秒。
4. UART通信帧解析算法
RNDU470T的UART通信帧格式如下图所示,它是变长数据帧,帧具体的定义请参考《锐米LoRa终端说明书》。
为简化系统设计,我们强烈建议您采用“状态机”来解析该UART数据帧,并且把解析工作放在ISR(中断服务程序)完成,仅当接收到最后一个字节(0x0D)时,再将整个数据帧提交给进程(Demo系统为main程序)处理。
该解析状态机的原理如下图所示:
5. 代码工程
整个工程文件如下图所示:
main.c:Demo系统的整体逻辑代码;
SHT7x.c/.h:SHT10驱动代码;
stm8l15x_it.c/.h:MCU中断服务程序注册文件
timer.c/.h:定时器驱动代码;
uart.c/.h:UART驱动代码。
Project下存放基于IAR开发环境的工程文件;
STM8L15x_StdPeriph_Driver:ST公司官方驱动库文件。
您的留言或需求: