一种RS-485总线自定义通信协议及其应用
发布时间:2008/5/27 0:00:00 访问次数:951
     刘泽艺 晏 凯 陈云洽 来源:《单片机与嵌入式系统应用》
     摘要:rs-485总线是集散控制系统常用的组网方法,但具体的通信协议并没有一个统一的标准。本文详细讨论一种基于rs-485总线通信协议的设计,具有可靠、编程实现简单、易扩展等特点,能够很容易地移植到其它系统中;结合一个电力参数实时监测系统实例,介绍本协议的具体应用。
    
    
     关键词:rs-485
     通信协议 集散控制系统
     1 概述
     在工业控制系统中,集散控制是目前最常用的测量控制方式。通常,一个集散控制系统由一个主控计算机(上位机)和一系列基于mcu的前端智能仪器(下位机)构成,它们之间再通过一定的物理媒介连接在一起,以完成必要的通信功能。对于一个特定的测控系统而言,所要测控的对象和所采取的测控算法是个有个性的东西;而上位机和下位机之间的通信可以看作是一系列命令流和数据流的流动,所采用的通信协议是用来保证传输过程的可靠和高效,是具有共性的,能够也应该有一个统一的设计标准。
     在集散控制系统中,普遍采用rs-485总线作为底层通信接口。它具有稳定可靠、编程简单、组网快速、价格低廉的优点,但在协议设计实现方面并没有一个统一的规范,导致不同的控制系统常常采用不同的通信协议。因此,有必要结合我们的工作实践,设计一种有通用性的高效可靠的协议,从而简化基于rs-485的分布式测试系统通信部分的设计,既能够保证通信的稳定可靠,又能够把精力集中到测控系统算法的设计上。
    
    
    
     通信协议的设计通常采用分层的机构,如iso的osi参考模型。这里也采用分层的结构来描述我们自定义的基于rs-485总线的通信协议,如图1所示。
     图1中,物理层是利用物理媒介实现物理连接的功能描述和执行连接的规程,提供用于建立、保持和断开物理连接的机械的、电气的、功能的和过程的条件;数据链路层用于建立、维持和拆除链路连接,实现无差错传输的功能;应用层针对不同的应用,利用链路层提供的服务,完成不同通信节点之间的通信。
     下面结合每一层讨论这种自定义协议的具体设计,重点介绍如何实现可靠高效的通信,如何处理通信中错误,如何编程实现。
     2 协议的设计
     2.1 物理层协议设计
     rs-485通信网络是一种总线式的结构,如图2所示。上位机(以pc为例)和下位机(以基于mcs-51的智能仪器为例)都挂在通信总线上,物理层的通信协议由rs-485标准和mcs-51的多机通信方式共同方式。
     2.1.1 eia rs-485标准
     rs-485是工业界使用最为广泛的双向、平衡传输标准接口,支持多点连接,允许创建多达32个节点的网络;具有传输距离远(最大传输距离1200m),传输速率快(1200
     m时为100kb/s),抗干扰能力强,布线简单等优点。
     2.1.2 mcs-51串口的多机通信方式
     mcs-51具有多机通信功能。当串口以方式2(或方式3)接收时,若sm2(多机控制位)为1,这时只接收第9位为1的串行数据(把第9位为1的串行字节称为地址,把第9位为9的串行字节称为数据);当sm2=0时,不论第9位为何值都接收。
     这种功能使得基于mcs-51的智能仪器能够方便地通过rs-485接口芯片组成网络。
     2.1.3 物理层的功能
     物理层要完成发送及接收字节流的任务,但对传输过程的可靠性不做出保证,而由高层协议来保证。物理层为链路层提供接口(以子程序的形式来描述),包括send子程序(功能为发送一个字节)及receive子程序(功能为接收一个字节)。
 &
     刘泽艺 晏 凯 陈云洽 来源:《单片机与嵌入式系统应用》
     摘要:rs-485总线是集散控制系统常用的组网方法,但具体的通信协议并没有一个统一的标准。本文详细讨论一种基于rs-485总线通信协议的设计,具有可靠、编程实现简单、易扩展等特点,能够很容易地移植到其它系统中;结合一个电力参数实时监测系统实例,介绍本协议的具体应用。
    
    
     关键词:rs-485
     通信协议 集散控制系统
     1 概述
     在工业控制系统中,集散控制是目前最常用的测量控制方式。通常,一个集散控制系统由一个主控计算机(上位机)和一系列基于mcu的前端智能仪器(下位机)构成,它们之间再通过一定的物理媒介连接在一起,以完成必要的通信功能。对于一个特定的测控系统而言,所要测控的对象和所采取的测控算法是个有个性的东西;而上位机和下位机之间的通信可以看作是一系列命令流和数据流的流动,所采用的通信协议是用来保证传输过程的可靠和高效,是具有共性的,能够也应该有一个统一的设计标准。
     在集散控制系统中,普遍采用rs-485总线作为底层通信接口。它具有稳定可靠、编程简单、组网快速、价格低廉的优点,但在协议设计实现方面并没有一个统一的规范,导致不同的控制系统常常采用不同的通信协议。因此,有必要结合我们的工作实践,设计一种有通用性的高效可靠的协议,从而简化基于rs-485的分布式测试系统通信部分的设计,既能够保证通信的稳定可靠,又能够把精力集中到测控系统算法的设计上。
    
    
    
     通信协议的设计通常采用分层的机构,如iso的osi参考模型。这里也采用分层的结构来描述我们自定义的基于rs-485总线的通信协议,如图1所示。
     图1中,物理层是利用物理媒介实现物理连接的功能描述和执行连接的规程,提供用于建立、保持和断开物理连接的机械的、电气的、功能的和过程的条件;数据链路层用于建立、维持和拆除链路连接,实现无差错传输的功能;应用层针对不同的应用,利用链路层提供的服务,完成不同通信节点之间的通信。
     下面结合每一层讨论这种自定义协议的具体设计,重点介绍如何实现可靠高效的通信,如何处理通信中错误,如何编程实现。
     2 协议的设计
     2.1 物理层协议设计
     rs-485通信网络是一种总线式的结构,如图2所示。上位机(以pc为例)和下位机(以基于mcs-51的智能仪器为例)都挂在通信总线上,物理层的通信协议由rs-485标准和mcs-51的多机通信方式共同方式。
     2.1.1 eia rs-485标准
     rs-485是工业界使用最为广泛的双向、平衡传输标准接口,支持多点连接,允许创建多达32个节点的网络;具有传输距离远(最大传输距离1200m),传输速率快(1200
     m时为100kb/s),抗干扰能力强,布线简单等优点。
     2.1.2 mcs-51串口的多机通信方式
     mcs-51具有多机通信功能。当串口以方式2(或方式3)接收时,若sm2(多机控制位)为1,这时只接收第9位为1的串行数据(把第9位为1的串行字节称为地址,把第9位为9的串行字节称为数据);当sm2=0时,不论第9位为何值都接收。
     这种功能使得基于mcs-51的智能仪器能够方便地通过rs-485接口芯片组成网络。
     2.1.3 物理层的功能
     物理层要完成发送及接收字节流的任务,但对传输过程的可靠性不做出保证,而由高层协议来保证。物理层为链路层提供接口(以子程序的形式来描述),包括send子程序(功能为发送一个字节)及receive子程序(功能为接收一个字节)。
 &
上一篇:μC/OS的应用和扩展