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