当前位置:
工控论坛
> >
产品
>
嵌入式系统
>
单片机
我要发帖
求救!PC与单片机的多机通信
点击:
1723
| 回复:
11
jinanblue
关注
私信
精华:0帖
求助:0帖
帖子:1帖 | 3回
年度积分:0
历史总积分:6
注册:2003年8月06日
发表于:2003-10-05 17:17:00
楼主
小弟在作多机通信,上位机为PC机,下位机为多台单片机。单片机端使用MAX232进行通信。上位机对10台单片机循环扫描,单片机将数据传给计算机。上位机程序用Vc++编写。现在的问题是:单机通信,即PC和一台单片机通信没问题,但是将10台单片机都连到上位机上时,上位机却收不到正确的数据!10台单片机我采用对应接口连接的方式,即10台RXD,10台TXD连在一起,连到上位机的COM口上。哪位大虾知道这是什么原因?请不吝赐教,小弟感激不尽!
分享到:
收藏
邀请回答
回复楼主
举报
周公
关注
私信
精华:10帖
求助:0帖
帖子:119帖 | 5549回
年度积分:0
历史总积分:6446
注册:2002年11月26日
发表于:2003-09-15 19:38:00
1楼
这样不可以,多机通信应该用 RS485/422 总线电气标准。
回复
引用
举报
gongkongedit
关注
私信
精华:1099帖
求助:0帖
帖子:14392帖 | 54470回
年度积分:0
历史总积分:622
注册:2008年9月08日
发表于:2003-09-15 19:47:00
2楼
可以用MAX232,我毕业设计就用的这个。我住界面用VB编的,接收用汇编编的。
回复
引用
举报
重庆变频器
关注
私信
精华:4帖
求助:0帖
帖子:18帖 | 72回
年度积分:0
历史总积分:1165
注册:2004年2月24日
发表于:2003-09-16 00:58:00
3楼
你在每个单片机上如果都用了MAX232芯片的话,就不能正常工作 你这样的接法使单片机的TX信号混在一起了。(接收可以这样接)。 你只能十台单片机共用一个MAX232芯片,即先十个单片机的TX 接在一起,再接MAX232X,并且每单片机在没有通信的时侯必须把TX端置为高电平,接收也一样。这种方法在89C51单片机可以通过。 你觉得我说的这方法有理,给我发信。
回复
引用
举报
jinanblue
关注
私信
精华:0帖
求助:0帖
帖子:1帖 | 3回
年度积分:0
历史总积分:6
注册:2003年8月06日
发表于:2003-09-16 08:05:00
4楼
正如杨兄所言,小弟调试中自PC机发出的信号所有单片机都能正确接收,但单片机向PC机发送数据却老是出现问题。 你说的这种方法有一定道理。试验调试或许可以实现,但实际中多台单片机距离很远怎么办?TTL电平能传送这么远的距离吗?
回复
引用
举报
程传胜
关注
私信
精华:0帖
求助:0帖
帖子:0帖 | 1回
年度积分:0
历史总积分:1
注册:2003年9月16日
发表于:2003-09-16 16:53:00
5楼
有个地方要加二极管!
回复
引用
举报
重庆变频器
关注
私信
精华:4帖
求助:0帖
帖子:18帖 | 72回
年度积分:0
历史总积分:1165
注册:2004年2月24日
发表于:2003-09-16 17:22:00
6楼
如果距离远,每个单片机都将使用MX232的话,就要想办法隔离各单机的TX信号,要保证每一时刻只有一个单机的TX信号和PC机联接, 目前可能只有使用继电器的常开触点,单片机平时处于接收状态,收到PC机的查询信号后,通过一个端口去控制自己的继电器接通自己的TX信号线到PC机,通信完毕后必须释放继电器触点,以供其它单机使用。RS485通信就是有这样一个隔离功能才使它上面可以并联许多单机(它是通过一IC芯片完成隔离功能的),这样要多占用一个端口,还要修改程序,但绝对可以使用了。
回复
引用
举报
jinanblue
关注
私信
精华:0帖
求助:0帖
帖子:1帖 | 3回
年度积分:0
历史总积分:6
注册:2003年8月06日
发表于:2003-09-16 19:04:00
7楼
不知楼上程兄所言加二极管是在何处?我用的可是max232啊? 还有感谢杨兄帮忙想的办法,我觉得有必要一试。
回复
引用
举报
gongkongedit
关注
私信
精华:1099帖
求助:0帖
帖子:14392帖 | 54470回
年度积分:0
历史总积分:622
注册:2008年9月08日
发表于:2003-10-05 17:17:00
8楼
应再加一个片选信号
回复
引用
举报
gongkongedit
关注
私信
精华:1099帖
求助:0帖
帖子:14392帖 | 54470回
年度积分:0
历史总积分:622
注册:2008年9月08日
发表于:2005-01-14 15:13:00
9楼
简单,你说的这个我碰到过的,每个单片机tx端加二极管,极性为....单片机端为正,对着计算机端的为负,这样能保证数据正确的发送
回复
引用
举报
gongkongedit
关注
私信
精华:1099帖
求助:0帖
帖子:14392帖 | 54470回
年度积分:0
历史总积分:622
注册:2008年9月08日
发表于:2005-01-14 15:18:00
10楼
刚刚说的不全面,是每个单片机对应的232芯片的发送端接二极管,也就是txd对应转换出的232信号引脚处要加二极管,方向为:对着计算机的方向为负,对着232芯片的为正,这样就可以解决信号串扰问题
回复
引用
举报
mtwang
关注
私信
精华:0帖
求助:0帖
帖子:1帖 | 31回
年度积分:0
历史总积分:37
注册:2002年12月23日
发表于:2005-01-19 18:49:00
11楼
暈 這是用 典型daisy chain 線路 就ok 啦
回复
引用
举报
热门招聘
相关主题
数据类型转换汇总
[3216]
介绍国际PC/104协会与PC/104
[1183]
为什么要做可测试性设计(DFT...
[1449]
谁有 ENDAT-5701 主板
[1201]
具体如何学习嵌入式开发请各...
[1009]
工控系统中非常出色一款控制...
[1148]
热电偶测温电路原理图
[4136]
请教:PC104+扩展无线网卡的问...
[1112]
请问可以把直流12V变成10V的...
[1335]
我有问题
[1158]
官方公众号
智造工程师
客服
小程序
公众号