新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 支持TCP/IP協(xié)議的新一代GSM/GPRS模塊及應(yīng)用

支持TCP/IP協(xié)議的新一代GSM/GPRS模塊及應(yīng)用

作者: 時間:2011-09-11 來源:網(wǎng)絡(luò) 收藏

實例

  在這一部分,我們將列出一些使用索尼愛立信GR47實例以供參考。第一個例子顯示了使用AT命令建立一個TCP會話的步驟,第二個則是嵌入式的范例。

  1.使用AT命令接入GPRS網(wǎng)

  GR47提供一系列AT命令來完成的功能,以簡化應(yīng)用集成的流程。相關(guān)的命令可以讓應(yīng)用設(shè)計者建立和取消UDP和TCP ,控制GPRS PDP context 的建立,傳送數(shù)據(jù),檢查IP的狀態(tài)信息等。

  啟動TCP會話功能的步驟如下所示:

  1. at+cgdcont=1,“IP”,“CMNET” *write PDP context information, connect to China Mobile GPRS network*

  2. at*e2ipa=1,1 *active IP session using stored PDP context*

  3. at*e2ipi=0 *return currently assigned IP address*

  4. at*e2ipo=1,“166.111.8.238”,23 *initiate a TCP connection to the module*

  5. at*e2ipc *close a currently opened IP connection*

  當(dāng)處于數(shù)據(jù)傳輸狀態(tài)中時,需要激活DTR來轉(zhuǎn)換回在線命令模式,ATO則被用于再次轉(zhuǎn)換回數(shù)據(jù)模式。

  2.嵌入式應(yīng)用接入GPRS網(wǎng)

  以下描述示范怎樣激活PDP文本、開始TCP對話以及接收數(shù)據(jù)。這只是整個程序的一部分,不能單獨(dú)運(yùn)行。

  /* Reset the IP error flag by reading it */

  gtf( APPS_IP_ERROR_TRIGGER );

  Err = pdpa( 1, 1 );

  prtf( “n PDP activate result = %dn”, Err );

  if ( Err == 0 )

  { Val = ipi( 0 );

  prtf( “ IP Address = %x”, Val );}

  else

  { prtf( “n PDP activation failed!n” );

  return;}

  Err = ipo( 1, SckNum );

  if( Err != 0 )

  { prtf( “ n TCP Socket open failed!n” );}

  else

  { prtf( “n TCP Socket Opened!n” );

  Err = tcpc( SckNum, Port, Address );

  if( (Err == 0) || (Err == TCP_CONNECTING) || (Err == TCP_CONNECTED) )

  { while( !Complete (gtb( APPS_IP_ERROR_STATUSBYTE ) == 0) )

  { int len;

  /* Receive some data */

  if( gtf( APPS_IP_DATA_RECVD ) )

  { prtf( “n IP DATA RECVD” );

  len = RXTX_SIZE;

  Err = tcpr( SckNum, RxTxBuf, len);

  if( Err != 0 )

  { prtf( “n *** Error in TCP Receive (%d)。 ***nn”, Err );}

  else

  { if( gtb( APPS_IP_TCPSTATUS_BYTE ) == TCP_CONNECTING )

  { prtf( “n Delaying while TCP Connect occurs.。.nn” );}

  else

  { prtf( “n Received %d bytes of data.nn”, len ); }

  }

  }

  }

  }

  Err = ipc( SckNum );

  if ( Err != 0 )

  { prtf( “n Socket close failed!n” );} }

  Err = pdpa( 0, 1 );

  prtf( “n PDP deactivate result = %dn”, Err );

  本文小結(jié)

  基于為很多應(yīng)用提供了更高級的解決方案,例如,車輛定位、遠(yuǎn)程抄表和遠(yuǎn)程銀行等。它具有無線通信的靈活性和移動性,協(xié)議提供對因特網(wǎng)“永遠(yuǎn)在線”的通信方式,以及相對于SMS、CSD等更為經(jīng)濟(jì)的解決方案。索尼愛立信GSM,TCP/IP協(xié)議及嵌入式應(yīng)用,是很完善的無線通信解決方案之一。

tcp/ip相關(guān)文章:tcp/ip是什么



上一頁 1 2 下一頁

評論


相關(guān)推薦

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

關(guān)閉