EC20模塊內置協議棧的開發筆記

本文主要記錄如何通過UART接口發送AT指令進行網絡連接。

前言

EC20是4G全網通模塊。
從手冊上看類似的模塊應該還有EG9x和EM05
 

硬件

硬件上使用一路UART接口與模塊通信,UART接口默認使用115200波特率。
模塊上電就會啓動,可以通過拉低RESET管腳對模塊進行復位操作。

軟件

AT命令的格式:
發送方是以AT開頭0x0D結尾的字符串,格式比較統一。
模塊響應是以0x0D,0x0A結尾,但開頭字符是沒有統一的格式,有的指令響應是以+開頭,有的又沒有。

 

AT指令軟件初始化流程僅供參考:

第1步:等待模塊就緒
由於模塊上電就會啓動,啓動時間大約10秒。
所以主機最好延時10秒再循環發送AT,等待模塊響應OK,表示模塊通信就緒了。
如果發送了多次都沒有響應,則可以給模塊來一個復位信號。
再重複上面的操作。

第2步:基本參數設置
2.1 發送ATE0,關閉指令回顯。
如果不關閉回顯,主機發什麼,模塊就會原樣回覆,適合於在終端軟件里人工發送命令,可以看到輸入指令。
但是我們做產品是用程序去發指令,指令回顯不利於寫代碼解析響應數據,所以關掉爲好。
2.2 發送AT+CREG=0,取消註冊狀態主動上報
註冊狀態通過AT+CREG?查詢就行了,可以不用主動上報。
2.3 發送AT+CMEE=2,設置錯誤反饋方式
設置爲0所有的錯誤都會返回ERROR.
設置爲2某些指令錯誤會返回+CME ERROR:給出詳細的錯誤信息
2.4 發送AT+QCFG="nwscanmode",0設置模塊搜網模式
通過這個指令可以鎖定4G或2G網絡。
具體的取值定義可以看手冊:

第3步:模塊識別
主機發送ATI或者AT+GMM,可以得到模塊型號。
發送ATI,還可以獲取模塊固件版本號信息。

第4步:檢測SIM卡
主機發送AT+CPIN?,可以得到SIM卡狀態。
這條指令很好解析,響應是格式是+CPIN: <code>
檢測到接收的內容是+CPIN開頭,就可以確定這是指令應答,而不是模塊主動上報的干擾數據。
當<code>爲READY時表示SIM卡也就緒了,可以進行下一步操作了。
當<code>爲其它狀態時,看手冊吧,反正是不正常的狀態。
發送AT+CIMI可以得到IMSI信息,從號碼的前5位可以判斷這張卡是哪家運營商,
比如46000是中國移動,46001是中國聯通。

第5步:等待註冊網絡
主機發送AT+CREG?
模塊響應+CREG:<n>,<stat>
當stat的值爲1或者5時,表示註冊成功。
可以發送AT+COPS?查詢當前註冊的是哪家運營商
可以發送AT+CSQ查詢信號強度1-31,31表示信號最強

第6步:激活GPRS數據連接
主機發送AT+QICSGP=1,1,<apn>,<user>,<pass>設置APN接入點。
模塊響應:OK
主機發送AT+QIACT=1激活GPRS數據連接。
模塊響應:OK

第7步:其它信息
發送AT+QIACT?查詢當前IP地址。
發送AT+QNWINFO查詢當前網絡參數。

至此模塊的網絡初始化完成了。
可以進行網絡通信了。

第8步:連接遠程服務器
發送AT+QIOPEN=1,<id>,"TCP",<host>,<port>,0,1
<id>是通道號碼,模塊支持1-4通道,可以理解爲socket句柄。
<host>可以是域名也可以是IP地址。
<port>是服務器端口。
最後的參數1表示使用Direct Push Mode。此模式模塊會將接收數據主動上報過來。
模塊響應:OK
模塊響應:+QIOPEN: <id>,<sta>
響應的<sta>是連接狀態,0表示連接成功,非0表示連接失敗,手冊有詳細錯誤代碼。
這裏要注意:
模塊是先返回應答OK,然後再返回連接狀態。
如果網絡不好模塊會很過長時間才返回連接狀態。
在模塊返回連接狀態之前,主機可以發送AT+QICLOSE=<id>提前結束連接,
此時模塊會先返回OK,再返回+QIOPEN: <id>,567

第9步:發送數據
發送AT+QISENDEX=<id>,<data>
<id>是通道號碼
<data>是數據內容,用雙引號包含的HEX編碼。
發完這條命令最多支持發送256字節的數據,超過256字節,需要多次發送此AT指令。
模塊響應:SEND OK

第10步:接收數據
當模塊收到遠程服務器發送的數據時會主動上報(Direct Push Mode)。
+QIURC: "recv",<id>,<size><CR><LF><data>
<id>是通道號碼
<size>是數據長度
<data>是接收數據(原始二進制數據)

第11步:關閉連接
如果是服務器發起的關閉連接,模塊會主動上報:
+QIURC: "closed",<id>
如果是模塊發起關閉連接,要向模塊發送:AT+QICLOSE=<id>
模塊響應:OK

 

 

發佈了127 篇原創文章 · 獲贊 75 · 訪問量 39萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章