畢業(yè)設(shè)計-基于arm的gprs無線數(shù)據(jù)終端設(shè)計_第1頁
已閱讀1頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  本科畢業(yè)設(shè)計論文</b></p><p>  題 目 基于ARM的GPRS無線數(shù)據(jù)終端設(shè)計</p><p>  時間: 2012 年 6月 5 日</p><p><b>  摘要</b></p><p>  隨著嵌入式系統(tǒng)和GPRS無線網(wǎng)絡(luò)的發(fā)展,GPRS無線數(shù)據(jù)終

2、端為工業(yè)生產(chǎn)中的遠(yuǎn)距離數(shù)據(jù)傳輸帶來了更佳的傳輸途徑,擺脫了有線數(shù)據(jù)傳輸?shù)木窒扌?,極大地節(jié)省了后期維護費用,降低了成本,滿足了日益增長的工業(yè)需求。GPRS 無線數(shù)據(jù)終端的研究具有廣泛的意義和良好的商業(yè)前景。</p><p>  本文主要設(shè)計并實現(xiàn)基于ARM的GPRS無線數(shù)據(jù)終端。該系統(tǒng)以ARM7系列微處理器為核心,通過AT指令控制自帶有完整TCP/IP協(xié)議棧的無線數(shù)據(jù)模塊。結(jié)合GPRS通信網(wǎng)絡(luò)的特點分析無線數(shù)據(jù)傳輸

3、嵌入式系統(tǒng)的設(shè)計過程,給出系統(tǒng)的具體實現(xiàn)方案,提出硬件、軟件系統(tǒng)的設(shè)計流程、開發(fā)要點和實現(xiàn)過程。</p><p>  本系統(tǒng)經(jīng)過幾個月的設(shè)計制作,較好的完成了 無線數(shù)據(jù)終端的各項功能。</p><p>  關(guān)鍵詞:GPRS;嵌入式;ARM;AT指令;TCP/IP協(xié)議</p><p><b>  ABSTRACT</b></p>&

4、lt;p>  With 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 o

5、f 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 mean

6、ings and good business prospects.</p><p>  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 m

7、odule 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 an

8、d give a specific system implementation including: the hardware and software design process, development points and </p><p>  The design is completed for several months, implementing various functions of the

9、 wireless data terminal.</p><p>  Key words: GPRS; Embedded; ARM; AT command; TCP / IP protocol</p><p><b>  目錄</b></p><p><b>  1 緒論1</b></p><p&g

10、t;  1.1 研究背景1</p><p>  1.2 通訊方式的現(xiàn)狀2</p><p>  1.3 研究具體任務(wù)和目的4</p><p>  2 系統(tǒng)總體方案設(shè)計6</p><p>  2.1 系統(tǒng)功能要求6</p><p>  2.2 系統(tǒng)組成6</p><p>  2.3 系統(tǒng)

11、主要器件選型7</p><p>  2.2.1 主控器件的選擇7</p><p>  2.2.2 無線模塊的選擇9</p><p>  2.3 軟硬件開發(fā)工具選擇9</p><p>  2.4 系統(tǒng)語言與模塊化結(jié)構(gòu)10</p><p>  2.4.1 AT指令集10</p><p>

12、  2.4.2 C語言程序模塊化設(shè)計11</p><p>  3 硬件電路設(shè)計12</p><p>  3.1 電源電路設(shè)計12</p><p>  3.1.1 電源芯片選擇12</p><p>  3.1.2 電源電路具體設(shè)計12</p><p>  3.2 主控外圍電路14</p><

13、;p>  3.3 串口通信電路15</p><p>  3.4 電平轉(zhuǎn)換電路和部分指示電路17</p><p>  3.5 無線模塊外圍電路設(shè)計18</p><p>  3.5.1 無線模塊插板電路18</p><p>  3.5.2 SIM卡電路19</p><p>  3.6 存儲模塊電路設(shè)計20

14、</p><p>  4 軟件程序設(shè)計22</p><p>  4.1 軟件總體設(shè)計主流程22</p><p>  4.2 系統(tǒng)初始化23</p><p>  4.2.1 系統(tǒng)中斷初始化23</p><p>  4.2.2 主頻配置24</p><p>  4.2.3 UART初始化

15、26</p><p>  4.2.4 定時器初始化27</p><p>  4.2.5 I2C初始化與鐵電存儲28</p><p>  4.2.6 參數(shù)配置初始化設(shè)計31</p><p>  4.3 TCP網(wǎng)絡(luò)連接31</p><p>  4.3.1 TCP/IP簡述31</p><p&g

16、t;  4.3.2 TCP連接的建立、維護與拆除31</p><p>  4.3.3 系統(tǒng)TCP網(wǎng)絡(luò)連接過程33</p><p>  4.4 數(shù)據(jù)解析34</p><p>  4.5 數(shù)據(jù)的接收緩存處理35</p><p>  4.6 上下行數(shù)據(jù)傳輸36</p><p><b>  5 系統(tǒng)調(diào)試3

17、7</b></p><p>  5.1 硬件調(diào)試37</p><p>  5.2 軟件調(diào)試38</p><p>  6 總結(jié)與展望39</p><p><b>  6.1 總結(jié)39</b></p><p><b>  6.2 展望41</b></p

18、><p><b>  參考文獻(xiàn)43</b></p><p><b>  致謝45</b></p><p><b>  附錄146</b></p><p><b>  附錄247</b></p><p><b>  1

19、緒論</b></p><p><b>  1.1 研究背景</b></p><p>  計算機與通信技術(shù)的不斷發(fā)展,極大地促進(jìn)了工業(yè)領(lǐng)域及其它領(lǐng)域的自動化和信息化的發(fā)展。以前在工業(yè)領(lǐng)域大多采用由單片機構(gòu)成的數(shù)據(jù)處理系統(tǒng)和PC機通過串行口構(gòu)成的微機系統(tǒng),主要是針對于生產(chǎn)過程分布范圍不大、相距不遠(yuǎn)的場合,這些系統(tǒng)大多采用RS-232,RS-485或有線MODE

20、M的通信方式,雖然經(jīng)濟實用,但是采用有線的數(shù)據(jù)傳輸方式,在很大程度上限制了應(yīng)用場合的拓展。隨著企業(yè)生產(chǎn)規(guī)模不斷擴大,不同的生產(chǎn)部門可能在地域上分布極廣,相距遙遠(yuǎn),如電力、鐵路、采礦和石油等,這些部門要對相距遙遠(yuǎn)的生產(chǎn)過程進(jìn)行數(shù)據(jù)傳輸,如果還是沿用有線的傳輸方式,則在技術(shù)上和經(jīng)濟上都是不足取的。所以采用無線的方式來進(jìn)行數(shù)據(jù)傳輸?shù)男枨缶腿找嫱怀隽恕?lt;/p><p>  在通信領(lǐng)域中,移動通信(GPRS)網(wǎng)則是這個領(lǐng)域

