基于arm的gprs無線數(shù)據(jù)終端_第1頁
已閱讀1頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  山 東 科 技 大 學(xué)</p><p><b>  本科畢業(yè)設(shè)計(jì)論文</b></p><p>  題 目 基于ARM的GPRS無線數(shù)據(jù)終端設(shè)計(jì)</p><p>  學(xué) 院 名 稱 山東科技大學(xué) </p><p>  專 業(yè) 班 級(jí) 氣工程及其自動(dòng)化10-4班 </p>

2、;<p>  學(xué) 生 姓 名 </p><p>  學(xué) 號(hào) 201003201414 </p><p>  時(shí)間: 2012 年 6月 5 日</p><p><b>  摘要</b></p><p>  隨著嵌入式系統(tǒng)和G

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

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

5、;/b></p><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 produ

6、ction, 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 ter

7、minal has broad meanings 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 con

8、trol 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 networ

9、k characteristics and 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 vari

10、ous functions of the 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>

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

12、;<p>  2.3 系統(tǒng)主要器件選型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&

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

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

15、gt;  3.6 存儲(chǔ)模塊電路設(shè)計(jì)20</p><p>  4 軟件程序設(shè)計(jì)22</p><p>  4.1 軟件總體設(shè)計(jì)主流程22</p><p>  4.2 系統(tǒng)初始化23</p><p>  4.2.1 系統(tǒng)中斷初始化23</p><p>  4.2.2 主頻配置24</p><p

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

17、1</p><p>  4.3.2 TCP連接的建立、維護(hù)與拆除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>

18、;<b>  5 系統(tǒng)調(diào)試37</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 展

19、望41</b></p><p><b>  參考文獻(xiàn)43</b></p><p><b>  致謝45</b></p><p><b>  附錄146</b></p><p><b>  附錄247</b></p>&l

20、t;p><b>  1 緒論</b></p><p><b>  1.1 研究背景</b></p><p>  計(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ī)通過串行口構(gòu)成的微機(jī)系統(tǒng),主要是針對于生產(chǎn)過程分布范圍不大、相距不遠(yuǎn)的場合,這些系統(tǒng)大多采用

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

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

23、間的縮短,能提供快速即時(shí)的連接,可大幅度提高一些事務(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é)科、計(jì)算機(jī)學(xué)科、電子技術(shù)學(xué)科和對象學(xué)科。微電子學(xué)科是嵌入式系統(tǒng)發(fā)展的基礎(chǔ),對象學(xué)科是嵌入式系統(tǒng)應(yīng)用的歸屬學(xué)科,計(jì)算機(jī)與電子技術(shù)學(xué)科是嵌入式系統(tǒng)技術(shù)發(fā)展的重要保證。美國著名未來學(xué)家

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

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

26、數(shù)據(jù)傳輸終端的載體,有廣闊的市場和良好的商業(yè)前景。</p><p>  1.2 通訊方式的現(xiàn)狀</p><p>  隨著電子、計(jì)算機(jī)及信息科學(xué)技術(shù)的發(fā)展,通信系統(tǒng)的發(fā)展也非常迅速,目前,數(shù)據(jù)傳輸中主要的通信方式有以下幾種:</p><p>  (1)電話撥號(hào)(電話線,專線)</p><p>  電話撥號(hào)主要有利用電話線通信和架設(shè)專線通信兩種方

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

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

29、短信息業(yè)務(wù)。</p><p>  (4)基于GPRS的分組數(shù)據(jù)傳輸</p><p>  通用分組無線業(yè)務(wù),是一種新的GSM數(shù)據(jù)傳輸服務(wù),它將數(shù)據(jù)以數(shù)據(jù)包的形式在PLMN(公眾陸地移動(dòng)電話網(wǎng))內(nèi)或其他連接到PLMN的外部網(wǎng)絡(luò)間傳輸。主要針對突發(fā)性數(shù)據(jù)分組傳送的一種新業(yè)務(wù),與短消息業(yè)務(wù)類似,提供兩類業(yè)務(wù)點(diǎn)到點(diǎn)業(yè)務(wù)和點(diǎn)到多點(diǎn)業(yè)務(wù)。多個(gè)GPRS用戶可以共享一個(gè)無線信道,而一個(gè)移動(dòng)用戶也可以同時(shí)利用

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

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

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

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

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

