2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  基于TC35模塊的GSM遠(yuǎn)程控制系統(tǒng)的設(shè)計(jì)</p><p><b>  摘要</b></p><p>  隨著 GSM(Global System for Mobile communication)移動(dòng)通信網(wǎng)絡(luò)的迅速普及和競(jìng)爭(zhēng)的日益激烈,新技術(shù)和新業(yè)務(wù)的開(kāi)發(fā)和應(yīng)用已經(jīng)提到一個(gè)十分重要的位置。短消息業(yè)務(wù)(SMS)作為 GSM 網(wǎng)絡(luò)的一種基本業(yè)務(wù),已

2、得到越來(lái)越多的系統(tǒng)運(yùn)營(yíng)商和系統(tǒng)開(kāi)發(fā)商的重視,基于這種業(yè)務(wù)的各種應(yīng)用也蓬勃發(fā)展起來(lái)。</p><p>  本文提出了一種基于 GSM 短消息的遠(yuǎn)程控制系統(tǒng),在給出系統(tǒng)的總體設(shè)計(jì)的基礎(chǔ)上,設(shè)計(jì)了系統(tǒng)的硬件和軟件,并對(duì)其應(yīng)用領(lǐng)域作了一些探討和研究。系統(tǒng)以 GSM 網(wǎng)絡(luò)作為遠(yuǎn)程信號(hào)的傳輸平臺(tái)。對(duì) GSM 網(wǎng)絡(luò)體系結(jié)構(gòu)作了詳細(xì)的講解,并且著重講述了對(duì)于本課題相當(dāng)重要的短消息業(yè)務(wù)的通信原理。數(shù)據(jù)的傳輸方式主要是短消息方式,系

3、統(tǒng)中采用 PDU 模式,對(duì)短消息的 PDU 編碼和解碼進(jìn)行詳細(xì)的講述。短消息的接收和發(fā)送是通過(guò) AT 指令來(lái)實(shí)現(xiàn)的,講述了常見(jiàn)的 AT 指令及其使用方法。</p><p>  系統(tǒng)的硬件設(shè)計(jì)中,對(duì)主要硬件 TC35 和 MSP430F149 單片機(jī)及其外圍電路進(jìn)行了詳細(xì)的講述。系統(tǒng)分為兩個(gè)部分進(jìn)行設(shè)計(jì)——控制中心站和遠(yuǎn)程控制分站:控制中心站硬件包括一臺(tái) PC 機(jī),GSM 通信模塊 TC35,兩者通過(guò) RS232

4、連接;遠(yuǎn)程控制分站硬件包括 GSM 通信模塊 TC35,MSP430F149 單片機(jī),顯示單元,各種傳感器和數(shù)據(jù)采集與處理單元。系統(tǒng)的軟件設(shè)計(jì)包括控制中心站軟件設(shè)計(jì)和遠(yuǎn)程控制分站軟件設(shè)計(jì)。遠(yuǎn)程控制分站軟件設(shè)計(jì)中運(yùn)用 IAR 公司為 MSP430 系列單片機(jī)開(kāi)發(fā)的 C430 集成開(kāi)發(fā)環(huán)境和 C 語(yǔ)言調(diào)試器作為程序開(kāi)發(fā)工具,其軟件包括單片機(jī)初始化、主程序、信號(hào)采集中斷程序、通過(guò)串口的短消息接收和發(fā)送程序。論文的最后部分以 GSM 短消息的遠(yuǎn)

5、程控制系統(tǒng)為基礎(chǔ),結(jié)合溫度檢測(cè)技術(shù)設(shè)計(jì)出一套基于 GSM 的遠(yuǎn)程溫度控制系統(tǒng),并給出了此系統(tǒng)應(yīng)用領(lǐng)域的一些探討和研究。</p><p>  關(guān)鍵詞:MSP430,GSM,TC35,遠(yuǎn)程控制,AT指令</p><p><b>  Abstract</b></p><p>  Along with rapid popularization and

6、furious competition of GSM net work ,research and application of new technology and new operation have been mentioned to a quite important position. SMS as a basic service of GSM network has been attented by more and mor

7、e system operator and developer ,and kinds of applications based on this service have been rapid developed .This paper present a remote monitoring system based on GSM-SMS, this paper first presents the system design as a

8、 whole, then presents th</p><p>  In this system GSM network is a medium for transmitting the remote signal, it presents detailed explanation of GSM network‘s system structure and emphasizes the communicatio

9、n principle that is important for the task. The mode of transmitting data is most SMS. PDU mode is used during transmitting SMS. It presents en cording and decoding of SMS PDU mode. Transmitting and receiving SMS is real

10、ized by using AT command. It presents the familiar AT command and using method.</p><p>  It presents TC35 and microchip MSP430F149 MCU and peripheral circuit during design of system hardware. Hardware of sys

11、tem includes two parts: the monitoring center and the remote monitoring station. It consists of a computer and a TC35 communication module of GSM in the monitoring center .Computer and TC35 are joined by RS232. It includ

12、es a TC35 communication module of GSM, a MSP430F149 MCU, a display part and a gathering data part.</p><p>  It includes the monitoring center software and the remote monitoring station software in design of

13、system software. The remote monitoring station software is designed with C430 integration developing environment that IAR designed forMSP430 single chip and C-language debugger. It includes single chip initialization and

14、 main program and interrupt of gathering signal and SMS receiving and transmitting program through the serial port .In the end of the paper, it presents a remote temperature monitor</p><p>  Keywords: GSM; S

15、MS; remote monitoring; PDU mode; AT command;MSP430</p><p><b>  目 錄</b></p><p><b>  摘要I</b></p><p>  AbstractII</p><p><b>  目 錄IV</b&

16、gt;</p><p><b>  前言- 1 -</b></p><p>  1 總體方案與論證- 3 -</p><p>  1.1 設(shè)計(jì)方案模塊- 3 -</p><p>  1.2 無(wú)線通信模塊- 4 -</p><p>  1.3 控制單元模塊的選擇- 4 -</p>

17、;<p>  1.4 電源模塊的選擇- 5 -</p><p>  1.5 系統(tǒng)總體框架- 5 -</p><p>  2 系統(tǒng)硬件模塊設(shè)計(jì)- 7 -</p><p>  2.1 電源及復(fù)位電路的設(shè)計(jì)- 7 -</p><p>  2.1.1 MSP430電源模塊的設(shè)計(jì)- 7 -</p><p>

18、;  2.1.2 TC35的電源模塊- 7 -</p><p>  2.1.3、復(fù)位電路- 8 -</p><p>  2.2 串口通信模塊設(shè)計(jì)- 9 -</p><p>  2.3 GSM模塊接口設(shè)計(jì)- 10 -</p><p>  2.3.1、GSM模塊簡(jiǎn)介- 10 -</p><p>  2.3.2 G

19、SM模塊接口設(shè)計(jì)- 10 -</p><p>  2.3.3 指示燈電路- 12 -</p><p>  2.3.4 SIM卡電路- 13 -</p><p>  2.4 串行存儲(chǔ)器的設(shè)計(jì)- 14 -</p><p>  2.5 采集系統(tǒng)模塊設(shè)計(jì)- 15 -</p><p>  2.6 外部繼電器控制模塊設(shè)計(jì)

