引 言
傳統(tǒng)的移動(dòng)通信系統(tǒng)是集中式控制的,網(wǎng)絡(luò)的運(yùn)行要基于預(yù)先架設(shè)好的網(wǎng)絡(luò)設(shè)備,但是在不能采用有中心的控制方式時(shí)并不適用。這時(shí)需要能實(shí)現(xiàn)臨時(shí)快速自動(dòng)組網(wǎng)、節(jié)點(diǎn)能夠移動(dòng)的網(wǎng)絡(luò)。
移動(dòng)Ad hoc網(wǎng)絡(luò)是一種有特殊用途的對(duì)等式網(wǎng)絡(luò),使用無(wú)線通信技術(shù)、網(wǎng)絡(luò)中的節(jié)點(diǎn)互相作為其鄰居的路由器,通過(guò)節(jié)點(diǎn)轉(zhuǎn)發(fā)實(shí)現(xiàn)節(jié)點(diǎn)間的通信,節(jié)點(diǎn)可以移動(dòng)。與傳統(tǒng)的移動(dòng)通信系統(tǒng)相比,它無(wú)需固定網(wǎng)絡(luò)作為支撐,具有組網(wǎng)快速靈活、支持高移動(dòng)性、抗毀性強(qiáng)、成本低廉等優(yōu)點(diǎn),特別適用于軍事、搶險(xiǎn)救災(zāi)、電子教室等領(lǐng)域。這種網(wǎng)絡(luò)已經(jīng)成為無(wú)線通信領(lǐng)域中一種有效的通信網(wǎng)絡(luò)形式,而且已經(jīng)取得了廣泛的應(yīng)用,如802.11系統(tǒng)、美國(guó)海陸空一體化數(shù)字通信系統(tǒng)。
在移動(dòng)Ad hoc網(wǎng)絡(luò)中,由于通信節(jié)點(diǎn)是可移動(dòng)的,因此網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)也隨之動(dòng)態(tài)變化,在Ad hoc網(wǎng)絡(luò)的研制階段,要驗(yàn)證網(wǎng)絡(luò)通信協(xié)議的正確性,必須依托于實(shí)際的物理信道,做大量的野外試驗(yàn),給網(wǎng)絡(luò)通信實(shí)驗(yàn)帶來(lái)很大的困難。網(wǎng)絡(luò)環(huán)境模擬器就是在這種背景下提出的,利用網(wǎng)絡(luò)環(huán)境模擬器,可以不依賴實(shí)際的物理信道,而且可以不用考慮物理層的傳輸協(xié)議,而只考慮MAC層和網(wǎng)絡(luò)層的協(xié)議開(kāi)發(fā),可以加快系統(tǒng)研發(fā)進(jìn)程,便于系統(tǒng)調(diào)試和維護(hù),是應(yīng)用于通信網(wǎng)絡(luò)模擬試驗(yàn)中的一種簡(jiǎn)便而有效的設(shè)備。
網(wǎng)絡(luò)環(huán)境模擬器的功能要求
基于網(wǎng)絡(luò)環(huán)境模擬器的Ad Hoc網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)由一個(gè)網(wǎng)絡(luò)環(huán)境模擬器和16個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)控制器組成。網(wǎng)絡(luò)環(huán)境模擬器模擬一個(gè)真實(shí)的Ad Hoc網(wǎng)絡(luò)環(huán)境,網(wǎng)絡(luò)控制器模擬Ad Hoc網(wǎng)絡(luò)中的節(jié)點(diǎn),網(wǎng)絡(luò)環(huán)境模擬器是針對(duì)移動(dòng)Ad hoc網(wǎng)而研制的,移動(dòng)Ad hoc網(wǎng)具有自組織和自適應(yīng)的特性,包括自適應(yīng)拓?fù)涮綔y(cè)、自適應(yīng)拓?fù)涓?、自適應(yīng)路由選擇、網(wǎng)絡(luò)自動(dòng)管理功能等。在Ad hoc網(wǎng)絡(luò)的研制階段,還需要MAC層多址協(xié)議的支撐,常用的有CSMA和TDMA。網(wǎng)絡(luò)環(huán)境模擬器也要為MAC層接入?yún)f(xié)議提供相應(yīng)的支持。為了適應(yīng)這些特性,網(wǎng)絡(luò)環(huán)境模擬器應(yīng)具有以下功能:
能夠任意改變網(wǎng)絡(luò)拓?fù)潢P(guān)系,并且網(wǎng)絡(luò)節(jié)點(diǎn)的移動(dòng)速度可以按照真實(shí)的情況模擬;
模擬無(wú)線傳輸環(huán)境,實(shí)現(xiàn)節(jié)點(diǎn)間的數(shù)據(jù)傳輸,并能實(shí)現(xiàn)無(wú)線信道的特性,在各通信節(jié)點(diǎn)傳輸路徑上可以加不同的誤碼;
能夠?yàn)榫W(wǎng)絡(luò)中的節(jié)點(diǎn)提供時(shí)間基準(zhǔn)和時(shí)間同步信息,以支持TDMA或者跳頻接入?yún)f(xié)議;
支持多頻分層分布式的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),能夠模擬網(wǎng)絡(luò)中的節(jié)點(diǎn)之間的多信道;
能夠跟蹤每個(gè)節(jié)點(diǎn)接收和發(fā)送的數(shù)據(jù)包,為網(wǎng)絡(luò)層和MAC層的調(diào)試提供支持;
能夠提供相關(guān)信息的界面顯示,能夠顯示網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),以及網(wǎng)絡(luò)節(jié)點(diǎn)收發(fā)狀態(tài)、收發(fā)歷程及信道信息;
系統(tǒng)硬件設(shè)計(jì)
網(wǎng)絡(luò)環(huán)境模擬器主要由主控MCU、總線驅(qū)動(dòng)模塊、多串口擴(kuò)展模塊、LCD顯示模塊、鍵盤(pán)模塊等組成。其系統(tǒng)框圖如圖1所示。
主控MCU與多串口擴(kuò)展模塊和LCD顯示模塊之間采用EBI總線通信,為了增強(qiáng)MCU總線的驅(qū)動(dòng)能力,在主控MCU與外圍之間有一個(gè)總線驅(qū)動(dòng)模塊。鍵盤(pán)模塊跟MCU的IO口相連。主控MCU完成外圍電路的控制,處理整個(gè)模擬器的工作流程。多串口擴(kuò)展模塊完成網(wǎng)絡(luò)環(huán)境模擬器的端口擴(kuò)展。LCD顯示模塊完成網(wǎng)絡(luò)拓?fù)洹⒐?jié)點(diǎn)收發(fā)狀態(tài)、節(jié)點(diǎn)是否碰撞、節(jié)點(diǎn)收發(fā)數(shù)據(jù)的長(zhǎng)度以及節(jié)點(diǎn)收發(fā)歷程的顯示。鍵盤(pán)模塊完成節(jié)點(diǎn)移動(dòng),改變網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
主控MCU模塊
主控MCU模塊是網(wǎng)絡(luò)環(huán)境模擬器的核心處理部分,完成外圍顯示模塊、串口擴(kuò)展模塊及鍵盤(pán)控制模塊的控制,處理整個(gè)模擬器的工作流程。
MCU采用ATMEL公司的32位ARM微處理器AT91RM9200。AT91RM9200芯片基于ARM920T內(nèi)核,為32位 RISC處理器,它工作在180MHz頻率下,運(yùn)算速度可高達(dá)200MIPS。由于AT91RM9200 內(nèi)部只有16KB的SRAM,遠(yuǎn)遠(yuǎn)不能滿足應(yīng)用程序的要求,需要擴(kuò)展外部SDRAM及FLASH。外擴(kuò)的存儲(chǔ)芯片采用ICSI公司的SDRAM芯片IC42S32200L和MICRON公司的FLASH芯片 MT28F640J3。IC42S32200L數(shù)據(jù)總線是32位的,存儲(chǔ)空間為64Mbit,MT28F640J3數(shù)據(jù)總線是16位的,存儲(chǔ)空間為64Mbit。
串口擴(kuò)展模塊
網(wǎng)絡(luò)環(huán)境模擬器需要提供多個(gè)與網(wǎng)絡(luò)節(jié)點(diǎn)的接口,這里我們采用RS-232標(biāo)準(zhǔn)串口作為通信端口。AT91RM9200的串口只有4個(gè)(其中有一個(gè)是DEBUG串口),所以我們需要外部擴(kuò)展串口。在串口擴(kuò)展模塊中,我們采用TI公司的TL16C554A作為串口擴(kuò)展芯片?;贏T91RM9200+TL16C554A的嵌入式系統(tǒng)的多串口擴(kuò)展是網(wǎng)絡(luò)環(huán)境模擬器硬件的主體部分。TL16C554A與主控MCU的接口連接如圖2所示。
TL16C554A是TI公司生產(chǎn)的4通道異步收發(fā)器集成芯片,TL16C554A的主要特點(diǎn)如下:由4個(gè)帶有邏輯控制的TL16C550A異步通信單元組成,每個(gè)通道相對(duì)獨(dú)立;最高可達(dá)1M的波特率,具有可編程的波特率發(fā)生器,便于靈活選擇數(shù)收發(fā)頻率;每個(gè)通道獨(dú)立控制發(fā)送和接收數(shù)據(jù),有獨(dú)立的Modem控制信號(hào),數(shù)據(jù)和控制總線均采用三態(tài)TTL驅(qū)動(dòng);具有完全可編程的串行數(shù)據(jù)格式,數(shù)據(jù)位長(zhǎng)度可設(shè)為5,6,7或8,停止位長(zhǎng)度可為1或2,校驗(yàn)?zāi)J娇梢允桥夹r?yàn)、奇校驗(yàn)或無(wú)校驗(yàn)。
LCD顯示模塊
LCD顯示模塊提供了人機(jī)交互界面,在LCD上可以顯示網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),節(jié)點(diǎn)移動(dòng)情況,節(jié)點(diǎn)的收發(fā)狀態(tài),節(jié)點(diǎn)的收發(fā)歷程,以及節(jié)點(diǎn)收發(fā)數(shù)據(jù)所用到的信道。在LCD上,左邊的區(qū)域是節(jié)點(diǎn)收發(fā)歷程及收發(fā)信道顯示,每個(gè)節(jié)點(diǎn)有一個(gè)長(zhǎng)條形窗口與其對(duì)應(yīng),節(jié)點(diǎn)的收發(fā)歷程及收發(fā)信道在窗口內(nèi)流動(dòng)顯示,窗口的上半部分顯示節(jié)點(diǎn)的收發(fā)歷程,下半部分顯示節(jié)點(diǎn)當(dāng)前收發(fā)所用的信道。右邊的區(qū)域是網(wǎng)絡(luò)拓?fù)滹@示,網(wǎng)絡(luò)中的節(jié)點(diǎn)如果在通信范圍之內(nèi),節(jié)點(diǎn)間有實(shí)線連接。LCD顯示示意圖如圖3所示。
LCD顯示采用EPSON公司的圖形控制芯片S1D13806,它是專為嵌入式系統(tǒng)設(shè)計(jì)的,,內(nèi)置SDRAM,最高達(dá)到800 x 601的分辨率。這里S1D13806采用EBI總線方式與AR91RM9200通信(20位地址線,16位數(shù)據(jù)線),內(nèi)置1.28M的 SDRAM與系統(tǒng)統(tǒng)一編址,作為顯示緩存,這樣控制端將圖像數(shù)據(jù)通過(guò)系統(tǒng)總線送到主機(jī)接口單元。根據(jù)寄存器設(shè)置,數(shù)據(jù)被送往內(nèi)置SDRAM,余下的工作由13806接管,既不需要MCU的干預(yù),也克服了其他接入方式帶寬不足的缺點(diǎn),可以有效地避免圖像的抖動(dòng)和花屏。
對(duì)S1D13506的控制,首先應(yīng)該配置AT91RM9200的EBI總線寄存器,即定義讀寫(xiě)信號(hào)脈沖長(zhǎng)度、等待狀態(tài)、數(shù)據(jù)流動(dòng)時(shí)間、字節(jié)訪問(wèn)類型、數(shù)據(jù)總線寬度。然后再通過(guò)EBI總線配置S1D13806的工作模式。
S1D13506驅(qū)動(dòng)LCD顯示屏需要的50MHz的BUCLK時(shí)鐘由外部晶振提供,25MHz的CLK1和12.5MHz的CLK2由可編程時(shí)鐘發(fā)生器芯片ICS1523提供,AT91RM9200通過(guò)I2C總線控制ICS1523,使其輸出所需CLK1和CLK2的頻率,以適應(yīng)不同規(guī)格的LCD或VGA需求,提高顯示解決方案的通用性。由于S1D13506訪問(wèn)RAM需要等待70ns,這造成LCD顯示速度比較慢。本系統(tǒng)并不需要頻繁切換圖形界面,主要考慮到AT91RM9200是一款很適合工業(yè)控制用的高速ARM處理器。
鍵盤(pán)控制模塊
鍵盤(pán)控制模塊與AT91RM9200的IO口相連,AT91RM9200利用查詢方式,監(jiān)測(cè)相應(yīng)IO引腳有無(wú)電平變化,然后進(jìn)行相應(yīng)的處理。鍵盤(pán)控制模塊可以控制節(jié)點(diǎn)移動(dòng),并且可以選擇節(jié)點(diǎn)的移動(dòng)速度。同時(shí)也可以預(yù)設(shè)幾種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),利用鍵盤(pán)直接選擇一種拓?fù)浣Y(jié)構(gòu),節(jié)點(diǎn)能按照選擇的移動(dòng)速度,移動(dòng)到相應(yīng)的位置。
系統(tǒng)的軟件實(shí)現(xiàn)
網(wǎng)絡(luò)環(huán)境模擬器的軟件分兩個(gè)模塊,一個(gè)模塊用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)環(huán)境的模擬,另一個(gè)模塊用來(lái)實(shí)現(xiàn)相關(guān)信息在LCD上的顯示。對(duì)于網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn),網(wǎng)絡(luò)環(huán)境模擬器都有一個(gè)端口與其對(duì)應(yīng),在程序中每個(gè)網(wǎng)絡(luò)環(huán)境模擬器的端口都有一個(gè)結(jié)構(gòu)體與其對(duì)應(yīng)。
網(wǎng)絡(luò)環(huán)境的模擬
在網(wǎng)絡(luò)環(huán)境模擬器中,網(wǎng)絡(luò)環(huán)境的模擬主要有:物理層無(wú)線傳輸、網(wǎng)絡(luò)拓?fù)渥兓⑻峁┩叫盘?hào)等方面。
模擬無(wú)線信道傳輸
模擬物理層傳輸主要有三方面,一、網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送數(shù)據(jù),其它節(jié)點(diǎn)當(dāng)滿足接收條件時(shí)應(yīng)該能收到數(shù)據(jù);二、要模擬節(jié)點(diǎn)數(shù)據(jù)傳輸速率;三、模擬節(jié)點(diǎn)間傳輸路徑上誤碼。
在真實(shí)的網(wǎng)絡(luò)環(huán)境中,一個(gè)網(wǎng)絡(luò)中的節(jié)點(diǎn)能夠接收到另一個(gè)節(jié)點(diǎn)的數(shù)據(jù),需要滿足的條件有:一個(gè)節(jié)點(diǎn)是發(fā)狀態(tài),另一個(gè)是收狀態(tài),并且兩個(gè)節(jié)點(diǎn)處在同一個(gè)信道上,而且接收方應(yīng)該處在發(fā)射方的功率覆蓋范圍之內(nèi)。在網(wǎng)絡(luò)環(huán)境模擬器中的模擬是這樣做的,網(wǎng)絡(luò)環(huán)境模擬器和網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)據(jù)交互有兩種類型:控制信息和數(shù)據(jù)信息。網(wǎng)絡(luò)節(jié)點(diǎn)利用控制信息給網(wǎng)絡(luò)環(huán)境模擬器對(duì)應(yīng)的端口設(shè)置相應(yīng)的狀態(tài),數(shù)據(jù)信息是網(wǎng)絡(luò)節(jié)點(diǎn)與其它節(jié)點(diǎn)之間收發(fā)的數(shù)據(jù)。網(wǎng)絡(luò)環(huán)境模擬器依靠串口的RTS和 CTS的引腳電平來(lái)判斷是哪種類型的信息,利用串口的TX和RX來(lái)收發(fā)信息實(shí)體。在每次處理過(guò)程中,網(wǎng)絡(luò)環(huán)境模擬器可以根據(jù)先前每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)來(lái)的的相關(guān)信息,把從每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)接收的數(shù)據(jù)發(fā)送給滿足接收條件的其它網(wǎng)絡(luò)節(jié)點(diǎn)。
在網(wǎng)絡(luò)環(huán)境模擬器中,我們利用AT91RM9200的定時(shí)器中斷來(lái)模擬節(jié)點(diǎn)間的數(shù)據(jù)傳輸速率。每次中斷處理完后向每個(gè)端口發(fā)送一個(gè)字節(jié)數(shù)據(jù)。假設(shè)我們要模擬短波信道的2.4Kbps—4.8Kbps信道速率,利用AT91RM9200的定時(shí)器中斷,每隔1/300秒或1/150秒產(chǎn)生一次中斷,在中斷里我們通過(guò)TL16C554A讀出各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的串口數(shù)據(jù),這個(gè)過(guò)程相當(dāng)于網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送數(shù)據(jù),并進(jìn)行相應(yīng)的處理,得出網(wǎng)絡(luò)中哪些節(jié)點(diǎn)可以收到,然后再通過(guò)TL16C554A向?qū)?yīng)的各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的串口發(fā)送數(shù)據(jù),這個(gè)過(guò)程相當(dāng)于網(wǎng)絡(luò)節(jié)點(diǎn)接收數(shù)據(jù)。這樣相當(dāng)于網(wǎng)絡(luò)節(jié)點(diǎn)每隔1/300秒或1/150秒收發(fā)一個(gè)字節(jié)數(shù)據(jù),即傳輸速率為2.4Kbps~4.8Kbps。
在任意傳輸路徑上可以加誤碼,且誤碼率可以控制,通過(guò)對(duì)從每個(gè)端口讀回的數(shù)據(jù)取反,便實(shí)現(xiàn)了誤碼的要求,只要周期性的控制誤碼開(kāi)關(guān),就可以使傳輸路徑上的數(shù)據(jù)的得到不同的誤碼。
同步信號(hào)的提供
網(wǎng)絡(luò)模擬器能夠?yàn)槊總€(gè)網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送同步信號(hào),為MAC層協(xié)議的調(diào)試提供支持,例如TDMA、跳頻等。節(jié)點(diǎn)可以用每次網(wǎng)絡(luò)環(huán)境模擬器發(fā)來(lái)的數(shù)據(jù)作為時(shí)間基準(zhǔn),這樣全網(wǎng)的節(jié)點(diǎn)時(shí)間基準(zhǔn)就是一樣的了。同時(shí)網(wǎng)絡(luò)環(huán)境模擬器可以在特定時(shí)間,給每個(gè)節(jié)點(diǎn)發(fā)送一個(gè)時(shí)間同步信號(hào),實(shí)現(xiàn)同步,為T(mén)DMA協(xié)議的調(diào)試帶來(lái)了很大的便利。
LCD信息顯示
LCD上可以顯示相關(guān)信息,先實(shí)現(xiàn)畫(huà)點(diǎn)、畫(huà)線、畫(huà)矩形等基本繪圖函數(shù),我們要顯示相應(yīng)的圖形可以用這些基本繪圖單元組合起來(lái)。在網(wǎng)絡(luò)環(huán)境模擬器的中斷處理過(guò)程中設(shè)置相應(yīng)的狀態(tài),例如,收發(fā)狀態(tài)、碰撞狀態(tài)和節(jié)點(diǎn)位置坐標(biāo),然后更新顯示狀態(tài)隊(duì)列,在主程序中執(zhí)行顯示程序,只要按照顯示狀態(tài)隊(duì)列中的信息畫(huà)圖就可以了。
結(jié) 語(yǔ)
研制的具有16個(gè)端口的網(wǎng)絡(luò)環(huán)境模擬器,可以實(shí)現(xiàn)數(shù)據(jù)終端之間的任意連通關(guān)系,支持信道數(shù)據(jù)傳輸速率可變及傳輸路徑上加不同的誤碼。通過(guò)網(wǎng)絡(luò)環(huán)境模擬器,模擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的動(dòng)態(tài)變化,可以在LCD上清楚地觀察節(jié)點(diǎn)之間數(shù)據(jù)收發(fā)歷程及節(jié)點(diǎn)是否碰撞的信息。
網(wǎng)絡(luò)環(huán)境模擬器為研究分組無(wú)線網(wǎng)的自組織自適應(yīng)功能、驗(yàn)證網(wǎng)絡(luò)協(xié)議提供了一個(gè)良好的平臺(tái),基于該網(wǎng)絡(luò)環(huán)境模擬器已經(jīng)實(shí)現(xiàn)了TDMA協(xié)議及AODV路由協(xié)議的開(kāi)發(fā),驗(yàn)證了方案的正確性。