21、中發(fā)展最積極最活躍最快的分支之一。GPRS(General Packet Radio Service)即通用分組無線業(yè)務(wù),是在現(xiàn)有GSM網(wǎng)絡(luò)上開通的一種新型的數(shù)據(jù)傳輸技術(shù),GPRS采用分組交換方式,僅在實際傳送和接收數(shù)據(jù)時才占用無線資源。GPRS理論上可提供高達(dá)171.2kb/s的傳輸速率。除了速度上的優(yōu)勢外,GPRS還有“永遠(yuǎn)在線"的特點,即用戶可隨時與網(wǎng)絡(luò)保持聯(lián)系。另外分組交換接入時間的縮短,能提供快速即時的連接,可大幅度

22、提高一些事務(wù)的效率。利用現(xiàn)有的GPRS網(wǎng)絡(luò)資源,發(fā)揮網(wǎng)絡(luò)覆蓋率高、永遠(yuǎn)在線等優(yōu)勢,為現(xiàn)有數(shù)據(jù)傳輸系統(tǒng)提供一種便捷的無線傳輸方式。</p><p>  嵌入式系統(tǒng)是一門交叉學(xué)科,其支柱學(xué)科包括微電子學(xué)科、計算機學(xué)科、電子技術(shù)學(xué)科和對象學(xué)科。微電子學(xué)科是嵌入式系統(tǒng)發(fā)展的基礎(chǔ),對象學(xué)科是嵌入式系統(tǒng)應(yīng)用的歸屬學(xué)科,計算機與電子技術(shù)學(xué)科是嵌入式系統(tǒng)技術(shù)發(fā)展的重要保證。美國著名未來學(xué)家尼葛洛龐帝在2001年訪華時曾預(yù)言,4.

23、5年后,嵌入式智能電腦將是繼PC和Internet之后的最偉大發(fā)明。的確,在當(dāng)今社會中,嵌入式系統(tǒng)已經(jīng)廣泛應(yīng)用于信息家電、移動通訊、手持通信終端、儀器儀表、航空航天以及工業(yè)控制等領(lǐng)域,為人們工作和生活帶來了極大的便利,是當(dāng)前研究最為熱門的領(lǐng)域之一。</p><p>  嵌入式系統(tǒng)被定義為:以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機系統(tǒng)。它一般

24、由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個部分組成。嵌入式系統(tǒng)以其本身體積小,實時性高,穩(wěn)定性好,支持以太網(wǎng)等優(yōu)點,成為工控領(lǐng)域的新熱點。</p><p>  如何利用嵌入式系統(tǒng)實現(xiàn)無線終端,并通過GPRS 無線網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸是一個具有實用意義的研究。本課題源自萊蕪一家科技公司,要求設(shè)計并實現(xiàn)適用于工業(yè)場合的GPRS無線數(shù)據(jù)終端設(shè)計。該終端作為數(shù)據(jù)傳輸終端的載體,有廣闊的市場和良好的

25、商業(yè)前景。</p><p>  1.2 通訊方式的現(xiàn)狀</p><p>  隨著電子、計算機及信息科學(xué)技術(shù)的發(fā)展,通信系統(tǒng)的發(fā)展也非常迅速,目前,數(shù)據(jù)傳輸中主要的通信方式有以下幾種:</p><p>  (1)電話撥號(電話線,專線)</p><p>  電話撥號主要有利用電話線通信和架設(shè)專線通信兩種方式。電話線:就是利用現(xiàn)有的公用電話網(wǎng)為依

26、托,采用調(diào)制解調(diào)器和公用電話網(wǎng)的交換機系統(tǒng),在兩個通信實體之間建立起通信通道。專線方式:通信的網(wǎng)絡(luò)適合于傳輸數(shù)據(jù)量不大、實時性要求不高的場合。</p><p>  (2)光纖通信(ADSL)</p><p>  從現(xiàn)場運行情況來看,利用光纖通信時數(shù)據(jù)比較穩(wěn)定,抗干擾能力強。這種方式在初期投資時較大,但隨著光通信設(shè)備的價格不斷下降,這種方式有可能成為比較實用的現(xiàn)場通信方式。</p>

27、;<p>  (3)基于GSM的短消息數(shù)據(jù)傳輸</p><p>  GSM除語音業(yè)務(wù)外,另有基于短消息數(shù)據(jù)傳輸業(yè)務(wù)。短消息限制每次傳送文本字符不超過160個,傳送給移動臺的短消息在用戶識別模塊(SIM)上存儲。與話音的傳輸建立和釋放過程不同,在GSM系統(tǒng)中,短消息是唯一一種不需要建立端到端的業(yè)務(wù)通道。由于具備這個特點,即使移動臺己處于電路通信狀態(tài),還能同時實現(xiàn)短信息業(yè)務(wù)。</p>&l

28、t;p>  (4)基于GPRS的分組數(shù)據(jù)傳輸</p><p>  通用分組無線業(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用戶的實際通信速率

29、非常靈活,可以低于l00kbps,也可以高于100kbps。在實際的遠(yuǎn)程數(shù)據(jù)傳輸?shù)耐ㄐ胖校缃煌ü芾?、電力系統(tǒng)、無線抄表等,可以采用GSM短消息、光纖接入等方式。GSM短消息方式可以實現(xiàn)主動上報;缺點是按條收費,運行費用高,而且在節(jié)假日短消息中心服務(wù)器繁忙時延時相當(dāng)長。光纖通信穩(wěn)定可靠,但是施工成本投入大、擴展性差、設(shè)備維護方面不方便。而GPRS通信則避免了以上問題。</p><p>  1.3 研究具體任務(wù)和目

30、的</p><p>  GPRS無線數(shù)據(jù)傳輸系統(tǒng)包括以下幾部分:</p><p><b>  (1)數(shù)據(jù)采集單元</b></p><p>  由8/16位單片機功能電路承擔(dān),完成數(shù)據(jù)采集(針對不同的應(yīng)用場合,采集的數(shù)據(jù)有所不同),一般通過RS232/485接口向下位機提供數(shù)據(jù)。</p><p><b>  (2

31、)下位機</b></p><p>  主要負(fù)責(zé)監(jiān)測并接收數(shù)據(jù)采集單元提供的數(shù)據(jù),經(jīng)過處理,通過加密隧道向上位機傳輸數(shù)據(jù);同時接收上位機下發(fā)命令,控制數(shù)據(jù)采集單元。應(yīng)智能化需求,該功能單元由32位微控制器承擔(dān)。這是該系統(tǒng)控制功能的核心單元。</p><p>  (3)加密隧道或透明傳輸</p><p>  數(shù)據(jù)傳輸?shù)耐ǖ?。傳統(tǒng)為有線方式,對GPRS 無線數(shù)

32、據(jù)傳輸系統(tǒng)而言,則是GPRS無線傳輸隧道。加密是為了保證數(shù)據(jù)安全,不加密時為透明傳輸。</p><p><b>  (4)上位機</b></p><p>  由PC承擔(dān),負(fù)責(zé)完成數(shù)據(jù)分析、處理、打印等工作;同時實現(xiàn)遠(yuǎn)程控制下位機完成指定任務(wù)。該功能模塊由通用計算機系統(tǒng)來完成,可以不歸結(jié)為嵌入式系統(tǒng)的范疇。</p><p>  本文關(guān)注的是下位機

