搜索
bottom↓
回复: 13

Si4432 RSSI信号强度问题

[复制链接]

出0入0汤圆

发表于 2010-12-31 12:02:39 | 显示全部楼层 |阅读模式
我做了一个简单的测试程序一个模块发一个数据包,然后另一个模块将另一个数据包放过来。发送方不断检测RSSI值。
   现发现,无论接收方有无工作,无发出数据,RSSI值都是一样的,大概是80左右。资料上说RSSI值可以冻结,但我找不到怎么冻结。
   请问这个RSSI是怎么设定才能得到有效数据?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-12-31 12:10:04 | 显示全部楼层
你测量到50,那是噪声,不是接收的信号

出0入0汤圆

 楼主| 发表于 2010-12-31 12:55:07 | 显示全部楼层
那如何检测到信号呢?

出0入0汤圆

发表于 2010-12-31 13:00:42 | 显示全部楼层
前提是频段一致,工作正常,你如果不停检测并实时观察(比如串口传给PC)就能看到有信号时RSSI会变大,因为发射时个短时间的过程,RSSI也是个动态变的,停止发射RSSI回到噪声电平上

出0入0汤圆

 楼主| 发表于 2010-12-31 13:32:03 | 显示全部楼层
怎么能够直接观测到发射时间那个值呢?这个RSSI应该是接收到的值?难道是发送时候产生的值

出0入0汤圆

发表于 2010-12-31 13:42:13 | 显示全部楼层
在同步字侦测中断时读

出0入0汤圆

 楼主| 发表于 2010-12-31 14:03:16 | 显示全部楼层
楼上的方法可以,还有其他办法吗?这样会占用一些资源跟时间

出0入0汤圆

发表于 2010-12-31 16:32:19 | 显示全部楼层
期待更好的办法出现

出0入0汤圆

发表于 2011-1-25 11:10:18 | 显示全部楼层
RSSI(Received Signal Strength Indicator)测量的是你接収到的信号强度,信号越强,该值就越大。

出0入0汤圆

发表于 2011-9-29 12:54:57 | 显示全部楼层
回复【5楼】wuxinju
-----------------------------------------------------------------------

5楼说的很对哦 我试验了,效果明显。但是RSSI返回的值是怎么算出来的呢,不是说他的值是接收到的信号的强度吗,是dbm,但是我发送端最大是5dbm,但是rssi的值是80 。怎么理解 ,求明白人解答。

出0入0汤圆

发表于 2011-10-10 15:05:30 | 显示全部楼层
回复【9楼】610396783
-----------------------------------------------------------------------

请问rssi值在什么时候读取,接收数据之后吗?谢谢!

出0入0汤圆

发表于 2011-10-21 15:47:09 | 显示全部楼层
我试过了,查询到接收中断后取值已经来不及了,5楼的办法可行!~

1、把06H设置为0X80使能同步子侦测。
2、写个中断查询函数,如果检测到中断,则查询04H是否为0X80(侦测到同步字),如果为真,读26H即可。

出0入0汤圆

发表于 2011-11-12 00:09:09 | 显示全部楼层
one of the following options is recommended: majority polling,
reading the RSSI value within 1 Tb of the RSSI interrupt, or using the RSSI threshold described in the next
paragraph for Clear Channel Assessment (CCA).
IC资料给出两种方式
下面的程序供参考
#define RSSI_SAMPLES 10
U8  sampleRSSI (void)
{
   U8 i;
   U8 sample;

   U8    min = 255;
   U8    max = 0;
   U16   sum = 0;

   for(i=0;i<RSSI_SAMPLES;i++)
   {
      sample = phyRead(0x26);

      sum += sample;

      if(sample > max)
      {
         max = sample;
      }

      if(sample < min)
      {
         min = sample;
      }
   }

   sum -= min;
   sum -= max;

   sum /= (RSSI_SAMPLES-2);

   return sum;
}
S16   calcInputPower (U8 rssi)    //线性计算      根据下面的图可以看成是线性的,得出线性方程
{
   S16 value;

   value = rssi;
   value *= 10;
   value /= 19;
   value -=127;

   if(value< -120)
      value = -120;
   else if (value > 0)
      value = 0;

   return value;

}
while(1)
      {
         rssi = sampleRSSI();

         inputPower = calcInputPower (rssi);
}

(原文件名:QQ截图未命名.jpg)

出0入0汤圆

发表于 2011-11-18 09:55:06 | 显示全部楼层
我用的是SI1000芯片,接收程序一直停在等待接收中断状态,读寄存器状态,RSSI位为1,这表示什么?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 23:00

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表