《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于AT91R40008的嵌入式GPRS傳輸終端的設計
基于AT91R40008的嵌入式GPRS傳輸終端的設計
摘要: 本文給出了一種基于32位ARM微處理器和GPRS的嵌入式無線數據傳輸終端的實現方案,。該方案硬件成本不高于采用中高檔單片機的實現方案,,同時具有數據吞吐量大,、可靠性高,、處理能力強等優(yōu)點,。嵌入式TCP/IP協(xié)議和實時系統(tǒng)相結合的軟件平臺,,增強了系統(tǒng)的功能性和實時性,,這種平臺不僅可以作為測控網絡與Internet數據接入終端,,還可以實現FTP,、WEB、GUI,、FS等多種嵌入式應用,,用于遠程監(jiān)控網站、監(jiān)控圖片傳輸,、網絡硬盤,、現場界面機等應用場合,替換PC機降低系統(tǒng)成本,。
Abstract:
Key words :

       本文給出了一種針對工業(yè)總線的嵌入式系統(tǒng)連接Internet的無線上網方案,,探討了實現該方案中要解決的主要問題。設計并實現了基于AT91R40008微處理器和G18 GSM模塊的嵌入式GPRS傳輸終端,,采用層次結構和標準接口,,實現了基于實時操作系統(tǒng)μC/OS-Ⅱ的嵌入式TCP/IP協(xié)議棧,對軟件系統(tǒng)中的主要模塊進行了分析,。

  1 引言

   隨著Internet的快速發(fā)展,,Internet已成為信息流通的重要渠道,Internet接入終端在各種遠程監(jiān)控系統(tǒng)中得到廣泛應用,。采用GPRS無線移動互聯網接入技術的終端,,使得現有工業(yè)總線的監(jiān)控系統(tǒng)直接通過Internet進行遠程數據傳輸,解決了采用以太網或電話線接入Internet的有線通訊布線困難,、覆蓋范圍小,、無法移動通信等問題。Internet接入終端已經成為工業(yè)控制,、遠程測量,、交通管理等應用熱點,。本文給出了基于ARM處理器和GPRS Modem嵌入式數據傳輸終端的設計與實現。

  2設計原理

  將嵌入式系統(tǒng)接入Internet涉及兩個關鍵問題,,即傳送信息的媒質和采用的協(xié)議,,傳輸媒質可以是以太網或者電話線等媒介,在本設計中采用GPRS Modem作為無線接入Internet的媒質,;協(xié)議采用嵌入式TCP/IP協(xié)議棧,。通過GPRS Modem與當地GSM基站中的GPRS業(yè)務節(jié)點進行無線通信,進入GPRS網絡,,然后通過GPRS網關與Internet進行數據傳輸,。

 系統(tǒng)硬件劃分為控制模塊和GPRS modem模塊,GPRS modem模塊提供接入Internet 的TCP/IP物理連接,;控制模塊是主控軟件的載體,負責控制將處理好的數據通過GPRS modem發(fā)送出去或者傳向工業(yè)總線,。在控制模塊中,,微控制器的一個串行接口連接GPRS modem,通過對GPRS modem的控制和通信,,實現Internet網絡數據的收發(fā),;另一個串行接口通過工業(yè)總線與其他嵌入式設備進行數據通信。該實現方法采用數據透明傳輸,,對原有的嵌入式系統(tǒng)不附加限制條件,,較好地實現了網絡功能,而且系統(tǒng)的實時性較高,。

  3基于AT91R40008的硬件設計

  為了解決網絡協(xié)議軟件和實時操作系統(tǒng)處理的硬件瓶頸,,設計中選擇了Atmel公司的AT91R40008微控制器,一款基于ARM7TDMI核的32位微控制器,,工作頻率為66M,,其片內集成了256KB RAM,可以直接將代碼運行在片上RAM中,,使得本次應用程序可以采用任務查詢方式,,增強系統(tǒng)的穩(wěn)定性,并且兩個全雙工通用同步/異步收發(fā)器(USART)與外圍控制器PDC連接,,使用PDC方式,,整段數據交給硬件自動收發(fā)處理比單字節(jié)處理要大大減輕系統(tǒng)處理壓力,提高了系統(tǒng)的實時性,。

  圖1所示為控制模塊的硬件連接圖,。圖中MAX232負責實現系統(tǒng)的另一個用戶接口與標準232總線之間的電平轉換;24CL04負責存儲系統(tǒng)運行時需要的重要參數,,如遠程連接的IP地址,、端口等。如果為了緊縮設備體積可以采用將AT91R40008和AT49BV1614A集成在一起的AT91FR40162處理器。GPRS Modem模塊采用的是Motorola g18 DIN,,該模塊為用戶的無線上網提供了物理鏈路,。

