上海電力學(xué)院(上海 200090) 許 飛 耿新民 賈振堂
近年來,隨著國家電網(wǎng)改造工程的不斷推進(jìn),傳統(tǒng)的人工抄表不僅費(fèi)時(shí)費(fèi)力而且不利于用電波峰波谷的統(tǒng)計(jì),越來越不能滿足實(shí)現(xiàn)信息化、自動(dòng)化的先進(jìn)電力企業(yè)管理的需要。一種基于嵌入式系統(tǒng)的無線通信模塊的設(shè)計(jì)與實(shí)現(xiàn),可廣泛應(yīng)用于電能量遠(yuǎn)程抄表系統(tǒng)中,它可以將電表中采集來的數(shù)據(jù)通過無線網(wǎng)絡(luò)的方式發(fā)送到數(shù)據(jù)中心,并接收和執(zhí)行數(shù)據(jù)中心發(fā)出的指令。
GPRS網(wǎng)絡(luò)是在現(xiàn)有的GSM網(wǎng)絡(luò)中增加GGSN和SGSN來實(shí)現(xiàn)的,使得用戶能夠在端到端方式下發(fā)送和接收數(shù)據(jù)。用戶利用GSM基站通信,GPRS分組從基站發(fā)送到GPRS服務(wù)支持節(jié)點(diǎn)SGSN,SGSN再與網(wǎng)關(guān)支持節(jié)點(diǎn)GGSN進(jìn)行通信。GGSN對(duì)分組數(shù)據(jù)進(jìn)行相應(yīng)的處理后再發(fā)送到目的網(wǎng)絡(luò),如PDN或Internet[1]。來自Internet標(biāo)識(shí)有移動(dòng)臺(tái)地址的IP數(shù)據(jù)報(bào)包由GGSN接收后,再轉(zhuǎn)發(fā)給SGSN,繼而傳送到遠(yuǎn)方的數(shù)據(jù)中心。
GPRS無線通信模塊要實(shí)現(xiàn)利用GPRS網(wǎng)絡(luò)實(shí)現(xiàn)與數(shù)據(jù)中心的上位機(jī)進(jìn)行全雙工數(shù)據(jù)通信,必須要附著GPRS網(wǎng)絡(luò),登陸上Internet與連接其上的PC機(jī)建立數(shù)據(jù)鏈路并進(jìn)行數(shù)據(jù)傳輸。欲完成這一過程必須實(shí)現(xiàn)GPRS的附著和分組數(shù)據(jù)協(xié)議PDP上下文的激活。通過GPRS的附著登記用戶信息,激活過程主要是激活I(lǐng)P協(xié)議,保證數(shù)據(jù)能以IP數(shù)據(jù)報(bào)的形式進(jìn)行傳送。
基于GPRS的嵌入式無線通信模塊主要由微控制器、GPRS無線收發(fā)器、存儲(chǔ)器、電源、串行接口等組成,其硬件組成框圖見圖1。
圖1 GPRS無線通信模塊硬件組成框圖
經(jīng)調(diào)研及性價(jià)比的比較我們選用的GPRS無線收發(fā)器是西門子的MC55,這款無線收發(fā)模塊是支持900/1800/1900MHZ三個(gè)頻段的三頻模塊,是帶有GSM/GPRS全套語音和數(shù)據(jù)功能的先進(jìn)無線模塊。其內(nèi)嵌TCP/IP協(xié)議棧,支持TCP,UDP,HTTP,F(xiàn)TP,SMTP,POP3等協(xié)議,省去了系統(tǒng)的TCP/IP協(xié)議處理時(shí)間。采用3.3V~4.8V電壓供電,以AT命令方式實(shí)現(xiàn)數(shù)據(jù)傳輸,每次傳輸都會(huì)有結(jié)果狀態(tài)返回,不需要用戶切換狀態(tài)。MC55提供兩個(gè)全雙工串口,可以實(shí)現(xiàn)兩個(gè)TCP通道的同時(shí)傳輸,GPRS與短信或語音狀態(tài)自動(dòng)切換。
GPRS無線通信模塊的微控制器選用Atmel公司的AT89C51RC,它含有32KB的 Flash程序存儲(chǔ)器,512字節(jié)的片內(nèi)RAM,32線的可編程 I/O 口(P0、P1、P2和 P3),3個(gè)可編程定時(shí)器,硬件看門狗定時(shí)器WDT。兩個(gè)可編程的UART串行通信口,工作電源為4.0~5.5V,最高工作頻率為33MHZ[2]。微控制器 AT89C51RC與GPRS無線收發(fā)器MC55的硬件連接原理圖見圖2。
圖2 微控制器與GPRS無線收發(fā)器硬件連接原理圖
MC55與AT89C51RC間的數(shù)據(jù)通信主要通過端口TXD0與TXD、RXD0與RXD之間的數(shù)據(jù)傳輸來完成。其中GPRS無線收發(fā)芯片MC55上的TXD0口用于接收從單片機(jī)AT89C51RC傳來的數(shù)據(jù),而單片機(jī)上的TXD端口用于向GPRS無線收發(fā)芯片傳送數(shù)據(jù)。GPRS無線收發(fā)芯片上的RXD0口用于向單片機(jī)發(fā)送數(shù)據(jù),單片機(jī)的RXD口則用于接收從GPRS無線收發(fā)芯片傳輸來的數(shù)據(jù)。GPRS無線收發(fā)芯片MC55上的引腳IGT主要用于點(diǎn)火復(fù)位,其作用是做GPRS無線收發(fā)芯片的一個(gè)復(fù)位轉(zhuǎn)換[3]。在GPRS無線收發(fā)芯片MC55的基帶處理器上有一個(gè)綜合SIM接口,它直接接線到主機(jī)接口(端到端連接器),用于連接到外部的SIM卡座。這里接的 SIM卡有6個(gè)引腳 CCVCC、CCCLK、CCIO、CCRST、CCIN以及CCGND分別對(duì)應(yīng)接在MC55的第1到第6個(gè)引腳上。GPRS無線收發(fā)芯片的連接器和SIM卡座的引腳之間的距離不要超過20 cm,為了達(dá)到最佳的效果,在SIM支架下敷設(shè)一層銅隔離網(wǎng),該層敷銅與SIM卡的CCGND引腳相連。
為實(shí)現(xiàn)掉電數(shù)據(jù)保護(hù)功能,引入非易失存儲(chǔ)器,在電能量遠(yuǎn)抄系統(tǒng)中可以存儲(chǔ)戶名、戶號(hào)、電表編號(hào)、實(shí)時(shí)電量、歷史電量及相關(guān)設(shè)置參數(shù)。通過對(duì)比各種非易失存儲(chǔ)器的讀寫速度及編程的方便性,選定存儲(chǔ)器FM3130作為系統(tǒng)的存儲(chǔ)設(shè)備,同時(shí)它還能提供實(shí)時(shí)時(shí)鐘功能。FM3130中的FRAM大小為64KB,提供了有效的無限制寫入次數(shù),寫操作無任何延時(shí),可以像RAM一樣被隨機(jī)快速讀寫,且掉電后數(shù)據(jù)不丟失,數(shù)據(jù)可保存十年[4]。
AT89C51RC單片機(jī)具有兩個(gè)全雙工UART串行口,一個(gè)與GPRS無線收發(fā)器MC55通信,另一個(gè)用來與外部需要進(jìn)行數(shù)據(jù)傳輸?shù)慕K端設(shè)備相連。為了增強(qiáng)與外部終端設(shè)備連接的通用性,還提供了RS-485或RS-232兩種串行通信接口方式。因?yàn)锳T89C51RC串行口電平是TTL電平,所以需要將TTL電平信號(hào)轉(zhuǎn)換為RS-485或RS-232總線電平信號(hào)。另外,RS-232串行接口可與PC機(jī)直接相連,這樣就可在PC機(jī)上通過串行口發(fā)布AT指令對(duì)MC55模塊進(jìn)行單獨(dú)調(diào)試。
GPRS無線通信模塊中的單片機(jī)AT89C51RC工作電源為4.0V~5.5V,GPRS無線收發(fā)器MC55的工作電源為3.3~4.8V。電源模塊將工頻交流電經(jīng)過處理后,為單片機(jī)AT89C51RC和GPRS無線收發(fā)器MC55提供合適的電源。同時(shí)為了提高工作的可靠性,也可同時(shí)裝設(shè)鋰電池,以實(shí)現(xiàn)電源不間斷供電。
軟件設(shè)計(jì)主要完成GPRS無線收發(fā)芯片MC55與單片機(jī)AT89C51RC之間的通信,兩者間需要定義統(tǒng)一的通信協(xié)議,規(guī)定數(shù)據(jù)傳輸?shù)母袷健Mㄟ^AT指令實(shí)現(xiàn)GPRS及數(shù)據(jù)傳輸。單片機(jī)AT89C51RC利用AT指令完成與GPRS無線收發(fā)芯片MC55間數(shù)據(jù)傳輸?shù)牟襟E如下:
AT^SICS=0,CONTYPE,GPRS0/*選擇連接的類型為GPRS0*/
AT^SICS=0,DNS1,“*.*.*.*”/*設(shè)置DNS服務(wù)器地址*/
AT^SICS=0,PASSWD,T-D1 /*設(shè)置訪問GPRS網(wǎng)絡(luò)的密碼*/
AT^SICS=0,APN,“INTERNET.T-D1.DE” /*設(shè)置訪問節(jié)點(diǎn)APN*/
AT^SISS=1,SRVTYPE,SOCKET /*設(shè)置接口服務(wù)類型*/
AT^SISS=1,CONID,0 /*設(shè)置連接規(guī)范0*/
AT^SISS=1,ADDRESS,“SOCKTCP://*.*.*.*:****”/*客戶端規(guī)范包含遠(yuǎn)方主站的IP地址和TCP端口號(hào)*/
AT^SISO=1 /*打開TCP連接*/
OK /*反饋信息:打開成功*/
AT^SISW=1,20 /*寫入數(shù)據(jù),通道1發(fā)送20字節(jié)數(shù)據(jù)*/
SISW:1,20 /*反饋信息:可發(fā)送20字節(jié)數(shù)據(jù)*/
******************** /*輸入要發(fā)送的20字節(jié)數(shù)據(jù)*/
AT^SISR=1,100 /*讀入數(shù)據(jù),發(fā)送要接收的數(shù)據(jù)長度為100字節(jié)*/
SISR:1,90 /*反饋信息:可發(fā)送的數(shù)據(jù)長度為90字節(jié)*/
AT^SISC=1 /*關(guān)閉連接*/
OK /*反饋信息:關(guān)閉成功*/
為了方便調(diào)試、維護(hù)和移植,GPRS無線通信模塊軟件設(shè)計(jì)遵循模塊化設(shè)計(jì)思想,采用C語言編程。GPRS無線通信模塊軟件設(shè)計(jì)主要分為系統(tǒng)初始化、建立連接、數(shù)據(jù)傳輸、斷開連接四部分,系統(tǒng)程序流程圖如圖3所示:
圖3 系統(tǒng)程序流程圖
程序首先對(duì)系統(tǒng)軟硬件進(jìn)行初始化,單片機(jī)初始化部分將AT89C51RC串口設(shè)置為工作方式1,即8位數(shù)據(jù)位和1位停止位,定時(shí)器選用定時(shí)器1的工作方式2即8位自動(dòng)重裝定時(shí)器,波特率設(shè)為9600 bps(晶振頻率為11.0592 MHz)。然后初始化軟件緩沖區(qū)和各種標(biāo)志信息。GPRS無線通信模塊與主站間通信是先用AT指令初始化無線收發(fā)器MC55芯片并建立TCP連接,TCP連接建立后,MC55進(jìn)入數(shù)據(jù)傳輸模式,可以直接傳送數(shù)據(jù)。一方面,MC55接受主站服務(wù)器發(fā)來的命令或數(shù)據(jù)并通過串行口發(fā)給單片機(jī)AT89C51RC,單片機(jī)AT89C51RC根據(jù)主站的命令進(jìn)行相應(yīng)的處理;另一方面,單片機(jī)AT89C51RC通過RS-232或RS-485串行口接受外部終端發(fā)來的數(shù)據(jù)或請(qǐng)求并通過另一個(gè)串行口發(fā)給MC55,MC55就會(huì)把數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的IP地址的PC機(jī)。MC55芯片在接入網(wǎng)絡(luò)后,在設(shè)定的周期內(nèi)無數(shù)據(jù)通信時(shí),由單片機(jī)控制MC55芯片向主站發(fā)送心跳信息,以保持GPRS網(wǎng)絡(luò)的連接,主站收到心跳信息后,回應(yīng)應(yīng)答信號(hào),數(shù)據(jù)傳輸結(jié)束后斷開連接。
基于GPRS的無線通信由于具有永遠(yuǎn)在線、自由切換、傳輸速率高、計(jì)費(fèi)靈活便宜等優(yōu)點(diǎn)而有著極為廣泛的應(yīng)用。本文在介紹GPRS網(wǎng)絡(luò)應(yīng)用技術(shù)的基礎(chǔ)上,設(shè)計(jì)的基于單片機(jī)和無線收發(fā)芯片的GPRS無線通信模塊可以將標(biāo)準(zhǔn)串行口數(shù)據(jù)通過GPRS網(wǎng)絡(luò)連入互聯(lián)網(wǎng),在遠(yuǎn)端電能表和主站之間建立了一條透明的傳輸通道,可廣泛應(yīng)用于電能量遠(yuǎn)程抄表系統(tǒng),實(shí)現(xiàn)遠(yuǎn)方終端設(shè)備和主站間信息的實(shí)時(shí)交互。
[1] 劉寧,馮偉,陸林生.基于GPRS的無線數(shù)據(jù)傳輸終端的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2008(1):25~27
[2] 王幸之,鐘愛琴,王雷,王閃.AT89系列單片機(jī)原理與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2004
[3] 白延敏.51單片機(jī)典型系統(tǒng)開發(fā)實(shí)例精講[M].北京:電子工業(yè)出版社,2009
[4] 張齊,杜群貴.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)-基于C語言[M].北京:電子工業(yè)出版社,2004.