当前位置:文档之家› 485通讯协议标准

485通讯协议标准

编号: ____________

密级:内部

页数:___________ 基于RS485接口的DGL通信协议(修改)

编写:_________________________

校对:_________________________

审核:_________________________

批准: ________________________

北京华美特科贸有限公司

二OO二年十二月六日

1. 前言

在常见的数字式磁致伸缩液位计中,多采用RS485通信方式。但RS485标准仅对物理层接口

进行了明确定义,并没有制定通信协议标准。因此,在RS485的基础上,派生出很多不同的协议,

不同公司均可根据自身需要设计符合实际情况的通信协议。并且,RS485允许单总线多机通信,如

果通信协议设计不好,就会造成相互干扰和总线闭锁等现象。如果在一条总线上挂接不同类型的产

品,由于协议不一样,很容易造成误触发,造成总线阻塞,使得不同产品对总线的兼容性很差。

随着RS485的发展,Modicon公司提出的MODBUS协议逐步得到广泛认可,已在工业领域得

到广泛应用。而MODBUS的协议规范比较烦琐,并且每字节数据仅用低4位(范围:0~15),在

信息量相同时,对总线占用时间较长。

DGL协议是根据以上问题提出的一种通信协议。在制定该协议时已充分考虑以下几点要求:

a. 兼容于MODBUS 。也就是说,符合该协议的从机均可挂接到同一总线上。

b. 要适应大数据量的通信。如:满足产品在线程序更新的需要(未来功能)。

c. 数据传输需稳定可靠。对不确定因素应加入必要的冗错措施。

d. 降低总线的占用率,保证数据传输的通畅。

2. 协议描述

为了兼容其它协议,现做以下定义:

通信数据均用1字节的16进制数表示。从机的地址范围为:0x80〜OxFD,即:MSB=1 ;

命令和数据的数值范围均应控制在0~0x7F之间。即:MSB=0,以区另【J地址和其它数据。

液位计的编码地址为:0x82~0x9F。其初始地址(出厂默认值)为:0x81。

罐旁表的编织地址为:0xA2~0xBF。其初始地址(出厂默认值)为:0xA1。

其它地址用于连接其它类型的设备,也可用于液位计、罐区表地址不够时的扩充。

液位计的命令范围为:0x01~0x2F,共47条,将分别用于参数设定、实时测量、诊断测试、在线编程等。

通信的基本参数为:4800波特率,1个起始位,1个结束位。字节校验为奇校验。本协议的数据包是参照MODBUS RTU通信格式编写,并对其进行了部分修改,以提高数据传输的速度。另外,还部分参照了HART协议。其具体格式如下:

表中,数据的最大字节数为16个。也就是说,整个数据包最长为20个字节。

“校验和”是其前面所有数据异或得到的数值,然后将该数值MSB位清零,使其满足0~7F

的要求。在验证接收数据包的“校验和”是否正确时,可将所有接收数据(包括“校验和”)进行异或操作,得到的数据应= 0x80。这是因为,只有“地址”的MSB=1,所以异或结果的MSB也必然等于1。

本协议不支持MODBUS中所规定的广播模式。

3. 时序安排

在上电后,液位计将先延迟10秒,等待电源稳定。然后,用5秒的时间进行自检和测试数据。

接着产品进入待机状态并打开RS485通信接口,等待主机的请求。因此,主机应在液位计上电20

秒后,再将液位计置为工作状态,进行测量操作。

液位控制器(HMT-900或H-1000 )主要用于液位计的供电和防爆安全隔离。主机可通过 RTS

信号控制(HMT-900或H-1000)供给液位计的电源。当 RTS 有效时,电源将被打开。因此,液位 计的电源

是可以通过主机软件控制的。

在现场应用中,主机软件的工作时序一般应遵循以下几个步骤。 1) 在开主机前,并认真检查各相关设备的电源和电缆连接情况。 2) 在启动主机软件时,打开相应串行端口。使能 RTS 信号,给液位计上电。

3) 软件初始化操作,延迟 20秒。

4) 读液位计的相应参数,然后将液位计置为工作状态。 5) 此时,主机可进入正常的轮训、记录、显示、报警等工作。

主机软件的主要工作是通过 RS485总线和各个液位计进行 DGL 格式的数据包通信。因此,通 信时序安排的好坏显得很重要。在本协议中,

主机只能有1个,并完全控制总线,任何从机在没有

主机请求时,必需保持接收状态。 在设计从机电路时, 应保证从机在上电时不能出现对总线的占用 (发送状态),哪怕是很短的时间。以免增加系统功耗,影响其“本质安全”性能。

虽然主机控制着总线, 但在总线空闲状态, 主机也应处于接收状态。 只有在向指定的从机发送 请求数据包时,才进入发送状态。主机的发送接收状态切换由其串口的 DTR 信号控制,可称为

MDTR 。同样,从机也有一个控制信号,称为 SDTR 。当主机 DTR 无效(转换成TTL 电平,MDTR

为高电平)时,端口处于发送状态。当 DTR 有效(MDTR 为低电平)时,端口处于接收状态。据此, 可绘

制出数据包传输的时序图如下:

SDTR

---------------------------------- 应答数据包 -----------

时刻: T1 T2 T3 T4 T5 T6 T7 T8

在T1时刻,主机将 MDTR 置为高电平(DTR 无效),准备发送数据。T2时刻,主机发送“请 求数据包”。当数据包发送完成(T3时刻)后,随即要将MDTR 变为低电平(T4时刻),释放总线,等 待接收“应答数据包”。

在相应从机(液位计)接收到正确的“请求数据包”后,就开始准备“应答数据包” 。经延时,

在T5时刻,从机将 SDTR 置为高电平,控制总线。然后,在 T6时刻发送数据包。发送完成

(T7

时刻)后,随即将SDTR 置为低电平,释放总线。这样一次数据包通信就完成了。

对以上各时刻的时序要求可以描述为: T2-T1=1.9~3.5ms, T3-T2=10~60ms, T4-T3=1~3.5ms, T5-T3=8~18ms, T6-T5=1.9~3.5ms, T7-T6=10~60ms, T8-T7=1~3.5ms 。一次通信的最长时间将控制在

160ms 以内。两次数据包通信的间隔应》 20ms 。

根据以上描述和规定,我们就可以精确地进行主机和从机的通信控制。

并根据可能出现的各种

通信错误和故障,进行冗错设计。 4. 命令定义

命令0x01

通信协议识别码

请求数据:Obyte

MDTR

请求数据包

相关主题