33、無線數(shù)據(jù)傳輸功能模塊的實現(xiàn)。通過GPRS網(wǎng)絡(luò)登錄已知公網(wǎng)IP,建立網(wǎng)絡(luò)連接實現(xiàn)數(shù)據(jù)無線透明傳輸。</p><p>  2 系統(tǒng)總體方案設(shè)計</p><p>  2.1 系統(tǒng)功能要求</p><p>  GPRS無線數(shù)據(jù)終端功能有:系統(tǒng)可以在7V- 40V寬電壓范圍供電,也可5V供電;具有232、485兩種通信接口;系統(tǒng)上電初始能夠通過串口對IP地址、網(wǎng)絡(luò)端口號等登陸

34、參數(shù)進(jìn)行配置且掉電參數(shù)非易失;自動登陸網(wǎng)絡(luò)建立TCP連接;能夠?qū)ο滦袛?shù)據(jù)進(jìn)行解析處理完成數(shù)據(jù)的透明傳輸;支持心跳包發(fā)送,保持永久在線。</p><p><b>  2.2 系統(tǒng)組成</b></p><p>  根據(jù)系統(tǒng)功能要求系統(tǒng)大體分為五部分:電源部分、存儲部分、串口通信部分、系統(tǒng)主控部分、無線通信部分。電源部分為各功能模塊部分提供電源支持,主控部分與存儲部分為主從

35、模式,存儲主要的參數(shù)和相關(guān)數(shù)據(jù)。通過串口通信部分完成參數(shù)配置和下位機數(shù)據(jù)交換的任務(wù)。主控部分完成數(shù)據(jù)的接受、發(fā)送、校驗、解析等處理,通過和無線模塊的通信完成數(shù)據(jù)的無線透明傳輸。系統(tǒng)框圖如圖3.1所示。</p><p>  2.3 系統(tǒng)主要器件選型</p><p>  因為GPRS無線數(shù)據(jù)終端應(yīng)用于工業(yè)場合,所以對系統(tǒng)中用到的器件提出了比較苛刻的要求。由于工業(yè)環(huán)境一般比較惡劣,噪聲較多,對溫

36、度范圍要求較寬,要使無線數(shù)據(jù)終端能夠在工業(yè)現(xiàn)場穩(wěn)定可靠的運行,所選器件必須考慮上述要求。</p><p>  2.2.1 主控器件的選擇</p><p>  作為系統(tǒng)控制核心的微控制器應(yīng)該選擇工業(yè)級器件,同時要具有低成本、高可靠、靈活的擴展接口等特點。如今,ARM微處理器及技術(shù)的應(yīng)用幾乎已經(jīng)深入到各個領(lǐng)域。采用ARM技術(shù)的微處理器現(xiàn)在已經(jīng)遍及各類電子產(chǎn)品、汽車、消費娛樂和無線等市場,尤其是

37、工業(yè)控制領(lǐng)域。從應(yīng)用的廣泛度考慮,硬件平臺的核心選擇采用ARM微處理器/微控制器系列。這樣,不僅可以獲得良好的技術(shù)支持,降低研發(fā)風(fēng)險,而且可以縮短上市時間,增強產(chǎn)品競爭力。</p><p>  本文選擇了NXP公司的LPC2132作為系統(tǒng)的主控芯片。NXP公司的ARM內(nèi)核主控芯片在業(yè)界是非常出色地。LPC2132是基于一個支持實時仿真和嵌入式跟蹤的32/16位ARM7 TDMI-STM CPU的微控制器,并帶有6

38、4kB的高速Flash存儲器。128位寬度的存儲器接口和獨特的加速結(jié)構(gòu)使32位代碼能夠在最大時鐘速率下運行。對代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過30%,而性能的損失卻很小。較小的封裝和極低的功耗使LPC2132可理想地用于小型系統(tǒng)中。寬范圍的串行通信接口和片內(nèi)16kB的SRAM使LPC2132非常適用于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、軟modem、聲音辨別和低端成像,為它們提供巨大的緩沖區(qū)空間和強大的處理功能。多

39、達(dá)32位定時器、1個10位8路ADC、PWM通道和47個GPIO以及多達(dá)9個邊沿或電平觸發(fā)的外部中斷使它們特別適用于工業(yè)控制和醫(yī)療系統(tǒng)。通過片內(nèi)PLL可實現(xiàn)最大為60MHz的 CPU操作頻率,PLL的穩(wěn)定時間為100us??赏ㄟ^個別使能/禁止外部功能和降低外部時鐘來優(yōu)化功耗。單個電源供電,含有上電復(fù)位(POR)和掉電檢測(BOD)電路。</p><p>  LPC21系列單片機具有32位解決方案的固有優(yōu)勢,如資源

40、豐富、采用多級流水線技術(shù)、功耗低、體積小巧、購買和開發(fā)成本低、速度可以到60MHz,有32個中斷源,兩個串口,具有I2C總線和SPI總線接口。主要用于工業(yè)控制,特別是LPC2132具有兩個串行通信口更加適合無線數(shù)據(jù)終端的實現(xiàn)。MCS-51單片機普遍性強,應(yīng)用廣泛,價格便宜。但此系列單片機字長有限,處理速度較慢,資源不夠豐富,需要擴展較多的外圍電路,降低了系統(tǒng)的可靠性。難以滿足本設(shè)計要求。相比較而言,ARM7 系列單片機更適用于無線數(shù)據(jù)終

41、端的實現(xiàn)。最后根據(jù)系統(tǒng)要求選擇LPC2132。</p><p>  2.2.2 無線模塊的選擇</p><p>  無線數(shù)據(jù)通訊模塊選用中興通訊MG2639 模塊,頻段:850/900/1800/1900MHz,支持語音、短信、數(shù)據(jù)功能,數(shù)據(jù)傳輸最高速率 354kbps,待機電流約2mA,內(nèi)嵌TCP/IP協(xié)議,超薄設(shè)計、體積小、低功耗,溫度范圍:-30℃~+75℃。模塊提供一個完整全雙工U

42、ART 接口,最大速率為115200bps,對外接口為2.8V CMOS 電平信號,邏輯功能符合RS-232 接口協(xié)議中的規(guī)定。這路UART 串口可作為串行數(shù)據(jù)接口,通常用于AT 指令、數(shù)據(jù)業(yè)務(wù)、升級模塊軟件等。MG2639 模塊基帶處理器集成了符合ISO 7816-3 標(biāo)準(zhǔn)的SIM 卡接口,MG2639 模塊支持1.8V 或3V 的SIM 卡。中興通訊擁有雄厚的技術(shù)實力,可為CDMA/GPRS等通訊模塊客戶提供全方位的技術(shù)支持,為以后

43、產(chǎn)品升級維護提供強有力的技術(shù)支持和保障。綜合考慮,在實現(xiàn)相同功能的情況下,這款模塊性價比高是系統(tǒng)的最佳選擇。</p><p>  2.3 軟件開發(fā)工具選擇</p><p>  對于嵌入式ARM的開發(fā),通常有兩種編譯環(huán)境ADS和KEIL,本系統(tǒng)是在Keil uVision4的軟件編譯環(huán)境下進(jìn)行的。</p><p>  ARM微處理器的傳統(tǒng)開發(fā)工具是ADS,ADS(AR

44、M 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è)置比較復(fù)雜,不易學(xué)習(xí)。</p&

