打印

RT-Thread 发布 AT 组件, 让物联网 AT 设备开发更简单

[复制链接]
1384|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
RT-Thread 发布 AT 组件, 让 AT 设备开发更简单

AT 命令采用标准串口进行数据收发,将以前复杂的设备通讯方式转换成简单的串口编程,大大简化了产品的硬件设计和软件开发成本,这使得几乎所有的网络模组如GPRS、3G/4G 、NB-IoT、蓝牙、WiFi 、GPS 等模组都采用AT命令。

随着物联网时代的发展,AT 命令被广泛的用于单片机(MCU)+ 网络模块 这样的物联网开发模式,但是对于不同设备的 AT 命令,其数据的收发和解析方式都大不相同,这直接提高开发的复杂度,也不利于代码的维护和重用。

为了解决不同网络模块 AT 命令之间的差异导致的重复开发的问题,RT-Thread 发布了 AT 组件用于 AT 设备开发。


RT-Thread  AT 组件解决方案

RT-Thread AT 组件介绍

我们的 AT 组件,是基于 RT-Thread 系统的 AT 客户端和服务器的实现。


RT-Thread AT 组件介绍

1.AT 命令客户端

主要应用 MCU + AT 模块的场景,MCU 内部为 AT 命令客户端。其主要功能特点如下:

URC 数据处理: 完备的 URC 数据的处理方式;
数据解析: 支持自定义响应数据的解析方式,方便获取响应数据中相关信息;
调试模式: 提供命令行交互模式,主要用于设备调试;
AT Socket:提供标准的网络编程接口;
低资源占用:4.6K ROM 和 2.0K RAM。
URC: 全称是非请求结果码(Unsolicited Result Code),特指 AT 服务器主动发送给 AT 客户端的数据。一般在特殊情况才会发送,具有一定的随机性。

2.AT命令服务器

常应用于 AT 模块内部,使 AT 模块可以内置一些 AT 命令。其主要功能特点如下:

基础命令: 实现多种通用基础命令;
命令兼容: 命令支持忽略大小写,提高命令兼容性;
命令检测: 命令支持自定义参数表达式,并实现对接收的命令参数自检测功能;
命令注册: 提供简单的用户自定义命令添加方式;
调试模式: 提供命令行交互模式,主要用于设备调试。
低资源占用: 4.0K ROM 和 2.5K RAM。



AT 组件的创新

RT-Thread 的 AT 组件不仅仅有全面、完善的功能,还在用户使用、调试测试等细节方面做了充分的考虑。保证了资源占用低的同时,也能让用户用起来非常顺手。下面这些都是我们做出来的创新:

1.灵活的响应数据解析方式
响应数据的解析作为 AT 模块开发的另一大难题,不同设备的命令、同一设备的不同命令的响应数据解析方式都可能大不相同,这大大增加开发者从响应数据中获取有效数据的难度。

RT-Thread 对于响应数据的解析方式,提供了多种解析接口。比如:可以通过行号解析,也可以通过关键字查找解析。解析的方式还使用了标准 scanf 的表达式,它支持 正则表达式。使开发者在保存原始响应数据的同时,轻松的解析出想要的重要数据。

2.完备的URC 数据的处理机制
URC 数据为服务器主动下发的数据,一般在特殊情况才会发送,比如:开机日志,网络连接提示等。对于这些特殊情况,开发者往往都非常头疼。

因为 URC 数据一般没有固定格式,并且可能随机发送,处理不好很容易影响到整个数据的交互流程。所以对于 URC 的处理需要一个非常完善的机制。

目前, AT 组件已具备强大的 URC 处理框架,确保每个 URC 数据都能得到合理的处理,并且支持对每一个 URC 数据执行自定义的操作。

3.简化 AT 命令的收发流程
对于传统的 AT 模块开发流程,一个 AT 命令收发的整个流程可能需要多个步骤的处理,包括命令发送、发送结果判断、接收响应数据、响应结果判断等多个步骤。且不同命令的处理方式不同,导致代码很难被重用。

AT 组件中命令收发,只需要通过 一个函数 实现,且该函数返回响应结果并处理了响应数据,方便后续使用。极大的简化了交互流程。



4.提供标准的网络编程接口
在使用 AT 模块后,一般的单片机可以通过 AT 命令,完成设备的网络连接、数据透传等功能。但是很难复用之前已开发过的,基于标准 BSD Socket API 的代码,例如: MQTT、HTTP、Web Socket 等。即使在一个模块上实现了上网功能,但是最终又很难复用到其他的产品上。

RT-Thread 的 AT 组件在 AT 客户端的基础上实现了 AT Socket 功能,该功能是 SAL (Socket 抽象层)的一种实现。为上层提供标准的 BSD Socket 网络编程接口。在使用 AT 模块的产品上,极大的简化了网络开发代码并增强了软件可重用性。


RT-Thread 已对接常用的 AT 模块

当前RT-Thread 已提供针对于移远的 M26 GPRS 模块、乐鑫的 ESP8266 WiFi 模块的对接文件。其他热门的无线模组,RT-Thread也将会优先支持(欢迎留言说说你希望RT-Thread优先支持的AT模块),开发者可以根据RT-Thread提供的AT组件编程手册(https://www.rt-thread.org/document/site/rtthread-development-guide/rtthread-manual-doc/zh/1chapters/14-chapter_at/)方便快捷的自行完成对接。


相关文档

AT组件编程手册:https://www.rt-thread.org/document/site/rtthread-development-guide/rtthread-manual-doc/zh/1chapters/14-chapter_at/

RT-Thread AT 组件应用笔记 - 客户端篇:https://www.rt-thread.org/document/site/rtthread-application-note/components/at/an0014-rtthread-system-at_client/

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

0

粉丝