使用單片機實現(xiàn)GPRS通信小系統(tǒng)的研究
0 引 言
gprs(通用分組無線電業(yè)務(wù))是利用包交換的概念發(fā)展的一套無線傳輸方式。gprs網(wǎng)絡(luò)是基于現(xiàn)有的gsm(全球移動通信系統(tǒng))網(wǎng)絡(luò)實現(xiàn)的。在現(xiàn)有的gsm網(wǎng)絡(luò)中需要增加一些節(jié)點,如ggsn(gprs網(wǎng)關(guān)支持節(jié)點)和sgsn(gprs服務(wù)支持節(jié)點)。sgsn的主要作用是記錄移動終端的當前位置信息,并且在移動終端與ggsn之間完成移動分組數(shù)據(jù)的發(fā)送和接收。ggsn主要起網(wǎng)關(guān)作用,可以與多種不同的數(shù)據(jù)網(wǎng)絡(luò)連接,如isdn(綜合業(yè)務(wù)數(shù)字網(wǎng))、pspdn(包交換公用數(shù)據(jù)網(wǎng))和lan(局域網(wǎng))等。ggsn可以把gsm網(wǎng)中的gprs分組數(shù)據(jù)包進行協(xié)議轉(zhuǎn)換,從而把這些分組數(shù)據(jù)包傳送到遠端的tcp/ip或x.25網(wǎng)絡(luò)。
gprs網(wǎng)不但具有覆蓋范圍廣、數(shù)據(jù)傳輸速度快、通信質(zhì)量高、永遠在線和按流量計費等優(yōu)點,而且其本身就是一個分組型數(shù)據(jù)網(wǎng),支持tcp/ip協(xié)議,可以直接與internet互通。因此,cprs在無線上網(wǎng)、環(huán)境監(jiān)測便攜型、交通監(jiān)控、移動辦公等行業(yè)中具有無可比擬的性價比優(yōu)勢。1 gprs通信系統(tǒng)硬件設(shè)計
系統(tǒng)采用sony ericsson公司的內(nèi)部嵌有tcp/ip協(xié)議棧的gprs通信模塊gr47和pic18f6720單片機,二者的串口均支持rs-232通信標準。
核心設(shè)計在于單片機與gr47的連接和軟件的編寫。pic18f6720單片機具有兩個usart(通用異步串行接口),其中一個與gr47模塊相連,進行數(shù)據(jù)和at命令的傳輸;另一個與終端芯片的串口相連,與終端進行通信。gr47模塊外部需要安裝天線。如圖1所示。
pic18f6720單片機控制gr47模塊發(fā)送和接收數(shù)據(jù),在軟件中采用串行口的中斷來實現(xiàn)收發(fā)數(shù)據(jù)和轉(zhuǎn)發(fā)數(shù)據(jù)。
1.1 picl8f6720簡介
pic18f6720是microchip公司生產(chǎn)的較為高檔的單片機。采用3.3 v供電,其大部分指令均為單周期指令,幾乎所有的相關(guān)硬件配置都映射成特殊寄存器,大大提高了運行速度;具有a,b,c,d,e,f,g這7個可編程的i/o口;內(nèi)部除了3840b的ram外,還有1024b的eeprom和128 kb的flash存儲器;擁有4個定時器和多個中斷源及2個中斷優(yōu)先級,有2個usart,功能十分強大,是一款性價比很高的芯片。1.2 gr47簡介
gr47是sony ericsson公司生產(chǎn)的一款雙頻段gsm900/gsm=1800的通信模塊。在此模塊基礎(chǔ)上,可進行g(shù)prs數(shù)據(jù)傳輸,具有支持短消息服務(wù)等功能。采用3.6 v電壓供電;對外可提供多種接口,如天線接口、模擬音頻接口、異步串行接口、sim卡接口等,也支持i2c通信;內(nèi)部集成了tcp/ip協(xié)議棧,因此采用此芯片會大大降低微控制器編程工作的難度。
本方案中用到的gr47的端口并不多,對幾個重點的連接點作如下說明:
a)串行口td:接單片機的rx2,rd接單片機的tx2。
b)dsr引腳:即datasetready,說明模塊準備好接收數(shù)據(jù),此引腳經(jīng)過三極管開關(guān)電路與單片機的rb0相連。dsr為高表示處在數(shù)據(jù)模式,為低表示處在命令模式。
c)dtr引腳:即data terminal ready,說明終端設(shè)備準備好接收數(shù)據(jù),可以通過控制此引腳電平的高低時間來進行g(shù)r47的數(shù)據(jù)態(tài)和命令態(tài)的切換。此引腳經(jīng)過三極管開關(guān)電路與單片機的rf2相連。2 gprs通信系統(tǒng)軟件設(shè)計
系統(tǒng)軟件采用c語言編寫,在mplab環(huán)境下編譯。由于本系統(tǒng)是遠程管理終端的一個模塊,因此在程序的編寫中要遵守一定的協(xié)議,這樣才能保證正確通信。程序的主體是如何控制gr47的at命令對gr47進行初始設(shè)置和對信息數(shù)據(jù)的處理。程序總體上可以分為以下幾個塊:cprs連接的初始設(shè)置、短消息的判斷處理、無數(shù)據(jù)傳輸時的心跳處理、數(shù)據(jù)判斷轉(zhuǎn)發(fā)等。主程序是把這些程序塊有機結(jié)合到一起,相互控制,無限循環(huán)。 2.1 連接的建立
gprs模塊連接到internet和gprs網(wǎng)絡(luò)的實現(xiàn)過程如下:
a)單片機軟件控制gr47模塊開機,等待此模塊正常啟動。
b)通過單片機和gr47模塊連接的串口,向gr47模塊寫入相應的at設(shè)置命令,進行初始化,使模塊成功粘附在gprs網(wǎng)絡(luò)上,獲得網(wǎng)絡(luò)運行商分配的動態(tài)ip地址,與目的終端建立連接。2.2 數(shù)據(jù)的處理
數(shù)據(jù)包在數(shù)據(jù)中心服務(wù)器和gprs服務(wù)器中的傳輸是基于ip數(shù)據(jù)包的,但明文傳送ip包不可取,因此大多選用ppp(點對點協(xié)議)進行傳輸,實現(xiàn)通過gprs模塊的數(shù)據(jù)和internet網(wǎng)絡(luò)的透明傳輸。gr47內(nèi)部集成了tcp/ip協(xié)議棧,所以用戶對ip協(xié)議相關(guān)的程序就不必編寫,可以直接通過gr47傳遞數(shù)據(jù)。
a)模塊與internet上pc機的數(shù)據(jù)傳輸:要求pc機具有公網(wǎng)的ip地址和開放的端口以及監(jiān)視傳輸報文的運行軟件。這樣,模塊與intemet傳輸數(shù)據(jù)時,報文就會顯示。在模塊成功聯(lián)入網(wǎng)絡(luò)后,單片機只要將要發(fā)送的數(shù)據(jù)通過串口發(fā)給gr47,gr47就會把數(shù)據(jù)轉(zhuǎn)發(fā)給相應的ip地址的pc機。
b)短消息數(shù)據(jù)的處理:gr47具有g(shù)sm的功能,可以與手機發(fā)送和接收短消息。短消息采用pdu格式,在程序中需要判斷短消息的到來和讀取短信