发新帖我要提问
12
返回列表
打印

关于SI4421同步码的问题

[复制链接]
楼主: robertlinsen
手机看帖
扫描二维码
随时随地手机跟帖
21
robertlinsen|  楼主 | 2013-7-5 14:38 | 只看该作者 回帖奖励 |倒序浏览
kation122 ,谢谢 ,这个配置应该是配置设定命令,它的位格式是:1000 0000 el ef b1 b0 x3 x2 x1 x0 ,不应该出现 89 3D格式的啊?? 还有FIFO 和复位命令,你在直通模式的时候是怎么设置的?

使用特权

评论回复
22
robertlinsen|  楼主 | 2013-7-5 21:03 | 只看该作者
我查看了手册,SI4421里面没用89指令啊,不知道KATION122兄是哪个配置字里面设定的?还有FIFO和复位命令是怎么设置的,谢谢KATION122

使用特权

评论回复
23
robertlinsen|  楼主 | 2013-7-9 16:32 | 只看该作者
看来高手都不想出手啊,还是自己顶着

使用特权

评论回复
24
robertlinsen|  楼主 | 2013-9-12 07:48 | 只看该作者
chunyang 发表于 2013-7-1 22:51
在信噪比满足的前提下,输出格式当然是一样的,但被“淹没”在噪声数据之中。直通模式是给自定义同步头留下 ...

经过大家的帮助,终于可以在直通模式下收到数据了,谢谢大家的帮助,但还是有一个问题,就是接收的灵敏度不高,有时候要接收2次就可以接收到数据,有时候要接收50次以上才能收到正确的数据,请问信号被“淹没”在噪声数据之中,有什么好的方法可以处理,提高灵敏度,一次性接收正确的数据??

使用特权

评论回复
25
robertlinsen|  楼主 | 2013-9-12 08:43 | 只看该作者
robertlinsen 发表于 2013-9-12 07:48
经过大家的帮助,终于可以在直通模式下收到数据了,谢谢大家的帮助,但还是有一个问题,就是接收的灵敏度 ...

补充说明一下,灵敏度不够,接收应该像同步模式一样,一次性就收到正确的数据,但我现在直通模式要1次,2次,有的时候要10次,更多的要40多少次才可以收到,请问一下版主?

使用特权

评论回复
26
chunyang| | 2013-9-12 16:34 | 只看该作者
robertlinsen 发表于 2013-9-12 07:48
经过大家的帮助,终于可以在直通模式下收到数据了,谢谢大家的帮助,但还是有一个问题,就是接收的灵敏度 ...

我前面说的“淹没”是指信号发射之前接收机在直通模式下会一直输出杂乱信号直到有效信号的到来,从输出看,有用数据就是“淹没”在噪声中,这和信噪比低,输出出现误码是两回事。
接收灵敏度不足的改进:提高发射机的输出功率、使用高增益天线、接收机增加LNA、降低空中数据传输率、使用纠错编码等等。

使用特权

评论回复
27
chunyang| | 2013-9-12 16:37 | 只看该作者
robertlinsen 发表于 2013-9-12 08:43
补充说明一下,灵敏度不够,接收应该像同步模式一样,一次性就收到正确的数据,但我现在直通模式要1次,2 ...

如果同样条件下,直通的接收效果不如同步头模式,那说明是你的软件问题,注意发射机开启后最初几个字节很可能不稳定,这是信道结构特点决定的,要先给出足够长的引导信号后再附加自己的数据起始标志。

使用特权

评论回复
28
robertlinsen|  楼主 | 2013-9-13 08:09 | 只看该作者
chunyang 发表于 2013-9-12 16:37
如果同样条件下,直通的接收效果不如同步头模式,那说明是你的软件问题,注意发射机开启后最初几个字节很 ...

我直通模式和同步模式都是同样的设备,在同步模式,接收的灵敏度很高,在直通模式时候,我只是把接收的设备的软件改成直通模式,在直通模式接收数据的时候,前面有键盘检测程序,不是一开机就接收的,所以开机后接收数据,机器运行应该稳定的,我接收是用查询模式的,先接收10个数据,包括引导码,同步码,数据和结束码,存储在寄存器中,再把寄存器中的内容拿来比较看看是否正确,我测试了很长时间,很多时候都不对,我把接收和比较的程序贴在下面:(是汇编的),请版主看一下,有什么问题,同步模式也是这个接收程序.
L023EH:
        BTFSC  PORTC, 3
        GOTO   L023EH            ;判断有数据是否可以接收

        CALL   L00D7H            ;数据接收子程序
        MOVWF  58H                ;接收数据暂存在58H
        MOVF   41H, 0               ;开始的时候[41H]=00,相对地址用到改变地址变量
    ADDLW  21H                  ;数据存储从21H 开始存储
    MOVWF  FSR                  ;FSR=W
        MOVF   58H, 0                ;把暂存数据移到W
        MOVWF  INDF                 ;[FSR]=W 存到对应地址
    INCF   41H, 1               ;[41H]=[41H]+1
        MOVF   41H, 0               ;W=[41H]
        XORLW  0AH                  ;10个数据是否接收完成
        BTFSS  STATUS, Z  
        GOTO   L0243H
