《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于GSM模塊與AT89C51的接口設(shè)計(jì)及應(yīng)用
基于GSM模塊與AT89C51的接口設(shè)計(jì)及應(yīng)用
互聯(lián)網(wǎng)
摘要: 隨著通信技術(shù)的發(fā)展,,基于移動(dòng)通信網(wǎng)絡(luò)服務(wù)功能,,正向工業(yè)控制和遙控領(lǐng)域有不斷擴(kuò)大的趨勢(shì),。為適應(yīng)這種需要,,西門子公司推出了新一代無(wú)線通信GSM模塊——TC35i,基于該模塊的短消息功能,可以快速安全可靠地實(shí)現(xiàn)用戶信息處理等功能,特別適用于控制中心與終端設(shè)備距離很遠(yuǎn),,或不便采用有線通信介質(zhì)等場(chǎng)合,例如油井信息采集后的傳輸,、遠(yuǎn)程抄表系統(tǒng),、城市交通導(dǎo)向等均基于TC35i模塊來(lái)實(shí)現(xiàn)。
關(guān)鍵詞: 51單片機(jī) GSM模塊 AT89C51
Abstract:
Key words :

1,、概述:

    隨著通信技術(shù)的發(fā)展,,基于移動(dòng)通信網(wǎng)絡(luò)服務(wù)功能,正向工業(yè)控制和遙控領(lǐng)域有不斷擴(kuò)大的趨勢(shì),。為適應(yīng)這種需要,,西門子公司推出了新一代無(wú)線通信GSM模塊" title="GSM模塊">GSM模塊——TC35i,基于該模塊的短消息功能,,可以快速安全可靠地實(shí)現(xiàn)用戶信息處理等功能,,特別適用于控制中心與終端設(shè)備距離很遠(yuǎn),或不便采用有線通信介質(zhì)等場(chǎng)合,,例如油井信息采集后的傳輸,、遠(yuǎn)程抄表系統(tǒng)、城市交通導(dǎo)向等均基于TC35i模塊來(lái)實(shí)現(xiàn),。

2,、TC35i模塊介紹

    目前,國(guó)內(nèi)已經(jīng)開始使用的GSM模塊有很多,,而且這些模塊的功能,、用法差別不大。本設(shè)計(jì)采用的是西門子TC35系列的TC35i ,。這種無(wú)線模塊功能上與TC35兼容,,設(shè)計(jì)緊湊,大大縮小了用戶產(chǎn)品的體積,。TC35i與GSM2/2兼容,、雙頻(GSM900/GSM1800)、RS232數(shù)據(jù)接口,,該模塊及射頻電路和基帶與一體,,向用戶提供標(biāo)準(zhǔn)的AT命令接口,為數(shù)據(jù),、語(yǔ)音,、短消息和傳真提供快速、可靠,、安全的傳輸,,方便用戶的應(yīng)用開發(fā)及設(shè)計(jì)。

2.1 模塊中與SMS有關(guān)的GSM  AT指令介紹

    GSM引擎模塊提供的命令符合GSM07.05和GSM07.07規(guī)范。GSM07.07中定義的AT Command接口,,提供了一種移動(dòng)平臺(tái)與數(shù)據(jù)終端設(shè)備之間的通用接口,;GSM07.05對(duì)短消息作了詳細(xì)的規(guī)定。在短消息模塊收到網(wǎng)絡(luò)發(fā)來(lái)的短消息時(shí),,能夠通過(guò)串口發(fā)送指示信息,,數(shù)據(jù)終端設(shè)備可以向GSM模塊發(fā)送各種命令。與SMS有關(guān)的GSM AT指令如表一所示,。GSM AT指令集,,是由諾基亞、愛立信,、摩托羅拉和HP等廠家共同為GSM系統(tǒng)研制的,,其中包含了對(duì)SMS(Short Message Service)的控制。

表一  與SMS相關(guān)的若干GSM AT指令

2.2 PDU編碼規(guī)則

    目前,,發(fā)送短消息常用Text和PDU(Protocol Data Unit,協(xié)議數(shù)據(jù)單元)模式,。使用Text模式收發(fā)短信代碼簡(jiǎn)單,,實(shí)現(xiàn)起來(lái)十分容易,但最大的缺點(diǎn)是不能收發(fā)中文短信,;而PDU模式不僅支持中文短信,,也能發(fā)送英文短信。PDU模式收發(fā)短信可以使用3種編碼:7-bit,、8-bit和UCS2編碼,。7-bit編碼用于發(fā)送普通的ASCII字符,8-bit編碼通常用于發(fā)送數(shù)據(jù)消息,, UCS2編碼用于發(fā)送Unicode字符,。一般的PDU編碼由ABCDEFGHIJKLM十三項(xiàng)組成。

