Gamepad & WSN

Monthly Archives: 七月 2012

计算CC2500信道的一段小程序(FCC 兼容)

Author:Gamepader    IN:手柄    Tags: , , ,     评论: 2    超过201人围观

最近在做一个RF模块测试架,其中一个功能是根据输入的频率来检测当前频率的丢包率(PER)和误码率(BER). 本来想直接做成输入信道号,但是后来一想,还是考虑一下做UI的童鞋的感受吧,于是写了一个小函数进行频率到信道的转换。 为了在MCU上测试不出问题,先来验证一下我的简单算法,就有了下面这段c语言程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "Stdio.h"
#include "Conio.h"

int main(void)
{
    unsigned long a;
    unsigned char channel;
    printf("This is a demo to calculat CC2500's data.\r\n");
    printf("Input Frequency, Output Channel Number.\r\n");
    printf("Base=2.402GHz,Space=333.2519kHz,DataRate:249.939kHz\r\n");
    printf("So,Let's start!\r\n\r\n");
    while(1)
    {
        printf("Press 'q' to exit,Other key to continue\r\n\r\n");
        if(getch()!='q')
        {
             /* 此处添加代码 */
            printf("Input (RF_FREQ-2,400,000)(kHz)= ");
            scanf("%ld",&a);
            channel=(a-2000)/333;/*333@2.402*/
            printf("Channel= %u\r\n",channel);

        }
        else
        {
            for(channel=20;channel;--channel)
            {
                printf("%d ",channel);

            }
            getch();
            return 0;
        }
    }
}

代码在TC2.0环境下测试通过,下载地址在这里(freq2channel.c,685Bytes),Windows平台下编译好的exe文件在这里(freq2channel.exe,12.5KB)

原创文章,转载请注明来自//www.gamepader.com/archives/2012/07/a-fcc-compatible-code-to-calculat-channel-of-cc2500.html

07-26
2012

2.4G无线通信跳频思考

Author:Gamepader    IN:创意, 手柄    Tags: , ,     评论: 0    超过602人围观

这几天在思考2.4G抗干扰问题,业界通用的办法是通信双方采用相同的随机数发生算法,通过(传输)一个公用的密码种子进行计算。这样带来的好处就不说了,肯定是很多的:-),但是弊端也较为明显:没有针对性,无法根据干扰快速绕开混杂信道、算法复杂,消耗系统资源,影响通信实时性。
经过思考,得出一个不成熟的偏门解决方案:两边设置一个channel数组,进行伪跳频。数组的设置方式参考wifi信道之间的频率,查找频带间隙(但是只能找到干扰较小的频段),设置2.4G的跳频数组,同时应该参考WIFI路由器的跳频规则,进行规避,因为2.4G频段的主要干扰源就是WIFI,其频带宽、功率大,蓝牙带来的干扰规范由于其协议规范问题,则没有可以利用来跳频的规律。
以上想法纯属想象,没有经过实际工程检测,读者应该根据自己的经验与工程实际加以判断。

07-21
2012

深圳地铁带票出站漏洞

Author:Gamepader    IN:Network        评论: 2    超过50人围观

简要描述:
购买单程地铁票,在出站时是需要将票投入闸机以便回收利用的。
哥蹲坑的时候突发灵感,想出一个非常规的出站方法,
发现不用将票回收也可以出站。
经过测试,证实方法可行。

详细说明:
方法很简单,买单程票,到站不下车,故意坐过站
坐到下一站,然后到出站口将票投入闸机,
会提示余额不足而不开门并将地铁票退回(最好投入奇数次,建议投3次),

但是此时,该地铁票的状态已经被修改为已出站状态。

然后拿着退回来的票,坐回买票时输入的车站,
出站的时候,将票投入闸机,会因为该票为已出站状态而当成进站动作处理。
于是闸机的门会打开,同时,票依然会退出来给你。

然后就可以拿着出站了。

漏洞证明:
从东门站买到深大站的票,
进站,

坐到深大站不下车,到桃园站下。
到出口闸机,将票投入闸机并取回来3次,

坐回深大站,
正常将票投入闸机,
将退还的票带着出站。

至于带出来的票是否能再次进站,暂时还没去验证,
若是能的话,等于买一次地铁票,可以永久免费坐地铁了。

07-20
2012
loading...