引言
微控制器以其體積小,、功耗低,、使用方便等特點(diǎn),廣泛應(yīng)用于各種工業(yè),、民用的嵌入式系統(tǒng)中;而隨著互聯(lián)網(wǎng)(Internet)的興起與普及,,使微控制器通過互聯(lián)網(wǎng)傳送數(shù)據(jù)就變得非常有意義,。目前使微控制器上網(wǎng)的解決方案一般有兩種:一種是采用微控制器驅(qū)動(dòng)網(wǎng)卡,通過以太網(wǎng)連接Internet,;另一種是使微控制器直接驅(qū)動(dòng)調(diào)制解調(diào)器(MODEM)通過電話線向ISP撥號(hào)上網(wǎng),。這兩種方案的缺點(diǎn)在于都要使用有線的網(wǎng)絡(luò),無法應(yīng)用于在邊遠(yuǎn)地區(qū)或可移動(dòng)系統(tǒng)中,。
針對(duì)這一問題,,本文提出一種基于GPRS的微控制器上網(wǎng)的解決方案,,即在微控制器中實(shí)現(xiàn)PPP協(xié)議,并通過驅(qū)動(dòng)GPRS模塊經(jīng)過GPRS無線網(wǎng)連接到Internet實(shí)現(xiàn)上網(wǎng),。這種方案的優(yōu)點(diǎn)在于:① 覆蓋面廣,,適用于廣大偏遠(yuǎn)地區(qū);② 無線上網(wǎng),,適用于可移動(dòng)目標(biāo),;③使用廉價(jià)的微控制器實(shí)現(xiàn)簡(jiǎn)單、成本低,;④ 安裝簡(jiǎn)便,,維護(hù)方便。
1 GPRS技術(shù)及其特點(diǎn)
GPRS(General Packet Radio Service)是通用分組無線業(yè)務(wù)的簡(jiǎn)稱,,是在GSM基礎(chǔ)上發(fā)展起來的一種分組交換的數(shù)據(jù)承載和傳輸方式,。與原有的GSM比較,GPRS在數(shù)據(jù)業(yè)務(wù)的承載和支持上具有非常明顯的優(yōu)勢(shì):通過多個(gè)GSM時(shí)隙的復(fù)用,,支持的數(shù)據(jù)傳輸速率更高,,理論峰值達(dá)115kb/s;不同的網(wǎng)絡(luò)用戶共享同一組GPRS信道,,但只有當(dāng)某一個(gè)用戶需要發(fā)送或接收數(shù)據(jù)時(shí)才會(huì)占用信道資源,。這樣,通過多用戶的業(yè)務(wù)復(fù)用,,更有效地利用無線網(wǎng)絡(luò)信道資源,,特別適合突發(fā)性、頻繁的小流量數(shù)據(jù)傳輸,,很好地適應(yīng)數(shù)據(jù)業(yè)務(wù)的突發(fā)性特點(diǎn),;GPRS計(jì)費(fèi)方式更加靈活,可以支持按數(shù)據(jù)流量來進(jìn)行計(jì)費(fèi),;與無線應(yīng)用協(xié)議(WAP)技術(shù)不同,,GPRS能夠隨時(shí)為用戶提供透明的IP通道,可直接訪問Internet中的所有站點(diǎn)和資源,;采用信道復(fù)用技術(shù),,每一個(gè)GPRS用戶都能夠?qū)崿F(xiàn)永遠(yuǎn)在線;另外,,GPRS還能支持在進(jìn)行數(shù)據(jù)傳輸?shù)耐瑫r(shí)進(jìn)行語音通話等等,,而且相對(duì)于短消息等其它無線數(shù)據(jù)通信業(yè)務(wù),GPRS的價(jià)格優(yōu)勢(shì)比較明顯,。目前,,我國(guó)移動(dòng)推出的GPRS上網(wǎng)業(yè)務(wù)最高每千字節(jié)也只有3分錢,而且用戶可以根據(jù)自己的需要,,以月租,、包月等多種形式進(jìn)一步降低GPRS通信的費(fèi)用,。
因此使用GPRS實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)的傳送是非常經(jīng)濟(jì)實(shí)用的,特別是對(duì)于不易架設(shè)有線網(wǎng)絡(luò)的邊遠(yuǎn)地區(qū)和可移動(dòng)裝置,。
2 硬件連接和GPRS模塊設(shè)置
通過GPRS網(wǎng)進(jìn)行數(shù)據(jù)傳輸一般需要使用GPRS模塊,。目前,GPRS模塊一般是指帶有GPRS功能的GSM模塊,,可以利用GPRS網(wǎng)進(jìn)行數(shù)據(jù)通信,。其中比較流行的有法國(guó)Wave公司的WISMO系列和西門子公司的S系列等等。WAVECOM的WISMO模塊接口簡(jiǎn)單,、使用方便且功能非常強(qiáng)大,,它與微控制器、SIM卡,、電源之間的連接如圖1所示,。
圖1 GPRS模塊的硬件連接圖
其中GPRS模塊與微控制器間是通過串行口進(jìn)行通信的,通信速率最快可以達(dá)到115 200b/s,。模塊與控制器間的通信協(xié)議是AT命令集,,其中大部分命令是符合協(xié)議“AT command set for GSM Mobile Equipment (ME) (GSM 07.07 version 6.4.0 Release 1997)”的,但也有一些是Wavecom自己定義的AT命令,。除了串口發(fā)送(TX),、串口接收(RX)之外,微控制器與GPRS模塊之間還有一些硬件握手信號(hào),,如DTR,、CTS、DCD等,。為了簡(jiǎn)化微控制器的控制,,硬件設(shè)計(jì)時(shí)沒有使用全部的硬件握手信號(hào),而只使用數(shù)據(jù)載波檢測(cè)(Data Carrier Detect,, DCD)和終端準(zhǔn)備(Data Terminal Ready,, DTR)信號(hào)。DCD信號(hào)可以檢測(cè)GPRS模塊是處于數(shù)據(jù)傳送狀態(tài)還是處于AT命令傳送狀態(tài),。DTR信號(hào)用來通知GPRS模塊傳送工作已經(jīng)結(jié)束,。
硬件連接完成后,在進(jìn)行GPRS上網(wǎng)操作之前,,首先要對(duì)GPRS模塊進(jìn)行一定的設(shè)置,。主要的設(shè)置工作有:① 設(shè)置通信波特率,可以使用AT+IPR=38400命令,,把波特率設(shè)為38 400b/s或其它合適的波特率,默認(rèn)的通信速度為9600b/s,。② 設(shè)置接入網(wǎng)關(guān),,通過AT+ CGD CONT=1,, “IP”, “CMNET”命令設(shè)置GPRS接入網(wǎng)關(guān)為移動(dòng)夢(mèng)網(wǎng),。③設(shè)置移動(dòng)終端的類別,,通過AT+CGCLASS=“B”設(shè)置移動(dòng)終端的類別為B類,即同時(shí)監(jiān)控多種業(yè)務(wù),;但只能運(yùn)行一種業(yè)務(wù),,即在同一時(shí)間只能使用GPRS上網(wǎng),或者使用GSM的語音通信,。④ 測(cè)試GPRS服務(wù)是否開通,,使用AT+CGACT=1,1命令激活GPRS功能,。如果返回OK,,則GPRS連接成功;如果返回ERROR,,則意味著GPRS失敗,。這時(shí)應(yīng)檢查一下SIM卡的GPRS業(yè)務(wù)是否已經(jīng)開通,GPRS模塊天線是否安裝正確等問題,。(其它相關(guān)的AT命令請(qǐng)參閱文獻(xiàn)3,。)
中國(guó)移動(dòng)在GPRS與Internet網(wǎng)中間建立了許多相當(dāng)于ISP的網(wǎng)關(guān)支持節(jié)點(diǎn)(GGSN),以連接GPRS網(wǎng)與外部的Internet網(wǎng),。GPRS模塊可以通過撥“*99***1#”登錄到GGSN上動(dòng)態(tài)分配到Internet網(wǎng)的IP地址,。其間GPRS模塊與網(wǎng)關(guān)的通信要符合點(diǎn)對(duì)點(diǎn)協(xié)議(Point to Point Protocol, PPP),,其中身份驗(yàn)證時(shí)用戶名,、密碼都為空。使用PPP協(xié)議登錄上之后,,就可以通過GGSN接上Internet了,。
3 軟件整體結(jié)構(gòu)
3.1 軟件層次結(jié)構(gòu)
程序中的所有代碼都是由C語言編寫的,并采用分層的結(jié)構(gòu),,從底到上分別為:串口驅(qū)動(dòng)層,、GPRS模塊驅(qū)動(dòng)層、PPP協(xié)議層,、IP協(xié)議層,、UDP協(xié)議層與應(yīng)用層。上層函數(shù)的實(shí)現(xiàn)需要應(yīng)用到底層函數(shù),,而底層函數(shù)的任務(wù)就是為上層函數(shù)提供服務(wù),,最終完成應(yīng)用層任務(wù)——傳送數(shù)據(jù)。各層的主要函數(shù)如圖2所示。
圖2 軟件層次結(jié)構(gòu)
引言
微控制器以其體積小,、功耗低,、使用方便等特點(diǎn),廣泛應(yīng)用于各種工業(yè),、民用的嵌入式系統(tǒng)中,;而隨著互聯(lián)網(wǎng)(Internet)的興起與普及,使微控制器通過互聯(lián)網(wǎng)傳送數(shù)據(jù)就變得非常有意義,。目前使微控制器上網(wǎng)的解決方案一般有兩種:一種是采用微控制器驅(qū)動(dòng)網(wǎng)卡,,通過以太網(wǎng)連接Internet;另一種是使微控制器直接驅(qū)動(dòng)調(diào)制解調(diào)器(MODEM)通過電話線向ISP撥號(hào)上網(wǎng),。這兩種方案的缺點(diǎn)在于都要使用有線的網(wǎng)絡(luò),,無法應(yīng)用于在邊遠(yuǎn)地區(qū)或可移動(dòng)系統(tǒng)中。
針對(duì)這一問題,,本文提出一種基于GPRS的微控制器上網(wǎng)的解決方案,,即在微控制器中實(shí)現(xiàn)PPP協(xié)議,并通過驅(qū)動(dòng)GPRS模塊經(jīng)過GPRS無線網(wǎng)連接到Internet實(shí)現(xiàn)上網(wǎng),。這種方案的優(yōu)點(diǎn)在于:① 覆蓋面廣,,適用于廣大偏遠(yuǎn)地區(qū);② 無線上網(wǎng),,適用于可移動(dòng)目標(biāo),;③使用廉價(jià)的微控制器實(shí)現(xiàn)簡(jiǎn)單、成本低,;④ 安裝簡(jiǎn)便,,維護(hù)方便。
1 GPRS技術(shù)及其特點(diǎn)
GPRS(General Packet Radio Service)是通用分組無線業(yè)務(wù)的簡(jiǎn)稱,,是在GSM基礎(chǔ)上發(fā)展起來的一種分組交換的數(shù)據(jù)承載和傳輸方式,。與原有的GSM比較,GPRS在數(shù)據(jù)業(yè)務(wù)的承載和支持上具有非常明顯的優(yōu)勢(shì):通過多個(gè)GSM時(shí)隙的復(fù)用,,支持的數(shù)據(jù)傳輸速率更高,,理論峰值達(dá)115kb/s;不同的網(wǎng)絡(luò)用戶共享同一組GPRS信道,,但只有當(dāng)某一個(gè)用戶需要發(fā)送或接收數(shù)據(jù)時(shí)才會(huì)占用信道資源,。這樣,通過多用戶的業(yè)務(wù)復(fù)用,,更有效地利用無線網(wǎng)絡(luò)信道資源,,特別適合突發(fā)性、頻繁的小流量數(shù)據(jù)傳輸,,很好地適應(yīng)數(shù)據(jù)業(yè)務(wù)的突發(fā)性特點(diǎn),;GPRS計(jì)費(fèi)方式更加靈活,,可以支持按數(shù)據(jù)流量來進(jìn)行計(jì)費(fèi);與無線應(yīng)用協(xié)議(WAP)技術(shù)不同,,GPRS能夠隨時(shí)為用戶提供透明的IP通道,,可直接訪問Internet中的所有站點(diǎn)和資源;采用信道復(fù)用技術(shù),,每一個(gè)GPRS用戶都能夠?qū)崿F(xiàn)永遠(yuǎn)在線;另外,,GPRS還能支持在進(jìn)行數(shù)據(jù)傳輸?shù)耐瑫r(shí)進(jìn)行語音通話等等,,而且相對(duì)于短消息等其它無線數(shù)據(jù)通信業(yè)務(wù),GPRS的價(jià)格優(yōu)勢(shì)比較明顯,。目前,,我國(guó)移動(dòng)推出的GPRS上網(wǎng)業(yè)務(wù)最高每千字節(jié)也只有3分錢,而且用戶可以根據(jù)自己的需要,,以月租,、包月等多種形式進(jìn)一步降低GPRS通信的費(fèi)用。
因此使用GPRS實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)的傳送是非常經(jīng)濟(jì)實(shí)用的,,特別是對(duì)于不易架設(shè)有線網(wǎng)絡(luò)的邊遠(yuǎn)地區(qū)和可移動(dòng)裝置,。
2 硬件連接和GPRS模塊設(shè)置
通過GPRS網(wǎng)進(jìn)行數(shù)據(jù)傳輸一般需要使用GPRS模塊。目前,,GPRS模塊一般是指帶有GPRS功能的GSM模塊,,可以利用GPRS網(wǎng)進(jìn)行數(shù)據(jù)通信。其中比較流行的有法國(guó)Wave公司的WISMO系列和西門子公司的S系列等等,。WAVECOM的WISMO模塊接口簡(jiǎn)單,、使用方便且功能非常強(qiáng)大,它與微控制器,、SIM卡,、電源之間的連接如圖1所示。
圖1 GPRS模塊的硬件連接圖
其中GPRS模塊與微控制器間是通過串行口進(jìn)行通信的,,通信速率最快可以達(dá)到115 200b/s,。模塊與控制器間的通信協(xié)議是AT命令集,其中大部分命令是符合協(xié)議“AT command set for GSM Mobile Equipment (ME) (GSM 07.07 version 6.4.0 Release 1997)”的,,但也有一些是Wavecom自己定義的AT命令,。除了串口發(fā)送(TX)、串口接收(RX)之外,,微控制器與GPRS模塊之間還有一些硬件握手信號(hào),,如DTR、CTS,、DCD等,。為了簡(jiǎn)化微控制器的控制,硬件設(shè)計(jì)時(shí)沒有使用全部的硬件握手信號(hào),而只使用數(shù)據(jù)載波檢測(cè)(Data Carrier Detect,, DCD)和終端準(zhǔn)備(Data Terminal Ready,, DTR)信號(hào)。DCD信號(hào)可以檢測(cè)GPRS模塊是處于數(shù)據(jù)傳送狀態(tài)還是處于AT命令傳送狀態(tài),。DTR信號(hào)用來通知GPRS模塊傳送工作已經(jīng)結(jié)束,。
硬件連接完成后,在進(jìn)行GPRS上網(wǎng)操作之前,,首先要對(duì)GPRS模塊進(jìn)行一定的設(shè)置,。主要的設(shè)置工作有:① 設(shè)置通信波特率,可以使用AT+IPR=38400命令,,把波特率設(shè)為38 400b/s或其它合適的波特率,,默認(rèn)的通信速度為9600b/s。② 設(shè)置接入網(wǎng)關(guān),,通過AT+ CGD CONT=1,, “IP”, “CMNET”命令設(shè)置GPRS接入網(wǎng)關(guān)為移動(dòng)夢(mèng)網(wǎng),。③設(shè)置移動(dòng)終端的類別,,通過AT+CGCLASS=“B”設(shè)置移動(dòng)終端的類別為B類,即同時(shí)監(jiān)控多種業(yè)務(wù),;但只能運(yùn)行一種業(yè)務(wù),,即在同一時(shí)間只能使用GPRS上網(wǎng),或者使用GSM的語音通信,。④ 測(cè)試GPRS服務(wù)是否開通,,使用AT+CGACT=1,1命令激活GPRS功能,。如果返回OK,,則GPRS連接成功;如果返回ERROR,,則意味著GPRS失敗,。這時(shí)應(yīng)檢查一下SIM卡的GPRS業(yè)務(wù)是否已經(jīng)開通,GPRS模塊天線是否安裝正確等問題,。(其它相關(guān)的AT命令請(qǐng)參閱文獻(xiàn)3,。)
中國(guó)移動(dòng)在GPRS與Internet網(wǎng)中間建立了許多相當(dāng)于ISP的網(wǎng)關(guān)支持節(jié)點(diǎn)(GGSN),以連接GPRS網(wǎng)與外部的Internet網(wǎng),。GPRS模塊可以通過撥“*99***1#”登錄到GGSN上動(dòng)態(tài)分配到Internet網(wǎng)的IP地址,。其間GPRS模塊與網(wǎng)關(guān)的通信要符合點(diǎn)對(duì)點(diǎn)協(xié)議(Point to Point Protocol, PPP),,其中身份驗(yàn)證時(shí)用戶名,、密碼都為空,。使用PPP協(xié)議登錄上之后,就可以通過GGSN接上Internet了,。
3 軟件整體結(jié)構(gòu)
3.1 軟件層次結(jié)構(gòu)
程序中的所有代碼都是由C語言編寫的,,并采用分層的結(jié)構(gòu),從底到上分別為:串口驅(qū)動(dòng)層,、GPRS模塊驅(qū)動(dòng)層,、PPP協(xié)議層、IP協(xié)議層,、UDP協(xié)議層與應(yīng)用層,。上層函數(shù)的實(shí)現(xiàn)需要應(yīng)用到底層函數(shù),而底層函數(shù)的任務(wù)就是為上層函數(shù)提供服務(wù),,最終完成應(yīng)用層任務(wù)——傳送數(shù)據(jù)。各層的主要函數(shù)如圖2所示,。
圖2 軟件層次結(jié)構(gòu)
3.2 驅(qū)動(dòng)程序編寫
首先是串行口驅(qū)動(dòng)層,。它實(shí)現(xiàn)打開串口(OpenComm)、關(guān)閉串口(CloseComm),、讀串口數(shù)據(jù)(ReadComm),、寫串口數(shù)據(jù)(WriteComm)等函數(shù)。例如WriteComm函數(shù)向串口發(fā)送一個(gè)字節(jié)的數(shù)據(jù),,而transmit函數(shù)向串口發(fā)送一個(gè)字符串的數(shù)據(jù):
void WriteComm(char c){
ES = 0;
SBUF = c;
while(TI==0);
TI=0;
ES = 1;
}
void transmit (char *data) {
Delay (250);
while (*data) {
WriteComm (*data++);
}
}
然后,,在這些串口函數(shù)的基礎(chǔ)上編寫GPRS模塊的驅(qū)動(dòng)函數(shù)。微控制器通過串行口控制GPRS模塊,,進(jìn)行撥號(hào),、設(shè)置等操作??刂频姆椒ㄊ遣捎肁T命令,。在控制GPRS模塊撥打移動(dòng)夢(mèng)網(wǎng)GGSN的登錄號(hào)碼“*99***1#”之后,GPRS模塊就轉(zhuǎn)入在線模式(On-Line),。此時(shí)微控制器向串行口發(fā)送的所有數(shù)據(jù)都透明地傳送給了GGSN,,同樣GGSN的回答也傳回單片機(jī)的串行口。當(dāng)數(shù)據(jù)傳送完成后,,微控制器需要通知GPRS模塊結(jié)束會(huì)話,,并從在線模式轉(zhuǎn)回普通的命令模式,這可以通過置高DTR線完成,。同時(shí),,如果線路由于異常斷開,CD線會(huì)回復(fù)到平常的低電平,,所以處于在線模式下也要不斷檢測(cè)CD線是否處于高電平,。根據(jù)這些操作,,可以編寫GPRS驅(qū)動(dòng)函數(shù):初始化GPRS模塊函數(shù)(GPRSInit)、撥號(hào)函數(shù)(GPRSDial),、斷開連接函數(shù)(GPRSHangup),、檢測(cè)是否處于在線狀態(tài)函數(shù)(GPRSOnline)。其中,,GPRS的撥號(hào)和掛斷代碼如下:
BYTE GPRSDial (void) {
signed char delayCount = 80;
transmit (“ATV0\r”); // 要求返回?cái)?shù)字表示的回答
if (,!Waitfor (“0”, 30)) { // 等待 OK 回答
return -1;
}
DTR_ON;
transmit (“ATD*99***1#\r”); // 撥GGSN的號(hào)碼
GPRSBuffFlush (); // 清空buffer
// 等待回答
while ((,!GPRSBuffNotEmpty()) && (--delayCount 》 0)) {
Delay (250);
}
if (delayCount) {
return GPRSGetch (); // 返回回答的數(shù)字
}
return -1; // 沒有返回,,錯(cuò)誤
}
void GPRSHangup (void) {
DTR_ON; // 置高DTR
Delay (40); // 保持一定時(shí)間
DTR_OFF; // 完成連接的斷開
}
這些底層的驅(qū)動(dòng)函數(shù)將會(huì)使上層協(xié)議的編寫很方便,更重要的是,,它為我們提供了一個(gè)驅(qū)動(dòng)抽象層,。當(dāng)?shù)讓佑布龀龈膭?dòng)的時(shí)候,只需要對(duì)底層的驅(qū)動(dòng)函數(shù)進(jìn)行改動(dòng),,而上層函數(shù)的代碼不變,。
4 PPP協(xié)議的實(shí)現(xiàn)
由于移動(dòng)夢(mèng)網(wǎng)的GGSN與GPRS模塊通信時(shí)遵循PPP協(xié)議,所以要在微控制器中也實(shí)現(xiàn)一部分PPP協(xié)議才能與之對(duì)話,。GPRS模塊在撥號(hào)后首先要與GPRS網(wǎng)關(guān)進(jìn)行通信鏈路的協(xié)商,,即協(xié)商點(diǎn)到點(diǎn)的各種鏈路參數(shù)配置。協(xié)商過程遵守LCP(Link Control Protocol),、PAP(Password Authentication Protocol)和IPCP(Internet Protocol Control Protocol)等協(xié)議,。其中LCP協(xié)議用于建立、構(gòu)造,、測(cè)試鏈路連接,;PAP協(xié)議用于處理密碼驗(yàn)證部分;IPCP協(xié)議用于設(shè)置網(wǎng)絡(luò)協(xié)議環(huán)境,,并分配IP地址,。協(xié)商機(jī)制用有限狀態(tài)機(jī)的模型來實(shí)現(xiàn)。一旦協(xié)商完成,,鏈路已經(jīng)創(chuàng)建,,IP地址已經(jīng)分配就可以按照協(xié)商的標(biāo)準(zhǔn)進(jìn)行IP報(bào)文的傳輸了。根據(jù)應(yīng)用的不同,,IP報(bào)文中可以攜帶UDP報(bào)文,,也可以是TCP或ICMP報(bào)文。本系統(tǒng)正是采用UDP報(bào)文傳送數(shù)據(jù)信息的,。數(shù)據(jù)傳輸完成之后,,微控制器會(huì)向GGSN發(fā)送LCP的斷開連接報(bào)文,以終止網(wǎng)絡(luò)連接,。
PPP協(xié)議的幀結(jié)構(gòu)如圖3(左)所示,。微控制器的串口中斷接收程序首先以包起始和結(jié)束符來判斷是否有完整的PPP包,,并對(duì)PPP包的內(nèi)容進(jìn)行校驗(yàn),以確定數(shù)據(jù)包的完整性和正確性,。然后,,在主循環(huán)中進(jìn)入PPP報(bào)文解析模塊,解析過程如圖3(右)所示,。
圖3 PPP報(bào)文解析
5 登錄GGSN的過程
系統(tǒng)的一個(gè)難點(diǎn)是微控制器登陸GPRS網(wǎng)關(guān)(GGSN)并與網(wǎng)關(guān)通過LCP,、PAP、IPCP協(xié)議進(jìn)行協(xié)商的過程,。LCP,、PAP與IPCP協(xié)議的幀結(jié)構(gòu)大同小異,最常用的為請(qǐng)求(REQ),、同意(ACK)和拒絕(NAK)三種幀,。微控制器與GGSN各為一方進(jìn)行協(xié)商,任何一方都可以發(fā)送REQ幀請(qǐng)求某方面的配制,,另一方覺得配置不能接受會(huì)回應(yīng)NAK幀,,如果可以則回應(yīng)ACK幀。為了節(jié)省資源,,我們只處理這三種數(shù)據(jù)幀,其它鏈路問題都由微控制器在程序控制下自己重新?lián)芴?hào)解決,。
協(xié)商過程大致描述如下:在撥號(hào)成功連接后,,GGSN首先會(huì)返回一個(gè)PAP REQ數(shù)據(jù)幀。我們發(fā)送一個(gè)空LCP REQ幀,,以強(qiáng)迫進(jìn)行協(xié)議協(xié)商階段,。隨后,GGSN發(fā)送LCP設(shè)置幀,,我們拒絕所有的設(shè)置并請(qǐng)求驗(yàn)證模式,。GGSN選擇CHAP或PAP方式驗(yàn)證,我們只接受PAP方式,。然后,,進(jìn)行PAP驗(yàn)證用戶名和密碼過程,在GPRS中用戶名與密碼都為空,,如果成功,,GGSN會(huì)返回IPCP報(bào)文分配動(dòng)態(tài)IP地址。此時(shí),,就完成了與GGSN的協(xié)商過程,。協(xié)商過程的狀態(tài)轉(zhuǎn)換如圖4所示。
圖4 協(xié)商過程流程
協(xié)商完成后進(jìn)入IP數(shù)據(jù)報(bào)通信階段,。此時(shí),,微控制器向GGSN發(fā)送的所有包含IP報(bào)文的PPP報(bào)文都會(huì)被傳送給Internet網(wǎng)中相應(yīng)的IP地址,;而遠(yuǎn)端所有向微控制器IP地址發(fā)送的報(bào)文也都會(huì)經(jīng)GPRS網(wǎng)傳送到微控制器上,從而完成微控制器與遠(yuǎn)程主機(jī)通過互聯(lián)網(wǎng)的數(shù)據(jù)傳輸,。
6 小結(jié)
經(jīng)過優(yōu)化,,本系統(tǒng)的軟件代碼可以精簡(jiǎn)到6K字節(jié)左右,共使用不到300字節(jié)的RAM,。并且由于程序使用C語言編寫,,稍加改動(dòng)就可以在各種系列的微控制器上實(shí)現(xiàn)。微控制器通過GPRS上網(wǎng)的技術(shù)可以廣泛應(yīng)用于需要遠(yuǎn)程傳送數(shù)據(jù)的系統(tǒng)中,,特別適合于遠(yuǎn)程抄表,、遠(yuǎn)程監(jiān)控等領(lǐng)域。我們目前正把這項(xiàng)技術(shù)應(yīng)用于車輛監(jiān)控調(diào)度系統(tǒng),,在試驗(yàn)階段取得了比較好的效果,。
參考文獻(xiàn)
1 Wavecom公司。 GPRS User Guide. 2001-11
2 Wavecom公司,。 WISMO2C Hardware Specifications. 2000-08
3 Wavecom公司,。 AT Commands Interface, 2000-03
4 Simpson W. The Point to Point Protocol(PPP),。 RFC1661. 1994
5 PPP in HDLC-Like Framing. RFC1662. 1994
黃承安 碩士研究生,,主要研究方向嵌入式系統(tǒng)的理論方法及軟硬件設(shè)計(jì),無線網(wǎng)絡(luò)通信,。
張躍 副教授,,主要研究方向嵌入式系統(tǒng),控制理論,。