45、gt;<p>  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ā)工具中集

46、成了最新版本的Keil uVision4,其編譯器、調(diào)試工具實現(xiàn)與ARM器件的最完美匹配。</p><p>  2.4 系統(tǒng)語言與模塊化結(jié)構(gòu)</p><p>  2.4.1 AT指令集 </p><p>  AT 即Attention,AT指令集是從終端設(shè)備(Terminal Equipment,TE)或數(shù)據(jù)終端設(shè)備向終端適配器(Terminal Adapter,

47、TA)或數(shù)據(jù)電路終端設(shè)備發(fā)送的。通過TA,TE發(fā)送AT指令來控制移動臺的功能,與GSM 網(wǎng)絡(luò)業(yè)務(wù)進(jìn)行交互。用戶可以通過AT指令進(jìn)行呼叫、短信、電話本、數(shù)據(jù)業(yè)務(wù)、傳真等方面的控制。90年代初,AT指令僅被用于Modem操作。沒有控制移動電話文本消息的先例,只開發(fā)了一種叫SMS BlockMode的協(xié)議,通過終端設(shè)備(TE)或電腦來完全控制 SMS。幾年后,主要的移動電話生產(chǎn)廠商諾基亞、愛立信、摩托羅拉和HP共同為GSM研制了一整套AT指令

48、,包括對SMS的控制。AT指令在此基礎(chǔ)上演化并被加入GSM07.05標(biāo)準(zhǔn)以及現(xiàn)在的GSM07.07標(biāo)準(zhǔn)。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ù)包在每個</p><p>

49、;  中興通訊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ù)指令)。</p><p&g

50、t;  2.4.2 C語言程序模塊化設(shè)計</p><p>  不同于一般形式的軟件編程,嵌入式系統(tǒng)編程建立在特定的硬件平臺上,勢必要求其編程語言具備較強的硬件直接操作能力。無疑,匯編語言具備這樣的特質(zhì)。但是,由于匯編語言開發(fā)的復(fù)雜性,它并不是嵌入式系統(tǒng)開發(fā)的一般選擇。而與之相比,C語言一種"高級的低級"語言,則成為嵌入式系統(tǒng)開發(fā)的最佳選擇。它既具有高級語言的特點,又具有匯編語言的特點。而且C語

51、言移植性好、易于模塊化設(shè)計,有利于系統(tǒng)后期升級維護。</p><p>  模塊化設(shè)計,簡單地說就是程序的編寫不是開始就逐條錄入計算機語句和指令,而是首先用主程序、子程序、子過程等框架把軟件的主要結(jié)構(gòu)和流程描述出來,并定義和調(diào)試好各個框架之間的輸入、輸出鏈接關(guān)系。逐步求精的結(jié)果是得到一系列以功能塊為單位的算法描述。以功能塊為單位進(jìn)行程序設(shè)計,實現(xiàn)其求解算法的方法稱為模塊化。模塊化的目的是為了降低程序復(fù)雜度,使程序設(shè)

52、計、調(diào)試和維護等操作簡單化。程序模塊開發(fā)設(shè)計,有利于團隊成員間的合作和分工,使嵌入式產(chǎn)品的開發(fā)周期變短。提高開發(fā)效率,減少開發(fā)成本,更有利于產(chǎn)品的升級。</p><p><b>  3 硬件電路設(shè)計</b></p><p>  硬件電路設(shè)計的具體設(shè)計任務(wù):首先分析硬件系統(tǒng)各部分的功能要求,選擇合適的器件,完成各部分電路的設(shè)計,然后利用Protel99se進(jìn)行硬件電路原

53、理圖的總體設(shè)計和PCB的設(shè)計,完成硬件設(shè)計。</p><p>  3.1 電源電路設(shè)計</p><p>  3.1.1 電源芯片選擇</p><p>  電源部分的設(shè)計,系統(tǒng)采用兩種可選擇電源供電方式,一種是5V的直流電源供電,另一種是電源范圍在7-40V的寬電源直流供電。工業(yè)現(xiàn)場的電源多為12V或24V的開關(guān)電源,而且工業(yè)現(xiàn)場環(huán)境惡劣,為了滿足工業(yè)現(xiàn)場的需求,為保

54、證系統(tǒng)的可靠性、穩(wěn)定性,我們選用的供電模塊、電源轉(zhuǎn)換模塊都要從性價比高、帶負(fù)載能力強等方面考慮選型。由于考慮無線數(shù)據(jù)終端的應(yīng)用環(huán)境要求,經(jīng)過認(rèn)真考慮系統(tǒng)決定選用寬電壓輸入電壓模塊。考慮到負(fù)載電流和功耗,電源芯片選用開關(guān)式,由于通信模塊與微控制器所需電壓不一致,故選用SP6201-3.3為LPC2132等供電電壓為3.3V的芯片供電,選用為通信模塊供電。LM2576可將7-40V的直流電轉(zhuǎn)換成5V直流電作為寬電壓范圍電源。同時為了縮小產(chǎn)品

55、的尺寸,選擇的芯片封裝為貼片形式。</p><p>  3.1.2 電源電路具體設(shè)計</p><p>  在寬電源供電下,首先7-40V的直流電源進(jìn)過LM2576DC-DC變換成5V直流電,然后LM2576的輸出經(jīng)MIC29302轉(zhuǎn)換給無線模塊供電,同時LM2576輸出的5V直流電經(jīng)芯片SP6201-3.3轉(zhuǎn)換成3.3V給3.3V芯片供電。</p><p>  在圖

56、3.1中的電路中,LM2576輸入端和輸出端(MIC29302的輸入端)的兩個二極管IN5408為保護二極管以防電源接反損壞芯片,D3為穩(wěn)壓管,穩(wěn)定電源輸出,電感L1作用是濾波,使輸出5V電壓更加穩(wěn)定。</p><p>  圖3.2中VBAT為MIC29302的輸出,直接給MG2639 模塊供電。MG2639 模塊要求供電電壓在3.4V-4.25V之間。由得。為滿足要求R21/R1在1.92-2.6之間,故R21

57、=2.2K、 R1=1K,計算得VBAT=3.75V。</p><p>  圖3.3中芯片SP6201-3.3是把5V電壓轉(zhuǎn)換成3.3V,為3.3V器件供電,EN接高電平使能轉(zhuǎn)換,RSN為低電壓檢測復(fù)位端。當(dāng)輸出電壓過低時,延時檢測發(fā)出復(fù)位信號。本系統(tǒng)未用此端。C15、16為電源端去耦電容。</p><p>  3.2 主控外圍電路</p><p>  主控電路主控

58、芯片為LPC 2132,采用外部看門狗,外部看門狗芯片選擇SP706。SP706S供電電源為3.3V,系統(tǒng)上電后,SP706S 自動產(chǎn)生200ms 低電平復(fù)位信號,使MCU 正常復(fù)位。MCU 配置一個I/O 管腳為輸出,并接到WDI。如果I/O 固定為HIGH 或LOW 電平不變,則1.6s 后,SP706S 內(nèi)部的看門狗定時器就會溢出并使/WDO 輸出低電平,而/WDO 已連接到手動復(fù)位/MR,因此會導(dǎo)致/RST 管腳輸出低電平復(fù)位信