35、能夠通過串口對IP地址、網(wǎng)絡(luò)端口號(hào)等登陸參數(shù)進(jìn)行配置且掉電參數(shù)非易失;自動(dòng)登陸網(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)大體分為五部分:電源部分、存儲(chǔ)部分、串口通信部分、系統(tǒng)主控部分、無線通信部分。電源部分為各功能模塊部

36、分提供電源支持,主控部分與存儲(chǔ)部分為主從模式,存儲(chǔ)主要的參數(shù)和相關(guān)數(shù)據(jù)。通過串口通信部分完成參數(shù)配置和下位機(jī)數(shù)據(jù)交換的任務(wù)。主控部分完成數(shù)據(jù)的接受、發(fā)送、校驗(yàn)、解析等處理,通過和無線模塊的通信完成數(shù)據(jù)的無線透明傳輸。系統(tǒng)框圖如圖3.1所示。</p><p>  2.3 系統(tǒng)主要器件選型</p><p>  因?yàn)镚PRS無線數(shù)據(jù)終端應(yīng)用于工業(yè)場合,所以對系統(tǒng)中用到的器件提出了比較苛刻的要求。

37、由于工業(yè)環(huán)境一般比較惡劣,噪聲較多,對溫度范圍要求較寬,要使無線數(shù)據(jù)終端能夠在工業(yè)現(xiàn)場穩(wěn)定可靠的運(yùn)行,所選器件必須考慮上述要求。</p><p>  2.2.1 主控器件的選擇</p><p>  作為系統(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)遍及各類電子

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

