导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→求救!PC与单片机的多机通信[jinanblue]

 *第16291篇: 求救!PC与单片机的多机通信

  
楼 主:jinanblue 2003年9月15日20:22
 求救!PC与单片机的多机通信
小弟在作多机通信,上位机为PC机,下位机为多台单片机。单片机端使用MAX232进行通信。上位机对10台单片机循环扫描,单片机将数据传给计算机。上位机程序用Vc++编写。现在的问题是:单机通信,即PC和一台单片机通信没问题,但是将10台单片机都连到上位机上时,上位机却收不到正确的数据!10台单片机我采用对应接口连接的方式,即10台RXD,10台TXD连在一起,连到上位机的COM口上。哪位大虾知道这是什么原因?请不吝赐教,小弟感激不尽!
  
2楼:guest 2003年9月15日21:51
 rs232没有多机通信功能!多个RXD直
rs232没有多机通信功能!多个RXD直接接到一起也不对,会短路!
  
3楼:guest 2003年9月15日22:47
 如果多台机同时传递怎么办
会出现竞争的

如果多台机同时传递怎么办
会出现竞争的问题
你可以使用串口服务器
  
4楼:jinanblue 2003年9月15日23:05
 请问什么是串口服务器?
请问什么是串口服务器?我这里不会出现多台单片机向PC机同时传送数据的情况。我现在考虑是不是rs232口的4和6,7和8需要短接一下?
  
5楼:daniel 2003年9月16日13:16
 这样一个系统是绝对可行的,本人做过收银机
这样一个系统是绝对可行的,本人做过收银机的多机通信系统与你的差不多。
我想你是不是没有给下位机分配不同的地址(或硬件有问题)。可用串口
监控程序观察各串口的发送接收数据。
  
6楼:fjhzs 2003年12月29日09:30
 [quote][b]以下是引用[i]da
以下是引用daniel在2003-9-16 13:16:47的发言:
这样一个系统是绝对可行的,本人做过收银机的多机通信系统与你的差不多。
 我想你是不是没有给下位机分配不同的地址(或硬件有问题)。可用串口
 监控程序观察各串口的发送接收数据。
 


这是可以的。你可以看看philips 的51单片机,它的UART都是增强型的,带地址选择,
但是只能是一个主机。
  
7楼:jinanblue 2003年9月16日14:54
 请问楼上的兄台,你是如何给多台单片机分配
请问楼上的兄台,你是如何给多台单片机分配不同地址的?小弟我硬件上没有任何设置,即所有单片机RXD与PC机TXD,所有单片机TXD与PC机RXD相连。上位机发数据,所有下位机能同时接收到,然后在中断程序中判断发送的是什么数据,依此判断继续通信还是退出中断。你觉着这样合适吗?小弟感觉已到穷图末路,大虾们救救我吧!
  
8楼:guest 2003年9月16日15:24
 用软件设置地址,你有qq吗?联系229289319
  
9楼:guest 2003年9月16日15:20
 我认为,那位仁兄的“绝对可行“只是个巧合
我认为,那位仁兄的“绝对可行“只是个巧合,从设计原理来说,那真的是个狗屁设计。
不论是先将单片机的RXD,TXD脚接在一起,然后再接232转换,还是都接上232转换,再接在一起,都是不可取的。
“绝对可行”只能说是“凑合能用”。谁买了你的收银机真是倒霉了。。。。。
另外:如果单片机用的是51,可以采用51的多机通讯模式,解决多机通讯问题。在PC机上用奇偶校验位模拟第9位数据位。
  
10楼:guest 2003年9月17日13:35
 我帮你高顶?其实在软件上下一点工夫
我帮你高顶?其实在软件上下一点工夫
  
11楼:guest 2003年9月17日20:17
 所有分机的TXD通过一个二极管串接然后连
所有分机的TXD通过一个二极管串接然后连到一起送给PC机的RXD;
串二极管的目的是隔离各分机的发送端避免竞争;
这样的连接方法在单片机书里一般都有说明
  
12楼:jinanblue 2003年9月19日09:23
 这种方式我试了,行不通!
  
13楼:WRONGSIR 2003年9月17日21:38
 这位仁兄老弟我有点误解,如果pc机广播发送的话,单片机同时响应怎么办
好象理论上232接口是无法并联的,因为232接口只是一个电平,肯定会引起短路烧坏接口,还真不明白你的收银机怎么并联的
  
14楼:都市熊 2003年9月17日22:54
 我们公司的做法是使用多串口卡。
老兄,

我们公司的做法是使用多串口卡。
老兄,你的硬件设计就有问题,如果你想使用串口总线方式也不是这么做的
  
15楼:jinanblue 2003年9月19日09:29
 这位老兄,请问多串口卡的价位大体是多少?
  
16楼:zjsx133 2003年9月18日08:35
 改动
要设置单片机的地址,采用9位的方式通讯,判断地址与数据位。
  
17楼:guest 2003年9月18日08:56
 按我说的试试
1、因为232静态时txd电压为-10伏,所以必须隔离。将每个单片机的txd接都接一个二极管,接到二极管的正极,然后,将所以二极管的负极连在一起,接到pc机的rxd。二极管要采用高速的,如IN4148。
2、单片机的rxd直接连在一起,接到pc机的txd
3、采用软件方式,pc先发单片机地址码,以确定由那个单片机响应。
  
18楼:guest 2003年9月18日15:35
 增加二极管,软件很重要,采用Pollin
增加二极管,软件很重要,采用Polling协议可以完成你的功能.多机通讯并不是很复杂,要注意总线冲突.
  
19楼:guest 2003年9月23日16:34
 pc与单片机多机通讯
用485通讯芯片
  
20楼:红心J 2003年9月23日17:02
 赞成。485/422
赞成。485/422

>>>>>>对该主题发表你的看法

本主题贴数28,分页: [第1页] [第2页]


[上一篇主题]:逻辑分析仪的原理是什么?

[下一篇主题]:请教