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