以下內容摘抄自互聯網:
問:
我剛接觸GPRS,了解AT指令方式如何實現的GPRS網絡通信,但對PPP撥號不太了解,有以下問題:
1)ppp撥號與用at命令實現gprs網絡通信有什么區別?ppp撥號完成的哪一步驟?
2)看了一些資料,ppp撥號是不是只是聯網,自己還要按TCP或UDP編寫socket,實現網絡通信?
3)一般目前的使用gprs模塊的產品采用哪一種開發的方式?在嵌入式linux項目開發中,這兩種方式如何進行選擇?
4)3G模塊開發上與之有哪些區別?
我看資料來理解這兩種方式使用協議棧不同,ppp是外置協議棧,AT命令一般把tcp/ip協議棧內嵌到模塊處理軟件中。
對嵌入式linux系統而言ppp協議在內核中加載,還要加自動撥號處理。但之后還要做哪些工作,如數據收發是否要寫socket或經處理后發送,其流程如何就不清楚了。
at命令是gprs模塊通過RS232與系統進行數據交互,底層不需要做處理。
但兩者的優缺點,並不太了解。
答1:
1)ppp撥號與用at命令實現gprs網絡通信有什么區別?ppp撥號完成的哪一步驟?
先通過AT命令,讓設備激活PDP,然后PC切換到數據模式,由操作系統發起PPP協商,獲取IP地址和鑒權,然后就可以上網了。
2)看了一些資料,ppp撥號是不是只是聯網,自己還要按TCP或UDP編寫socket,實現網絡通信?
撥號已經不需要你自己做了,因為已經建立了Modem的通道,就等於插上網線了,其他的自己的功能自己玩。
3)一般目前的使用gprs模塊的產品采用哪一種開發的方式?在嵌入式linux項目開發中,這兩種方式如何進行選擇?
不明白你啥意思,基本上都采用Modem撥號即可。
4)3G模塊開發上與之有哪些區別?
沒有區別,都是上網,功能復雜了一些,你根據需要選擇,如果只是上網,基本上沒有變化。
答2:
1)ppp撥號與用at命令實現gprs網絡通信有什么區別?ppp撥號完成的哪一步驟?
ppp撥號處理實現at的方式,還虛擬出了網卡,讓網絡通信標准化。
2)看了一些資料,ppp撥號是不是只是聯網,自己還要按TCP或UDP編寫socket,實現網絡通信?
ppp只是做到網卡這一步,通信還需要socket編程。
3)一般目前的使用gprs模塊的產品采用哪一種開發的方式?在嵌入式linux項目開發中,這兩種方式如何進行選擇?
linux我覺得用ppp比較好。可以使編程結構簡單,移植好。當然如果程序特別特別小,還是可以用at的
4)3G模塊開發上與之有哪些區別?
對於ppp來說,才不管你3G, 2G.這就是好處。
中國移動在GPRS網中建立了許多相當於ISP的GPRS網關支持結點(GGSN),以連接GPRS網與外部的Internet網絡。要使用GPRS功能首先要登錄GPRS網絡中的GGSN,這個工作可以通過相關AT命令完成。
登錄的基本過程如下:通過AT+CGATT=?命令檢查MC35i是否附着GPRS,返回0為未附着,返回1為已附着。若沒有附着,則發送AT+CGATT=1命令進行附着。"AT+CGDCONT=1,IP,CMNET"定義PDP(分組數據協議)上下文,其中1為PDP上下文標識,IP表明將要傳輸的數據包類型為IP數據包,CMNET為中國移動的GPRS網關;ATD*99***1#命令進行數據撥號,其中1與上面的PDP上下文標識對應。在上述AT命令正常執行后,MC35i就登錄到GPRS網絡。但由於MC35i沒有TCP/IP協議棧,控制器必須自行處理相關的協議解析工作才能進行數據傳輸。為了能夠進行IP數據包的傳輸,就必須首先實現數據鏈路層PPP協議。
以PPP撥號實現GPRS與因特網的數據通信的具體實現流程:
1、GPRS 模塊的ECHO關閉,MCU發送ATEOV1到GPRS模塊。
2、完成接入初始化:AT+CGDCONT=1,“IP”,“CMNET”。
3、呼叫CMNET:ATD*99***1#。
4、MODEN返回正確的CENNECT信息。
5、終端主動發送LCP數據包(REQ,ACK,Reject)進行鏈路協商,據服務器ISP提供商的 不同可能也有不同
ISP發生的選項若終端不接愛,則返回Reject
服務器ISP發送LCP(Request)終端ACK則無需拒絕Reject;
任何一方接受請求時發ACK,不處理NAK數據包
不可鏈路則重復發送(程序和MCU機制完成)直至連接成功
6、LCP配置成功進入PAP認證,目前中移動用明文密碼認證身份,認證通過讀取SIM卡信息來完成身份認證,以電話號碼來識別用戶名和密碼,因此發送用戶名和密碼的數據包可以為NULL。
7、PAP通過以后需要進行IP協調配置(IPCP),選項3配置(IP地址)而網關與DNS配置信息可省略,發送NAK選項3配置,發00.00.00.00到服務器,返回終端目前的IP,
這一IP可用否,要看CMNET的設置
若CMNET將局域網內部直接路由關閉后,可以通過PC+GPRS方式利用PING測試,測試通過則可用。
否則就要進行IP地址和端口的映射轉換后才可進行通訊。
8、IPCP通過后,要有相關NCP協議進行網絡層協議的選擇TCP/IP或UDP,進行數據傳輸。本方案之中,可以無需考慮相關的網絡層數據傳輸協議
9、模式轉換,無需中斷連接的前提下GRRS的數據模式――― AT Command狀態使用 +++命令切換,若切回數據狀態輸入ATO到CMS91 GPPRS MODULE。
10.中斷GPRS 的PPP連接,可用LCP包完成///或用AT Command狀態的ATH指令掛斷目前的連接。
11. GPRS接到INTERNET后,信道正在通信時,任何外來的呼叫都會沒有響應。
若無數據傳輸,這時呼叫信息可達GPRS MODULE ,由於MODULE 此時,在數據狀態,在沒有使用MULTIPLEX情況下只能通過RING腳得到信息,MCU如要處理過個呼叫可切換到AT Command狀態。