A:短信息中心地址長(zhǎng)度,,2位十六進(jìn)制數(shù)(1字節(jié))

B:短信息中心號(hào)碼類型,,2位十六進(jìn)制數(shù)。

C:短信息中心號(hào)碼,,B+C的長(zhǎng)度將由A中的數(shù)據(jù)決定,。

D:文件頭字節(jié),2位十六進(jìn)制數(shù),。

E:信息類型,,2位十六進(jìn)制數(shù)。

F:被叫號(hào)碼長(zhǎng)度,,2位十六進(jìn)制數(shù),。

G:被叫號(hào)碼類型,2位十六進(jìn)制數(shù),取值同B,。

H:被叫號(hào)碼,,長(zhǎng)度由F中的數(shù)據(jù)決定。

I:協(xié)議標(biāo)識(shí),,2位十六進(jìn)制數(shù),。

J:數(shù)據(jù)編碼方案,2位十六進(jìn)制數(shù),。

K:有效期,,2位十六進(jìn)制數(shù)。

L:用戶數(shù)據(jù)長(zhǎng)度,,2位十六進(jìn)制數(shù),。

M:用戶數(shù)據(jù),其長(zhǎng)度由L中的數(shù)據(jù)決定,。J中設(shè)定采用UCS2編碼,,這里是中英文的Unicode字符。

3,、TC35i與單片機(jī)的硬件接口電路

    TC35i模塊主要由GSM基于處理器,、GSM射頻模塊、供電模塊,、閃存,、ZIF連接器、天線接口六部分組成,。通過(guò)ZIF連接器與單片機(jī)實(shí)現(xiàn)電路接口,,該接口讀取或發(fā)送TC35i模塊中的數(shù)據(jù),將是本文論述的重點(diǎn),,也是TC35i應(yīng)用的核心,。TC35i與單片機(jī)的硬件接口電路如圖所示。

3,、單片機(jī)與TC35i的軟件接口及控制原理

    單片機(jī)與TC35i的軟件接口其實(shí)就是單片機(jī)通過(guò)AT指令控制手機(jī)的控制技術(shù),,首先設(shè)置TC35i模塊的工作模式:AT+CMGF=n,n=0為PDU模式,;n=1為文本模式,;通常設(shè)置為PDU模式,在這種模式下,,能傳送或接受透明數(shù)據(jù)(用戶自定義數(shù)據(jù)),。AT+CMGR=n為讀TC35i模塊短消息數(shù)據(jù),n為短消息號(hào),。AT+CMGL=n為列出TC35i模塊內(nèi)的短消息,,n=0是未讀的短消息,,n=1位已讀的短消息,n=2位未發(fā)送的短消息,,n=3為已發(fā)送的短消息n=4為所有短消息,。AT+CMGD=n為刪除TC35i模塊的短消息,n為短消息編號(hào),。

4.1程序設(shè)計(jì)

    軟件編程通過(guò)向TC35i寫入不同的AT指令能完成多種功能,,如網(wǎng)絡(luò)登陸、讀取SIM卡上電話號(hào)碼,、發(fā)送SMS消息,、接收SMS消息等。下面給出部分功能程序:

4.1.1啟動(dòng)TC35i模塊程序

STAR: CLR     P1.0 ,;IGT=0

        LCALL  DL100ms,;延時(shí)100毫秒

        SETB    P1.0 ;IGT=1啟動(dòng)TC35i模塊

        MOV    PCON ,, #80H

        MOV    TH1,,#0FBH ;采用18.432MHz晶振時(shí),,設(shè)置串口為19200波特率

        MOV    TL1,  #0FBH

        MOV    SCON,#50H

        SETB    TR1

4.1.2設(shè)置TC35i模塊為PDU工作模式程序

CMGF:MOV  40H,,#41H;A

        MOV  41H,,#54H,;T

        MOV 42H,, #2BH,;+

        MOV 43H,#43H,;C

MOV 44H,,#4DH;M

MOV 45H,,#47H,,G

MOV 46H,#46H,;F

MOV 47H,,#3DH;=

MOV 48H,,#30H,;0

MOV 49H,#0DH,;CR發(fā)送十個(gè)字符

MOV R2,,#0AH

MOV R0,#40H

CMGF1:MOV A,@R0

MOV SBUF,A

JNB TI,$

CLR TI

INC R0

DJNZ R2,CMGF1

RET

4.1.3 刪除短消息程序

CMGD:MOV  40H,,#41H,;A

MOV  41H,#54H,;T

MOV 42H,, #2BH;+

MOV 43H,,#43H,;C

MOV 44H,#4DH,;M

MOV 45H,,#47H,G

MOV 46H,,#46H,;F