39、MI-STM CPU的微控制器,并帶有64kB的高速Flash存儲(chǔ)器。128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對代碼規(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、聲音辨別和低端成像,為它們

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

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

42、言,ARM7 系列單片機(jī)更適用于無線數(shù)據(jù)終端的實(shí)現(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,待機(jī)電流約2mA,內(nèi)嵌TCP/IP協(xié)議,超薄設(shè)計(jì)、體積小、低功耗,溫度范圍:-

43、30℃~+75℃。模塊提供一個(gè)完整全雙工UART 接口,最大速率為115200bps,對外接口為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

44、等通訊模塊客戶提供全方位的技術(shù)支持,為以后產(chǎn)品升級(jí)維護(hù)提供強(qiáng)有力的技術(shù)支持和保障。綜合考慮,在實(shí)現(xiàn)相同功能的情況下,這款模塊性價(jià)比高是系統(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

45、微處理器的傳統(tǒng)開發(fā)工具是ADS,ADS(ARM Developer Suite)是在1993年由Metrowerks公司開發(fā)的,是ARM處理器下最主要的開發(fā)工具。ADS 是全套的實(shí)時(shí)開發(fā)軟件工具,包編譯器生成的代碼密度和執(zhí)行速度優(yōu)異。可快速低價(jià)地創(chuàng)建ARM 結(jié)構(gòu)應(yīng)用。ADS對匯編、C/C++、java支持的均很好,是目前最成熟的ARM開發(fā)工具。很多ARM開發(fā)軟件(例如Keil)也是借用的ADS的編譯器。 但是ADS界面不夠友好,項(xiàng)目管理

46、和系統(tǒng)設(shè)置比較復(fù)雜,不易學(xué)習(xí)。</p><p>  Keil μVision4于2009年2月發(fā)布,Keil μVision4引入靈活的窗口管理系統(tǒng),使開發(fā)人員能夠使用多臺(tái)監(jiān)視器,并提供了視覺上對窗口表面任何位置的完全控制。新的用戶界面可以更好地利用屏幕空間和更有效地組織多個(gè)窗口,提供一個(gè)整潔,高效的環(huán)境來開發(fā)應(yīng)用程序。新版本支持更多最新的ARM芯片,還添加了一些其他新功能。 2011年3月ARM公司發(fā)布最新集成

47、開發(fā)環(huán)境RealView MDK開發(fā)工具中集成了最新版本的Keil uVision4,其編譯器、調(diào)試工具實(shí)現(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è)備向終端

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

49、托羅拉和HP共同為GSM研制了一整套AT指令,包括對SMS的控制。AT指令在此基礎(chǔ)上演化并被加入GSM07.05標(biāo)準(zhǔn)以及現(xiàn)在的GSM07.07標(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ù)包在

50、每個(gè)</p><p>  中興通訊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ù)指

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

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

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

54、,然后利用Protel99se進(jìn)行硬件電路原理圖的總體設(shè)計(jì)和PCB的設(shè)計(jì),完成硬件設(shè)計(jì)。</p><p>  3.1 電源電路設(shè)計(jì)</p><p>  3.1.1 電源芯片選擇</p><p>  電源部分的設(shè)計(jì),系統(tǒng)采用兩種可選擇電源供電方式,一種是5V的直流電源供電,另一種是電源范圍在7-40V的寬電源直流供電。工業(yè)現(xiàn)場的電源多為12V或24V的開關(guān)電源,而且工

55、業(yè)現(xiàn)場環(huán)境惡劣,為了滿足工業(yè)現(xiàn)場的需求,為保證系統(tǒng)的可靠性、穩(wěn)定性,我們選用的供電模塊、電源轉(zhuǎn)換模塊都要從性價(jià)比高、帶負(fù)載能力強(qiáng)等方面考慮選型。由于考慮無線數(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)換成5

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

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

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

59、gt;<p>  主控電路主控芯片為LPC 2132,采用外部看門狗,外部看門狗芯片選擇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)部的看門狗定時(shí)器就會(huì)溢出并使/WDO 輸出低電平,而/WDO 已連接到手動(dòng)復(fù)位/M

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

61、樣使得系統(tǒng)時(shí)間更加準(zhǔn)確??撮T狗電路如圖3.4</p><p>  主控電路部分具體電路如圖3.5所示,C34、C34、晶振Y1、R14組成主控時(shí)鐘電路,晶振選擇11.0592MHZ頻率,R14為起振電阻阻值為1MΩ。CON2為程序下載短接端口,需下載程序時(shí),在上電短接CON2,這樣上電后LPC2132自動(dòng)進(jìn)入下載模式。D9為運(yùn)行指示LED。</p><p>  3.3 串口通信電路<

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

63、數(shù)據(jù)傳輸指示燈。</p><p>  如圖3.7所示,485電路中的CON2 、CON3是232與485的通信接口切換接線端子,當(dāng)RXD0與3485RXD短接、TXD0與3485TXD短接時(shí),系統(tǒng)對外為485接口,反之為232接口。A、B輸出末端的電阻作為線路的匹配電阻,也是為了避免信號(hào)的反射影響系統(tǒng)性能。UC0504A集成了四個(gè)TVS管,在A、B線路上各接一個(gè)TVS管,瞬態(tài)電壓抑制器TVS可以有效的保護(hù)器件免遭

64、瞬態(tài)高壓的損害,它可以瞬間由高阻態(tài)變成低阻態(tài),使兩極間的電壓箝位于一個(gè)預(yù)定值,有效地保護(hù)電子線路中的精密元器件,免受各種浪涌脈沖的損壞。J5為485對外接口。當(dāng)REDE為高電平時(shí)主控向485發(fā)送數(shù)據(jù),為低電平是進(jìn)過485接收數(shù)據(jù)。</p><p>  3.4 電平轉(zhuǎn)換電路和部分指示電路</p><p>  由于MG2639通信模塊數(shù)字信號(hào)輸入高電平不能大于3V,微控制器輸出高電平為3.3V

65、,所以需要進(jìn)行電平轉(zhuǎn)換,從而保證通信正常,避免燒壞模塊。利用三極管開關(guān)特性進(jìn)行電平轉(zhuǎn)換。</p><p>  圖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)境對數(shù)據(jù)信號(hào)干擾。</p><p>  圖3.9中,當(dāng)無線模塊工作正常

