通过编写嵌入式系统入门边缘计算

Alan Smithee 的头像

·

·

·

2,386 次阅读

用于操控无线调制解调器的 AT 设备包是 RTOS 最流行的扩展功能之一。

RTOS 是一个开源的 嵌入式设备操作系统,由 RT-Thread 开发。它为开发者提供了标准化的、友好的基础架构,开发者可以基于各种设备编写代码,它包含大量有用的类库和工具包,使开发过程更加便捷。

RTOS 使用的是模块方式,以便于扩展,这一点跟 Linux 类似。各种软件包可以让开发者将 RTOS 用于任何想要的目标设备。RTOS 最常用的一种扩展是 AT 设备包,它包含各种不同 AT 设备(例如调制解调器)的移植文件和示例代码。

在超过 62,000 次下载中(截止至撰写本文时),最流行的 RTOS 扩展之一是 AT 设备包,其中包括用于不同 AT 设备的移植文件和示例代码。

关于 AT 命令

起初,AT 命令是一个协议,用于控制拨号调制解调器。随着调制解调器技术发展到较高的带宽,它仍然可以用作轻量级而高效的设备控制协议,主流的移动电话厂商也联手开发了一系列 AT 命令,用于控制移动电话上的 GSM 模块。

如今,AT 命令仍然在网络通信领域具有通用性,很多设备,例如 WiFi、蓝牙、4G,都支持 AT 命令。

如果你正在创建用于边缘计算输入、监控或物联网(IoT)的专用设备,则你可能接触到一些 RTOS 支持的 AT 设备,包括 ESP8266、ESP32、M26、MC20、RW007、MW31、SIM800C、W60X、SIM76XX、A9/A9G、BC26、AIR720、ME3616、M 6315、BC28 和 EC200X。

RT-Thread 包含套接字抽象层(SAL)组件,SAL 实现了多种网络协议和接口的抽象,为上层提供了一系列标准的 BSD 套接字 API。SAL 进而接管了 AT 的套接字接口,所以开发者只需要考虑网络应用层提供的网络接口。

这个软件包实现了设备(包括上述设备)上的 AT 套接字功能,支持通过标准套接字接口以 AT 命令的形式通信。RT-Thread 编程指南 中就有关于这些功能的详细介绍。

at_device 软件包是在 LGPLv2.1 许可证下分发的,借助 RT-Thread Env 工具 可以方便地获取到。该工具包含一个配置器和一个包管理器,它们分别用于配置内核和组件功能,可以用于定制组件并管理在线包。有了这些工具,开发者可以像搭积木一样构建系统。

获取 AT 设备包

为了使用配置了 RTOS 的 AT 设备,你必须启用 AT 组件库和 AT 套接字功能,需要:

  • RT_Thread 4.0.2+
  • RT_Thread AT 组件 1.3.0+
  • RT_Thread SAL 组件
  • RT-Thread netdev 组件

AT 设备包已经针对多种版本进行了相应的更新。版本不同,配置选项也相应地不同,因此必须针对相应的系统版本进行适配。目前最常用的 AT 设备包版本有:

  • V1.2.0: 针对低于 V3.1.3 的 RT-Thread,V1.0.0 的 AT 组件
  • V1.3.0: 针对低于 V3.1.3 的 RT-Thread,V1.1.0 的 AT 组件
  • V1.4.0: 针对低于 V3.1.3 或等于 V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件
  • V1.5.0: 针对低于 V3.1.3 或等于 V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件
  • V1.6.0: 针对低于 V3.1.3 或等于 V4.0.1 的 RT-Thread,V1.2.0 的 AT 组件
  • V2.0.0/V2.0.1: 针对高于 V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件
  • 最新版: 针对高于 V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件

获取正确的版本的过程主要是在生成菜单时自动完成的。它基于现有的系统环境提供最合适的 AT 设备包。

正如前文提到的,不同的版本需要不同的配置选项。例如,

RT-Thread online packages  >
        -*- AT DEVICE: RT-Thread AT component porting or samples for different device  
        [ ]   Enable at device init by thread
              AT socket device modules (Not selected, please select)  >

按线程启用 AT 设备初始化的选项决定了配置是否创建一个单独的线程来初始化设备网络。

2.x 版本支持同时启用多个 AT 设备:

RT-Thread online packages  >
        -*- AT DEVICE: RT-Thread AT component porting or samples for different device
        [*]   Quectel M26/MC20  >
        [ ]   Espressif ESP32  >
          [*]   Enable initialize by thread
          [*]   Enable sample
          (realthread) WIFI ssid
          (12345678) WIFI password
          (uart2) AT client device name
          (512)   The maximum length of receive line buffer
        [ ]   Realthread RW007  >
        [ ]   SIMCom SIM76XX  >
        [ ]   WinnerMicro W60X  >
        [ ]   Quectel BC26  >
        [ ]   GOSUNCN ME3616  >
        [ ]   Quectel BC28  >
        Version (latest)  >
    Network  >
    [ ]   Enable debug log output
    [ ]   Enable AT commands server 
    -*-   Enable AT commands client
    (1)     The maximum number of supported clients
    -*-     Enable BSD Socket API support by AT commnads
    [*]     Enable CLI(Command-Line Interface) for AT commands
    [ ]     Enable print RAW format AT command communication data
    (128)   The maximum length of AT Commonds buffer

与 AT 设备包有关的配置选项有:

  • 支持的客户端最大个数:选择 AT 设备包中的多台设备时,需要将该选项配置为对应的设备台数;
  • 通过 AT 命令启用 BSD 套接字 API 功能:当选择 AT 设备包时默认选择该选项。
  • AT 命令的最大长度:AT 命令可发送的数据的最大长度

一切皆有可能

当你开始进行嵌入式系统编程,你会很快意识到,你可以创造自己想象得到得任何东西。RTOS 旨在帮助你实现它,它的那些功能包为你提供了良好的开端。现在,设备的互联也是可期待的。边缘的物联网技术必须能够通过各种协议进行通信,而 AT 协议是关键。


via: https://opensource.com/article/21/3/rtos-embedded-development

作者:Alan Smithee 选题:lkxed 译者:cool-summer-021 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注