丁香婷婷网,黄色av网站裸体无码www,亚洲午夜无码精品一级毛片,国产一区二区免费播放

現(xiàn)在位置:范文先生網>理工論文>電子通信論文>基于8051嵌入式系統(tǒng)的GPRS終端實現(xiàn)

基于8051嵌入式系統(tǒng)的GPRS終端實現(xiàn)

時間:2023-02-20 23:02:18 電子通信論文 我要投稿
  • 相關推薦

基于8051嵌入式系統(tǒng)的GPRS終端實現(xiàn)

摘要:介紹了基于GPRS網的數據傳輸、嵌入式實時操作系統(tǒng)u/OS-II以及小型TCP/IP協(xié)議棧uIP;深入論述了基于8051嵌入式系統(tǒng)的GPRS終端的實現(xiàn)。提供了一種羅為簡單、廉價和實用的GPRS終端的實現(xiàn)方案,說明了在8051中如何進行uC/OS-II和uIP的移植。

    關鍵詞:GPRS終端 嵌入式系統(tǒng) 實時操作系統(tǒng) TCP/IP

隨著數據無線傳輸需求的驟增和中畫移動GPRS業(yè)務全面投入運營,無線數據通信的應用越來越廣泛。GPRS網不但具有覆蓋范圍廣、數據傳輸速度快、通信質量高、永遠在線和按流量計費等優(yōu)點,且其本身就是一個分組型數據網,支持TCP/IP協(xié)議,無需經過PSTN等網絡的轉接,可直接與Internet網互通。因此GPRS業(yè)務在無線上網、環(huán)境監(jiān)測、交通監(jiān)控、移動辦公等行業(yè)中具有無可比擬的性價比優(yōu)勢。

為了滿足GPRS終端的低成本、小型化和移動靈活等要求,現(xiàn)在廣泛采用單片機對GPRS終端進行控制,并且引入嵌入式系統(tǒng)實現(xiàn)TCP/IP協(xié)議棧。目前主要的困難在于:運行TCP/IP協(xié)議對計算機存儲器、運算速度等要求較高,會占用大量的系統(tǒng)資源;而嵌入式系統(tǒng)大多采用8位單片機,硬件資源非常有限,支持TCP/IP協(xié)議非常困難。本文采用了在嵌入式實時操作系統(tǒng)uC/OS-II中移植一種小型TCP/IP協(xié)議棧uIP的方法,使基于8051嵌入式系統(tǒng)的GPRS終端能夠在網絡中進行數據傳輸;同時改善了系統(tǒng)的性能,提高了系統(tǒng)的可靠性,增強了系統(tǒng)的可擴展性和產品開發(fā)的可延續(xù)性。

圖1

1 基于GPRS網的數據傳輸

GPRS是在GSM的基礎上引入了分組控制單元(PCU)、服務支持節(jié)點(SGSN)和網關支持節(jié)點(GGSN)等新部件而構成的無線數據傳輸系統(tǒng),其用戶能夠在端到端分組方式下發(fā)送和接收數據;贕PRS網的數據傳輸系統(tǒng)如圖1所示。具體的數據傳輸流程為:

·GPRS終端通過接口從客戶系統(tǒng)中取出用戶數據;

·處理后以GPRS分組數據的形式發(fā)送到GSM基站(BSS);

·分組數據經SGSN封裝后,發(fā)送到GPRS IP骨干網;

·若分組數據是發(fā)送到另一GPRS終端,則先發(fā)送到目的SGSN,再經BSS發(fā)送到CPBS終端;若分組數據是發(fā)送到外部網絡(如Internet),則將分組數據包經GGSN進行協(xié)議轉換后,發(fā)送到外部網絡。

2 嵌入式實時操作系統(tǒng)uC/OS-II

uC/OS-II是由Jean J.Labrosse先生編寫的、現(xiàn)在流行的一種免費公開源代碼的實時操作系統(tǒng)。它可廣泛應用于從8位到64位單片機的各種不同類型、不同規(guī)模的嵌入式系統(tǒng)。帶有詳細注解的uC/OS-II源代碼只有200頁左右;其中95%左右是用C語言編寫的,與MCU類型相關的代碼用8088匯編寫成,不超過200行。uC/OS-II不僅具有結構小巧、可固化、可裁剪、多任務和可剝奪型的實時內核等特點;而且其實時性、穩(wěn)定性裙可靠性也得到了廣泛認可。uC/OS-II的最小內核可編譯至2KB,一般情況占用內存在10KB數量級,適用基于8051的嵌入式系統(tǒng)的需要。在系統(tǒng)中嵌入uC/OS-II可以把整個程序分成許多任務,每個任務相對獨立,然后在每個任務中設置超時函數,時間用完后,必須交出MCU的使用權。即使一個任務發(fā)生問題,也不會影響其他任務的運行。在單片機系統(tǒng)中嵌入uC/OS-II提高了系統(tǒng)的可靠性,并使調試程序變得簡單,同時也增強了系統(tǒng)的可擴展性和產品開發(fā)的可延續(xù)性。