20、- 16 -</p><p>  2.7 單片機(jī)模塊的設(shè)計(jì)- 17 -</p><p>  3系統(tǒng)軟件設(shè)計(jì)- 21 -</p><p>  3.1串口程序設(shè)計(jì)- 22 -</p><p>  3.1.1串口初始化程序- 22 -</p><p>  3.1.2中斷服務(wù)程序- 23 -</p>

21、<p>  3.2 存儲(chǔ)程序設(shè)計(jì)- 25 -</p><p>  3.2.1寫(xiě)操作- 25 -</p><p>  3.2.2讀操作- 27 -</p><p>  3.3短消息程序設(shè)計(jì)- 29 -</p><p>  3.3.1 AT命令介紹- 29 -</p><p>  3.3.2 短消息的設(shè)

22、置- 33 -</p><p>  3.4信息采集控制程序設(shè)計(jì)- 39 -</p><p><b>  總結(jié)- 41 -</b></p><p><b>  致謝- 42 -</b></p><p>  參考文獻(xiàn)- 43 -</p><p><b>  附

23、件- 44 -</b></p><p>  附件一:系統(tǒng)總電路圖- 44 -</p><p><b>  前言</b></p><p>  短消息業(yè)務(wù)(SMS)作為 GSM(GlobalSystem for Mobile communication)網(wǎng)絡(luò)的一種基本業(yè)務(wù),以其連接簡(jiǎn)單、費(fèi)用低廉、覆蓋范圍廣、實(shí)現(xiàn)方便等優(yōu)點(diǎn)得到越來(lái)越

24、多的系統(tǒng)運(yùn)營(yíng)商和系統(tǒng)開(kāi)發(fā)商的重視,基于短消息業(yè)務(wù)的各種應(yīng)用也蓬勃發(fā)展起來(lái)。短消息業(yè)務(wù)與語(yǔ)音及傳真是 GSM 網(wǎng)絡(luò)提供的主要電信業(yè)務(wù),它通過(guò)無(wú)線控制信道進(jìn)行傳輸,經(jīng)短消息中心完成存儲(chǔ)和轉(zhuǎn)發(fā)功能,每條短消息的信息量為 140bit。在短消息的可靠傳遞基礎(chǔ)上,GSM 專業(yè)調(diào)制解調(diào)器的出現(xiàn)給 GSM 的發(fā)展注入了新的活力,它改變了傳統(tǒng)的以語(yǔ)音為主要的通信手段,使 GSM 網(wǎng)絡(luò)數(shù)據(jù)通信得到廣泛的應(yīng)用[1-3]。目前市場(chǎng)上提供的GSM 調(diào)制解調(diào)器和

25、模塊提供了 RS232 標(biāo)準(zhǔn)數(shù)據(jù)接口,采用 AT 指令控制,符合 ETSI 標(biāo)準(zhǔn) GSM0707 和 GSM0705。基于這種技術(shù),以 GSM 網(wǎng)絡(luò)作為無(wú)線傳輸平臺(tái)可以開(kāi)發(fā)出多種應(yīng)用領(lǐng)域。</p><p>  目前遠(yuǎn)程控制主要有以下幾種方式:短距離長(zhǎng)線控制;通過(guò)市話網(wǎng);通過(guò) Internet 網(wǎng)絡(luò);通過(guò)自組網(wǎng)絡(luò)(CDPD 網(wǎng));通過(guò)數(shù)傳電臺(tái)方式。短距離長(zhǎng)線控制和通過(guò)自組網(wǎng)絡(luò)(CDPD網(wǎng))首先要自行建設(shè)通信網(wǎng)絡(luò),建

26、網(wǎng)初期投資巨大,運(yùn)營(yíng)期間自主維護(hù)耗費(fèi)人力物力較大,信號(hào)質(zhì)量得以保證,效果好,相對(duì)運(yùn)營(yíng)費(fèi)用高;通過(guò)市話網(wǎng)和 Internet 方式以現(xiàn)有的網(wǎng)絡(luò)為依托,無(wú)需自行建設(shè)通信網(wǎng)絡(luò),但是由于市話網(wǎng)和 Internet 難以達(dá)到工業(yè)現(xiàn)場(chǎng)覆蓋面,接入網(wǎng)絡(luò)受到限制,局限性很大,網(wǎng)絡(luò)運(yùn)行效果取決于網(wǎng)絡(luò)運(yùn)營(yíng)商,線路安全不能得到保證,其通信效果好,信號(hào)量大,運(yùn)營(yíng)費(fèi)用相對(duì)低廉;數(shù)傳電臺(tái)出現(xiàn)較早,應(yīng)用很廣泛,是一種不錯(cuò)的無(wú)線數(shù)傳方式,但是建網(wǎng)初期投資巨大,數(shù)傳電臺(tái)

27、的傳輸范圍有限,而且容易受到空間無(wú)線信號(hào)的干擾,信號(hào)不能得到保障,但是數(shù)傳電臺(tái)信號(hào)傳輸實(shí)時(shí)性好,運(yùn)行費(fèi)用低。</p><p>  遠(yuǎn)程控制系統(tǒng)應(yīng)用廣泛,遍及國(guó)民經(jīng)濟(jì)的很多領(lǐng)域,而目前這些控制系統(tǒng)無(wú)論從成本、可靠性、穩(wěn)定性、使用方便性、還是維護(hù)的難易程度等方面都不能最大限度的使人滿意。因此本文把 GSM網(wǎng)絡(luò)引入到遠(yuǎn)程控制系統(tǒng)中,提出了基于 GSM 短消息的遠(yuǎn)程控制系統(tǒng)。GSM 網(wǎng)絡(luò)是目前基于時(shí)分多址技術(shù)的移動(dòng)通信體

28、制中最成熟完善、覆蓋面最廣、功能最強(qiáng)、用戶最多的移動(dòng)通信網(wǎng)絡(luò),GSM 短消息業(yè)務(wù)不需要建立撥號(hào)連接,只需把待發(fā)的消息加上目的地址發(fā)送至短消息中心,再由短消息中心轉(zhuǎn)發(fā)到最終目標(biāo)。運(yùn)用 GSM 短消息實(shí)現(xiàn)遠(yuǎn)程控制可靠性高、信號(hào)傳播距離遠(yuǎn)、覆蓋面積廣,并且可以節(jié)省建網(wǎng)初期的巨額投資,運(yùn)營(yíng)期間無(wú)需維護(hù)網(wǎng)絡(luò),運(yùn)行費(fèi)用低廉。</p><p><b>  1 總體方案與論證</b></p>

29、<p>  1.1 設(shè)計(jì)方案模塊</p><p>  本設(shè)計(jì)是一個(gè)基于GSM模塊的遠(yuǎn)程控制系統(tǒng),GSM就是global system for mobile communications 【電信】全球通, 全球移動(dòng)通信系統(tǒng) (亦稱“泛歐數(shù)字式移動(dòng)通信系統(tǒng)”, 是一個(gè)根據(jù)歐洲電信標(biāo)準(zhǔn)協(xié)會(huì)出版的 GSM 技術(shù)規(guī)范建造的國(guó)際無(wú)線蜂窩網(wǎng)) 。GSM模塊,是將GSM射頻芯片、基帶處理芯片、存儲(chǔ)器、功放器件等集成在一

