工程实践与科技创新[4A] 常规项目RS422 485主从通信协议(2011年3月15日)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

工程实践与科技创新[4A] RS485主从通信协议

(V1.1 发布于2010年3月15日)

0. 修改记录

表1修改记录

1. 信息帧的基本结构

通信主机和从机间信息传输,以信息帧(数据包)方式进行,信息帧的组成结构应符合表2。

信息帧在传输时采用全ASCII字符方式,使其具有较好的可显性和易读性。

由通信主机发往从机的信息帧,称为命令帧;由通信从机发往主机的信息帧,称为响应帧。由通信主机发往某特定从机的命令帧,称为单播命令帧;由通信主机发往所有从机的命令帧,称为广播命令帧。响应帧是对确定的单播命令帧的回复,两者有一一对应关系;从机收到广播命令帧,不回复任何响应帧。

2. 起始标识和结束标识(SOI和EOI)

起始标识采用字符’~’,相应ASCII代码为0x7E。

结束标识采用字符’\r’ (回车符),相应ASCII代码为0x 0D。

3. 通信协议版本号(VER)

V1.0对应为0x10。

4. 目的地址(ADR)

在本应用的通信系统中,无论通信主机还是任何一个确定的从机,都具有确定的唯一性标识,称通信机的地址。以下说明地址编码的分配情况。

0:分配给通信主机的地址码。

1~254(0x01~0xFE):分配给各通信从机的地址码,从ADR的地址容量角度看,本应用中最多可同时容纳254个通信从机。

255(0xFF):保留,拟作通信主机向所有通信从机传输广播信息时的地址标识。

5. 命令码1、命令码2 (CMD1、CMD2)

在命令帧中,命令码CMD1和CMD2组合表示一条命令代码。CMD1是主码,表示一类命令,一般同类命令的CMD1相同;CMD2是辅码,与主码配合,构成命令的唯一性标识。CMD1和CMD2的编码方式,由协议使用者根据业务需要自行确定。

6. 响应标识码、返回码(RSPD、RTN)

在响应帧中,通过响应标识码RSPD指示所对应的命令帧情况,RSPD取所对应命令帧的CMD1的值。通信主机收到该响应帧时,可通过阅读RSPD段,检验是否是与所发命令帧相对应的响应,减少错误响应对通信系统正常工作的影响。

当目的接收机(某通信从机)正常接收命令帧(基本结构要素完整,即SOI和EOI存在,长度符合要求),并正确解析命令后,应按要求回复响应帧,且在RTN段中指示“正常回复”。

通信从机应按以下顺序,依次对命令帧进行解析:

(1)检查VER段;

(2)检验CHKSUM;

(3)判断CMD1、CMD2的合法性和有效性;

(4)检验LENGTH与INFO段实际长度是否相符;

(5)判断INFO段中各参数的合法性和有效性。

若命令帧解析失败,通信从机通过响应帧的RTN段编码(见表3),向主机指示按以上顺序检验到的第1种错误。

表3返回码

7. 参数段长度LENGTH

LENGTH :0~255(00H~0FFH )

8. CHKSUM 的计算:

除SOI 、EOI 和CHKSUM 外,其他字节累加求模256和,取结果的补码(原码取反加1)。换言之,除SOI 、EOI 外,其他字节(包括CHKSUM)的原码的模256和应为0。

9. 参数段INFO

INFO 段格式及编码,由协议使用者根据业务需要自行定义。信息帧可以没有参数段(相应LENGTH 取0)。

10. 通信时序特性

异步通信字节格式:9600 Baud ,8位数据,无奇偶校验位,1位停止位;

T bb :帧内字节间隔时间;

T cr :命令帧-响应帧间隔时间; T rc :响应帧-下一命令帧间隔时间。

注:若T bb >T bbMAX ,则通信接收方可判定帧传输中止;若T cr T crMAX ,则通信主机可判定目的从机不在线。

T bb

命令帧N

命令帧N+1

对命令帧N 的响应帧

T bb

图1 通信时序特性

11. 举例

假定命令帧中: VER = 0x10; //版本号V1.0 ADR = 0x01; //目的地址指向编号为1的通信从机 CMD1 = 0x10; CMD2 = 0x21; //假定0x10 0x21组合代表某合法命令 LENGTH = 0x02; //与该命令关联的有2个字节的参数 INFO = 0x00; 0x02; //参数值 CHKSUM = 0xBA; //以上模256和为0

实际发送的是ASCII字符序列:~10011021020002BA\r ,其中\r表示回车符。

对该命令帧,1号从机回复以下响应帧:

VER = 0x10; //版本号V1.0

ADR = 0x00; //目的地址指向通信主机

RSPD = 0x10; //与命令帧的CMD1取值同

RTN = 0x00; //正确接收并解析,命令各部分均合法有效

LENGTH = 0x03; //响应帧含3个字节的参数

INFO = 0x01;

0x02

0x03; //参数值

CHKSUM = 0xD7; //以上模256和为0

实际发送的是ASCII字符序列:~1000100003010203D7\r ,其中\r表示回车符。

相关文档
最新文档