AT命令控制上網 PDP

AT命令控制上網 PDP

 

1. AT+CGATT=1 (Attach or detach from GPRS service, GPRS 附着狀態)

說的簡單點,這一步就是讓SGSN (服務GPRS節點,你可以把它理解成與基站緊密相連的一臺設備,他可能記錄你的移動終端的位置,狀態等等很多很多信息)知道你的存在並且認爲你擁有GPRS功能。由於GSM和GPRS用的都是相同的基站,所以通常你的MS開啓,註冊上網絡了,你就已經是GSM的一個節點了,可以打電話了。但是,如果你想使用GPRS數據業務,你就要附着GPRS服務,這個命令就是幹這個的。

 

2. AT+CGDCONT=1,"IP","CMNET" (Define PDP context, 定義PDP 上下文)

如果打算用PDP(Packet Data Protocol )傳輸數據,你就要爲他建立一個背景,就是所謂的上下文,你得告訴SGSN和GGSN (網關GPRS節點,可以把它理解成一臺與SGSN和INTERNET緊密相連的設備,它把從SGSN的一些信息處理後發送到INTERNET的服務器同時把服務器的信息處理後再發送給SGSN,SGSN再給你的終端設備)一些基本信息,比如你的本地標識(cid),你希望的pdp_type(這裏就是IP),還有你的接入點信息。這裏的接入點是CMNET,實際上他應該是一臺服務器,是INTERNET和SGSN的紐帶。而中國移動公司提供了一個名字CMNET(China Mobile NET),我們通過它就能連接INTERNET了。而在國外,這個參數通常是一個域名性質的東西。另外,得特別注意,就是中國移動人爲的分出兩種就如方式,我們剛剛使用的是CMNET,另一種是CMWAP,很明顯,這個只能上WAP,但是通過他們的HTTP代理服務器,我們已能夠上INTERNET,但是僅僅侷限於HTTP而已。(有些移動的SIMCARD不支持CMNET接入方式,所以要特別小心,)

 

3. at+CGACT=1,1 (PDP context activate or deactivate, 激活或解除PDP 移動場景)

前面的定義PDP 上下文其實只是說我們有一種想要使用GPRS通信的想法,並且聲明瞭我們想如何使用,但是這僅僅是個概念,如果你真的想付諸實施,就必須讓網絡知道你的意願,並且記錄你的信息,爲你分配資源等等,所以,激活他吧。這個命令裏的第一個參數,就是我們前面定義的cid標識值,第二個就是激活狀態,如果你想激活,就設置1,如果你想解除就設置0。

 

4. AT+CIPSTART="TCP", ”111.111.111.111”,” 2222”( Start up TCP or UDP connection, 建立TCP 連接或註冊UDP 端口號)

如果說前面的都是前期準備工作的話,那麼現在就要嘗試TCP連接了。這個命令很簡單,第一個參數指定連接方式,第二個參數是IP地址,第三個參數是端口號。跟在計算機上寫程序是一樣的。

 

5. AT+CIPSEND( Send data through TCP or UDP connection, 發送數據)

如果前面連接建立成功你就可以發送數據了,AT+CIPSEND然後加一個回車符,就會出現個命令提示符>(當然這個可以設置),然後就是你的發送數據,最後加個結束符。當然你也可以發送定長數據串,這樣就不需要結束符了。

 

6. AT+CIPCLOSE( Close TCP or UDP Connection, 關閉TCP 或UDP 連接)

關閉連接僅僅意味着你的這個連接通道斷開了,但是你還可以建立新的連接,同時也意味着你的本地的IP地址並沒有變。你的IP地址是在激活的時候分配的。

 

7. AT+CIPSHUT( Disconnect wireless connection, Close Moving Scene)

關閉移動場景,當你執行這個的時候你就進入IP INITIAL 狀態,如果你再重新嘗試連接的時候你的本地IP地址很可能已經就不是原來的了。

 

需要注意的一些問題:

1. 通常上面提到的前三個命令我們基本不需要使用,因爲默認值都符合我們剛剛的要求,而芯片基本把這些事情都做了。可以通過相應的查詢命令獲得這些信息,如果有不符合的,可以另行處理。

 