30、塊線路板上,具有獨(dú)立的操作系統(tǒng)、GSM射頻處理、基帶處理并提供標(biāo)準(zhǔn)接口的功能模塊。本設(shè)計(jì)是一種利用手機(jī)短信息實(shí)現(xiàn)對(duì)遠(yuǎn)程監(jiān)控設(shè)備如交通路燈,家庭里的門(mén)鎖、家用電器、可視對(duì)講、報(bào)警裝置等進(jìn)行智能控制或信息采集交流的設(shè)計(jì)思路。系統(tǒng)的開(kāi)發(fā)基于短信息技術(shù)、自動(dòng)控制技術(shù)、計(jì)算機(jī)技術(shù)、數(shù)字通信技術(shù)及加密技術(shù),系統(tǒng)利用相關(guān)的網(wǎng)絡(luò)、計(jì)算機(jī)系統(tǒng)和控制器,以短信息為基本控制指令和數(shù)據(jù)信息傳送方式,實(shí)現(xiàn)手機(jī)無(wú)線遙控和數(shù)據(jù)傳送,通過(guò)專設(shè)的短信控制中心和服務(wù)中心,

31、為遠(yuǎn)程監(jiān)控設(shè)備提供全方位的數(shù)字化服務(wù)。本設(shè)計(jì)就是用單片機(jī)控制GSM模塊采集和控制遠(yuǎn)程設(shè)備信息的無(wú)線通信控制系統(tǒng)。本設(shè)計(jì)采用模塊化設(shè)計(jì),整個(gè)系統(tǒng)由GSM模塊、控制模塊、電源模塊和外圍模塊組成,系統(tǒng)的整體方案框圖</p><p>  1.2 無(wú)線通信模塊</p><p>  我們?cè)O(shè)計(jì)此系統(tǒng)的前提是基于短信方式,簡(jiǎn)單、方便使用、價(jià)格低廉的實(shí)用性系統(tǒng),而不需要聯(lián)網(wǎng)使用的GPRS通信模塊,如SIM3

32、00T和MC35等系列模塊。所以我們有兩種選擇,一是用TC35模塊和TC35i模塊。TC35和TC35i功能相似,隨著西門(mén)子公司對(duì)TC35系列產(chǎn)品的發(fā)展,TC35i在相同技術(shù)領(lǐng)域相對(duì)TC35更勝一籌,但它的價(jià)格比TC35要昂貴得多,而且在本設(shè)計(jì)系統(tǒng)中的技術(shù)要求TC35同樣能夠達(dá)到標(biāo)準(zhǔn),因此綜合來(lái)考慮,選擇TC35做為本設(shè)計(jì)系統(tǒng)的無(wú)線通信模塊。</p><p>  1.3 控制單元模塊的選擇</p>

33、<p>  控制模塊是本設(shè)計(jì)的核心,通過(guò)外圍電路和向GSM模塊寫(xiě)入相關(guān)程序,控制部分要實(shí)現(xiàn)能夠控制GSM模塊短消息的接收和發(fā)送、接收頻率、功耗大小、工作模式等各項(xiàng)參數(shù)的功能。因此必須需要一個(gè)微控制器才能達(dá)到要求,而MSP430F149單片機(jī)開(kāi)發(fā)板不僅滿足設(shè)計(jì)要求,而且是自帶A/D轉(zhuǎn)換器、顯示器和本設(shè)計(jì)調(diào)試時(shí)所需的溫度傳感器模塊,在短時(shí)間內(nèi)和有限的條件下使設(shè)計(jì)更加輕松和方便。因此本設(shè)計(jì)采用MSP430F149單片機(jī)開(kāi)發(fā)板作為系統(tǒng)

34、的控制核心。</p><p>  1.4 電源模塊的選擇</p><p>  單片機(jī)的供電電壓要求是3.3V,TC35模塊要求的供電電壓要求是2.5V~5.0V。由于收音機(jī)模塊的應(yīng)用范圍很廣,比如手機(jī)中就采用3.7V鋰電池供電,DVD、電視等系統(tǒng)中則是對(duì)220V市電進(jìn)行變壓后供電。本設(shè)計(jì)中采用7805穩(wěn)壓芯片對(duì)系統(tǒng)進(jìn)行供電,由于這個(gè)電源可以很容易得到,設(shè)計(jì)中不再單獨(dú)給出。</p>

35、;<p>  1.5 系統(tǒng)總體框架</p><p>  本系統(tǒng)采用MSP430控制TC35無(wú)線模塊進(jìn)行遠(yuǎn)程通信。通過(guò)讀取TC35接收到的短信內(nèi)容從而控制相應(yīng)的外部繼電器組工作,或者控制數(shù)據(jù)采集系統(tǒng)工作,把相應(yīng)的數(shù)據(jù)通過(guò)串口0發(fā)給TC35模塊,進(jìn)而發(fā)送數(shù)據(jù)。</p><p>  圖1.1所示為系統(tǒng)遠(yuǎn)程端系統(tǒng)框圖:</p><p>  圖1.1 系統(tǒng)遠(yuǎn)程端

36、框圖</p><p>  系統(tǒng)遠(yuǎn)程端負(fù)責(zé)數(shù)據(jù)采集及控制外部設(shè)備,以及存儲(chǔ)重要的數(shù)據(jù)。系統(tǒng)由MSP430單片機(jī)主控,TC35作為無(wú)線通信模塊,繼電器組控制外部設(shè)備,傳感器組為數(shù)據(jù)采集模塊,24LC02B串行存儲(chǔ)器作為數(shù)據(jù)存儲(chǔ)器,電源模塊提供模塊的電源供應(yīng)。</p><p>  圖1.2所示為系統(tǒng)終端系統(tǒng)框圖:</p><p>  圖1.2 系統(tǒng)終端框圖</p&g

37、t;<p>  系統(tǒng)終端由用戶GSM手機(jī)或者PC機(jī),PC由串口接TC35模塊,上位機(jī)控制TC35模塊通信。</p><p>  2 系統(tǒng)硬件模塊設(shè)計(jì)</p><p>  通過(guò)圖1.1可知,硬件系統(tǒng)主要包括電源模塊、串口模塊、采集控制模塊、GSM模塊、串行存儲(chǔ)器模塊及單片機(jī)模塊。下面對(duì)各個(gè)模塊進(jìn)行詳細(xì)介紹。</p><p>  2.1 電源及復(fù)位電路的設(shè)

38、計(jì)</p><p>  2.1.1 MSP430電源模塊的設(shè)計(jì)</p><p>  MSP430電源模塊:</p><p>  使用TPS70633穩(wěn)壓芯片經(jīng)穩(wěn)壓得到3.3V電壓。如圖2.1所示。</p><p>  圖2.1 3.3V電源電路</p><p>  為了使輸出的3.3V輸出電源的紋波小,在輸出部分用了一

39、個(gè)100uf和0.1uf的電容,另外在芯片的輸入管腳也放置了一個(gè)100nf的濾波電容,以減小輸入端受到的干擾。</p><p>  2.1.2 TC35的電源模塊</p><p>  TC35模塊需要提供4V直流電壓,如圖2.2</p><p>  圖 2.2 3.6V電源電壓</p><p>  對(duì)于TC35模塊采用的4V供電,為了使輸出的

40、4V電壓的紋波小,在輸出部分用了一個(gè)22pf和100uf的電容,實(shí)現(xiàn)濾波。另外在芯片的輸入管腳也放置了100nf的濾波電容,以減小輸入端受到的干擾。</p><p>  2.1.3、復(fù)位電路</p><p>  在單片系統(tǒng)中,為了保證系統(tǒng)在上電時(shí)進(jìn)行初始化,同時(shí)也為了保證對(duì)電源的監(jiān)視,需要采用復(fù)位芯片,在此系統(tǒng)中采用MAX809STR芯片,復(fù)位電路如下圖: </p><

