




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于基于 80518051 嵌入式系統(tǒng)的嵌入式系統(tǒng)的 GPRSGPRS 終端實(shí)現(xiàn)終端實(shí)現(xiàn) 摘要:摘要:介紹了基于 GPRS 網(wǎng)的數(shù)據(jù)傳輸、嵌入式實(shí)時操作系統(tǒng) u u/OS-II以及小型 TCP/IP 協(xié)議棧 u uIP;深入論述了基于 8051 嵌入式系統(tǒng)的 GPRS 終端的實(shí)現(xiàn)。提供了一種羅為簡單、廉價和實(shí)用的 GPRS 終端的實(shí)現(xiàn)方案,說明了在8051 中如何進(jìn)行 uC/OS-II 和 uIP 的移植。 ; mso-hansi-font-family: Times New Roman 關(guān)鍵詞:關(guān)鍵詞:GPRS 終端 嵌入式系統(tǒng) 實(shí)時操作系統(tǒng) TCP/IP 隨著數(shù)據(jù)無線傳輸需求的驟增和中畫移
2、動 GPRS 業(yè)務(wù)全面投入運(yùn)營,無線數(shù)據(jù)通信的應(yīng)用越來越廣泛。GPRS 網(wǎng)不但具有覆蓋范圍廣、數(shù)據(jù)傳輸速度快、通信質(zhì)量高、永遠(yuǎn)在線和按流量計(jì)費(fèi)等優(yōu)點(diǎn),且其本身就是一個分組型數(shù)據(jù)網(wǎng),支持 TCPIP 協(xié)議,無需經(jīng)過 PSTN 等網(wǎng)絡(luò)的轉(zhuǎn)接,可直接與 Internet 網(wǎng)互通。因此 GPRS 業(yè)務(wù)在無線上網(wǎng)、環(huán)境監(jiān)測、交通監(jiān)控、移動辦公等行業(yè)中具有無可比擬的性價比優(yōu)勢。 為了滿足 GPRS 終端的低成本、小型化和移動靈活等要求,現(xiàn)在廣泛采用單片機(jī)對 GPRS 終端進(jìn)行控制,并且引入嵌入式系統(tǒng)實(shí)現(xiàn) TCPIP 協(xié)議棧。目前主要的困難在于:運(yùn)行 TCPIP 協(xié)議對計(jì)算機(jī)存儲器、運(yùn)算速度等要求較高,會占
3、用大量的系統(tǒng)資源;而嵌入式系統(tǒng)大多采用 8 位單片機(jī),硬件資源非常有限,支持 TCPIP 協(xié)議非常困難。本文采用了在嵌入式實(shí)時操作系統(tǒng) uCOS-II 中移植一種小型 TCPIP 協(xié)議棧 uIP 的方法,使基于 8051 嵌入式系統(tǒng)的GPRS 終端能夠在網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)傳輸;同時改善了系統(tǒng)的性能,提高了系統(tǒng)的可靠性,增強(qiáng)了系統(tǒng)的可擴(kuò)展性和產(chǎn)品開發(fā)的可延續(xù)性。 圖圖 1 1 1 1 基于基于 GPRSGPRS 網(wǎng)的數(shù)據(jù)傳輸網(wǎng)的數(shù)據(jù)傳輸 GPRS 是在 GSM 的基礎(chǔ)上引入了分組控制單元(PCU)、服務(wù)支持節(jié)點(diǎn)(SGSN)和網(wǎng)關(guān)支持節(jié)點(diǎn)(GGSN)等新部件而構(gòu)成的無線數(shù)據(jù)傳輸系統(tǒng),其用戶能夠在端到端
4、分組方式下發(fā)送和接收數(shù)據(jù)?;?GPRS 網(wǎng)的數(shù)據(jù)傳輸系統(tǒng)如圖 1 所示。具體的數(shù)據(jù)傳輸流程為: GPRS 終端通過接口從客戶系統(tǒng)中取出用戶數(shù)據(jù); 處理后以 GPRS 分組數(shù)據(jù)的形式發(fā)送到 GSM 基站(BSS); 分組數(shù)據(jù)經(jīng) SGSN 封裝后,發(fā)送到 GPRS IP 骨干網(wǎng); 若分組數(shù)據(jù)是發(fā)送到另一 GPRS 終端,則先發(fā)送到目的 SGSN,再經(jīng) BSS發(fā)送到 CPBS 終端;若分組數(shù)據(jù)是發(fā)送到外部網(wǎng)絡(luò)(如 Internet),則將分組數(shù)據(jù)包經(jīng) GGSN 進(jìn)行協(xié)議轉(zhuǎn)換后,發(fā)送到外部網(wǎng)絡(luò)。 2 2 嵌入式實(shí)時操作系統(tǒng)嵌入式實(shí)時操作系統(tǒng) uCuCOSOS- -IIII uCOS-II 是由 Je
5、an JLabrosse 先生編寫的、現(xiàn)在流行的一種免費(fèi)公開源代碼的實(shí)時操作系統(tǒng)。它可廣泛應(yīng)用于從 8 位到 64 位單片機(jī)的各種不同類型、不同規(guī)模的嵌入式系統(tǒng)。帶有詳細(xì)注解的 uCOS-II 源代碼只有 200 頁左右;其中 95左右是用 C 語言編寫的,與 MCU 類型相關(guān)的代碼用 8088 匯編寫成,不超過 200 行。uCOS-II 不僅具有結(jié)構(gòu)小巧、可固化、可裁剪、多任務(wù)和可剝奪型的實(shí)時內(nèi)核等特點(diǎn);而且其實(shí)時性、穩(wěn)定性裙可靠性也得到了廣泛認(rèn)可。uCOS-II 的最小內(nèi)核可編譯至 2KB,一般情況占用內(nèi)存在 10KB 數(shù)量級,適用基于 8051 的嵌入式系統(tǒng)的需要。在系統(tǒng)中嵌入 uCO
6、S-II 可以把整個程序分成許多任務(wù),每個任務(wù)相對獨(dú)立,然后在每個任務(wù)中設(shè)置超時函數(shù),時間用完后,必須交出 MCU 的使用權(quán)。即使一個任務(wù)發(fā)生問題,也不會影響其他任務(wù)的運(yùn)行。在單片機(jī)系統(tǒng)中嵌入 uCOS-II 提高了系統(tǒng)的可靠性,并使調(diào)試程序變得簡單,同時也增強(qiáng)了系統(tǒng)的可擴(kuò)展性和產(chǎn)品開發(fā)的可延續(xù)性。 不過 uCOS-II 僅僅是一個實(shí)時操作系統(tǒng)內(nèi)核,與商業(yè)實(shí)時操作系統(tǒng)軟件包比較,它缺少 Utilities 部分,如文件系統(tǒng)、遠(yuǎn)程函數(shù)調(diào)用庫、通信軟件庫。通信軟件包括:TCPIP 軟件庫、藍(lán)牙通信軟件庫、IrDA 紅外通信軟件庫等。這一類軟件的解決有兩種途徑:一個是購買第三方軟件;另一個是自己編寫
7、。如果只是用單片機(jī)實(shí)現(xiàn) TCPIP 協(xié)議中的某些功能,可以選用免費(fèi)公開源代碼的小型 TCPIP 協(xié)議棧,把它移植到 uCOS-II。 目前 uCOS-II 的最新版本為 V270,但現(xiàn)在廣泛學(xué)習(xí)和應(yīng)用的是 V252。 3 3 小型小型 TCPTCPIPIP 協(xié)議棧協(xié)議棧 uIPuIP uIP 是由瑞士計(jì)算機(jī)科學(xué)院的 Adam Dunkels 等開發(fā)的一種免費(fèi)公開源代碼的小型 TCPIP 協(xié)議棧,它專門為 8 位和 16 位 MCU 編寫。uIP 完全是用 C 語言編寫,它在保證一個完整的 TCPIP 棧的前提下,只保留了最必要的一系列特征,使其代碼最少、占用的 RAM 最小;它只能處理單一的網(wǎng)
8、絡(luò)接口。通常的TCPIP 棧采用 BSD socket API,需要來自下層的多任務(wù)操作系統(tǒng)的支持,而且任務(wù)管理、語境切換以及堆??臻g的分配都要占用很大的開銷,超出了 8 位機(jī)系統(tǒng)的能力。uIP 采用了一個事件驅(qū)動接口,通過調(diào)用應(yīng)用程序響應(yīng)事件。而相應(yīng)的應(yīng)用程序作為 C 函數(shù)調(diào)用。通常情況下,uIP 的源代碼雖然只有幾KB,RAM 占用僅幾百字節(jié),但 uIP 提供了網(wǎng)絡(luò)通信所必須的協(xié)議,包括:ARP、SLIP、IP、UDP、ICMP(PINC)和 TCP;能夠滿足 8 位 MCU 接入 TCPIP 網(wǎng)絡(luò)(如Internet)的需要。目前 uIP 最新的版本為 V0.9,符合 Internet
9、標(biāo)準(zhǔn)。 4 GPRS4 GPRS 終端的工作原理及硬件實(shí)現(xiàn)終端的工作原理及硬件實(shí)現(xiàn) GPRS 終端由控制模塊控制 TCPIP 模塊和無線發(fā)送模塊實(shí)現(xiàn)。其結(jié)構(gòu)框圖如圖 2 所示。 41 控制模塊 控制模塊的作用主要有: 控制模塊通過 AT 指令初始化 GPRS 無線模塊,使之附著在 GPRS 網(wǎng)上,獲得網(wǎng)絡(luò)運(yùn)營商動態(tài)分配給 GPRS 終端的 IP 地址,并與目的終端或服務(wù)器之間建立連接; 控制模塊通過 RS232 串口向客戶系統(tǒng)收發(fā)數(shù)據(jù) 或指令; 控制模塊通過 RS232 串口向 TCPIP 模塊收發(fā)數(shù)據(jù); 控制模塊自主或根據(jù)遠(yuǎn)程控制指令采取其他操作。 控制模塊的 MCU 選用華邦的八位機(jī) WI
10、NBOODW77E58。W77E58 是臺灣華邦公司生產(chǎn)的、與 MCS51 系列單片機(jī)兼容的、可多次編程的快速微處理器,在其內(nèi)部集成有 32KB 的可重復(fù)編程的 Flash ROM、256 字節(jié)的片內(nèi)存儲器、IKB 用MOVX 指令訪問的 SRAM、可編程看門狗定時器、三個 16 位定時器、二個增強(qiáng)型的全雙工串行口、片內(nèi) RC 振蕩器、雙 16 位數(shù)據(jù)指針等諸多功能。在很多場合,幾乎不用擴(kuò)展外圍芯片就能夠滿足系統(tǒng)要求。由于其采用了全新設(shè)計(jì)的微處理器內(nèi)核,去除多余的時鐘和存儲周期,在相同的晶振頻率下,根據(jù)不同的指令類型,其運(yùn)行速度一般比傳統(tǒng) 8051 系列快 153 倍。一般情況下,平均可達(dá) 2
11、5 倍以上。另外,由于 W77E58 采用全靜態(tài) CMOS 設(shè)計(jì),能工作在低速晶振頻率下。與普通的 8051 相比,若 W77E58 采用低速工作頻率,在相同的指令吞吐量下,W77E58 的節(jié)電性能也將大大提高。 42 TCPIP 模塊 TCPIP 模塊通過 RS232 串口與 GPRS 無線模塊通信,提供非透明和透明兩路通道。相對應(yīng)地,該模塊有兩種傳輸模式:透明模式和非透明模式。通過軟件切換,模塊在處于不同的傳輸模式時,數(shù)據(jù)流向也有所不同。當(dāng)傳送 AT 指令集時,模塊進(jìn)入透明模式,可以直接訪問 GPRS 無線模塊;當(dāng)模塊進(jìn)人非透明傳輸方式時,用戶數(shù)據(jù)從串口進(jìn)入 TCPIP 模塊后,先十丁成
12、TCPIP 包,再經(jīng)串口發(fā)送給 GPRS 模塊;GPRS 無線模塊把其封裝成 GPRS 分組數(shù)據(jù)包傳到 GPRS網(wǎng)上。TCPIP 模塊由基于單片機(jī) 8051 的嵌入式系統(tǒng)實(shí)現(xiàn)。選用WINBOODW77E58 作為嵌入式系統(tǒng)的微處理器,嵌入式實(shí)時操作系統(tǒng)選用 uCOS-II,然后在 uCOS-II 中移植 uIP 實(shí)現(xiàn) TCPIP 協(xié)議棧。 43 GPRS 無線模塊 GPRS 無線模塊作為 GPRS 終端的無線收發(fā)模塊,把從 TCPIP 模塊接收的TCPIP 包和從基站接收的 GPRS 分組數(shù)據(jù)進(jìn)行相應(yīng)的協(xié)議處理后再轉(zhuǎn)發(fā)。GPRS無線模塊采用了 SIEMENS 公司的 MC35 GPRS 模塊。
13、MC35 模塊主要由射頻天線、內(nèi)部 Flash、SRAM、GSM 基帶處理器、匹配電源和一個 40 腳的 ZIF 插座組成。GSM 基帶處理器是核心部件,其作用相當(dāng)于一個協(xié)議處理器,用來處理外部系統(tǒng)通過串口發(fā)送過來的 AT 指令。射頻天線部分主要實(shí)現(xiàn)信號的調(diào)制與解調(diào),以及外部射頻信號與內(nèi)部基帶處理器之間的信號轉(zhuǎn)換。匹配電源為處理器及射頻部分提供所需的電源。MC35 GPRS 模塊支持 GSM900 和 GSMl800 雙頻網(wǎng)絡(luò),接收速率可達(dá) 8620kbps,發(fā)送速率可達(dá) 215kbps,并且很容易集成。當(dāng)然最大的數(shù)據(jù)吞吐量還要依賴于 GPRS 網(wǎng)絡(luò)的支持。 5 TCP5 TCPIPIP 模塊
14、的軟件實(shí)現(xiàn)模塊的軟件實(shí)現(xiàn) 51 uCOS-II 在 8051 上的移植 uCOS-II 是自由軟件,非商業(yè)的運(yùn)用如科研、教學(xué)都是免費(fèi)的。任何使用者都可以從互聯(lián)網(wǎng)上下載其源代碼,通過適當(dāng)?shù)男薷募右砸浦?,使其滿足自己硬件和系統(tǒng)的需要。為了移植,需要先了解 uCOS-II 操作系統(tǒng)的總體結(jié)構(gòu),圖 3 所示是 uCOS-II 的結(jié)構(gòu)及與硬件的關(guān)系。 與處理器無關(guān)的代碼中包含了 uCOS-II 的系統(tǒng)函數(shù),在進(jìn)行系統(tǒng)移植時一般不需要對這部分進(jìn)行修改;只要將 UCOS-IIC 文件包含在自己的項(xiàng)目中,即可將 uCOS-II 中所有與 MCU 無關(guān)的代碼包含到移植的代碼中。 與應(yīng)用相關(guān)的代碼是用戶根據(jù)自己的
15、應(yīng)用系統(tǒng)定制合適的內(nèi)核服務(wù)功能,它包括兩個文件:OS_CFGH、INCLUDESH。其中 OS_CFGH 用來配置內(nèi)核,用戶根據(jù)需要對內(nèi)核進(jìn)行定制,設(shè)置系統(tǒng)的基本情況,例如系統(tǒng)可提供的最大任務(wù)數(shù)量、是否定制郵箱服務(wù)、是否需要系統(tǒng)提供任務(wù)掛起功能、是否提供任務(wù)優(yōu)先級動態(tài)改變功能等。而 INCLUDESH 則是系統(tǒng)頭文件。 處理器相關(guān)的代碼中包含了對各種不同類型 MCU 的支持,需要根據(jù)自己的MCU 對這部分進(jìn)行修改。針對 Keil C51 編譯器和 8051 芯片的技術(shù)特點(diǎn),uCOS-的移植與三個文件相關(guān):處理器相關(guān) C 文件(OS_CPUH、OS_CPU_CC)和匯編文件(OS_CPU_AAS
16、M)。 (1)修改 OS_CPU。H 文件 OS_CPUH 中包括了用#define 語句定義的與處理器相關(guān)的常數(shù)、宏以及類型。移植時主要修改的內(nèi)容有: 與編譯器相關(guān)的數(shù)據(jù)類型的設(shè)定。參考 Keil C51 編譯器中的幫助文件C51PDF,具體路徑為C51HLPC51PDF。 用#define 語句定義了兩個宏開關(guān)中斷,具體實(shí)現(xiàn)為: #define OS_ENTER_CRITICAL()EA=0關(guān)中斷 #define OS_EXIT_CRITICAL() EA=1 開中斷 根據(jù) 8051 堆棧的方向定義 OS_STK_GROWTH。 #define OS_STK_GROWTH 0 8051 堆
17、棧從下向上遞增 置 OS_STK_GROWTH 為 0,表示堆棧從下(低地址)向上(高地址)遞增;置OS_STK_GROWTH 為 1,表示堆棧從上(高地址)向下(低地址)遞減。 uCOS-II 從低優(yōu)先級任務(wù)切換到高優(yōu)先級任務(wù)時需要用到OS_STK_SW(),通過執(zhí)行 OS_STK_SW()模仿中斷的產(chǎn)生。絕大多數(shù) CPU 會提供軟中斷或指令陷阱(TRAP)完成這項(xiàng)功能。中斷服務(wù)子程序或指令陷阱處理函數(shù)(也叫異常處理函數(shù))的中斷向量地址必須指向匯編語言函數(shù) OSCtxSw()。因?yàn)?8051沒有軟中斷指令,所以用程序調(diào)用代替。 #define OS_TASK_SW() OSCtxSw() (
18、2)修改 OS_CPU_CC uCOS-II 的移植范例要求用戶編寫 10 個簡單的 C 函數(shù),其中 OSTaskSt klnit()是必要的,其他 9 個函數(shù)必須聲明,但不一定包含任何代碼。因?yàn)镵eil C51 在缺省情況下把函數(shù)編譯為不可重入的結(jié)構(gòu),而多任務(wù)系統(tǒng)要求并發(fā)操作導(dǎo)致重入,所以要在每個 C 函數(shù)及其聲明后標(biāo)注 reentrant 關(guān)鍵字,使編譯器生成的代碼在運(yùn)行中支持函數(shù)可重入。另外pdata、data在 uCOS-II中用做一些函數(shù)的形參,但它同時又是 Keil C51 的關(guān)鍵字,這樣會導(dǎo)致編譯錯誤。通??砂裵data改成ppdala,data改成ddata解決此問題。具體修改的代碼如下: void * OSTaskStkInit(void (*task)(void *pd), void *ppdata, void *ptos, INT16U opt)reentrant 在基于 8051 的 uCOS-II 中,移植 uIP 不需要對現(xiàn)有的 TCPIP 源代碼做任何修改,但是必須為網(wǎng)絡(luò)設(shè)備(如網(wǎng)卡芯片、串口等)寫一個驅(qū)動程序。同時,現(xiàn)有系統(tǒng)的集成部分也要進(jìn)行相應(yīng)的處理,例如當(dāng)有數(shù)據(jù)到達(dá)或者
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位蔬菜供應(yīng)合同范本
- 合同范本其他事項(xiàng)
- 合同范本軟件畫畫
- 卷簾窗簾購銷合同范例
- 2025年耐磨合金鑄鐵項(xiàng)目建議書
- 新西蘭蜂蜜采購合同范本
- 水果購銷合同范本
- 家具設(shè)計(jì)合同范本
- 單位車輛定點(diǎn)維修合同范本
- 醫(yī)院租賃合同范本
- BLM(含樣例)教學(xué)課件
- 企業(yè)數(shù)字化轉(zhuǎn)型之路燈塔工廠專題報(bào)告
- 低溫恒溫槽日常維護(hù)保養(yǎng)
- 市政道路工程城市道路施工組織設(shè)計(jì)
- 動物免疫接種技術(shù)課件
- 最全食堂菜譜、-公司食堂菜譜大全、-大鍋菜:522道菜+35道湯
- 線下庭審申請書
- ICU護(hù)理查房記錄【范本模板】
- 幼兒園大班繪本故事-神奇的大蒜【幼兒教案】
- 煤礦信息化管理制度
- 導(dǎo)管滑脫應(yīng)急預(yù)案演練住院患者導(dǎo)尿管道滑脫
評論
0/150
提交評論