基于Q2403A的單片機(jī)短消息收發(fā)系統(tǒng)
基于GSM短消息的業(yè)務(wù)不需要建立撥號(hào)連接,只需把待發(fā)的消息加上目的地址發(fā)送至短消息中心,再由短消息中心轉(zhuǎn)發(fā)到最終目標(biāo)。GSM 短消息業(yè)務(wù)以其連接簡單、費(fèi)用低廉、覆蓋范圍廣、實(shí)現(xiàn)方便等優(yōu)點(diǎn)得到了廣泛的應(yīng)用。運(yùn)用 GSM 短消息實(shí)現(xiàn)遠(yuǎn)程測控的可靠性較高、信號(hào)傳播距離遠(yuǎn)、覆蓋面積廣,并且可以節(jié)省建網(wǎng)初期的巨額投資。
本文對(duì)基于GSM短消息收發(fā)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)作了具體描述,給出了系統(tǒng)的軟硬件設(shè)計(jì)方案,對(duì)主要硬件,即GSM模塊Q2403A 和8051單片機(jī)作了重點(diǎn)介紹。給出了系統(tǒng)的軟件設(shè)計(jì),包括PC與單片機(jī)通信部分和短消息收發(fā)部分。最后實(shí)現(xiàn)系統(tǒng)監(jiān)控功能。
系統(tǒng)硬件實(shí)現(xiàn)
總體系統(tǒng)結(jié)構(gòu)
該系統(tǒng)硬件主要由8051單片機(jī)擴(kuò)展電路、Q2403A手機(jī)模塊、RS-232總線接口電路、電源轉(zhuǎn)換器等部分組成。圖1為系統(tǒng)結(jié)構(gòu)框圖。
圖1 系統(tǒng)結(jié)構(gòu)框圖
其中,電源轉(zhuǎn)換器將PC端口的12V電壓轉(zhuǎn)換成3.6V和5V穩(wěn)壓,使系統(tǒng)中的芯片處于正常工作狀態(tài)。RS-232總線接口電路包括電平轉(zhuǎn)換和串口擴(kuò)展電路。8051單片機(jī)實(shí)現(xiàn)存儲(chǔ)器擴(kuò)展之后,通過RS-232總線接口電路與P
單片機(jī)擴(kuò)展電路設(shè)計(jì)
MCS-51單片機(jī)的內(nèi)部雖已集成了很多資源,這些資源都是折中配置的,片內(nèi)程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器的容量都不大,并行I/O端口的數(shù)量也不是很多。此外,在有些應(yīng)用中,片內(nèi)定時(shí)器、中斷、串行口等也顯得不足。因此,根據(jù)需要,本系統(tǒng)選用8051單片機(jī)并對(duì)其進(jìn)行擴(kuò)展。
讀寫存儲(chǔ)器擴(kuò)展
本文選用SRAM芯片6264。容量為8K8bit。其地址線有13條,即A12~A0。8條數(shù)據(jù)線D7~D0。再加上其他引腳,總共有28個(gè)引腳,其中有2個(gè)標(biāo)注為Nc的空引腳。把Nc引腳分別作為地址線A13~A14使用,就是容量為16k8bit和32k8bit的SRAM存儲(chǔ)芯片。
接口方案采用地址完全譯碼設(shè)計(jì)。 使用74138譯碼器為擴(kuò)展的存儲(chǔ)器分配地址空間。給6264數(shù)據(jù)存儲(chǔ)器分配惟一的地址空間是:0000H~1FFFH。
只讀存儲(chǔ)器擴(kuò)展
本文選用AT24C02進(jìn)行數(shù)據(jù)存儲(chǔ)。它使用兩根信號(hào)線進(jìn)行數(shù)據(jù)傳輸,一根是串行數(shù)據(jù)線(SDA),另一根是串行時(shí)鐘線(SCL)。
RS-232接口電路設(shè)計(jì)
MAX202是單電源、雙RS-232發(fā)送/接收器,適用于各種EIA-232E和V.28/V.24的通信接口。MAX202芯片有一個(gè)電壓轉(zhuǎn)換器,可以把輸入的+5V電源轉(zhuǎn)換成RS-232C輸出所需的10V電壓,所以,用此芯片接口的串行通信系統(tǒng)只要單一的+5V即可。
本文選用通用異步接收/發(fā)送器MAX3100對(duì)單片機(jī)串行口進(jìn)行擴(kuò)展,將單片機(jī)與RS-232總線相連。
MAX3100供電電源范圍寬、功耗低、在+2.7V~+5.5V的電源中僅吸收0.5mA的電流,具有零功耗的停機(jī)模式,并能由接收信號(hào)喚醒,使用SPI/Microwire接口與主微控制器進(jìn)行通信。MAX3100不僅適合于速率高達(dá)230kbps的RS-232和RS-485數(shù)據(jù)鏈路,而且支持速率為2.4kbps~115.2kbps的紅外線數(shù)據(jù)協(xié)會(huì)(IrDA)SIR格式,在基于微控制器的小型系統(tǒng)設(shè)計(jì)中具有良好的應(yīng)用前景。圖2為串口擴(kuò)展電路圖。
圖2 串口擴(kuò)展電路圖
電源部分
由于PC端口提供的電壓為12V, 系統(tǒng)中的芯片有3.6V和5V兩種。因此,電源部分采用美國國家半導(dǎo)體公司輸出電壓可調(diào)的三端集成穩(wěn)壓芯片LM1085-ADJ。
LM1085是一款單芯片集成的電壓轉(zhuǎn)換器。提供3 A電流輸出,具備過流保護(hù),過溫保護(hù),有可靠的工作性能、較高的工作效率,能夠?yàn)樾酒峁┓€(wěn)定的3.6V、5V電壓,為芯片工作提供了強(qiáng)有力的保證。圖3為電源電路原理圖。
圖3電源電路原理圖
手機(jī)模塊部分
Q2403A GSM/GPRS模塊支持雙頻EGSM/GPRS 900MHz/1800MHz模式,支持AT指令,短消息功能完備。Q2403A模塊具有60引腳的通用接口,非常容易集成到應(yīng)用產(chǎn)品中;具有SIM卡確認(rèn)、供電、時(shí)鐘、復(fù)位及I/O的3V SIM卡接口,包括SIMVCC、SIMRST、SIMDATA、SIMCLK和SIMPRES等。另外,模塊提供一個(gè)符合V24協(xié)議的6線串行通信接口,包括TX、RX、RTS、CTS、DTR、DSR;同時(shí)提供DCD和RI信號(hào)接口、上電信號(hào)PowerON/OFF和復(fù)位信號(hào)RST。模塊正常工作要求提供兩路電源,其中,VBATT提供給RF部分,電壓范圍為3.3V~4.5V,最大功率為2 W;VDD提供給基帶部分,電壓范圍為3.1V~4.5V,最大功率為0.5W。圖4為手機(jī)模塊與SIM卡外圍電路設(shè)計(jì)。
圖4 手機(jī)模塊與SIM卡外圍電路圖
系統(tǒng)軟件設(shè)計(jì)
主程序流程
主程序主要負(fù)責(zé)系統(tǒng)的初始化,包括單片機(jī)時(shí)鐘設(shè)置、端口工作方式設(shè)置、串口設(shè)置(波特率、中斷允許等)、默認(rèn)系統(tǒng)數(shù)據(jù)的恢復(fù)(如時(shí)間設(shè)置、標(biāo)志位清零等)、GPRS模塊的初始化、中斷初始化等。然后反復(fù)查詢SIM卡網(wǎng)絡(luò)注冊情況,直到注冊成功。最后進(jìn)入低功耗模式,等待中斷。流程如圖5所示。
圖5 系統(tǒng)主程序流程
PC與單片機(jī)通信部分
該部分包括機(jī)組工作數(shù)據(jù)的采集和反向控制命令的發(fā)送,由串口RXD/TXD完成。
PC控制器通過RS-232總線傳送多幀數(shù)據(jù),數(shù)據(jù)內(nèi)容包括機(jī)組運(yùn)行狀態(tài)、全部溫度數(shù)據(jù)和輸入/輸出狀態(tài)信息,以及故障信息等。短消息控制器內(nèi)的單片機(jī)在串口RXD/TXD接收中斷過程中判斷并處理接收到的數(shù)據(jù)。
短消息收發(fā)
本部分要實(shí)現(xiàn)的功能有:接收控制方發(fā)來的短消息并提取有效命令詞、組裝控制幀;采集到緊急故障信息時(shí),或是需要反饋執(zhí)行結(jié)果時(shí),向控制方發(fā)送短消息。采用中斷方式接收來自Q2403A模塊的信息。圖6為串口RX/TX的接收和發(fā)送中斷流程。
圖6 串口RX/TX接收/發(fā)送中斷流程
Q2403A支持的功能相當(dāng)完備,本系統(tǒng)主要使用了短消息功能。單片機(jī)與Q2403A模塊間主要通過串口RX/TX進(jìn)行通信,以AT命令來實(shí)現(xiàn)接收及發(fā)送的功能。用到的AT命令主要有:查詢注冊狀態(tài)AT+CREG;短消息列表AT+CMGL;短消息發(fā)送AT+CMGS;短消息刪除AT+CMGD。
結(jié)語
本文在提出總體設(shè)計(jì)方案的基礎(chǔ)上,完成了系統(tǒng)的硬件和軟件設(shè)計(jì)、應(yīng)用程序的編寫及調(diào)試,經(jīng)實(shí)際運(yùn)行驗(yàn)證,取得了滿意的效果。就目前的測試結(jié)果而言,結(jié)合遠(yuǎn)程監(jiān)控的優(yōu)勢,具有較強(qiáng)的實(shí)用性。對(duì)軟硬件作適當(dāng)擴(kuò)充修改后,還可應(yīng)用于環(huán)境監(jiān)測、石油開采設(shè)備的監(jiān)測與控制、農(nóng)作物生長狀況的監(jiān)測、交通管理系統(tǒng)及安防系統(tǒng)等諸多領(lǐng)域。
參考文獻(xiàn):
1. 李華,等.MCS51系列單片機(jī)實(shí)用接口技術(shù).第9版.北京:北京航空航天大學(xué)出版社,2002
2. 馬中梅,籍順心,張凱等.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì).北京航空航天大學(xué)出版社,1999
3. 龔建偉,等.Visual C++/Turbo C串口通信編程實(shí)踐[M].北京:電子工業(yè)出版社,2004
評(píng)論