RT-Thread 發布 AT 組件,讓 AT 設備開發更簡單

AT 命令採用標準串口進行數據收發,將以前複雜的設備通訊方式轉換成簡單的串口編程,大大簡化了產品的硬件設計和軟件開發成本,這使得幾乎所有的網絡模組如GPRS、3G/4G 、NB-IoT、藍牙、WiFi 、GPS 等模組都採用AT命令。

隨著物聯網時代的發展,AT 命令被廣泛的用於單片機(MCU)+ 網絡模塊這樣的物聯網開發模式,但是對於不同設備的 AT 命令,其數據的收發和解析方式都大不相同,這直接提高開發的複雜度,也不利於代碼的維護和重用。

為了解決不同網絡模塊 AT 命令之間的差異導致的重複開發的問題,RT-Thread 發佈了 AT 組件用於 AT 設備開發。

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

RT-Thread AT 組件解決方案

RT-Thread AT 組件介紹

我們的 AT 組件,是基於 RT-Thread 系統的 AT 客戶端和服務器的實現。

RT-Thread 发布 AT 组件,让 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/

你可以添加微信13924608367 為好友,註明:公司+姓名,拉進 RT-Thread 官方微信交流群

RT-Thread

讓物聯網終端的開發變得簡單、快速,芯片的價值得到最大化發揮。GPLv2+協議,可免費在商業產品中使用。

長按二維碼,關注我們


分享到:


相關文章: