RIL专门为嵌入式平台开发的无线通信模块框架

《开源精选》是我们分享 Github、Gitee 等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的RIL是一款专门为嵌入式平台开发的无线通信模组(GSM/GPRS/CatM1/NB-Iot)管理软件。它与其它大型框架(例如Android RIL、Wince RIL)不同的是,它被设计成应用于资源受限物联网终端设备(单片机+无线模组的方案),并提供物联网通信所需的基本功能,包含网络注册、连接管理、短信收发及 Socket 通信。

基本特性

  • • 包含网络注册、连接、短信收发及 Socket 通信管理等基本功能。

  • • 模组驱动使用插件化方式管理,同一个系统中能够挂载适配多个模组,并能够动态选择模组驱动程序。

  • • 通过简单的修改就能够适用于不同的 RTOS 平台。

  • • 内置多种情况下的异常处理机制,保证模组稳定运行。

  • • 内置常用组件,如带断点续传功能的 HTTP 文件下载、TFTP 传输、MQTT 等。

系统要求

为了使RIL能够正常运行,目标系统必须满足以下要求:

  • • ROM 资源:至少 13.5K Bytes(取决于挂载的模组个数及使用的组件)

  • • RAM 资源:至少 1.2K Bytes(取决于socket创建数量)

  • • RTOS 及堆栈: RIL需要运行在两个任务中,每个任务的堆栈至少 256 Bytes

  • • 编译器:由于 RIL 使用了一些 C99 的特性(柔性数组、内联),所以编译器需要开启对 C99 的支持。对于 IAR,它默认是打开的,而 Keil MDK 需要手动增加编译选项(–c99 –gnu)

软件架构

RIL专门为嵌入式平台开发的无线通信模块框架

环境准备

下面demo工程使用的平台及软硬件环境:

  • • MCU :STM32F401RD

  • • IDE :IAR7.4、Keil MDK 4.72a

  • • Module : EC21

  • • RTOS : Free-RTOS V202012.00

工程配置

下面视图展示了所有 RIL 子目录的内容,其中 ril 子文件夹包含 ril 服务相关功能,模组驱动,使用案例。demo 用于ril演示工程。

ril

|───docs          使用文档
|───demo          演示工程
│   │───driver    驱动文件
│   │───lib       MCU外设库文件
│   │───misc      常用功能库
|   |───os        操作系统相关
|   |───project   工程文件
|   └───user      
│       └─── samples  演示案例(TCP/UDP/HTTP/SMS)
│       └─── tasks    系统任务
└───ril
    │───build    工程文件,用于输出RIL库文件
    │───case     内置组件(HTTP/TFTP/MQTT)
    │───modules  模组驱动文件(ec21,bg96,hl8518 ...)
    │───common   通用库文件
    |───core     ril内核服务相关
    └───port     RTOS相关移植接口

项目用到.h头文件

在使用时您应确保工程头文件路径含有以下目录:

  • • ril/core/inc

  • • ril/common/inc

  • • ril/port

  • • ril/case/(可选目录,如果你不需要ril内置的组件则不需要包含此项)

项目用到.c源文件

一般而言,需要包含 RIL 的内核 c 文件、通用库文件、要使用的模组驱动文件以及可选的内置组件。

  • • 文件夹  ril/core/src 中的所有 c 文件

  • • 文件夹  ril/common/src 中的所有 c 文件

  • • 用到的模组驱动,根据硬件需要在文件夹 ril/modules 中选择对应的文件

  • • RTOS 系统相关,根据 OS 平台选择文件夹 ril/port 中选择对应的文件

生成库文件

为了加快你所在的项目编译速度,可以预先将RIL源码包编译成库形式,ril/build 目录提供了 IAR 及 MDK 库编译工程,进入工程之前需要先选择对应的目标平台(如Cotext-M4),然后点击 build 或者 make 按钮,这样就在 ril/output 目录下生成了对应的库文件。

启动RIL

一个无线模组连接服务器前需要先经过开机、检测 SIM 卡、频段及制式配置(如果有需要)、网络注册、建立 PDP 并激活等一系列复杂步骤, 大致流程图如下所示:

RIL专门为嵌入式平台开发的无线通信模块框架

上面的流程读者只需要做一个大概的了解,这些过程已经由 RIL 内部的状态机自动完成,用户只需要按下面的步骤进行操作即可。

  • • 创建 RIL 任务,包括主任务及 AT 命令解析任务

  • • 使用接口适配器及配置参数初始化 RIL

  • • 选择硬件对应的模组型号

  • • 打开模组设备

  • • 启用网络连接


—END—

开源地址:https://gitee.com/moluo-tech/ril


原文始发于微信公众号(开源技术专栏):RIL专门为嵌入式平台开发的无线通信模块框架

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/53747.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!