gprs無線數(shù)據(jù)傳輸終端研究與設(shè)計_第1頁
gprs無線數(shù)據(jù)傳輸終端研究與設(shè)計_第2頁
gprs無線數(shù)據(jù)傳輸終端研究與設(shè)計_第3頁
gprs無線數(shù)據(jù)傳輸終端研究與設(shè)計_第4頁
gprs無線數(shù)據(jù)傳輸終端研究與設(shè)計_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

硬件電路設(shè)計系統(tǒng)的總體設(shè)計在硬件設(shè)計中,沒有包含對于電機的數(shù)據(jù)采集部分,只設(shè)計了數(shù)據(jù)傳輸終端部分。系統(tǒng)的整體設(shè)計如圖3一1所示參考了Rabbit20OO和SIM100的使用手冊等資料,設(shè)計了GPRS終端的硬件電路,終端主要由以下幾個部分組成:中央控制部分采用Rabbit半導(dǎo)體公司的工業(yè)級芯片RabbitZO00作為微處理器。該處理器具有豐富的接口資源,配合其軟件開發(fā)平臺DynamicC可實現(xiàn)在想的編程、調(diào)試和仿真。保證了終端的良好性能,也方便軟件的升級。2.GPRS模塊選用的是SIMCOM推出的GSM/GPRS雙頻模塊SIM100,SIM是當(dāng)前性價比較高的一款GPRS模塊,它集成了完整的射頻電路和GSM基帶處理器,適合于開發(fā)一些GPRS無線應(yīng)用產(chǎn)品。同時它提供了功能完備的系統(tǒng)接口,用戶只需投入少量的研發(fā)費用,在較短的時間內(nèi),就可·以集成自己的應(yīng)用系統(tǒng)。SIM100可以與RabbitZ000以標準的串口方式相連。3.存儲擴展區(qū)。包括FLASH存儲擴展和SRAM存儲擴展,F(xiàn)lashMemory擬采用Atmel的AT29C020(5V,256K)存儲器,該存儲器除作為程序存儲區(qū)外,Dynamicc支持Rabbit2000在其內(nèi)部開辟出4k作為用戶數(shù)據(jù)存儲區(qū),用于存儲非易失的設(shè)置參數(shù)。終端掉電后數(shù)據(jù)不會丟失。SRAM數(shù)據(jù)存儲區(qū)選用CY的CY62128B(SV,128K)芯片,主要用于動態(tài)數(shù)據(jù)的交換、緩存等功能,用于提高Rabbit2000的運行速度。4.程序下載接口,提供DynamicC環(huán)境下程序的下載,調(diào)試及仿真接口。參考Rabbit公司提供的下載電路設(shè)計而成。3.1.1RabbitZ000微處理器Rabbit2000(如圖3一2)是Rabbit半導(dǎo)體公司專門為應(yīng)用于中小型控制器而設(shè)計的8位微處理器。RabbitZO00使用簡便,其硬件及軟件界面都最大程度的實現(xiàn)了方便和簡潔,運算速度在8位總線微處理器中處于領(lǐng)先地位。它和280系列微處理器有相似的結(jié)構(gòu)和高度的兼容性,但性能有很大的提高。具有多達40個通用FO引腳。內(nèi)建日歷、時鐘、看門狗、定時器、多級中斷、雙DMA通道。對于8位總線的微處理器,Rabbit具有很高的計算速度。這對于實時操作系統(tǒng)是極為重要的。對于RabbitZO00,傳統(tǒng)的微處理器硬件和軟件的開發(fā)己被簡化,不再需要在線仿真。用一根接口電纜把PC串行口和基于R邊bbitZO00的目標系統(tǒng)連接起來就即可實現(xiàn)軟件的開發(fā)。Rabbit20OO具有4個串行端口,具有很強的組網(wǎng)通信能力。它能精確地產(chǎn)生脈沖和邊沿,可實現(xiàn)多優(yōu)先級中斷。處理器速度和功耗在程序控制之下,在處理器持續(xù)執(zhí)行指令的時候,能使用超低功耗模式實現(xiàn)計算和執(zhí)行邏輯檢測,為實現(xiàn)低功耗設(shè)計提供了方便。Rabbit200O微處理器需要一種創(chuàng)新的C語言(D”amicC)系統(tǒng)的支持,z一worid公司給Rabbit2000提供軟件開發(fā)工具,縮短了使用者的開發(fā)周期。它很容易使硬件和軟件接口盡可能的簡潔和智能。Rabbit2000是一個8位總線的微處理器,同時它的指令集緊湊放置和內(nèi)存接口的設(shè)計,允許內(nèi)存的最大利用,因此RabhitZO00具有突出的計算速度和優(yōu)秀的浮點運算能力。為了方便RabbitZ000的使用者,簡化了微處理器硬件和軟件的開發(fā)。不需要在線仿真程序,軟件開發(fā)是通過連接個人計算機串口和Rabbit目標系統(tǒng)的簡單接口電纜完成的,減小了軟件設(shè)計的難度[l0]。3.1.2Rabb1t2000微處理器主要性能Rabbit20OO微處理器主要性能如下[11]:1.100引腳pQFp封裝。工作電壓范圍2.7V-5v。時鐘頻率可達30MHz;2.工用級適用的電壓波動為10%,溫度范圍為一40℃到+85℃。商用級適用的電壓波動為5%,溫度范圍為0℃到70℃;3.為C程序留有IM字節(jié)的空間,最多可寫5萬多行程序代碼;4.具有四個級別的中斷優(yōu)先級,使得在實際工作中對關(guān)鍵應(yīng)用能夠做到快速響應(yīng)。一個完整的中斷程序可在小于4ps的時間內(nèi)執(zhí)行完成;5.訪問UO設(shè)備可通過使用帶有FO前綴的存儲器存取指令來完成。因而,與專用刀0指令集的處理器相比,訪問刀O設(shè)備更加快捷、簡便;6.系統(tǒng)硬件設(shè)計簡單。總共可有6個靜態(tài)存儲器芯片(比如RAM和FLAsHEPROM)直接與微處理器連接而不需要額外的譯碼邏輯。通過使用并行FO口線作為高位地址線,還可處理更多的存儲器。每一次存儲器訪問需要兩個時鐘周期。在24MHz,RabbitZ000微處理器無等待狀態(tài)下,存儲器存取時間為7Ons。多數(shù)FO設(shè)備也可實現(xiàn)無譯碼邏輯的直接連接;7.存儲器讀取周期為兩個時鐘周期長度。清晰的存儲器和FO讀寫邏輯能夠完全避免相互沖突的可能。外圍FO設(shè)備通常使用可編程接口作為FO芯片、FO讀選通信號或FO寫選通信號等來實現(xiàn)無譯碼邏輯接口。內(nèi)置時鐘倍頻分頻器允許使用降頻方式工作以減少高頻輻射;8.通過一個串口或一個并口對從端口進行訪問,RabbitZ000可以被冷啟動。這意味著閃存里可以沒有任何內(nèi)容,也可以在沒有任何現(xiàn)存的程序和BIOS的情況下隨時重寫程序;9.共有40條并行UO口線。其中一些FO口線是與定時器同步的,這就允許在硬件和軟件聯(lián)合控制之下產(chǎn)生精確地時鐘沿和脈沖;10.共有4個串行口,A、B、C和D。這4個串行端口都可以工作在異步模式下,其中A和B兩個串行口還可以工作在同步模式下。通信波特率可以很高,在異步操作時為時鐘速度的l/犯,同步操作時,使用1/6的外部時鐘速度或l/4的內(nèi)部時鐘速度。在異步工作方式時,Rabbit200O支持發(fā)送標志字節(jié)來標記一個消息幀的開始。標志字節(jié)有9比特而不是8比特:額外的一位比特在前8位比特之后,用以標記一個消息幀的開始。通過串行口A可以對Rabbit2000進行冷啟動,32.768KHz晶振在冷啟動時為串口A提供時鐘頻率;11.從端口方式允許RabbitZ000作為智能外設(shè)從屬于一個主處理器。8位從端口有6個8位寄存器,分兩對進行雙向通信,獨立的選通脈沖和中斷信號用來控制從端口上下行通信。如果時鐘信號和復(fù)位信號都與主處理器共用,那么只需要一個Rabhit2000微處理器和一個RAM芯片就可以構(gòu)成一個完整的從系統(tǒng);12.內(nèi)置電池供電的時間舊期時鐘部件,使用一個外置犯.768KHz晶振。時間舊期時鐘也可用于提供每488ps一次的周期性中斷;13.很多定時器和計數(shù)器(共6個)可用于產(chǎn)生中斷、波特率發(fā)生和計數(shù)器工作。內(nèi)置主時鐘振蕩器使用的是一個外部晶體,也可以使用陶制諧振器。典型的晶體振蕩器頻率范圍在1.SMHz到29.SMHz之間。系統(tǒng)時鐘允許倍頻或8分頻,來動態(tài)改變工作速度或降低功耗。為定時器提供的時鐘是獨立的,以保證當(dāng)處理器時鐘分頻或倍頻時不影響波特率和定時器。極低功率方式時,處理器時鐘可由犯.786KHz振蕩器驅(qū)動,并把主振蕩器斷電。這時電流大約為100pA,而處理器仍能保持每秒10,000條指令的執(zhí)行速度。這是優(yōu)于其他處理器的休眠模式:14.Rabbit2000有著卓越的浮點數(shù)處理性能,原因在于它有著嚴格的代碼庫和強大的處理能力。例如,25MHz的時鐘通常需要14“s進行浮點加法運算,13ps進行乘法運算,40協(xié)s進行開方運算;15.有一個內(nèi)置的看門狗定時器。認厄tchDog是一個帶有清除端及溢出信號輸出的計數(shù)器,用于在系統(tǒng)或程序超時或出錯時自動重啟系統(tǒng),使系統(tǒng)復(fù)位;16.擁有標準的編程端口,因而避免了使用CPU仿真器的必要。通過連接目標系統(tǒng)和PC機的簡單的接口電纜可以用來下載和調(diào)試軟件。而占用編程口所增加的開銷極小。3.1.3Rabb1t2000主要優(yōu)點Rabbit2000主要優(yōu)點如下[12]:l)無縫的體系結(jié)構(gòu)使設(shè)計硬件系統(tǒng)變得容易;2)有許多串口,而且它們能快速地通信;3)精確脈沖和時間沿的產(chǎn)生是一個標準的特征;4)中斷具有多種優(yōu)先級;5)處理器的速度和消耗能量受程序控制;6)超低能量模式下,雖然只有犯KHz,但處理器能繼續(xù)運行,進行計算而且執(zhí)行合乎邏輯的測試;7)Rabbit200O的從端口可使其作為一個智能的外圍設(shè)備或一個從處理器。舉例來說,協(xié)議棧能夠直接下載到一個Rabbit200O從處理器,主機可以是任何的處理器;8)RabbitZ000可被冷啟動;9)能編寫復(fù)雜的軟件,C源碼可達1000或50000行,有編寫源碼的工具;10)一個簡單的ro針可編程接口代替了在線仿真程序和PROM;11)包含一個可更換電池的時間舊期時鐘;12)標準的Rabbit2000電路符合工業(yè)上的溫度和電壓規(guī)格。3.2.5編程接口電路提供DynamicC環(huán)境下程序的下載,調(diào)試及仿真接口。參考設(shè)計電路如圖3一7所示[13]。3.3.1GPRS模塊介紹SIMloo是S加COM推出的GS樹GPRS雙頻模塊,主要為語音傳輸、短消息和數(shù)據(jù)業(yè)務(wù)提供無線接口。S加100集成了完整的射頻電路和GSM的基帶處理器,適合于開發(fā)一些GSM/GPRS的無線應(yīng)用產(chǎn)品,如移動電話、PDA、PCMCIA無線MODEM卡、USB無線MODEM、無線POS機、無線抄表、無線數(shù)據(jù)傳輸業(yè)務(wù),無線公用電話、無線商務(wù)電話、監(jiān)控、調(diào)度、車載、遙控、遠程測量、定位和導(dǎo)航等系統(tǒng)和產(chǎn)品,應(yīng)用范圍十分廣泛。SIM100模塊為用戶提供了功能完備的系統(tǒng)接口,用戶只需投入少量的研發(fā)費用,在較短的研發(fā)周期內(nèi),就可集成自己的應(yīng)用系統(tǒng)。GS樹GPRS模塊SIM10o技術(shù)指標主要技術(shù)指標如下[’4]:》雙頻GSMgOO/1800》符合GSMPhaseZ/2+標準》支持GSM07.07和07.05AT命令》電源電壓3.3V一4.6V》電流消耗:待機模式4mA,通話模式300mA(平均)1.7A(峰值)》體積大小:53mmx33mm‘3mm》重量:129(包括屏蔽罩)》工作溫度:一35℃~+75℃》支持USSD》透明或非透明方式數(shù)據(jù)傳輸速率可達960ObPs》GPRS:最高下載速度85.6kbps/最高上傳速度42.skbPs》編碼方式CSI/2/3/4》PPP一協(xié)議》GPRSQos》3V/l.SVS加接口》2Mierophone輸入》2speaker輸出》鍵盤接口》LCD接口》背光LED驅(qū)動接口》Buzzer接口》RTC備用電源/電池接口》GPIO》RS232串口支持》遠程AT命令控制》串行波特率:300一115200bits/s》單天線接口3.3.2與Rabbit接口電路SIM10O提供標準的RS一2犯串行接口,用戶可以通過串行口使用AT命令完成對模塊的操作。RXD是數(shù)據(jù)接收端口,TXD為數(shù)據(jù)發(fā)送端口,RTS為請求發(fā)送端口,CTS為清除發(fā)送端口,分別與Rabbit2000的串口C中的pC3、pCZ、PCS、PC4端口相連。3.3.3SIM卡接口電路SIM100支持外部SIM卡,可以直接與3.OVSIM卡或者1.SVSIM卡連接。模塊自動監(jiān)測和適應(yīng)SIM卡類型,為了防止靜電損壞,在靠近sIM卡座各個引腳的位置放置瞬變電壓抑制二極管,本處使用ST公司的ESDA6VIWSTVS管。SIM卡接口電路如圖3一9所示[’4]。應(yīng)用層負責(zé)處理特定的應(yīng)用程序細節(jié)。幾乎各種不同的TCP/正實現(xiàn)都會提供下面這些通用的應(yīng)用程序:》Teinet遠程登錄。》FTP文件傳輸協(xié)議?!稴MTP簡單郵件傳送協(xié)議?!稴NMP簡單網(wǎng)絡(luò)管理協(xié)議。在TCP/護協(xié)議族中,有很多種協(xié)議。如圖4一2所示。TCP和端口號AT+C丁SRIP=<mode>,mode為0,則不顯示;mode為1則顯示,格式為RECVFROM:IPADDR:PORT。默認情況下在接收數(shù)據(jù)時不顯示發(fā)送方的IP地址和端口號[14]。5.3GPRS終端軟件實現(xiàn)GPRS終端的軟件設(shè)計主要包括串口驅(qū)動、模塊驅(qū)動、PPP協(xié)議、TCP/IP協(xié)議的實現(xiàn)。設(shè)計的主流程圖如圖5一2所示,程序開始后,首先對串口進行初始化,然后對GPRS終端進行參數(shù)設(shè)置,完成后,即開始進行PPP撥號連接,連接成功后,進入GPRS網(wǎng)絡(luò),獲取護地址后,終端主動向數(shù)據(jù)中心發(fā)出連接請求,收到應(yīng)答后,等待接收命令、解析并發(fā)送數(shù)據(jù)。圖5-2終端主程序流程圖5.3.1串口驅(qū)動程序RabbitZ000微處理器提供4個串口。串口A、B、C和D。Z一Wbrld支持兩種類型的串口通信方式,分別為基于數(shù)據(jù)流的驅(qū)動和基于分組的驅(qū)動?;诜纸M的驅(qū)動是由DynamicC的PACKET.uB庫文件來實現(xiàn)的。不像RS232驅(qū)動器是點對點的,信息包的驅(qū)動的設(shè)計是點對多點的通信方式,帶一個RS485接口。信息包驅(qū)動器在半雙工的模式下處理發(fā)送和接收數(shù)據(jù)報?;跀?shù)據(jù)流的驅(qū)動是由DynamicCRs232.UB庫文件實現(xiàn)的。這個庫包含電路緩沖區(qū),一個中斷服務(wù)程序和用戶接口的函數(shù)。這里采用基于數(shù)據(jù)流的驅(qū)動[27]。對于這四個串口來說,有兩個電路緩沖區(qū),一個是用于讀數(shù)據(jù)的(接收緩沖區(qū)),一個是用于寫數(shù)據(jù)的(發(fā)送緩沖區(qū))。這些緩沖區(qū)只是暫時存放要發(fā)送和接收的數(shù)據(jù),但不對這些數(shù)據(jù)進行處理。默認的緩沖區(qū)大小是31字節(jié)。通過兩個宏XINBUFSIZE和XOUTBUFSIZE可以對緩沖區(qū)的大小進行修改,這里X指的是串口A、B、C和D。這里X代表A,B,C或D。編寫如下函數(shù):》serxgetc():讀取接收緩沖區(qū)的下一個字符。》serXread():讀取接收緩沖區(qū)的指定數(shù)量的字節(jié)?!穝erxpeek():查看接收緩沖區(qū)的下一個字符。》serxPutc():在發(fā)送緩沖區(qū)里寫入一個字符?!穝erXputs():在發(fā)送緩沖區(qū)里寫入一個空結(jié)束符的字符串?!穝erXwrite():在發(fā)送緩沖區(qū)里寫入指定數(shù)量的字符。除了serXpeek()函數(shù)之外,其他的函數(shù)都是先把使用的緩沖區(qū)鎖住,在返回之前再進行各種開鎖[24】。例如serBputc():在向發(fā)送緩沖區(qū)里寫入一個字符。流程圖如圖5一3所示。i以serBPute(intc){Staticintn;if(cbuf--wrlock(spb_ocbuf){n=cbuf_putch(spb_ocbuf,c);if(n){sPb_starttx();}Cbuf_wrunlock(spb_ocbuf);}else{n=0;}Returnn;}圖5-3寫入一個字符流程圖serBgetc():讀取接收緩沖區(qū)里的下一個字符。流程圖如圖5一4所示。圖5-4讀取字符流程圖nodebugintserBgete(){statieintn;if(cbuf_rdlock(spb_icbuf)){n=cbuf--geteh(sPb_icbuf);if(brtscts&&cbuf_used(spb_icbuf<=serBrtsLo){(*b_rtson)();//setPortBRTSlinehigh}cebuf--rdunloek(spb_icbuf);}Else{n=-l;}returnn;}有些時候系統(tǒng)不能以數(shù)據(jù)的發(fā)送速率處理要接收的數(shù)據(jù)。這時需要使用緩沖區(qū),但是如果接收機跟不上發(fā)送機的處理速度,緩沖區(qū)會產(chǎn)生溢出情況。這時就需要采用流量控制,它采用的方法是允許接收機標示什么時候需要發(fā)送機暫停??梢酝ㄟ^軟件方式或硬件方式實現(xiàn)流量控制。RS232驅(qū)動器使用的是硬件流控。serXfloweontrolon()和serXfloweontroloff()函數(shù)用來使能或禁止硬件流控.Rabbit被設(shè)置為一個DTE(數(shù)據(jù)終端設(shè)備),意味著當(dāng)Rabbit為更多的數(shù)據(jù)做好準備時,要聲明流控線RTS(請求發(fā)送,而CTS(清除發(fā)送)是一個輸入信號來監(jiān)視系統(tǒng)的準備狀態(tài),系統(tǒng)要與Rabbit相連。目前使用宏定義來配置RTS和CTS,定義使用哪個端口和這個端口的哪個特定位。下面是為串口B配置RTS/CTS的例子。#defineSERBRTSPORTPBDR//使用端口B的數(shù)據(jù)寄存器#defineSERBRTSSHADOWPBDRShadow//定義端口B的屏蔽寄存器#defineSERB_RTS_BIT6//輸出#defineSERB_RTS_PORTPBDR//輸入#defineSERB_RTS_BIT5如下為使能串口B的硬件流控。本函數(shù)使能控制流控的兩根數(shù)據(jù)線CTS和RTS。當(dāng)另外的系統(tǒng)準備接收數(shù)據(jù)時,CTS的輸入將被拉低。RTS作為輸出信號,系統(tǒng)用它表明本系統(tǒng)已經(jīng)準備好接收數(shù)據(jù)。VoidserBfloweontrolon(){brtscts=l;//設(shè)定為流控b_checkctsfunc=spb--checkcts_fc;b_rtsoff=spb_rtsoff--fc;b_rtson=spb_rtson_fc;serBrtsLo=BINBUFSIZE*0.2;serBrtsHi=BINBUFSIZE*0.8;//如果緩存低于80%,則設(shè)RTS為高if(serBrdUsed()<serBrtsHi)(*b_rtson)():5.3.2PPP連接的實現(xiàn)對于ppp連接,DynamicC的庫中己經(jīng)給出了GpRS初始化和ppp連接的模塊的初始化函數(shù)ifconfig(),所以只需在程序中進行一些宏定義,并且在main函數(shù)中調(diào)用ifconfig()函數(shù)。#defineUSE_PPP_SERIAL0x04//通過端口C進行PPP連接#defineMODEM_DEBUGI#definePSS_MODEM_SENDEXPECT_SIZE200#defineDLALUP_SENDEXPECT"AT+CGDCONT=l,\"IP\",\"CMNET\",0,0OKATD*99***l#CONNECT"/*設(shè)置AT連接指令。ATD*99***l#是GPRS業(yè)務(wù)使用的撥號號碼*/#definePAPNAME""http://用戶名GPRS默認為空#definePAPPASSWORD""http://密碼主程序中調(diào)用的ifconfig函數(shù)如下:ifconfig(IF_PPPZ,IFS_PPP_INIT,IFS_PPP_SPEED,115200L,IFS_PPP_RTSPIN,PCDR,PCDRShadow,4,IFS_PPP_CTSPIN,PCDR,5,IFS_PPP_FLOWCONTROL,l,IFS_PP_SENDEXPECT,DIALUP_SENDEXPECT,IFS_PPP_HANGUP,"ATH",IFS_PP_MODEMESCAPE,l,IFS_PPP_ACCEPTIP,l,IFS_PPP_ACCEPTDNS,l,IFS_PPP_REMOTEAUTH,PAPNAME,PAPPASSWORD,IFS_UP,IFS_END):Ifconfig的流程圖如圖5一5所示,首先是對模塊的初始化,初始化成功后進行撥號,撥號成功,登入GPRS網(wǎng)后,進行PPP連接。圖5-5Ifconfig模塊初始化函數(shù)流程圖5.3.3UDP數(shù)據(jù)傳輸?shù)膶崿F(xiàn)由于DynamicC內(nèi)嵌了TCP/IP協(xié)議,所以傳輸數(shù)據(jù)時只要包括UDP部分就可以了。UDP數(shù)據(jù)傳輸主要包括數(shù)據(jù)的發(fā)送與接收兩部分,在GPRS模塊附著到GPRS網(wǎng)絡(luò)后,首先是進行UDP初始化,打開UDP端口,采用Costate互聯(lián)語句進行數(shù)據(jù)的發(fā)送與接收。發(fā)送數(shù)據(jù)后,判斷操作是否成功,若不成功,則關(guān)閉端口,重新進行連接,流程圖如圖5一6所示。圖5-6UDP收發(fā)數(shù)據(jù)流程圖發(fā)送數(shù)據(jù)的函數(shù)如下:intsend_packet(void){staticlongsequence;autocharbuf[128];autointlength,retval;#GLOBAL_INIT{sequence=0;}sequence++;sprintf(buf,"SEQ=%ld",sequence)://格式化數(shù)據(jù)并填入緩沖區(qū)length=strien(buf)+l;//發(fā)送數(shù)據(jù)retval=udp_send(&my_sock,buf,length);//判斷發(fā)送結(jié)果,不成功則關(guān)閉連接,重新打開if(retval<0){Printf(”Errorsendingdatagram!Closingandreopeningsocket...\n");sock_close(&my_sock);if(!udp_oPen(&my_sock,LOCAL_PORT,resolve(REMOTE_IP),REMOTE_PORT,NULL)){Printf("udp_openfailed!\n");exit(0);}}Tcp_tieck(NULL);returnl;}Costate互聯(lián)語句實現(xiàn)數(shù)據(jù)的發(fā)送與接收如下:for(;;){receive_packet();Costate{waitfor(DelaySec(l));waitfor(send_packet());}}5.3.4TCP數(shù)據(jù)傳輸?shù)膶崿F(xiàn)TCP數(shù)據(jù)傳輸?shù)膶崿F(xiàn)與UDP基本一致,流程圖與UDP流程圖一樣,只是在函數(shù)的調(diào)用上有所不同。如下為TCP發(fā)送數(shù)據(jù)的函數(shù)。Intreceive_packet(){intbytes_read;Staticcharreceived_buf[128];#GLOBAL_INIT{memset(received_buf,0x00,sizeof(received_buf));//清除緩沖區(qū)}//接收數(shù)據(jù)Bytes_read=sock_fastread(&my_socket,received_buf,sizeof(received--buf)-l);if(bytes_read>0){received_buf[bytes_read]='\0';Printf("%s",received_buffer);return1;}5.4程序調(diào)試5.4.1調(diào)試環(huán)境由于時間關(guān)系,本文只設(shè)計出了該終端的硬件結(jié)構(gòu),未做出產(chǎn)品,軟件設(shè)計主要是在RCM2300開發(fā)板平臺上完成的。在調(diào)試中,采用了RCM2300開發(fā)板(如圖5一7所示),以及SIMIOOGPRS模塊,兩者之間采用RS232串口進行連接,RCM2300通過J認。連接到PC,軟件平臺為?!盿mieC。接收端用TCP/UDP接收軟件。控制模塊的核心是RCM2300如圖5一8所示,模塊的硬件電路由Rabbit2000徽處理器、一個256K的Flash、一個128K的SRAM、4個串口、26個1/0口和一個10針的編程接口組成。RabbitCoreRCM2300具有Rabbit2000和其它內(nèi)置的特點:快速高效的指令集、5個8比特定時器、2個10比特定時器、22.IMHZ時鐘速率、四個串口、256KFlash用來存儲RCM2300應(yīng)用程序。開發(fā)板上有RS232串行接口,實現(xiàn)與GPRS的串行通信。5.4.2調(diào)試過程調(diào)試中,將目標IP地址設(shè)置為3,目標端口設(shè)置為1234,波特率為115200bits。使用兩臺PC,將一臺具有公網(wǎng)IP的PC作為中心端,另一臺PC與數(shù)據(jù)終端連接。中心端用TCP心DP接收軟件在指定端口接收測試。建立好連接后,無線終端每隔一定時間向數(shù)據(jù)中心循環(huán)發(fā)送一組數(shù)據(jù)。如圖5-9所示。中心端監(jiān)聽端口并接收數(shù)據(jù),如圖5一10為UDP傳送數(shù)據(jù)時,數(shù)據(jù)中心接收數(shù)據(jù)列表。圖5-9傳輸終端發(fā)送數(shù)據(jù)圖5-10中心端接收數(shù)據(jù)試驗中分別對UDP和TCP傳輸進行了數(shù)次數(shù)據(jù)傳輸測試,包括每隔15、lmin、smin、10min、2omin、30min進行循環(huán)數(shù)據(jù)傳輸測試。5.4.3調(diào)試結(jié)果測試結(jié)果表明,無線終端在傳輸數(shù)據(jù)的過程中,中心端能接收到數(shù)據(jù),說明在實驗環(huán)境中,通過GPRS傳輸數(shù)據(jù)是成功的。分別用TCP和UDP傳輸方式實現(xiàn)了數(shù)據(jù)的傳輸。也對兩者的運行結(jié)果進行了比較。如下:1.每隔l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論