zoukankan      html  css  js  c++  java
  • 支援TCP/IP協議的新一代GSM/GPRS模組及應用支援TCP/IP协议的新一代GSM/GPRS模组及应用

    基于GSM/ GPRS的IP协议提供了与网际网路‘永远连线’的可能性,使之成为一种节约成本的选择。 為了開發基於IP協議的應用,系統設計師需要同時通曉無線網路和TCP/IP協議。为了开发基于IP协议的应用,系统设计师需要同时通晓无线网路和TCP/IP协议。 本文將詳細介紹支援TCP/IP協議和嵌入式應用的新力易利信模組及其應用實例。本文将详细介绍支援TCP/IP协议和嵌入式应用的新力易利信模组及其应用实例。

    各種各樣的接取技術被用於無線網路。各种各样的接取技术被用于无线网路。 在FDMA技術中,每個用戶被分配一個頻率,而TDMA技術則透過時間分隔用戶。在FDMA技术中,每个用户被分配一个频率,而TDMA技术则透过时间分隔用户。 在CDMA技術中,所有用戶在同一時間使用同一頻段發送訊號,分隔用戶透過各自被分配到的唯一程式碼來實現。在CDMA技术中,所有用户在同一时间使用同一频段发送讯号,分隔用户透过各自被分配到的唯一程式码来实现。 在2G系統中,數據傳輸主要是透過電路交換,即一個被分配給用戶的傳輸訊息通道,當一個用戶完成傳輸任務、讓出訊息通道後,該傳輸訊息通道才被提供給其他用戶使用。在2G系统中,数据传输主要是透过电路交换,即一个被分配给用户的传输讯息通道,当一个用户完成传输任务、让出讯息通道后,该传输讯息通道才被提供给其他用户使用。 由於猝發性是數據業務的基本特徵,當一個用戶不再有數據傳輸時,寬頻就處於荒廢狀態中。由于猝发性是数据业务的基本特征,当一个用户不再有数据传输时,宽频就处于荒废状态中。 在分組交換系統中,所有用戶分享同一個訊息通道,用戶則可以實現多工的功能。在分组交换系统中,所有用户分享同一个讯息通道,用户则可以实现多工的功能。 當一個用戶沒有需要傳輸的數據時,訊息通道就會被其他用戶所使用。当一个用户没有需要传输的数据时,讯息通道就会被其他用户所使用。 資訊包的傳輸方法可透過媒體存取控制(MAC)協議被編排。资讯包的传输方法可透过媒体存取控制(MAC)协议被编排。

    在網際網路上的資訊包傳輸全部基於IP協議。在网际网路上的资讯包传输全部基于IP协议。 無線網路將與網際網路整合,資訊包透過無線媒介無縫地傳輸至基於IP協議的網路,在傳輸前,為了能直接到達指定目的地,數據包必須根據TCP/IP協議封裝。无线网路将与网际网路整合,资讯包透过无线媒介无缝地传输至基于IP协议的网路,在传输前,为了能直接到达指定目的地,数据包必须根据TCP/IP协议封装。 在GPRS網路中也採取了IP協議進行傳輸。在GPRS网路中也采取了IP协议进行传输。 图1:基于GSM/GPRS的TCP/IP线路。

    就服務的靈活性來說,幾乎所有的GSM模組都可以連接到GPRS網路。就服务的灵活性来说,几乎所有的GSM模组都可以连接到GPRS网路。 通常情況下,根據TCP/IP協議棧的資訊打包功能並不是模組特徵的一部份。通常情况下,根据TCP/IP协议栈的资讯打包功能并不是模组特征的一部份。 在透過模組發送數據前,TCP/IP協議棧必須事先被開發,然而,只有很少的模組具有內嵌式的TCP/IP協議棧,數據可以透過模組直接被發送。在透过模组发送数据前,TCP/IP协议栈必须事先被开发,然而,只有很少的模组具有内嵌式的TCP/IP协议栈,数据可以透过模组直接被发送。 如此一來,應用開發周期被縮短,其執行能力也在很大程度上得到提高。如此一来,应用开发周期被缩短,其执行能力也在很大程度上得到提高。

    本文將簡要介紹TCP/IP協議及在GPRS網路中實現TCP/IP的必要條件,詳細敘述支援TCP/IP協議和嵌入式應用的新力易利信模組及其應用實例。本文将简要介绍TCP/IP协议及在GPRS网路中实现TCP/IP的必要条件,详细叙述支援TCP/IP协议和嵌入式应用的新力易利信模组及其应用实例。

    基於GPRS的TCP/IP協議基于GPRS的TCP/IP协议

    TCP/IP是為協同作業電腦、分享網路資源的一套協議。 TCP/IP是为协同作业电脑、分享网路资源的一套协议。 該協議成員包括IP、TCP、UDP等。该协议成员包括IP、TCP、UDP等。 TCP確保數據的正確傳送,如果對於一個資訊包來說,數據量太大,TCP則可將其分成若干組。 TCP确保数据的正确传送,如果对于一个资讯包来说,数据量太大,TCP则可将其分成若干组。 IP被用來為資訊包到達另一端尋找通道,每一個與網路相連接的工作站都有一個唯一IP地址,該IP地址為一個32位元數,它通常被寫成四個十進制數位,每一個代表8位元,例如,165.21.32.70是新力易利信網站伺服器的一個IP地址。 IP被用来为资讯包到达另一端寻找通道,每一个与网路相连接的工作站都有一个唯一IP地址,该IP地址为一个32位元数,它通常被写成四个十进制数位,每一个代表8位元,例如,165.21.32.70是新力易利信网站伺服器的一个IP地址。

    TCP/IP是一個無連接協議,資訊以分組方式進行傳輸,資訊包的最大容量在初始化過程中得以商定。 TCP/IP是一个无连接协议,资讯以分组方式进行传输,资讯包的最大容量在初始化过程中得以商定。 如果資訊超出其最大容量,則將被分成若干組分別傳送。如果资讯超出其最大容量,则将被分成若干组分别传送。 資訊包未得以按順序傳送甚至丟失及再次轉發的可能性是存在的,因此,TCP必須將序號、資訊來源和目的地通道數,以及其他資訊添加進數據包中,被稱為TCP包頭。资讯包未得以按顺序传送甚至丢失及再次转发的可能性是存在的,因此,TCP必须将序号、资讯来源和目的地通道数,以及其他资讯添加进数据包中,被称为TCP包头。 接收器端將利用該資訊來檢測數據包是否被正確地接收,因而加以整理。接收器端将利用该资讯来检测数据包是否被正确地接收,因而加以整理。 要直接將資訊包發送至正確的工作站,僅有TCP包頭,是不充分的。要直接将资讯包发送至正确的工作站,仅有TCP包头,是不充分的。 一個IP報頭必須被加在TCP包頭之上,源地址和目的地址被包括在IP包頭裏。一个IP报头必须被加在TCP包头之上,源地址和目的地址被包括在IP包头里。 發送資訊包至目的地,電腦將首先核對其自身的路由列表,如果目的地在自己的網路內,它將直接發送資訊包。发送资讯包至目的地,电脑将首先核对其自身的路由列表,如果目的地在自己的网路内,它将直接发送资讯包。 否則,它將發送資訊包至網路閘道,每一個網路閘道都有一個路由列表,資訊包將透過幾個單獨的路由節點到達目的地址。否则,它将发送资讯包至网路闸道,每一个网路闸道都有一个路由列表,资讯包将透过几个单独的路由节点到达目的地址。

    GPRS網提供網路功能將IP資訊包從行動用戶點傳送至外部網路。 GPRS网提供网路功能将IP资讯包从行动用户点传送至外部网路。 GPRS可以為IP地址提供多重選擇,包括公共地址、專用地址以及客戶代理地址。 GPRS可以为IP地址提供多重选择,包括公共地址、专用地址以及客户代理地址。 指定IP地址選擇權的GPRS機制被稱為接取點域名(APN)。指定IP地址选择权的GPRS机制被称为接取点域名(APN)。

    圖1顯示了基於GSM/GPRS的TCP/IP系統結構。图1显示了基于GSM/GPRS的TCP/IP系统结构。 因為IP地址的整體供應受到限制,一個GPRS網路供應商通常使用專用的、可動態分配地址,然而,公共網址選擇可由專門的客戶提供,專用網址則無法越過公共網進行作業。因为IP地址的整体供应受到限制,一个GPRS网路供应商通常使用专用的、可动态分配地址,然而,公共网址选择可由专门的客户提供,专用网址则无法越过公共网进行作业。 為連接公共網路,專用網址被轉換成公共網址。为连接公共网路,专用网址被转换成公共网址。 該轉換透過一個節點產生,該節點是專用的網路地址轉換(NAT)。该转换透过一个节点产生,该节点是专用的网路地址转换(NAT)。 多重專用地址可被映射成一個公共地址,對於基於IP協議的應用,和有線網路一樣,在無線網路中它們以相同的方式工作。多重专用地址可被映射成一个公共地址,对于基于IP协议的应用,和有线网路一样,在无线网路中它们以相同的方式工作。 當GPRS對話啟動時,大多數服務供應商也將監控數據的傳輸流量,如果在特定的一段時間內沒有數據傳輸,其連接將被斷開。当GPRS对话启动时,大多数服务供应商也将监控数据的传输流量,如果在特定的一段时间内没有数据传输,其连接将被断开。

    因為TCP/IP資訊包是透過GSM網傳輸的,所以,必須考慮TCP/IP協議棧的一些參數配置。因为TCP/IP资讯包是透过GSM网传输的,所以,必须考虑TCP/IP协议栈的一些参数配置。 基於GPRS的TCP應當支援適當的窗口尺寸以利於最佳化端對端連接的頻寬延遲,默認接收和發送緩衝器比例應當增加到容納足夠大的窗口,被銜接層支援的IP數據包的最大值是最大傳輸單元(MTU)。基于GPRS的TCP应当支援适当的窗口尺寸以利于最佳化端对端连接的频宽延迟,默认接收和发送缓冲器比例应当增加到容纳足够大的窗口,被衔接层支援的IP数据包的最大值是最大传输单元(MTU)。 在高誤碼率的鏈路上,較小的MTU尺寸增加了成功傳輸的機會,默認IP最大傳輸單元值為576位元組。在高误码率的链路上,较小的MTU尺寸增加了成功传输的机会,默认IP最大传输单元值为576位元组。 依據鏈路條件和ARQ的配置,它有可能增加MTU大小到一個較大的值,一個較大的MTU允許TCP更快地增加擁擠窗口。依据链路条件和ARQ的配置,它有可能增加MTU大小到一个较大的值,一个较大的MTU允许TCP更快地增加拥挤窗口。 對於基於GPRS的TCP/IP協議的設計,設計師必須考慮到這些問題。对于基于GPRS的TCP/IP协议的设计,设计师必须考虑到这些问题。

    新力易利信機對機通訊模組 新力易利信机对机通讯模组

    很多GSM模組可以透過GSM/GPRS直接接取網際網路,如果模組上沒有TCP/IP協議棧,它則必須在其應用或周邊的微處理器中體現。很多GSM模组可以透过GSM/GPRS直接接取网际网路,如果模组上没有TCP/IP协议栈,它则必须在其应用或周边的微处理器中体现。 新力易利信GR47 /48模組正是一種內建TCP/IP協議棧的模組之一。新力易利信GR47 /48模组正是一种内建TCP/IP协议栈的模组之一。 為開發基於GSM/GPRS網的TCP/IP應用,新力易利信提供了一套完整工具,其機對機通訊商業解決方案(M2mpower Business Solution)是一個強有力的支援環境,專為促進提高成本效益比率的無線機對機應用的研發而設計。为开发基于GSM/GPRS网的TCP/IP应用,新力易利信提供了一套完整工具,其机对机通讯商业解决方案(M2mpower Business Solution)是一个强有力的支援环境,专为促进提高成本效益比率的无线机对机应用的研发而设计。 M2mpower使開發者透過運用特定的開發工具,能夠更容易地將無線應用直接嵌入相容的新力易利信機對機產品中。 M2mpower使开发者透过运用特定的开发工具,能够更容易地将无线应用直接嵌入相容的新力易利信机对机产品中。 M2mpower與可程式無線元件GR47/48一同被導入,其腳本語言是設立在產業級ANSI C語言的基礎之上,使開發者將現有的應用可以平滑地轉換到M2mpower。 M2mpower与可程式无线元件GR47/48一同被导入,其脚本语言是设立在产业级ANSI C语言的基础之上,使开发者将现有的应用可以平滑地转换到M2mpower。 图2:GR47作业系统框图。

    圖2顯示了GR47即時作業系統的結構。图2显示了GR47即时作业系统的结构。 新款可程式無線模組GR47/48提供了完整全面的功能。新款可程式无线模组GR47/48提供了完整全面的功能。 該模組包括一個內建TCP/TP協議棧,以便更有效地使用GPRS。该模组包括一个内建TCP/TP协议栈,以便更有效地使用GPRS。 它允許一個TCP/UDP傳輸機制以最小的前期配置和作業來被使用。它允许一个TCP/UDP传输机制以最小的前期配置和作业来被使用。 其內嵌控制器方便整合客戶的應用,減少外部控制器的需求,例如在警報、儀表抄送和自動售貨等應用上。其内嵌控制器方便整合客户的应用,减少外部控制器的需求,例如在警报、仪表抄送和自动售货等应用上。 GR47和GR48分別支援雙頻GSM寬頻900MHz/1800MHz和850MHz/1900MHz,它們都可透過SMS短消息服務、CSD、HSCSD或GPRS來發送或接收數據,並可處理語音及傳真。 GR47和GR48分别支援双频GSM宽频900MHz/1800MHz和850MHz/1900MHz,它们都可透过SMS短消息服务、CSD、HSCSD或GPRS来发送或接收数据,并可处理语音及传真。 其TCP/IP協議棧亦可透過AT命令或嵌入式應用進行存取。其TCP/IP协议栈亦可透过AT命令或嵌入式应用进行存取。

    GR47/48模組具有很多強大的特徵。 GR47/48模组具有很多强大的特征。 其TCP/UDP會話可以透過一個命令啟動;它還提供為統一資源定位器(URL)查詢IP地址的功能;最有用的特點之一是IP伺服器偵聽功能,該功能允許通訊模組啟動與網路的對話,例如,一個被分配的IP地址無需連接任何部份,只要等待該單元接收一個基於IP的連接導入請求,即可實現。其TCP/UDP会话可以透过一个命令启动;它还提供为统一资源定位器(URL)查询IP地址的功能;最有用的特点之一是IP伺服器侦听功能,该功能允许通讯模组启动与网路的对话,例如,一个被分配的IP地址无需连接任何部份,只要等待该单元接收一个基于IP的连接导入请求,即可实现。

    應用實例 应用实例

    在這一部份,我們將列出一些使用新力易利信GR47模組的應用實例以供參考。在这一部份,我们将列出一些使用新力易利信GR47模组的应用实例以供参考。 第一個例子顯示了使用AT命令設立一個TCP會話的步驟,第二個則是嵌入式應用的範例。第一个例子显示了使用AT命令设立一个TCP会话的步骤,第二个则是嵌入式应用的范例。

    1.使用AT命令接取GPRS網 1.使用AT命令接取GPRS网

    GR47提供一系列AT命令來完成TCP/IP協議的功能,以簡化應用整合的流程。 GR47提供一系列AT命令来完成TCP/IP协议的功能,以简化应用整合的流程。 相關的命令可以讓應用設計者設立和取消UDP和TCP協議,控制GPRS PDP context的設立,傳送數據,檢查IP的狀態資訊等。相关的命令可以让应用设计者设立和取消UDP和TCP协议,控制GPRS PDP context的设立,传送数据,检查IP的状态资讯等。

    啟動TCP會話功能的步驟如下所示:启动TCP会话功能的步骤如下所示:

    1. at+cgdcont=1,"IP","CMNET" \*write PDP context information, connect to China Mobile GPRS network*\ 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*\ 2. at*e2ipa=1,1 \*active IP session using stored PDP context*\

    3. at*e2ipi=0 \*return currently assigned IP address*\ 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*\ 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*\ 5. at*e2ipc \*close a currently opened IP connection*\

    當模組處於數據傳輸狀態中時,需要啟動DTR來轉換回線上命令模式,ATO則被用於再次轉換回數據模式。当模组处于数据传输状态中时,需要启动DTR来转换回线上命令模式,ATO则被用于再次转换回数据模式。

    2.嵌入式應用接取GPRS網 2.嵌入式应用接取GPRS网

    以下描述示範怎樣啟動PDP文本、開始TCP對話以及接收數據。以下描述示范怎样启动PDP文本、开始TCP对话以及接收数据。 這只是整個程式的一部份,不能單獨執行。这只是整个程式的一部份,不能单独执行。

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

    gtf( APPS_IP_ERROR_TRIGGER ); gtf( APPS_IP_ERROR_TRIGGER );

    Err = pdpa( 1, 1 ); Err = pdpa( 1, 1 );

    prtf( "\n PDP activate result = %d\n", Err ); prtf( "\n PDP activate result = %d\n", Err );

    if ( Err == 0 ) if ( Err == 0 )

    { Val = ipi( 0 ); { Val = ipi( 0 );

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

    else

    { prtf( "\n PDP activation failed!\n" ); { prtf( "\n PDP activation failed!\n" );

    return;}

    Err = ipo( 1, &SckNum ); Err = ipo( 1, &SckNum );

    if( Err != 0 ) if( Err != 0 )

    { prtf( " \n TCP Socket open failed!\n" );} { prtf( " \n TCP Socket open failed!\n" );}

    else

    { prtf( "\n TCP Socket Opened!\n" ); { prtf( "\n TCP Socket Opened!\n" );

    Err = tcpc( SckNum, Port, Address ); Err = tcpc( SckNum, Port, Address );

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

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

    { int len; { int len;

    /* Receive some data */ /* Receive some data */

    if( gtf( APPS_IP_DATA_RECVD ) ) if( gtf( APPS_IP_DATA_RECVD ) )

    { prtf( "\n IP DATA RECVD" ); { prtf( "\n IP DATA RECVD" );

    len = RXTX_SIZE; len = RXTX_SIZE;

    Err = tcpr( SckNum, RxTxBuf, &len); Err = tcpr( SckNum, RxTxBuf, &len);

    if( Err != 0 ) if( Err != 0 )

    { prtf( "\n *** Error in TCP Receive (%d). ***\n\n", Err );} { prtf( "\n *** Error in TCP Receive (%d). ***\n\n", Err );}

    else

    { if( gtb( APPS_IP_TCPSTATUS_BYTE ) == TCP_CONNECTING ) { if( gtb( APPS_IP_TCPSTATUS_BYTE ) == TCP_CONNECTING )

    { prtf( "\n Delaying while TCP Connect occurs...\n\n" );} { prtf( "\n Delaying while TCP Connect occurs...\n\n" );}

    else

    { prtf( "\n Received %d bytes of data.\n\n", len ); } { prtf( "\n Received %d bytes of data.\n\n", len ); }

    }

    }

    }

    }

    Err = ipc( SckNum ); Err = ipc( SckNum );

    if ( Err != 0 ) if ( Err != 0 )

    { prtf( "\n Socket close failed!\n" );} } { prtf( "\n Socket close failed!\n" );} }

    Err = pdpa( 0, 1 ); Err = pdpa( 0, 1 );

    prtf( "\n PDP deactivate result = %d\n", Err ); prtf( "\n PDP deactivate result = %d\n", Err );

    本文小結 本文小结

    基於GSM/GPRS的TCP/IP協議為很多應用提供了更高級的解決方案,例如,車輛定位、遠端抄表和遠端銀行等。基于GSM/GPRS的TCP/IP协议为很多应用提供了更高级的解决方案,例如,车辆定位、远端抄表和远端银行等。 它具有無線通訊的靈活性和行動性,TCP/IP協議提供對網際網路‘永遠連線’的通訊方式,以及相對於SMS、CSD等更為經濟的解決方案。它具有无线通讯的灵活性和行动性,TCP/IP协议提供对网际网路‘永远连线’的通讯方式,以及相对于SMS、CSD等更为经济的解决方案。 新力易利信GSM模組,支援TCP/IP協議及嵌入式應用,是很完善的無線通訊解決方案之一。新力易利信GSM模组,支援TCP/IP协议及嵌入式应用,是很完善的无线通讯解决方案之一。

    作者:黃威 作者:黄威

    數通通訊技術有限公司数通通讯技术有限公司

    E-mail: vincent.huang@ims.net.cn E-mail: vincent.huang@ims.net.cn

  • 相关阅读:
    从乙方到甲方,我在做什么
    局域网ARP攻击防护
    【中间件安全】WebSphere安全加固规范
    【中间件安全】Jboss安全加固规范
    【中间件安全】IIS6安全加固规范
    【中间件安全】Weblogic 安全加固规范
    【中间件安全】Nginx 安全加固规范
    【中间件安全】Tomcat 安全加固规范
    openresty开发系列33--openresty执行流程之2重写赋值阶段
    openresty开发系列32--openresty执行流程之1初始化阶段
  • 原文地址:https://www.cnblogs.com/pony/p/1172222.html
Copyright © 2011-2022 走看看