41、p>  圖2.4 復(fù)位電路</p><p>  由上圖可以看出:該電路非常簡(jiǎn)單,只在電源管腳處加了一個(gè)0.1uf的電容進(jìn)行濾波處理,以減小干擾。</p><p>  2.2 串口通信模塊設(shè)計(jì)</p><p>  該系統(tǒng)實(shí)現(xiàn)的串口電路(RS-232電路)主要是MSP430與上位機(jī)進(jìn)行通信,實(shí)現(xiàn)單片機(jī)系統(tǒng)與上位機(jī)進(jìn)行通信處理。由于單片機(jī)與上位機(jī)進(jìn)行通信時(shí)接口電

42、平不同,因此需要進(jìn)行接口轉(zhuǎn)換,這里采用MAX3238E芯片來(lái)完成接口電平的轉(zhuǎn)換。具體的RS-232電路圖如圖所示。</p><p>  圖2.5 RS-232電路圖</p><p>  由圖可以看出,通過(guò)一個(gè)上拉電阻將SHDN管腳拉高,使該芯片一直處于工作狀態(tài),如果系統(tǒng)需要處于低功耗狀態(tài),也可以通過(guò)單片機(jī)來(lái)控制該管腳。工作時(shí)將該管腳設(shè)置為低電平,需要處于低功耗時(shí)將該管腳設(shè)置為高電平這樣很容

43、易實(shí)現(xiàn)控制。在管腳C1+、C1-、C2+、C2-、V+和V-分別放置0.1uf電容實(shí)現(xiàn)充電作用,滿足相應(yīng)的充電電泵的要求,管腳T1OUT、TIN、R1OUT和RIN分別是232轉(zhuǎn)換的輸入/輸出腳,實(shí)現(xiàn)單片機(jī)的TTL電平與上位機(jī)的接口電平的轉(zhuǎn)換??紤]到減小電源的干擾,還需要在芯片的電源輸入管腳加一個(gè)104pf的電容來(lái)實(shí)現(xiàn)濾波,以減小輸入端受到的干擾。</p><p>  2.3 GSM模塊接口設(shè)計(jì)</p>

44、;<p>  2.3.1、GSM模塊簡(jiǎn)介</p><p>  本系統(tǒng)采用TC35。</p><p>  TC35是西門(mén)子公司推出的一種完整的無(wú)線GSM模塊,主要由GSM基帶處理器、GSM射頻模塊、供電模塊(ASIC)、閃存、ZIF連接器、天線接口六部分組成。它可以快速、安全可靠地實(shí)現(xiàn)系統(tǒng)方案中的數(shù)據(jù)傳輸、語(yǔ)音傳輸、短消息服務(wù)(Short Message Service)和傳真

45、服務(wù)。模塊的工作電壓為3.3~4.8V。該模塊有AT指令集接口,支持文本和PDU模式的短消息第三組的二類傳真等。此外,該模塊還具有電話簿功能、多方通話、漫游檢測(cè)等功能。常用工作模式有省電模式、IDLE、TALK等模式。通過(guò)獨(dú)特的40管腳ZIF連接器,實(shí)現(xiàn)電源連接、指令、數(shù)據(jù)、語(yǔ)音信號(hào)、及控制信號(hào)的雙向傳輸。通過(guò)ZIF連接器及50Ω天線連接器,可分別連接SIM卡支架和天線?;鶐幚砥髯鳛門(mén)C35的核心,主要處理GSM終端內(nèi)的語(yǔ)音、數(shù)據(jù)信號(hào)

46、,并涵蓋了蜂窩射頻設(shè)備中所有的模擬和數(shù)字功能。在不需要額外硬件電路的前提下,可支持FR、HR和EFR語(yǔ)音編碼。</p><p>  2.3.2 GSM模塊接口設(shè)計(jì)</p><p>  TC35模塊主要通過(guò)串口與單片機(jī)進(jìn)行連接,從而單片機(jī)實(shí)現(xiàn)對(duì)TC35模塊的控制。雖然TC35的串口提供了許多控制線,但由于考慮到設(shè)計(jì)接口的簡(jiǎn)單性,并且與單片機(jī)的UART進(jìn)行連接,所以采用兩線(TXD、RXD)連

47、接。對(duì)TC35模塊通信的控制可以通過(guò)軟件來(lái)實(shí)現(xiàn),采用軟件實(shí)現(xiàn)控制具有使用靈活等特點(diǎn),也很好地避免了過(guò)多硬件信號(hào)的檢測(cè)。對(duì)于TC35的其它管腳在不使用的時(shí)候,如果該管腳為輸出時(shí),一般將該管腳懸空;如果該管腳為輸入管腳,則需要將該管腳通過(guò)10Ω的電阻上拉。另外由于/IGT管腳是控制TC35模塊工作的管腳,所以需要將該管腳上拉,并且將該管腳與單片機(jī)進(jìn)行連接,從而可以通過(guò)單片機(jī)來(lái)控制TC35模塊的工作狀態(tài)。在設(shè)計(jì)時(shí)需要考慮TC35模塊的電源管腳

48、并連在一起,由于TC35是一個(gè)功能完全的模塊,因此這里不需要做任何的信號(hào)處理和射頻處理。另外TC35模塊還需要連接SIM卡座,這樣才能夠?qū)崿F(xiàn)一個(gè)完整獨(dú)立的GSM終端。以下為T(mén)C35模塊的接口設(shè)計(jì)。</p><p>  由圖可以看出,TC35接口電路的設(shè)計(jì)比較簡(jiǎn)單。在進(jìn)行串口設(shè)計(jì)時(shí),雖然TC35模塊串口管腳的工作電平是CMOS電平,單片機(jī)串口管腳的工作電平是TTL電平,但由于單片機(jī)的高電平和低電平的邏輯判斷電平可以

49、實(shí)現(xiàn)屯TC35的管腳進(jìn)行連接(具體可以參看MSP430F149的數(shù)據(jù)手冊(cè)),因此TC35模塊的串口線直接與單片機(jī)的串口線進(jìn)行連接。由于TC35模塊的串口管腳中的DTR0和RTS0兩個(gè)管腳是輸入管腳,因此分別通過(guò)10KΩ的電阻將這兩個(gè)管腳拉高。/IGT為T(mén)C35模塊的工作狀態(tài)控制管腳,該管腳首先通過(guò)一個(gè)電阻拉高,平時(shí)該管腳為高電平,處于不工作狀態(tài);另外該管腳還同時(shí)與單片機(jī)的一般I/O端口進(jìn)行連接,這樣通過(guò)單片機(jī)來(lái)實(shí)現(xiàn)對(duì)TC35模塊的工作狀