不過uC/OS-II僅僅是一個實時操作系統(tǒng)內核,與商業(yè)實時操作系統(tǒng)軟件包比較,它缺少Utilities部分,如文件系統(tǒng)、遠程函數調用庫、通信軟件庫。通信軟件包括:TCP/IP軟件庫、藍牙通信軟件庫、IrDA紅外通信軟件庫等。這一類軟件的解決有兩種途徑:一個是購買第三方軟件;另一個是自己編寫。如果只是用單片機實現(xiàn)TCP/IP協(xié)議中的某些功能,可以選用免費公開源代碼的小型TCP/IP協(xié)議棧,把它移植到uC/OS-II。 目前uC/OS-II的最新版本為V2.70,但現(xiàn)在廣泛學習和應用的是V2.52。
(范文先生網www.panasonaic.com收集整理)
3 小型TCP/IP協(xié)議棧uIP

uIP是由瑞士計算機科學院的Adam Dunkels等開發(fā)的一種免費公開源代碼的小型TCP/IP協(xié)議棧,它專門為8位和16位MCU編寫。uIP完全是用C語言編寫,它在保證一個完整的TCP/IP棧的前提下,只保留了最必要的一系列特征,使其代碼最少、占用的RAM最小;它只能處理單一的網絡接口。通常的TCP/IP棧采用BSD socket API,需要來自下層的多任務操作系統(tǒng)的支持,而且任務管理、語境切換以及堆?臻g的分配都要占用很大的開銷,超出了8位機系統(tǒng)的能力。uIP采用了一個事件驅動接口,通過調用應用程序響應事件。而相應的應用程序作為C函數調用。通常情況下,uIP的源代碼雖然只有幾KB,RAM占用僅幾百字節(jié),但uIP提供了網絡通信所必須的協(xié)議,包括:ARP、SLIP、IP、UDP、ICMP(PINC)和TCP;能夠滿足8位MCU接入TCP/IP網絡(如Internet)的需要。目前uIP最新的版本為V0.9,符合Internet標準。

4 GPRS終端的工作原理及硬件實現(xiàn)

GPRS終端由控制模塊控制TCP/IP模塊和無線發(fā)送模塊實現(xiàn)。其結構框圖如圖2所示。

4.1 控制模塊

控制模塊的作用主要有:

·控制模塊通過AT指令初始化GPRS無線模塊,使之附著在GPRS網上,獲得網絡運營商動態(tài)分配給GPRS終端的IP地址,并與目的終端或服務器之間建立連接;

·控制模塊通過RS232串口向客戶系統(tǒng)收發(fā)數據或指令;

·控制模塊通過RS232串口向TCP/IP模塊收發(fā)數據;

·控制模塊自主或根據遠程控制指令采取其他操作。

控制模塊的MCU選用華邦的八位機WINBOODW77E58。W77E58是臺灣華邦公司生產的、與MCS51系列單片機兼容的、可多次編程的快速微處理器,在其內部集成有32KB的可重復編程的Flash ROM、256字節(jié)的片內存儲器、IKB用MOVX指令訪問的SRAM、可編程看門狗定時器、三個16位定時器、二個增強型的全雙工串行口、片內RC振蕩器、雙16位數據指針等諸多功能。在很多場合,幾乎不用擴展外圍芯片就能夠滿足系統(tǒng)要求。由于其采用了全新設計的微處理器內核,去除多余的時鐘和存儲周期,在相同的晶振頻率下,根據不同的指令類型,其運行速度一般比傳統(tǒng)8051系列快1.5~3倍。一般情況下,平均可達2.5倍以上。另外,由于W77E58采用全靜態(tài)CMOS設計,能工作在低速晶振頻率下。與普通的8051相比,若W77E58采用低速工作頻率,在相同的指令吞吐量下,W77E58的節(jié)電性能也將大大提高。

4.2 TCP/IP模塊

