微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > CC1310丢包与CRC

CC1310丢包与CRC

时间:12-23 整理:3721RD 点击:

测试CC1310通信的过程中发现下面的问题,使用studio测试时,在距离较远或信号不佳的情况下,studio可以打印接收到的CRC校验错误的数据包,在使用例程测试的时候,发现即便是丢包严重,也不会打印出错的数据包,请问一下这个是在哪边去处理的,因为我需要拿到出错的包,判断重传或校验。

请问是否是rfc_CMD_PROP_RX_ADV_t 的.pktConf.bUseCrc = 0x1,去处理的,在EasyLink.c下面的接收函数EasyLink_receive及EasyLink_receiveAsync处拿不到出错的包。

你可以在EasyLink.c文件中,

asyncCmdHndl = RF_postCmd(rfHandle, (RF_Op*)&EasyLink_cmdPropRxAdv,
RF_PriorityNormal, rxDoneCallback, EASYLINK_RF_EVENT_MASK);

语句之前,加入

EasyLink_cmdPropRxAdv.pktConf.bUseCrc = 0;

试试能否收到crc error的数据包

crc检验在接收方硬件自动处理的吧?前提是能够收到包数据,尽管可能是乱包。

.pktConf.bUseCrc = 0x0,
.pktConf.bCrcIncSw = 0x0,
.pktConf.bCrcIncHdr = 0x0,

这三个配置为0,可以接收到误码包

Felix ZF,你好

还有点问题请教下

CC1310 设备A给B发送数据,B接收到数据会给A一个答复吗,还是需要像rfWsnConcentrator demo那样发送数据包响应一下?

如果没有答复,发送的数据包丢失,有什么好的办法去处理重传呢

B接收到数据不会主动给A一个答复,需要自己发数据包。

方法可以 用定时器定时一下,在规定时间内没收到,重传,再定时,重复三次(自己定义尝试次数),还是没收到,放弃发送

这种ack需要通过程序来实现

一般的流程时发送方发送完数据后,切换到接收状态等待ack

接收方在收到正确的数据包后回复一个ack

发送方在设定时间内如果收到ack,则知道对方已经正确接收到数据了;如果在设定时间内一直都没收到ack,则判定对方没有收到数据,需要重发

上一篇:CC1121
下一篇:CC1310 连接 RXD 的方法

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top