一种高效串行通信协议制定及实现.docVIP

一种高效串行通信协议制定及实现.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种高效的串行通信协议的制定及实现 2010-06-03 16:20:41 来源:电子设计应用 关键字: 串行通信 通信效率 通信协议 1 串行通信介绍 串 行通信是将数据分成若干二进制位(bit),然后通过一条线路或一个通信信道,按照规定的规程逐位依次进行传输,实现计算机与计算机或计算机与外部设备之 间的通信(数据交换)。串行通信具有占用硬件资源少、可大幅度降低通信线路成本、简化通信设备、应用灵活、易维护等诸多优点,在工业控制、电力通信、智能 仪表等领域得到了广泛应用[1]。 EIA-RS232、EIA-RS485、电流环、CAN等串行通信方式是通信领域中应用广泛的串行接 口。EIA-RS232是全双工的通信模式,可保证短距离点对点的高速传输,EIA-RS485实现了较长距离下的多点互联通信。CAN属于现场总线的范 畴,采用了多主机制,改善了在集散控制系统下的主从通信模式[2]。随着应用需求的复杂化,对串行通信的性能、通信效率的提升需求越来越明显。如何制定一 套切实可行、简单易用,又能大幅度提高串行通信效率的通信协议;如何在PC端、嵌入式系统端构建一个高效的串行数据处理的应用程序,是串行通信协议中等待 解决的问题。本文将以加油站信息管理系统为例,介绍串行通信协议的制定以及高效通信数据处理的实现。 2 串行通信协议的设计 2.1 系统总体结构 加 油站信息管理系统的结构如图1所示,每台加油机为一个应用节点(即图1中的控制点),通过半双工RS-485总线连接至通信控制器,在RS-485网络 中,通信控制器为主机(Master),各加油机为从机(Slave),构成一个主从通信的网络架构。在多种串行接口标准中,RS-485接口结构简单、 通信速率高、传输距离远、使用传输线较少,长距离通信较经济,在集散式控制装置中得到了广泛应用。RS-485采用差分电平传输,只需2根信号线,即可以 方便地增加控制节点数目[3]。 ? 通信控制器通过全双工RS-232总线与管理PC进行数据交互,管理PC和通信控制器层面的数据交互,保证了实时性和高效性,采用互为主机的通信方式,以此构成集散控制系统[4]。 2.2 通信协议格式的定义 2.2.1 协议帧格式 (1)主机(Master)下发数据帧格式 起始标志数据(5AH+A5H)+长度(从命令字开始到校验和为止的字节数)+命令字HIGH+命令字LOW+机号+参数+一个字节校验和(从命令字开始到校验码前一个字节的逻辑“异或”和)。 (2)从机(Slave)上传数据帧格式 起始标志数据(9BH+B9H)+长度(从命令字开始到校验和为止的字节数)+命令字HIGH+命令字LOW+机号+参数+一个字节校验和(从命令字开始到校验码前一个字节的逻辑“异或”和)[5-6]。 2.2.2 协议帧解释 起始标志数据:采用1个字节或多字节作为帧起始标志,该部分的字节定义应尽量与帧数据的其他部分完全不一样。接收方在接收数据时总是先寻找帧头。帧头的排他性将有利于提高各通信节点的接收效率。 长度:应尽量采用短帧,以避免各种干扰因素对通信效率的影响。可根据实际应用情况,在“长度”后增加“长度反码”或“长度补码”等校验数据对长度进行更为严格的校验。 命令字:根据实际通信应用需求,可应用1~2字节的通信命令字。 机号:该帧所需接收方的地址识别号,可根据实际应用需求对其进行修改,如增加源地址、目的地址等。 参数:该帧的应用数据,针对不同的应用,考虑到数据的安全性,可对该部分的数据进行加密处理。 校验和:该帧的数据校验,可根据应用需求选择不同的校验方式。 3 高效串行通信方式的实现 3.1 PC端软件发送数据的处理机制 PC 端的软件首先判断最高优先级的命令字是否需要发送,如果需要,则进入该命令字的发送流程;如果没有,接着判断次高级优先级的命令字是否需要发送,如果需 要,则进入发送流程。根据命令字的优先级由高到低的顺序依次判断要发送的命令字,当没有通信数据命令字发送时,PC端软件将发送轮询命令字。此外,在发送 完一帧数据后,PC端软件会开启接收超时定时器T,如果PC端软件在超时时间内收到应答命令数据帧则进入相应数据处理流程,同时关闭接收超时定时器T;如 果系统定时时间内未收到应答命令数据帧,则重新发送该命令字的帧数据,并记录发送该命令字的次数,当发送命令字的帧超过10次未收到相应应答命令,即视为 该命令字和控制点的通信失败,将通信流程重新调整到轮询命令字状态下。 3.2 PC端软件接收数据的处理机制 在PC软件端的接收程序部分,按字节来处理接收到的每帧数据,而不是按帧来处理。为此,应用程序将串口的接收中断的响应字节阈值设为1,即当接收缓冲区有多于1个数据便进入接收数据处理流程。 当 开始接

文档评论(0)

youyang99 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档