史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 網路軟硬體架設技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-08-23, 08:25 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 支援TCP/IP協議的新一代GSM/GPRS模組及應用

支援TCP/IP協議的新一代GSM/GPRS模組及應用

基於GSM/GPRS的IP協議提供了與網際網路‘永遠連線’的可能性,使之成為一種節約成本的選擇。為了開發基於IP協議的應用,系統設計師需要同時通曉無線網路和TCP/IP協議。本文將詳細介紹支援TCP/IP協議和嵌入式應用的新力易利信模組及其應用實例。

各種各樣的接取技術被用於無線網路。在FDMA技術中,每個用戶被分配一個頻率,而TDMA技術則透過時間分隔用戶。在CDMA技術中,所有用戶在同一時間使用同一頻段發送訊號,分隔用戶透過各自被分配到的唯一程式碼來實現。在2G系統中,數據傳輸主要是透過電路交換,即一個被分配給用戶的傳輸訊息通道,當一個用戶完成傳輸任務、讓出訊息通道後,該傳輸訊息通道才被提供給其他用戶使用。由於猝發性是數據業務的基本特徵,當一個用戶不再有數據傳輸時,寬頻就處於荒廢狀態中。在分組交換系統中,所有用戶分享同一個訊息通道,用戶則可以實現多工的功能。當一個用戶沒有需要傳輸的數據時,訊息通道就會被其他用戶所使用。資訊包的傳輸方法可透過媒體存取控制(MAC)協議被編排。

在網際網路上的資訊包傳輸全部基於IP協議。無線網路將與網際網路整合,資訊包透過無線媒介無縫地傳輸至基於IP協議的網路,在傳輸前,為了能直接到達指定目的地,數據包必須根據TCP/IP協議封裝。在GPRS網路中也採取了IP協議進行傳輸。

就服務的靈活性來說,幾乎所有的GSM模組都可以連接到GPRS網路。通常情況下,根據TCP/IP協議棧的資訊打包功能並不是模組特徵的一部份。在透過模組發送數據前,TCP/IP協議棧必須事先被開發,然而,只有很少的模組具有內嵌式的TCP/IP協議棧,數據可以透過模組直接被發送。如此一來,應用開發周期被縮短,其執行能力也在很大程度上得到提高。

本文將簡要介紹TCP/IP協議及在GPRS網路中實現TCP/IP的必要條件,詳細敘述支援TCP/IP協議和嵌入式應用的新力易利信模組及其應用實例。

基於GPRS的TCP/IP協議

TCP/IP是為協同作業電腦、分享網路資源的一套協議。該協議成員包括IP、TCP、UDP等。TCP確保數據的正確傳送,如果對於一個資訊包來說,數據量太大,TCP則可將其分成若干組。IP被用來為資訊包到達另一端尋找通道,每一個與網路相連接的工作站都有一個唯一IP地址,該IP地址為一個32位元數,它通常被寫成四個十進制數位,每一個代表8位元,例如,165.21.32.70是新力易利信網站伺服器的一個IP地址。

TCP/IP是一個無連接協議,資訊以分組方式進行傳輸,資訊包的最大容量在初始化過程中得以商定。如果資訊超出其最大容量,則將被分成若干組分別傳送。資訊包未得以按順序傳送甚至丟失及再次轉發的可能性是存在的,因此,TCP必須將序號、資訊來源和目的地通道數,以及其他資訊添加進數據包中,被稱為TCP包頭。接收器端將利用該資訊來檢測數據包是否被正確地接收,因而加以整理。要直接將資訊包發送至正確的工作站,僅有TCP包頭,是不充分的。一個IP報頭必須被加在TCP包頭之上,源地址和目的地址被包括在IP包頭堙C發送資訊包至目的地,電腦將首先核對其自身的路由列表,如果目的地在自己的網路內,它將直接發送資訊包。否則,它將發送資訊包至網路閘道,每一個網路閘道都有一個路由列表,資訊包將透過幾個單獨的路由節點到達目的地址。

GPRS網提供網路功能將IP資訊包從行動用戶點傳送至外部網路。GPRS可以為IP地址提供多重選擇,包括公共地址、專用地址以及客戶代理地址。指定IP地址選擇權的GPRS機制被稱為接取點域名(APN)。

圖1顯示了基於GSM/GPRS的TCP/IP系統結構。因為IP地址的整體供應受到限制,一個GPRS網路供應商通常使用專用的、可動態分配地址,然而,公共網址選擇可由專門的客戶提供,專用網址則無法越過公共網進行作業。為連接公共網路,專用網址被轉換成公共網址。該轉換透過一個節點產生,該節點是專用的網路地址轉換(NAT)。多重專用地址可被映射成一個公共地址,對於基於IP協議的應用,和有線網路一樣,在無線網路中它們以相同的方式工作。當GPRS對話啟動時,大多數服務供應商也將監控數據的傳輸流量,如果在特定的一段時間內沒有數據傳輸,其連接將被斷開。