TCP/IP模塊通過RS232串口與GPRS無線模塊通信,提供非透明和透明兩路通道。相對應地,該模塊有兩種傳輸模式:透明模式和非透明模式。通過軟件切換,模塊在處于不同的傳輸模式時,數據流向也有所不同。當傳送AT指令集時,模塊進入透明模式,可以直接訪問GPRS無線模塊;當模塊進人非透明傳輸方式時,用戶數據從串口進入TCP/IP模塊后,先十丁成TCP/IP包,再經串口發(fā)送給GPRS模塊;GPRS無線模塊把其封裝成GPRS分組數據包傳到GPRS網上。TCP/IP模塊由基于單片機8051的嵌入式系統(tǒng)實現(xiàn)。選用WINBOODW77E58作為嵌入式系統(tǒng)的微處理器,嵌入式實時操作系統(tǒng)選用uC/OS-II,然后在uC/OS-II中移植uIP實現(xiàn)TCP/IP協(xié)議棧。

4.3 GPRS無線模塊

GPRS無線模塊作為GPRS終端的無線收發(fā)模塊,把從TCP/IP模塊接收的TCP/IP包和從基站接收的GPRS分組數據進行相應的協(xié)議處理后再轉發(fā)。GPRS無線模塊采用了SIEMENS公司的MC35 GPRS模塊。MC35模塊主要由射頻天線、內部Flash、SRAM、GSM基帶處理器、匹配電源和一個40腳的ZIF插座組成。GSM基帶處理器是核心部件,其作用相當于一個協(xié)議處理器,用來處理外部系統(tǒng)通過串口發(fā)送過來的AT指令。射頻天線部分主要實現(xiàn)信號的調制與解調,以及外部射頻信號與內部基帶處理器之間的信號轉換。匹配電源為處理器及射頻部分提供所需的電源。MC35 GPRS模塊支持GSM900和GSMl800雙頻網絡,接收速率可達86.20kbps,發(fā)送速率可達21.5kbps,并且很容易集成。當然最大的數據吞吐量還要依賴于GPRS網絡的支持。

5 TCP/IP模塊的軟件實現(xiàn)

5.1 uC/OS-II在8051上的移植

uC/OS-II是自由軟件,非商業(yè)的運用如科研、教學都是免費的。任何使用者都可以從互聯(lián)網上下載其源代碼,通過適當的修改加以移植,使其滿足自己硬件和系統(tǒng)的需要。為了移植,需要先了解uC/OS-II操作系統(tǒng)的總體結構,圖3所示是uC/OS-II的結構及與硬件的關系。

與處理器無關的代碼中包含了uC/OS-II的系統(tǒng)函數,在進行系統(tǒng)移植時一般不需要對這部分進行修改;只要將UCOS-II.C文件包含在自己的項目中,即可將uC/OS-II中所有與MCU無關的代碼包含到移植的代碼中。

與應用相關的代碼是用戶根據自己的應用系統(tǒng)定制合適的內核服務功能,它包括兩個文件:OS_CFG.H、INCLUDES.H。其中OS_CFG.H用來配置內核,用戶根據需要對內核進行定制,設置系統(tǒng)的基本情況,例如系統(tǒng)可提供的最大任務數量、是否定制郵箱服務、是否需要系統(tǒng)提供任務掛起功能、是否提供任務優(yōu)先級動態(tài)改變功能等。而INCLUDES.H則是系統(tǒng)頭文件。

處理器相關的代碼中包含了對各種不同類型MCU的支持,需要根據自己的MCU對這部分進行修改。針對Keil C51編譯器和8051芯片的技術特點,uC/OS-Ⅱ的移植與三個文件相關:處理器相關C文件(OS_CPU.H、OS_CPU_C.C)和匯編文件(OS_CPU_A.ASM)。

(1)修改OS_CPU。H

文件OS_CPU.H中包括了用#define語句定義的與處理器相關的常數、宏以及類型。移植時主要修改的內容有

·與編譯器相關的數據類型的設定。參考Keil C51編譯器中的幫助文件C51.PDF,具體路徑為\C51\HLP\C51.PDF。

·用#define語句定義了兩個宏開關中斷,具體實現(xiàn)為:

#define OS_ENTER_CRITICAL()EA=0//關中斷

#define OS_EXIT_CRITICAL() EA=1 //開中斷

·根據8051堆棧的方向定義OS_STK_GROWTH。

#define OS_STK_GROWTH 0 //8051堆棧從下向上遞增

