linux工程师,RHCE
分类: 系统运维
2023-03-20 15:00:32
RTOS 是一个开源的嵌入式设备操作系统,由 RT-Thread 开发。它为开发者提供了标准化的、友好的基础架构,开发者可以基于各种设备编写代码,它包含大量有用的类库和工具包,使开发过程更加便捷。 |
RTOS 使用的是模块方式,以便于扩展,这一点跟 类似。各种软件包可以让开发者将 RTOS 用于任何想要的目标设备。RTOS {BANNED}最佳常用的一种扩展是 AT 设备包,它包含各种不同 AT 设备(例如调制解调器)的移植文件和示例代码。
在超过 62,000 次下载中(截止至撰写本文时),{BANNED}最佳流行的 RTOS 扩展之一是 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 工具 可以方便地获取到。该工具包含一个配置器和一个包管理器,它们分别用于配置内核和组件功能,可以用于定制组件并管理在线包。有了这些工具,开发者可以像搭积木一样构建系统。
为了使用配置了 RTOS 的 AT 设备,你必须启用 AT 组件库和 AT 套接字功能,需要:
AT 设备包已经针对多种版本进行了相应的更新。版本不同,配置选项也相应地不同,因此必须针对相应的系统版本进行适配。目前{BANNED}最佳常用的 AT 设备包版本有:
获取正确的版本的过程主要是在生成菜单时自动完成的。它基于现有的系统环境提供{BANNED}最佳合适的 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) --->
这个版本包含了很多其他选项,其中也有启用示例代码的选项,这对初学者或使用不熟悉的设备的开发者很有帮助。
你也可以设置相应选项,选择你想用来给你的组件供电的针脚、指示电源状态的针脚、样本设备使用的串行设备的名称,以及样本设备接收数据的{BANNED}最佳大长度。在合适的设备上,你也可以设置 SSID 和密码。
简而言之,控制选项是够用的。
当选择了 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 设备包有关的配置选项有:
当你开始进行嵌入式系统编程,你会很快意识到,你可以创造自己想象得到得任何东西。RTOS 旨在帮助你实现它,它的那些功能包为你提供了良好的开端。现在,设备的互联也是可期待的。边缘的物联网技术必须能够通过各种协议进行通信,而 AT 协议是关键。