SP485E在电能表通讯中的应用
摘要:本文介绍SP485E系列半双工RS485收发器的电路结构、原理,同时介绍RS485设计规范及设计时要注意的问题及解决方案,结合上述两部分设计用SP485E器件进行RS485和RS232两种通讯协议的转换电路,同时结合多功能电能表通讯规约(DL/T645—1997)说明通讯格式,用P89LPC931单片机进行RS485从机通讯的程序设计。
一、SP485E系列半双工RS-485收发器的原理及结构
SP485E是一种半双工差分收发器,它们完全满足RS485串行协议的要求,具有增强型ESD 性能,数据传输速率可高达10Mbps ,其管脚配置图和逻辑功能真值表如图1所示。
图1 SP485E管脚配置图
表1 发送功能真值表
输入输出
DE DI 线状态 B A
X 1 1
无错误0 1
X 1 0
无错误 1 0
X 0 X X Z Z
X 1 X 出错Z Z 注:X是不定状态,Z是高阻状态
表2 接收功能真值表
输入输出
DE A-B R
0 0
+0.2V 1
0 0
-0.2V 0
0 0
输入开路 1
1 0 X Z
注:X是不定状态,Z是高阻状态
SP485E系列器件和SP485、SP481系列器件是兼容的,其最大的特点是在ESD保护上经过处理,得到了增强,使得在静电放电、瞬态变化较敏感的环境中,保证通讯的正常,整个系统工作稳定,抗干扰能力得到提高。
二、SP485E电路设计
2.1 RS485设计规范及注意的问题
图2 RS485网络图
RS485工作在半双工通讯状态,即同一时刻,总线上只能有一个节点成为主节点而处于发送状态,其它所有节点必须处于接收状态,如果同一时刻有两个以上的节点处于发送状态,将导致所有发送方的数据发送失败,即所谓总线冲突。因此RS485总线一般为主从模式下工作,整个通讯总线系统由一个主节点、若干个从节点组成的,由主节点不断地轮流查询从节点是否有通信需求,如果有则将总线控制权交给某一从节点,从节点发送完毕后立刻交还总线控制权。同时根据实际的工作情况,会产生以下几个问题:
(1)总线匹配问题
产生的原因是因为总线传输电缆的阻抗不连续,产生突变值,传输信号产生反射,影响了传输信号,干扰正常通讯,解决的方式应使阻抗连续,即在首端和末端并上电缆特性阻抗的电阻值,或采用RC、二极管电路匹配。
(2)接地问题
sp文由于RS485是差分传输的,因此通常忽略接地问题,共模电压有可能超出规定范围,同时没有返回回路,产生辐射无线电波问题,轻则影响正常通讯,重则损坏通讯接口。但是有可能共模干扰源内阻较低,不能直接相接,应在两地线间串电阻,或采用浮地技术、隔离接口技术。
(3)网络失效保护问题
由于总线在空闲、开路和短路状态时,总线接收器产生不定状态,产生错误通讯,应避免这种情况的发生,加上配置电阻,给总线加上一个确定的状态。
(4)瞬态保护问题
实际工作时,会产生瞬态干扰可能会有成百上千伏的电压但持续时间很短,应采取一定保护措施,一般采用隔离、旁路法进行保护,旁路法采用瞬态抑制元件,旁路危害性的瞬时能量。
(5)功耗问题。
图3 PC 机上RS232与RS485通讯转换电路图
电路原理说明:
(1)电源部分
根据PC 机上RS232的通讯协议的规定,它们的标准逻辑电平在±12V ,实际上大多在±10V 之内,通过几个二极管构成或逻辑,形成整流电路,再经过7805稳压电路,得到电源,这种从串口取得电源的技术叫窃电技术。由于CMOS 电路耗电低,这种方式一般能够满足协议转换要求。
(2)SP232E 的作用
根据SP485E 器件的资料,它的工作逻辑是TTL 的电平,RS232通讯的逻辑电平不是TLL 逻辑电平,因此需要通过SP232E 器件进行电平转换。
(3)逻辑分析
表 3 PC 机上RS232与
RS485通讯转换电路逻辑分析表
接收状态
1) TXD =1,TX =1,经Q1反向,DE/=0,当V AB 大于200mV 时,RX =1,RXD =1;2) TXD =1,TX =1,经Q1反向,DE/=0,当V AB 小于200mV 时,RX =0,RXD =0;发送状态
1) TXD =1,TX =1,经Q1方向,DE/
=0,V AB 为高阻状态,由于偏置存在,V AB 大于
200mV ,同时RX =1,RXD =1; 2) TXD =0,TX =0,经Q1方向,DE/
=1,V AB 小于200mV ,RO 为高阻状态,由于SP232E
中的上拉电阻的作用,RX =1,RXD =1;
注:应保证总线处于半双工状态
图4 单片机与RS485通讯转换电路图
电路原理说明:
电路通过3个光藕器件对单片机电路和RS485总线电路进行隔离,提高系统的抗干扰的能力,电路中的TVS管并联在RS485总线A、B线两端,对电路进行瞬态保护作用,R7和R8为偏置电阻,进行网络失效保护。但是这个电路没有匹配电阻,在通讯总线设计中应根据实际情况进行匹配电路的设计。
表 4 单片机与RS485通讯转换电路逻辑分析表
接收状态1)CTRL485=0,DE/=0,当V AB大于200mV时,RS_RXD=1,RXD=1;2)CTRL485=0,DE/=0,当V AB小于200mV时,RS_RXD=0,RXD=0;
发送状态1)CTRL485=1,DE/=0,RS_RXD为高阻状态,RXD=1,当TXD=1,RS_TXD=1,V AB
大于200mV,发送1;
2)CTRL485=1,DE/=0,RS_RXD为高阻状态,RXD=1,当TXD=0,RS_TXD=0,V AB小于200mV,发送0;
注:CTRL485切换发送和接收的控制脚,一般情况下应为接收状态。
三、程序设计
这个程序是用P89LPC931单片机进行RS485从机通讯的程序设计,是以多功能电能表
通讯规约(DL/T645—1997)为通讯规范,以图4所示的单片机与RS485通讯转换电路图为基
础的程序设计。
3.1 通讯格式
3.1.1 通讯字节格式
0 D0 D1 D2 D3 D4 D5 D6 D7 P 1 起始位0 8位数据D0~D7 偶校验位停止位1
传送方向为低到高位,一个起始位,一个停止位,8位数据位,总共11位。
图5 字节格式
3.1.2 通讯帧格式
帧起始符(68H)
地址域
(A0~A5)
帧起始符
(68H)
命令码
(C)
数据长度
(L)
数据域
(DATA)
校验码
(CS)
结束符
(16H)
图6 帧格式
地址域A0~A5:当地址位999999999999H时,为广播地址,同时当从控制器接收到一帧数据时,地址域相同时应响应命令,取得总线控制权,当响应命令之后,应把总线控制权
归还给主控器。
命令码:执行操作的依据。
校验码:帧开始各个字节二进制算术和,不计溢出值。
前导字节:在发送信息之前,发送1个或多个字节FEH,以唤醒接收方。
数据域:发送时数据加33H,接收时数据减33H。
3.2 程序设计流程图
整个通讯程序分为3个部分:数据接收部分、命令执行部分、发送数据部分。
3.2.1 数据接收部分
数据接收程序主要接收一帧正确的数据,数据帧错误的判断符合以下原则:z有一个字节偶校验错误,数据帧错误。
z数据帧格式不正确,数据帧错误。
z数据帧校验码不正确,数据帧错误。
整个程序是在接收中断服务程序中执行的。
图5 接收程序流程图
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论