50、態(tài)的控制,當(dāng)單片機(jī)在該管腳送低電平時(shí),則TC35模塊工作。TC35模塊的SYNC管腳用來(lái)指示GSM模塊的工作狀態(tài),連接一個(gè)指示燈來(lái)指示工作狀態(tài),如圖2.6、圖2.7所示。</p><p>  圖2.6 TC-35_ZIF管腳接口電路</p><p>  2.3.3 指示燈電路</p><p>  TC35 有一個(gè)同步信號(hào)腳SYNC (32腳 synchroniza

51、tion signal ) ,該腳是一個(gè)同步信號(hào)輸出端,該腳輸出的信號(hào),反應(yīng)了模塊的工作情況。本系統(tǒng)在該端通過(guò)一個(gè)三級(jí)管接入 LED 燈,接法如圖 2.7 所示。 LED 燈受到該腳信號(hào)控制,可以顯示 TC35</p><p><b>  模塊運(yùn)行的狀態(tài)。</b></p><p>  圖2.7 指示燈電路</p><p>  1)、 LED 燈

52、熄滅時(shí):表示 TC35 處于關(guān)閉、休眠、報(bào)警或者充電狀態(tài)二;</p><p>  2)、 LED燈 600ms 亮/ 600ms 暗:表示 SIM 卡沒(méi)有插入,或者正在搜索網(wǎng)絡(luò),或者正在認(rèn)證用戶,或者正在注冊(cè)網(wǎng)絡(luò);</p><p>  3)、 LED 燈 75ms 亮/ 3S 暗: </p><p>  表示已經(jīng)注冊(cè)上網(wǎng),處于待機(jī)狀態(tài)二; </p>&

53、lt;p>  4)、 LED燈 75ms 亮/ 75ms 暗/ 75ms 亮/ 3S 暗:表示一個(gè)或多個(gè) GPRS 文件被激活二; </p><p>  5)、 LED 燈閃爍:表示 GPRS 的數(shù)據(jù)傳輸,當(dāng) GPRS 數(shù)據(jù)傳輸時(shí),在交換一個(gè)數(shù)據(jù)包后, LE 。燈將會(huì)在一秒內(nèi)點(diǎn)亮。閃爍的持續(xù)時(shí)間約為 0 . 5 秒。</p><p>  2.3.4 SIM卡電路</p>

54、<p>  TC35模塊的SIM卡座采用的是Molex座,該座有8個(gè)管腳,而TC35模塊的SIM管腳只有6個(gè)管腳,如下圖所示。其中編程端我們不用,其它的接口分別對(duì)應(yīng)于 TC35 的 5 個(gè)管腳,SIM上的CCRST、CCIO、CCCL、CCVCC和CCGND通過(guò)SIM卡閱讀器與TC35的同名端直接相連。其接口示意圖如下圖</p><p><b>  圖2.8所示:</b><

55、/p><p>  圖2.8 SIM卡接口示意圖</p><p>  圖2.8 所示的圖為SIM座接口電路圖,由圖可以看出SIM座直接與TC35模塊的ZIF連接器對(duì)應(yīng)的SIM卡管腳進(jìn)行連接,在需要的地方加了電容進(jìn)行濾波處理。當(dāng)SIM座的管腳7與TC35模塊的SIMDATA進(jìn)行連接時(shí),則用來(lái)模擬SIM卡插入的情況;當(dāng)SIM座的管腳7不與TC35模塊的SIMDATA進(jìn)行連接時(shí),則用來(lái)模擬SIM卡沒(méi)

56、有插入的情況。圖2.9為sim座接口電路。</p><p>  圖2.9 SIM座接口電路圖</p><p>  2.4 串行存儲(chǔ)器的設(shè)計(jì)</p><p>  在本系統(tǒng)中,串行存儲(chǔ)器使用24LC02B芯片來(lái)實(shí)現(xiàn)。24LC02B主要是通過(guò)I2C實(shí)現(xiàn)與單片機(jī)的連接,具體的電路如圖2.10所示。</p><p>  圖2.10 串行存儲(chǔ)器電路<

57、;/p><p>  由圖可以看出,該電路的設(shè)計(jì)比較簡(jiǎn)單。將24LC02B的第7管腳(寫(xiě)保護(hù)管腳)接地,可使該芯片始終處于可以進(jìn)行讀/寫(xiě)的狀態(tài)。在實(shí)際設(shè)計(jì)的時(shí)候,也可以將WP管腳與單片機(jī)的一個(gè)一般I/O端口進(jìn)行連接,通過(guò)單片機(jī)來(lái)控制24LC02B就處于寫(xiě)保護(hù)狀態(tài);單片機(jī)在該管腳輸出低電平,則24LC02B不處于寫(xiě)保護(hù)狀態(tài)。在本電路中,主要為了簡(jiǎn)化設(shè)計(jì),直接將WP管腳接地,使24LC02B不處于寫(xiě)保護(hù)狀態(tài)。24LC02B

58、的A0、A1和A2都接地,表示該器件的地址為000.由于I2C是總線工作方式,該總線上可以掛接很多器件,所以總線上的每個(gè)器件都應(yīng)該有相應(yīng)的地址,這樣才能實(shí)現(xiàn)尋址操作。24LC02B的SCL和SDA管腳分別與單片機(jī)的P1.2和P1.3進(jìn)行連接,連接的方式是I2C總線方式。由于MSP430系列單片機(jī)里有的單片機(jī)沒(méi)有I2C接口,因此本系統(tǒng)在設(shè)計(jì)時(shí)采用MSP430單片機(jī)的一般I/O端口P1.2和P1.3分別作為I2C總線的SCL和SDA線,采用

59、軟件來(lái)模擬I2C總線,從而實(shí)現(xiàn)與24LC02B進(jìn)行接口。在設(shè)計(jì)時(shí),需要將SCL和SDA分別通過(guò)一個(gè)10KΩ的電阻將其拉高,以滿足I2C工作條件。此外,為了減小電</p><p>  2.5 采集系統(tǒng)模塊設(shè)計(jì)</p><p>  在該系統(tǒng)中主要考慮模擬前端為傳感器,從傳感器送來(lái)的是標(biāo)準(zhǔn)信號(hào),即4mA到20mA,這樣設(shè)計(jì)具有一定的通用性,只要前端接不同的傳感器就可以采集不同的信號(hào)源。由于A/D

60、轉(zhuǎn)折基準(zhǔn)為電壓,也就是參考源為電壓,所以A/D轉(zhuǎn)換的是電壓,這樣需要將電流信號(hào)轉(zhuǎn)換成電壓信號(hào)。如圖2.11所示為模擬量采集具體的電路。</p><p>  圖2.11 采集電路設(shè)計(jì)</p><p>  由圖可以看出,采集電路通過(guò)一個(gè)電阻將電流信號(hào)轉(zhuǎn)換成電壓信號(hào),為了提高采集的進(jìn)度,需要采用高精度的電阻,這里采用的是精度為1%的電阻。電路中采用二極管作為ESD保護(hù)電路,考慮到干擾問(wèn)題,采用

61、電容進(jìn)行濾波處理,增加采集電路的抗干擾問(wèn)題。</p><p>  2.6 外部繼電器控制模塊設(shè)計(jì)</p><p>  在某些應(yīng)用場(chǎng)合,需要控制設(shè)備的狀態(tài),比如開(kāi)機(jī)或者關(guān)機(jī),因此本系統(tǒng)也設(shè)計(jì)了相應(yīng)的控制電路。該控制電路相對(duì)比較簡(jiǎn)單,主要利用繼電器來(lái)實(shí)現(xiàn),具體的控制電路如圖2.12所示。</p><p>  在圖2.12中,P4.0、P4.1、P4.2和P4.3與單片機(jī)

