arm lora透传评估板-威尼斯人网址

威尼斯人网址
400-828-1488
您当前的位置>威尼斯人网址-威尼斯5139手机版>威尼斯5139手机版的产品中心>工程应用
arm lora透传评估板
发布日期:2018-03-27   点击次数:5942
系统简介
      arm lora 透传评估板是专为用户设计,能够简单、易用、快捷的进行 lora 通信技术开发评估,以便用户能够花极短的时间测试和了解 lora 通信技术与自身业务应用场景的结合性。
      本评估板具有结构紧凑、接口多样、使用方便,采用高性能工业级芯片威尼斯5139手机版的解决方案实现 lora 网络数据传输,可快速开发部署 lora 网络,实现远距离低功耗的控制和数据采集的目的。
  • 软件说明
  • 模块说明

1.目录结构

driver:mcu 驱动文件
example:测试工程所在目录
kernel:rtos 系统内核
libs:通用库文件
mcu:mcu 相关配置文件
midware:主板相关驱动实现


2.开发环境

      评估板例程采用 iar 编译环境 arm 版,版本需要 7.7 及以上版本,以便支持对应 mcu 的相关历程及配置。相关软件请自行在威尼斯5139手机版官网下载和安装:
      仿真器可采用 j-link 仿真或 iar 支持的相关仿真器,采用 swd 接口。


3.调试说明

本评估板使用 mcu 仿真的话,需要注意两点。
      1.mcu 深度休眠时无法使用 swd 调式,需要复位芯片以恢复 swd 调式口功能进行程序仿真。
      2.mcu 启动支持 boot 选择开关,对应的端口是 pd03,pd03 低电平则为调式模式,高电平为烧录模式。
      在本评估板中,pd03 默认通过跳线帽可以短接到 lora 透传模块(m-kl9) 的对应 rst 引脚上,但是注意 rst 必须拉高才能保证 m-kl9 模块正常运行,如果拉低则会导致 m-kl9 掉电(原因参考 5 复位介绍)。因此如果需要控制 m-kl9 的 rst 引脚,在仿真前,需要断开 pd03 的跳冒以便评估板进入调式模式(原因参考上述调式说明 2)。仿真启用后再接上跳线帽,在主程序中,操作完 rst引脚后保持高电平。


4.例程说明

      例程经过很好的代码封装,模块化耦合度低,且使用了 rtos 系统(rtx),能够方便做各种任务扩展和调度。rtx 是 arm 公司出品的具有良好的代码移植性和优秀的 ram 资源消耗,相关操作使用学习请参考 arm 公司相关 rtx 介绍。
      例程主要业务层(应用层)代码如下:

      main 文件为主程序入口,统一的 app 函数接口,具体实现可自定义源文件, 通过 app 统一接口定义,可以方便使用统一的系统启动工程,而根据自己的业务需求自定义自身的程序。比如此处的例程主代码为 app_example.c。
      工程整体代码引用如下所示。midware 为硬件驱动成,net 为对用的 lora 无线模块操作接口,已实现了 at 命令的函数封装。
      上述代码中:
      bsp 前缀的主要为 mcu 级别的底层驱动

      dev 前缀的代码主要为与主板相关的设备驱动代码


5.复位及唤醒

      lora  透传模块在启动后会自动复位,也可以在任何需要的时间对其进行复位,具体方法是给 resetn 引脚施加一个不小于 100ms 的低电平。

模块复位时序
      模块在 at 模式下,可以通过 at 指令控制模块进入休眠状态。当需要唤醒时可通过 wake_up 引脚输入一个下降沿来唤醒模块。为了节约功耗,正常工作时可将此引脚做拉低处理。
模块唤醒时序
      本评估板采用的 lora 模块默认是透传模式,如果需要进入配置(at)模式,则可以通过命令进行切换。