66、時(shí),D6點(diǎn)亮,D7、D8分別為VBAT和V3.3的電源指示,D4為模塊工作狀態(tài)指示。開機(jī)狀態(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è)計(jì)</p><p>  3.5.1 無線模塊插板電路</p><

67、;p>  無線模塊MG2639 模塊是28引腳郵票接口模塊,功能支持短信、語音通話、數(shù)據(jù)傳輸業(yè)務(wù)。無線模塊MG2639 模塊具有一個(gè)完整全雙工UART 接口(以下簡稱UART 串口),最大速率為115200bps,對外接口為2.8V CMOS 電平信號(hào),邏輯功能符合RS-232 接口協(xié)議中的規(guī)定。這路UART 串口可作為串行數(shù)據(jù)接口,通常用于AT 指令、數(shù)據(jù)業(yè)務(wù)、升級(jí)模塊軟件等。鑒于本系統(tǒng)功能需求,用到的引本設(shè)計(jì)主要用到的是數(shù)據(jù)傳

68、輸業(yè)務(wù)。用到的引腳有RXD、TXD串口引腳,RSSI_LED為網(wǎng)絡(luò)信號(hào)指示和與SIM卡相關(guān)的信號(hào)引腳。</p><p>  3.5.2 SIM卡電路</p><p>  SIM卡電路電源為MG2639V_CARD輸出電壓提供,MG2639支持1.8V/3.0V的SIM卡。由于SIM 卡的設(shè)計(jì)需要滿足ESD 電氣性能,防止環(huán)境下ESD 損壞SIM 卡的情況,故本設(shè)計(jì)在4 路SIM 卡信號(hào)上都

69、加上了TVS 器件。并且在4 路SIM 卡信號(hào)上都加了電容值為22PF的濾波電容。減少信號(hào)的干擾。CLK為SIM卡的時(shí)鐘,DATA為SIM卡的數(shù)據(jù),RST為SIM卡的工作復(fù)位信號(hào)。</p><p>  3.6 存儲(chǔ)模塊電路設(shè)計(jì)</p><p>  存儲(chǔ)模塊電路采用鐵電存儲(chǔ),所用芯片為FM24CL64,它具有64K的非易失RAM。它是以I2C總線的方式進(jìn)行讀寫訪問。可以進(jìn)行寫保護(hù)設(shè)置。更高的

70、擦寫次數(shù)和強(qiáng)度,更快作出的FRAM寫入比EEPROM更具優(yōu)越性,也是選擇鐵電存儲(chǔ)的原因之一。鐵電存儲(chǔ)有以下特點(diǎn):</p><p>  1、數(shù)據(jù)的收集方面。在實(shí)際應(yīng)用中的數(shù)據(jù)收集和保存,F(xiàn)RAM提供了一個(gè)更優(yōu)越的解決方案。它比電池備份的SRAM更具成本效益,而且提供比EEPROM更好的寫屬性。</p><p>  2、高噪聲環(huán)境。寫入EEPROM可以挑戰(zhàn)任何嚴(yán)重的噪聲或電源波動(dòng)的環(huán)境。目前,

71、長時(shí)間的EEPROM寫時(shí)間可能導(dǎo)致寫損壞,F(xiàn)RAM的寫入時(shí)間可以在一微秒內(nèi)快速完成。通常這個(gè)時(shí)間要比噪聲或電源波動(dòng)擾亂的時(shí)間短得多。</p><p>  3、維修跟蹤。在復(fù)雜的系統(tǒng)中,維修信息更需要被加快記錄。由于高擦寫次數(shù),F(xiàn)RAM作出理想的系統(tǒng)日志。此外,2線的FM24CL64接口允許內(nèi)存分布在整個(gè)最小系統(tǒng)中使用。</p><p>  鑒于鐵電存儲(chǔ)的上述優(yōu)點(diǎn),故本系統(tǒng)采用FM24CL6