因為TCP/IP資訊包是透過GSM網傳輸的,所以,必須考慮TCP/IP協議棧的一些參數配置。基於GPRS的TCP應當支援適當的窗口尺寸以利於最佳化端對端連接的頻寬延遲,默認接收和發送緩衝器比例應當增加到容納足夠大的窗口,被銜接層支援的IP數據包的最大值是最大傳輸單元(MTU)。在高誤碼率的鏈路上,較小的MTU尺寸增加了成功傳輸的機會,默認IP最大傳輸單元值為576位元組。依據鏈路條件和ARQ的配置,它有可能增加MTU大小到一個較大的值,一個較大的MTU允許TCP更快地增加擁擠窗口。對於基於GPRS的TCP/IP協議的設計,設計師必須考慮到這些問題。

新力易利信機對機通訊模組

很多GSM模組可以透過GSM/GPRS直接接取網際網路,如果模組上沒有TCP/IP協議棧,它則必須在其應用或周邊的微處理器中體現。新力易利信GR47/48模組正是一種內建TCP/IP協議棧的模組之一。為開發基於GSM/GPRS網的TCP/IP應用,新力易利信提供了一套完整工具,其機對機通訊商業解決方案(M2mpower Business Solution)是一個強有力的支援環境,專為促進提高成本效益比率的無線機對機應用的研發而設計。M2mpower使開發者透過運用特定的開發工具,能夠更容易地將無線應用直接嵌入相容的新力易利信機對機產品中。M2mpower與可程式無線元件GR47/48一同被導入,其腳本語言是設立在產業級ANSI C語言的基礎之上,使開發者將現有的應用可以平滑地轉換到M2mpower。

圖2顯示了GR47即時作業系統的結構。新款可程式無線模組GR47/48提供了完整全面的功能。該模組包括一個內建TCP/TP協議棧,以便更有效地使用GPRS。它允許一個TCP/UDP傳輸機制以最小的前期配置和作業來被使用。其內嵌控制器方便整合客戶的應用,減少外部控制器的需求,例如在警報、儀表抄送和自動售貨等應用上。GR47和GR48分別支援雙頻GSM寬頻900MHz/1800MHz和850MHz/1900MHz,它們都可透過SMS短消息服務、CSD、HSCSD或GPRS來發送或接收數據,並可處理語音及傳真。其TCP/IP協議棧亦可透過AT命令或嵌入式應用進行存取。

GR47/48模組具有很多強大的特徵。其TCP/UDP會話可以透過一個命令啟動;它還提供為統一資源定位器(URL)查詢IP地址的功能;最有用的特點之一是IP伺服器偵聽功能,該功能允許通訊模組啟動與網路的對話,例如,一個被分配的IP地址無需連接任何部份,只要等待該單元接收一個基於IP的連接導入請求,即可實現。

應用實例

在這一部份,我們將列出一些使用新力易利信GR47模組的應用實例以供參考。第一個例子顯示了使用AT命令設立一個TCP會話的步驟,第二個則是嵌入式應用的範例。

1.使用AT命令接取GPRS網

GR47提供一系列AT命令來完成TCP/IP協議的功能,以簡化應用整合的流程。相關的命令可以讓應用設計者設立和取消UDP和TCP協議,控制GPRS PDP context的設立,傳送數據,檢查IP的狀態資訊等。

啟動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*\

當模組處於數據傳輸狀態中時,需要啟動DTR來轉換回線上命令模式,ATO則被用於再次轉換回數據模式。

2.嵌入式應用接取GPRS網

以下描述示範怎樣啟動PDP文本、開始TCP對話以及接收數據。這只是整個程式的一部份,不能單獨執行。

/* Reset the IP error flag by reading it */
gtf( APPS_IP_ERROR_TRIGGER );
Err = pdpa( 1, 1 );
prtf( "\n PDP activate result = %d\n", 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). ***\n\n", Err );}
else
{ if( gtb( APPS_IP_TCPSTATUS_BYTE ) == TCP_CONNECTING )
{ prtf( "\n Delaying while TCP Connect occurs...\n\n" );}
else
{ prtf( "\n Received %d bytes of data.\n\n", len ); }
}
}
}
}
Err = ipc( SckNum );
if ( Err != 0 )
{ prtf( "\n Socket close failed!\n" );} }
Err = pdpa( 0, 1 );
prtf( "\n PDP deactivate result = %d\n", Err );

本文小結

基於GSM/GPRS的TCP/IP協議為很多應用提供了更高級的解決方案,例如,車輛定位、遠端抄表和遠端銀行等。它具有無線通訊的靈活性和行動性,TCP/IP協議提供對網際網路‘永遠連線’的通訊方式,以及相對於SMS、CSD等更為經濟的解決方案。新力易利信GSM模組,支援TCP/IP協議及嵌入式應用,是很完善的無線通訊解決方案之一。

作者:黃威
數通通訊技術有限公司
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 02:44 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1