找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1982|回复: 4
收起左侧

单片机多机通信相关问题 怎样实现A给B通信,B给C通信,C给A通信?求建议

[复制链接]
ID:208569 发表于 2017-6-6 21:07 | 显示全部楼层 |阅读模式
求解,怎样实现A给B通信,B给C通信,C给A通信?望各位大神给一些建议。
回复

使用道具 举报

ID:62223 发表于 2017-6-7 11:58 | 显示全部楼层
如果单片机有多个串口或者SPI/自定义通讯口,可以A通讯口1接B通讯口1,B通讯口2接C通讯口1.C通讯口2接D通讯口1....

如果有串口建议用485总线,CAN总线,时分复用,
每个节点设定一个地址,检测到发给自己的数据就回应,不是就忽略。
一、一个主机多个从机,主机轮询分级,分级做应答,
二、数据量少可以主机主动往总线发送,各个节点检测到是发给自己,就把应答的数据发到总线上。
三、发送前最好检测是否当前有数据再发送,发送过后无应答可以重发,但是最好通过节点的编号错开不同的时间重发,避免无休止的数据重发冲突
回复

使用道具 举报

ID:82765 发表于 2017-6-7 12:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

ID:47286 发表于 2017-6-7 13:50 | 显示全部楼层
都在一个通讯总线上 每个模块规定来源码和目标码 接收到来源码后对比 符合条件的响应否则丢弃 这样的好处是硬件都在一个总线里 可以随意定义谁是ABC

其实和楼上各位前辈的意思相同 基本上 都这么干 至于用什么去通讯要看你实际情况了 SPI 485 CAN TTL都一样 一两米的距离TTL最方便 长距离当然485好 可以理解成就是TTL的延伸 CAN用于高速多模块通讯好 简单的应用里硬件要复杂一些 至少51是没有集成CAN控制器的 带CAN控制器的MCU通常资料比较少 有点问题搞起来麻烦
回复

使用道具 举报

ID:208804 发表于 2017-6-7 14:44 | 显示全部楼层
用CAN总线最好,485总线容易出问题,经验之谈
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表