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