59、號使MCU 重新復(fù)位。MCU 在正常工作情況下當(dāng)然是不允許這樣反復(fù)復(fù)位的,因此必須在程序里及時反轉(zhuǎn)I/O 的狀態(tài),該操作被形象地稱為“喂狗”。每次反轉(zhuǎn)WDI 輸入狀態(tài)都能夠清除SP706S 內(nèi)部的看門狗定時器,從而確保/WDO 不會輸出低電平(為保證可靠,喂狗間隔應(yīng)當(dāng)小于1s)。利用外部看門狗的好處是使系統(tǒng)更加穩(wěn)定可靠,避免內(nèi)部看門狗定時器限制系統(tǒng)功能。晶振電路晶振選擇11.0592MHZ,這樣使得系統(tǒng)時間更加準(zhǔn)確。看門狗電路如圖3.4

60、</p><p>  主控電路部分具體電路如圖3.5所示,C34、C34、晶振Y1、R14組成主控時鐘電路,晶振選擇11.0592MHZ頻率,R14為起振電阻阻值為1MΩ。CON2為程序下載短接端口,需下載程序時,在上電短接CON2,這樣上電后LPC2132自動進(jìn)入下載模式。D9為運行指示LED。</p><p>  3.3 串口通信電路</p><p>  由于在

61、工業(yè)現(xiàn)場大部分的串口通信接口,一般采用RS-232或RS-485接口方式,為了滿足不同用戶的需求,本系統(tǒng)設(shè)計了兩種接口方式,可供用戶根據(jù)自身條件自由選擇。故選用sp3232en和sp3485en作為GPRS無線終端與下位機的通信接口。sp3232en和sp3485en供電電源均為3.3V,均為工業(yè)級芯片。</p><p>  圖3.6為RS-232典型串口電路,D10為數(shù)據(jù)傳輸指示燈。</p>&l

62、t;p>  如圖3.6所示,485電路中的CON2 、CON3是232與485的通信接口切換接線端子,當(dāng)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)

63、,使兩極間的電壓箝位于一個預(yù)定值,有效地保護電子線路中的精密元器件,免受各種浪涌脈沖的損壞。J5為485對外接口。當(dāng)REDE為高電平時主控向485發(fā)送數(shù)據(jù),為低電平是經(jīng)過485接收數(shù)據(jù)。</p><p>  3.4 電平轉(zhuǎn)換電路和部分指示電路</p><p>  由于MG2639通信模塊數(shù)字信號輸入高電平不能大于3V,微控制器輸出高電平為3.3V,所以需要進(jìn)行電平轉(zhuǎn)換,從而保證通信正常,避

64、免燒壞模塊。利用三極管開關(guān)特性進(jìn)行電平轉(zhuǎn)換。</p><p>  圖3.8為電平轉(zhuǎn)換電路,當(dāng)MCU_TXD為3.3V高電平時,三極管截止RXD為高電壓值為V_MSM=2.8V,當(dāng)MCU_TXD為低電平時,三極管飽和導(dǎo)通RXD為低電平。電容C20 、C22、 C23的作用是減弱環(huán)境對數(shù)據(jù)信號干擾。</p><p>  圖3.9中,當(dāng)無線模塊工作正常時,D6點亮,D7、D8分別為VBAT和V3

65、.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 頻率閃爍。</p><p>  3.5 無線模塊外圍電路設(shè)計</p><p>  3.5.1 無線模塊插板電路</p><p>  無線模塊MG2639 模塊是

66、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串口引腳,RSS

67、I_LED為網(wǎng)絡(luò)信號指示和與SIM卡相關(guān)的信號引腳。</p><p>  3.5.2 SIM卡電路</p><p>  SIM卡電路電源為MG2639V_CARD輸出電壓提供,MG2639支持1.8V/3.0V的SIM卡。由于SIM 卡的設(shè)計需要滿足ESD 電氣性能,防止環(huán)境下ESD 損壞SIM 卡的情況,故本設(shè)計在4 路SIM 卡信號上都加上了TVS 器件。并且在4 路SIM 卡信號上都

68、加了電容值為22PF的濾波電容。減少信號的干擾。CLK為SIM卡的時鐘,DATA為SIM卡的數(shù)據(jù),RST為SIM卡的工作復(fù)位信號。</p><p>  3.6 存儲模塊電路設(shè)計</p><p>  存儲模塊電路采用鐵電存儲,所用芯片為FM24CL64,它具有64K的非易失RAM。它是以I2C總線的方式進(jìn)行讀寫訪問??梢赃M(jìn)行寫保護設(shè)置。更高的擦寫次數(shù)和強度,更快作出的FRAM寫入比EEPRO

69、M更具優(yōu)越性,也是選擇鐵電存儲的原因之一。鐵電存儲有以下特點:</p><p>  1、數(shù)據(jù)的收集方面。在實際應(yīng)用中的數(shù)據(jù)收集和保存,F(xiàn)RAM提供了一個更優(yōu)越的解決方案。它比電池備份的SRAM更具成本效益,而且提供比EEPROM更好的寫屬性。</p><p>  2、高噪聲環(huán)境。寫入EEPROM可以挑戰(zhàn)任何嚴(yán)重的噪聲或電源波動的環(huán)境。目前,長時間的EEPROM寫時間可能導(dǎo)致寫損壞,F(xiàn)RAM

70、的寫入時間可以在一微秒內(nèi)快速完成。通常這個時間要比噪聲或電源波動擾亂的時間短得多。</p><p>  3、維修跟蹤。在復(fù)雜的系統(tǒng)中,維修信息更需要被加快記錄。由于高擦寫次數(shù),F(xiàn)RAM作出理想的系統(tǒng)日志。此外,2線的FM24CL64接口允許內(nèi)存分布在整個最小系統(tǒng)中使用。</p><p>  鑒于鐵電存儲的上述優(yōu)點,故本系統(tǒng)采用FM24CL64存儲登錄參數(shù)等相關(guān)配置。在圖3.12中A0、A1

71、、A2接地,確定了器件地址。FMWP接高電平時寫保護。FMWP接低電平時可進(jìn)行寫操作。</p><p><b>  4 軟件程序設(shè)計</b></p><p>  4.1 軟件總體設(shè)計主流程</p><p>  本文軟件設(shè)計部分,主要按照系統(tǒng)工作過程進(jìn)行的設(shè)計。首先是對LPC2132涉及到的各功能部分進(jìn)行初始化設(shè)置,包括主頻、串口、定時器、I2C

72、總線。其次是對GPRS登陸參數(shù)進(jìn)行設(shè)置,包括連接的IP和相應(yīng)的端口號。最后建立TCP服務(wù)器鏈接,進(jìn)入TCP工作模式,完成上下行數(shù)據(jù)的透明傳輸。以下為具體流程圖。</p><p><b>  4.2 系統(tǒng)初始化</b></p><p>  4.2.1 系統(tǒng)中斷初始化</p><p>  ARM7中斷為向量中斷,向量中斷控制器(VIC)具有32個中

73、斷請求輸入,可將其編程分為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