62、連接的同時(shí)也接地。在一般狀態(tài)下,繼電器處于開(kāi)路狀態(tài),當(dāng)單片機(jī)在P4.0、P4.1、P4.2和P4.3管腳輸出高電平時(shí),繼電器吸合,則電路導(dǎo)通,這樣就可以控制設(shè)備的狀態(tài)了。</p><p>  圖2.12 控制電路</p><p>  2.7 單片機(jī)模塊的設(shè)計(jì)</p><p>  MSP430F149 結(jié)構(gòu)概述</p><p>  MSP430

63、 系列單片機(jī)是一個(gè)特別強(qiáng)調(diào)超低功耗性能的單片機(jī)品種。它適合應(yīng)用在各種要求極低功耗的場(chǎng)合,具有一定的技術(shù)特點(diǎn)。在這個(gè)系列中有多個(gè)型號(hào),它們由一些基本功能模塊按不同的應(yīng)用目標(biāo)組合而成。其中 FLASH 型芯片又可分為幾個(gè)分支,如 11x、11x1、13x、14x 等。它們都具有開(kāi)發(fā)設(shè)備簡(jiǎn)便、可現(xiàn)場(chǎng)編程等特點(diǎn)。MSP430 系列采用存儲(chǔ)器-存儲(chǔ)器結(jié)構(gòu),即用一個(gè)公共的空間對(duì)全部功能模塊尋址,同時(shí)用精簡(jiǎn)指令組對(duì)全部功能模塊進(jìn)行操作[34,35]。

64、圖2.13 是 MSP430F14x 系統(tǒng)結(jié)構(gòu)圖。首先來(lái)看一下 CPU(Central Processing Unit)。MSP430 的 CPU 運(yùn)行正交的精簡(jiǎn)指令集,由 16 位 ALU(Arithmetic and Logic Unit)、指令控制邏輯和 16 個(gè)寄存器組成。寄存器中有 4 個(gè)具有特殊用途,即程序計(jì)數(shù)器R0/PC(Register 0/Program counter)、堆棧指針 R1/SP(Stack pointe

65、r)、狀態(tài)寄存器和常數(shù)發(fā)生器 R2/SR/CG1(Special Register/Constant Gen</p><p>  圖2.13 單片機(jī)電路圖</p><p>  單片機(jī)電路作為整個(gè)系統(tǒng)的核心控制部分,主要采集來(lái)自傳感器的數(shù)據(jù),將數(shù)據(jù)傳輸數(shù)據(jù)中心。單片機(jī)通過(guò)A/D通道進(jìn)行數(shù)據(jù)采集,單片機(jī)與GSM模塊之間的通信采用單片機(jī)的串口0(UART0)來(lái)實(shí)現(xiàn),GSM模塊與單片機(jī)接口時(shí)不不

66、需要進(jìn)行電平轉(zhuǎn)換。單片機(jī)與PC通信則需要通過(guò)串口芯片(SP3220)完成接口電平的轉(zhuǎn)換。此外,單片機(jī)還與串行存儲(chǔ)器接口,以記錄某些關(guān)鍵數(shù)據(jù)。單片機(jī)電路如圖2.13所示。</p><p>  通過(guò)圖2.13可以看出,該單片機(jī)的接口電路非常簡(jiǎn)單。在單片機(jī)的時(shí)鐘設(shè)計(jì)上與其他單片機(jī)有一定的區(qū)別:MSP430F149單片機(jī)采用兩個(gè)時(shí)鐘輸入,即一個(gè)32KHZ的時(shí)鐘信號(hào),另外一個(gè)為8MHZ的時(shí)鐘信號(hào),該系統(tǒng)的時(shí)鐘部分都是采用晶

67、體振蕩器來(lái)實(shí)現(xiàn)的??紤]到電源的輸入紋波對(duì)單片機(jī)的影響,在電源的管腳增加一個(gè)0.1uf的電容來(lái)實(shí)現(xiàn)濾波,以減小輸入管腳處受到的干擾,另外單片機(jī)還有模擬電源的輸入端,因此在這里需要考慮干擾問(wèn)題,由于在該系統(tǒng)中的干擾比較小,因此模擬地和數(shù)字地共地,并在模擬電源輸入管腳增加一個(gè)濾波電容以減小干擾。單片機(jī)的串口0與GSM模塊接口,串口1與PC進(jìn)行通信,由于接口電平不同,因此串口1與RS-232芯片進(jìn)行連接。單片機(jī)的P1.2和P1.3管腳與串行存儲(chǔ)

68、器進(jìn)行接口。此外,單片機(jī)的P4.0、P4.1、P4.2和P4.3分別與繼電器進(jìn)行連接,以控制設(shè)備的狀態(tài)。</p><p><b>  3系統(tǒng)軟件設(shè)計(jì)</b></p><p>  經(jīng)過(guò)前面的系統(tǒng)硬件設(shè)計(jì)可知,系統(tǒng)的軟件主要包括串口程序、存儲(chǔ)程序、短消息程序、采集控制程序和測(cè)試程序等。本系統(tǒng)軟件采用了前后臺(tái)的設(shè)計(jì)方式,前臺(tái)系統(tǒng)是主程序,后臺(tái)是由所有的中斷服務(wù)程序,如串口接

69、收中斷服務(wù)程序,定時(shí)器中斷服務(wù)程序等功能模塊組成。裝置的遠(yuǎn)程報(bào)警和開(kāi)啟功能通過(guò)軟件控制實(shí)現(xiàn),在使用裝置前需準(zhǔn)備好一張已開(kāi)通的GSM網(wǎng)SIM卡,并在手機(jī)終端上向SIM卡第一個(gè)電話本位置存入報(bào)警的目的手機(jī)號(hào)碼(無(wú)+86),此號(hào)碼也是用戶進(jìn)行遠(yuǎn)程開(kāi)啟時(shí)的唯一</p><p>  有效號(hào)碼;向SIM卡的第一個(gè)短信存儲(chǔ)位置存入欲發(fā)送的報(bào)警短信內(nèi)容。將設(shè)置好的SIM卡裝入裝置并上電后,裝置即可按程序設(shè)計(jì)的流程運(yùn)行。IAR 公

70、司為 MSP430 系列單片機(jī)開(kāi)發(fā)的 C430 集成開(kāi)發(fā)環(huán)境和 C 語(yǔ)言調(diào)試器作為程序開(kāi)發(fā)工具,程序主要由三部分代碼組成:?jiǎn)?dòng)與初始化、報(bào)警監(jiān)控、遠(yuǎn)程開(kāi)啟與控制。</p><p><b>  啟動(dòng)與初始化的設(shè)計(jì)</b></p><p>  圖3.1 TC35模塊的初始化</p><p>  裝置上電后首先必須對(duì)單片機(jī)、系統(tǒng)變量等進(jìn)行初始化,然后

71、通過(guò)拉低IGT啟動(dòng)TC35,并通過(guò)發(fā)送AT命令進(jìn)行模塊的初始化設(shè)置,初始化流程如圖3.1所示。單片機(jī)的初始化包括設(shè)置波特率、設(shè)置外部中斷(電平觸發(fā)方式)和串口中斷等,TC35的初始化包括設(shè)置短信到達(dá)時(shí)提醒方式、接收短信的存儲(chǔ)位置、電話薄的尋址位置等,初始化過(guò)程中用到的AT命令詳見(jiàn)表1。</p><p><b>  3.1串口程序設(shè)計(jì)</b></p><p>  在本系

