您好、欢迎来到现金彩票网!
当前位置:ds视讯 > 服务原语 >

究竟什么是RSSI

发布时间:2019-08-06 14:23 来源:未知 编辑:admin

  RSSI:Received Signal Strength Indication接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度。

  因为无线信号多为mW级别,所以对它进行了极化,转化为dBm而已,不表示信号是负的。1mW就是0dBm,小于1mW就是负数的dBm数。

  1) RSSI的值对应的单位是dbm。dbm(Decibel-milliwatts):分贝毫瓦,表示某一功率与1mw的相对关系,数值x(dbm)与功率P(mw)的具体计算公式如下,

  可以看出0.5毫瓦约为-3dbm。  所以RSSI并不是功率,db是分贝,实际上常常用来表示信噪比的单位。上面的dbm是一个带用量纲(毫瓦)的两个功率的比值的表示方法。这下彻底明白了为什么RSSI的值对应的dbm值不具备物理意义了吧。

  2)无线局域网供应商可以按照私有的方式定义RSSI值。RSSI的范围可由供应商自己选择从0到最大值(小于等于255),许多供应商在产品文档和网站上中把RSSI的执行数值发布出来,而有些供应商并没有这么做。因为RSSI指标的规定是私有的,在比较不同制造商的无线网卡的RSSI值时会出现两个问题。首先,不同供应商可能选择不同的RSSI最大值,例如A供应商可能选择RSSI范围从0到100,而B供应商选择从0到30,于是A供应商表明当前信号为25时,B供应商针对相同信号可能表达为8。另外,A供应商制造的无线网卡使用了更多的指标,在评估信号和信噪比时可能会显得更灵敏。

  通过对802.11底层协议帧进行分析,我们了解到802.11物理层PHY是介质访问控制层MAC与无线介质之间的接口,它传输和接收共享无线将PHY进一步划分为两个组成元件:

  MAC层业务数据单元。这是最原始的待发数据信息)经过封装变成MPDU(MAC层协议数据单元),MPDU传到PLCP子层变成PSDU(PLCP子层业务数据单元),PSUD经过封装变成PPDU(PLCP子层协议数据单元)。802.11协议帧格式

  我们以802.11g为例,上图是802.11MAC层的帧格式以及最终从物理介质发出去的数据封装。

  从以上帧格式中,我们并没有发现RSSI数据字段,那么RSSI的值我们究竟是从哪里得到?

  根据802.11-2007标准的描述,“RSSI是接收到的射频能量的测量值。RSSI与实际接收功率的映射是独立实施的。”换句话说,无线局域网供应商可以按照私有的方式定义RSSI值。通过标准中的描述我们知道,RSSI是接收方网卡测出来的,中间有路径衰减,所以发送方没办法确定接收方的具体接收功率。

  在8米外接收和1米外接收,接收端的信号强度会一样吗?如果不一样,而RSSI又是协议中的字段,那发送端发送这个字段时,这个字段的值到底该是多少呢?)

  三、RSSI的测量过程知道了RSSI不是协议中的字段,那么在接收方是根据那些信息得出的RSSI值的呢?

  802.11协议中没有给出具体产生RSSI的过程或者说是算法吧。协议中说RSSI值范围0~255,RSSI值随PHY Preamble部分的能量单调递增。因此RSSI值可以只选取PHY Preamble(前导码)的测量就行了。

  协议中虽然没有给出RSSI的具体计算方法,在协议帧中也没有RSSI字段。但是物理层原语中明确给出了有关RSSI的接口icate,即在接收端网卡测量到RSSI的值以后,我们可以从这个程序接口获得RSSI的值。

  RSSI由接收端测量得到后,由PMD_RSSI.indicate(该可选的原语可由PMD产生,用于向PLCP提供接收到的信号强度。该原语有一个参数:RSSI,它是高速PHY接收的射频能量的测量值,长度为0-8bit。RSSI和SQ作为CCA机制的部分一起协同使用)原语携带。

  PMD_RSSI.indicate:该可选的原语可由PMD产生,用于向PLCP提供接收到的信号强度。该原语有一个参数:RSSI,它是高速PHY接收的射频能量的测量值,长度为0-8bit。RSSI和SQ作为CCA机制的部分一起协同使用。

  目前如果用抓包工具抓取无线数据报文,会发现RSSI在数据包中的,一般都是本地网卡在添加Radiotap头部的时候,给打上去的,即在本地网卡把物理层的无线帧解析的时候,把物理层PLCP头部给删除后,本地网卡有可能会添加一个Radiotap头部,然后在给MAC层继续做解析。一般用wireshark能看到这个头部的信息(由于无线网卡驱动的原因,并不是所有无线网卡的都能

  ),也有可能直接把这个参数直接丢给上层(直接作为本地参数),而不是以数据包解析的形式传递,如下图

  也有可能直接把这个参数直接丢给上层(直接作为本地参数),而不是以数据包解析的形式传递,如下图

  理论上是对频段去积分求功率,实际上由于是时域采样,所以直接利用采样信息取平均求功率。

  -TXSTART.request原语使物理层实体处于传输状态,通过PLME管理实体将给物理层分配合适的工作信道。下图是

  -的CCA(Clear Channel Assessment。PHY层用于探测信道占用情况的一个功能模块。 空闲信道评估,用来指示MAC是否检测到了信号。)状态,MAC将判断信道是否被清空,当信道为空时,PPDU的传输将通过PHY-TXSTART.request原语来进行初始化,该原语的产生TXVECTOR中各个子参数将用来设置PPDU的前同步码和报头,以及TX_ANTENNA,TXPWR_LEVEL的PMD参数。

  -TXSTART.request原语,因为物理层实体需要处于接收状态,同样通过PLME来进行管理,选择CCA模式(空频道检测技术Clear Channel Assessment)。其他的接收参数如接收信号强度指示(RSSI),信号质量(SQ),DATARATE都通过PHY-SAP获得。下图是

  模式和接收信号的能量,当其RSSI强度达到ED_THRESHOLD时, 将开启PMD_ED,【ED(能量检测)、CS(载波侦听)】在建立码锁定之后,将开始PMD_CS。这些条件用来指示MAC的活动状态,在正确接收PLCP报头之前,将产生PHY-(BUSY)来做能量检测和/或码锁定。原语PMD_SQ,PMD_RSSI用来更新RSSI和SQ参数。当发出

  六、实际应用中RSSI值的获取目前,所有的无线网卡都遵循协议规定提供了PMD_RSSI.indicate服务原语,并且我们通过程序接口都可以获取到无线信号的RSSI值。

  是接收方网卡测量出来的。在实际编程中,我们怎样能获得到RSSI,以C#为例,windows下控制进行wifi编程一般都使用native wifi api(微软提供的类库进行)C#中有基于native wifi api进行封装的managed wifi API,利用它我们可以获取到我们所需要的wifi信息。

http://wendevick.net/fuwuyuanyu/843.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有