2. 有些移動的SIMCARD不支持CMNET接入方式,所以要特別小心,當你發現你所有的參數都正確,能夠發送短信和打電話,就是無法連接或者連接總是失敗,你就該檢查你一下你的卡到底支不支持CMNET接入方式。全球通基本兩種接入方式都支持,而動感地帶和神州行就不一定了。

 

3. 如果你查詢的狀態總是+PDP: DEACT,就是說無法激活,那你應該看看天線是否接牢固或者是否有斷線的地方。

 

4. 在進入業務操作之前,確保你的模塊沒有工作在最小功能模式(minimum functionality),你可以通過AT+CFUN查詢模塊的工作狀態。

 

5. 在嘗試連接一個服務器和某個端口之前,最好先在計算機上用SOCKET工具連接一下,看看是否是通的,有些網絡和防火牆很可能會封殺端口的,如果你尋找或調試了一天後,發現是這個問題,唉,大家知道會有多鬱悶。(另外SP可以爲你的ADSL分配動態或者固定公網IP,有些在ipconfig或者網絡設置裏顯示兩個IP,別混淆了)

socket 調試工具下載地址:http://www.onlinedown.net/soft/55038.htm

 

 

6. 在嘗試連接(AT+CIPSTART)之前,一定要查詢(AT+CIPSTATUS)當前狀態,一共有下面幾種狀態

0 IP INITIAL Initializing state

1 IP START Starting State

2 IP CONFIG Configure Scene

3 IP IND Accept Scene Configuration

4 IP GPRSACT Scene Activated

5 IP STATUS Get Local IP Address

6 TCP/UDP CONNECTING establish connection state with SERVER

7 IP CLOSE Connection has been closed

8 CONNECT OK Connection Established Successfully

9 PDP DEACT Detach from GPRS network

而AT+CIPSTART只在IP_INITIAL、IP_CLOSE、IP_STATUS三種狀態下才能正確建立連接,否則返回ERROR。所以有時候會連接失敗(比如信號不好等原因),而模塊通常會進入TCP/UDP CONNECTING狀態,就是一直不停的嘗試連接,而此時如果執行連接命令就會返回錯誤信息。雖然此時的狀態是TCP/UDP CONNECTING,但是實際上很多模塊已經不再連接了。只不過處在連接狀態上而已,這時你最好通過CIPCLOSE或者CIPSHUT命令,回到一個可連接的狀態。

  edit by LongMaosen

 

 

 

上面的步驟在SIM508上並未成功,做以下修正

 

AT+CGDCONT=1,"IP","CMNET"  

OK  

 

AT+CGCLASS?  

 

+CGCLASS: "B"  

 

OK  

 

AT+CGATT?  

 

+CGATT: 1  

 

OK  

 

AT+CGACT=1,1 

 

OK  

AT+CIPSTART="TCP","202.???.??.??","2020"  

OK  

 

CONNECT OK(這個OK與CONNECT OK之間有一定時間間隔的,多等等) 

AT+CIPSEND 

> HELLO 

SEND OK 

 

 

**************************************************************************************************************************************************************************

 

未整理

 

AT+CIPHEAD 在接受到的數據前 添加IP 地址

 

PDP :分組數據協議

 

英文名稱:

packet data protocol;PDP 

定義:

移動通信用戶在發送和接收分組數據時應用的協議。 

請問什麼是Servlet上下文? ServletContext,是一個全局的儲存信息的空間,服務器開始,其就存在,服務器關閉,其才釋放。request,一個用戶可有多個;session,一個用戶一個;而servletContext,所有用戶共用一個。所以,爲了節省空間,提高效率,ServletContext中,要放必須的、重要的、所有用戶需要共享的線程又是安全的一些信息。如,做一個購物類的網站,要從數據庫中提取物品信息,如果用session保存這些物品信息,每個用戶都訪問一便數據庫,效率就太低了;所以要用來Servlet上下文來保存,在服務器開始時,就訪問數據庫,將物品信息存入Servlet上下文中,這樣,每個用戶只用從上下文中讀入物品信息就行了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章