圖1 控制模塊硬件結構圖


  4 軟件設計

  軟件部分的主要功能包括系統(tǒng)及設備的初始化,創(chuàng)建接收發(fā)送任務,,建立連接的通信鏈路,,保證網絡連接實時有效等。采用的實時操作系統(tǒng)是源碼開放的嵌入式操作系統(tǒng)μC/OS-Ⅱ,,為了嵌入式系統(tǒng)能接入Internet,,成功移植實時操作系統(tǒng)后還要實現一個嵌入式TCP/IP協(xié)議棧。軟件設計采用層次結構,,從下到上依次是:硬件驅動程序,、操作系統(tǒng)內核軟件、網絡接口軟件,、協(xié)議軟件和應用程序,。

  4.1實時操作系統(tǒng)μC/OS-Ⅱ的移植

  移植μC/OS-Ⅱ的工作主要包括以下幾個部分:修改OS_CPU.H文件,該文件主要包含與編譯器相關的數據類型的定義,、處理器實現開關中斷的方法,、堆棧類型的定義和幾個宏定義及函數說明;修改OS_CPU_C.C文件,,用C語言實現堆棧初始化和幾個提供給用戶用于擴展操作系統(tǒng)功能的hook(又稱為鉤子函數)函數,;修改OS_CPU_A.S文件,用與CPU相關的匯編語言實現CPU開/關中斷,、任務級的任務切換,、中斷級的任務切換以及時鐘中斷程序。

  采用GCC編譯器編譯時,,除了對上述文件做相應移植修改外,,對實時系統(tǒng)的源碼不做改動,但要編寫能在操作系統(tǒng)內直接調用的微控制器外圍設備驅動函數,,這些驅動函數構成微控制器的控制驅動函數庫,,使得在操作系統(tǒng)內可以完成UART控制、I2C總線訪問,、PIO控制等硬件操作,,對移植后的實時系統(tǒng)能夠使用各個外圍器件以及協(xié)議的實現都很重要。

  4.2 嵌入式TCP/IP協(xié)議棧

  在實時操作系統(tǒng)上需要一個TCP/IP協(xié)議棧來實現在Internet接入并收發(fā)數據,,為了提高效率節(jié)省資源,,采用簡化的TCP/IP協(xié)議棧,本次應用只保留了TCP,、UDP,、IP和PPP協(xié)議,,如圖2所示,網絡協(xié)議棧和構件為網絡環(huán)境的嵌入式應用提供有效的系統(tǒng)服務,。

圖2 網絡協(xié)議棧和部件

       傳輸層采用TCP(傳輸控制協(xié)議)和UDP(用戶數據報協(xié)議),。TCP是一種面向連接的協(xié)議,它提供可靠的字節(jié)流傳輸,;UDP協(xié)議沒有保證可靠性的機制,,但可以實現高速高效的發(fā)送數據報。網絡層協(xié)議實現的主要是IP,,在實現中IP協(xié)議不支持IP包的分片和重裝以及路由選擇,。物理層的GPRS Modem實現了連接網絡的物理設備,要通過Modem撥號上網,,必須在數據鏈路層上實現PPP撥號協(xié)議,,按照PPP協(xié)議的要求與移動GPRS網關建立通信鏈路。為了方便協(xié)議軟件的使用還要實現各個層面的接口,,網絡接口層在網絡協(xié)議和網絡設備,、不同的協(xié)議層之間提供了一個相互內部隔離的編程接口。BSD Socket接口為應用提供了訪問網絡的統(tǒng)一接口,。

  4.3 緩沖區(qū)和驅動軟件

  本次應用中緩沖區(qū)和驅動軟件是提高系統(tǒng)性能的關鍵,通過多種緩沖區(qū)設計將多層次結構的軟件緊密的整合在一起,,可以緩和各層軟件之間處理瓶頸,,提高連續(xù)數據并行處理能力;高效驅動軟件的設計降低了硬件處理對CPU的占有率,。

  數據經過串口硬件設備進入軟件系統(tǒng)后就開始在一系列緩沖區(qū)中傳遞,,圖3所示為所采用的緩沖結構。從左到右依次是串口的收發(fā)緩沖區(qū),、串口收發(fā)工作緩沖區(qū),、網絡接口讀寫緩沖區(qū),最后是協(xié)議棧緩沖區(qū),。這樣整個數據交流過程就變成對本層緩沖區(qū)的讀寫,,接口程序的編寫相對簡單明了。

