1、 引言
IEEE 802.11標(biāo)準(zhǔn)定義了能夠統(tǒng)籌所有基于以太網(wǎng)的無線通信的協(xié)議。它是迄今為止最流行的無線局域網(wǎng)的標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)還細(xì)分了一些子標(biāo)準(zhǔn), 如802.11a, 802.11b和802.11g。這其中有些協(xié)議可使用直接序列擴(kuò)頻技術(shù)(DSSS)來發(fā)送無線信號(hào), 如802.11b。 無線局域網(wǎng)帶寬窄,終端設(shè)備處理能力弱,其信號(hào)的組幀環(huán)節(jié)需要盡可能采用處理時(shí)延小,占用存儲(chǔ)資源少的方法。本文正是以此為指導(dǎo)思想進(jìn)行802.11協(xié)議幀的生成的。
2、模塊的設(shè)計(jì)與實(shí)現(xiàn)
2.1 全局控制模塊
該模塊的設(shè)計(jì)方法是采用一個(gè)9bit的計(jì)數(shù)器,以協(xié)議幀的二進(jìn)制位長度為周期循環(huán)計(jì)數(shù),在不同的時(shí)間片發(fā)出不同的使能信號(hào),以實(shí)現(xiàn)對(duì)多個(gè)輸出模塊的控制,實(shí)現(xiàn)實(shí)時(shí)的串行輸出。并設(shè)計(jì)有選通信號(hào)sel[1..0],以實(shí)現(xiàn)對(duì)輸出端口的多路選擇器的控制。其仿真時(shí)序波形圖如圖1所示。其關(guān)鍵代碼如下:
①always@(posedge clk4) //初始化
begin
if(!reset)
begin
count《=0;
end else
begin
if(count==9‘d472) count《=0;
else count《=count+1;
end
end
②always//對(duì)幀序號(hào)生成模塊的控制
begin
if(!reset) seqenable《=0;
if(count==9’d176) seqenable《=1;
if(count==9‘d192) seqenable《=0;
end ③always //對(duì)兩個(gè)ROM單元的使能和禁止控制
begin
if(!reset)
begin
dataaddrenable《=0;
dataromenable《=0;
crccalenable《=0;
end
if(count==9’d240)//送data
begin
dataaddrenable《=1;
dataromenable《=1;
crccalenable《=1;
end
if(count==9‘d440)
begin
dataaddrenable《=0;
dataromenable《=0;
crccalenable《=0;
end
end
④always //在每幀結(jié)束時(shí)送出幀序號(hào)加1的使能信號(hào)
begin
if(!reset)contin《=0; if(count==9’d472) contin《=1; if(count==1)contin《=0;
end
⑤always //對(duì)CRC校驗(yàn)碼生成模塊的控制
begin
if(!reset)
crcdoutenable《=0;
if(count==9‘d440) //數(shù)據(jù)送完了。
crcdoutenable《=1;
if(count==9’d472)
crcdoutenable《=0;
end
⑥always//選通信號(hào)控制
begin
if(!reset) sel=2‘b00;
if(count==9’d470) sel=2‘b01;
if(count==9’d173) sel=2‘b00; 續(xù)⑥if(count==9’d190) sel=2‘b01;
if(count==9’d238) sel=2‘b10;
if(count==9’d438) sel=2‘b11;
end
endmodule
2.2 CRC校驗(yàn)碼生成器模塊
此模塊需要的常用CRC生成多項(xiàng)式如下:
CRC-8:x8+x2+x+1
CRC-16:x16+x15+x2+1
CRC-32:x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
其關(guān)鍵代碼如下。該模塊CRC校驗(yàn)時(shí)序仿真波形如圖2所示。
always@(negedge clk)//posedge把數(shù)據(jù)送出來,
//negedge對(duì)數(shù)據(jù)進(jìn)行處理
begin
if(calculateen) //flag為高時(shí)作crc的產(chǎn)生
begin
dout《=1’bz;
D[0]《=din^D[31];
D[1]《=D[0]^din^D[31];
D[2]《=D[1]^din^D[31];
D[3]《=D[2];
D[4]《=D[3]^din^D[31];
D[5]《=D[4]^din^D[31];
D[6]《=D[5];
D[7]《=D[6]^din^D[31];
D[8]《=D[7]^din^D[31];
D[9]《=D[8];
D[10]《=D[9]^din^D[31];
D[11]《=D[10]^din^D[31];
D[12]《=D[11]^din^D[31];
for(i=12;i《=14;i=i+1)
D[i+1]《=D[i];
D[16]《=D[15]^din^D[31];
for(i=16;i《=20;i=i+1)
D[i+1]《=D[i];
D[22]《=D[21]^din^D[31];
D[23]《=D[22]^din^D[31];
D[24]《=D[23];
D[25]《=D[24];
D[26]《=D[25]^din^D[31];
for(i=26;i《=30;i=i+1)
D[i+1]《=D[i];
end
else dout《=1‘bz;
if(outputen)
begin
dout《=D[31];
D《=D《《1;
end
else
dout《=1’bz;
end
endmodule//
2.3 幀序號(hào)生成模塊
該模塊的功能是產(chǎn)生16bit的幀序號(hào),由overall_ctrl在每幀結(jié)束時(shí)發(fā)出的contin信號(hào)實(shí)現(xiàn)計(jì)數(shù)的加一。由enable信號(hào)觸發(fā),將幀序號(hào)串行輸出。其關(guān)鍵代碼為:
①always@(negedge clk4) //產(chǎn)生幀序號(hào)
begin
if(!reset)
seqctrl[15:0]《=0;
if(contin)
begin
if(seqctrl[15:0]==16‘hffff)
seqctrl[15:0]《=0;
else seqctrl《=seqctrl+1;
end
end 續(xù)② 4’d3:q《=seqctrl[3];
4‘d4:q《=seqctrl[4];
4’d5:q《=seqctrl[5];
4‘d6:q《=seqctrl[6];
4’d7:q《=seqctrl[7];
4‘d8:q《=seqctrl[8];
4’d9:q《=seqctrl[9];
4‘d10:q《=seqctrl[10];
4’d11:q《=seqctrl[11];
4‘d12:q《=seqctrl[12];
4’d13:q《=seqctrl[13];
4‘d14:q《=seqctrl[14];
4’d15:q《=seqctrl[15];
endcase
end
else
begin
q《=1‘bz;
count《=0;
end
end
else q《=1’bz;
end
endmodule
②always@(negedge clk4) //16 bit幀序號(hào)串行輸出
begin
if(enable)//enable信號(hào)只能嚴(yán)格劃分為十六個(gè)周期;
begin
count《=count+1;
if(count!=16)
begin
case(count)
4‘d0:q《=seqctrl[0];
4’d1:q《=seqctrl[1];
4‘d2:q《=seqctrl[2];
該模塊的幀序號(hào)生成模塊時(shí)序仿真圖如圖3所示。
2.4 IEEE 802.11協(xié)議幀生成器 系統(tǒng)總體結(jié)構(gòu)模塊
IEEE 802.11協(xié)議幀生成器 系統(tǒng)總體結(jié)構(gòu)模塊框圖如圖4所示。
3. 結(jié)論
本文以展示詳盡的Verilog HDL代碼、各模塊時(shí)序仿真圖和系統(tǒng)總體結(jié)構(gòu)框圖的方式給出了一種基于FPGA的IEEE 802.11協(xié)議幀生成器的設(shè)計(jì)實(shí)現(xiàn)方法。該協(xié)議幀可直接由DSSS發(fā)射機(jī)發(fā)送。本設(shè)計(jì)幾乎不產(chǎn)生組幀延遲,實(shí)時(shí)性能好,且不占用緩沖資源,具有新穎性和實(shí)用性。
本文作者創(chuàng)新點(diǎn):
1) 本文給出了一種以FPGA為硬件平臺(tái)的IEEE 802.11協(xié)議幀生成器的設(shè)計(jì)實(shí)現(xiàn)方法。
2)采用該方法幾乎不產(chǎn)生組幀延遲,實(shí)時(shí)性能好,且不占用緩沖資源,具有新穎性和實(shí)用性。
責(zé)任編輯:gt
評(píng)論
查看更多