基于ARMGPRS無線數(shù)據(jù)終端設(shè)計_第1頁
基于ARMGPRS無線數(shù)據(jù)終端設(shè)計_第2頁
基于ARMGPRS無線數(shù)據(jù)終端設(shè)計_第3頁
基于ARMGPRS無線數(shù)據(jù)終端設(shè)計_第4頁
基于ARMGPRS無線數(shù)據(jù)終端設(shè)計_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

山 東 科 技 大 學本科畢業(yè)設(shè)計論文題 目 基于ARM的GPRS無線數(shù)據(jù)終端設(shè)計學 院 名 稱 山東科技大學 專 業(yè) 班 級 氣工程及其自動化10-4班 學 生 姓 名 學 號 201003201414 時間: 2012 年 6月 5 日摘要 隨著嵌入式系統(tǒng)和GPRS無線網(wǎng)絡(luò)的發(fā)展,GPRS無線數(shù)據(jù)終端為工業(yè)生產(chǎn)中的遠距離數(shù)據(jù)傳輸帶來了更佳的傳輸途徑,擺脫了有線數(shù)據(jù)傳輸?shù)木窒扌?,極大地節(jié)省了后期維護費用,降低了成本,滿足了日益增長的工業(yè)需求。GPRS 無線數(shù)據(jù)終端的研究具有廣泛的意義和良好的商業(yè)前景。 本文主要設(shè)計并實現(xiàn)基于ARM的GPRS無線數(shù)據(jù)終端。該系統(tǒng)以ARM7系列微處理器為核心,通過AT指令控制自帶有完整TCP/IP協(xié)議棧的無線數(shù)據(jù)模塊。結(jié)合GPRS通信網(wǎng)絡(luò)的特點分析無線數(shù)據(jù)傳輸嵌入式系統(tǒng)的設(shè)計過程,給出系統(tǒng)的具體實現(xiàn)方案,提出硬件、軟件系統(tǒng)的設(shè)計流程、開發(fā)要點和實現(xiàn)過程。 本系統(tǒng)經(jīng)過幾個月的設(shè)計制作,較好的完成了 無線數(shù)據(jù)終端的各項功能。 關(guān)鍵詞:GPRS;嵌入式;ARM;AT指令;TCP/IP協(xié)議ABSTRACTWith the development of embedded systems and GPRS wireless network, GPRS wireless data terminals has brought a better way of transmission for long-range data transmission in industrial production, getting rid of the limitations of wired data transmission, saving significantly in the later maintenance costs , reducing costs and meeting the growing industrial demand. The research of the GPRS wireless data terminal has broad meanings and good business prospects.The paper mainly designs and implements the GPRS wireless data terminal based on ARM. The system depending on ARM7 family microprocessor can control wireless data module with a complete TCP / IP protocol stack through AT commands. Make an analysis of the design process of the embedded system for wireless data transmission, combined with GPRS communication network characteristics and give a specific system implementation including: the hardware and software design process, development points and the implementation process. The design is completed for several months, implementing various functions of the wireless data terminal.Key words: GPRS; Embedded; ARM; AT command; TCP / IP protocol目錄1 緒論11.1 研究背景11.2 通訊方式的現(xiàn)狀21.3 研究具體任務(wù)和目的42 系統(tǒng)總體方案設(shè)計62.1 系統(tǒng)功能要求62.2 系統(tǒng)組成62.3 系統(tǒng)主要器件選型72.2.1 主控器件的選擇72.2.2 無線模塊的選擇92.3 軟硬件開發(fā)工具選擇92.4 系統(tǒng)語言與模塊化結(jié)構(gòu)102.4.1 AT指令集102.4.2 C語言程序模塊化設(shè)計113 硬件電路設(shè)計123.1 電源電路設(shè)計123.1.1 電源芯片選擇123.1.2 電源電路具體設(shè)計123.2 主控外圍電路143.3 串口通信電路153.4 電平轉(zhuǎn)換電路和部分指示電路173.5 無線模塊外圍電路設(shè)計183.5.1 無線模塊插板電路183.5.2 SIM卡電路193.6 存儲模塊電路設(shè)計204 軟件程序設(shè)計224.1 軟件總體設(shè)計主流程224.2 系統(tǒng)初始化234.2.1 系統(tǒng)中斷初始化234.2.2 主頻配置244.2.3 UART初始化264.2.4 定時器初始化274.2.5 I2C初始化與鐵電存儲284.2.6 參數(shù)配置初始化設(shè)計314.3 TCP網(wǎng)絡(luò)連接314.3.1 TCP/IP簡述314.3.2 TCP連接的建立、維護與拆除314.3.3 系統(tǒng)TCP網(wǎng)絡(luò)連接過程334.4 數(shù)據(jù)解析344.5 數(shù)據(jù)的接收緩存處理354.6 上下行數(shù)據(jù)傳輸365 系統(tǒng)調(diào)試375.1 硬件調(diào)試375.2 軟件調(diào)試386 總結(jié)與展望396.1 總結(jié)396.2 展望41參考文獻43致謝45附錄146附錄2471 緒論1.1 研究背景計算機與通信技術(shù)的不斷發(fā)展,極大地促進了工業(yè)領(lǐng)域及其它領(lǐng)域的自動化和信息化的發(fā)展。以前在工業(yè)領(lǐng)域大多采用由單片機構(gòu)成的數(shù)據(jù)處理系統(tǒng)和PC機通過串行口構(gòu)成的微機系統(tǒng),主要是針對于生產(chǎn)過程分布范圍不大、相距不遠的場合,這些系統(tǒng)大多采用RS-232,RS-485或有線MODEM的通信方式,雖然經(jīng)濟實用,但是采用有線的數(shù)據(jù)傳輸方式,在很大程度上限制了應(yīng)用場合的拓展。隨著企業(yè)生產(chǎn)規(guī)模不斷擴大,不同的生產(chǎn)部門可能在地域上分布極廣,相距遙遠,如電力、鐵路、采礦和石油等,這些部門要對相距遙遠的生產(chǎn)過程進行數(shù)據(jù)傳輸,如果還是沿用有線的傳輸方式,則在技術(shù)上和經(jīng)濟上都是不足取的。所以采用無線的方式來進行數(shù)據(jù)傳輸?shù)男枨缶腿找嫱怀隽?。在通信領(lǐng)域中,移動通信(GPRS)網(wǎng)則是這個領(lǐng)域中發(fā)展最積極最活躍最快的分支之一。GPRS(General Packet Radio Service)即通用分組無線業(yè)務(wù),是在現(xiàn)有GSM網(wǎng)絡(luò)上開通的一種新型的數(shù)據(jù)傳輸技術(shù),GPRS采用分組交換方式,僅在實際傳送和接收數(shù)據(jù)時才占用無線資源。GPRS理論上可提供高達171.2kbs的傳輸速率。除了速度上的優(yōu)勢外,GPRS還有“永遠在線的特點,即用戶可隨時與網(wǎng)絡(luò)保持聯(lián)系。另外分組交換接入時間的縮短,能提供快速即時的連接,可大幅度提高一些事務(wù)的效率。利用現(xiàn)有的GPRS網(wǎng)絡(luò)資源,發(fā)揮網(wǎng)絡(luò)覆蓋率高、永遠在線等優(yōu)勢,為現(xiàn)有數(shù)據(jù)傳輸系統(tǒng)提供一種便捷的無線傳輸方式。嵌入式系統(tǒng)是一門交叉學科,其支柱學科包括微電子學科、計算機學科、電子技術(shù)學科和對象學科。微電子學科是嵌入式系統(tǒng)發(fā)展的基礎(chǔ),對象學科是嵌入式系統(tǒng)應(yīng)用的歸屬學科,計算機與電子技術(shù)學科是嵌入式系統(tǒng)技術(shù)發(fā)展的重要保證。美國著名未來學家尼葛洛龐帝在2001年訪華時曾預言,45年后,嵌入式智能電腦將是繼PC和Internet之后的最偉大發(fā)明。的確,在當今社會中,嵌入式系統(tǒng)已經(jīng)廣泛應(yīng)用于信息家電、移動通訊、手持通信終端、儀器儀表、航空航天以及工業(yè)控制等領(lǐng)域,為人們工作和生活帶來了極大的便利,是當前研究最為熱門的領(lǐng)域之一。嵌入式系統(tǒng)被定義為:以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。它一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個部分組成。嵌入式系統(tǒng)以其本身體積小,實時性高,穩(wěn)定性好,支持以太網(wǎng)等優(yōu)點,成為工控領(lǐng)域的新熱點。如何利用嵌入式系統(tǒng)實現(xiàn)無線終端,并通過GPRS 無線網(wǎng)絡(luò)進行數(shù)據(jù)傳輸是一個具有實用意義的研究。本課題源自萊蕪一家科技公司,要求設(shè)計并實現(xiàn)適用于工業(yè)場合的GPRS無線數(shù)據(jù)終端設(shè)計。該終端作為數(shù)據(jù)傳輸終端的載體,有廣闊的市場和良好的商業(yè)前景。1.2 通訊方式的現(xiàn)狀隨著電子、計算機及信息科學技術(shù)的發(fā)展,通信系統(tǒng)的發(fā)展也非常迅速,目前,數(shù)據(jù)傳輸中主要的通信方式有以下幾種:(1)電話撥號(電話線,專線)電話撥號主要有利用電話線通信和架設(shè)專線通信兩種方式。電話線:就是利用現(xiàn)有的公用電話網(wǎng)為依托,采用調(diào)制解調(diào)器和公用電話網(wǎng)的交換機系統(tǒng),在兩個通信實體之間建立起通信通道。專線方式:通信的網(wǎng)絡(luò)適合于傳輸數(shù)據(jù)量不大、實時性要求不高的場合。(2)光纖通信(ADSL)從現(xiàn)場運行情況來看,利用光纖通信時數(shù)據(jù)比較穩(wěn)定,抗干擾能力強。這種方式在初期投資時較大,但隨著光通信設(shè)備的價格不斷下降,這種方式有可能成為比較實用的現(xiàn)場通信方式。(3)基于GSM的短消息數(shù)據(jù)傳輸GSM除語音業(yè)務(wù)外,另有基于短消息數(shù)據(jù)傳輸業(yè)務(wù)。短消息限制每次傳送文本字符不超過160個,傳送給移動臺的短消息在用戶識別模塊(SIM)上存儲。與話音的傳輸建立和釋放過程不同,在GSM系統(tǒng)中,短消息是唯一一種不需要建立端到端的業(yè)務(wù)通道。由于具備這個特點,即使移動臺己處于電路通信狀態(tài),還能同時實現(xiàn)短信息業(yè)務(wù)。(4)基于GPRS的分組數(shù)據(jù)傳輸通用分組無線業(yè)務(wù),是一種新的GSM數(shù)據(jù)傳輸服務(wù),它將數(shù)據(jù)以數(shù)據(jù)包的形式在PLMN(公眾陸地移動電話網(wǎng))內(nèi)或其他連接到PLMN的外部網(wǎng)絡(luò)間傳輸。主要針對突發(fā)性數(shù)據(jù)分組傳送的一種新業(yè)務(wù),與短消息業(yè)務(wù)類似,提供兩類業(yè)務(wù)點到點業(yè)務(wù)和點到多點業(yè)務(wù)。多個GPRS用戶可以共享一個無線信道,而一個移動用戶也可以同時利用多個信道,因而GPRS用戶的實際通信速率非常靈活,可以低于l00kbps,也可以高于100kbps。在實際的遠程數(shù)據(jù)傳輸?shù)耐ㄐ胖校缃煌ü芾?、電力系統(tǒng)、無線抄表等,可以采用GSM短消息、光纖接入等方式。GSM短消息方式可以實現(xiàn)主動上報;缺點是按條收費,運行費用高,而且在節(jié)假日短消息中心服務(wù)器繁忙時延時相當長。光纖通信穩(wěn)定可靠,但是施工成本投入大、擴展性差、設(shè)備維護方面不方便。而GPRS通信則避免了以上問題。1.3 研究具體任務(wù)和目的 GPRS無線數(shù)據(jù)傳輸系統(tǒng)包括以下幾部分:(1)數(shù)據(jù)采集單元由816位單片機功能電路承擔,完成數(shù)據(jù)采集(針對不同的應(yīng)用場合,采集的數(shù)據(jù)有所不同),一般通過RS232485接口向下位機提供數(shù)據(jù)。(2)下位機主要負責監(jiān)測并接收數(shù)據(jù)采集單元提供的數(shù)據(jù),經(jīng)過處理,通過加密隧道向上位機傳輸數(shù)據(jù);同時接收上位機下發(fā)命令,控制數(shù)據(jù)采集單元。應(yīng)智能化需求,該功能單元由32位微控制器承擔。這是該系統(tǒng)控制功能的核心單元。 (3)加密隧道或透明傳輸 數(shù)據(jù)傳輸?shù)耐ǖ?。傳統(tǒng)為有線方式,對GPRS 無線數(shù)據(jù)傳輸系統(tǒng)而言,則是GPRS無線傳輸隧道。加密是為了保證數(shù)據(jù)安全,不加密時為透明傳輸。 (4)上位機 由PC承擔,負責完成數(shù)據(jù)分析、處理、打印等工作;同時實現(xiàn)遠程控制下位機完成指定任務(wù)。該功能模塊由通用計算機系統(tǒng)來完成,可以不歸結(jié)為嵌入式系統(tǒng)的范疇。 本文關(guān)注的是下位機無線數(shù)據(jù)傳輸功能模塊的實現(xiàn)。通過GPRS網(wǎng)絡(luò)登錄已知公網(wǎng)IP,建立網(wǎng)絡(luò)連接實現(xiàn)數(shù)據(jù)無線透明傳輸。2 系統(tǒng)總體方案設(shè)計2.1 系統(tǒng)功能要求 GPRS無線數(shù)據(jù)終端功能有:系統(tǒng)可以在7V- 40V寬電壓范圍供電,也可5V供電;具有232、485兩種通信接口;系統(tǒng)上電初始能夠通過串口對IP地址、網(wǎng)絡(luò)端口號等登陸參數(shù)進行配置且掉電參數(shù)非易失;自動登陸網(wǎng)絡(luò)建立TCP連接;能夠?qū)ο滦袛?shù)據(jù)進行解析處理完成數(shù)據(jù)的透明傳輸;支持心跳包發(fā)送,保持永久在線。2.2 系統(tǒng)組成 根據(jù)系統(tǒng)功能要求系統(tǒng)大體分為五部分:電源部分、存儲部分、串口通信部分、系統(tǒng)主控部分、無線通信部分。電源部分為各功能模塊部分提供電源支持,主控部分與存儲部分為主從模式,存儲主要的參數(shù)和相關(guān)數(shù)據(jù)。通過串口通信部分完成參數(shù)配置和下位機數(shù)據(jù)交換的任務(wù)。主控部分完成數(shù)據(jù)的接受、發(fā)送、校驗、解析等處理,通過和無線模塊的通信完成數(shù)據(jù)的無線透明傳輸。系統(tǒng)框圖如圖3.1所示。電源部分串口部分存儲部分無線模塊主控部分圖 3.1 系統(tǒng)框圖2.3 系統(tǒng)主要器件選型因為GPRS無線數(shù)據(jù)終端應(yīng)用于工業(yè)場合,所以對系統(tǒng)中用到的器件提出了比較苛刻的要求。由于工業(yè)環(huán)境一般比較惡劣,噪聲較多,對溫度范圍要求較寬,要使無線數(shù)據(jù)終端能夠在工業(yè)現(xiàn)場穩(wěn)定可靠的運行,所選器件必須考慮上述要求。2.2.1 主控器件的選擇作為系統(tǒng)控制核心的微控制器應(yīng)該選擇工業(yè)級器件,同時要具有低成本、高可靠、靈活的擴展接口等特點。如今,ARM微處理器及技術(shù)的應(yīng)用幾乎已經(jīng)深入到各個領(lǐng)域。采用ARM技術(shù)的微處理器現(xiàn)在已經(jīng)遍及各類電子產(chǎn)品、汽車、消費娛樂和無線等市場,尤其是工業(yè)控制領(lǐng)域。從應(yīng)用的廣泛度考慮,硬件平臺的核心選擇采用ARM微處理器微控制器系列。這樣,不僅可以獲得良好的技術(shù)支持,降低研發(fā)風險,而且可以縮短上市時間,增強產(chǎn)品競爭力。本文選擇了NXP公司的LPC2132作為系統(tǒng)的主控芯片。NXP公司的ARM內(nèi)核主控芯片在業(yè)界是非常出色地。LPC2132是基于一個支持實時仿真和嵌入式跟蹤的32/16位ARM7 TDMI-STM CPU的微控制器,并帶有64kB的高速Flash存儲器。128位寬度的存儲器接口和獨特的加速結(jié)構(gòu)使32位代碼能夠在最大時鐘速率下運行。對代碼規(guī)模有嚴格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過30%,而性能的損失卻很小。較小的封裝和極低的功耗使LPC2132可理想地用于小型系統(tǒng)中。寬范圍的串行通信接口和片內(nèi)16kB的SRAM使LPC2132非常適用于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、軟modem、聲音辨別和低端成像,為它們提供巨大的緩沖區(qū)空間和強大的處理功能。多個32位定時器、1個10位8路ADC、PWM通道和47個GPIO以及多達9個邊沿或電平觸發(fā)的外部中斷使它們特別適用于工業(yè)控制和醫(yī)療系統(tǒng)。通過片內(nèi)PLL可實現(xiàn)最大為60MHz的 CPU操作頻率,PLL的穩(wěn)定時間為100us??赏ㄟ^個別使能/禁止外部功能和降低外部時鐘來優(yōu)化功耗。單個電源供電,含有上電復位(POR)和掉電檢測(BOD)電路。CPU操作電壓范圍:3.03.6 V (3.3 V10%),I/O口可承受5V的最大電壓。以LPC21系列單片機具有32位解決方案的固有優(yōu)勢,如資源豐富、采用多級流水線技術(shù)、功耗低、體積小巧、購買和開發(fā)成本低、速度可以到60MHz,有32個中斷源,兩個串口,具有I2C總線和SPI總線接口。主要用于工業(yè)控制,特別是LPC2132具有兩個串行通信口更加適合無線數(shù)據(jù)終端的實現(xiàn)。MCS-51單片機普遍性強,應(yīng)用廣泛,價格便宜。但此系列單片機字長有限,處理速度較慢,資源不夠豐富,需要擴展較多的外圍電路,降低了系統(tǒng)的可靠性。難以滿足本設(shè)計要求。相比較而言,ARM7 系列單片機更適用于無線數(shù)據(jù)終端的實現(xiàn)。最后根據(jù)系統(tǒng)要求選擇LPC2132。2.2.2 無線模塊的選擇無線數(shù)據(jù)通訊模塊選用中興通訊MG2639 模塊,頻段:850/900/1800/1900MHz,支持語音、短信、數(shù)據(jù)功能,數(shù)據(jù)傳輸最高速率 354kbps,待機電流約2mA,內(nèi)嵌TCP/IP協(xié)議,超薄設(shè)計、體積小、低功耗,溫度范圍:-30+75。模塊提供一個完整全雙工UART 接口,最大速率為115200bps,對外接口為2.8V CMOS 電平信號,邏輯功能符合RS-232 接口協(xié)議中的規(guī)定。這路UART 串口可作為串行數(shù)據(jù)接口,通常用于AT 指令、數(shù)據(jù)業(yè)務(wù)、升級模塊軟件等。MG2639 模塊基帶處理器集成了符合ISO 7816-3 標準的SIM 卡接口,MG2639 模塊支持1.8V 或3V 的SIM 卡。中興通訊擁有雄厚的技術(shù)實力,可為CDMA/GPRS等通訊模塊客戶提供全方位的技術(shù)支持,為以后產(chǎn)品升級維護提供強有力的技術(shù)支持和保障。綜合考慮,在實現(xiàn)相同功能的情況下,這款模塊性價比高是系統(tǒng)的最佳選擇。2.3 軟硬件開發(fā)工具選擇 對于嵌入式ARM的開發(fā),通常有兩種編譯環(huán)境ADS和KEIL,本系統(tǒng)是在Keil uVision4的軟件編譯環(huán)境下進行的。 ARM微處理器的傳統(tǒng)開發(fā)工具是ADS,ADS(ARM Developer Suite)是在1993年由Metrowerks公司開發(fā)的,是ARM處理器下最主要的開發(fā)工具。ADS 是全套的實時開發(fā)軟件工具,包編譯器生成的代碼密度和執(zhí)行速度優(yōu)異??煽焖俚蛢r地創(chuàng)建ARM 結(jié)構(gòu)應(yīng)用。ADS對匯編、C/C+、java支持的均很好,是目前最成熟的ARM開發(fā)工具。很多ARM開發(fā)軟件(例如Keil)也是借用的ADS的編譯器。 但是ADS界面不夠友好,項目管理和系統(tǒng)設(shè)置比較復雜,不易學習。 Keil Vision4于2009年2月發(fā)布,Keil Vision4引入靈活的窗口管理系統(tǒng),使開發(fā)人員能夠使用多臺監(jiān)視器,并提供了視覺上對窗口表面任何位置的完全控制。新的用戶界面可以更好地利用屏幕空間和更有效地組織多個窗口,提供一個整潔,高效的環(huán)境來開發(fā)應(yīng)用程序。新版本支持更多最新的ARM芯片,還添加了一些其他新功能。 2011年3月ARM公司發(fā)布最新集成開發(fā)環(huán)境RealView MDK開發(fā)工具中集成了最新版本的Keil uVision4,其編譯器、調(diào)試工具實現(xiàn)與ARM器件的最完美匹配。2.4 系統(tǒng)語言與模塊化結(jié)構(gòu)2.4.1 AT指令集 AT 即Attention,AT指令集是從終端設(shè)備(Terminal Equipment,TE)或數(shù)據(jù)終端設(shè)備向終端適配器(Terminal Adapter, TA)或數(shù)據(jù)電路終端設(shè)備發(fā)送的。通過TA,TE發(fā)送AT指令來控制移動臺的功能,與GSM 網(wǎng)絡(luò)業(yè)務(wù)進行交互。用戶可以通過AT指令進行呼叫、短信、電話本、數(shù)據(jù)業(yè)務(wù)、傳真等方面的控制。90年代初,AT指令僅被用于Modem操作。沒有控制移動電話文本消息的先例,只開發(fā)了一種叫SMS BlockMode的協(xié)議,通過終端設(shè)備(TE)或電腦來完全控制 SMS。幾年后,主要的移動電話生產(chǎn)廠商諾基亞、愛立信、摩托羅拉和HP共同為GSM研制了一整套AT指令,包括對SMS的控制。AT指令在此基礎(chǔ)上演化并被加入GSM0705標準以及現(xiàn)在的GSM0707標準。SMS的控制共有3種實現(xiàn)途徑:最初的BlockMode;基于AT指令的TextMode;基于AT指令的PDUMode。到現(xiàn)在PDUMode已經(jīng)取代BlockMode,后者逐漸淡出。GSM模塊與計算機之間的通信協(xié)議是一些AT指令集,AT指令是以AT作首,字符結(jié)束的字符串,AT指令的響應(yīng)數(shù)據(jù)包在每個指令執(zhí)行成功與否都有相應(yīng)的返回。其他的一些非預期的信息(如有人撥號進來、線路無信號等),模塊將有對應(yīng)的一些信息提示,接收端可做相應(yīng)的處理。 中興通訊MG2639模塊有自己豐富的AT指令集本,本文用到的基本指令有:AT、ATE0、AT+ZPNUM=CMNET,(設(shè)置APN指令)、AT+ZPPPOPEN(激活APN指令)、AT+ZIPSETUP=1,60.208.26.237,3030(建立TCP網(wǎng)絡(luò)連接指令)、 AT+ZIPSEND=1,10(發(fā)送數(shù)據(jù)指令)。2.4.2 C語言程序模塊化設(shè)計 不同于一般形式的軟件編程,嵌入式系統(tǒng)編程建立在特定的硬件平臺上,勢必要求其編程語言具備較強的硬件直接操作能力。無疑,匯編語言具備這樣的特質(zhì)。但是,由于匯編語言開發(fā)的復雜性,它并不是嵌入式系統(tǒng)開發(fā)的一般選擇。而與之相比,C語言一種高級的低級語言,則成為嵌入式系統(tǒng)開發(fā)的最佳選擇。它既具有高級語言的特點,又具有匯編語言的特點。而且C語言移植性好、易于模塊化設(shè)計,有利于系統(tǒng)后期升級維護。 模塊化設(shè)計,簡單地說就是程序的編寫不是開始就逐條錄入計算機語句和指令,而是首先用主程序、子程序、子過程等框架把軟件的主要結(jié)構(gòu)和流程描述出來,并定義和調(diào)試好各個框架之間的輸入、輸出鏈接關(guān)系。逐步求精的結(jié)果是得到一系列以功能塊為單位的算法描述。以功能塊為單位進行程序設(shè)計,實現(xiàn)其求解算法的方法稱為模塊化。模塊化的目的是為了降低程序復雜度,使程序設(shè)計、調(diào)試和維護等操作簡單化。程序模塊開發(fā)設(shè)計,有利于團隊成員間的合作和分工,使嵌入式產(chǎn)品的開發(fā)周期變短。提高開發(fā)效率,減少開發(fā)成本,更有利于產(chǎn)品的升級。3 硬件電路設(shè)計 硬件電路設(shè)計的具體設(shè)計任務(wù):首先分析硬件系統(tǒng)各部分的功能要求,選擇合適的器件,完成各部分電路的設(shè)計,然后利用Protel99se進行硬件電路原理圖的總體設(shè)計和PCB的設(shè)計,完成硬件設(shè)計。3.1 電源電路設(shè)計3.1.1 電源芯片選擇 電源部分的設(shè)計,系統(tǒng)采用兩種可選擇電源供電方式,一種是5V的直流電源供電,另一種是電源范圍在7-40V的寬電源直流供電。工業(yè)現(xiàn)場的電源多為12V或24V的開關(guān)電源,而且工業(yè)現(xiàn)場環(huán)境惡劣,為了滿足工業(yè)現(xiàn)場的需求,為保證系統(tǒng)的可靠性、穩(wěn)定性,我們選用的供電模塊、電源轉(zhuǎn)換模塊都要從性價比高、帶負載能力強等方面考慮選型。由于考慮無線數(shù)據(jù)終端的應(yīng)用環(huán)境要求,經(jīng)過認真考慮系統(tǒng)決定選用寬電壓輸入電壓模塊??紤]到負載電流和功耗,電源芯片選用開關(guān)式,由于通信模塊與微控制器所需電壓不一致,故選用SP6201-3.3為LPC2132等供電電壓為3.3V的芯片供電,選用為通信模塊供電。LM2576可將7-40V的直流電轉(zhuǎn)換成5V直流電作為寬電壓范圍電源。同時為了縮小產(chǎn)品的尺寸,選擇的芯片封裝為貼片形式。3.1.2 電源電路具體設(shè)計 在寬電源供電下,首先7-40V的直流電源進過LM2576DC-DC變換成5V直流電,然后LM2576的輸出經(jīng)MIC29302轉(zhuǎn)換給無線模塊供電,同時LM2576輸出的5V直流電經(jīng)芯片SP6201-3.3轉(zhuǎn)換成3.3V給3.3V芯片供電。圖 3.1 LM2576電源轉(zhuǎn)換電路 在圖3.1中的電路中,LM2576輸入端和輸出端(MIC29302的輸入端)的兩個二極管IN5408為保護二極管以防電源接反損壞芯片,D3為穩(wěn)壓管,穩(wěn)定電源輸出,電感L1作用是濾波,使輸出5V電壓更加穩(wěn)定。 圖 3.2 模塊電源電路圖3.2中VBAT為MIC29302的輸出,直接給MG2639 模塊供電。MG2639 模塊要求供電電壓在3.4V-4.25V之間。由得。為滿足要求R21/R1在1.92-2.6之間,故R21=2.2K、 R1=1K,計算得VBAT=3.75V。圖 3.3 3.3V電源電路 圖3.3中芯片SP6201-3.3是把5V電壓轉(zhuǎn)換成3.3V,為3.3V器件供電,EN接高電平使能轉(zhuǎn)換,RSN為低電壓檢測復位端。當輸出電壓過低時,延時檢測發(fā)出復位信號。本系統(tǒng)未用此端。C15、16為電源端去耦電容。3.2 主控外圍電路 主控電路主控芯片為LPC 2132,采用外部看門狗,外部看門狗芯片選擇SP706。SP706S供電電源為3.3V,系統(tǒng)上電后,SP706S 自動產(chǎn)生200ms 低電平復位信號,使MCU 正常復位。MCU 配置一個I/O 管腳為輸出,并接到WDI。如果I/O 固定為HIGH 或LOW 電平不變,則1.6s 后,SP706S 內(nèi)部的看門狗定時器就會溢出并使/WDO 輸出低電平,而/WDO 已連接到手動復位/MR,因此會導致/RST 管腳輸出低電平復位信號使MCU 重新復位。MCU 在正常工作情況下當然是不允許這樣反復復位的,因此必須在程序里及時反轉(zhuǎn)I/O 的狀態(tài),該操作被形象地稱為“喂狗”。每次反轉(zhuǎn)WDI 輸入狀態(tài)都能夠清除SP706S 內(nèi)部的看門狗定時器,從而確保/WDO 不會輸出低電平(為保證可靠,喂狗間隔應(yīng)當小于1s)。利用外部看門狗的好處是使系統(tǒng)更加穩(wěn)定可靠,避免內(nèi)部看門狗定時器限制系統(tǒng)功能。晶振電路晶振選擇11.0592MHZ,這樣使得系統(tǒng)時間更加準確??撮T狗電路如圖3.4圖 3.4 看門狗電路 主控電路部分具體電路如圖3.5所示,C34、C34、晶振Y1、R14組成主控時鐘電路,晶振選擇11.0592MHZ頻率,R14為起振電阻阻值為1M。CON2為程序下載短接端口,需下載程序時,在上電短接CON2,這樣上電后LPC2132自動進入下載模式。D9為運行指示LED。圖 3.5 主控電路3.3 串口通信電路 由于在工業(yè)現(xiàn)場大部分的串口通信接口,一般采用RS-232或RS-485接口方式,為了滿足不同用戶的需求,本系統(tǒng)設(shè)計了兩種接口方式,可供用戶根據(jù)自身條件自由選擇。故選用sp3232en和sp3485en作為GPRS無線終端與下位機的通信接口。sp3232en和sp3485en供電電源均為3.3V,均為工業(yè)級芯片。 圖3.6為RS-232典型串口電路,D10為數(shù)據(jù)傳輸指示燈。圖 3.6 RS-232電路 如圖3.7所示,485電路中的CON2 、CON3是232與485的通信接口切換接線端子,當RXD0與3485RXD短接、TXD0與3485TXD短接時,系統(tǒng)對外為485接口,反之為232接口。A、B輸出末端的電阻作為線路的匹配電阻,也是為了避免信號的反射影響系統(tǒng)性能。UC0504A集成了四個TVS管,在A、B線路上各接一個TVS管,瞬態(tài)電壓抑制器TVS可以有效的保護器件免遭瞬態(tài)高壓的損害,它可以瞬間由高阻態(tài)變成低阻態(tài),使兩極間的電壓箝位于一個預定值,有效地保護電子線路中的精密元器件,免受各種浪涌脈沖的損壞。J5為485對外接口。當REDE為高電平時主控向485發(fā)送數(shù)據(jù),為低電平是進過485接收數(shù)據(jù)。 圖 3.7 RS-485電路 3.4 電平轉(zhuǎn)換電路和部分指示電路 由于MG2639通信模塊數(shù)字信號輸入高電平不能大于3V,微控制器輸出高電平為3.3V,所以需要進行電平轉(zhuǎn)換,從而保證通信正常,避免燒壞模塊。利用三極管開關(guān)特性進行電平轉(zhuǎn)換。 圖3.8為電平轉(zhuǎn)換電路,當MCU_TXD為3.3V高電平時,三極管截止RXD為高電壓值為V_MSM=2.8V,當MCU_TXD為低電平時,三極管飽和導通RXD為低電平。電容C20 、C22、 C23的作用是減弱環(huán)境對數(shù)據(jù)信號干擾。 圖3.9中,當無線模塊工作正常時,D6點亮,D7、D8分別為VBAT和V3.3的電源指示,D4為模塊工作狀態(tài)指示。開機狀態(tài):D4指示燈滅;找網(wǎng)狀態(tài):D4指示燈以3Hz 頻率閃爍;Idle 狀態(tài):D4指示燈以1Hz 頻率閃爍;Traffic 狀態(tài)(通話、上網(wǎng)等):D4指示燈以5Hz 頻率閃爍。圖 3.8 電平轉(zhuǎn)換電路圖 3.9 電平轉(zhuǎn)換電路 3.5 無線模塊外圍電路設(shè)計3.5.1 無線模塊插板電路 無線模塊MG2639 模塊是28引腳郵票接口模塊,功能支持短信、語音通話、數(shù)據(jù)傳輸業(yè)務(wù)。無線模塊MG2639 模塊具有一個完整全雙工UART 接口(以下簡稱UART 串口),最大速率為115200bps,對外接口為2.8V CMOS 電平信號,邏輯功能符合RS-232 接口協(xié)議中的規(guī)定。這路UART 串口可作為串行數(shù)據(jù)接口,通常用于AT 指令、數(shù)據(jù)業(yè)務(wù)、升級模塊軟件等。鑒于本系統(tǒng)功能需求,用到的引本設(shè)計主要用到的是數(shù)據(jù)傳輸業(yè)務(wù)。用到的引腳有RXD、TXD串口引腳,RSSI_LED為網(wǎng)絡(luò)信號指示和與SIM卡相關(guān)的信號引腳。圖 3.10 模塊電路3.5.2 SIM卡電路 SIM卡電路電源為MG2639V_CARD輸出電壓提供,MG2639支持1.8V/3.0V的SIM卡。由于SIM 卡的設(shè)計需要滿足ESD 電氣性能,防止環(huán)境下ESD 損壞SIM 卡的情況,故本設(shè)計在4 路SIM 卡信號上都加上了TVS 器件。并且在4 路SIM 卡信號上都加了電容值為22PF的濾波電容。減少信號的干擾。CLK為SIM卡的時鐘,DATA為SIM卡的數(shù)據(jù),RST為SIM卡的工作復位信號。圖 3.11 SIM卡外圍電路3.6 存儲模塊電路設(shè)計 存儲模塊電路采用鐵電存儲,所用芯片為FM24CL64,它具有64的非易失RAM。它是以I2C總線的方式進行讀寫訪問??梢赃M行寫保護設(shè)置。更高的擦寫次數(shù)和強度,更快作出的FRAM寫入比EEPROM更具優(yōu)越性,也是選擇鐵電存儲的原因之一。鐵電存儲有以下特點: 1、數(shù)據(jù)的收集方面。在實際應(yīng)用中的數(shù)據(jù)收集和保存,F(xiàn)RAM提供了一個更優(yōu)越的解決方案。它比電池備份的SRAM更具成本效益,而且提供比EEPROM更好的寫屬性。2、高噪聲環(huán)境。寫入EEPROM可以挑戰(zhàn)任何嚴重的噪聲或電源波動的環(huán)境。目前,長時間的EEPROM寫時間可能導致寫損壞,F(xiàn)RAM的寫入時間可以在一微秒內(nèi)快速完成。通常這個時間要比噪聲或電源波動擾亂的時間短得多。 3、維修跟蹤。在復雜的系統(tǒng)中,維修信息更需要被加快記錄。由于高擦寫次數(shù),F(xiàn)RAM作出理想的系統(tǒng)日志。此外,2線的FM24CL64接口允許內(nèi)存分布在整個最小系統(tǒng)中使用。 鑒于鐵電存儲的上述優(yōu)點,故本系統(tǒng)采用FM24CL64存儲登錄參數(shù)等相關(guān)配置。在圖3.12中A0、A1、A2接地,確定了器件地址。FMWP接高電平時寫保護。FMWP接低電平時可進行寫操作。圖 3.12 鐵電存儲電路 4 軟件程序設(shè)計4.1 軟件總體設(shè)計主流程 本文軟件設(shè)計部分,主要按照系統(tǒng)工作過程進行的設(shè)計。首先是對LPC2132涉及到的各功能部分進行初始化設(shè)置,包括主頻、串口、定時器、I2C總線。其次是對GPRS登陸參數(shù)進行設(shè)置,包括連接的IP和相應(yīng)的端口號。最后建立TCP服務(wù)器鏈接,進入TCP工作模式,完成上下行數(shù)據(jù)的透明傳輸。以下為具體流程圖。 圖 4.1 系統(tǒng)主流程圖 4.2 系統(tǒng)初始化4.2.1 系統(tǒng)中斷初始化 ARM7中斷為向量中斷,向量中斷控制器(VIC)具有32個中斷請求輸入,可將其編程分為3類:FIQ、向量 IRQ 和非向量 IRQ??删幊谭峙錂C制意味著不同外設(shè)的中斷優(yōu)先級可以動態(tài)分配并調(diào)整??焖僦袛嗾埱螅‵IQ)具有最高優(yōu)先級。向量 IRQ 具有中等優(yōu)先級。該級別可分配32個中斷中的16個。32個請求中的任意一個都可分配到16個向量IRQ slot中的任意一個。其中slot0具有最高優(yōu)先級,而slot15則為最低優(yōu)先級。非向量IRQ的優(yōu)先級最低。VIC將所有向量和非向量IRQ“相或”向 ARM 處理器產(chǎn)生 IRQ 信號。IRQ 服務(wù)程序可通過讀取VIC的一個向量地址寄存器跳到相應(yīng)地址。如果有任意一個向量IRQ發(fā)出請求,VIC則提供最高優(yōu)先級請求IRQ服務(wù)程序的地址,否則提供所默認程序的地址。 中斷程序的初始化是對系統(tǒng)內(nèi)需要用到的中斷進行包括優(yōu)先級及其中斷程序入口地址的初始化,首先是選擇中斷類型,本系統(tǒng)中所有中斷一律選擇為向量中斷,然后使能相應(yīng)的中斷,LPC2132為每一個中斷源提供一個通道號。在中斷控制寄存器0-15中寫入中斷通道號,中斷控制寄存器0中的中斷優(yōu)先級最高。以此來設(shè)定各中斷源的優(yōu)先級。最后在相應(yīng)的向量地址寄存器中寫入32位中斷程序入口地址。中斷服務(wù)程序就會在向量地址寄存器中讀出,并在每次中斷程序執(zhí)行完畢后清零向量地址寄存器來結(jié)束中斷程序。本系統(tǒng)中斷初始化程序如圖4.2。圖 4.2 中斷初始化流程圖4.2.2 主頻配置 主頻的配置其實是對PLL(鎖相環(huán))進行設(shè)定達到系統(tǒng)需要的系統(tǒng)主頻, PLL接受的輸入時鐘頻率范圍為10MHz25MHz。輸入頻率通過一個電流控制振蕩器(CCO)倍增到范圍10MHz60MHz(CPU頻率范圍)。倍頻器可以是從1 到 32 的整數(shù)(實際上,由于 CPU 最高頻率的限制, LPC2132的倍頻值不能高于6)。CCO 的操作頻率范圍為 156MHz320MHz,因此在環(huán)中有一個 PLL 提供所需要的輸出頻率使 CCO 保持在頻率范圍內(nèi)。輸出分頻器可設(shè)置為 2,4,8 或 16,由于輸出分頻器的最小值為 2,它保證了 PLL 輸出有 50%的占空比。PLL的激活由PLLCON 寄存器控制。PLL 倍頻器和分頻器的值由 PLLCFG 寄存器控制。為了防止 PLL 參數(shù) 改變或PLL失效,對這兩個寄存器進行了保護。對它們的保護由一個類似于操作看門狗定時器的代碼序列來實現(xiàn)。對 PLLFEED 寄存器的操作可以實現(xiàn)這一序列。PLL只能通過軟件使能。程序必須在配置并激活 PLL后等待其鎖定,然后作為時鐘源連接到PLL。 FOSC是晶振頻率,F(xiàn)CCO 是PLL電流控制振蕩器的頻率 ,cclk是PLL輸出頻率(也是處理器的時鐘頻率), M 為PLLCFG寄存器中MSEL位的倍增器值,P 為PLLCFG寄存器中PSEL位的分頻器值。PLL輸出頻率(當PLL激活并連接時)由下式得到:cclk = M * FOSC或cclk= FCCO / (2*P) ,CCO頻率可由下式得到: FCCO = cclk * 2 * P 或 FCCO = FOSC * M * 2 * P 。PLL輸入和設(shè)定必須滿足下面的條件:FOSC的范圍:10MHz25MHz 、cclk的范圍:10MHz-Fmax(LPC2131/2132/2138 的最大允許頻率)、 FCCO的范圍:156MHz-320MHz。 經(jīng)過細致考慮,為了讓系統(tǒng)在比較快的主頻下運行,主頻定為44.2368MHZ。根據(jù)公式計算的M=4,P=2。外設(shè)工作頻率由VPB分頻器決定??赏ㄟ^VPBDIV設(shè)置。默認設(shè)置下,外設(shè)頻率是主頻的1/4。所以程序流程如圖4.3。圖4.3 主頻設(shè)置流程圖4.2.3 UART初始化 ARM提供兩個全雙工的串口,串口的初始化主要是串口接受中斷的初始化。串口的初始化一是要設(shè)置串口通信的波特率,二是要設(shè)置發(fā)送接受的字符格式,三是要使能接收中斷。對于LPC2132串口的波特率的設(shè)置,需要設(shè)置UART的除數(shù)鎖存器。除數(shù)鎖存是 UART0 波特率發(fā)生器的一部分,它保存了用于產(chǎn)生波特率時鐘的 VPB 時鐘(pclk)分頻值,波特率時鐘必須是波特率的16倍。U0DLL和U0DLM寄存器一起構(gòu)成一個 16 位除數(shù),U0DLL包含除數(shù)的低8位。當訪問UART0 除數(shù)鎖 存寄存器時,U0LCR中的除數(shù)鎖存訪問位(DLAB)必須為 1。本系統(tǒng)的串口波特率設(shè)置為115200bps,數(shù)據(jù)格式為8位數(shù)據(jù)位、1位停止位、無奇偶校驗。FIFO接受觸點為1個字節(jié)。初始化流程如圖4.4。圖 4.4 UART初始化4.2.4 定時器初始化圖 4.5定時器初始化 LPC2132帶可編程32位預分頻器的32位定時器/計數(shù)器。4個32位的匹配通道,4個32位匹配寄存器,4個對應(yīng)于匹配寄存器的外部輸出。定時器初始化一般過程為,設(shè)置工作模式、設(shè)置預分頻寄存器的值、設(shè)置匹配寄存器的值、選擇是匹配動作還是匹配中斷、然后啟動定時器。根據(jù)本設(shè)計的要求,定時器工作在計時狀態(tài),當定時器計數(shù)器達到匹配寄存器值時,進入中斷進行中斷處理。流程圖如圖4.5所示。圖 4.5定時器初始化4.2.5 I2C初始化與鐵電存儲 LPC2132帶有兩個標準的I2C總線接口,可配置為主機,從機或主/從機,I2C初始化相對比較簡單。一是對波特率進行設(shè)置,通過設(shè)置I2SCLH和I2SCLL進行配置I2C時鐘高低電平的占空比,二是使能I2C。I2C總線存在兩種類型的數(shù)據(jù)傳輸。第一種,從主發(fā)送器向從接收器發(fā)送數(shù)據(jù)。主機發(fā)送的第一個字節(jié)是從機地址。接下來的是數(shù)據(jù)字節(jié)流。從機每接收一個字節(jié)返回一個應(yīng)答位。第二種,從發(fā)送器向主接收器發(fā)送數(shù)據(jù),第一個字節(jié)由主機發(fā)送。從機返回一個應(yīng)答位。接下來從機向主機發(fā)送數(shù)據(jù)字節(jié)。主機每接收一個字節(jié)返回一個應(yīng)答位。接收完最后一個字節(jié),主機返回一個非應(yīng)答位。主器件產(chǎn)生所有串行時鐘脈沖和起始以及停止條件。出現(xiàn)停止條件或重復的起始條件時傳輸結(jié)束。由于重復的起始條件同時是下一個串行發(fā)送的開始,因此I2C總線不會被釋放。 LPC2132提供字節(jié)方式的I2C接口。它有四種操作模式:主發(fā)送器模式、主接收器模式、從發(fā)送器模式和從接收器模式。根據(jù)本系統(tǒng)的需要,LPC2132的I2C設(shè)置為主機為主接受和主發(fā)送模式。在主機模式下,無論是接受還是發(fā)送,首先都必須發(fā)送從機地址和數(shù)據(jù)方向位。然后啟動總線,條件發(fā)出后,進入中斷發(fā)送從地址和方向位。然后根據(jù)狀態(tài)寄存器的碼值進行相應(yīng)的數(shù)據(jù)操作。 系統(tǒng)中要對登陸的IP地址和建立TCP連接的網(wǎng)絡(luò)端口號等信息進行非易失性存儲,又因為鐵電存儲器FM24CL64為I2C接口,所以I2C主要用在對參數(shù)數(shù)據(jù)的讀寫上。每次參數(shù)配置后就進行參數(shù)的鐵電存儲。也就是I2C的寫操作,寫操作的過程是這樣的,首先要確定寫入的地址和字節(jié)數(shù)。啟動總線后等待啟動條件是否發(fā)送完成,發(fā)送完成進入中斷程序,數(shù)據(jù)寫入完成釋放總線。結(jié)束寫數(shù)據(jù)子程序。讀數(shù)據(jù)子程序與寫操作相類似,只是進入I2C中斷后的操作碼值不同,進行讀操作。具體流程見圖4.6。圖 4.6 鐵電存儲流程 4.2.6 參數(shù)配置初始化設(shè)計 參數(shù)配置在系統(tǒng)上電后進入?yún)?shù)配置階段,一定時間內(nèi)若不進行配置,系統(tǒng)自動為默認參數(shù)。隨后以默認參數(shù)登陸進入TCP模式下的數(shù)據(jù)傳輸。參數(shù)配置過程首先發(fā)送提示信息,等待參數(shù)輸入,若有參數(shù)輸入,原樣發(fā)出等待確認,正確則進入登陸,不正確重新輸入相關(guān)參數(shù)。4.3 TCP網(wǎng)絡(luò)連接4.3.1 TCP/IP簡述 Transmission Control Protocol/Internet Protocol,中譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又名網(wǎng)絡(luò)通訊協(xié)議,簡稱TCPIP協(xié)議,是Internet最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成。TCP/IP協(xié)議是由美國國防部高級研究工程局(DAPRA)開發(fā)的。 數(shù)據(jù)在網(wǎng)絡(luò)中傳輸中的過程需要加入許多的附加信息,才能把數(shù)據(jù)完整無缺的發(fā)送到目的地,數(shù)據(jù)在網(wǎng)絡(luò)中的相互傳遞需要經(jīng)過很多的網(wǎng)絡(luò)層。就需要協(xié)議來完成各層之間的相互關(guān)系。TCPIP協(xié)議就完成了這個任務(wù)。4.3.2 TCP連接的建立、維護與拆除 TCP協(xié)議是一個面向連接的協(xié)議。所謂面向連接,是指一個主機需要和另外一臺主機通訊時,需要先呼叫對方,請求與對方建立連接。只有對方同意,才能開始通訊。 這種呼叫與應(yīng)答的操作非常簡單。所謂呼叫,就是連接的發(fā)起方發(fā)送一個“建立連接請求”的報文包給對方。對方如果同意這個連接,就簡單地發(fā)回一個“連接響應(yīng)”的應(yīng)答包,連接就建立起來了。圖4.7描述了TCP建立連接的過程。圖 4.7 TCP連接圖 主機A希望與主機B建立連接以交換數(shù)據(jù),它的TCP程序首先構(gòu)造一個請求連接報文包給對方。請求連接包的TCP報頭中的報文性質(zhì)碼標志為SYN(見圖4.7),聲明是一個“連接請求包”。主機B的TCP程序收到主機A的連接請求后,如果同意這個連接,就發(fā)回一個“確認連接包”,應(yīng)答A主機。主機B的確認連接包的TCP報頭中的報文性質(zhì)碼標志為ACK。 SYN和ACK是TCP報頭中報文性質(zhì)碼的連個標志位(見圖4.8)。建立連接時,SYS標志為置1,ACK標志為置0,表示本報文包是個同步synchronization包。確認連接的包,ACK置1,SYN置1,表示本報文包是個確認acknowledgment包。圖 4.8 SYN標志位和ACK標志位 從圖4.7可以看到,建立連接有第三個包,是主機A對主機B的連接確認??紤]這樣一種情況:主機A發(fā)送一個連接請求包,但這個請求包在傳輸過程中丟失。主機A發(fā)現(xiàn)超時仍未收到主機B的連接確認,會懷疑到有包丟失。主機A再重發(fā)一個連接請求包。第二個連接請求包到達主機B,保證了連接的建立。但是如果第一個連接請求包沒有丟失,而只是網(wǎng)絡(luò)慢而導致主機A超時呢?這就會使主機B收到兩個連接請求包,使主機B誤以為第二個連接請求包是主機A的又一個請求。第三個確認包就是為了防止這樣的錯誤而設(shè)計的。這樣的連接建立機制被稱為三次握手。 當通訊結(jié)束時,發(fā)起連接的主機應(yīng)該發(fā)送拆除連接的報文包,通知對方主機關(guān)閉相應(yīng)的TCP進程,釋放所占用的資源。拆除連接報文包的TCP報頭中,報文性質(zhì)碼的FIN標志位置1,表明是一個拆除連接的報文包。 為了防止連接雙方的一側(cè)出現(xiàn)故障后異常關(guān)機,而另外一方的TCP進程無休止地駐留,任何一方如果發(fā)現(xiàn)對方長時間沒有通訊流量,就會拆除連接。但有時確實有一段時間沒有流量,但還需要保持連接,就需要發(fā)送空的報文包,以維持這個連接。維持連接的報文包的英語名稱:keepalive。為了在一段時間內(nèi)沒有數(shù)據(jù)發(fā)送但還需要保持連接而發(fā)送Keepalive包,被稱為連接的維護(在本系統(tǒng)中稱為心跳)。 TCP程序為實現(xiàn)通訊而對連接進行建立、維護和拆除的操作,稱為TCP的傳輸連接管理。4.3.3 系統(tǒng)TCP網(wǎng)絡(luò)連接過程 TCP網(wǎng)絡(luò)連接的過程是首先向無線模塊發(fā)送AT,若模塊回復正確,則發(fā)送ATE0指令取消模塊對發(fā)送來的指令原樣返回的功能,使主控只接受回應(yīng)的有用信息。然后設(shè)置APN,打開GPRS連接,附著網(wǎng)絡(luò)。最后建立TCP數(shù)據(jù)連接,返回連接成功提示信息。具體流出如圖4.9。圖 4.9建立TCP數(shù)據(jù)連接4.4 數(shù)據(jù)解析 數(shù)據(jù)進過網(wǎng)絡(luò)的傳輸,由于經(jīng)過的途徑不同會帶有各個階段的協(xié)議信息或者以特定格式傳輸?shù)男畔?。為了完成?shù)據(jù)的透明傳輸,必須對接受到的數(shù)據(jù)進行數(shù)據(jù)解析。 由于本系統(tǒng)采用的MG2639無線通訊模塊已經(jīng)內(nèi)嵌了TCPIP協(xié)議,因此就不再涉及協(xié)議棧的建立與分開的復雜過程,數(shù)據(jù)由下位機傳入后通過無線模塊自動加入?yún)f(xié)議信息,直接經(jīng)過網(wǎng)絡(luò)傳輸即可進入上位機完成數(shù)據(jù)的透明傳輸。本文主要的數(shù)據(jù)解析處理是發(fā)生在下行數(shù)據(jù)中的。由遠程上位機通過

溫馨提示

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

評論

0/150

提交評論