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