接收数据比较程序:
        MOVF   21H, 0            ;取21H中接收的数据,与AAH引导码比较是否相同,如果是那么比较
        XORLW  0AAH              ;
                BTFSS  STATUS, Z         ;判断W内容为0否,为0,Z=1,结果不位0,Z=0时跳过下一指令
        GOTO   NEXT12
                GOTO   NEXT11
NEXT12: BSF    PORTA, 5          ;数据部正确1号红灯亮
        GOTO   L02CHH            ;
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

NEXT11:
                MOVF   22H, 0            ;取22H中接收的数据,与AAH引导码比较是否相同,
        XORLW  0AAH              ;
                BTFSS  STATUS, Z         ;判断W内容为0否,为0,Z=1,结果不位0,Z=0时跳过下一指令
        GOTO   NEXT20
                GOTO   NEXT21
NEXT20: BSF    PORTA, 5          ;数据部正确2号红灯亮
        GOTO   L02CHH            ;W=01H


使用特权

评论回复
29
chunyang| | 2013-9-13 18:20 | 只看该作者
用查询的话,务必保证定时查,这个对任务调度要求较高不如改成中断,在中断服务程序中判断第一个字节,相符时再进行下一个判别,这个编程思路要简单可靠多了。

使用特权

评论回复
30
robertlinsen|  楼主 | 2013-9-15 07:30 | 只看该作者
chunyang 发表于 2013-9-13 18:20
用查询的话,务必保证定时查,这个对任务调度要求较高不如改成中断,在中断服务程序中判断第一个字节,相符 ...

因为在直通模式,采用中断,设备处于一直有信号的(包括噪音和有效信号)的状态下,MCU应该在不停的中断,处理数据的接收(不管是噪音和有效信号),跟我现在的一直在查询接收应该没有多大的区别。我在考虑直通模式想要做到同步模式一样的灵敏度,估计是有点不可能?不知道版主在直通模式的时候,接收程序构建的思路是什么?

使用特权

评论回复
31
chunyang| | 2013-9-15 12:58 | 只看该作者
这种情况下,中断的效率会高的多,中断服务程序要尽量简单,校验当前数值并根据该数值是否有效来设置一个标志即可,主程序流程根据该标志决定是否进入独占的数据接收态。

使用特权

评论回复
32
robertlinsen|  楼主 | 2013-9-21 14:19 | 只看该作者
chunyang 发表于 2013-9-15 12:58
这种情况下,中断的效率会高的多,中断服务程序要尽量简单,校验当前数值并根据该数值是否有效来设置一个标 ...

版主啊,很不好意思,我又来问你了,根据你中断思路,我设计了程序,但接受跟查询的效果差不多,也要发多次,才可以接收到正确的数据,不像同步方式那样一次成功。现在我在想一个问题,SI4421在同步方式的时候它来区分噪音和有效信息,是用软件来实现的还硬件本身来来设置区分的,如果是软件来实现,那我SI4421在直通方式的时候,也可以参照同步方式来做程序,但我看了手册,同步方式时候区分识别数据,硬件的可能性很大! .我在考虑,在直通方式的时候,不管程序是中断还是查询,MCU都会接收到噪音信号,还有可能在接收噪音信号的时候,在这时候有效数据送到,这样等噪音数据接收完,再去接收有效信号,势必会丢掉一部分有效信号,所以总是出现要接收好几次才成功,版主你说,我这样考虑有道理吗?

使用特权

评论回复
33
robertlinsen|  楼主 | 2013-9-26 09:49 | 只看该作者
robertlinsen 发表于 2013-9-21 14:19
版主啊,很不好意思,我又来问你了,根据你中断思路,我设计了程序,但接受跟查询的效果差不多,也要发多 ...

自己顶一下,请路过高手出手帮忙看看,谢谢

使用特权

评论回复
34
robertlinsen|  楼主 | 2013-10-6 19:07 | 只看该作者
robertlinsen 发表于 2013-9-26 09:49
自己顶一下,请路过高手出手帮忙看看,谢谢

版主啊,噪音信号和有效信号,在程序里不管才用中断还是查询,都是很难区分的啊,望版主给我指示一,怎么才可以有效的区分噪音信号和有效信号。谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则