Other Parts Discussed in Thread: CC2530
各位大侠,
想请问下,CC2530是否能实现这样的有选择性的ACK回复功能:
多个节点广播发送RF信号,
1个接收器打开RF接收和ACK回复,
但只给某个指定的节点回复ACK,其它的节点收不到ACK,
当然,节点和接收器都出在一个频点下。
CC2530的相关机制是否能实现这点呢?
麻烦在于auto ack是自动回复的,似乎不能规定目标地址!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
非常感谢VV大神回复,看来我遇到的mac ack的问题,
情况是:多个节点广播发送信号,接收器收到各个节点信号后,会自动回复ACK,虽然接收器接收到的地址不是它地址,而是广播地址FF.
希望实现的是,总多节点中,只有指定的某节点才收到接收器的ACK。
有两种途径:
1)接收器是否可以通过设定,只接收到指定节点的RF信号? 这样其它节点发送信号,接收器收不到,也就不会回ACK了。 用地址过滤功能可行吗?
2)接收器收到其它节点信号,但通过程序控制,判断不是指定节点,而不给ACK回复,也就是Manual Control能否控制呢?
另外,seq number应该是接收端收到的RF信号的自身计数器吧?
不知道我的叙述是否清晰,总之,谢谢VV大神!
在802.15.4标准里,MAC ACK其实是广播的方式发送,当一个设备在准备发送数据(数据进入发送队列),收到一个MAC ACK信号后,会重新计算CSMA/CA。但是我通过TI-MAC的代码看,软件并没有做这样的处理,估计TI的硬件或者库里面做了相应处理。
你可以研究一下“隐蔽终端”和“暴露终端”,WIFI有RTS和CTS可以完美解决这种情况,IEEE802.15.4的这种ACK方式,虽然不是最好的解决方式,但是可以治标。
另外广播包是不会支持MAC ACK的,因为MAC ACK是不会通过CSMA来发送。
好的,谢谢各位的关注和建议,目前等于说,
A --> N ,如果 N 能给A回ACK信号,
那么,如果有 B --> N, 那么N 也就必然会给B 回ACK信号,
尽管我希望N只会给A一个对象做回复, 也就是希望除了A之外,N对于其他节点比如B都是无法探测到的。
您上面说的 "隐蔽终端" 可能就是这个意思。
目前CC2530似乎没有办法做到,
因为B要发给N, N打开了接收(为了要兼顾收到A),所以无法拒绝B,
N收到B后,N的硬件会自动做ACK回复(同样是为了兼顾A),且ACK是广播的,那在B面前,N就暴露了。
差不多弄清楚了,谢谢VV和Aries Lord!