1 引言隨著通信技術(shù)的發(fā)展, 基于移動(dòng)通信網(wǎng)絡(luò)服務(wù)功能, 正向工業(yè)控制和遙控領(lǐng)域有不斷擴(kuò)大的趨勢(shì)。為適應(yīng)這種需要,西門(mén)子公司推出了新一代無(wú)線(xiàn)通信GSM模塊——TC35i,是一種基于GSM網(wǎng)絡(luò)的通過(guò)短信形式傳輸數(shù)據(jù)的通信終端設(shè)備;谠撃K工作的無(wú)線(xiàn)網(wǎng)絡(luò)覆蓋范圍廣,在信息傳遞方面性能穩(wěn)定、可靠,所以把GSM作為信息傳遞的載體,與單片機(jī)結(jié)合起來(lái)構(gòu)成應(yīng)用系統(tǒng)有著強(qiáng)大的生命力和廣闊的應(yīng)用空間,特別是在遠(yuǎn)程數(shù)據(jù)傳輸、遠(yuǎn)程監(jiān)控等領(lǐng)域。
本設(shè)計(jì)借助系統(tǒng)模型,根據(jù)GSM模塊收發(fā)短信、打電話(huà)以及串口控制SMS的基本原理,由單片機(jī)STC12C5A32S2與Tc35i模塊通過(guò)串口通信、軟件技術(shù)結(jié)合相關(guān)的AT指令實(shí)現(xiàn)手機(jī)的基本功能,通過(guò)LCD1602液晶顯示頻顯示串口傳輸?shù)南嚓P(guān)數(shù)據(jù)輸出。
2 設(shè)計(jì)方案 本次設(shè)計(jì)的目的是基于C51單片機(jī)控制GSM模塊實(shí)現(xiàn)短信收發(fā)、打電話(huà)的功能,根據(jù)題意,制定設(shè)計(jì)方案如下:
1、短信模塊使用西門(mén)子公司推出的無(wú)線(xiàn)通信GSM模塊——TC35i;
2、使用LCD1602液晶模塊作為顯示器件,及時(shí)顯示串口傳輸數(shù)據(jù);
3、單片機(jī)芯片使用宏晶科技生產(chǎn)的新一代8051單片機(jī)STC12C5A32S2;
4、整個(gè)系統(tǒng)組成有TC35i模型和小系統(tǒng)單片機(jī)電路,STC12C5A32S2單片機(jī)的TXD/RXD分別接TC35模塊的TXD/RXD,并且兩者共地,通過(guò)串口通信、軟件技術(shù)結(jié)合相關(guān)的AT指令完成對(duì)TC35模塊的初始化和短消息的數(shù)據(jù)收發(fā)以及打電話(huà)的功能;
5、增加4*4矩陣鍵盤(pán)小模塊,通過(guò)鍵盤(pán)設(shè)置相關(guān)按鍵實(shí)現(xiàn)相關(guān)功能,并能從鍵盤(pán)實(shí)現(xiàn)隨意撥號(hào);
6、當(dāng)有來(lái)電或者新信息時(shí),通過(guò)蜂鳴器響聲長(zhǎng)短提示并在LCD液晶顯示相關(guān)提示。
3 硬件設(shè)計(jì)使用單片機(jī)控制GSM,首先:?jiǎn)纹瑱C(jī)下載完程序后,先不要接GSM,先讓單片機(jī)和電腦通信,利用串口調(diào)試助手查看單片機(jī)AT指令的數(shù)據(jù)。然后單片機(jī)的TXD/RXD分別接上圖所示的TXD/RXD并共地,完成對(duì)TC35模塊的初始化和短消息的數(shù)據(jù)收發(fā)以及打電話(huà)的功能。硬件連接實(shí)物圖如圖3-1:
1.001.jpg (52.87 KB, 下載次數(shù): 44)
下載附件
2017-5-21 17:29 上傳
3.1 TC35i模塊介紹TC35i模塊主要由六部分組成: GSM基帶處理器、GSM射頻模塊、供電模塊 (ASIC)、 閃存、ZIF連接器、天線(xiàn)接口。其中,GSM基帶處理器是整個(gè)模塊的核心,主要處理GSM終端內(nèi)的語(yǔ)音、數(shù)據(jù)信號(hào),并涵蓋蜂窩射頻設(shè)備中的所有模擬和數(shù)據(jù)功能。TC35i模塊結(jié)構(gòu)框圖如圖3-2:
1.002.jpg (29.92 KB, 下載次數(shù): 51)
下載附件
2017-5-21 17:29 上傳
GSM開(kāi)發(fā)板有兩種供電方式,一種是直接把開(kāi)關(guān)電源適配器插到電源插頭上,另一種是直接用直流穩(wěn)壓電源的正負(fù)極分別接到上圖的電源正5V、電源地。當(dāng)用電腦串口調(diào)試GSM時(shí),必須用短路帽直接把J3、J4分別插上短路帽,如上圖所示。當(dāng)用單片機(jī)控制GSM時(shí),J3、J4的短路帽必須拔下。
1.003.jpg (46.63 KB, 下載次數(shù): 72)
下載附件
2017-5-21 17:29 上傳
3.2 單片機(jī)及各元件的連接
LCD1602液晶顯示模塊通過(guò)排阻接STC12C5A32S2單片機(jī)P0口,4*4矩陣鍵盤(pán)按鍵,接STC12C5A32S2單片機(jī)P1口,具體功能分配在3.2.1和3.2.2詳細(xì)介紹。
3.2.1 STC12C5A32S2芯片介紹STC12C5A32S2芯片是宏晶科技生產(chǎn)的高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)的8051,用它作為本設(shè)計(jì)控制核心。STC12C5A32S2引腳排列如圖3-4所示,表3-1為 STC12C5A32S2引腳功能分配說(shuō)明。
1.004.jpg (3.24 KB, 下載次數(shù): 43)
下載附件
2017-5-21 17:29 上傳
| |
| 輸出液晶顯示屏雙向數(shù)據(jù)口,P0口使用上拉電阻 |
| |
| |
| |
| |
1.005.jpg (36.4 KB, 下載次數(shù): 48)
下載附件
2017-5-21 17:29 上傳
3.2.2 LCD1602液晶顯示模塊介紹字符型液晶顯示模塊是一種專(zhuān)門(mén)用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。本設(shè)計(jì)采用1602LCD液晶顯示頻作為顯示工具,當(dāng)系統(tǒng)向外撥號(hào)、發(fā)送信息或有來(lái)電以及新信息進(jìn)來(lái)時(shí),通過(guò)按鍵控制執(zhí)行相關(guān)應(yīng)答,1602LCD同時(shí)顯示相關(guān)指令指示,例如當(dāng)有來(lái)電時(shí),顯示效果如圖3-5所示:
1.006.jpg (26.83 KB, 下載次數(shù): 39)
下載附件
2017-5-21 17:29 上傳
3.2.3 按鍵設(shè)計(jì)模塊本設(shè)計(jì)采用4*4矩陣鍵盤(pán)按鍵,接單片機(jī)P1口,相關(guān)功能設(shè)置如圖3-6:
1.007.jpg (2.72 KB, 下載次數(shù): 45)
下載附件
2017-5-21 17:29 上傳
功能說(shuō)明:圖中為括號(hào)的內(nèi)容表示該按鍵按下則相關(guān)數(shù)字送給單片機(jī)進(jìn)行存儲(chǔ)和顯示,非數(shù)字鍵按表格中的功能在程序中實(shí)現(xiàn)。
4 軟件設(shè)計(jì)單片機(jī)與GSM模塊的的軟件接口其實(shí)就是單片機(jī)通過(guò)與GSM模塊相關(guān)的AT 指令控制手機(jī)的控制技術(shù)。指令的執(zhí)行過(guò)程需要單片機(jī)與GSM模塊交互應(yīng)答完成,每次發(fā)送或接收的字節(jié)數(shù)有嚴(yán)格的規(guī)定,二者必須依據(jù)這些規(guī)定實(shí)現(xiàn)數(shù)據(jù)交換,否則,通信就是失敗的。設(shè)計(jì)采用的相關(guān)AT指令說(shuō)明:
a、 單片機(jī)與 TC35i模塊由串口建立連接:AT。
b、 設(shè)置 TC35i模塊工作模式:AT+CMGF=n,n=0:PDU模式;n=1:文本模式,通常要設(shè)置為 PDU模式,在這種模式下,能傳送或接收透明數(shù)據(jù)(用戶(hù)自定義)。
c、 發(fā)送信息指令:AT+CMGS=n,n為目標(biāo)號(hào)碼。
d、 新消息提示指令:AT+CMNI=2,1,0,0,設(shè)置為mode=2,mt=1。
e、 讀 TC35i模塊短消息數(shù)據(jù):AT+CMGR=n,n為短消息號(hào)(十進(jìn)制)。
f、 撥號(hào)指令:ATD。這個(gè)命令用來(lái)設(shè)置通話(huà)、數(shù)據(jù)或傳真呼叫。
g、 來(lái)電顯示指令:AT+CLIP=1。
h、 接聽(tīng)指令: ATA。
i、 掛電話(huà)指令:ATH。
4.1 軟件設(shè)計(jì)工作原理軟件設(shè)計(jì)過(guò)程中在矩陣鍵盤(pán)設(shè)置了相關(guān)按鍵分別控制發(fā)送短信息 (關(guān)鍵字、狀態(tài)字、查詢(xún)信息 )、撥號(hào)到從矩陣鍵盤(pán)輸入的任意號(hào)碼、接聽(tīng)來(lái)電、掛機(jī)以及數(shù)字鍵、清屏鍵。
在系統(tǒng)運(yùn)行過(guò)程中通過(guò)鍵盤(pán)掃描檢測(cè),當(dāng)有按鍵按下執(zhí)行相關(guān)操作或者有新信息或新來(lái)電時(shí),TC35i通過(guò)串口傳輸接收到相關(guān)AT指令后 ,把相關(guān)信息返回并通過(guò)串口傳送給單片機(jī) ,單片機(jī)收到有新的信號(hào)指示 ,則按指示執(zhí)行相關(guān)操作并繼續(xù)通過(guò)串口傳輸將相關(guān)數(shù)據(jù)送給GSM模塊, GSM模塊通過(guò)串口傳輸收到相關(guān)信息后成功返回“OK”,失敗返回“ERROR”。串口傳輸?shù)南嚓P(guān)指令指示通過(guò)LCD1602液晶顯示頻顯示出來(lái)。
4.2 軟件流程圖 程序使用模塊化的編程思路。主程序包括系統(tǒng)初始化、屏幕刷新和按鍵掃描三部分,其流程如圖4-1所示。屏幕刷新功能用一個(gè)子程序模塊實(shí)現(xiàn),在模塊當(dāng)中實(shí)現(xiàn)相應(yīng)字符串的顯示,其流程如圖4-2所示。參數(shù)設(shè)置子程序的按鍵掃描,不是設(shè)置鍵按下則退出掃描,重新輪詢(xún)。若有設(shè)置鍵按下,則進(jìn)入功能選擇子程序。
1.008.jpg (8.73 KB, 下載次數(shù): 53)
下載附件
2017-5-21 17:29 上傳
1.009.jpg (37.68 KB, 下載次數(shù): 54)
下載附件
2017-5-21 17:29 上傳
4.3 主要程序說(shuō)明整個(gè)軟件設(shè)計(jì)由多部分組成:函數(shù)聲明、函數(shù)定義、主函數(shù)、信息檢測(cè)函數(shù)、鍵盤(pán)掃描函數(shù)、串口中斷函數(shù)、延時(shí)子函數(shù)、收/發(fā)信息函數(shù)、撥號(hào)函數(shù)、掛機(jī)函數(shù)、接聽(tīng)函數(shù)以及相關(guān)LCD1602液晶顯示相關(guān)函數(shù)等,主要程序說(shuō)明見(jiàn)附錄。
5 調(diào)試與測(cè)試5.1 硬件調(diào)試設(shè)計(jì)好PCB電路檢查確認(rèn)無(wú)誤之后,經(jīng)過(guò)打印、熱轉(zhuǎn)印、制板、焊接元件等流程就可以進(jìn)行硬件的調(diào)試了。硬件安裝前要再次確定系統(tǒng)總原理圖的正確性,首先用萬(wàn)用表檢查電路板是否有虛焊、漏焊、開(kāi)路或短路的情況;檢查無(wú)誤后給電路板提供+5V的直流電壓,觀(guān)察電路板上的電源指示燈是否正常工作,然后把單片機(jī)芯片、液晶顯示屏插入插槽中,下載線(xiàn)連接到電路板上,先下載簡(jiǎn)單可行的測(cè)試程序到單片機(jī)中,觀(guān)察芯片工作是否正常,驗(yàn)證顯示屏、按鍵、執(zhí)行部件能否正常工作,如果芯片正常工作則說(shuō)明系統(tǒng)板正常,不正常則說(shuō)明軟件或者系統(tǒng)硬件可能存在某些問(wèn)題,則需耐心查找原因,從根本上一一解決。
下載線(xiàn)的作用是把編譯好的單片機(jī)程序下載到目標(biāo)單片機(jī)中以及提供電源。用的下載程序軟件,STC_ISP.exe 。
5.2 軟件調(diào)試本系統(tǒng)使用的軟件開(kāi)發(fā)環(huán)境是keil。在keil中,源代碼的輸入,編譯通過(guò)之后就可以進(jìn)行軟件調(diào)試了。在軟件編程實(shí)現(xiàn)過(guò)程中,跟隨自己事先整理好的思路,先定好整體框架,然后對(duì)每個(gè)要實(shí)現(xiàn)的功能實(shí)現(xiàn)從簡(jiǎn)單開(kāi)始一步步到最終實(shí)現(xiàn)為止,最后把最終程序經(jīng)過(guò)編譯確認(rèn)無(wú)誤之后,把編譯產(chǎn)生的hex文件,下載到實(shí)物板中,軟硬件調(diào)試時(shí),首先要檢查電源指示燈是否亮,觀(guān)察LCD查看顯示是否正確,按鍵是否起到相應(yīng)的作用。調(diào)試過(guò)程中,要不斷分析問(wèn)題存在的可能原因,針對(duì)具體問(wèn)題找尋具體解決辦法,在硬件和軟件程序間不斷改進(jìn)調(diào)試,從簡(jiǎn)單開(kāi)始一步步進(jìn)行下去直到最終功能實(shí)現(xiàn)為止。
5.3 系統(tǒng)總體調(diào)試系統(tǒng)軟硬件聯(lián)合調(diào)試步驟與仿真調(diào)試步驟基本一致,確保電路硬件線(xiàn)路正常后,將可行程序下載到單片機(jī),驗(yàn)證顯示屏、按鍵、串口通信能否正常工作。 系統(tǒng)總體調(diào)試使用工具有:GSM模塊、單片機(jī)小系統(tǒng)板、SIM卡(插入GSM模塊),手機(jī)一部。調(diào)試步驟:
1、先把SIM卡插入GSM模塊插槽中,給GSM通電,觀(guān)察GSM模塊:電源指示燈(紅燈)亮,信號(hào)指示燈(綠燈)一亮一滅,亮與滅的時(shí)間相同,這時(shí)GSM模塊正在搜索信號(hào),等到信號(hào)指示燈閃一下,滅大約2-3秒時(shí),這時(shí)說(shuō)明我們的GSM已經(jīng)注冊(cè)上信號(hào),說(shuō)明模塊工作正常;
2、下載線(xiàn)連接上單片機(jī)最小系統(tǒng)板,按下開(kāi)關(guān)給單片機(jī)上電,電源指示燈亮,工作正常則下載程序后,斷開(kāi)下載線(xiàn)與單片機(jī)最小系統(tǒng)板的TXD/RXD接線(xiàn),將單片機(jī)的TXD/RXD腳、地線(xiàn)分別與GSM模塊的TXD/RXD腳、地線(xiàn)接上,給單片機(jī)斷電或復(fù)位一次,刷新串口,即可進(jìn)行調(diào)試工作。
3、從鍵盤(pán)輸入目標(biāo)手機(jī)號(hào)碼,觀(guān)察液晶顯示并記錄,按下?lián)芴?hào)鍵,等待檢查手機(jī)是否有新來(lái)電,記錄結(jié)果;
4、從目標(biāo)手機(jī)撥號(hào)進(jìn)來(lái),仔細(xì)觀(guān)察蜂鳴器是否提醒有來(lái)電,檢查液晶顯示并記錄,如有來(lái)電提醒顯示,則按下接聽(tīng)鍵觀(guān)察手機(jī)提示狀態(tài)、液晶顯示結(jié)果,并記錄,掛號(hào)鍵操作也是一樣檢測(cè);
5、按下發(fā)信息按鍵,等待,觀(guān)察手機(jī)是否有新信息以及液晶顯示并記錄;
6、用手機(jī)給模塊發(fā)送一條信息,檢查蜂鳴器是否有提醒,觀(guān)看液晶顯示并記錄。LCD602液晶顯示屏調(diào)試結(jié)果以及串口顯示結(jié)果見(jiàn)附錄。
表5-1 系統(tǒng)總體調(diào)試結(jié)果說(shuō)明
| | |
| | |
| | |
| | |
| | |
| | |
| | “AT+CMGS=15994473659hello!” |