當前位置:
首頁 > 最新 > RT-Thread 發布 AT 組件,讓AT 設備開發更簡單

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 組件介紹

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。


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 已提供針對於移遠的 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/

RT-Thread

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

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 電子發燒友網 的精彩文章:

構建AI生態,高通真「憋」急了,看國內廠商如何順勢而上?
中興高管大換血,新董事長李自學何以「中興」?

TAG:電子發燒友網 |