打印
[其它应用]

什么解决对点对,不发生通信冲突

[复制链接]
1378|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuhuis|  楼主 | 2022-8-7 12:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用SH99F01制作点对点通信,如L、N母线上接A、B   C   D   E......在某个时候,A给B发信息,这个时候,C又想给D发信息,那么什么解决对点对,不发生通信冲突呢??

使用特权

评论回复
沙发
lizye| | 2022-8-7 12:53 | 只看该作者
然后呢?你是怎么应对这个的呢

使用特权

评论回复
板凳
zhuhuis|  楼主 | 2022-8-7 12:56 | 只看该作者
如果接收距离太远,电力通信中继器,什么弄呢?

使用特权

评论回复
地板
dengdc| | 2022-8-7 13:00 | 只看该作者
电力线是共享信道,解决共享信道冲突是无线通信等面临的老问题。 电力线通信的处理机制基本和无线是一样的,无非是冲突检测与冲突退避问题,或者做令牌避免冲突。在SH99F01中,一般是用冲突退避机制,即发送之前检测信道,如果信道被占用则退避一段时间再发。同时为了实现可靠通信,最好还要配合ACK响应,当然也可省略ACK,看通信要求了。

使用特权

评论回复
5
wyjie| | 2022-8-7 13:02 | 只看该作者
具体到你的问题,可以利用SH99F01内部的RXPD标志,只要线上有PLC信号,RXPD会在信号头上6ms左右置出标志,假设A比C先发10ms左右,则C发送时已能够检测到RXPD,则会退避等待一个随机时间再发。当然你也许会问,假如A,C的发送间隔很短比如2ms,C发送时还未检测到RXPD,此时确实会发生A,C的PLC信号冲突,这就要依赖ACK机制了,A和C会请求重传,但重传前两者会等待一段随机时间,尽可能保证在重传时两者的发送间隔相差6ms以上。

使用特权

评论回复
6
stly| | 2022-8-7 13:04 | 只看该作者
当然,如果要提高介入效率,可以采用类似令牌环的方式,设定A,B,C,D按顺序发送,由于每一个节点发送时其他节点都处于监听状态,可以在数据包里增加顺序信息,保持A->B->C->D的发送顺序,如果某个节点无信息发送,可等待10ms后直接跳到下一个节点发送。

使用特权

评论回复
7
chenjunt| | 2022-8-7 13:06 | 只看该作者
至于中继,任何一个节点都可以作为中继,只需在数据包里指定即可。   比如队列报号,可以手拉手报号,也可以间隔着报号,还可以指定某几个人报号,灵活性很大。

使用特权

评论回复
8
huangchui| | 2022-8-7 13:09 | 只看该作者
需要有防冲突机制,如果某个节点要发数据时发现总线忙,需要等待。

使用特权

评论回复
9
yszong| | 2022-8-7 13:11 | 只看该作者
如果频率不高 中断肯定是最好的选择

使用特权

评论回复
10
huangchui| | 2022-8-7 13:17 | 只看该作者

是不是写在中断中就行 一个总线总归就只能处理一个

使用特权

评论回复
11
zhanghqi| | 2022-8-7 13:22 | 只看该作者
关于防冲突机制不知道能不能稍微讲一下在哪能了解

使用特权

评论回复
12
zhuhuis|  楼主 | 2022-8-7 13:27 | 只看该作者
嗯,预料中的结果,多谢大家啦

使用特权

评论回复
13
weifeng90| | 2022-8-8 08:19 | 只看该作者
用485或CAN总线通信

使用特权

评论回复
14
NJZR| | 2022-8-26 02:55 | 只看该作者
点数不多可以按楼上朋友说的令牌环方式,点数多可以参考下CAN总线的冲突解决机制,不过这与你通讯硬件能否支持有关。

使用特权

评论回复
15
Stahan| | 2022-10-9 22:09 | 只看该作者
频率不高的话用中断就不错

使用特权

评论回复
16
AloneKaven| | 2022-10-10 20:08 | 只看该作者
可以用485

使用特权

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

本版积分规则

728

主题

8464

帖子

6

粉丝