74、 處理器產(chǎn)生 IRQ 信號。IRQ 服務(wù)程序可通過讀取VIC的一個向量地址寄存器跳到相應(yīng)地址。如果有任意一個向量IRQ發(fā)出請求,VIC則提供最高優(yōu)先級請求IRQ服務(wù)程序的地址,否則提供所默認(rèn)程序的地址。</p><p>  中斷程序的初始化是對系統(tǒng)內(nèi)需要用到的中斷進(jìn)行包括優(yōu)先級及其中斷程序入口地址的初始化,首先是選擇中斷類型,本系統(tǒng)中所有中斷一律選擇為向量中斷,然后使能相應(yīng)的中斷,LPC2132為每一個中斷源提供

75、一個通道號。在中斷控制寄存器0-15中寫入中斷通道號,中斷控制寄存器0中的中斷優(yōu)先級最高。以此來設(shè)定各中斷源的優(yōu)先級。最后在相應(yīng)的向量地址寄存器中寫入32位中斷程序入口地址。中斷服務(wù)程序就會在向量地址寄存器中讀出,并在每次中斷程序執(zhí)行完畢后清零向量地址寄存器來結(jié)束中斷程序。本系統(tǒng)中斷初始化程序如圖4.2。</p><p>  4.2.2 主頻配置</p><p>  主頻的配置其實是對PL

76、L(鎖相環(huán))進(jìn)行設(shè)定達(dá)到系統(tǒng)需要的系統(tǒng)主頻, PLL接受的輸入時鐘頻率范圍為10MHz~25MHz。輸入頻率通過一個電流控制振蕩器(CCO)倍增到范圍10MHz~60MHz(CPU頻率范圍)。倍頻器可以是從1 到 32 的整數(shù)(實際上,由于 CPU 最高頻率的限制, LPC2132的倍頻值不能高于6)。CCO 的操作頻率范圍為 156MHz~320MHz,因此在環(huán)中有一個 PLL 提供所需要的輸出頻率使 CCO 保持在頻率范圍內(nèi)。輸出分

77、頻器可設(shè)置為 2,4,8 或 16,由于輸出分頻器的最小值為 2,它保證了 PLL 輸出有 50%的占空比。PLL的激活由PLLCON 寄存器控制。PLL 倍頻器和分頻器的值由 PLLCFG 寄存器控制。為了防止 PLL 參數(shù) 改變或PLL失效,對這兩個寄存器進(jìn)行了保護。對它們的保護由一個類似于操作看門狗定時器的代碼序列來實現(xiàn)。對 PLLFEED 寄存器的操作可以實現(xiàn)這一序列。PLL只能通過軟件使能。程序必須在配置并激活 PLL后等待其

78、鎖定,然后作為時鐘源連接到PLL。</p><p>  FOSC是晶振頻率,F(xiàn)CCO 是PLL電流控制振蕩器的頻率 ,cclk是PLL輸出頻率(也是處理器的時鐘頻率), M 為PLLCFG寄存器中MSEL位的倍增器值,P 為PLLCFG寄存器中PSEL位的分頻器值。PLL輸出頻率(當(dāng)PLL激活并連接時)由下式得到:cclk = M * FOSC或cclk= FCCO / (2*P) ,CCO頻率可由下式得到: F

79、CCO = cclk * 2 * P 或 FCCO = FOSC * M * 2 * P 。PLL輸入和設(shè)定必須滿足下面的條件:FOSC的范圍:10MHz~25MHz 、cclk的范圍:10MHz-Fmax(LPC2131/2132/2138 的最大允許頻率)、 FCCO的范圍:156MHz-320MHz。</p><p>  經(jīng)過細(xì)致考慮,為了讓系統(tǒng)在比較快的主頻下運行,主頻定為44.2368MHZ。根據(jù)公式計

80、算的M=4,P=2。外設(shè)工作頻率由VPB分頻器決定??赏ㄟ^VPBDIV設(shè)置。默認(rèn)設(shè)置下,外設(shè)頻率是主頻的1/4。所以程序流程如圖4.3。</p><p>  4.2.3 UART初始化</p><p>  ARM提供兩個全雙工的串口,串口的初始化主要是串口接受中斷的初始化。串口的初始化一是要設(shè)置串口通信的波特率,二是要設(shè)置發(fā)送接受的字符格式,三是要使能接收中斷。</p>&l

81、t;p>  對于LPC2132串口的波特率的設(shè)置,需要設(shè)置UART的除數(shù)鎖存器。除數(shù)鎖存是 UART0 波特率發(fā)生器的一部分,它保存了用于產(chǎn)生波特率時鐘的 VPB 時鐘(pclk)分頻值,波特率時鐘必須是波特率的16倍。U0DLL和U0DLM寄存器一起構(gòu)成一個 16 位除數(shù),U0DLL包含除數(shù)的低8位。當(dāng)訪問UART0 除數(shù)鎖 存寄存器時,U0LCR中的除數(shù)鎖存訪問位(DLAB)必須為 1。本系統(tǒng)的串口波特率設(shè)置為115200bp

82、s,數(shù)據(jù)格式為8位數(shù)據(jù)位、1位停止位、無奇偶校驗。FIFO接受觸點為1個字節(jié)。初始化流程如圖4.4。</p><p>  4.2.4 定時器初始化</p><p>  LPC2132帶可編程32位預(yù)分頻器的32位定時器/計數(shù)器。4個32位的匹配通道,4個32位匹配寄存器,4個對應(yīng)于匹配寄存器的外部輸出。定時器初始化一般過程為,設(shè)置工作模式、設(shè)置預(yù)分頻寄存器的值、設(shè)置匹配寄存器的值、選擇是匹

83、配動作還是匹配中斷、然后啟動定時器。根據(jù)本設(shè)計的要求,定時器工作在計時狀態(tài),當(dāng)定時器計數(shù)器達(dá)到匹配寄存器值時,進(jìn)入中斷進(jìn)行中斷處理。流程圖如圖4.5所示。</p><p>  4.2.5 I2C初始化與鐵電存儲</p><p>  LPC2132帶有兩個標(biāo)準(zhǔn)的I2C總線接口,可配置為主機,從機或主/從機,I2C初始化相對比較簡單。一是對波特率進(jìn)行設(shè)置,通過設(shè)置I2SCLH和I2SCLL進(jìn)行

84、配置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)生所有串行時鐘脈沖和起始以及停止條件。出

85、現(xiàn)停止條件或重復(fù)的起始條件時傳輸結(jié)束。由于重復(fù)的起始條件同時是下一個串行發(fā)送的開始,因此I2C總線不會被釋放。</p><p>  LPC2132提供字節(jié)方式的I2C接口。它有四種操作模式:主發(fā)送器模式、主接收器模式、從發(fā)送器模式和從接收器模式。根據(jù)本系統(tǒng)的需要,LPC2132的I2C設(shè)置為主機為主接受和主發(fā)送模式。在主機模式下,無論是接受還是發(fā)送,首先都必須發(fā)送從機地址和數(shù)據(jù)方向位。然后啟動總線,條件發(fā)出后,進(jìn)

