劉成巖,孫晶華
(哈爾濱工程大學理學院,哈爾濱150001)
劉成巖(碩士生),主要研究領域為信號處理、數(shù)據(jù)通信;孫晶華(教授),主要研究領域為紅外技術與DSP信號處理。
EM310是一款兼容型GSM/GPRS通信模塊,在硬件上兼容MC55,相比后者更具有價格優(yōu)勢,可用于遠程數(shù)據(jù)采集、遠程測試、無線POS機等領域。模塊內(nèi)嵌TCP/IP協(xié)議棧,可以縮短產(chǎn)品開發(fā)上市時間。在價格敏感的終端上使用該模塊可有效降低制造成本,是華為公司主推的無線模塊。
PIC單片機性能穩(wěn)定,品種眾多,在工業(yè)控制、儀器儀表、智能家電等領域得到廣泛應用。本文選用的PIC18F6621單片機具有2個串口,EM310模塊占用一個,另一個可與用戶其余系統(tǒng)進行通信。在單片機4 KB的RAM中開辟出了2 KB的數(shù)據(jù)緩沖區(qū),保證了單片機與EM310進行GPRS數(shù)據(jù)通訊的需要。文中的系統(tǒng)具有結(jié)構(gòu)簡單、接口方便的特點。
EM310模塊體積小巧,采用50引腳B2B接口方式,為外圍設備提供了以下接口:UART接口、SIM卡接口、音頻接口、電源接口、USB總線接口、網(wǎng)絡狀態(tài)指示接口等[1]。文中采用了其中的UART接口、SIM 卡接口、電源接口、網(wǎng)絡狀態(tài)指示接口,以及開關控制、模塊復位接口,實現(xiàn)了模塊的短信、電話(撥通與接聽,未進行語音通信)、GPRS傳輸?shù)裙δ?。PIC單片機通過2個普通I/O口完成EM310的開機、復位,通過串口2與EM310模塊進行AT指令通信,串口1接收外部系統(tǒng)的數(shù)據(jù)。系統(tǒng)構(gòu)成如圖1所示。
圖1 系統(tǒng)框圖
串口1與不同的設備進行通信時,需根據(jù)情況決定是否需要RS232電平轉(zhuǎn)換電路。
模塊工作電壓為3.3~4.5 V,推薦工作電壓為4.0 V。由于EM310模塊在接通網(wǎng)絡的瞬間搜索網(wǎng)絡信號時,會提升發(fā)射功率。此時若電源供電能力不足,將造成系統(tǒng)電壓下降,模塊可能自動復位。因此電源設計采用了大電流開關電源集成電路,MIC29312是能適應3 A負載電流動態(tài)范圍變化的快速響應的穩(wěn)壓器電路,可以保證系統(tǒng)的穩(wěn)定供電。電源電路如圖2所示。MIC29312電路4腳的輸出電壓由R1與R2的比值決定,關系式為Vout=1.240(1+R1/R2)V,取 R1=47 KΩ,R2=20 K Ω時 ,輸出為4.154 V,為EM310模塊供電。5 V電源由外部開關電源輸入得到,PIC18F6621直接采用5 V電源。在5 V及4 V電源端均采用了容量較大的鉭電容濾波,以提高系統(tǒng)工作的穩(wěn)定性。
圖2 電源電路
圖3 GSM模塊外圍電路
外圍電路參考華為公司的EM310模塊設計指南[2]。如圖3所示,圖中主要包括了網(wǎng)絡指示燈、啟動電路、復位電路。網(wǎng)絡指示燈以閃爍時間間隔的長短指示模塊的工作情況:開機、注冊網(wǎng)絡、發(fā)送數(shù)據(jù)、待機等。啟動、復位端接單片機的通用I/O口,單片機上電初始化完畢后給啟動端一個大于50 ms的低電平即可啟動模塊。單片機平時給復位端置高阻態(tài),復位時輸出一個50 ms的低電平即可使模塊復位。圖中RXD0、TXD0腳分別接單片機的串口接收、發(fā)送端。由于采用的PIC單片機為5 V供電方式,按手冊要求在 TXD0端接了一個 6.2 kΩ的電阻。
EM310模塊基帶處理器集成了SIM卡接口電路,通過PCB走線連到了B2B連接器上(圖3中的1~6腳),為外部SIM卡提供接口信號。圖4為SIM卡電路,其中CCVCC、CCRST 、DCLK 、CCGND 、CCIO 、CCIN 分別對應圖3中 B2B連接器(EM310)的 2、4、1、6、3、5 腳。
圖4 SⅠM卡電路
單片機與EM310模塊的接口電路比較簡單,占用了串口2。串口1在需要時可以與用戶其余系統(tǒng)進行通信。將串口1接收的數(shù)據(jù)用AT指令封裝后再經(jīng)串口2發(fā)送給EM310,EM310將數(shù)據(jù)以GPRS或短信方式經(jīng)GSM/GPRS網(wǎng)絡發(fā)送出去。實驗中可以將PC機發(fā)送給串口1的數(shù)據(jù)以GPRS方式穩(wěn)定可靠地發(fā)送出去。
PIC單片機主要通過AT指令對EM310進行控制。EM310最大支持115 200 b/s的串口數(shù)據(jù)傳輸率,默認為9 600 b/s,可以根據(jù)需要通過AT指令進行設置。由于數(shù)據(jù)量不大,本文中采用的是9 600。
PIC單片機主要完成端口初始化,串口數(shù)據(jù)傳輸率設置,控制EM310開啟,通過 AT指令對EM310進行初始化、控制撥打電話等功能操作。單片機初始化程序如下:
單片機初始化完成后,需要控制端口完成EM310的開啟,程序如下:
開機完畢后,EM310模塊內(nèi)部初始化、SIM卡注冊網(wǎng)絡都需要一段時間,這時可以加一個5 s左右的延時(與當?shù)匦盘栍嘘P,需實驗獲得,由網(wǎng)絡指示燈的閃爍狀態(tài)可得知),或者是單片機通過串口2向EM310不斷發(fā)送“AT”測試指令,待接收到“OK”回復后,即可確認EM310開機初始化完畢。而注冊網(wǎng)絡的完成可以通過發(fā)送“AT+CREG?”指令獲得,注冊成功后可以得到無線模塊“+CREG:1,1”回復。此外,EM310開機成功后,建議通過發(fā)送“ATE0”關閉AT指令回顯功能,以利于單片機監(jiān)控EM310執(zhí)行AT指令后的狀態(tài),簡化編程。EM310絕大多數(shù)AT指令都是以回車鍵結(jié)尾,而EM310執(zhí)行完大多數(shù)AT指令后會向單片機返回一個“OK”,單片機可以據(jù)此判斷EM310對AT指令的執(zhí)行情況。下面一段程序以發(fā)送測試指令“AT”為例,介紹單片機發(fā)送指令的方法。
EM310執(zhí)行每一條指令的時間是不同的,有的很快,為ms級,而有的則很慢,需要十幾 s,如GPRS建立連接指令。因此,每發(fā)送完一條AT指令,應進入等待狀態(tài),并不斷查詢串口接收緩沖區(qū)內(nèi)的數(shù)據(jù),若返回“OK”則證明指令執(zhí)行完畢。查詢指令執(zhí)行狀態(tài)程序如下,此段程序可放在發(fā)送AT指令后面:
單片機發(fā)送完一條指令后,即不斷查詢f1值,進入等待狀態(tài)。當f1值為1時即證明EM310模塊執(zhí)行指令完畢,再進行下一步操作。
對EM310的電話、短信、GPRS功能均進行了驗證。EM310模塊由PIC單片機控制開機后,向用戶手機發(fā)送短信、撥打電話。在與網(wǎng)絡連接時,網(wǎng)絡指示燈處于常亮狀態(tài)。GPRS傳輸實驗中,PC機與PIC單片機的串口1經(jīng)電平轉(zhuǎn)換芯片后相連。PC機首先通過網(wǎng)絡調(diào)試助手軟件建立服務器,獲得本機參數(shù)后,經(jīng)PIC單片機發(fā)送給EM310,并等待EM310建立GPRS連接。連接成功后PC機通過串口調(diào)試助手向PIC單片機發(fā)送每幀512個字節(jié)的數(shù)據(jù)。PIC單片機將接收到的數(shù)據(jù)放在數(shù)據(jù)緩沖區(qū)內(nèi),將數(shù)據(jù)按AT指令格式打包后經(jīng)串口2發(fā)送給 EM310。最后EM310經(jīng)GPRS網(wǎng)絡將數(shù)據(jù)發(fā)送到服務器(PC)上,PC機通過網(wǎng)絡調(diào)試助手即可看到接收到的數(shù)據(jù),與串口調(diào)試助手發(fā)送的數(shù)據(jù)進行比較,檢查可靠性。實驗中誤碼漏碼情況極少發(fā)生。
該方案可以滿足用戶在使用EM310模塊過程中對EM310進行評估和評價。由于保留了一個外部通信串口,可以為客戶系統(tǒng)方便地加上GSM/GPRS功能,方便二次開發(fā)。結(jié)合手冊,根據(jù)文中給出的方法,可以很快進行相應功能開發(fā)。本文介紹的電路已應用于倉庫監(jiān)控系統(tǒng)中,可以在外人入侵時向用戶手機發(fā)出報警短信并重復撥打電話進行提醒,并將串口JPEG攝像頭的監(jiān)控圖像(靜態(tài)圖像)發(fā)到網(wǎng)絡服務器上。
[1]華為技術有限公司.EM310產(chǎn)品概述,2009.
[2]華為技術有限公司.EM310模塊設計指南,2009.