孫 駿
(安徽職業技術學院,安徽 合肥 230011)
基于ARM的無線終端系統設計
孫 駿
(安徽職業技術學院,安徽 合肥 230011)
提出了無線數據終端的數據傳輸模型及技術方案,搭建了以S3C44B0X為控制核心的數據終端硬件平臺,完成了外圍電路及GPRS射頻模塊設計。同時,在軟件方面實現了嵌入式實時操作系統μC/OS-II和輕型TCP/IP協議棧(LwIP)的移植用以滿足基于GPRS的無線數據傳輸上層應用。
GPRS;嵌入式系統;μC/OS-II;ARM;LwIP
GPRS技術資源利用率高,引入了分組交換的傳輸模式,使得原來采用電路交換模式的GSM傳輸數據方式發生了根本性的變化,這在于資源短缺的情況下顯得尤為重要。GPRS用戶的計費以通信的數據量為主要依據。實際上,GPRS用戶的連接時間可能長達數小時,卻只需支付相對低廉的連接費用。GPRS可提供高達115kbit/s的傳輸速率(最高值為171.2kbit/s,不包括FEC)。目前,在一些諸如遠程設備監測、工業監控以及自動抄表等嵌入式系統應用領域中,傳輸的數據量不大,采用有限通信方式既浪費又不切合實際,采用光纜投資太高,自建無線電臺局限性大,因而利用無線移動網絡作為傳輸平臺是理想的解決方案。
系統以GPRS網絡作為無線數據傳輸平臺,將數據終端單元和數據業務中心作為終端設備接入到GPRS網絡平臺中來實現最終用戶數據的透明傳輸,其模型如圖1所示。遠端數據終端接入GPRS網絡中后通過GGSN (Gateway GPRS Support Node,GPRS。支持節點網關)接入 Internet中,并和己接入到Internet中的數據中心進行用戶數據的透明傳輸。在該模型中,遠端數據終端包括用戶設備和數據終端單元DTU兩部分,而數據中心則包含數據中心服務器和數據庫。

DTU通過串口使用RS-232標準將數據從用戶設備中讀入,經DTU做透明數據協議處理后打包,使用AT命令(Modem專用控制命令)控制GPRS模塊通過GPRS網絡連接到數據中心;或者將GPRS網絡中的數據讀入DTU,去掉DTU控制信息后將用戶設備控制信息由用戶側串口返回用戶設備。DTU對用戶數據不做任何處理,為用戶設備數據提供透明傳輸通道。當GPRS數據通道中斷后,DTU切換到短信備用通信方式。
3.1 嵌入式硬件系統
硬件部分是實現整個系統功能的基礎也是整個設計實現的關鍵。圖2為系統硬件結構框圖。

在無線數據傳輸終端的硬件結構中,以S3C44B0X處理器為核心,主要有以下幾個模塊組成:
●CPU中央處理器單元:包括S3C44B0X處理器的最小系統、時鐘電路、復位電路等部分。
●FLASH存儲單元:可存放用戶應用程序、操作系統或其他在系統掉電后需要保存的用戶數據等,采用SST39VF160。
●SDRAM存儲單元:作為系統運行時的主要區域,系統、用戶數據及堆棧均位于其中,采用1片32位寬度的DRAM芯片HY57V641620構成8MByte的內存。
●以太網單元:以太網接口為系統提供以太網接入的物理通道,通過該接口系統可以10M的速率接入以太網,采用RTL8019AS網卡芯片。
●JTAG調試接口:該接口可對芯片內部的所有部件進行訪問,對系統進行調試、編程等。
●RS-232串行接口:用于S3C44B0X系統與用戶端進行串行通信時使用。
●GPRS/GSM射頻模塊:用來與GPRS網絡進行通信的射頻模塊,本系統選用Simens的MC55。
3.2 GPRS模塊實現
Siemens GSM/GPRS模塊MC55是內嵌TCP/IP協議棧的三頻模塊。尺寸非常小,有利于集成進嵌入式系統,同時功耗低、可靠性高。支持TCP、UDP、HTTP、FTP、SMTP 和 POP3 等 多 種 網絡協議;具有5KB的Buffer用于GPRS數據傳輸,最大數據包長度為1.5KB,能夠緩存較多的數據進行發送;以AT命令方式實現數據傳輸,每次傳輸都會有結果狀態返回,用戶不需要切換狀態;提供兩個全雙工串口,可以實現兩個TCP通道的同時傳輸,GPRS與短信或語音狀態自動切換。MC55的結構圖如3所示。