6.代码及流程图

      评估板主要实现了对 m-kl9 的操作,为了便于使用测试,评估板例程实现了一种透明方式对 m-kl9 模块的操作。数据流程图如下所示。

      如果用户需要对 m-kl9 做特定的参数配置或其它操作,可以参考本评估板例程进行修改。
      主要操作的接口代码如下
      /* kl9 初始化,主要初始化 at 命令操作函数接口 */
      bool kl9_init(struct atcmd_handle_t *handle);
      /* kl9 数据发送 */
      bool kl9_send(bool direct, uint8_t *data, uint32_t len);
      /* kl9 退出透传模式(即进入配置命令(at)模式) */ 
      bool kl9_exittransparent(void);
      /* kl9 检测是否 at 模式*/ 
      bool kl9_checkat(void);
      /* kl9 at 参数设置,该函数实现了部分参数设置的代码,如需要其他更多的at 命令操作参数设置,可参考改写 */
      bool kl9_atset(at_cmd_type type, uint32_t value);
      程序整体流程图
1.概述
      lora 透传模块 m-kl9 支持 at 命令配置参数,配置完后自动保存。
      默认运行自动识别 at 引脚电平,如果电平为高,则 at 模式(模块不开接收);如果电平为低,则为透传模式(模块自动开启接收)。只有在 at 模式下才能修改参数,因此,首先需要确保模块处于 at 命令模式。
2.at模式切换
      at 模式与透传模式切换支持硬件和软件两种方式。
      硬件方式:通过 at 引脚高低电平控制(根据外接的 io 电平判断)。
      软件方式:通过+++(退出透传)和 att(进入透传)命令切换模式。
      注意,+++命令不带回车换行符,其它 at 命令末尾都带回车换行符。另外,+++命令操作后并不会保存,如果系统复位,则会恢复成根据 at 引脚电平来确定模块所处的模式。
      请根据需要来切换 at 模块和透传模式。
3.使用方式
      方式 1:如果项目模块量少,参数配置完后不变化,可以一次性配置好,后面模块上电即用,不用担心配置的问题,只需采用透传方式或 at 命令方式直接发送数据即可。
      方式 2:如果需要软件控制,随时改变,则按如下流程。
      步骤 1:系统上电或复位运行,首先通过模块 rst 引脚复位 m-kl9,具体操作参考 kl9 相关数据手册。
      步骤 2:通过 at 命令检测 m-kl9 是否 at 模式,如果是 at 模式,则会立即返回 ok,如果不是,则无返回值(即透传模式),该 at\r\n 命令会当做数据发送出去。
      步骤 3:at 命令是否有响应可定义一个超时时间 1s(除发送命令外),其它
at 命令响应时间应该不超过 1 秒,根据 2 判断结果,如果当前是透传,则可以通过+++命令或拉高 at 引脚,退出透传模式。
      步骤 4:然后再次执行 2 检测是否 at 模式,如果是则执行 5,否则继续 2, 重试多次不成功请检查硬件。
      步骤 5:执行 at 对应的命令配置参数,正常返回值是\r\nok\r\n,可通过返回字符串判断是否配置成功,否则再次尝试,重试多次不成功请检查硬件。
      步骤 6:配置完成后,切换回透传模式,直接发送数据即可(透传模式无返回值),如果需要通过返回值判断是否发送成功,则可以不切换回透传模式,直接通过 at+tx=hex dat\r\n 方式发送数据,发送成功则返回\r\nok\r\n。
      步骤 7:如果模块发送完成后,需要休眠系统,可以按照 2 步骤,切换回 at
模式,通过 at+el 命令来进入休眠。
      步骤 8:休眠结束后,如果需要提前唤醒(或从永久休眠唤醒),则通过操作 wakeup 引脚来唤醒设备。具体参照  m-kl9 数据手册的唤醒操作。也可以通过掉电方式来进行节电处理,主控 mcu 休眠结束后重新上电 m-kl9。
      总之,系统操作的原则就是,at 命令需要先判断 m-kl9 处于 at 模式,需要知道执行结果,则判断返回值。正常情况下,用软件配置参数后,如果不更改, 参数是保存的,上述流程只需要配置参数成功执行一遍,后面周期性执行业务数据发送即可。
网站地图