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