1 無線寬帶通信簡介
自1997年IEEE802工作組制定了802.11無線局域網標準,基于WLAN技術的無線寬帶通信得到了迅速發(fā)展。在短短的六年發(fā)展歷程中,WLAN技術不斷地發(fā)展和成熟,先后推出了802.11b/a/g協(xié)議?;?02.11b協(xié)議的無線局域網,工作在2.4GHz頻段,采用CCK調制技術,最高數據傳輸速率能夠達到11Mbps?;?02.11a協(xié)議的無線局域網,工作在5GHz頻段,采用OFDM調制技術,使數據的傳輸速率可高達54Mbps。802.11g協(xié)議結合802.11a和802.11b的優(yōu)點,工作在2.4GHz頻段,采用OFDM調制技術,具有與802.11a標準相同的速率。為了解決通信設備在三個不同標準的無線網絡間的兼容問題,現已有幾家公司提供了IEEE802.11a/b/g的雙頻多模的解決方案。802.11e和802.11i標準即將出爐。這兩個標準將分別解決目前WLAN突出的兩個問題:QoS和網絡安全。Intel公司將迅馳技術成功地應用到筆記本上,人們可以通過WLAN技術輕松地進行無線寬帶上網。然而人們對WLAN技術的應用不僅僅局限于通用的PC機或筆記本的無線聯網,嵌入式系統(tǒng)整合WLAN技術實現無線寬帶通信成為今后應用的熱點。例如由無線數字機頂盒、計算機、無線網關等構成的家庭無線網絡,嵌入式手持移動終端和工業(yè)控制現場無線設備等。近年來,嵌入式微處理器性能的大力提高,基于嵌入式系統(tǒng)的無線寬帶通信模塊不僅能實現數據傳輸,而且還能夠滿足人們對于多媒體通信的需求。在這里,利用一款基于ARM920T內核的微處理器S3C2410X構建一個嵌入式系統(tǒng)完成無線寬帶通信的功能。
2 S3C2410X嵌入式處理器
S3C2410是韓國三星電子公司最近推出的一款基于ARM920T內核的16/32位RISC嵌入式微處理器。該處理器主要面向手持式設備以及高性價比、低功耗的應用。圖1為ARM920T的結構框圖,圖2為S3C2410X在內核外所集成資源的功能框圖[1]。
ARM920T核由ARM9TDMI、存儲管理單元MMU和高速緩存三部分組成。其中,MMU可以管理虛擬內存,高速緩存由獨立的16KB地址和16KB數據高速Cache組成。ARM920T有兩個內部協(xié)處理器:CP14和CP15。CP14用于調試控制,CP15用于存儲系統(tǒng)控制以及測試控制。S3C2410X集成了一個LCD控制器(支持STN和TFT帶有觸摸屏的液晶顯示屏)、SDRAM控制器、3個通道的UART、4個通道的DMA、4個具有PWM功能的計時器和一個內部時鐘、8通道的10位ADC。S3C2410還有很多豐富的外部接口,例如觸摸屏接口、I2C總線接口、I2S總線接口、兩個USB主機接口、一個USB設備接口、兩個SPI接口、SD接口和MMC卡接口。在時鐘方面S3C2410X也有突出的特點,該芯片集成了一個具有日歷功能的RTC和具有PLL(MPLL和UPLL)的芯片時鐘發(fā)生器。MPLL產生主時鐘,能夠使處理器工作頻率最高達到203MHz。這個工作頻率能夠使處理器輕松運行WinCE、Linux等操作系統(tǒng)以及進行較為復雜的信息處理。UPLL產生實現主從USB功能的時鐘。
S3C2410X將系統(tǒng)的存儲空間分成8個bank,每個bank的大小是128M字節(jié),共1G字節(jié)。bank0到bank5的開始地址是固定的,用于ROM或SRAM。bank6和bank7用于ROM、SRAM或SDRAM,這兩個bank可編程,且大小相同。bank7的開始地址是bank6的結束地址,靈活可變。所有內存塊的訪問周期都可編程,外部Wait擴展了訪問周期。S3C2410X采用nGCS[7:0]8個通用片選線選擇8個bank區(qū)。
S3C2410X支持NAND閃存Boot Load, NAND閃存具有容量大、比NOR閃存更具競爭力的價格等特點,系統(tǒng)采用NAND閃存與SDRAM組合,可以獲得非常高的性價比。S3C2410X具有三種boot方式,由OM[1:0]管腳選擇:00時處理器從NAND閃存boot;01時從16位寬的ROM boot;10時從32位寬ROM boot。用戶將bootload代碼和操作系統(tǒng)鏡像放在外部的NAND閃存,采用NAND閃存boot。處理器上電復位時,通過內置的NAND閃存訪問控制接口將bootload代碼自動加載到內部的4KB SRAM(此時該SRAM定位于起始地址空間0x00000000)并且運行,在boot SRAM運行的bootload程序將操作系統(tǒng)的鏡像加載到SDRAM,之后操作系統(tǒng)就能夠在SDRAM運行。啟動完畢后,4KB boot SRAM就可以用于其他用途。如果從其他方式boot,boot ROM就要被定位于內存的起始地址空間0x00000000,處理器直接在ROM上運行boot程序,此時4KB boot SRAM被定位于內存地址0x40000000處。
S3C2410X對于片內的各個部件采用了獨立的電源供給:內核采用1.8V供電;存儲單元采用3.3V獨立供電,對于一般SDRAM可以采用3.3V,對于移動SDRAM可以采用VDD等于1.8/2.5V,VDDQ等于3.0/3.3V;I/O采用獨立3.3V供電[1]。
3 系統(tǒng)硬件平臺
利用S3C2410X出色的內核性能和豐富的外部接口構造一個嵌入式系統(tǒng)平臺,用于嵌入式無線寬帶通信。圖3是該系統(tǒng)的硬件框圖。
在這個嵌入式硬件平臺中,主CPU是SAMSUNG公司的S3C2410X。作為boot的NAND閃存是SAMSUNG公司的SmartMedia卡。根據應用中對于容量的需求可以選用K9S1208VOM,容量為64MB,或者K9D1G08,容量為128MB。
SmartMedia卡為大容量的固態(tài)存儲提供了相當高的性價比。它按照頁進行自動編程,每一頁大小為528個字節(jié),編程的典型時間為200μs;擦除則按照塊進行,每一塊的大小為16K字節(jié),典型的擦除時間為2ms。它在頁面中讀取單個數據的時間為50ns。SmartMedia卡總共只有22個引腳,8根I/O口線、讀寫控制線和電源線。I/O口是地址、命令輸入和數據輸出輸入的復用端口。SmartMedia卡還提供了ECC錯誤糾正碼,實現壞區(qū)檢測以及實時映射,這樣它具有高達10萬次的編程/擦除周期,數據保存長達10年。S3C2410X專門有NAND閃存的接口,所以在硬件上SmartMedia卡直接與這個接口相連。在這個平臺中,SmartMedia卡可以被用作裝載操作系統(tǒng)鏡像以及大容量的數據存儲。
SDRAM被用來運行操作系統(tǒng)以及各類數據的緩存,可采用三星、現代等廠家的產品。這里采用SAMSUNG公司的K4S561632C,它是4M×16bit×4bank的同步DRAM,容量為32MB。用2片K4S561632C,實現位擴展,使數據總線寬度為32bit,總容量為64MB。它的地址空間映射在S3C2410的bank6。
NOR FLASH采用AMD公司的AM29LV800B,容量為1MB。其工作電壓可在2.7V到3.6V之間,訪問時間為70ns,可以作為boot ROM Flash。與其它的Flash不同的是它具有靈活的頁面結構,一個16K字節(jié)頁,2個8K字節(jié)頁,一個32K字節(jié)頁和15個64K字節(jié)頁。至于它的讀寫和擦除操作與一般的線性閃存沒有區(qū)別。在這里AMD閃存主要用于前期的調試和操作系統(tǒng)的下載。
因為S3C2410X本身沒有PCMCIA接口,所以為了連接PCMCIA接口的無線網卡,必須采用一個專用的芯片作為轉接。在這里,采用Intel公司生產的ISA-TO-PC-Card控制器——PD6710。PD6710能夠控制一個PC-Card插槽,兼容PC卡標準、PCMCIA2.1和JEIDA4.1。PD6710采用有效功率和混合電壓技術減少系統(tǒng)的功耗,同時該芯片具有軟控制掛起模式和硬件超級掛起模式實現低功耗的控制。該芯片采用82365SL兼容的寄存器組,具有5個可編程的存儲區(qū)和兩個可編程的I/O區(qū)。PD6710與S3C2410X連接端采用8位或16位的類ISA系統(tǒng)總線(這里采用16位的系統(tǒng)總線),與無線網卡連接端采用8位或16位PC卡總線接口。無線網卡是802.11b標準,這個標準應用最廣泛,而且各大公司的產品都提供了現成的驅動程序。隨著USB接口的廣泛應用,市場上已有USB接口的無線網卡,S3C2410X集成了USB主機接口,可與USB接口的無線網卡直接相連。如果想使用CF卡接口的無線網卡,只需找一個CF-PCMCIA適配器就能完成轉接。
在這個平臺里,采用CS8900網卡芯片實現與以太網的連接,FPGA采用Xilinx公司的SpartanXL系列產品,根據功能要求可以選用XCS40XL型號,使可用門數目高達40K。利用SpartanXL系列器件里的RAM可以實現高速的FIFO或者利用其靈活的可編程性,可以作為這個平臺與外部其他功能模塊的通用接口。例如需要進行多媒體數據的處理時,可以外加一個DSP來完成,這樣S3C2410X就可以通過FPGA實現高速FIFO與DSP的數據交換。
至于人機接口方面的設計,筆者使用SAMSUNG公司的3.5英寸TFT LCD,并帶有觸摸屏。輸入則采用PDA常用的軟鍵盤。
4 軟件平臺及系統(tǒng)開發(fā)
S3C2410X集成了內存管理單元,因此能夠嵌入多種主流操作系統(tǒng),包括Windows CE、Linux、VxWorks等。在這個系統(tǒng)中,選用Windows CE嵌入式操作系統(tǒng)。對于已經熟悉Windows環(huán)境的應用程序開發(fā)者來說,Windows CE提供了友好熟悉的開發(fā)環(huán)境,如Microsoft Win32 API、ActiveX控件、消息隊列、COM接口、ATL和MFC,而且有很多Windows成功的程序可以移植到Windows CE中去,大大提高了開發(fā)的效率。Windows CE嵌入式操作系統(tǒng)能夠給用戶提供熟悉和操作方便的GUI。
WinCE開發(fā)平臺由兩部分組成:Platform Builder和軟件開發(fā)包SDK(Embedded Visual C++和Embedded Visual Basic)。Platform Builder用來定制操作系統(tǒng),SDK則用來開發(fā)應用程序。整個Windows CE系統(tǒng)由三部分組成:應用程序、WinCE各個部件和OEM層。OEM層接口又包括OEM適配層、本地驅動和流接口驅動。定制操作系統(tǒng)的步驟如下:(1)編寫板基支持包BSP(包括OEM適配層OAL和硬件驅動);(2)裁減和配置操作系統(tǒng)的各個部件,并修改相應的配置文件;(3)編譯Kernal、組件和BSP,生成操作系統(tǒng)鏡像文件;(4)將鏡像文件下載到目標設備上,進行調試。定制完操作系統(tǒng)后,在Platform Builder里導出SDK,就可以在Embedded Visual C++或Embedded Visual Basic環(huán)境下針對平臺開發(fā)應用程序[2]。
操作系統(tǒng)定制完后,就要將它下載到目標設備上。常用的方法有以下幾種:通過JTAG接口下載、EBOOT下載、USB下載、串口下載。后面三種下載方法都要先通過JTAG接口將相應的監(jiān)控程序下載到Flash中,然后CPU從Flash啟動。因為S3C2410X集成了一個從USB接口,因此在沒有以太網的情況下,通過USB下載特別方便,而且下載速度遠遠大于串口下載。在實際的系統(tǒng)開發(fā)中,利用JTAG調試器將USB監(jiān)控程序編程到AMD 閃存,然后讓S3C2410X從AMD 閃存boot。主機運行SAMSUNG公司提供的DNW程序,利用串口進行信息交互,通過USB將BootLoader和操作系統(tǒng)鏡像下載到SDRAM中,然后通過USB下載一個NAND閃存的寫程序到SDRAM并運行,將SDRAM中的BootLoader和操作系統(tǒng)鏡像寫到SmartMedia卡中。下載完畢后,改變boot方法,讓S3C2410X從SmartMedia卡開始boot,操作系統(tǒng)即能在平臺中運行起來了。
一旦操作系統(tǒng)裝載完后,就可以通過Microsoft ActiveSync安裝無線網卡的驅動程序和相應的應用程序了。為了避免掉電后重新安裝無線網卡驅動程序,可以將驅動程序直接打包在操作系統(tǒng)中。為了避免每次開機時IP地址的重新設置,利用塊設備進行永久注冊表存儲。在具體實現中,WinCE提供RegCopyFile函數保存注冊表信息和RegRestoreFile函數加載注冊表信息。如果在一個無線寬帶網絡中,存在一個DHCP服務器,那么這個嵌入式系統(tǒng)可以通過DHCP動態(tài)獲得IP地址,解決了在沒有人機接口的情況下設置IP地址的問題。因為WinCE集成了TCP/IP協(xié)議,所以直接利用操作系統(tǒng)所提供的Socket接口開發(fā)各類無線網絡應用程序[3]。
5 應用
基于S3C2410X的無線寬帶通信模塊可被廣泛地應用到WLAN網絡中的各類移動終端,實現數據和多媒體的傳輸。圖4為該模塊在WLAN中應用示意圖。AP為無線接入點,MT為基于S3C2410X的現場無線通信移動終端,它們之間通過802.11b協(xié)議進行無線通信。DS為分布式系統(tǒng),AP通過它進行通信。一般AP與有線網絡相連,這樣MT不僅可以相互通信,而且還能與有線網絡實現數據傳輸。
這個嵌入式模塊集成豐富的接口,不僅可以實現有線網絡和無線網絡的無縫連接,而且如果附加一個CCD攝像頭和一個DSP處理模塊就可以實現圖像的無線監(jiān)控。目前,該模塊已經在現場總線無線通信中得到了應用。