72、統(tǒng)中,串口0與GSM模塊接口,串口程序部分需要實(shí)現(xiàn)串口0。串口程序主要包括初始化和中斷服務(wù)程序兩個(gè)部分。下面具體介紹程序?qū)崿F(xiàn)的代碼。</p><p>  3.1.1串口初始化程序</p><p>  串口初始化程序主要包括初始化和中斷服務(wù)程序兩個(gè)部分。下面為體和程序。void Init_UART0(void)</p><p><b>  {</b&g

73、t;</p><p>  //將寄存器的內(nèi)容清零</p><p>  U0CTL = 0X00;</p><p>  //數(shù)據(jù)位為8bit</p><p>  U0CTL += CHAR;</p><p>  //將寄存器的內(nèi)容清零</p><p>  U0TCTL = 0X00;<

74、/p><p>  //波特率發(fā)生器選擇SMCLK</p><p>  U0TCTL += SSEL1; </p><p>  //波特率為19200</p><p>  UBR0_0 = 0Xa1;</p><p>  UBR1_0 = 0X01;</p><p><b>  //調(diào)整

75、寄存器</b></p><p>  UMCTL_0 = 0X49;</p><p>  //使能UART0的TXD和RXD</p><p>  ME1 |= UTXE0 + URXE0; </p><p>  //使能UART0的RX中斷</p><p>  IE1 |= URXIE0;</p&g

76、t;<p>  //使能UART0的TX中斷</p><p>  IE1 |= UTXIE0; </p><p>  //設(shè)置P3.4為UART0的TXD</p><p>  P3SEL |= BIT4;</p><p>  //設(shè)置P3.5為UART0的RXD</p><p>  P3SEL |=

77、BIT5;</p><p>  //P3.4為輸出管腳</p><p>  P3DIR |= BIT4;</p><p><b>  return;</b></p><p><b>  }</b></p><p>  通過(guò)上面的程序可以看出,只要設(shè)置相應(yīng)的寄存器就可以設(shè)置

78、串口工作的參數(shù)。在上面的程序中,串口0的通信率為19200波特/秒。</p><p>  3.1.2中斷服務(wù)程序</p><p>  串口進(jìn)行數(shù)據(jù)的發(fā)送和接收處理時(shí),采用中斷服務(wù)程序來(lái)實(shí)現(xiàn),下面為具體的中斷服務(wù)程序。</p><p>  ////////////////////////////////////////</p><p>  //

79、 處理來(lái)自串口 0 的接收中斷</p><p>  #if __VER__ < 200</p><p>  interrupt [UART0RX_VECTOR] </p><p>  void UART0_RX_ISR(void)</p><p><b>  #else</b></p><p&g

80、t;  #pragma vector=UART0RX_VECTOR</p><p>  __interrupt </p><p>  void UART0_RX_ISR(void)</p><p><b>  #endif</b></p><p><b>  {</b></p><

81、;p>  char chrTemp;</p><p><b>  //接收來(lái)自的數(shù)據(jù)</b></p><p>  UART0_RX_BUF[nRX0_Len_temp] = RXBUF0;</p><p>  nRX0_Len_temp += 1;</p><p>  chrTemp= UART0_RX_BUF[

82、nRX0_Len_temp - 1];</p><p>  if((chrTemp == 13) || (chrTemp == 10))</p><p><b>  {</b></p><p><b>  //接收到一幀信號(hào)</b></p><p>  nRX0_Len= nRX0_Len_temp

83、;</p><p>  nRev_UART0 = 1;</p><p>  nRX0_Len_temp = 0;</p><p><b>  } </b></p><p><b>  }</b></p><p>  /////////////////////////////

84、///////////</p><p>  // 處理來(lái)自串口 0 的發(fā)送中斷</p><p>  #if __VER__ < 200</p><p>  interrupt [UART0TX_VECTOR] </p><p>  void UART0_TX_ISR(void)</p><p><b>

85、  #else</b></p><p>  #pragma vector=UART0TX_VECTOR__interrupt </p><p>  void UART0_TX_ISR(void)</p><p><b>  #endif</b></p><p><b>  {</b>&l

86、t;/p><p>  if(nTX0_Len != 0)</p><p><b>  {</b></p><p>  // 表示緩沖區(qū)里的數(shù)據(jù)沒(méi)有發(fā)送完</p><p>  nTX0_Flag = 0;TXBUF0 = UART0_TX_BUF[nSend_TX0];</p><p>  nSend_

87、TX0 += 1;</p><p>  Delay_us(5);</p><p>  if(nSend_TX0 >= nTX0_Len)</p><p><b>  {</b></p><p><b>  //數(shù)據(jù)發(fā)送完畢</b></p><p>  nSend_TX0

88、 = 0;</p><p>  nTX0_Len = 0;</p><p>  nTX0_Flag = 1;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>&

89、lt;p>  在上面的中斷服務(wù)程序中,為了與其他程序進(jìn)行數(shù)據(jù)交互,使用全局變量或者全局緩沖區(qū)來(lái)實(shí)現(xiàn),例如“UART1_TX_BUF[]”和“Ntx1_Flag”等。</p><p>  3.2 存儲(chǔ)程序設(shè)計(jì)</p><p>  在本系統(tǒng)中,利用串行存儲(chǔ)器存儲(chǔ)某些重要數(shù)據(jù)。單片機(jī)通過(guò)I2C與串行存儲(chǔ)器進(jìn)行接口。由于本系統(tǒng)使用的單片機(jī)是MSP430F149,該單片機(jī)沒(méi)有I2C外圍接口,因

90、此需要采用一般的I/O端口來(lái)模擬I2C總線的功能,從而實(shí)現(xiàn)串行存儲(chǔ)器的讀/寫(xiě)操作。本系統(tǒng)使用的串行存儲(chǔ)器為24LC02B.串行存儲(chǔ)器主要有讀/寫(xiě)操作,下面分別進(jìn)行詳細(xì)介紹。</p><p><b>  3.2.1寫(xiě)操作</b></p><p>  24LC02B的寫(xiě)操作有兩種形式:?jiǎn)巫止?jié)寫(xiě)和按頁(yè)寫(xiě)。下面對(duì)單字節(jié)寫(xiě)和按頁(yè)寫(xiě)兩種方式分別進(jìn)行介紹。</p>&

91、lt;p>  單字節(jié)寫(xiě)就是在指定的地址中寫(xiě)入內(nèi)容。首先單片機(jī)發(fā)送控制字節(jié),然后發(fā)送地址字節(jié),最后輸入寫(xiě)的內(nèi)容,具體程序如下。</p><p>  int WriteSingleByte(char nAddr,char nValue)</p><p><b>  {</b></p><p>  int nTemp = 0xA0;//寫(xiě)命令&

92、lt;/p><p><b>  // 啟動(dòng)數(shù)據(jù)總線</b></p><p>  I2C_START();</p><p><b>  // 發(fā)送控制字節(jié)</b></p><p>  I2C_TxByte(nTemp);</p><p><b>  // 等待 ACK&l

93、t;/b></p><p>  nTemp = I2C_GetACK();</p><p>  if(nTemp & BIT3) return 0;</p><p><b>  // 發(fā)送地址字節(jié)</b></p><p>  I2C_TxByte(nAddr);</p><p>&l

94、t;b>  // 等待 ACK</b></p><p>  nTemp = I2C_GetACK();</p><p>  if(nTemp & BIT3) return 0;</p><p><b>  // 發(fā)送數(shù)據(jù)字節(jié)</b></p><p>  I2C_TxByte(nValue);&l

95、t;/p><p><b>  // 等待 ACK</b></p><p>  nTemp = I2C_GetACK();</p><p>  if(nTemp & BIT3) return 0;</p><p><b>  // 停止總線</b></p><p>  I2

96、C_STOP();</p><p>  return (nTemp & SDA);</p><p><b>  }</b></p><p>  按頁(yè)寫(xiě)是一次寫(xiě)入8個(gè)字節(jié)。按頁(yè)寫(xiě)操作的第一個(gè)字節(jié)的操作和按字節(jié)寫(xiě)操作是一致的。當(dāng)寫(xiě)完第一個(gè)字節(jié)后,單片機(jī)繼續(xù)寫(xiě)下一個(gè)內(nèi)容,在寫(xiě)完最后一個(gè)字后,單片機(jī)在總線上產(chǎn)生停止信號(hào),需要注意的是:一

