摘要: 通用無(wú)線分組業(yè)務(wù)( GPRS) 是一種基于全球移動(dòng)通信系統(tǒng)( GSM) 的無(wú)線分組交換技術(shù), 提供端到端的、廣域的無(wú)線IP 連接, 具有永遠(yuǎn)在線等特點(diǎn)。介紹了基于GPRS 網(wǎng)絡(luò)的數(shù)據(jù)終端單元( DTU) 。該單元是由以ARM 芯片S3C44B0X 和GPRS 模塊G20 為核心的硬件和軟件組成。在概括工業(yè)GPRS 監(jiān)控系統(tǒng)構(gòu)成的基礎(chǔ)上, 介紹了GPRS DTU 硬件設(shè)計(jì), GPRS DTU 軟件是由μC / OSⅡ操作系統(tǒng)、TCP / IP 協(xié)議、點(diǎn)對(duì)點(diǎn)協(xié)議組成。該單元使用戶通過(guò)GPRS 網(wǎng)絡(luò)實(shí)現(xiàn)用戶設(shè)備和用戶數(shù)據(jù)中心之間的數(shù)據(jù)傳輸。
通用無(wú)線分組業(yè)務(wù)GPRS( General Packet RadioService ) 是第2 代移動(dòng)通信技術(shù)全球移動(dòng)通信系統(tǒng)( GSM) 邁向第3 代( 3G) 的過(guò)渡技術(shù), 是由英國(guó)BTCellnet 公司早在1993 年提出的, 是GSM Phase2 +( 1997 年) 規(guī)范實(shí)現(xiàn)的內(nèi)容之一, 是一種基于GSM 的移動(dòng)分組數(shù)據(jù)業(yè)務(wù), 面向用戶提供移動(dòng)分組的IP 或者X.25 連接。GPRS 在現(xiàn)有的GSM 網(wǎng)絡(luò)基礎(chǔ)上疊加了一個(gè)新的網(wǎng)絡(luò), 同時(shí)在網(wǎng)絡(luò)上增加硬件設(shè)備和軟件升級(jí), 形成了一個(gè)新的網(wǎng)絡(luò)邏輯實(shí)體, 提供端到端的、廣域的無(wú)線IP 連接, 為構(gòu)建低成本的無(wú)線廣域工業(yè)監(jiān)控網(wǎng)絡(luò)提供了可能。GPRS 數(shù)據(jù)終端單元( GPRS DTU) 無(wú)需后臺(tái)計(jì)算機(jī)的支持, 充分利用GPRS 網(wǎng)絡(luò)的“永遠(yuǎn)在線, 接入速度快, 采用數(shù)據(jù)流量計(jì)費(fèi)方式”的特點(diǎn), 具有無(wú)可比擬的性價(jià)比優(yōu)勢(shì), 特別適用于電力系統(tǒng)自動(dòng)化、工業(yè)監(jiān)控、環(huán)境監(jiān)測(cè)、交通管理等行業(yè)的遠(yuǎn)程傳輸數(shù)據(jù)應(yīng)用。
用戶設(shè)備通過(guò)RS -232 和GPRS DTU 相連, 將數(shù)據(jù)傳入DTU。進(jìn)入DTU后的數(shù)據(jù)被GPRS 模塊封裝成適合于網(wǎng)絡(luò)通信的數(shù)據(jù)包后, 被發(fā)送至GPRS 網(wǎng)絡(luò), 再通過(guò)GPRS 網(wǎng)絡(luò)進(jìn)入Internet 上傳輸, 最后被指定IP 地址的用戶數(shù)據(jù)中心讀取。工業(yè)GPRS 監(jiān)控系統(tǒng)的構(gòu)成如圖1 所示。
在本系統(tǒng)中, GPRS DTU 采用的硬件芯片主要有ARM 芯片S3C 44 B0X 和MOTOROLA 的GPRS 通信.模塊G 2 0 。S3C 44 B0X 是由SAM SUNG 公司推出的16 / 32 位RISC 處理器( 66 MHz) , 它包括了Thumb 代碼壓縮器, 1 個(gè)片上的ICE 斷電調(diào)試支持和1 個(gè)32位的硬件乘法器。
本應(yīng)用中ARM 芯片實(shí)現(xiàn)與GPRS模塊的數(shù)據(jù)通信( 可采用UART 通信方式或USB 通信方式) , 控制數(shù)據(jù)信號(hào)采集設(shè)備的工作, 進(jìn)行指示燈控制等。G20 是全新的嵌入式GSM 模塊, 采用最先進(jìn)的技術(shù)以滿足數(shù)據(jù)及語(yǔ)音通信市場(chǎng)。G20 的主要特性有: TCP / IP 協(xié)議棧、GSM 頻段EGSM900 / 1 800 MHz,GSM850 / 1 900 MHz, GPRS 時(shí)隙class 8, MO / MT SMS、傳真、通過(guò)串口的STK 功能、RS - 232 / USB 接口、寬溫度工作范圍等。G20 的硬件結(jié)構(gòu)包括主控制器,與GPRS 網(wǎng)通信的接收模塊和發(fā)送模塊, 存儲(chǔ)器件,電源管理和音頻管理模塊, 接口模塊等。G20 通過(guò)70 個(gè)引腳的接口模塊實(shí)現(xiàn)與外部電路的數(shù)據(jù)交換。其中, 主要包括: UART 通信接口、USB 通信接口、SPI 總線接口實(shí)現(xiàn)與SIM 卡的數(shù)據(jù)交換和音頻信號(hào)輸入/ 輸出接口等。GPRS DTU 的結(jié)構(gòu)圖如圖2 所示。
GPRS DTU 的軟件是由操作系統(tǒng)、TCP / IP 協(xié)議、點(diǎn)對(duì)點(diǎn)協(xié)議( PPP ) 等組成。
操作系統(tǒng)采用μC / OSⅡ, 它是一個(gè)公開(kāi)源代碼的占先式多任務(wù)的微內(nèi)核RTOS, 其特點(diǎn)是: 公開(kāi)源代碼, 代碼結(jié)構(gòu)清晰、明了, 注釋詳盡, 組織有條理,可移植性好, 可裁減, 可固化, 內(nèi)核屬于搶占式, 最多可以管理60 個(gè)任務(wù)。
TCP / IP 通信協(xié)議分別由傳輸控制通信協(xié)議( TCP ) 及因特網(wǎng)通信協(xié)議( IP ) 2 部分組成。TCP /IP 模型如圖3 所示。工業(yè)控制傳輸領(lǐng)域?qū)硬捎肨CP協(xié)議, 不用UDP 協(xié)議, 因?qū)崟r(shí)監(jiān)控系統(tǒng)中傳輸量不大, 而可靠性要求較高。TCP 協(xié)議為面向?qū)ο蟮耐ㄐ艆f(xié)議, 其主要目的是提供數(shù)據(jù)的傳輸并確保其傳輸無(wú)誤, 具有錯(cuò)誤偵測(cè)、數(shù)據(jù)復(fù)原及數(shù)據(jù)重新傳送等功能。TCP 在傳輸數(shù)據(jù)之前, 會(huì)先在主機(jī)間( 例如服務(wù)器端和客戶端)建立通信鏈接, 通過(guò)此通信鏈接, 數(shù)據(jù)可在計(jì)算機(jī)間相互傳輸。
此設(shè)計(jì)中采用的是LwIP ( Light weight IP) , 它是瑞士計(jì)算機(jī)科學(xué)院Adam Dunkels 等開(kāi)發(fā)的一套用于嵌入式系統(tǒng)的開(kāi)放源代碼的TCP / IP 協(xié)議棧。LwIP 具有以下特性: 支持多網(wǎng)絡(luò)接口下的IP 轉(zhuǎn)發(fā),支持ICMP 協(xié)議, 包括實(shí)驗(yàn)性擴(kuò)展的UDP, 阻塞控制、往返時(shí)間( RTT) 估算、快速恢復(fù)、快速轉(zhuǎn)發(fā)的TCP , 提供專(zhuān)門(mén)的內(nèi)部回調(diào)功能用于提高應(yīng)用程序性能, 可選擇的BerkeleyAPI 接口等。LwIP 可以是單線程運(yùn)行, 即只有1 個(gè)tcpip 線程, 負(fù)責(zé)處理所有的tcp 連接, 各種網(wǎng)絡(luò)程序都通過(guò)tcpip 線程與網(wǎng)絡(luò)交互。但LwIP 也可以多線程運(yùn)行,以提高效率和降低編程的復(fù)雜度。可以通過(guò)下面的函數(shù)創(chuàng)建新線程:
void sys_thread_new ( void ( *thread ) ( void*arg) ,
void*arg) ;
在μC / OSⅡ中, 沒(méi)有線程( Thread ) 的概念, 只有任務(wù)( Task ) 。它已經(jīng)提供了創(chuàng)建新任務(wù)的系統(tǒng)API調(diào)用OSTaskCreate , 因此只要把OSTaskCreate 封裝一下, 就可以實(shí)現(xiàn)sys_thread_new。LwIP 中的Thread 沒(méi)有μC / OSⅡ中優(yōu)先級(jí)的概念, 實(shí)現(xiàn)時(shí)需要由用戶事先為L(zhǎng)wIP 創(chuàng)建的線程分配好優(yōu)先級(jí)。
創(chuàng)建1 個(gè)和TCP / IP 相關(guān)的新進(jìn)程的部分代碼
如下:
# define LwIP_STK_SIZE 10*1024
# define LwIP_TASK_MAX 5
# define LwIP_START_PRIO 5
OS_STK LwIP_TASK_STK[ LwIP_TASK_MAX]
[ LwIP_STK_SIZE ] ;
u8_t curr_prio_offset ;sys_thread_t ;sys_systhread_new ( void ( *function ) ( void*arg ) ,void*arg, int prio)
PPP 為基于點(diǎn)對(duì)點(diǎn)連接的多協(xié)議自尋址數(shù)據(jù)包的傳輸提供了一種標(biāo)準(zhǔn)方法。PPP 最初設(shè)計(jì)是為2個(gè)對(duì)等結(jié)構(gòu)之間的IP 流量和傳輸提供一種封裝協(xié)議。在TCP / IP 協(xié)議集中, 它是一種關(guān)于同步調(diào)制連接的數(shù)據(jù)鏈路層協(xié)議( 開(kāi)發(fā)式系統(tǒng)互聯(lián)參考模型OSI模式中的第2 層) 。PPP 主要?jiǎng)?chuàng)建電話線路及綜合服務(wù)數(shù)字網(wǎng)( ISDN) 撥號(hào)接入網(wǎng)絡(luò)服務(wù)提供商( ISP)的連接, 具有多種身份驗(yàn)證方法、數(shù)據(jù)壓縮和加密及通知IP 地址等功能。需要傳輸?shù)臄?shù)據(jù)按照TCP 格式封裝成TCP 數(shù)據(jù)包, 加上IP 報(bào)頭和報(bào)尾封裝成IP 數(shù)據(jù)包, 再按照PPP 的幀格式封裝成PPP 幀, 最后才能用于傳輸。DTU 要想和Internet 建立連接, 首先要附著在GPRS 網(wǎng)上, 然后發(fā)起分組數(shù)據(jù)協(xié)議( PDP ) 上下文激活過(guò)程, 這樣才能與GPRS 支持節(jié)點(diǎn)( GGSN) 建立一條邏輯通路, 從而和Internet 建立連接。
系統(tǒng)上電后, 首先硬件初始化, 再對(duì)操作系統(tǒng)初始化, 然后進(jìn)行系統(tǒng)文件配置, 創(chuàng)建任務(wù), 并對(duì)網(wǎng)絡(luò)( TCP / IP , PPP ) 初始化, 啟動(dòng)多任務(wù)調(diào)度。通過(guò)PPP發(fā)送LCP packets 進(jìn)行設(shè)定和測(cè)試數(shù)據(jù)鏈路, 跟G20模塊鏈接; 然后進(jìn)行密碼認(rèn)證協(xié)議( PAP ) 認(rèn)證; 通過(guò)后, PPP 發(fā)送NCP packets 選擇和設(shè)定1 個(gè)網(wǎng)絡(luò)層運(yùn)行IP 協(xié)議, 一旦設(shè)定好協(xié)議, GPRS DTU 就可以接入到Internet 。DTU 向用戶數(shù)據(jù)中心的IP 地址發(fā)起連接并請(qǐng)求注冊(cè), 就可開(kāi)始和用戶數(shù)據(jù)中心交互控制指令和數(shù)據(jù)。
研究和設(shè)計(jì)GPRS DTU 的目的是將其應(yīng)用于武漢理工大學(xué)的含油污水遠(yuǎn)程監(jiān)控系統(tǒng), 目前實(shí)驗(yàn)階段的測(cè)試效果證明了此方案的可行性。基于GPRS 的遠(yuǎn)程監(jiān)控系統(tǒng)相對(duì)于傳統(tǒng)的基于有線連接或GSM 短消息的遠(yuǎn)程監(jiān)控系統(tǒng)具有很多優(yōu)勢(shì), 如: 連接時(shí)間短、實(shí)時(shí)性強(qiáng)、永遠(yuǎn)在線、收費(fèi)合理、價(jià)格便宜等, 相信GPRS DTU 也會(huì)有很好的市場(chǎng)前景。
本文來(lái)自:百度文庫(kù)資料。如有版權(quán)請(qǐng)聯(lián)系:010-82899827-805,24小時(shí)內(nèi)即撤。