新聞中心

        EEPW首頁(yè) > 物聯(lián)網(wǎng)與傳感器 > 設(shè)計(jì)應(yīng)用 > 物聯(lián)網(wǎng)從業(yè)者必須要會(huì)的AT指令介紹

        物聯(lián)網(wǎng)從業(yè)者必須要會(huì)的AT指令介紹

        作者: 時(shí)間:2023-12-15 來(lái)源:歐工玩轉(zhuǎn)嵌入式 收藏

         對(duì)于大多數(shù)從業(yè)者來(lái)說(shuō),有兩樣?xùn)|西是避免不了的,一個(gè)是單片機(jī),一個(gè)是移動(dòng)模塊。現(xiàn)在主流的模塊都以4G模組和NB-IOT模組為主(由于運(yùn)營(yíng)商正在對(duì)2G進(jìn)行退網(wǎng),在新產(chǎn)品上繼續(xù)使用2G模組已經(jīng)是個(gè)不明智的決定了)。無(wú)論是曾經(jīng)的2G模組還是現(xiàn)在主流的4G和NB-IOT模組,都采用了AT指令的方式與外部控制器進(jìn)行,AT指令因此成為從業(yè)者必須要掌握的知識(shí)。

        本文引用地址:http://www.104case.com/article/202312/453928.htm

        4G模組舉例

          AT是Attention的縮寫,最早是賀氏公司(Hayes)為了控制調(diào)制解調(diào)器而發(fā)明的協(xié)議。后來(lái)隨著網(wǎng)絡(luò)帶寬的升級(jí),速度很低的撥號(hào)調(diào)制解調(diào)器基本退出一般使用市場(chǎng),但是 AT 命令保留了下來(lái),并且逐漸被標(biāo)準(zhǔn)化?,F(xiàn)在的移動(dòng)通信模組(2G,4G,NB-IOT)皆采用AT指令作為其控制協(xié)議,AT 指令已經(jīng)成為通信模組產(chǎn)品開發(fā)中的實(shí)際標(biāo)準(zhǔn)。

        某4G模塊應(yīng)用示意圖

          AT指令只是AT客戶端(如)和AT服務(wù)器(如移動(dòng)通信模組)之間的軟件接口,硬件上基本都采用串口作為接口。有一點(diǎn)需要注意,很多模塊的串口電平采用的是1.8V,而大多數(shù)的IO口電平是3.3V或5V,所以在硬件連接上需要依據(jù)具體情況考慮進(jìn)行電平轉(zhuǎn)換。

        AT指令工作示意圖

          AT指令的大部分使用場(chǎng)景是這樣:主動(dòng)發(fā)送AT指令給模組,然后等待模組返回?cái)?shù)據(jù),MCU再根據(jù)返回的數(shù)據(jù)做對(duì)應(yīng)操作。每個(gè)AT指令都有一個(gè)超時(shí)時(shí)間,如果MCU發(fā)送出AT指令后在超時(shí)時(shí)間內(nèi)沒有收到返回的數(shù)據(jù)則需要重試。AT指令中還有一種數(shù)據(jù)被成為URC數(shù)據(jù),URC的全稱是Unsolicited Result Code,翻譯成中文就是“不請(qǐng)自來(lái)的結(jié)果碼”。顧名思義,它不是模塊對(duì)MCU所發(fā)送AT指令的返回,而是模塊主動(dòng)上報(bào)的數(shù)據(jù)。比如模塊收到TCP數(shù)據(jù)包,或者模塊的網(wǎng)絡(luò)狀態(tài)發(fā)生改變,都會(huì)通過(guò)URC數(shù)據(jù)主動(dòng)告知MCU。


          下面介紹下AT指令的格式。AT指令是基于字符串的通信協(xié)議,一般 AT 命令由三個(gè)部分組成,分別是:前綴、主體和結(jié)束符。其中前綴由字符“AT”構(gòu)成;主體由命令、參數(shù)和可能用到的數(shù)據(jù)組成,結(jié)束符一般為 <CR><LF> (即回車換行,對(duì)應(yīng)于ASCII碼中的“rn”)。AT指令可以分為以下幾種(<x>代表命令):


          上表中省略了結(jié)束符,在實(shí)際使用中,將<x>替換為要用的命令,并且整個(gè)命令需要以<CR><LF>結(jié)尾。如何知道模塊都支持哪些AT指令呢?關(guān)于具體的AT指令,其實(shí)不用刻意去記憶,因?yàn)槊總€(gè)模塊都會(huì)有配套的AT指令集手冊(cè),要用的時(shí)候再去查詢手冊(cè)就行了。

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

        MCU發(fā)送:AT
        模組返回:OK
        命令說(shuō)明:可以根據(jù)是否有OK返回判斷模塊是否可用。


        MCU發(fā)送:AT+CGSN
        模組返回:<IMEI>
             OK
        命令說(shuō)明:用于查詢模組的IMEI。


        MCU發(fā)送:AT+CGACT=<state>,<cid>
        模組返回:OK
        命令說(shuō)明:用于設(shè)置模塊PDP上下文激活狀態(tài)。


        MCU發(fā)送:AT+CGACT?
        模組返回:+CGACT: <cid>,<state>
             OK
        命令說(shuō)明:用于查詢模塊PDP上下文激活狀態(tài)。




        關(guān)鍵詞: 物聯(lián)網(wǎng) MCU 通信

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 兰坪| 揭西县| 金乡县| 东宁县| 布尔津县| 杭锦旗| 蕉岭县| 美姑县| 柯坪县| 米泉市| 东光县| 鄄城县| 菏泽市| 永定县| 双辽市| 西吉县| 古浪县| 定边县| 紫金县| 都昌县| 长春市| 彰化市| 新乡市| 五台县| 西林县| 鞍山市| 贵定县| 黄浦区| 都江堰市| 汤阴县| 师宗县| 河北省| 鲁山县| 江口县| 罗城| 内丘县| 额尔古纳市| 龙井市| 昆山市| 全椒县| 达拉特旗|