标签芯片 | 读写器 | 天线 | 中间件 | 智能卡 | 生物识别 | 条码 | 制造设备 | 物流 | 零售 | 防伪 | 交通 | 停车 | 资产管理 | 动物 | 身份识别 | 军事 | 航空 | 门禁 | 一卡通
供求商机 资讯中心 产品中心 企业资料 人才招聘
 
 首页 >> 技术中心>> 正文
基于FPGA的IEEE 802.11协议帧生成器的设计
来源:微计算机信息   2008-1-22 9:43:16
关键词: FPGA  802.11  协议    信号  


提要IEEE 802.11标准定义了能够统筹所有基于以太网的无线通信的协议。它是迄今为止最流行的无线局域网的标准。本文以Altera公司的FPGA为硬件平台,设计实现了一个无线局域网协议IEEE 802.11协议帧的生成器以构成802.11协议帧后供DSSS发射机作为发送信号。

本设计主要实现了三个模块,一个是整个帧生成器的全局控制模块,二是CRC—32校验码生成模块,三是帧序号生成模块。本设计的特点是处理与发射同时进行,处理延迟小,实时性好,这个特点对于带宽窄、处理能力弱的无线网络及设备来说是很重要的。文中给出了本设计实现的系统整体方框图,Verilog HDL代码实现及其仿真结果。 

引言

[1]IEEE 802.11标准定义了能够统筹所有基于以太网的无线通信的协议。它是迄今为止最流行的无线局域网的标准。这个标准还细分了一些子标准,如802.11a, 802.11b和802.11g。这其中有些协议可使用直接序列扩频技术(DSSS)来发送无线信号,如802.11b。 无线局域网带宽窄,终端设备处理能力弱,其信号的组帧环节需要尽可能采用处理时延小,占用存储资源少的方法。本文正是以此为指导思想进行802.11协议帧的生成的。

2模块的设计与实现

2.1 全局控制模块

该模块的设计方法是采用一个9bit的计数器,以协议帧的二进制位长度为周期循环计数,在不同的时间片发出不同的使能信号,以实现对多个输出模块的控制,实现实时的串行输出。并设计有选通信号sel[1..0],以实现对输出端口的多路选择器的控制其仿真时序波形图如图1所示。其关键代码如下:

①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//对帧序号生成模块的控制

