RS485总线和CAN总线一样,都是串行总线,同样广泛应用于工业设备之间,因为 工业现场电磁环境复杂、干扰源多,因此RS485总线除了满足正常的通讯功能之外,还需要满足以下要求:
(1)接口电路静电放电抗扰度3 级:
接触放电6KV,空气放电8KV
(2)射频电磁场辐射抗扰度3 级:
试验场强10V/m
(3)电快速瞬变脉冲群抗扰度3级:
信号端口1KV 5KHZ或1KV 100KHZ
(4)浪涌(冲击)抗扰度3 级:
线线间开路试验电压1kv
线地间开路试验电压2kv
下图为我在实际应用中的电路,图中的收发器采用隔离型的ISO3082。
我们先来分析一下总线侧:
根据RS485总线电平标准:
200mV<+VI<+6V (总线上A的电压减去B的电压大于200mV且小于6V,为显性电平)
-6V<-VI<-200Mv (总线上A的电压减去B的电压大于-6V且小于200mV,为隐性电平)
在实际设计时,留出100mV裕度
300mV<+VI<+6V 总线上A的电压减去B的电压大于300mV且小于6V,为显性电平)
-6V<-VI<-300mV (总线上A的电压减去B的电压大于-6V且小于300mV,为隐性电平)
图中5V_485经过R13、R20、以及总线间等效电阻60欧姆分压后,VA-VB>=300mV,为显性电平,它代表了起始位为显性电平。
最右边是一个三级防护电路:图中GDT1为气体放电管,当总线上的脉冲电压高于600V,气体放电管被击穿,放电速率为100V/s,此时总线电压为68-112 。PTC1和PTC2是热敏电阻,当流过其电流大于120mA时断开,小于时接通,有效抑制浪涌冲击。D6是TVS,当总线脉冲电压大于13.3V,TVS二极管导通,将总线脉冲电压钳位到26V以下,保护ISO3082。以上实现了CAN总线的三级保护,使设备能应对工况现场的干扰。
使用ISO3082时,应特别注意其内部结构图,D和DE输入端都串联了500R电阻,在与3.3V CPU或MCU直接连接时,最大电流为6.6Ma,对于MCU,一般不会出现过流的情况,CPU就可能出现过流,所以设计时串联1K电阻,电流设置为2.2Ma。
RX端内部结构如下,其输出方式是推挽输出,4R和6.4R是限制输出电流,当输出与CPU或MCU直连时,高电平电流为825Ma, 低电平平电流为516Ma,这样不管是MCU还是CPU,都会损坏。因此必须加电阻限流,我设计时加了1K, 高低电平电流幅值为3.3Ma,满足功能且不会损坏器件。
Q1与R22、R24一起构成单元线路,作用是将485_UART2_TX电平取反,来控制RE非引脚和DE引脚,实现自收发功能。