置OS_STK_GROWTH為0,表示堆棧從下(低地址)向上(高地址)遞增;置OS_STK_GROWTH為1,表示堆棧從上(高地址)向下(低地址)遞減。

·uC/OS-II從低優(yōu)先級任務切換到高優(yōu)先級任務時需要用到OS_STK_SW(),通過執(zhí)行OS_STK_SW()模仿中斷的產生。絕大多數CPU會提供軟中斷或指令陷阱(TRAP)完成這項功能。中斷服務子程序或指令陷阱處理函數(也叫異常處理函數)的中斷向量地址必須指向匯編語言函數OSCtxSw()。因為8051沒有軟中斷指令,所以用程序調用代替。

#define OS_TASK_SW() OSCtxSw()

(2)修改OS_CPU_C.C

uC/OS-II的移植范例要求用戶編寫10個簡單的C函數,其中OSTaskStklnit()是必要的,其他9個函數必須聲明,但不一定包含任何代碼。因為Keil C51在缺省情況下把函數編譯為不可重入的結構,而多任務系統(tǒng)要求并發(fā)操作導致重入,所以要在每個C函數及其聲明后標注reentrant關鍵字,使編譯器生成的代碼在運行中支持函數可重入。另外"pdata"、"data"在uC/OS-II中用做一些函數的形參,但它同時又是Keil C51的關鍵字,這樣會導致編譯錯誤。通?砂"pdata''改成"ppdala","data"改成"ddata"解決此問題。具體修改的代碼如下:

 void * OSTaskStkInit(void (*task)(void *pd),

 void *ppdata,

 void *ptos, 

INT16U opt)reentrant

在基于8051的uC/OS-II中,移植uIP不需要對現(xiàn)有的TCP/IP源代碼做任何修改,但是必須為網絡設備(如網卡芯片、串口等)寫一個驅動程序。同時,現(xiàn)有系統(tǒng)的集成部分也要進行相應的處理,例如當有數據到達或者周期性的定時器計數滿等情況下,主控制系統(tǒng)應該調用uIP函數[劉。移植的具體步驟如下:

·在目錄uip-0.9/下創(chuàng)建一個自己的目錄,例如uip-0.9/8051/;

·把uip_arch.c文件從目錄uip-0.9/unix/中復制到目錄uip-0.9/8051中;它包含了用C語言實現(xiàn)的32位加法、校驗和算法;

·把uipopt.h文件從目錄uip-0.9/unix中復制到目錄uip-0.9/8051中,并對其進行修改,以滿足系統(tǒng)的需要。uipopt.h是ulP的配置文件,其中不僅包含了諸如uIP網點的IP地址和同時可連接的最大值等設置選項,而且還有系統(tǒng)結構和C編譯器的特殊選項;

·參考例子unix/tapdev.c和uip/slipdev.c,為串口編寫驅動程序;

·參考例子unix/main.c,寫自己的主控制系統(tǒng),以便在適當的時候可以調用ulP函數;

·編譯源代碼。

本文闡述了基于8051嵌入式系統(tǒng)的GPRS終端的實現(xiàn),并詳細介紹了嵌入式實時操作系統(tǒng)uC/OS-II基于8051的移植以及小型TCP/IP協(xié)議棧uIP的移植:該GPRS終端利用GPRS網和Internet能夠與相應的GPRS終端以及相應的Internet終端進行數據傳輸。在GPRS終端的TCP/IP模塊中引入時實操作系統(tǒng)不但改善了系統(tǒng)的性能,提高了系統(tǒng)的可靠性,而且增強了系統(tǒng)的可擴展性和產品開發(fā)的可延續(xù)性。


【基于8051嵌入式系統(tǒng)的GPRS終端實現(xiàn)】相關文章:

用GPRS modem實現(xiàn)嵌入式Internet接入系統(tǒng)04-12

基于Winodws CE的嵌入式網絡監(jiān)控系統(tǒng)的設計與實現(xiàn)08-06

基于ARM-μCLinux嵌入式系統(tǒng)啟動引導的實現(xiàn)08-06

基于嵌入式PC的PIII計算機系統(tǒng)設計與實現(xiàn)08-06

基于C8051F021的定位和報警移動終端設計08-06

基于FRAM的公交收費系統(tǒng)的實現(xiàn)08-06

基于DSP的Bluetooth嵌入式系統(tǒng)應用08-06

基于Client/Server 的課件系統(tǒng)的設計與實現(xiàn)08-06

基于Client/Server 的課件系統(tǒng)的設計與實現(xiàn)04-12