郭 勇,陳艷玲
(南京北方信息控制集團(tuán)有限公司產(chǎn)品研發(fā)中心,江蘇南京211153)
戰(zhàn)術(shù)電臺組網(wǎng)時(shí),網(wǎng)絡(luò)之間的拓?fù)浣Y(jié)構(gòu)經(jīng)常會發(fā)生變化,為了驗(yàn)證電臺之間的組網(wǎng)性能,需要根據(jù)節(jié)點(diǎn)之間的拓?fù)鋱D生成網(wǎng)狀的節(jié)點(diǎn)。常規(guī)條件下,生成多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)需要很大的人力、物力,且拓?fù)鋱D的更換不方便。目前介紹這方面設(shè)計(jì)的文獻(xiàn)不多,文獻(xiàn)[1-3]都是使用Open-Net等網(wǎng)絡(luò)仿真軟件等對鏈路層以上進(jìn)行仿真,直接對物理層的數(shù)據(jù)通路的設(shè)計(jì)沒有涉及。下面采用FPGA設(shè)計(jì)了一種網(wǎng)絡(luò)仿真器,可以對拓?fù)鋱D進(jìn)行動態(tài)配置,以驗(yàn)證組網(wǎng)的性能,并可以對拓?fù)鋱D進(jìn)行快速修改。采用16個(gè)節(jié)點(diǎn),因?yàn)楣?jié)點(diǎn)數(shù)較多,測試信號多,如果沒有邏輯分析儀采集大量的信號,則測試不是很方便。這里采用QuartusII自帶的SignalTapII進(jìn)行測試,能直觀地驗(yàn)證設(shè)計(jì)的仿真器的正確性。
網(wǎng)絡(luò)仿真器由以下幾個(gè)功能模塊組成:一個(gè)5-32譯碼器,用來產(chǎn)生32個(gè)鎖存使能信號,因?yàn)閷γ總€(gè)節(jié)點(diǎn)的配置采用16位,為了方便與上位機(jī)通信,采用8位的分時(shí)輸入的方式;一個(gè)32X8位的配置信號鎖存器,16個(gè)節(jié)點(diǎn)拓?fù)渖善?一個(gè)發(fā)信號產(chǎn)生器,采用2種方式驗(yàn)證,一種是16個(gè)節(jié)點(diǎn)同時(shí)發(fā)送信號,同時(shí)驗(yàn)證16個(gè)節(jié)點(diǎn)的收信號情況;另一種是每個(gè)時(shí)刻只有一個(gè)節(jié)點(diǎn)發(fā)送信號即TDMA方式。因?yàn)樗O(shè)計(jì)的仿真器輸出管腳很多,需測試信號很多,硬件設(shè)計(jì)完成后,在開發(fā)板上采用QuartusII自帶的SignalTapII進(jìn)行測試,能直觀地驗(yàn)證設(shè)計(jì)的網(wǎng)絡(luò)仿真器的收發(fā)性能。
因?yàn)榫W(wǎng)絡(luò)仿真器是在50 MHz的開發(fā)平臺上設(shè)計(jì)驗(yàn)證,實(shí)際不需要那么高的時(shí)鐘,因此設(shè)計(jì)一個(gè)4分頻器,把時(shí)鐘頻率降為12.5 MHz。每個(gè)時(shí)刻只有一個(gè)節(jié)點(diǎn)發(fā)送信號,每個(gè)時(shí)刻寫入一個(gè)8位的配置數(shù)據(jù),因?yàn)榭偣?6個(gè)節(jié)點(diǎn),需要32個(gè)時(shí)鐘完成一張拓?fù)鋱D的配置,拓?fù)鋱D配置完成以后,就可以驗(yàn)證各個(gè)節(jié)點(diǎn)的輸入輸出關(guān)系,設(shè)有全局復(fù)位信號,當(dāng)需要產(chǎn)生并驗(yàn)證新的拓?fù)鋱D時(shí),按下全局復(fù)位鍵后,再重新配置,在32個(gè)時(shí)鐘周期后,新的拓?fù)鋱D產(chǎn)生。
圖1 拓?fù)鋱D1
設(shè)拓?fù)鋱D1如圖1所示。各相鄰節(jié)點(diǎn)之間互通,但是不相鄰的節(jié)點(diǎn)不能互通,需要轉(zhuǎn)發(fā)。比如節(jié)點(diǎn)1發(fā)出數(shù)據(jù),節(jié)點(diǎn)2、節(jié)點(diǎn)3和節(jié)點(diǎn)9都能收到。節(jié)點(diǎn)4發(fā)數(shù)據(jù),節(jié)點(diǎn)2、節(jié)點(diǎn) 3、節(jié)點(diǎn)5、節(jié)點(diǎn)6和節(jié)點(diǎn)7都能收到。按照節(jié)點(diǎn)配置規(guī)則,16個(gè)節(jié)點(diǎn)配置如下:節(jié)點(diǎn)1:0000_0001_0000_0110;這16位配置數(shù)據(jù)中,從右數(shù),第2位、第3位和第9位為1,表明節(jié)點(diǎn)1與這3個(gè)節(jié)點(diǎn)是相連的。依次類推,可知其他節(jié)點(diǎn)的配置數(shù)據(jù)為:
節(jié)點(diǎn)2:0000_0110_0000_1001;
節(jié)點(diǎn)3:0000_0000_0000_1001;…;
節(jié)點(diǎn)15:1010_0000_0010_0000;
節(jié)點(diǎn)16:0100_0000_0001_0000,為節(jié)省篇幅,不一一列出。
拓?fù)鋱D2如圖2所示。拓?fù)鋱D2的配置數(shù)據(jù)為:
節(jié)點(diǎn)1:0000_0000_1000_1010;
節(jié)點(diǎn)2:0000_0000_0001_0001;
節(jié)點(diǎn)3:0010_0000_0101_1000;…;
節(jié)點(diǎn)15:0001_0100_0000_0000;
節(jié)點(diǎn)16:0001_0010_1000_0000。
圖2 拓?fù)鋱D2
節(jié)點(diǎn)拓?fù)渖善鞯墓苣_定義如下:en1為配置低8位數(shù)據(jù)使能信號;en2為配置高8位數(shù)據(jù)使能信號[4]。data1[7..0]為某節(jié)點(diǎn)的低 8 位配置數(shù)據(jù),data2[7..0]為某節(jié)點(diǎn)的高8位配置數(shù)據(jù),對節(jié)點(diǎn) 1 來說,data1[7..0]=0000_0110,data2[7..0]=0000_0001。
TXD1、TXD2分別表示節(jié)點(diǎn)1發(fā)數(shù)據(jù)、節(jié)點(diǎn)2發(fā)數(shù)據(jù)等。對于每一節(jié)點(diǎn),比如節(jié)點(diǎn)1,RXD1表示節(jié)點(diǎn)1收到節(jié)點(diǎn)1發(fā)出的數(shù)據(jù),因?yàn)椴荒茏园l(fā)自收,所以如果TXD1發(fā)數(shù)據(jù),則RXD1=0;RXD2表示節(jié)點(diǎn)1收到節(jié)點(diǎn)2發(fā)出的數(shù)據(jù),RXD3表示節(jié)點(diǎn)1收到節(jié)點(diǎn)3發(fā)出的數(shù)據(jù),如果節(jié)點(diǎn)1和節(jié)點(diǎn)3相連,則RXD3能收到數(shù)據(jù),RXD3=TXD3。
當(dāng)16個(gè)節(jié)點(diǎn)同時(shí)發(fā)數(shù)據(jù)時(shí),節(jié)點(diǎn)1能收到節(jié)點(diǎn)2、節(jié)點(diǎn)3和節(jié)點(diǎn)9發(fā)出的數(shù)據(jù)。也就是說,RXD2=TXD2,RXD3=TXD3,RXD9=TXD9。整個(gè)仿真器需要16個(gè)節(jié)點(diǎn),因此需要16個(gè)節(jié)點(diǎn)拓?fù)渖善髂K,且方便節(jié)點(diǎn)數(shù)的擴(kuò)展。
該譯碼器的設(shè)計(jì)是產(chǎn)生鎖存信號,Y1~Y32信號為低時(shí),dout<=din;當(dāng) Y1~Y32信號為高時(shí),dout<=Q;鎖存8位配置信號。每個(gè)節(jié)點(diǎn)的配置信號為16位,每個(gè)時(shí)刻寫入8位配置數(shù)據(jù),需要32個(gè)時(shí)鐘[5]。
為了驗(yàn)證TDMA模式和多發(fā)多收模式下網(wǎng)絡(luò)仿真器的性能,本文設(shè)計(jì)2種模式下的發(fā)射模塊。TDMA模式就是一個(gè)時(shí)刻只有一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù),多發(fā)多收模式是指同一時(shí)刻由多個(gè)節(jié)點(diǎn)同時(shí)發(fā)數(shù)據(jù),也同時(shí)可以接收數(shù)據(jù)。
該仿真器由1個(gè)發(fā)送數(shù)據(jù)模塊(用于測試組網(wǎng)模式)、1個(gè)5-32譯碼器模塊和16個(gè)節(jié)點(diǎn)拓?fù)渖善髂K組成。該仿真器能快速地進(jìn)行新拓?fù)鋱D的配置和生成,既能仿真TDMA模式也能仿真多發(fā)多收模式[6]。假設(shè)t=t0時(shí)刻,需要生成拓?fù)鋱D1,t=N+t0時(shí)刻,需要生成拓?fù)鋱D2。在生成拓?fù)鋱D2時(shí),只需按下RST(復(fù)位鍵),再重新配置拓?fù)鋱D即可。由于篇幅的限制,只給出多發(fā)多收模式下的仿真波形圖。
在多發(fā)多收模式下,16個(gè)節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù),也同時(shí)接收數(shù)據(jù)。圖3模擬了節(jié)點(diǎn)數(shù)不斷增加的情況。因?yàn)榉抡嫘盘柖?,只截取?jié)點(diǎn)1的輸出波形圖。由拓?fù)鋱D1可知,節(jié)點(diǎn)1在發(fā)數(shù)據(jù)的同時(shí),節(jié)點(diǎn)2、節(jié)點(diǎn)3和節(jié)點(diǎn)9能收到節(jié)點(diǎn)1發(fā)出的數(shù)據(jù),表明節(jié)點(diǎn)2、節(jié)點(diǎn)3和節(jié)點(diǎn)9與節(jié)點(diǎn)1相連;節(jié)點(diǎn)2在發(fā)數(shù)據(jù)的同時(shí),能收到節(jié)點(diǎn)1、節(jié)點(diǎn)4、節(jié)點(diǎn)10和節(jié)點(diǎn)11發(fā)出的數(shù)據(jù),表明節(jié)點(diǎn)1、節(jié)點(diǎn)4、節(jié)點(diǎn)10和節(jié)點(diǎn)11與節(jié)點(diǎn)2相連,這也驗(yàn)證了拓?fù)鋱D1正確地生成了。同理,在拓?fù)鋱D 2形成后,RXD1_2,RXD1_4和RXD1_8有數(shù)據(jù)輸出,表示節(jié)點(diǎn)2、節(jié)點(diǎn)4和節(jié)點(diǎn)8與節(jié)點(diǎn)1相連,同時(shí)RXD2_1和RXD2_5有數(shù)據(jù)輸出,表示節(jié)點(diǎn)1和節(jié)點(diǎn)5與節(jié)點(diǎn)2相連,這也驗(yàn)證了拓?fù)鋱D2正確地生成了。
圖3 多發(fā)多收模式仿真波形
采用QuartusII自帶的邏輯分析儀SignalTapII對多路并行輸出的信號進(jìn)行測試,既避免了使用昂貴的儀器,又能快速地驗(yàn)證所設(shè)計(jì)的功能電路的正確性。該方法適用于采用FPGA設(shè)計(jì)的其他復(fù)雜電路的測試驗(yàn)證。
性能測試在紅色颶風(fēng)III的開發(fā)板上進(jìn)行,因?yàn)槠渲鲿r(shí)鐘為50 MHz,實(shí)際時(shí)鐘速率不需要這么高,因此加上一個(gè)4分頻的時(shí)鐘模塊,把時(shí)鐘周期降為T=80 ns,該時(shí)鐘作為后續(xù)各模塊的工作時(shí)鐘。
TDMA模式下SignalTapII接收波形測試圖如圖4所示。由圖4可知,TDMA模式每個(gè)時(shí)刻只有一個(gè)節(jié)點(diǎn)發(fā)數(shù)據(jù),當(dāng)節(jié)點(diǎn)2發(fā)數(shù)據(jù)時(shí),RXD2_1、RXD2_4、RXD2_10和RXD2_11能收到數(shù)據(jù),表示節(jié)點(diǎn)1、節(jié)點(diǎn)4、節(jié)點(diǎn)10和節(jié)點(diǎn)11與節(jié)點(diǎn)2相連。當(dāng)節(jié)點(diǎn)3發(fā)數(shù)據(jù)時(shí),RXD3_1、RXD3_4能收到數(shù)據(jù),表示節(jié)點(diǎn)1和節(jié)點(diǎn)4與節(jié)點(diǎn)3相連。這也驗(yàn)證了拓?fù)鋱D1正確地生成了。
圖4 TDMA模式下SignalTapII接收波形測試
多發(fā)多收模式下SignalTapII接收波形測試圖如圖5所示。由圖5可以看出,當(dāng)16個(gè)節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù),在拓?fù)鋱D1完成后,節(jié)點(diǎn)1能同時(shí)收到節(jié)點(diǎn)2,節(jié)點(diǎn)3和節(jié)點(diǎn)9發(fā)出的數(shù)據(jù),表明節(jié)點(diǎn)2,節(jié)點(diǎn)3和節(jié)點(diǎn)9與節(jié)點(diǎn)1相連;同時(shí) RXD2_1,RXD2_4,RXD2_10,RXD2_11能收到數(shù)據(jù),表明節(jié)點(diǎn)2與節(jié)點(diǎn)1、節(jié)點(diǎn)4、節(jié)點(diǎn)10、節(jié)點(diǎn)11相連。因此拓?fù)鋱D1配置完成,對拓?fù)鋱D2的分析,依此類推。
圖5 多發(fā)多收模式下SignalTapII接收波形測試
采用FPGA設(shè)計(jì)了多發(fā)多收的網(wǎng)絡(luò)仿真器,仿真器可兼容TDMA模式和多發(fā)多收模式的數(shù)據(jù)傳輸,設(shè)計(jì)的仿真器拓?fù)鋱D動態(tài)配置快,拓?fù)鋱D的節(jié)點(diǎn)增加方便,只需要修改譯碼器模塊和增加拓?fù)渖善鞴?jié)點(diǎn)即可。因?yàn)榉抡鏈y試信號多,采用SignalTapII內(nèi)嵌邏輯分析儀進(jìn)行信號的測試,直觀且方便地對所設(shè)計(jì)的網(wǎng)絡(luò)仿真器進(jìn)行測試,并驗(yàn)證了設(shè)計(jì)的正確性。采用的方法具有一定的適用性。
[1]龍 芳,黃進(jìn)永.無線通信網(wǎng)絡(luò)仿真器性能對比[J].計(jì)算機(jī)與網(wǎng)絡(luò),2006,30(9):211 -213.
[2]李學(xué)杰,金志剛,羅詠梅.基于Windows平臺的無線網(wǎng)絡(luò)模擬器設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2005,25(8):1 719-1 721.
[3]陳芳露,陸雯青.一種新型片上網(wǎng)絡(luò)互連結(jié)構(gòu)的仿真和實(shí)現(xiàn)[J].小型微型計(jì)算機(jī)系統(tǒng),2010,5(5):883-886.
[4]西瑞克斯(北京).無線通信的Matlab和 FPGA實(shí)現(xiàn)[M].北京:人民郵電出版社,2009:46-52.
[5]史治國,洪少華.基于XILINX FPGA的OFDM通信系統(tǒng)基帶設(shè)計(jì)[M].杭州:浙江大學(xué)出版社,2009:46-52.
[6]吳 丹,劉 衍.無線通信實(shí)驗(yàn)室信道仿真器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測量技術(shù),2008,31(9):185-188.