97、次最多只能寫(xiě)入8個(gè)字節(jié),如果操作多于8個(gè)字節(jié),則寫(xiě)入的內(nèi)容會(huì)被黑覆蓋。下面為具體的程序。int PageWrite(char nAddr,char pBuf[])</p><p><b>  { int i;</b></p><p>  int nTemp = 0xA0;//寫(xiě)命令</p><p><b>  // 啟動(dòng)數(shù)據(jù)總線<

98、;/b></p><p>  I2C_START();</p><p><b>  // 發(fā)送控制字節(jié)</b></p><p>  I2C_TxByte(nTemp);</p><p><b>  // 等待 ACK</b></p><p>  nTemp = I2C_

99、GetACK();</p><p>  if(nTemp & BIT3) return 0;</p><p><b>  // 發(fā)送地址字節(jié)</b></p><p>  I2C_TxByte(nAddr);</p><p><b>  // 等待 ACK</b></p><

100、;p>  nTemp = I2C_GetACK();</p><p>  if(nTemp & BIT3) return 0;</p><p><b>  // 發(fā)送數(shù)據(jù)字節(jié)</b></p><p>  for(i = 0; i < 8;i++)</p><p>  {I2C_TxByte(pBu

101、f[0]);</p><p><b>  // 等待 ACK</b></p><p>  nTemp = I2C_GetACK();</p><p>  if(nTemp & BIT3) return 0;</p><p><b>  }</b></p><p>&l

102、t;b>  // 停止總線</b></p><p>  I2C_STOP();</p><p>  return (nTemp & SDA);</p><p><b>  }</b></p><p><b>  3.2.2讀操作</b></p><

103、;p>  24LC02B的讀操作有3種形式:當(dāng)前地址、隨機(jī)讀和順序地讀。當(dāng)前地址讀需要知道上次讀操作后的地址,因此不具有操作獨(dú)立性,這里不做介紹。下面對(duì)隨機(jī)讀和順序讀你好嗎進(jìn)行介紹。</p><p>  隨機(jī)讀可以讀任何地址的數(shù)據(jù)。首先由單片機(jī)發(fā)送一個(gè)控制字節(jié),然后發(fā)送地址數(shù)據(jù),最后讀出該地址的數(shù)據(jù)。下面給出具體的程序。int ReadRandom(char nAddr, char *nValue)<

104、/p><p><b>  {</b></p><p><b>  //寫(xiě)命令</b></p><p>  int nTemp = 0xA0;</p><p><b>  // 啟動(dòng)數(shù)據(jù)總線</b></p><p>  I2C_START();</p&g

105、t;<p><b>  // 發(fā)送控制字節(jié)</b></p><p>  I2C_TxByte(nTemp);</p><p><b>  // 等待 ACK</b></p><p>  nTemp = I2C_GetACK();</p><p>  if(nTemp & BIT

106、3) return 0;</p><p><b>  // 發(fā)送地址字節(jié)</b></p><p>  I2C_TxByte(nAddr);</p><p><b>  // 等待 ACK</b></p><p>  nTemp = I2C_GetACK();</p><p>

107、  if(nTemp & BIT3) return 0;</p><p><b>  // 啟動(dòng)數(shù)據(jù)總線</b></p><p>  I2C_START();</p><p><b>  // 發(fā)送控制字節(jié)</b></p><p>  nTemp = 0xA1;</p><

108、;p>  I2C_TxByte(nTemp);</p><p><b>  // 等待 ACK</b></p><p>  nTemp = I2C_GetACK();</p><p>  if(nTemp & BIT3) return 0;</p><p><b>  //讀取數(shù)據(jù)</b&g

109、t;</p><p>  *nValue = I2C_RxByte();</p><p><b>  // 停止總線</b></p><p>  I2C_STOP();</p><p><b>  //成功返回</b></p><p><b>  return 1;

110、</b></p><p><b>  }</b></p><p>  順序讀是連續(xù)讀出多個(gè)字節(jié)。它的開(kāi)始操作和隨機(jī)讀是一樣的,在讀完一個(gè)字節(jié)后,對(duì)24LC02B發(fā)送確認(rèn)(ACK)信號(hào),再繼續(xù)下一個(gè)字節(jié),當(dāng)讀到最后一個(gè)字節(jié)的時(shí)候,音片機(jī)需要在總線上產(chǎn)生停止信號(hào),具體程序如下。</p><p>  int ReadSeq(char nA

111、ddr, char nValue[], int nLen)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  int nTemp = 0xA0; //寫(xiě)命令</p><p>  I2C_START();// 啟動(dòng)數(shù)據(jù)總線</p>

112、<p>  I2C_TxByte(nTemp); // 發(fā)送控制字節(jié)</p><p>  nTemp = I2C_GetACK();// 等待 ACK</p><p>  if(nTemp & BIT3) return 0;</p><p>  I2C_TxByte(nAddr); // 發(fā)送地址字節(jié)</p><p> 

113、 nTemp = I2C_GetACK();// 等待 ACK</p><p>  if(nTemp & BIT3) return 0;</p><p>  I2C_START();// 啟動(dòng)數(shù)據(jù)總線</p><p>  nTemp = 0xA1;</p><p>  I2C_TxByte(nTemp); // 發(fā)送控制字節(jié)</

114、p><p>  nTemp = I2C_GetACK();// 等待 ACK</p><p>  if(nTemp & BIT3) return 0;</p><p>  for(i = 0; i < nLen; i++)//讀取數(shù)據(jù)</p><p><b>  {</b></p><p&g

115、t;  nValue[i] = I2C_RxByte();//讀一個(gè)字節(jié)數(shù)據(jù)</p><p>  I2C_SetACK();//發(fā)送ACK</p><p><b>  } </b></p><p>  I2C_STOP();// 停止總線</p><p>  return 1; //成功返回</p><

116、;p><b>  }</b></p><p>  3.3短消息程序設(shè)計(jì)</p><p>  在本系統(tǒng)中,單片機(jī)通過(guò)串口0向GSM模塊發(fā)送相應(yīng)的AT命令來(lái)實(shí)現(xiàn)短消息的發(fā)送和接收。在介紹具體程序之前,首先簡(jiǎn)單介紹消息相關(guān)的AT命令。</p><p>  3.3.1 AT命令介紹</p><p>  AT命令是一套用于對(duì)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論