打印
[程序源码]

RS485硬件电路设计中需注意的问题

[复制链接]
70459|426
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 山东电子小菜鸟 于 2018-10-9 19:30 编辑

RS485硬件电路设计中需注意的问题
1 问题的提出
在工业控制及测量领域较为常用的网络之一就是物理层采用RS-485通信接口所组成的工控设备网络。这种通信接口可以十分方便地将许多设备组成一个控制网络。从目前解决单片机之间中长距离通信的诸多方案分析来看,RS-485总线通信模式由于具有结构简单、价格低廉、通信距离和数据传输速率适当等特点而被广泛应用于仪器仪表、智能化传感器集散控制、楼宇控制、监控报警等领域。但RS485总线存在自适应、自保护功能脆弱等缺点,如不注意一些细节的处理,常出现通信失败甚至系统瘫痪等故障,因此提高RS-485总线运行可靠性至关重要。
2 硬件电路设计中需注意的问题(隔离完整原理图)

游客,如果您要查看本帖隐藏内容请回复

   图2数据通信程序基本流程图


游客,如果您要查看本帖隐藏内容请回复

  单片机通信节点的程序基本上可以分为6个主要部分,分别为预定义部分、初始化部分、主程序部分、设备状态检测部分、帧接收部分和帧发送部分。预定义部分主要定义了通信中使用的握手信号,用于保存设备信息的缓冲区和保存本节点设备号的变量。设备状态检测部分应能在程序初始化后,当硬件发生故障时,作出相应的反应。主程序部分应能接收命令帧,并根据命令的内容作出相应的回应。为缩短篇幅,这里仅给出主程序部分的代码。如下所示:

  /*主程序流程*/
  while(1){         //主循环
    if(recv_cmd(&type)==0)//发生帧错误或帧地址与本机
                //地址不符,丢弃当前帧后返回
  continue;
  switch(type){
    case__ACTIVE_:    //主机询问从机是否存在
      send_data(__OK_, 0,dbuf);//发送应答信息
      break;
    case__GETDATA_:
      len = strlen(dbuf);
      send_data(__STATUS_, len,dbuf);//发送状态信息
        break;
    default:
        break;    //命令类型错误,丢弃当前帧后返回
    }
  }

4 结论

  RS-485由于使用了差分电平传输信号,传输距离比RS-232更长,最多可以达到3000 m,因此很适合工业环境下的应用。但与CAN总线等更为先进的现场工业总线相比,其处理错误的能力还稍显逊色,所以在软件部分还需要进行特别的设计,以避免数据错误等情况发生。另外,系统的数据冗余量较大,对于速度要求高的应用场所不适宜用RS-485总线。虽然RS-485总线存在一些缺点,但由于它的线路设计简单、价格低廉、控制方便,只要处理好细节,在某些工程应用中仍然能发挥良好的作用。总之,解决可靠性的关键在于工程开始施工前就要全盘考虑可采取的措施,这样才能从根本上解决问题,而不要等到工程后期再去亡羊补牢。

评论
forgot 2023-9-15 09:15 回复TA
回复可见,学习一下 
forgot 2023-6-30 19:35 回复TA
学习一下 
hjw01 2021-3-14 13:27 回复TA
抄电路都抄错了, 输入和输出都是共地,你电路哪里有隔离了? 
callhgd 2018-11-19 17:15 回复TA
学习,学习,正在搞工控这块。 
山东电子小菜鸟 2018-10-9 19:23 回复TA
@574997859 :在是大学课本中的图片,目的是为了批判大学教育 
574997859 2018-5-31 19:46 回复TA
@dukedz :同理!!!!搞不懂设计的人在想什么东西。 
dukedz 2018-5-15 07:58 回复TA
@qinlu123 :RS485 通常最快是 10Mbps,而且很多大廠很久之前都出到 100Mbps 的接口芯片了,CAN 肯定比不過 485。 
山东电子小菜鸟 2018-5-14 17:20 回复TA
感谢各位的意见,上文所述只是给提供一个雏形,如用在产品上还需仔细斟酌 
qinlu123 2018-5-14 16:53 回复TA
@dukedz :CAN怎么可能比485慢 
fzyuan 2018-5-7 12:33 回复TA
@dukedz :对楼主这个电路,9600bps能工作就不错了。而其实可能是一个字节的数据都无法送出。 

