打印
[51单片机]

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

[复制链接]
1562|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
两根线是行不通的了,因为客户指定要一根通信线。原因:第一为了省成本,第二为了兼容,而且有人已经实现了。
之前是后雷达(主机)+显示器(从机),现在要加前雷达(主机)。
追问:真心请教,如何做到两主机时间上的同步呢?

使用特权

评论回复
5
wx85105157| | 2014-5-23 10:44 | 只看该作者
没次通信就重置下20ms的计数器呗...通信的接口肯定能当普通IO口用吧..

使用特权

评论回复
6
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

粉丝