86、入中斷發(fā)送從地址和方向位。然后根據(jù)狀態(tài)寄存器的碼值進(jìn)行相應(yīng)的數(shù)據(jù)操作。</p><p>  系統(tǒng)中要對登陸的IP地址和建立TCP連接的網(wǎng)絡(luò)端口號等信息進(jìn)行非易失性存儲,又因為鐵電存儲器FM24CL64為I2C接口,所以I2C主要用在對參數(shù)數(shù)據(jù)的讀寫上。每次參數(shù)配置后就進(jìn)行參數(shù)的鐵電存儲。也就是I2C的寫操作,寫操作的過程是這樣的,首先要確定寫入的地址和字節(jié)數(shù)。啟動總線后等待啟動條件是否發(fā)送完成,發(fā)送完成進(jìn)入中斷程

87、序,數(shù)據(jù)寫入完成釋放總線。結(jié)束寫數(shù)據(jù)子程序。讀數(shù)據(jù)子程序與寫操作相類似,只是進(jìn)入I2C中斷后的操作碼值不同,進(jìn)行讀操作。具體流程見圖4.6。</p><p>  4.2.6 參數(shù)配置初始化設(shè)計</p><p>  參數(shù)配置在系統(tǒng)上電后進(jìn)入?yún)?shù)配置階段,一定時間內(nèi)若不進(jìn)行配置,系統(tǒng)自動為默認(rèn)參數(shù)。隨后以默認(rèn)參數(shù)登陸進(jìn)入TCP模式下的數(shù)據(jù)傳輸。參數(shù)配置過程首先發(fā)送提示信息,等待參數(shù)輸入,若有參

88、數(shù)輸入,原樣發(fā)出等待確認(rèn),正確則進(jìn)入登陸,不正確重新輸入相關(guān)參數(shù)。</p><p>  4.3 TCP網(wǎng)絡(luò)連接</p><p>  4.3.1 TCP/IP簡述</p><p>  Transmission Control Protocol/Internet Protocol,中譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又名網(wǎng)絡(luò)通訊協(xié)議,簡稱TCP\IP協(xié)議,是Inter

89、net最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成。TCP/IP協(xié)議是由美國國防部高級研究工程局(DAPRA)開發(fā)的。</p><p>  數(shù)據(jù)在網(wǎng)絡(luò)中傳輸中的過程需要加入許多的附加信息,才能把數(shù)據(jù)完整無缺的發(fā)送到目的地,數(shù)據(jù)在網(wǎng)絡(luò)中的相互傳遞需要經(jīng)過很多的網(wǎng)絡(luò)層。就需要協(xié)議來完成各層之間的相互關(guān)系。TCP\IP協(xié)議就完成了這個任務(wù)。</p><

