RTOS 是由 RT-Thread 开发的用于嵌入式设备的开源操作系统。 它为开发人员提供了一个标准化的、友好的基础,用于编程各种设备,并包括大量有用的库和工具包,以简化该过程。
与 Linux 类似,RTOS 使用模块化方法,这使得它易于扩展。 包使开发人员能够将 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 包含 Socket Abstraction Layer (SAL) 组件,该组件实现了各种网络协议和接口的抽象,并为上层提供了一组标准的 BSD 套接字 API。 然后,SAL 接管 AT 套接字接口,以便开发人员只需考虑网络应用层提供的网络接口。
该软件包在设备(包括上述设备)上实现 AT 套接字,允许通过标准套接字接口以 AT 命令的形式进行通信。 RT-thread 编程指南包括对特定功能的描述。
at_device 软件包根据 LGPLv2.1 许可证分发,并且可以使用 RT-Thread Env 工具轻松获得。 该工具包括一个配置器和一个软件包管理器,用于配置内核和组件功能,并且可以用于定制组件和管理在线软件包。 这使开发人员能够像构建积木一样构建系统。
获取 at_device 软件包
要将 AT 设备与 RTOS 一起使用,您必须启用 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 版本,AT 组件版本等于 V1.0.0
- V1.3.0:对于低于 V3.1.3 的 RT-Thread 版本,AT 组件版本等于 V1.1.0
- V1.4.0:对于低于 V3.1.3 或等于 V4.0.0 的 RT-Thread 版本,AT 组件版本等于 V1.2.0
- V1.5.0:对于低于 V3.1.3 或等于 V4.0.0 的 RT-Thread 版本,AT 组件版本等于 V1.2.0
- V1.6.0:对于等于 V3.1.3 或 V4.0.1 的 RT-Thread 版本,AT 组件版本等于 V1.2.0
- V2.0.0/V2.0.1:对于高于 V4.0.1 或高于 3.1.3 的 RT-Thread 版本,AT 组件版本等于 V1.3.0
- 最新版本:对于高于 V4.0.1 或高于 3.1.3 的 RT-Thread 版本,AT 组件版本等于 V1.3.0
获取正确的版本主要是在 menuconfig 中完成的自动过程。 它根据您当前的系统环境提供 at_device 软件包的最佳版本。
如前所述,不同的版本需要不同的配置选项。 例如,版本 1.x 支持一次启用一个 AT 设备
RT-Thread online packages --->
IoT - internet of things --->
-*- 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) --->
Version (V1.6.0) --->
通过线程启用 AT 设备初始化的选项决定了配置是否创建单独的线程来初始化设备网络。
版本 2.x 支持同时启用多个 AT 设备
RT-Thread online packages --->
IoT - internet of things --->
-*- AT DEVICE: RT-Thread AT component porting or samples for different device
[*] Quectel M26/MC20 --->
[*] Enable initialize by thread
[*] Enable sample
(-1) Power pin
(-1) Power status pin
(uart3) AT client device name
(512) The maximum length of receive line buffer
[ ] Quectel EC20 --->
[ ] Espressif ESP32 --->
[*] Espressif ESP8266 --->
[*] 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 SIM800C --->
[ ] SIMCom SIM76XX --->
[ ] Notion MW31 --->
[ ] WinnerMicro W60X --->
[ ] AiThink A9/A9G --->
[ ] Quectel BC26 --->
[ ] Luat air720 --->
[ ] GOSUNCN ME3616 --->
[ ] ChinaMobile M6315 --->
[ ] Quectel BC28 --->
[ ] Quectel ec200x --->
Version (latest) --->
此版本包括许多其他选项,包括启用示例代码的选项,这可能对新开发人员或使用不熟悉设备的任何开发人员特别有用。
您还可以控制选项来选择要用于向组件供电的引脚、指示电源状态的引脚、示例设备使用的串行设备的名称以及示例设备接收的数据的最大长度。 在适用的设备上,您还可以设置 SSID 名称和密码。
简而言之,控制选项有很多。
- V2.X.X 版本支持同时启用多个 AT 设备,并且可以使用 finsh shell 中的
ifocnfig
命令查看已启用的设备信息。 - V2.X.X 版本要求设备在使用前注册; 注册可以在 samples 目录文件中完成,也可以在应用程序层中自定义。
- 引脚选项(例如 Power pin 和 Power status pin)根据设备的硬件连接进行配置。 如果未使用硬件加电功能,则可以将它们配置为
-1
。 - 一个 AT 设备应对应一个串行名称,并且每个设备的 AT client device name 应不同。
AT 组件配置选项
选择 AT 设备软件包并启用设备支持后,默认情况下会选择 AT 组件的客户端功能。 这意味着更多的选项——这次是针对 AT 组件
RT-Thread Components --->
Network --->
AT commands --->
[ ] 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 Socket API 支持:选择 AT 设备软件包时,默认情况下会选择此选项。
- AT 命令缓冲区的最大长度: AT 命令可以发送的数据的最大长度。
一切皆有可能
当您开始编程嵌入式系统时,您很快就会意识到您可以创建任何您能想象的东西。 RTOS 旨在帮助您实现这一目标,其软件包提供了一个良好的开端。 互连设备现在是人们的期望。 边缘上的物联网技术必须能够跨各种协议进行通信,而 AT 协议是关键。
评论已关闭。