劉成巖,孫晶華
(哈爾濱工程大學理學院,哈爾濱150001)
劉成巖(碩士生),主要研究領域為信號處理、數據通信;孫晶華(教授),主要研究領域為紅外技術與DSP信號處理。
EM310是一款兼容型GSM/GPRS通信模塊,在硬件上兼容MC55,相比后者更具有價格優勢,可用于遠程數據采集、遠程測試、無線POS機等領域。模塊內嵌TCP/IP協議棧,可以縮短產品開發上市時間。在價格敏感的終端上使用該模塊可有效降低制造成本,是華為公司主推的無線模塊。
PIC單片機性能穩定,品種眾多,在工業控制、儀器儀表、智能家電等領域得到廣泛應用。本文選用的PIC18F6621單片機具有2個串口,EM310模塊占用一個,另一個可與用戶其余系統進行通信。在單片機4 KB的RAM中開辟出了2 KB的數據緩沖區,保證了單片機與EM310進行GPRS數據通訊的需要。文中的系統具有結構簡單、接口方便的特點。
EM310模塊體積小巧,采用50引腳B2B接口方式,為外圍設備提供了以下接口:UART接口、SIM卡接口、音頻接口、電源接口、USB總線接口、網絡狀態指示接口等[1]。文中采用了其中的UART接口、SIM 卡接口、電源接口、網絡狀態指示接口,以及開關控制、模塊復位接口,實現了模塊的短信、電話(撥通與接聽,未進行語音通信)、GPRS傳輸等功能。PIC單片機通過2個普通I/O口完成EM310的開機、復位,通過串口2與EM310模塊進行AT指令通信,串口1接收外部系統的數據。系統構成如圖1所示。

圖1 系統框圖
串口1與不同的設備進行通信時,需根據情況決定是否需要RS232電平轉換電路。
模塊工作電壓為3.3~4.5 V,推薦工作電壓為4.0 V。由于EM310模塊在接通網絡的瞬間搜索網絡信號時,會提升發射功率。此時若電源供電能力不足,將造成系統電壓下降,模塊可能自動復位。因此電源設計采用了大電流開關電源集成電路,MIC29312是能適應3 A負載電流動態范圍變化的快速響應的穩壓器電路,可以保證系統的穩定供電。電源電路如圖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電源端均采用了容量較大的鉭電容濾波,以提高系統工作的穩定性。

圖2 電源電路

圖3 GSM模塊外圍電路
外圍電路參考華為公司的EM310模塊設計指南[2]。如圖3所示,圖中主要包括了網絡指示燈、啟動電路、復位電路。網絡指示燈以閃爍時間間隔的長短指示模塊的工作情況:開機、注冊網絡、發送數據、待機等。啟動、復位端接單片機的通用I/O口,單片機上電初始化完畢后給啟動端一個大于50 ms的低電平即可啟動模塊。單片機平時給復位端置高阻態,復位時輸出一個50 ms的低電平即可使模塊復位。圖中RXD0、TXD0腳分別接單片機的串口接收、發送端。由于采用的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在需要時可以與用戶其余系統進行通信。將串口1接收的數據用AT指令封裝后再經串口2發送給EM310,EM310將數據以GPRS或短信方式經GSM/GPRS網絡發送出去。實驗中可以將PC機發送給串口1的數據以GPRS方式穩定可靠地發送出去。
PIC單片機主要通過AT指令對EM310進行控制。EM310最大支持115 200 b/s的串口數據傳輸率,默認為9 600 b/s,可以根據需要通過AT指令進行設置。由于數據量不大,本文中采用的是9 600。
PIC單片機主要完成端口初始化,串口數據傳輸率設置,控制EM310開啟,通過 AT指令對EM310進行初始化、控制撥打電話等功能操作。單片機初始化程序如下:


單片機初始化完成后,需要控制端口完成EM310的開啟,程序如下:

開機完畢后,EM310模塊內部初始化、SIM卡注冊網絡都需要一段時間,這時可以加一個5 s左右的延時(與當地信號有關,需實驗獲得,由網絡指示燈的閃爍狀態可得知),或者是單片機通過串口2向EM310不斷發送“AT”測試指令,待接收到“OK”回復后,即可確認EM310開機初始化完畢。而注冊網絡的完成可以通過發送“AT+CREG?”指令獲得,注冊成功后可以得到無線模塊“+CREG:1,1”回復。此外,EM310開機成功后,建議通過發送“ATE0”關閉AT指令回顯功能,以利于單片機監控EM310執行AT指令后的狀態,簡化編程。EM310絕大多數AT指令都是以回車鍵結尾,而EM310執行完大多數AT指令后會向單片機返回一個“OK”,單片機可以據此判斷EM310對AT指令的執行情況。下面一段程序以發送測試指令“AT”為例,介紹單片機發送指令的方法。

EM310執行每一條指令的時間是不同的,有的很快,為ms級,而有的則很慢,需要十幾 s,如GPRS建立連接指令。因此,每發送完一條AT指令,應進入等待狀態,并不斷查詢串口接收緩沖區內的數據,若返回“OK”則證明指令執行完畢。查詢指令執行狀態程序如下,此段程序可放在發送AT指令后面:

單片機發送完一條指令后,即不斷查詢f1值,進入等待狀態。當f1值為1時即證明EM310模塊執行指令完畢,再進行下一步操作。
對EM310的電話、短信、GPRS功能均進行了驗證。EM310模塊由PIC單片機控制開機后,向用戶手機發送短信、撥打電話。在與網絡連接時,網絡指示燈處于常亮狀態。GPRS傳輸實驗中,PC機與PIC單片機的串口1經電平轉換芯片后相連。PC機首先通過網絡調試助手軟件建立服務器,獲得本機參數后,經PIC單片機發送給EM310,并等待EM310建立GPRS連接。連接成功后PC機通過串口調試助手向PIC單片機發送每幀512個字節的數據。PIC單片機將接收到的數據放在數據緩沖區內,將數據按AT指令格式打包后經串口2發送給 EM310。最后EM310經GPRS網絡將數據發送到服務器(PC)上,PC機通過網絡調試助手即可看到接收到的數據,與串口調試助手發送的數據進行比較,檢查可靠性。實驗中誤碼漏碼情況極少發生。
該方案可以滿足用戶在使用EM310模塊過程中對EM310進行評估和評價。由于保留了一個外部通信串口,可以為客戶系統方便地加上GSM/GPRS功能,方便二次開發。結合手冊,根據文中給出的方法,可以很快進行相應功能開發。本文介紹的電路已應用于倉庫監控系統中,可以在外人入侵時向用戶手機發出報警短信并重復撥打電話進行提醒,并將串口JPEG攝像頭的監控圖像(靜態圖像)發到網絡服務器上。
[1]華為技術有限公司.EM310產品概述,2009.
[2]華為技術有限公司.EM310模塊設計指南,2009.