嵌入式無線局域網(wǎng)設備的設計與實現(xiàn)
1 嵌入式系統(tǒng)簡介
嵌入式系統(tǒng)是指以計算機技術為基礎、以應用為中心、軟件硬件可裁剪,功能、可靠性、功耗、體積、成本有著嚴格要求的專用計算機系統(tǒng)。追求“短、小、輕、薄,省電、快、成本低”的目標。嵌入式系統(tǒng)設備已廣泛應用于制造工業(yè)、過程控制、儀器儀表、軍事裝備、消費類產(chǎn)品等領域。嵌入式系統(tǒng)由軟硬件組成,一般分為五個部分:處理器、存儲器、輸入輸出、操作系統(tǒng)和應用軟件。如圖1所示:
嵌入式系統(tǒng)最初的應用是基于單片機的,它只是使用8位的芯片執(zhí)行一些簡單的單進程的程序,沒有多進程的任務調度,還談不上系統(tǒng)。隨著16/32 位嵌入式微處理器的出現(xiàn),嵌入式系統(tǒng)開始引入嵌入式操作系統(tǒng),從而使得應用開發(fā)人員從小范圍的開發(fā)中解放出來,也使嵌入式有了更廣闊的應用空間。比較著名的嵌入式操作系統(tǒng)有ISI的pSOS、WindRiver的VxWorks、QNX的QNX、微軟的WinCE、以及源代碼開放的Linux和uC/os 等。
圖1:嵌入式系統(tǒng)組成結構圖
2無線局域網(wǎng)概述
無線局域網(wǎng)(Wireless Local Area Network ,WLAN)屬于一種短距離無線通信技術,是現(xiàn)代計算機網(wǎng)絡與無線通信技術相結合的產(chǎn)物。通過無線射頻(RF)或紅外(Infra Red ,IR)技術在空中傳輸數(shù)據(jù)、語音和視頻信號等。無線局域網(wǎng)可在一些特殊的應用環(huán)境中彌補依靠線纜或光纜構成的有線以太網(wǎng)的不足,實現(xiàn)網(wǎng)絡的延伸。
無線局域網(wǎng)標準的物理層定義了兩種射頻傳輸方式和一種紅外傳輸方式。RF方式使用的頻段有三個:L頻段(902MHz~928MHz)、S頻段(2.4GHz~2.4835GHz)、C頻段(5.725GHz~5.85GHz)。一般使用S頻段,該頻段被叫做ISM(Industry Science Medical)頻段即工業(yè)科學醫(yī)療頻段,ISM頻段不受美國聯(lián)邦通信委員會(FCC)的限制,屬于工業(yè)自由輻射頻段。工作在此頻段的無線局域網(wǎng)有直接序列擴頻(Direct Sequence Spread Spectrum, DSSS)和跳頻擴頻(Frequency Hopping Spread Sprectrum ,FHSS)兩種擴頻方法。
1997 年6 月, IEEE 通過了無線局域網(wǎng)的標準,即802.11標準。IEEE 802.11無線局域網(wǎng)標準的制定是無線網(wǎng)絡技術發(fā)展的一個里程碑, 標準主要是對網(wǎng)絡的物理層(PHY)和媒質訪問控制層(MAC) 進行了規(guī)定,其中對MAC 層的規(guī)定是重點。
802.11速率最高只能達到2Mbps ,不能滿足人們的需要, IEEE小組又推出了802.11b標準。IEEE802.11b工作在2.4GHz頻段,采用直接序列擴頻DSSS技術和補償碼鍵控CCK調制方式,可提供11Mb/ s、5.5Mb/s、2Mb/s、1Mb/s多種速率,且在2Mb/s、1Mb/s 速率時與IEEE802.11 兼容。802.11b是目前技術最成熟且使用最多的無線局域網(wǎng)標準。本文采用的就是IEEE-802.11b無線網(wǎng)卡。
目前,人們對無線局域網(wǎng)技術的應用僅局限在PC機和筆記本,且一般用于熱點(Hot Spot)分布地區(qū)。而嵌入式系統(tǒng)整合無線局域網(wǎng)技術實現(xiàn)無線通信和數(shù)據(jù)傳輸將成為今后應用的熱點。例如無線數(shù)字機頂盒、計算機、無線網(wǎng)關和家用電器等可構成家庭無線局域網(wǎng),同時經(jīng)過AP、無線路由器或無線網(wǎng)橋可以連接到Internet;無線儀表進行數(shù)據(jù)采集和無線傳輸;無線儀器設備在工作現(xiàn)場布置自組織網(wǎng)絡(Ad Hoc網(wǎng)絡)相互進行信息傳遞、遠程無線監(jiān)控,減少布線的麻煩和不便,將極大地提高工業(yè)生產(chǎn)效率,方便人們的生活。
3 嵌入式無線局域網(wǎng)模塊的硬件設計
本文以三星S3C2410X為嵌入式微處理器,結合無線局域網(wǎng)技術,設計了一款嵌入式無線局域網(wǎng)設備,實現(xiàn)數(shù)據(jù)采集和無線傳輸。設備硬件結構圖如圖2所示。
圖2:系統(tǒng)硬件結構圖
NAND FLASH用于存放啟動程序、操作系統(tǒng)、TCP/IP協(xié)議棧、驅動程序和相關應用程序。S3C2410X支持NAND FLASH Boot Loader,系統(tǒng)上電后,S3C2410X通過內置的NAND FLASH CONTROLLER將NAND FLASH中的啟動代碼加載到其內部叫“Steppingstone”的4KB SRAM buffer執(zhí)行啟動任務,而不需要經(jīng)過外部的SDRAM進行系統(tǒng)啟動,從而加快整個系統(tǒng)的啟動過程。等啟動完成后,運行操作系統(tǒng),這時的代碼以及后來的應用程序都在外部的SDRAM執(zhí)行。操作系統(tǒng)啟動完成后,就可以執(zhí)行設計的應用程序,通過RS232/485接口進行數(shù)據(jù)采集,再通過802.11b無線網(wǎng)卡將數(shù)據(jù)傳輸出去。S3C2410X的所有GPIO都被引出來,以備將來系統(tǒng)功能的擴展。
[!--empirenews.page--]技術分類: 通信 | 2009-02-23
黃學雷 陳祖爵
S3C2410X是一款基于ARM920T內核的16/32位RISC嵌入式微處理器,該處理器是為手持設備以及高性價比、低功耗微控制器而設計的。它采用了一種叫做AMBA(Advanced Microcontroller Bus Architecture)的新總線架構。S3C2410X內部的主要資源有內存管理單元MMU、系統(tǒng)管理器、各為16KB的指令和數(shù)據(jù)緩存、LCD控制器(STN& TFT)、NAND FLASH Boot Loader、3通道UART、4通道DMA、4個PWM時鐘、1個內部時鐘、8通道10為ADC、觸摸屏接口、多媒體卡接口、I2C和I2S總線接口、 2個USB主機接口、1個USB設備接口、SD主接口、2SPI接口、PLL時鐘發(fā)生器以及通用I/O端口等。
S3C2410X內部包含一個叫MMU的內存管理單元,可以實現(xiàn)虛擬存儲空間到物理存儲空間的映射。通常嵌入式系統(tǒng)的程序存放在 ROM/FLASH中,系統(tǒng)斷電后程序能夠得到保存,但ROM/FLASH與SDRAM相比,速度要慢的多,而且嵌入式系統(tǒng)中通常把異常中斷向量表存放在 RAM中,利用內存映射機構可以解決這種需要。
NAND FLASH采用三星公司64MB的K9S1208VOM。它可進行10萬次的編程/擦除,數(shù)據(jù)保存長達10年,被用來裝載操作系統(tǒng)鏡像和大容量的數(shù)據(jù)。
SDRAM是用來運行操作系統(tǒng)和存儲程序運行過程中所需要的數(shù)據(jù), 采用三星公司的K4S561632C,它是4M*16bit*4bank的同步DRAM,容量為32MB。用兩片K4S561632C實現(xiàn)位擴展,使數(shù)據(jù)總線寬度為32bit.
S3C2410X自帶USB主從接口,不需要專門的USB芯片支持,只要對其安裝驅動程序即可進行USB傳輸數(shù)據(jù)。
4軟件系統(tǒng)設計
軟件系統(tǒng)主要包括操作系統(tǒng)、TCP/IP協(xié)議的移植、驅動程序的安裝以及用戶應用程序的編寫等。
S3C2410X集成了內存管理單元,因而可以實現(xiàn)嵌入式操作系統(tǒng)中更多的功能。在本文中采用Linux作為嵌入式操作系統(tǒng)。
Linux是從UNIX發(fā)展而來,繼承了UNIX大多數(shù)的優(yōu)點且彌補其不適合在PC機上運行的缺點,Linux公開的內核源代碼使得它成為目前最流行的操作系統(tǒng)。
Linux是真正的多用戶、多任務、多平臺操作系統(tǒng),可運行于許多硬件平臺,具有內置安全措施的分層的文件系統(tǒng),支持多達32種文件系統(tǒng),支持大量的外部設備。
定制操作系統(tǒng)的步驟如下:(1)編寫板基支持包BSP;(2)裁剪和配置操作系統(tǒng)的各個部件,并修改相應的配置文件;(3)編譯Kernel、組件和BSP,生成操作系統(tǒng)鏡像文件;(4)將鏡像文件下載到目標板上,進行調試。
將操作系統(tǒng)下載到目標板上有如下幾種方法:通過BDM或JTAG接口下載、USB下載、網(wǎng)絡接口下載和串口下載等。后面幾種方法都要先通過JTAG接口將相應的監(jiān)控程序下載到Flash中,然后CPU從Flash啟動。
要在操作系統(tǒng)支持下實現(xiàn)TCP/IP協(xié)議,就需要進行任務劃分,可以將TCP/IP的實現(xiàn)劃分為4個任務來實現(xiàn):①IP任務,主要用來解決IP 分片的重組;②TCP輸入任務,主要用來處理接收到的TCP報文段;③TCP輸出任務,主要用來將要輸出的數(shù)據(jù)打包、發(fā)送;④TCP定時器任務,主要用來為各種時延事件(如重發(fā)事件)提供時鐘。它們之間的關系可用圖3來表示。
圖3 任務關系
USB驅動程序設計采用WDM(Winddows Drive Mode)。WDM設備驅動程序提供了一個參考框架,大大降低了由DDK書寫驅動程序帶來的難度。
USB驅動程序包含如下幾個部分:
?。?)創(chuàng)建設備
創(chuàng)建設備函數(shù)帶兩個參數(shù)調用,一個參數(shù)是指向驅動程序對象的指針,另一個參數(shù)是指向物理設備對象的指針。
?。?)關閉設備
?。?)讀取設備數(shù)據(jù)
當客戶應用程序有讀取設備數(shù)據(jù)的要求時,系統(tǒng)將此要求以IRP_MJ_READ的IRP形式傳遞給功能驅動程序,由設備的D12Meter_Read程序執(zhí)行,然后再由D12Meter_Read指定USB總線驅動程序直接與設備實現(xiàn)信息交互。
?。?)對設備寫入數(shù)據(jù)
當客戶應用程序有寫設備數(shù)據(jù)的要求時,系統(tǒng)將此要求以IRP_MJ_WRITE的IRP形式傳遞給功能驅動程序,并由D12Meter_Write執(zhí)行,然后再由D12Meter_Write指定USB總線驅動程序直接與設備實現(xiàn)信息交互。
USB驅動程序通過安裝文件(.inf文件)中PID(產(chǎn)品識別號)和VID(廠商識別號)識別USB設備。
一旦操作系統(tǒng)裝載完成后,就可以安裝無線網(wǎng)卡的驅動程序和其他相應的應用程序。將無線網(wǎng)卡的驅動程序作為一個模塊打包到操作系統(tǒng)中,可避免系統(tǒng)掉電后每次都要重裝無線網(wǎng)卡驅動程序。
用戶應用程序要針對具體的應用情況而定,一般都用C語言編寫。
5 總結
嵌入式無線局域網(wǎng)設備可以用于有線網(wǎng)絡無法延伸或難以安裝、有可靈活移動和臨時性使用等要求的場合??梢詳?shù)據(jù)的采集和無線傳輸、可以用于嵌入式手持移動終端、可以用來構建家庭無線局域網(wǎng),若加攝像頭和圖象處理芯片,還可以用于工業(yè)現(xiàn)場中的遠程無線視頻監(jiān)控。