云南大学学报(自然科学版),2007,29(S2):259~262CN53-1045/N ISSN0258-7971 Journal of Yunnan U niversity
Ξ
基于RS-485总线主从通信协议及其实现
彭 娜,黎 英,林庆超,张英华
(云南大学信息学院,云南昆明 650091)
摘要:RS-485总线是工业现场控制系统常用的组网方法.本文中详细讨论了一种基于RS-485总线通信协议的设计,具有可靠、灵活,相比其它的主从通信协议设计可以实现即插即用功能.
关键词:RS-485;主从通信协议;协议数据单元
中图分类号:TP366 文献标识码:A 文章编号:0258-7971(2007)S2-0259-04
计算机技术、自动化技术和通信技术是现代信息科学技术的重要组成部分,是现代科学技术中的核心先导技术.计算机控制是计算机技术与自动控制理论及自动化技术紧密结合并应用于实际的结果.20世纪90年代高性能计算机、网络技术及多媒体技术的发展,使计算机应用向网络化、综合化、集成化、智能化发展,使自动控制技术更广泛地应用于工业、交通、服务等各行各业,而且控制的形式也越来越复杂.许多单机控制系统已逐渐向多机联网的方向发展,如:数据采集、消防、门禁、消费等控制系统,这就需要将各单机控制系统进行组网以进行相互通信,从简单的集中式控制逐渐向复杂的分布式、多控制端形式发展,出现了以网络通信技术为基础的新的控制形式.串行通信作为一种简单、廉价的通信方式在控制工程中广泛应用,其中RS -485总线型多CPU网络控制系统得到了推广与发展[1].
1 硬件设计
RS-485通信协议是工业控制中使用最为广泛的双向、平衡传输线标准,它支持多点联接,允许创建多达32个接点的网络,并可以在网络中增加另外32个模块;由于RS-485标准支持半双功通信,只需2根线就可以进行数据的发送和接收,同时具有抑制共模干扰的能力.在由单片机构成的多机串行通信系统中,采用主从式结构:子机不主动发送命令或数据,一切都由主机控制.并且在一个多机通信系统中,只有1台单片机作为主机,各台子机之间不能相互通讯,即使有信息交换也必须通过主机转发[2],RS-485构成的多机通信原理框图如图1.
2 通信协议设计
协议数据单元分为2种格式:通用帧格式(表1);特殊帧格式(表2)
表1 通用帧格式
T ab11 G eneral frame format
地址功能数据长度数据CRC
1B1B1B1-16B2B
表2 特殊帧格式
T ab12 S pecial frame format
地址功能结束符
1B1B0X00
其中第1种格式为通用帧,第2种数据帧当主机检测与之连接从机的地址或者报接收数据出错时才用的格式.
主从式通信方式,即主控制器采用循环查询的方式于各子控制器通信,子控制器相互间不直接通信,而是通过主控制器间接地相互通信.
Ξ收稿日期:2007-09-20
作者简介:彭 娜(1983- ),女,云南人,硕士生,主要从事低压电力载波通信协议方面的研究.
通讯作者:黎 英(1963- ),男,云南人,教授,博士,主要从事嵌入式系统研究.
主节点向从节点发送3种类型的请求:
(1)广播模式 主节点向所有从节点发送请求.主节点发送的广播请求无需响应,所有的从机都必须接受,地址为0X00为广播请求保留[3].
(2)查询地址模式 定期检测与主节点连接的从节点的地址,实现即插即用功能.主机发送一简单的数据帧来检测与之连接的从节点的地址.
在本系统中设置的是主节点轮询完所有从节点
3
次,进行1次检测从节点的地址,主节点从地址0开始询问从节点,在等待一段时间(这段时间为数据
往返1次的时间)后收到从节点的应答,则该从节点地址存在,将这个地址存入address[]中,如果在等待一段时间后没有收到应答信号,则认为此地址为空,将地址加1继续询问,直到地址为最大地址(最大地址指的是允许范围内可接最多的从机数量,如可最多可接32台从机,则最大地址为0X 20).
图1 RS -485多机通信原理框图
Fig 11 RS -485multi -SC M communication principle
图2 查询地址模式流程图
Fig 12 Demand address m ode flow -chart
(3)单址通信模式 主节点寻址一个单独的
从节点.从节点收到并处理请求之后,向主节点返回一个消息(应答).在这里一个会话包括2个消息:主节点的请求,从节点的应答.每个从节点的地
址必须是独一无二的.
主节点一次分别询问每一个从节点,主节点先发送握手信号给从节点,如果该从节点有数据要通信,则返回给主节点应答信号,这样从节点和主节点就建立起连接,然后交换数据,完毕后再继续询
问下一台从节点;如果该从节点没有数据要通信,
则不用应答主节点,主节点在固定的时间段(固定的时间段内是指数据往返1次所需的时间)内没有收到应答信号,则直接询问下一台从节点.数据的交换过程(包括建立连接和交换数据)采用一问一答的方式,主控制器询问了子控制器,子控制器才给予应答,收到应答后,数据交换才继续进行下去.这样的方式可以避免多个子控制器间没有次序的
62云南大学学报(自然科学版) 第29卷
数据通信,扰乱整个网络上数据的传输.
本系统采用的是一问一答的可靠连接方式,在数据帧的传递过程中,如果等待对方应答超时,或者没有接收到正确数据(在指令数据帧格式中,还定义了CRC 校验字段,每一帧指令数据帧发送前,
通过计算填入该字段,接收后读出该字段并进行验证),要求对方重发1次,如果再次等待应答超时或者没有接收到正确的应答,则认为此次通信失败.主机和从机的流程图分别如图3
,4.
图3 主机流程图
Fig 13 H ost flow -chart
3 小 结
在系统中用AT ME L 系列单片机和RS -485通
信芯片S N75176组网,波特率采用250K bps 进行通信.在实验系统中采用上述主从通信协议,主机轮询从机的方式进行通信.主机先检测与之连接从机的地址,检测之后与这些从机进行通信,轮询通信完3次后,再一次检测与之连接从机的地址,如果有新添加的从机,主机就可以在这次检测中检测到其地址,如果有拔出的从机,主机在检测中可以发
现拔出从机的地址为空,则从通信从机地址中将这个地址删除.在实验中添加从机和拔出从机都不会影响整个通信,在最大从机允许范围内从机可随意添加或者删除,实现了即插即用功能.并且在整个系统中采用的是轮询方式,当与其中一台从机通信时发生故障,采取重发一次机制,如果仍然有错误,则结束与此台从机的本轮通信,
开始与下一台从机通信,所以当个别从机发生故障的时候并不影响通信.
1
62第S2期 彭 娜,等:基于RS -485总线主从通信协议及其实现