72、4存儲(chǔ)登錄參數(shù)等相關(guān)配置。在圖3.12中A0、A1、A2接地,確定了器件地址。FMWP接高電平時(shí)寫保護(hù)。FMWP接低電平時(shí)可進(jìn)行寫操作。</p><p><b>  4 軟件程序設(shè)計(jì)</b></p><p>  4.1 軟件總體設(shè)計(jì)主流程</p><p>  本文軟件設(shè)計(jì)部分,主要按照系統(tǒng)工作過程進(jìn)行的設(shè)計(jì)。首先是對LPC2132涉及到的各功能

73、部分進(jìn)行初始化設(shè)置,包括主頻、串口、定時(shí)器、I2C總線。其次是對GPRS登陸參數(shù)進(jìn)行設(shè)置,包括連接的IP和相應(yīng)的端口號(hào)。最后建立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中

74、斷為向量中斷,向量中斷控制器(VIC)具有32個(gè)中斷請求輸入,可將其編程分為3類:FIQ、向量 IRQ 和非向量 IRQ??删幊谭峙錂C(jī)制意味著不同外設(shè)的中斷優(yōu)先級(jí)可以動(dòng)態(tài)分配并調(diào)整??焖僦袛嗾埱螅‵IQ)具有最高優(yōu)先級(jí)。向量 IRQ 具有中等優(yōu)先級(jí)。該級(jí)別可分配32個(gè)中斷中的16個(gè)。32個(gè)請求中的任意一個(gè)都可分配到16個(gè)向量IRQ slot中的任意一個(gè)。其中slot0具有最高優(yōu)先級(jí),而slot15則為最低優(yōu)先級(jí)。非向量IRQ的優(yōu)先級(jí)最低

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

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

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

78、需要的輸出頻率使 CCO 保持在頻率范圍內(nèi)。輸出分頻器可設(shè)置為 2,4,8 或 16,由于輸出分頻器的最小值為 2,它保證了 PLL 輸出有 50%的占空比。PLL的激活由PLLCON 寄存器控制。PLL 倍頻器和分頻器的值由 PLLCFG 寄存器控制。為了防止 PLL 參數(shù) 改變或PLL失效,對這兩個(gè)寄存器進(jìn)行了保護(hù)。對它們的保護(hù)由一個(gè)類似于操作看門狗定時(shí)器的代碼序列來實(shí)現(xiàn)。對 PLLFEED 寄存器的操作可以實(shí)現(xiàn)這一序列。PLL只能

79、通過軟件使能。程序必須在配置并激活 PLL后等待其鎖定,然后作為時(shí)鐘源連接到PLL。</p><p>  FOSC是晶振頻率,F(xiàn)CCO 是PLL電流控制振蕩器的頻率 ,cclk是PLL輸出頻率(也是處理器的時(shí)鐘頻率), M 為PLLCFG寄存器中MSEL位的倍增器值,P 為PLLCFG寄存器中PSEL位的分頻器值。PLL輸出頻率(當(dāng)PLL激活并連接時(shí))由下式得到:cclk = M * FOSC或cclk= FCC

80、O / (2*P) ,CCO頻率可由下式得到: FCCO = 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)在比較快的主

81、頻下運(yùn)行,主頻定為44.2368MHZ。根據(jù)公式計(jì)算的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提供兩個(gè)全雙工的串口,串口的初始化主要是串口接受中斷的初始化。串口的初始化一是要設(shè)置串口通信的波特率,二是要設(shè)置發(fā)送接受的字符格式

82、,三是要使能接收中斷。</p><p>  對于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)訪問UART0 除數(shù)鎖 存寄存器時(shí),U0LCR中的除數(shù)鎖存訪問位(DLAB)必