begin

    if(!reset)  seqenable<=0;

    if(count==9'd176)  seqenable<=1;

    if(count==9'd192)  seqenable<=0;

end

③always  //对两个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 //在每帧结束时送出帧序号加1的使能信号

  begin

if(!reset)contin<=0;  if(count==9'd472) contin<=1;    if(count==1)contin<=0;

  end

⑤always  //对CRC校验码生成模块的控制

  begin

    if(!reset)

    crcdoutenable<=0;

    if(count==9'd440)  //数据送完了。

     crcdoutenable<=1;

    if(count==9'd472)

     crcdoutenable<=0;

end


 

⑥always//选通信号控制

    begin

     if(!reset) sel=2'b00;

    if(count==9'd470) sel=2'b01;

    if(count==9'd173) sel=2'b00;

续⑥if(count==9'd190) sel=2'b01;

    if(count==9'd238) sel=2'b10;

    if(count==9'd438) sel=2'b11;

    end

endmodule

 

 

1全局控制模块仿真时序波形图


 

2.2 CRC校验码生成器模块

此模块需要的常用CRC生成多项式如下:

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

其关键代码如下。该模块CRC校验时序仿真波形如图2所示。 

2 CRC校验时序仿真波形图

always@(negedge clk)//posedge把数据送出来,

                  //negedge对数据进行处理

  begin

   if(calculateen)  //flag为高时作crc的产生

    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 帧序号生成模块

    该模块的功能是产生16bit的帧序号,由overall_ctrl在每帧结束时发出的contin信号实现计数的加一。由enable信号触发,将帧序号串行输出。其关键代码为:

①always@(negedge clk4) //产生帧序号

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

续②             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帧序号串行输出

  begin

     if(enable)//enable信号只能严格划分为十六个周期;

       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];

 

3帧序号生成模块时序仿真

该模块的帧序号生成模块时序仿真图如图3所示。

 

2.4 IEEE 802.11协议帧生成器 系统总体结构模块

    IEEE 802.11协议帧生成器 系统总体结构模块框图如图4所示。

图4. IEEE 802.11协议帧生成器系统总体结构框图

3. 结论

    本文以展示详尽的Verilog HDL代码、各模块时序仿真图和系统总体结构框图的方式给出了一种基于FPGA的IEEE 802.11协议帧生成器的设计实现方法。该协议帧可直接由DSSS发射机发送。本设计几乎不产生组帧延迟,实时性能好,且不占用缓冲资源,具有新颖性和实用性。

 

本文作者创新点:

1) 本文给出了一种以FPGA为硬件平台的IEEE 802.11协议帧生成器的设计实现方法。

2)采用该方法几乎不产生组帧延迟,实时性能好,且不占用缓冲资源,具有新颖性和实用性。

 

 参考文献:

1. IEEE 802.11 Wireless Local Area Networks,IEEE Communications Magazine • September 1997。

2. Advanced digital design with the verilog HDL. Michael D.ciletti.PEARSON.2004

3. Compurter networks(fourth edition)  Andrew S.Tanebaum.Prentice Hall,PTR.

4.杨奎武,魏博,扩频通信中匹配滤波器的FPGA设计[J],微计算机信息,2005,3:117-118



本课题得到国家自然科学基金项目(60574088)的资助。

作者:方翌炜 方华京


      
推荐 】【 打印 】【 发表评论 】【 加入收藏

 相关文章
· 基于DSP的移动网络终端硬件平台的实现
· 利用FPGA协处理提升无线子系统的性能
· IEEE 802.16e协议一致性测试系统
· 基于FPGA的IEEE 802.11协议帧生成器的设计
· 利用分配器/合成器分离或合成射频/微波信号
· 大幅加速流程的无线测试新方案盘点
· 基于FPGA的RFID系统解码模块设计
· 在嵌入FPGA的IP核8051上实现TCP/IP的设计
· 蓝牙+UWB:高速无线通讯的未来发展
· 基于FPGA的指纹采集接口设计与实现
 最新供求
·求枪支离位报警项目合作
·求购类似马来西亚身份证卡
·求购远距离读写器(固定与手持两种)及配套标
·求医院用13.56特殊标签和读写器
·求车辆管理系统方案和报价
·buy 2.5 Million RFID Tag for library use
·大量采购2.45G有源电子标签和读写器
·求购915MHz电子标签(量大)
·求购PA薄膜
·井下人员定位招标
 相关关键词搜索
·资讯中心FPGA  802.11  协议    信号  
·技术中心FPGA  802.11  协议    信号  
 
 
 
业界资讯 纵深报道 技术学院
国际资讯 | 国内资讯 | 国内企业 | 国外企业 | Global News
  重点专题
· 自动识别协会射频工作组 · RFID圈内企业动态
· RFID行业高层访谈 · 智能卡与一卡通
· RFID与食品安全 · Scan China展会专题
· 远望谷IPO之路 · RFID与医疗卫生
· NFC手机与支付 · RFID联盟产业园建设介绍
· RFID与智能交通 · 各国RFID频段标准与政策
· 出租车停运以及解决办法 · 863计划RFID专项
  相关产品

AT-570远距离手持读写器
Intermec CK3 耐用型移动计算机
图书馆管理系统
CS-771圆极化天线
SATO CX400条形码打印机
图书馆标签转换工作站
Csl-461超高频远距离读写器
Alien-9900读写器
图书馆自助借还工作站
  推荐文章
· 1GHz以下全球免许可频段短距离无线系统的设
· 德国租赁公司使用RFID技术管理物品
· 美包伯·琼斯大学使用RFID系统加强校园安全
· 美国社区居民利用RFID技术回收垃圾
· 美国港口运用RFID技术减少空气污染
· 拉美零售巨头使用RFID改善服装库存管理
· 沙特珠宝商利用RFID改善库存管理
· 基于RFID技术的运输车辆及汽车衡称重防作弊
· 加拿大宠物用品公司采用RFID系统快速满足沃
· 美诊所采用无源RFID系统减少标本瓶贴标错误
  相关案例和方案
  相关资讯文章
· 大唐控股投资1.72亿美元中芯国际
· TI最新演示套件支持宽频带信号中继器的数字
· 可发出过期信号的智能温控标签
· Wi-Fi安全问题严重 处理太复杂
· WLAN与RFID为员工“定位”
· 荷兰一家医院采用RFID技术跟踪静脉注射泵
快 报 论 坛
· 监狱管理腕带电子标签
· 煤矿井下人员定位电子标签
· RFID在防伪领域的应用
· RFID基本工作原理
· 教你让一台电脑只能上允许的QQ
· 干燥冬季,如何消除静电?
快 报 问 吧
· 是否可以通过中继的方式,提高识别距离
· 标签读取的时候能读远读不了近?
· 请教门禁卡有哪几部分组成?
· private string RFID_CM的意思是什么?
· 解析服务、目录服务及信息发布技术研究
· 资产管理一般用什么频率的?
快 报 博 客
· 手掌静脉--告诉你到底是谁?
· 看了一遍我哭了,希望珍惜眼前人。。!!!!!(结
· 如何把条码引入固定资产管理系统?
· 如何利用条码来防伪防窜货管理系统?
· 喷码机(旗舰型)
· 基于RFID技术的服装管理系统

关于我们 | 广告服务 | 帮助中心 | 联系我们 | 友情链接 | 版权申明
客服电话:0531-82679069   编辑部电话:0531-82679328   节假日电话:0531-89180705   客服QQ:651127860 QQ群:41109672  47658979  MSN:RFIDinfo@126.com
版权所有©2003-2008  RFID射频快报 鲁ICP备05021498号 增值电信业务经营许可证鲁B2-20050166号