OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5675|回复: 24

求助关于如何确定多机串联通讯的物理连接顺序问题

[复制链接]

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
发表于 2016-5-31 12:36:50 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 yibiejiangtian 于 2016-5-31 12:39 编辑

最近发现一个有意思的东西,主机是STM32做的,从机是一些小型单片机做的,从机输入端经过一个整流桥后到单片机,从机有内部EEPROM功能,且里面存储了一些数据。单片机的供电是整流桥整流后用稳压管稳压得到的电压,再经过二极管和电容给单片机稳定供电,也就是说总共只有两根线,即供电又通讯。串联通讯时主机引出两根线,然后一个个从机串联在上面,从机输入端有相同的电阻,主机是输出经过了升压,然后靠串联分压给每个从机提供大致相同的电压。通讯时主机能知道串联的任意位置从机里的数据,假如把从机顺序打乱,主机还是知道第几个从机存的是什么,也就是说主机知道从机的物理连接顺序,这个是如何实现的,有哪位高手知道么

串联通讯

串联通讯

从机

从机
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2016-5-31 14:25:41 | 显示全部楼层
x10?        应该不是  x10速度太慢

这个是菊花联结构拓扑

就是说数据经过每个从机都可能被从机处理一边
一个个的传回主机就可以知道顺序了
回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-5-31 21:02:33 | 显示全部楼层
止天 发表于 2016-5-31 14:25
x10?        应该不是  x10速度太慢

这个是菊花联结构拓扑

没接触过这种,哪些书籍有讲这类结构的?可以麻烦你简单解释一下吗
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11537
金钱
11537
注册时间
2014-4-1
在线时间
1314 小时
发表于 2016-6-1 08:53:40 | 显示全部楼层
本帖最后由 xuande 于 2016-6-1 08:55 编辑

机器乱而数据不乱,这个不稀奇,
比如每个从机有ID,数据包里面包含ID,就可以了。

感兴趣这样的串联供电,还没想明白;以及电源线同时作为通信线,通信速率和可靠性如何?



回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-6-1 22:20:03 | 显示全部楼层
xuande 发表于 2016-6-1 08:53
机器乱而数据不乱,这个不稀奇,
比如每个从机有ID,数据包里面包含ID,就可以了。

