[51单片机] 请教各位大虾,关于MCU单向通信冲突的问题?

[复制链接]
 楼主| hww5408 发表于 2014-5-22 17:17 | 显示全部楼层 |阅读模式
说明:整个系统包括:显示器1台(从机),后雷达1台(主机),前雷达1台(主机)。通信只通过一根通讯线,通讯协议自定义,从机负责接收数据,主机负责发送数据,每间隙20mS发一帧数据。
条件:主机只有数据发送电路,没有接收电路,硬件不能更改;
      倒车时,前后雷达主机和显示器同时上电;
问题:只有一根通讯线,2台主机带1台从机,如何做到主机发送数据时不冲突?
     打个比方,前雷达和后雷达的主函数运行时间基本上是固定的,0ms时上电,10mS时前雷达发送数据,30mS时后雷达发送数据,50ms时前雷达发送数据。。。。。依此类推,即使主机采用4M晶振,由于各方面原因,不同MCU上机器周期也会有细微的误差,运行一段时间后,造成前雷达和后雷达的数据会重叠发送。
ningling_21 发表于 2014-5-22 17:24 | 显示全部楼层
两者需要时间上的同步....
airwill 发表于 2014-5-22 18:31 | 显示全部楼层
我建议, 从机出两个口, 分别接受这两台主机的数据.
别折腾了, 否则你会很惨
 楼主| hww5408 发表于 2014-5-23 08:13 | 显示全部楼层
两根线是行不通的了,因为客户指定要一根通信线。原因:第一为了省成本,第二为了兼容,而且有人已经实现了。
之前是后雷达(主机)+显示器(从机),现在要加前雷达(主机)。
追问:真心请教,如何做到两主机时间上的同步呢?
wx85105157 发表于 2014-5-23 10:44 | 显示全部楼层
没次通信就重置下20ms的计数器呗...通信的接口肯定能当普通IO口用吧..
dengm 发表于 2014-5-26 16:34 | 显示全部楼层
    一帧数据的发送时间 <  3.3 ms 时 (40/12=3.3 ms) 可,
    后雷达1台(主机):  每20ms连发3个数据帧
  前雷达1台(主机):  每13.333ms 发1个数据帧
     1 1 1 0 0 0 1 1 1 0 0 0 ......
     1 0 0 0 1 0 0 0 1 0 0 0 ......

您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

49

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

4

主题

49

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部