83、須為 1。本系統(tǒng)的串口波特率設(shè)置為115200bps,數(shù)據(jù)格式為8位數(shù)據(jù)位、1位停止位、無奇偶校驗(yàn)。FIFO接受觸點(diǎn)為1個(gè)字節(jié)。初始化流程如圖4.4。</p><p>  4.2.4 定時(shí)器初始化</p><p>  LPC2132帶可編程32位預(yù)分頻器的32位定時(shí)器/計(jì)數(shù)器。4個(gè)32位的匹配通道,4個(gè)32位匹配寄存器,4個(gè)對應(yīng)于匹配寄存器的外部輸出。定時(shí)器初始化一般過程為,設(shè)置工作模式、

84、設(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所示。</p><p>  4.2.5 I2C初始化與鐵電存儲(chǔ)</p><p>  LPC2132帶有兩個(gè)標(biāo)準(zhǔn)的I2C總線接口,可配置為主機(jī),從機(jī)或主/從機(jī),I2C初始化相對比較簡單。一是對波特

85、率進(jìn)行設(shè)置,通過設(shè)置I2SCLH和I2SCLL進(jìn)行配置I2C時(shí)鐘高低電平的占空比,二是使能I2C。I2C總線存在兩種類型的數(shù)據(jù)傳輸。第一種,從主發(fā)送器向從接收器發(fā)送數(shù)據(jù)。主機(jī)發(fā)送的第一個(gè)字節(jié)是從機(jī)地址。接下來的是數(shù)據(jù)字節(jié)流。從機(jī)每接收一個(gè)字節(jié)返回一個(gè)應(yīng)答位。第二種,從發(fā)送器向主接收器發(fā)送數(shù)據(jù),第一個(gè)字節(jié)由主機(jī)發(fā)送。從機(jī)返回一個(gè)應(yīng)答位。接下來從機(jī)向主機(jī)發(fā)送數(shù)據(jù)字節(jié)。主機(jī)每接收一個(gè)字節(jié)返回一個(gè)應(yīng)答位。接收完最后一個(gè)字節(jié),主機(jī)返回一個(gè)非應(yīng)答位

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

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

88、總線后等待啟動(dòng)條件是否發(fā)送完成,發(fā)送完成進(jìn)入中斷程序,數(shù)據(jù)寫入完成釋放總線。結(jié)束寫數(shù)據(jù)子程序。讀數(shù)據(jù)子程序與寫操作相類似,只是進(jìn)入I2C中斷后的操作碼值不同,進(jìn)行讀操作。具體流程見圖4.6。</p><p>  4.2.6 參數(shù)配置初始化設(shè)計(jì)</p><p>  參數(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ù)傳輸。

89、參數(shù)配置過程首先發(fā)送提示信息,等待參數(shù)輸入,若有參數(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é)議,又

90、名網(wǎng)絡(luò)通訊協(xié)議,簡稱TCP\IP協(xié)議,是Internet最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成。TCP/IP協(xié)議是由美國國防部高級(jí)研究工程局(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é)議

91、就完成了這個(gè)任務(wù)。</p><p>  4.3.2 TCP連接的建立、維護(hù)與拆除</p><p>  TCP協(xié)議是一個(gè)面向連接的協(xié)議。所謂面向連接,是指一個(gè)主機(jī)需要和另外一臺(tái)主機(jī)通訊時(shí),需要先呼叫對方,請求與對方建立連接。只有對方同意,才能開始通訊。</p><p>  這種呼叫與應(yīng)答的操作非常簡單。所謂呼叫,就是連接的發(fā)起方發(fā)送一個(gè)“建立`連接請求”的報(bào)文包給對方

92、。對方如果同意這個(gè)連接,就簡單地發(fā)回一個(gè)“連接響應(yīng)”的應(yīng)答包,連接就建立起來了。</p><p>  圖4.7描述了TCP建立連接的過程。</p><p><b>  圖 </b></p><p>  主機(jī)A希望與主機(jī)B建立連接以交換數(shù)據(jù),它的TCP程序首先構(gòu)造一個(gè)請求連接報(bào)文包給對方。請求連接包的TCP報(bào)頭中的報(bào)文性質(zhì)碼標(biāo)志為SYN(見圖4.

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

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

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

96、>  為了防止連接雙方的一側(cè)出現(xiàn)故障后異常關(guān)機(jī),而另外一方的TCP進(jìn)程無休止地駐留,任何一方如果發(fā)現(xiàn)對方長時(shí)間沒有通訊流量,就會(huì)拆除連接。但有時(shí)確實(shí)有一段時(shí)間沒有流量,但還需要保持連接,就需要發(fā)送空的報(bào)文包,以維持這個(gè)連接。維持連接的報(bào)文包的英語名稱:keepalive。為了在一段時(shí)間內(nèi)沒有數(shù)據(jù)發(fā)送但還需要保持連接而發(fā)送Keepalive包,被稱為連接的維護(hù)(在本系統(tǒng)中稱為心跳)。 </p><p>  

97、TCP程序?yàn)閷?shí)現(xiàn)通訊而對連接進(jìn)行建立、維護(hù)和拆除的操作,稱為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ù)連接,返回連接成功提示信

98、息。具體流出如圖4.9。</p><p><b>  4.4 數(shù)據(jù)解析</b></p><p>  數(shù)據(jù)進(jìn)過網(wǎng)絡(luò)的傳輸,由于經(jīng)過的途徑不同會(huì)帶有各個(gè)階段的協(xié)議信息或者以特定格式傳輸?shù)男畔?。為了完成?shù)據(jù)的透明傳輸,必須對接受到的數(shù)據(jù)進(jìn)行數(shù)據(jù)解析。</p><p>  由于本系統(tǒng)采用的MG2639無線通訊模塊已經(jīng)內(nèi)嵌了TCP\IP協(xié)議,因此就不再涉

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

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

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

102、發(fā)送心跳包,保持鏈路處于連接狀態(tài)。如果中斷檢測到有數(shù)據(jù)傳輸則判斷數(shù)據(jù)來自上行還是下行。然后進(jìn)行數(shù)據(jù)傳輸。如果數(shù)據(jù)來自下行,首先計(jì)算接受到的數(shù)據(jù)個(gè)數(shù),然后改變AT指令的發(fā)送數(shù)據(jù)指令,向上發(fā)送上行數(shù)據(jù)。如果是下行數(shù)據(jù),首先解析數(shù)據(jù),然后計(jì)算剩余有效數(shù)據(jù),把有效數(shù)據(jù)發(fā)送給下位機(jī)。這就是上下行數(shù)據(jù)的傳輸過程。上下行數(shù)據(jù)發(fā)送過程如圖4.11。</p><p><b>  5 系統(tǒng)調(diào)試</b></

103、p><p><b>  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)品,才能得到一個(gè)穩(wěn)定可靠的系統(tǒng)。硬件調(diào)試主要是對系統(tǒng)各功能模塊進(jìn)行的功能進(jìn)行調(diào)試,具體步驟如下:</p><p&g

104、t;  1.首先檢查原理圖連接是否正確。有沒有遺漏的連接。原理圖器件與PCB封裝是否對應(yīng)。</p><p>  2.繪制PCB時(shí),注意檢查原理圖功能引腳,與實(shí)際器件是否一致。</p><p>  3.檢查PCB器件封裝與實(shí)際器件大小,以及焊接后引腳順序是否符合實(shí)際要求。</p><p>  4.對還沒有焊接器件的PCB進(jìn)行電源測試保證電源與地沒有連接。檢查關(guān)鍵電路是

105、否連接。最好焊接完每個(gè)器件后都用萬用表測試一下電源與地是否短接。</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)要求,為系

106、統(tǒng)總體的設(shè)計(jì)打下了一個(gè)良好的硬件基礎(chǔ)。</p><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>  首先是對定時(shí)器程序的調(diào)試。

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論