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

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論