Redian新闻
>
通过编写嵌入式系统入门边缘计算 | Linux 中国

通过编写嵌入式系统入门边缘计算 | Linux 中国

科技
 
导读:用于操控无线调制解调器的 AT 设备包是 RTOS 最流行的扩展功能之一。                 
本文字数:6145,阅读时长大约:7分钟

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

RTOS 是一个开源的 嵌入式设备操作系统🔗 opensource.com,由 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 套接字🔗 en.wikipedia.org API。SAL 进而接管了 AT 的套接字接口,所以开发者只需要考虑网络应用层提供的网络接口。

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

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

获取 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 设备包。

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

  1. RT-Thread online packages  --->
  2.      IoT - internet of things  --->
  3.         -*- AT DEVICE: RT-Thread AT component porting or samples for different device  
  4.         [ ]   Enable at device init by thread
  5.               AT socket device modules (Not selected, please select)  --->    
  6.               Version (V1.6.0)  --->

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

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

  1. RT-Thread online packages  --->
  2.      IoT - internet of things  --->
  3.         -*- AT DEVICE: RT-Thread AT component porting or samples for different device
  4.         [*]   Quectel M26/MC20  --->
  5.           [*]   Enable initialize by thread
  6.           [*]   Enable sample
  7.           (-1)    Power pin
  8.           (-1)    Power status pin
  9.           (uart3) AT client device name
  10.           (512)   The maximum length of receive line buffer
  11.         [ ]   Quectel EC20  --->
  12.         [ ]   Espressif ESP32  --->
  13.         [*]   Espressif ESP8266  --->
  14.           [*]   Enable initialize by thread
  15.           [*]   Enable sample
  16.           (realthread) WIFI ssid
  17.           (12345678) WIFI password
  18.           (uart2) AT client device name
  19.           (512)   The maximum length of receive line buffer
  20.         [ ]   Realthread RW007  --->
  21.         [ ]   SIMCom SIM800C  --->
  22.         [ ]   SIMCom SIM76XX  --->
  23.         [ ]   Notion MW31  --->
  24.         [ ]   WinnerMicro W60X  --->
  25.         [ ]   AiThink A9/A9G  --->
  26.         [ ]   Quectel BC26  --->
  27.         [ ]   Luat air720  --->
  28.         [ ]   GOSUNCN ME3616  --->
  29.         [ ]   ChinaMobile M6315  --->
  30.         [ ]   Quectel BC28  --->
  31.         [ ]   Quectel ec200x  --->
  32.         Version (latest)  --->

这个版本包含了很多其他选项,其中也有启用示例代码的选项,这对初学者或使用不熟悉的设备的开发者很有帮助。

你也可以设置相应选项,选择你想用来给你的组件供电的针脚、指示电源状态的针脚、样本设备使用的串行设备的名称,以及样本设备接收数据的最大长度。在合适的设备上,你也可以设置 SSID 和密码。

简而言之,控制选项是够用的。

◈ V2.x.x 版本支持同时启用多个 AT 设备,欲查看启用的设备信息,在 finsh shell🔗 www.rt-thread.org 中执行 ifocnfig 命令即可。
◈ V2.X.X 版本需要设备在使用前先注册;注册可以在样例目录中进行,或在应用层以自定义方式进行。
◈ 针脚选项,例如电源针脚和电源状态针脚是按照设备的硬件连接来配置的。如果硬件的开启功能不可用,它们就会被设置为 -1
◈ 一台AT 设备应当对应一个序列名称,每台设备的 AT 客户端名称应当是不同的。

AT 组件配置选项

当选择了 AT 组件包,启用了设备支持,AT 组件的客户端功能也就默认选择完成了。对 AT 组件来说,这就意味着有更多的选项要设置:

  1. RT-Thread Components  --->
  2.     Network  --->
  3.         AT commands  --->
  4.     [ ]   Enable debug log output
  5.     [ ]   Enable AT commands server
  6.     -*-   Enable AT commands client
  7.     (1)     The maximum number of supported clients
  8.     -*-     Enable BSD Socket API support by AT commnads
  9.     [*]     Enable CLI(Command-Line Interface) for AT commands
  10.     [ ]     Enable print RAW format AT command communication data
  11.     (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中国 荣誉推出

LCTT 译者 :cool-summer-021
🌟🌟
翻译: 9.0 篇
|
贡献: 141 天
2022-09-22
2023-02-09
https://linux.cn/lctt/cool-summer-021
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
什么是“电器嵌入式”设计?【装修干货】如何在 Linux 系统中访问 UEFI 设置 | Linux 中国边缘计算,原来早就在你我身边如何在 Linux 中使用 SCP 安全地传输文件 | Linux 中国世界上只有两个 Linux 发行版:Arch Linux 与其它 | Linux 中国2023全球边缘计算大会·北京站成功召开!在没有构建系统的情况下编写 Javascript | Linux 中国Linux 中的 su 和 sudo 命令有什么区别? | Linux 中国用 Tekton 在 Kubernetes 中编写你的第一条 CI/CD 流水线 | Linux 中国我们为什么要请教练嵌入式学习路线,强烈推荐!!!Linux 内核 6.1 发布,包含初始 Rust 支持 | Linux 中国积木沙发 – LOVESAV天赋“易昺(bǐng)”,创造历史!來楚生册页小品【一对一介绍】珠海3号男同学,92年生,身高173,华南理工大学硕士,嵌入式软件工程师,月入1.4W,珠海金湾嵌入式柜子——有颜值又实用的设计,有什么优缺点呢?靠实力征服你!【装修干货】开始工作在 Linux 中使用 “Converter” GUI 工具转换和操作图像 | Linux 中国新版 Linux QQ,打破操作系统生态壁垒 | Linux 中国松散耦合的分布式系统会让云账单飙升吗汇总 | 2023年嵌入式行业方向及公司通过编写“猜数字”游戏来学习 Ada 编程语言 | Linux 中国4大原则告诉你,嵌入式工程师如何写简历!嵌入式这个青春饭我吃了整整几十年过年继续卷!掌握这些嵌入式软件开发技巧浅谈分布式系统中的补偿机制设计问题边缘计算市场规模或突破500亿,如何在大行业与小场景中掘金?不编写代码也可以为开源项目做出贡献 | Linux 中国使用 PCManFM 文件管理器让你的 Linux PC 轻装上阵 | Linux 中国【原创】从王沪宁的文革学历说开去分布式系统关键路径延迟分析实践编写好 Git 提交信息的 11 个技巧 | Linux 中国在线研讨会预告:Formal DPV在嵌入式AI处理器的案例验证在 Linux 上试试这个 Java 文件管理器 | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。