相关帖子

沙发
wuchuny0330| | 2018-1-29 10:40 | 只看该作者
看看

使用特权

评论回复
板凳
李飞789| | 2018-1-29 11:05 | 只看该作者
mark

使用特权

评论回复
地板
白胡子| | 2018-1-30 07:58 | 只看该作者
正想学习485方面的知识

使用特权

评论回复
5
hebiao21ic| | 2018-1-30 08:12 | 只看该作者
谢谢!!!!!!!!!!!!

使用特权

评论回复
6
huixuesen| | 2018-1-30 09:59 | 只看该作者
学习!

使用特权

评论回复
7
小庄2| | 2018-1-30 14:46 | 只看该作者

使用特权

评论回复
8
574997859| | 2018-1-30 17:37 | 只看该作者
注意什么

使用特权

评论回复
9
574997859| | 2018-1-30 17:39 | 只看该作者
你SM712都没接对,51我们先不说,就拿你这个485电路,拿到现场,节点一多包死机,给学生开发板还可以玩几下。也没有交流高压防护。

使用特权

评论回复
10
l4157| | 2018-1-31 08:26 | 只看该作者
学习一下

使用特权

评论回复
11
山东电子小菜鸟|  楼主 | 2018-1-31 08:41 | 只看该作者
574997859 发表于 2018-1-30 17:39
你SM712都没接对,51我们先不说,就拿你这个485电路,拿到现场,节点一多包死机,给学生开发板还可以玩几下 ...

感谢您的回复,您把您的完美的电路图发出来 让大家都学习下,就更加完美了

使用特权

评论回复
12
六画玄辉| | 2018-1-31 09:03 | 只看该作者
看看先

使用特权

评论回复
13
六画玄辉| | 2018-1-31 09:06 | 只看该作者
574997859 发表于 2018-1-30 17:39
你SM712都没接对,51我们先不说,就拿你这个485电路,拿到现场,节点一多包死机,给学生开发板还可以玩几下 ...

以你之见应该怎么接?

使用特权

评论回复
14
qq312448494| | 2018-1-31 14:48 | 只看该作者
回复查看,学习学习!

使用特权

评论回复
15
574997859| | 2018-2-1 15:31 | 只看该作者
六画玄辉 发表于 2018-1-31 09:06
以你之见应该怎么接?

这个百度一下一大堆。

使用特权

评论回复
16
574997859| | 2018-2-1 15:34 | 只看该作者
山东电子小菜鸟 发表于 2018-1-31 08:41
感谢您的回复,您把您的完美的电路图发出来 让大家都学习下,就更加完美了 ...

SM712改为大功率的TVS,AB之间,AB各自对地都要接,共三个TVS。同时对外串联小功率PPTC,当你接入交流电时,TVS吸收电流,电流增大,导致PPTC断开。一般情况下,TVS也能够抑制你总线上的瞬态电压。

使用特权

评论回复
评论
574997859 2018-7-27 10:32 回复TA
@六画玄辉 :那你可要用隔离电源啊。这样就可以真正意义上的隔离。不知你的项目总线上可以搭多少个设备。还有抗干扰程度。 
六画玄辉 2018-7-27 09:37 回复TA
加了光耦却没有做到隔离倒是真的,隔离应该是全部隔离,不是单点隔离电源正极,地也是要隔离的。在特殊环境下用空气放电管比较多。 
六画玄辉 2018-7-27 09:32 回复TA
我不清楚你说的sm712没接对,难道sm712不是这样接???sm712加PTC是我一直在用的,对于普通非特殊环境下足够了。 
17
zc581| | 2018-2-1 16:11 | 只看该作者
谢谢分享

使用特权

评论回复
18
北海326| | 2018-2-1 17:09 | 只看该作者
看看先~~~

使用特权

评论回复
19
郑朝清| | 2018-2-1 17:19 | 只看该作者

正想学习485方面的知识

使用特权

评论回复
20
linxinhua2014| | 2018-2-1 18:56 | 只看该作者
会不会让我失望啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq:641208111;技术交流群:377640799 大学电子竞赛预热赛开赛啦~千元大奖等你来拿火热进行中!!点击参加活动 欢迎加个人QQ:641208111一起交流合作

140

主题

3082

帖子

23

粉丝