[讨论] CC2530 CSMA/CA

seanwaye   2015-7-30 09:59 楼主
各位朋友好



最近在移植TI——mac的协议栈里面关于CSMA/CA的算法程序,T2定时器还有随机数模块已经调通,CSP代码也是拷的TI的原代码,测试的时候发现个问题:3个发送端同时发给一个接收端的时候,3个发送端的数据都能接到,而且收到的3个发送端的数据包数量基本相同,也就是说3个发送端发给接收端的数据包成功率是一样的,但是仿真的时候发现CSMA/CA算法只能进入发送成功中断里面处理,进不去检测到信道拥挤的中断里面,等于是每次发送数据包信道都没发现拥挤,都能顺利发送完毕数据包……这个现象不太正常,因为一个信道有3台发送端同时发数据,很有可能拥挤的,而且发送频率也很快,差不多1秒发2个包,现在不知道问题出在哪里了,希望了解的朋友能给点提示,谢谢!!!

回复评论 (4)

拥挤肯定有的,建议你发送频率在高些,比如10ms一次看看。
淘宝:https://viiot.taobao.com/Q群243090717 多年专业物联网行业经验,个人承接各类物联网外包项目
点赞  2015-7-30 11:16
引用: wateras1 发表于 2015-7-30 11:16
拥挤肯定有的,建议你发送频率在高些,比如10ms一次看看。

谢谢提醒,现在把发送频率提高了,发现能进入信道拥挤中断了,接下来再修改下细节就好了,另外这个CCA阈值具体是什么意思啊?该设置多少合适,我用的是CC2591功放;关于这个阈值是检测到的信号低于这个阈值的绝对值就说明信道拥挤,大于这个阈值就说明信道空闲吗?
点赞  2015-7-30 12:03
引用: seanwaye 发表于 2015-7-30 12:03
谢谢提醒,现在把发送频率提高了,发现能进入信道拥挤中断了,接下来再修改下细节就好了,另外这个CCA阈 ...

CCA(Clear Channel Assessment):空闲信道评估,它的作用是PHY根据某种条件来判断当前无线介质是处于忙还是空闲状态,并向MAC通报。高速PHY至少应该按照下面三个条件中的一个来进行信道状态评估:
-CCA模式1:根据接收端能量是否高于一个阈值进行判断。如果检测到超过ED(能量检测,Energy Detection)阈值的任何能量,CCA都将报告介质当前状态为忙。
-CCA模式2:定时检测载波。CCA启动一个3.65ms长的定时器,在该定时范围内,如果检测到高速PHY信号,就认为信道忙。如果定时结束仍未检测到高速PHY信号,就认为信道空闲。3.65ms是一个5.5Mbps速率的PSDU数据帧可能持续的最长时间。
-CCA模式3:上述两种模式的混合。当天线接收到一个超过预设电平阈值ED的高速PPDU帧时,认为当前介质为忙。
当接收机收到一个PPDU时,必须根据收到的SFD字段来判断当前数据包是长PPDU还是短PPDU。如果是长PPDU,就以1Mbps速率按BPSK编码方式对长PLCP头信息进行解调,否则以2Mbps速率按QPSK编码方式对短PLCP头信息进行解调。接收机将按照PLCP头信息中的信令(SIGNAL)字段和业务(SERVICE)字段确定PSDU数据的速率和采用的调制方式。
淘宝:https://viiot.taobao.com/Q群243090717 多年专业物联网行业经验,个人承接各类物联网外包项目
点赞  2015-7-30 13:26
3个节点对一个节点发,每秒2包,这个肯定不能造成载波冲突。
既然你移植了CSMA/CA算法,你应该知道CSMA的量化值。CSMA的随机避退是1~15ms,但是一个数据包的脉宽只有2~4ms。
点赞  2016-2-25 10:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复