标题: 关于单片机多机通信的问题 [打印本页]

作者: asho2017    时间: 2017-5-26 17:14
标题: 关于单片机多机通信的问题
本人最近在做一个设计,关于单片机一主多从的。现在已经实现了一个从机向一个主机发送数据,想以此为基础拓展到多个从机向主机发送数据,也就是不同各自独立的从机实时采集到信息(采集到的信息是数字),然后发送给主机,主机把这些信息综合处理(也就是把这些数字相加),然后把结果显示到lcd屏上,可以实现吗,有什么办法吗?谢谢各位大神的赐教

PS:主从机都是用的单片机

作者: yzwzfyz    时间: 2017-5-27 01:37
共用一条路,所以你规划好各从机的发送时间,不能出现同二个及以上子机同时向主机发信息事。
作者: yzwzfyz    时间: 2017-5-27 01:39
从机何时发信息呢?
方案1:
主机不叫不发。
方案2:
规定各从机的发送时间。
作者: imxuheng    时间: 2017-5-27 10:31
自定义通信协议
作者: 小潘哥    时间: 2017-5-27 14:03
使用IIC或RS485通信协议,可以的
作者: flutter    时间: 2017-5-27 16:01
用modbus协议,主机轮询,以后扩展也非常方便

作者: asho2017    时间: 2017-5-27 18:14
yzwzfyz 发表于 2017-5-27 01:39
从机何时发信息呢?
方案1:
主机不叫不发。

好,谢谢老铁,我试试
作者: dzbj    时间: 2017-5-27 22:57
可以啊 不过你想反了吧 这么弄多麻烦 还要考虑2楼说的顺序

你干嘛不在主机里建一个从机列表 然后顺序呼叫从机 叫到谁谁就回馈数据 单位时间永远是一对一通讯 而且也不需要用9位多机通讯方式 在呼叫数据流加一位ID号就行了 每个从机都接收数据 然后对比ID位和自己ID相同就返回测量值否则不动作

这样也消耗不了多少时间啊 并不比你想的从机叫主机慢反而少很多麻烦
作者: asho2017    时间: 2017-6-1 13:25
dzbj 发表于 2017-5-27 22:57
可以啊 不过你想反了吧 这么弄多麻烦 还要考虑2楼说的顺序

你干嘛不在主机里建一个从机列表 然后顺序呼 ...

谢谢您的回答 我试一试
作者: HC6800-ES-V2.0    时间: 2017-6-1 15:01
单片机一对一通讯,是非常简单的,但一对多,就比较复杂了。
接线是简单的(所有从机RXD与主机TXD相连,所有从机TXD与主机RXD相连),关键在于:主机发送的数据,应该由哪一个从机来接收并执行。
所以,串口要以方式2或方式3工作。此时,SCON中的控制位SM2,就有了功能。传送的数据,就要包括一次地址内容(从机寻址),一次数据内容(从机执行用)。
应该先看看相关书籍,学习后,再实验。

作者: asho2017    时间: 2017-6-6 21:47
HC6800-ES-V2.0 发表于 2017-6-1 15:01
单片机一对一通讯,是非常简单的,但一对多,就比较复杂了。
接线是简单的(所有从机RXD与主机TXD相连,所 ...

谢谢您
作者: lingwise    时间: 2017-6-7 12:13
不要把多个TXD,RXD接在一起,会出现电压不匹配的现象,最好用数据收发器,485总线或者CAN总线之类的,每个节点定一个地址,在协议里面做判断,发给自己的数据再回应




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1