用GPRS modem實(shí)現(xiàn)嵌入式Internet接入系統(tǒng)
摘要:運(yùn)用arm單片機(jī)lpc2104及西門子公司的gprsmodem設(shè)計(jì)一種嵌入式internet接入系統(tǒng),并提供相應(yīng)的硬件原理圖和嵌入式操作系統(tǒng)移植方案。 關(guān)鍵詞:uc/os-ii uip gprs tcp/ip 嵌入式internet引言隨著gprs技術(shù)在無線通信領(lǐng)域的發(fā)展,gprsmodem作為gprs在internet的pc機(jī)終端已得到了廣泛應(yīng)用。相應(yīng)的,在單片機(jī)系統(tǒng)中運(yùn)用gprsmodem實(shí)現(xiàn)internet接入也已開始為人們所重視。gprs可以發(fā)揮永遠(yuǎn)在線、快速登錄、按流量計(jì)費(fèi)等優(yōu)勢。如果無線傳輸?shù)膬H僅只是低速數(shù)據(jù),用成本較高的pc機(jī)來控制則成本過高。本文采用在嵌入式實(shí)時(shí)操作系統(tǒng)uc/os-ii中移植一種小型tcp/ip協(xié)議棧uip的方法,提供了一套運(yùn)用arm cpu及西門子公司的gprsmodem(mc35)來實(shí)現(xiàn)internet接入的系統(tǒng)設(shè)計(jì)方案。1 gprs接入internet模型設(shè)計(jì)如圖1所示,gprs網(wǎng)絡(luò)主要由在gsm基站中新增加的gprs業(yè)務(wù)節(jié)點(diǎn)組成,并通過gprs網(wǎng)關(guān)節(jié)點(diǎn)實(shí)現(xiàn)與internet的互聯(lián)。在本系統(tǒng)設(shè)計(jì)中,要與internet交互信息的數(shù)據(jù)先通過gprsmodem與當(dāng)?shù)豨sm基站中的gprs業(yè)務(wù)節(jié)點(diǎn)進(jìn)行無線通信,并進(jìn)入gprs網(wǎng)絡(luò),然后通過gprs網(wǎng)關(guān)與internet進(jìn)行數(shù)據(jù)交互。在本系統(tǒng)中,設(shè)計(jì)的關(guān)鍵有二:一是arm cpu與gprsmodem的連接,即數(shù)據(jù)端的串行數(shù)據(jù)經(jīng)arm cpu的串口發(fā)送到gprsmodem上;二是在arm cpu中嵌入實(shí)時(shí)操作系統(tǒng)uc/os-ii,然后在uc/os-ii中移植uip,實(shí)現(xiàn)tcp/ip協(xié)議棧。
圖1
2 系統(tǒng)的分層考慮與協(xié)議轉(zhuǎn)換圖2簡單示意了本系統(tǒng)的分層結(jié)構(gòu),把gprs服務(wù)節(jié)點(diǎn)和網(wǎng)關(guān)節(jié)點(diǎn)等gprs內(nèi)部節(jié)點(diǎn)簡化抽象為gprs網(wǎng)絡(luò),把gprs內(nèi)部協(xié)議及internet網(wǎng)關(guān)協(xié)議等簡化抽象為gprs網(wǎng)關(guān)協(xié)議。物理層:arm cpu利用at指令對gprsmodem進(jìn)行撥號。反饋應(yīng)答后,一條物理通道即gprs信道就在本系統(tǒng)中的gprsmodem和internet之間建立起來。數(shù)據(jù)鏈路層:ppp協(xié)議將原始的gprs物理層連接改造成無差錯(cuò)的數(shù)據(jù)鏈路,系統(tǒng)將成本遠(yuǎn)程登錄internet,并得到gprs網(wǎng)關(guān)分配的a類ip地址。網(wǎng)絡(luò)層:采用ip協(xié)議作為網(wǎng)絡(luò)層協(xié)議。ip協(xié)議將接入internet的具有不同ip地址的終端都聯(lián)系起來。經(jīng)過ip路由選擇,可以實(shí)現(xiàn)本系統(tǒng)與連在internet上的任一ip終端進(jìn)行數(shù)據(jù)交互。傳輸層:選擇tcp作為傳輸層協(xié)議,為數(shù)據(jù)傳輸提供面向連接、可靠服務(wù)。3 uc/os-ii與小型tcp/ip協(xié)議棧uipuc/os-ii是由jean j.labrosse編寫的一種免費(fèi)公開源代碼的實(shí)時(shí)操作系統(tǒng)。作為一個(gè)操作系統(tǒng)內(nèi)核,它沒有提供通信軟件庫。uip是由瑞士計(jì)算機(jī)科學(xué)院的adam dunkels等開發(fā)的一種免費(fèi)公開源代碼的小型tcp/ip協(xié)議棧,全c編寫,提供了網(wǎng)絡(luò)通信所必須的協(xié)議,包括:arp、slip、ip、udp、icmp(pinc)和tcp。本系統(tǒng)在arm cpu中嵌入實(shí)時(shí)操作系統(tǒng)uc/os-ii,再移植uip實(shí)現(xiàn)tcp/ip協(xié)議棧,從而獲得一個(gè)功能完善的嵌入式ip終端。
4 硬件設(shè)計(jì)整個(gè)系統(tǒng)的硬件框架如圖3所示。arm cpu采用飛利浦公司的lpc2104,內(nèi)核為基于arm7tdmi-s的精簡指令集的通用32位高速微處理器。工作電壓為3.3v,內(nèi)核工作電壓僅為1.8v;內(nèi)置pll鎖相環(huán)可以設(shè)置cpu工作頻率達(dá)60mhz;雙uart口,提供數(shù)據(jù)的異步串行發(fā)送和接收;片內(nèi)16kb ram和128kb flash程序存儲(chǔ)器,為嵌入式uc/os-ii操作系統(tǒng)和移植uip協(xié)議棧提供了必要的空間。gprsmodem選用siemens公司的mc35。該模塊提供了9針的標(biāo)準(zhǔn)rs232接口,通過max3232電平轉(zhuǎn)換芯片和lpc2104的uart0口相連,進(jìn)行全雙工通信。mc35工作電壓為12v,上電后由dtr上升沿跳變觸發(fā)啟動(dòng)。本系統(tǒng)指定lpc2104的p0.13信號線經(jīng)max3232電平轉(zhuǎn)換后作為mc35的dtr。gsm基帶處理器是mc35的核心部件,用來處理串口發(fā)送的at指令。本系統(tǒng)中,上電復(fù)位后,首先進(jìn)行工作頻率等參數(shù)設(shè)置,然后進(jìn)行撥號和ppp協(xié)商,得到系統(tǒng)本地ip,完成gprs的internet接入。arm cpu將用戶數(shù)據(jù)先打成ip包,再經(jīng)串口發(fā)送給mc35,mc35把其封裝成gprs分組數(shù)據(jù)包傳到gprs網(wǎng)。5 軟件設(shè)計(jì)圖4所示是uc/os-ii的結(jié)構(gòu)及與硬件的關(guān)系。與處理器無關(guān)的代碼