Modem采用9V直流供電,通過DC/DC轉換電路為各個芯片提供工作電壓,SIM卡為GPRS Modem接入GPRS網絡提供身份認證GPRS Modem的核心是無線模塊,無線模塊經過電平轉換和濾波電路后,利用RS232接口與控制器進行通信,RS232接口使用標準的DB9FL。GPRS無線模塊從RS232接口接收來自控制器的AT指令,根據指令內容完成模塊的各項設置或者相應動作,并針對每條指令的完成狀況發送回應到控制器。
本文采用了在嵌入式實時操作系統μC/OSII下編程的方法,μC/OS-II內核為通訊協議和應用程序提供任務管理與調度,利用μC/OS-II的占先式多任務調度機制來保證系統的實時性。軟件系統主要包括四部分內容:系統啟動加載程序、嵌入式實時操作系統μC/OS-II、基于μC/OSII的系統應用程序以及網絡應用部分。該系統的軟件模型如圖4

4.1 μC/OS-II的移植
S3C44B0X處理器完全滿足μC/OS-II的移植要求,需要完成的工作非常的簡單,修改三個和體系結構相關的文件即可,代碼量大約是500行。這三個文件是:OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM。
上述工作完成之后,還要對移植后的內核在目標板上進行測試。為μC/OS-II編寫一個啟動程序,初始化系統的硬件環境和軟件環境,初始化定時器以及初始化串口,并向操作系統提供一些硬件相關例程和函數,以方便調試。在CPU、板級和程序自身初始化完成后,就可以把CPU的控制權交給操作系統了。
4.2 LwIP協議棧的移植
LwIP(light weight IP)是瑞士計算機科學院的Adam Dunkels等開發的一套用于嵌入式系統的開放源代碼TCP/IP協議棧。LwIP既可以移植到操作系統上,又可以在無操作系統的情況下獨立運行。LwIP實現的重點是在保持TCP/IP協議主要功能的基礎上減少對RAM的占用,一般只需要幾十K的RAM和40K左右的ROM就可以運行。
LwIP協議棧在設計時就考慮到了將來的移植問題,因此把所有與硬件、OS、編譯器相關的部分獨立出來,放在/src/arch目錄下。因此LwIP在μC/OS-II上的實現就是修改這個目錄下的文件,其它的文件一般不應該修改。
4.2.1 與CPU或編譯器相關的include文件
/src/arch/include/arch 目錄下 cc.h、cpu.h、perf.h中有一些與CPU或編譯器相關的定義,如數據長度,字的高低位順序等。這要與實現μC/OS-II時定義的數據長度等參數一致。
4.2.2 操作系統相關部分sys_arch文件
LwIP為了適應不同的操作系統,在代碼中并沒有使用和某一個操作系統相關的系統調用和數據結構,而是在LwIP和操作系統之間增加了一個操作系統封裝層。操作系統封裝層為操作系統服務(定時、進程同步、消息傳遞)提供了一個統一的接口。LwIP中所有與操作系統相關的部分都在sys_arch.c和sys_arch.h中定義,LwIP協議棧的源代碼中并沒有這兩個函數,只是提供了與這兩個文件有關的描述文檔sys_arch.txt,對于在不同操作系統上的移植必須根據自己的需要和文檔中的要求重新封裝或者編寫這兩個文件。
4.2.3 網絡設備驅動程序
LwIP的網絡驅動有一定的模型,/src/netif/ethernetif.c文件即為驅動的模板,本文的網絡設備8019AS芯片實現驅動即參照此模板。在驅動中主要做的就是實現網絡接口的收、發、初始化以及中斷處理函數。
4.3 無線數據傳輸
系統初始化任務完成對GPRS/GSM模塊的的測試及初始化,GPRS/GSM模塊的操作通過AT命令來實現,發送“AT+回車”命令來測試模塊是否正常工作,如果模塊返回“OK”表示模塊正常。在測試模塊正常工作之后發送其它AT命令來設置模塊數據傳輸速率為115200b/s,設置GPRS連接并建立TCP網絡連接,通過GPRS網絡中的GGSN節點建立起DTU與公共Internet上的數據中心之間的TCP網絡連接,之后初始化用戶側的環狀串口緩沖區準備接收用戶數據。至此,一條DTU與數據中心之間的無線到有線的鏈路建立成功,用戶可以隨時向數據中心傳輸數據。
S3C44BOX URAT單元提供2個獨立的異步串行通信口,均可工作于中斷和DMA模式,最高波特率為115200b/s。每個UART單元包含一個16字節FIFO,用于數據接收和發送。本系統中,兩個異步串口均被使用,一個用于與用戶側設備相接,接收用戶側數據,而另一個與GPRS/GSM射頻模塊相接實現與模塊間的數據傳輸。用戶側串口的工作方式必須選擇中斷方式,一旦有數據立即接收并處理,否則就會出現用戶數據的丟失等現象。
滿包數據發送任務從用戶側串口讀入數據到數據區,當收到16個字符時發送configmsg消息,當收夠一包(256個字符)時,GPRS模塊發送AT命令發送固定長度(256個字符)數據,并清空數據區。當串口數據不足整包即不滿256個字符時或者長時間無數據發送時,就需要數據處理任務對數據做其他處理。數據處理任務讀取串口數據,因其優先級低于滿包數據發送任務,因而當串口數據滿一包時會被高優先級的滿包數據發送任務處理,低優先級的數據處理任務只用來處理不滿一包的數據,將這些不滿一包的數據單獨用AT命令控制GPRS模塊發送。
嵌入式系統的網絡化是當今嵌入式領域的一大研究熱點,在軍事和民用領域都有非常廣泛的應用前景。嵌入式產品將成為互連網的主要終端之一,嵌入式網絡平臺的研究將使得更多的工業設備和儀器方便、快捷、經濟的接入Internet,因而具有廣闊的市場前景。隨著通信費用的進一步降低,GPRS無線數據終端的應用將會迅速普及。
[1]Samsung.Samsung User’s Manual[EB/OL].www.samsung.com,2002.
[2][美]Jean J.Labrosse著,邵貝貝等譯.嵌入式實時操作系統μC/OS-II(第二版)[M].北京:北京航空航天大學出版社,2003.
[3]A.Dunkels.LwIP-a lightweight TCP/IP stack.http://dunkels.com/adam/uip/2002,10.
[4]里吉斯.通用分組無線業務(GPRS)技術與應用[M].北京:人民郵電出版社,2004.
[5]管耀式,楊宗德.ARM嵌入式無線通信系統開發實例精講[M].北京:電子工業出版社,2006.
[6]何劍蘭.基于 S3C44BOX 的 TCP/IP 協議棧實現[J].中國水運,2007,(5):128-129.
WIRELESS TERMINAL SYSTEM DESIGN BASED ON ARM
SUN Jun
(Anhui Vocational and Technical College, Anhui Hefei 230011)
Put out the transmission model and technological scheme about wireless data terminal, build the hardware platform which dominant core is S3C44BOX, accomplished the periphery circuit and GPRS mode.At the same time, in the software,realized transplant of μC/OS-II and the light weight TCP/IP(LwIP) in order to fit the app1ication of wireless data transmission based on GPRS.
GPRS;embedded system;μC/OS-II;ARM;LwIP.
TP393.03
A
1672-2868(2010)06-0034-04
2010-09-04
孫駿(1970-),男,安徽六安人。講師,碩士研究生,研究方向:計算機網絡及嵌入式系統應用。
責任編輯:陳 侃