90、p>  4.3.2 TCP連接的建立、維護與拆除</p><p>  TCP協(xié)議是一個面向連接的協(xié)議。所謂面向連接,是指一個主機需要和另外一臺主機通訊時,需要先呼叫對方,請求與對方建立連接。只有對方同意,才能開始通訊。</p><p>  這種呼叫與應(yīng)答的操作非常簡單。所謂呼叫,就是連接的發(fā)起方發(fā)送一個“建立`連接請求”的報文包給對方。對方如果同意這個連接,就簡單地發(fā)回一個“連接響應(yīng)

91、”的應(yīng)答包,連接就建立起來了。</p><p>  圖4.7描述了TCP建立連接的過程。</p><p><b>  圖 </b></p><p>  主機A希望與主機B建立連接以交換數(shù)據(jù),它的TCP程序首先構(gòu)造一個請求連接報文包給對方。請求連接包的TCP報頭中的報文性質(zhì)碼標(biāo)志為SYN(見圖4.7),聲明是一個“連接請求包”。主機B的TCP程序

92、收到主機A的連接請求后,如果同意這個連接,就發(fā)回一個“確認(rèn)連接包”,應(yīng)答A主機。主機B的確認(rèn)連接包的TCP報頭中的報文性質(zhì)碼標(biāo)志為ACK。 </p><p>  SYN和ACK是TCP報頭中報文性質(zhì)碼的連個標(biāo)志位(見圖4.8)。建立連接時,SYS標(biāo)志為置1,ACK標(biāo)志為置0,表示本報文包是個同步synchronization包。確認(rèn)連接的包,ACK置1,SYN置1,表示本報文包是個確認(rèn)acknowledgmen

93、t包。</p><p>  從圖4.7可以看到,建立連接有第三個包,是主機A對主機B的連接確認(rèn)??紤]這樣一種情況:主機A發(fā)送一個連接請求包,但這個請求包在傳輸過程中丟失。主機A發(fā)現(xiàn)超時仍未收到主機B的連接確認(rèn),會懷疑到有包丟失。主機A再重發(fā)一個連接請求包。第二個連接請求包到達(dá)主機B,保證了連接的建立。但是如果第一個連接請求包沒有丟失,而只是網(wǎng)絡(luò)慢而導(dǎo)致主機A超時呢?這就會使主機B收到兩個連接請求包,使主機B誤以為

94、第二個連接請求包是主機A的又一個請求。第三個確認(rèn)包就是為了防止這樣的錯誤而設(shè)計的。這樣的連接建立機制被稱為三次握手。</p><p>  當(dāng)通訊結(jié)束時,發(fā)起連接的主機應(yīng)該發(fā)送拆除連接的報文包,通知對方主機關(guān)閉相應(yīng)的TCP進(jìn)程,釋放所占用的資源。拆除連接報文包的TCP報頭中,報文性質(zhì)碼的FIN標(biāo)志位置1,表明是一個拆除連接的報文包。</p><p>  為了防止連接雙方的一側(cè)出現(xiàn)故障后異常關(guān)

95、機,而另外一方的TCP進(jìn)程無休止地駐留,任何一方如果發(fā)現(xiàn)對方長時間沒有通訊流量,就會拆除連接。但有時確實有一段時間沒有流量,但還需要保持連接,就需要發(fā)送空的報文包,以維持這個連接。維持連接的報文包的英語名稱:keepalive。為了在一段時間內(nèi)沒有數(shù)據(jù)發(fā)送但還需要保持連接而發(fā)送Keepalive包,被稱為連接的維護(在本系統(tǒng)中稱為心跳)。 </p><p>  TCP程序為實現(xiàn)通訊而對連接進(jìn)行建立、維護和拆除的

96、操作,稱為TCP的傳輸連接管理。</p><p>  4.3.3 系統(tǒng)TCP網(wǎng)絡(luò)連接過程</p><p>  TCP網(wǎng)絡(luò)連接的過程是首先向無線模塊發(fā)送AT,若模塊回復(fù)正確,則發(fā)送ATE0指令取消模塊對發(fā)送來的指令原樣返回的功能,使主控只接受回應(yīng)的有用信息。然后設(shè)置APN,打開GPRS連接,附著網(wǎng)絡(luò)。最后建立TCP數(shù)據(jù)連接,返回連接成功提示信息。具體流出如圖4.9。</p>&

97、lt;p><b>  4.4 數(shù)據(jù)解析</b></p><p>  數(shù)據(jù)進(jìn)過網(wǎng)絡(luò)的傳輸,由于經(jīng)過的途徑不同會帶有各個階段的協(xié)議信息或者以特定格式傳輸?shù)男畔?。為了完成?shù)據(jù)的透明傳輸,必須對接受到的數(shù)據(jù)進(jìn)行數(shù)據(jù)解析。</p><p>  由于本系統(tǒng)采用的MG2639無線通訊模塊已經(jīng)內(nèi)嵌了TCP\IP協(xié)議,因此就不再涉及協(xié)議棧的建立與分開的復(fù)雜過程,數(shù)據(jù)由下位機傳入后

98、通過無線模塊自動加入?yún)f(xié)議信息,直接經(jīng)過網(wǎng)絡(luò)傳輸即可進(jìn)入上位機完成數(shù)據(jù)的透明傳輸。本文主要的數(shù)據(jù)解析處理是發(fā)生在下行數(shù)據(jù)中的。由遠(yuǎn)程上位機通過GPRS無線網(wǎng)絡(luò)傳過來的數(shù)據(jù),進(jìn)過無線模塊時,模塊會自動加入一定的字符信息,包括特定的字符信息和接收到的字節(jié)數(shù)。系統(tǒng)需要完成的數(shù)據(jù)解析就是要去除這一段信息,使傳到下位機的數(shù)據(jù)是上位機發(fā)送的透明原樣數(shù)據(jù)。以下為數(shù)據(jù)解析流程圖:</p><p>  4.5 數(shù)據(jù)的接收緩存處理&l

99、t;/p><p>  數(shù)據(jù)接收緩存時,當(dāng)數(shù)據(jù)量相對較多時,需要對數(shù)據(jù)進(jìn)行緩存處理,防止數(shù)據(jù)由于存儲不當(dāng)和接受不過來而導(dǎo)致數(shù)據(jù)的丟失。當(dāng)主控通過串口接收數(shù)據(jù)時,程序進(jìn)入接收中斷處理程序,通過對串口寄存器中斷ID的中斷代碼進(jìn)行比較來檢測數(shù)據(jù)是否可用,當(dāng)數(shù)據(jù)可用時把數(shù)據(jù)存入數(shù)據(jù)緩存區(qū)。數(shù)據(jù)緩存區(qū)大小系統(tǒng)設(shè)定為1K。當(dāng)數(shù)據(jù)超過1K時,系統(tǒng)接受但不再存儲,也就是說系統(tǒng)一次傳輸?shù)臄?shù)據(jù)量最大為1K。系統(tǒng)采用定時來判斷數(shù)據(jù)是否接受完

100、畢,串口中斷的優(yōu)先級高于定時器,這就使得當(dāng)有數(shù)據(jù)接收時不會被其他中斷打擾。定時時間倒是說明特定時間內(nèi)沒有接收數(shù)據(jù)。此時即可把接收到的數(shù)據(jù)處理之后通過串口發(fā)送出去。</p><p>  4.6 上下行數(shù)據(jù)傳輸</p><p>  TCP連接建立以后,程序進(jìn)入系統(tǒng)主循環(huán),定時器定時一秒中斷檢測有無數(shù)據(jù)傳輸。如果在10分鐘內(nèi)無數(shù)據(jù)傳輸,系統(tǒng)向網(wǎng)絡(luò)發(fā)送心跳包,保持鏈路處于連接狀態(tài)。如果中斷檢測到有

101、數(shù)據(jù)傳輸則判斷數(shù)據(jù)來自上行還是下行。然后進(jìn)行數(shù)據(jù)傳輸。如果數(shù)據(jù)來自下行,首先計算接受到的數(shù)據(jù)個數(shù),然后改變AT指令的發(fā)送數(shù)據(jù)指令,向上發(fā)送上行數(shù)據(jù)。如果是下行數(shù)據(jù),首先解析數(shù)據(jù),然后計算剩余有效數(shù)據(jù),把有效數(shù)據(jù)發(fā)送給下位機。這就是上下行數(shù)據(jù)的傳輸過程。上下行數(shù)據(jù)發(fā)送過程如圖4.11。</p><p><b>  5 系統(tǒng)調(diào)試</b></p><p><b>

102、  5.1 硬件調(diào)試</b></p><p>  硬件調(diào)試在系統(tǒng)開發(fā)過程,具有相當(dāng)高的地位。好的硬件調(diào)試可以縮短系統(tǒng)的研發(fā)周期。硬件調(diào)試是硬件開發(fā)必須經(jīng)過的過程。只有確定了硬件是沒有問題的,才能在此基礎(chǔ)上開發(fā)出高質(zhì)量的產(chǎn)品,才能得到一個穩(wěn)定可靠的系統(tǒng)。硬件調(diào)試主要是對系統(tǒng)各功能模塊進(jìn)行的功能進(jìn)行調(diào)試,具體步驟如下:</p><p>  1.首先檢查原理圖連接是否正確。有沒有遺漏

103、的連接。原理圖器件與PCB封裝是否對應(yīng)。</p><p>  2.繪制PCB時,注意檢查原理圖功能引腳,與實際器件是否一致。</p><p>  3.檢查PCB器件封裝與實際器件大小,以及焊接后引腳順序是否符合實際要求。</p><p>  4.對還沒有焊接器件的PCB進(jìn)行電源測試保證電源與地沒有連接。檢查關(guān)鍵電路是否連接。最好焊接完每個器件后都用萬用表測試一下電源

104、與地是否短接。</p><p>  5.硬件調(diào)試分成功能模塊電路進(jìn)行調(diào)試。確保每部分功能電路都沒有問題。</p><p>  6.對于發(fā)現(xiàn)有短接的電路連接,一般通過割線的方法進(jìn)行處理。</p><p>  本系統(tǒng)根據(jù)六大部分電路分開調(diào)試,中間出現(xiàn)過短接的現(xiàn)象和其他問題。通過嚴(yán)格的硬件調(diào)試最終系統(tǒng)硬件符合系統(tǒng)要求,為系統(tǒng)總體的設(shè)計打下了一個良好的硬件基礎(chǔ)。</p

105、><p><b>  5.2 軟件調(diào)試</b></p><p>  由于系統(tǒng)采用C語言編程,系統(tǒng)程序多采用模塊化結(jié)構(gòu),這使得軟件調(diào)試變得比較容易。程序通過Keil uVision4編譯連接生成代碼,通過LPC2000 Flash Utility 下載。</p><p>  首先是對定時器程序的調(diào)試。硬件電路中有LED顯示,用來指示系統(tǒng)運行狀態(tài)。故在

106、定時器程序模塊調(diào)試時,用LED指示燈的閃爍來調(diào)試定時器的軟件部分。同時在此基礎(chǔ)上對主頻和IO口進(jìn)行軟件調(diào)試。</p><p>  其次是對串口通信進(jìn)行調(diào)試,使串口收發(fā)數(shù)據(jù)正常。然后把兩個串口統(tǒng)一起來給無線模塊MG2639發(fā)送AT指令,使得兩個串口正常工作。接著通過串口進(jìn)行手動TCP登陸連接調(diào)試,調(diào)試通過后進(jìn)行自動登錄的系統(tǒng)調(diào)試。</p><p>  再次是對上下行數(shù)據(jù)處理程序進(jìn)行調(diào)試,在調(diào)

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論