基于嵌入式系統(tǒng)的網(wǎng)絡(luò)環(huán)境模擬器的設(shè)計(jì)(06-100)
鍵盤(pán)控制模塊
本文引用地址:http://www.antipu.com.cn/article/81188.htm鍵盤(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)證了方案的正確性。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論