MOV 47H,#3DH,;=

MOV 48H,,#16H;短消息號(hào)

MOV 49H,,#17H

MOV 4AH,,#0DH;CR

MOV R2,,#0BH

CMGD1:

MOV A,,@R0

MOV SBUF,A

MOV 1CH,,#200

JNB TI,,$

CLR TI

DJNZ R2,CMGD1

MOV R2,,#0DH

CMGD2:

JNB RI,,$

CLR RI

MOV A,SBUF

DJNZ R2,,CMGD2

MOV RO,,#40H

CMGD3:

JNB RI,$

CLR RI

MOV A,,SBUF

MOV @R0,A

INC RO

CJNE A,#0AH,CMGD3,;判斷換行字符

MOV A,40H

CJNE A,#4FH,CMGD4;錯(cuò)誤時(shí)轉(zhuǎn)移

SETB F0,;刪除成功

RET

CMGD4:

CLR F0,;刪除失敗

RET

    AT指令的指令符號(hào),、常數(shù)、PDU數(shù)據(jù)等都是以ASCII編碼形式傳送,;傳送透明數(shù)據(jù)必須把TC35i模塊的工作模式設(shè)置為PDU模式,;單片機(jī)向TC35i模塊發(fā)送每一條指令后,必須以回車符作為該條指令的結(jié)束,,例如單片機(jī)向手機(jī)發(fā)送“AT+CMGF=0”這條指令,,其ASCII編碼序列為“41H、54H,、2BH,、42H、4DH,、47H,、46H、3DH,、30H,、0DH”,最后一個(gè)字節(jié)0DH就是回車符,,表示該條指令結(jié)束,,如果沒(méi)有這個(gè)回車符,手機(jī)將不識(shí)別這條指令,。當(dāng)TC35i模塊接收到一條完整的AT指令后,,TC35i模塊并不立即執(zhí)行該條指令,而是先把剛才接收到的AT指令的ASCII編碼序列全部反發(fā)送出來(lái)(含0DH),;其次發(fā)送一個(gè)回車符和一個(gè)換行符的ASCII編碼,,即0DH和0AH;然后執(zhí)行該指令,。

    單片機(jī)讀取TC35i模塊的PDU數(shù)據(jù)時(shí),,原始數(shù)據(jù)應(yīng)該是16進(jìn)制數(shù),,但讀回的數(shù)據(jù)仍然是ASCII表示的16進(jìn)制數(shù),。這樣一個(gè)字節(jié)的16進(jìn)制數(shù)就變成了2個(gè)字節(jié)的ASMII碼。但是PDU數(shù)據(jù)包中的數(shù)據(jù)字節(jié)長(zhǎng)度部分仍然是實(shí)際字符長(zhǎng)度,。而不是變成ASCII碼的字節(jié)長(zhǎng)度,,這在編程時(shí)應(yīng)特別注意,否則,,接收的數(shù)據(jù)就不完整,。單片機(jī)接收到PDU數(shù)據(jù)包數(shù)據(jù)后,必須將其恢復(fù)成16進(jìn)制數(shù)據(jù),,其算法如下:設(shè)a為接收的ASCII碼,,b為轉(zhuǎn)換后的16進(jìn)制數(shù),。那么如果a<39H,則b=a-30H,;如果a>39H,,則b=a-30h-07H。最后把前后兩個(gè)數(shù)合并為一個(gè)字節(jié),。

    TC35i模塊向單片機(jī)應(yīng)答PDU數(shù)據(jù)包的字節(jié)數(shù)時(shí)不包括前9個(gè)字節(jié)數(shù)據(jù),,但向單片機(jī)傳送PDU數(shù)據(jù)包時(shí),包括這9個(gè)字節(jié)的數(shù)據(jù),。例如,,如果TC35i模塊應(yīng)答的PDU數(shù)據(jù)長(zhǎng)度為50,而實(shí)際向單片機(jī)傳送的16進(jìn)制數(shù)據(jù)為59字節(jié),,ASCII碼為2×59字節(jié),,所以單片機(jī)必須按2×59個(gè)字節(jié)接收PDU數(shù)據(jù)。

5,、結(jié)論:

    使用手機(jī)模塊利于系統(tǒng)集成,,成本較低。在偏遠(yuǎn)地區(qū)等架設(shè)通信線路困難或不經(jīng)濟(jì)的地方,,工程服務(wù)設(shè)施可以自由靈活的設(shè)置,,不再受地形條件的限制??傊?,GSM模塊價(jià)格低廉、應(yīng)用廣泛,,應(yīng)用前景誘人,通過(guò)與手機(jī)模塊接口可以很方便的設(shè)計(jì)出用戶所需要的數(shù)據(jù)接收終端,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。