不是每个设备的ID问题,从机数据不包含ID信息,也没有ID,是主机能知道从机的物理连接顺序(不是逻辑顺序),从机不含任何身份信息,只有从机EEPROM里面存储的数据有区别(没区别他也能知道),主机能按从左至右的顺序读出每个从机的数据并按顺序显示,哪怕你打乱从机的顺序他还是可以知道从左至右每个从机里面的数据,这是我们公司一合作商的东东,从机不含ID信息,从机成千上万,你随便拿一些组网,他能知道物理顺序。至于通信速率到是不高,可靠性还蛮好的,只要没有虚接就能稳定传输,最大传输距离是Km级别的
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11537
金钱
11537
注册时间
2014-4-1
在线时间
1314 小时
发表于 2016-6-1 22:25:12 | 显示全部楼层
本帖最后由 xuande 于 2016-6-1 22:26 编辑
yibiejiangtian 发表于 2016-6-1 22:20
不是每个设备的ID问题,从机数据不包含ID信息,也没有ID,是主机能知道从机的物理连接顺序(不是逻辑顺序 ...


看来是这样:

数据逐级传递,主机每发一个CK,所有从机数据向右移一次,而最右侧的数据就被主机读取。那么,
主机发第一个CK,收到的数据必定是右起第一个从机;
再发一个,必定是右起第二个;
。。。。



回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-6-8 22:54:36 | 显示全部楼层
本帖最后由 yibiejiangtian 于 2016-6-8 23:00 编辑
xuande 发表于 2016-6-1 22:25
看来是这样:

数据逐级传递,主机每发一个CK,所有从机数据向右移一次,而最右侧的数据就被主机读取 ...

主机是先测从机的电阻,根据电阻确定要输出多高的电压,主机发射的信号每个从机应该是都能接收到的,从机输入端并联了电阻对主机给的高压信号进行了分压,主机变化的电压信号从机都能收到。最近了解了下二楼说的菊花链拓扑结构,在这个系统中,主机给从机供电电容充完电后电平设置成不一样的状态,从机一端为输入模式,一端都输出某一个电平,但与主机的那个不同,因为桥式连接好后的等效简化电路其实都一样,所以能确定第一个从机,然后逐个往下进行报数,也能确定物理连接顺序,然后从机自己也可以记住那个顺序,后面的事就比较简单了。就是不知道主机升压能刚好升的那么准确,到底用的什么变压器升压,而且高低电平变化那么快
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-9-23
在线时间
2 小时
发表于 2016-9-23 15:40:02 | 显示全部楼层
各位大神,我刚好也接触了类似的通讯电路,且是从机向主机单向传输,一直没搞明白如何工作,如果串联中的从机同时发送数据,主机该如何分辨出来,或者是否有一套合理的程序协议?
回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-9-25 17:47:35 | 显示全部楼层
dxcforever 发表于 2016-9-23 15:40
各位大神,我刚好也接触了类似的通讯电路,且是从机向主机单向传输,一直没搞明白如何工作,如果串联中的从 ...

我帖子的那种串联的话是从机上报,而且是向相邻的从机传递,一直到主机
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-9-23
在线时间
2 小时
发表于 2016-9-26 10:37:32 | 显示全部楼层
yibiejiangtian 发表于 2016-9-25 17:47
我帖子的那种串联的话是从机上报,而且是向相邻的从机传递,一直到主机

按照你的意思,从机是能够接收数据的了,也就是双向通讯,问题是从机之间是相互串联的,只有一根通讯导线,怎么实现既能发送又能接收呢?
回复

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2016-9-26 15:48:39 | 显示全部楼层
百度 二总线技术
1-1
回复

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2016-9-26 15:49:31 | 显示全部楼层
mygod 发表于 2016-9-26 15:48
百度 二总线技术

主机传数据  改变电压, 从机传数据 改变电流
1-1
回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-9-26 23:33:37 | 显示全部楼层
dxcforever 发表于 2016-9-26 10:37
按照你的意思,从机是能够接收数据的了,也就是双向通讯,问题是从机之间是相互串联的,只有一根通讯导线 ...

我说的那个系统和你的不见得相同,开始供电时从机全部是接收模式,主机发出高压信号,从机接收的是主机的分压信号,也就是从机都能接收主机的命令信号,然后根据主机的信号完成相关操作。主机发送完命令后可以转变为一个特定的电平信号,从机设定为另一个电平信号,并检测相邻的电平,由于主机给的电平不同,从机很容易就确定自己是不是与主机相连的那个(第一个),然后第一个开始报数,第二个接收到第一个的数据后把第一个的数据和自己的数据一起报给第三个,如此逐级上报,一直把所有的数据上报给主机。这个就和报数差不多,从机确定谁是第一个了就好办了,第一个开始发送,其他的全部等待接收,接收后就继续上报
回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-9-27 00:23:12 | 显示全部楼层
dxcforever 发表于 2016-9-26 10:37
按照你的意思,从机是能够接收数据的了,也就是双向通讯,问题是从机之间是相互串联的,只有一根通讯导线 ...

这个又不是真正的全双工,一个时刻只有一个发送,其他全部接收,下一刻可能就是另一个转变为发送,而前面处于发送的转变为接收状态。发送和接收跟多少线没关。这种结构要实现双向传输,前面可能已经不是真正的整流桥了,我看到的那个系统第一代是整流桥,只能单从机向主机上传,现在第二代系统把前面的整流桥换成了一个SOT23-6的贴片(丝印B32,你也可以查下是什么元件,这个元件在这个系统其他部分用其中3个脚做了类似开关MOS管的功能)后才实现了串联多从机向主机上报数据的功能
回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-9-27 00:24:19 | 显示全部楼层
dxcforever 发表于 2016-9-23 15:40
各位大神,我刚好也接触了类似的通讯电路,且是从机向主机单向传输,一直没搞明白如何工作,如果串联中的从 ...

你是搞什么产品?
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-9-23
在线时间
2 小时
发表于 2016-9-27 10:19:00 | 显示全部楼层

我在搞一个数据采集系统,就是从机采样电压和温度,再将采样到的数据上传给主机,每个从机相互串联,输出端用的是达灵顿复合三极管,从机只能发送数据,不能接收数据,而且从机发送数据没有用到串口就是普通的I/O口。根据你的意思,一个时刻只有一个在发送,其它全部接收,问题是当某个从机发送完成后,其它从机又怎么知道发送已完成,自己可以发送了呢?还请指点迷津,谢谢!
回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-9-27 14:06:26 | 显示全部楼层
dxcforever 发表于 2016-9-27 10:19
我在搞一个数据采集系统,就是从机采样电压和温度,再将采样到的数据上传给主机,每个从机相互串联,输出 ...

你一定要搞串联?两根线也可以搞并联,搞并联简单的多,也就是楼上说的那种二总线
http://www.amobbs.com/forum.php? ... ge=2&tid=786475
http://wenku.baidu.com/link?url= ... H071oA41qABKWkXPZBe
我看到的这种系统另一个厂家搞并联蛮好的,一个从机出问题不会影响整个系统,而串联的会。
串联的我看了2楼说的菊花链拓扑结构后查资料分析过了半天,只分析了一种大致可行的发送和接收转换方案,由于当时只是对这种东东好奇,自己又不做,所以分析完后面把草稿扔掉了,具体的要从头分析,还要验证。有空我在分析下
回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-9-27 14:10:22 | 显示全部楼层
dxcforever 发表于 2016-9-27 10:19
我在搞一个数据采集系统,就是从机采样电压和温度,再将采样到的数据上传给主机,每个从机相互串联,输出 ...

再一个搞串联,主机要升压,,从机越多主机电压越高,主机在湿度大的环境会出现高压击穿现象,这个是那个系统遇到过的实际问题,电压太高还有安全问题
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-9-23
在线时间
2 小时
发表于 2016-9-27 14:20:20 | 显示全部楼层
yibiejiangtian 发表于 2016-9-27 14:10
再一个搞串联,主机要升压,,从机越多主机电压越高,主机在湿度大的环境会出现高压击穿现象,这个是那个 ...

我的应用场合是光伏发电系统,系统中由多个光伏组件(十到二十个)串联后再接入逆变器,也就是系统本身就是串联结构,而我要做的数据采集就是把采集模块接入每个组件的输入端,这样它们自然也会组成串联,在整个组件串后面再加接收模块,这样形成一个数据采集系统,因此就牵涉到串联结构的通讯,还请给予帮助,谢谢!
回复

使用道具 举报

15

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2015-11-30
在线时间
39 小时
发表于 2016-9-27 15:06:24 | 显示全部楼层
我猜测会不会是主机从左到右发送一组数据,其中包含全部从机的数据数组,流经每个从机的时候就每个从机依次向其中填写自己的数据,然后流回主机,主机查看数据之后就会知道从机的位置及数据
回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-9-27 20:26:07 | 显示全部楼层
本帖最后由 yibiejiangtian 于 2016-9-27 20:28 编辑
bumbdong 发表于 2016-9-27 15:06
我猜测会不会是主机从左到右发送一组数据,其中包含全部从机的数据数组,流经每个从机的时候就每个从机依次 ...

主机发送的命令从机都接收,从机靠输入端的电阻来分压,都能处理。我以前把那个系统的从机的电路图还原过,但没校正,可能还有些小问题,给你看下
回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-9-27 21:03:04 | 显示全部楼层
本帖最后由 yibiejiangtian 于 2016-9-27 22:59 编辑

电路图文件太大,你下载看吧http://pan.baidu.com/s/1dES3kyP   R2是热敏电阻,用来限流的,可以忽略,R1是2K,用来分压的
P0和P1就是那个丝印B32的SOT23-6贴片,主机的信号都通过D0和D1的节点进入从机接收IO,同时对C?(那个没编号C?的电容)那个电容充电,电容为从机提供稳定的工作电压。由于从机输入端是不分极性的,那么P0这个元件必然能根据R1两端电压的方向的不同将从机的假想地端(与P0的2/5端相连的地方)连接到P0的4或6,只有这样从机才有真正的回路。这个是从机处于接收模式。从机的发送模式应该是通过P0这个元件来转换的。因为P1是用来作开关的,C10的正通过out1经过负载到P1的4再到P1的5(即C10的负端),形成回路,这一部分我是很肯定的,因为是对负载大电流瞬间放电,P1这个元件可能是封装的几个MOS管。从机发送,把两个端口的一个用作地,另一个用作信号线
回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-9-27 22:57:23 | 显示全部楼层
本帖最后由 yibiejiangtian 于 2016-9-27 23:01 编辑
dxcforever 发表于 2016-9-27 14:20
我的应用场合是光伏发电系统,系统中由多个光伏组件(十到二十个)串联后再接入逆变器,也就是系统本身就 ...

你的和我说的那个还是有区别,你的这个要看从机本身和组件是并联还是怎么连接,以及从机的供电你是从组件取电还是主机供电,还有整个网络怎么连接,这个都要说清楚。我那个要自动识别物理连接顺序,你的给从机定个身份码后人为排好就可以了。这种发电系统把组件串联,也就是相当于N个电池串联,你如果想借用组件的串联线承载信号不太现实吧,组件串联后是输出给逆变器的,你用串联线发送信号的话,那给逆变器的都是数字信号了。只是的单根线传输数据的话,从机发送完后可以加上N字节的结束码,表示自己已经发送完,或者参考单总线那种结束标志。至于一根线的问题,一个从机确定自己为发送的话,那与自己相连的负就是地,另一端就是信号。你要把这个系统总共用哪些线,怎么连,什么用途确定好了才好说
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-9-23
在线时间
2 小时
发表于 2016-9-28 09:00:58 | 显示全部楼层
yibiejiangtian 发表于 2016-9-27 22:57
你的和我说的那个还是有区别,你的这个要看从机本身和组件是并联还是怎么连接,以及从机的供电你是从组件 ...

我这个就是利用直流线缆传递数据信号,类似电力载波通讯,也就是从机与组件是并联的,且从机的供电就是从组件取得,主机也是并联在逆变器的输入端,所以不会改变组件和逆变器之间连接关系。关键的问题还是在于从机不能接收信息,它如何知道其它从机已发完数据,自己可以发送了,而不是同时发送产生冲突。
回复

使用道具 举报

9

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-1-28
在线时间
37 小时
 楼主| 发表于 2016-9-28 13:28:47 | 显示全部楼层
本帖最后由 yibiejiangtian 于 2016-9-28 13:31 编辑
dxcforever 发表于 2016-9-28 09:00
我这个就是利用直流线缆传递数据信号,类似电力载波通讯,也就是从机与组件是并联的,且从机的供电就是从 ...

试着从机采样电流,转变成电压信号,然后分离信号。单个组件自己两端电压肯定不变,你又不能拉根线接到地端,采样电压肯定不靠谱,那么从机就只能采样电流获得信号。你这个还不同于电力载波通讯,电力的好分离信号
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 16:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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