日期:2014-05-17  浏览次数:20984 次

RS485 和 RS232 在串口通讯编程上有什么区别?因为485是一对多,那么主机怎么与指定的设备通讯呢?
      我以前写过RS232通讯,对RS232串口通讯的流程比较了解,但最近公司的项目变成了RS485通讯,我想问一下各位大侠,RS485通讯与RS232通讯在程序代码上有什么区别。
    1,我在网上查了一下,都说RS232与RS485在代码上没有任何区别,这是我不能够理解的,因为RS232是一对一通讯,只要把COM口打开,只须接收数据就行了。
         但是RS485,它是一对多通讯,我把COM口打开,接收到的数据,我怎么知道这个数据是哪台设备发过来的呢,而且我要向指定的设备发数据又怎么实现呢。 
         我想,至少485通讯的时候,每次数据的收发,要把设备号带上吧, 要不然怎么识别那么多的从设备呢??


求解,最好是有源代码,因为用代码讲解是最清楚的,如果有485通讯的源程序更好,我的开发语言是C#。 谢谢大家了,分不多,是个意思。呵呵。

------解决方案--------------------
一个485上多个设备,设备用地址区分,发命令的时候就根据地址去识别噻,发给谁谁就响应,数据发回也有地址的
------解决方案--------------------
帮顶,一般都在用RS232,485的还真没用过,关注一下。
------解决方案--------------------
我这用的时候也是和232一样,就是在数据中 前面加了485设备地址,
如发数据abc给地址01010101的设备,串口数据就是ff f8 01010101 0003 abc ,ff f8是标志头,0003是数据长度
如发数据ok给地址01010102的设备,数据就是ff f8 01010102 0002 ok 

------解决方案--------------------
引用:
我再问一下,485设备地址是怎么确定的呢? 是自己随意确定的,还是有什么规律,还是设备出厂时就已经有了?

地址在设备上可以人为设定,一般支持485总线的设备都有设定地址的功能
------解决方案--------------------
引用:
一个485上多个设备,设备用地址区分,发命令的时候就根据地址去识别噻,发给谁谁就响应,数据发回也有地址的


照2楼的意思,如果与设备的通讯协议是固定的,也就是说在通讯命令中包含了设备号,那样的话就没问题了。
------解决方案--------------------
引用:
  设备的地址如何设定呢??

   是用命令吗? 是什么命令?请大侠回复一下啊,谢谢。


设备地址一般都是人为设定的,如果此设备支持485,那么它可能有个地方能设置设备地址,或是拨片,或是配置界面中设置。这个需要咨询一下硬件工程师了。
然后,上位机与设备的通讯协议中肯定包含了一个设备地址的。这个查下设备的开发文档协议就清楚了。