本帖最后由 山东电子小菜鸟 于 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总线存在一些缺点,但由于它的线路设计简单、价格低廉、控制方便,只要处理好细节,在某些工程应用中仍然能发挥良好的作用。总之,解决可靠性的关键在于工程开始施工前就要全盘考虑可采取的措施,这样才能从根本上解决问题,而不要等到工程后期再去亡羊补牢。 |
回复可见,学习一下
学习一下
抄电路都抄错了, 输入和输出都是共地,你电路哪里有隔离了?
学习,学习,正在搞工控这块。
@574997859 :在是大学课本中的图片,目的是为了批判大学教育
@dukedz :同理!!!!搞不懂设计的人在想什么东西。
@qinlu123 :RS485 通常最快是 10Mbps,而且很多大廠很久之前都出到 100Mbps 的接口芯片了,CAN 肯定比不過 485。
感谢各位的意见,上文所述只是给提供一个雏形,如用在产品上还需仔细斟酌
@dukedz :CAN怎么可能比485慢
@dukedz :对楼主这个电路,9600bps能工作就不错了。而其实可能是一个字节的数据都无法送出。