首頁>科技>

  對於大多數物聯網從業者來說,有兩樣東西是避免不了的,一個是微控制器,一個是行動通訊模組。現在主流的通訊模組都以4G模組和NB-IOT模組為主(由於運營商正在對2G進行退網,在新產品上繼續使用2G模組已經是個不明智的決定了)。無論是曾經的2G模組還是現在主流的4G和NB-IOT模組,都採用了AT指令的方式與外部控制器進行通訊,AT指令因此成為物聯網從業者必須要掌握的知識。

4G模組舉例

  AT是Attention的縮寫,最早是賀氏公司(Hayes)為了控制調變解調器而發明的協議。後來隨著網路頻寬的升級,速度很低的撥號調變解調器基本退出一般使用市場,但是 AT 命令保留了下來,並且逐漸被標準化。現在的行動通訊模組(2G,4G,NB-IOT)皆採用AT指令作為其控制協議,AT 指令已經成為通訊模組產品開發中的實際標準。

某4G模組應用示意圖

  AT指令只是AT客戶端(如MCU)和AT伺服器(如行動通訊模組)之間的軟體介面,硬體上基本都採用串列埠作為介面。有一點需要注意,很多模組的串列埠電平採用的是1.8V,而大多數MCU的IO口電平是3.3V或5V,所以在硬體連線上需要依據具體情況考慮進行電平轉換。

AT指令工作示意圖

  AT指令的大部分使用場景是這樣:MCU主動傳送AT指令給模組,然後等待模組返回資料,MCU再根據返回的資料做對應操作。每個AT指令都有一個超時時間,如果MCU傳送出AT指令後在超時時間內沒有收到返回的資料則需要重試。AT指令中還有一種資料被成為URC資料,URC的全稱是Unsolicited Result Code,翻譯成中文就是“不請自來的結果碼”。顧名思義,它不是模組對MCU所傳送AT指令的返回,而是模組主動上報的資料。比如模組收到TCP資料包,或者模組的網路狀態發生改變,都會透過URC資料主動告知MCU。

  下面介紹下AT指令的格式。AT指令是基於字串的通訊協議,一般 AT 命令由三個部分組成,分別是:字首、主體和結束符。其中字首由字元“AT”構成;主體由命令、引數和可能用到的資料組成,結束符一般為 <CR><LF> (即回車換行,對應於ASCII碼中的“\r\n”)。AT指令可以分為以下幾種(<x>代表命令):

  上表中省略了結束符,在實際使用中,將<x>替換為要用的命令,並且整個命令需要以<CR><LF>結尾。如何知道模組都支援哪些AT指令呢?關於具體的AT指令,其實不用刻意去記憶,因為每個模組都會有配套的AT指令集手冊,要用的時候再去查詢手冊就行了。

AT指令應用舉例(以下指令皆省略了回車換行):

MCU傳送:AT 模組返回:OK 命令說明:可以根據是否有OK返回判斷模組是否可用。

MCU傳送:AT+CGSN 模組返回:<IMEI>     OK 命令說明:用於查詢模組的IMEI。

MCU傳送:AT+CGACT=<state>,<cid> 模組返回:OK 命令說明:用於設定模組PDP上下文啟用狀態。

MCU傳送:AT+CGACT?模組返回:+CGACT: <cid>,<state>     OK命令說明:用於查詢模組PDP上下文啟用狀態。

11
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 小米汽車要來了?半天市值漲了500億,已註冊小米汽車相關商標