圖3 緩沖區(qū)設計示意圖 


       每個串口的收發(fā)緩沖區(qū)是6組長度為512字節(jié)的char類型數組,,工作緩沖區(qū)是長度為1KB的char類型環(huán)行隊列,;網絡接口讀寫緩沖區(qū)采用和工作緩沖區(qū)相同的結構;協(xié)議棧緩沖區(qū)是協(xié)議軟件處理過程中數據的唯一載體,協(xié)議棧緩沖區(qū)采用結構體的靜態(tài)鏈表結構,。

 上述緩沖區(qū)設計不僅保證了連續(xù)數據到來時CPU有足夠的處理時間和空間,,而且將硬件和網絡協(xié)議軟件隔離便于軟件的設計開發(fā)。這種設計模式會占用大量RAM空間,,但是所采用的ARM處理器片內集成了256KB RAM,,所以有足夠的RAM作緩沖區(qū)以提高系統(tǒng)性能,。軟件的RAM使用情況如表1所示。其中還可以有100KB左右的內存空間可以提供給軟件升級,,而且用戶可以選擇程序的FLASH運行方式,,節(jié)省更多RAM為軟件升級使用。

 表1 整個系統(tǒng)的RAM占用表

       驅動程序包括三部分:初始化部分,,函數功能部分和中斷服務程序ISR,。初始化部分初始化硬件設備,分配設備所需的資源,,完成系統(tǒng)相關的設置,;函數功能部分完成系統(tǒng)指定的功能,中斷服務程序的主要功能是發(fā)起一個任務來完成必要的處理,。為串口硬件編寫驅動函數的工作主要是串口的啟動,、停止、波特率設置,、控制PDC以及對緩沖區(qū)的讀寫,。

  4.4系統(tǒng)啟動工作流程

  處理器上電后首先進行CPU硬件、操作系統(tǒng),、協(xié)議棧軟件參數的初始化工作,;測試外設GSM模塊,由于GSM模塊作為一個相對重要而且較為獨立的設備,,它的啟動過程相對MCU要慢很多,,所以在系統(tǒng)進入正常運行階段之前必須等待GSM模塊正常工作以后,才能進行網絡服務器的連接,。用戶任務除了負責網絡和工業(yè)總線數據交換以外,,由于在GSM信號、模塊電源受到干擾或SIM卡震動使都會引起GSM模塊死機,,所以還要建立GSM模塊檢測任務,,負責網絡連接的檢測以及判斷網絡中斷連接是否由GSM模塊故障引起,從而決定是否對GSM模塊重啟,,以保證整個系統(tǒng)的穩(wěn)定運行,。

  5 結束語

  本文給出了一種基于32位ARM微處理器和GPRS的嵌入式無線數據傳輸終端的實現方案。該方案硬件成本不高于采用中高檔單片機的實現方案,,同時具有數據吞吐量大,、可靠性高、處理能力強等優(yōu)點,。嵌入式TCP/IP協(xié)議和實時系統(tǒng)相結合的軟件平臺,,增強了系統(tǒng)的功能性和實時性,這種平臺不僅可以作為測控網絡與Internet數據接入終端,,還可以實現FTP,、WEB,、GUI、FS等多種嵌入式應用,,用于遠程監(jiān)控網站,、監(jiān)控圖片傳輸、網絡硬盤,、現場界面機等應用場合,,替換PC機降低系統(tǒng)成本。

  參 考 文 獻:

  [1] 馬忠梅, 徐英慧等. AT91系列ARM核微控制器結構與開發(fā)[M]. 北京: 北京航空航天大學出版社,2003.
  [2] Jean J.Labrosse. 嵌入式實時操作系統(tǒng)μC/OS-Ⅱ(第二版)[M].邵貝貝譯.北京:北京航空航天大學出版社,,2003,。
  [3] Gary R.Wright, W.Richard Stevens. TCP/IP詳解 卷2:實現[M]. 北京:機械工業(yè)出版社,2002 .

此內容為AET網站原創(chuàng),未經授權禁止轉載,。