手机接口库 - FreeRTOS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

手机接口库

介绍

蜂窝接口库通过统一的 API 公开了一些流行的蜂窝调制解调器的功能。目前,该项目包含这三种蜂窝调制解调器的库。

当前版本的蜂窝接口库封装了这些蜂窝调制解调器提供的 TCP 堆栈。他们都实施同样的制服蜂窝接口库 API. 该 API 隐藏了 AT 命令的复杂性,并向 C 程序员公开了类似套接字的接口。

尽管应用程序可以选择直接使用蜂窝接口 API,但它并不是为此目的而设计的。在典型的 FreeRTOS 系统中,应用程序使用更高级别的库,例如coreMQTT库和CoreHttp图书馆,以便与其他端点进行沟通。这些更高级别的库使用抽象界面,传输接口,以发送和接收数据。传输接口可以在蜂窝网络接口库之上实现;手机接口演示使用这样的实现。

大多数蜂窝调制解调器或多或少地实现了由3GPP TS v27.007标准。该项目提供了实施中的这样的标准 AT 命令可重用的通用组. 该项目中的三个蜂窝接口库都利用了通用代码。每个调制解调器的库仅实现特定于供应商的 AT 命令,然后公开完整的蜂窝接口库 API。

实施 3GPP TS v27.007 标准的通用组件是按照以下代码质量标准编写的:

  • GNU 复杂性分数不超过 8

  • MISRA C: 2012 编码标准。任何偏离标准的情况都会在标有 “隐蔽性” 的源代码注释中记录。

依赖项和要求

对蜂窝接口库没有直接依赖关系。但是,以太网、Wi-Fi 和蜂窝网络不能在 FreeRTOS 网络堆栈中共存。开发人员必须选择其中一个网络接口才能与安全套接字库.

移植

有关移植蜂窝接口库到您平台的信息,请参阅移植蜂窝接口库中的FreeRTOS 移植指南.

使用内存

手机接口库的代码大小(使用 GCC 为 ARM Cortex-M 生成的示例)
文件 使用-O1 优化 使用-OS 优化
cellular_3gpp_api.c 6.3K 5.7K
cellular_3gpp_urc_handler.c 0.9K 0.8K
cellular_at_core.c 1.4K 1.2K
cellular_common_api.c 0.5K 0.5K
cellular_常用.c 1.6K 1.4K
cellular_pkthandler.c 1.4K 1.2K
cellular_pkti.c 1.8K 1.6K
估计总计 13.9K 12.4K

开始使用

下载源代码

源代码可以作为 FreeRTOS 库的一部分下载,也可以单独下载。

要使用 HTTPS 从 Github 克隆库:

git clone https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface.git

使用 SSH:

git clone git@github.com:FreeRTOS/FreeRTOS-Cellular-Interface.git

文件夹结构

在此存储库的根目录中,您将看到以下文件夹:

  • source:实现 3GPP TS v27.007 定义的标准 AT 命令的可重复使用的通用代码

  • modules:针对每个蜂窝调制解调器实现非 3GPP AT 命令的供应商特定代码

  • doc: 文档

  • test: 单元测试和 cbmc

  • tools: Coverity 静态分析和 cMOCK 的工具

配置和构建库

蜂窝接口库应作为应用程序的一部分构建。要执行此操作,您必须提供某些配置。这些区域有:Freeertos_cellular_Interface_Windows_模拟器项目提供了示例了解如何配置构建。您可以在移动 API 参考.

请参阅移动接口了解更多信息的页面。

将蜂窝接口库与 MCU 平台集成

蜂窝接口库使用抽象的接口在 MCU 上运行传输界面,以便与蜂窝调制解调器进行通信。还必须在 MCU 平台上实施通信接口。通信接口的最常见实现通过 UART 硬件进行通信,但也可以通过其他物理接口(例如 SPI)实现。有关传输接口的文档可以在移动库 API 参考. 以下是 Comm 接口的示例实现: