一种从站自适应两种通信协议的通信方法_2

文档序号:9891147阅读:来源:国知局
偶校验。通过检验数据报文的数据是否能通过偶 校验就能判断从站波特率是否与主站通信波特率匹配。不匹配依次轮询使用波特率表中的 波特率重新设置串口的波特率来接收数据报文,直至接收到正确的数据报文中的数据能正 确通过偶校验。再把运个通信波特率当做当前的通信波特率,使用当前通信波特率连续接 收到5个错误数据报文时,重复上述过程来与主站重新匹配通信波特率。
[00对自适应通信协议:根据PR0FIBUS-DP前33个bit同步位都是1,把其当作接收S个字 节看待Qbit起始位+8bit数据位+化it偶校验位+化it停止位=Ubit,虽然串口每次发一 个字节需要发11位,实际有用的是8位数据位上的数据),并且值分别为:0xff、0xff、0xff; 而M0DBUS-RTU前两个字节对应协议分别是从站地址、功能码,其从站地址根据协议规定小 于64,功能码根据协议也没有0XFF。检验数据报文前两个字节如果是0XFF、0XFF就是 PR0FI脚S-DP通信协议,就调用PR0FIBUS-DP处理模块对接收到数据报文进行处理,不是就 调用M0DBUS-RTU处理模块对接收到数据报文进行处理。
[0036] 有益效果:
[0037] 本发明的从站自适应两种通信协议的通信方法,在不增加硬件和布线的情况下, 基于巧巾协议的具体特点,从而能实现自动匹配波特率,且自动识别不同的通信协议,从而 实现正常的自适应串口通信,因而,成本低,易于实施,方法巧妙,且具有灵活性和自适应 性,而且稳定性高。
【附图说明】
[0038] 图1为从站自适应两种通信协议的通信方法的流程图。
【具体实施方式】
[0039] W下将结合附图和具体实施例对本发明做进一步详细说明:
[0040] 实施例1:
[0041] -种从站自适应两种通信协议的通信方法,两种通信协议是指PR0FIBUS-DP通信 协议和M0DBUS-RTU通信协议,包括W下步骤:
[0042] 步骤1:串口初始化;
[0043] 包括初始化串口的数据位配置和通信的波特率;
[0044] 步骤2:同步主站通信波特率;
[0045] 使用当前波特率接收串口报文并对接收的串口报文进行偶校验,若连续出现N次 校验错误,则依次轮询波特率表中的波特率重新设置串口的波特率来接收数据报文,N为大 于2的整数;直到能通过偶校验,则完成从站与主站的波特率匹配,按照匹配后的波特率接 收串口报文,进入步骤3;
[0046] 步骤3:自动识别通信模式并处理串口数据;
[0047] 检验接收到的串口报文数据的前两个字节,如果前两个字节是0XFF和0XFF,则判 定当前通信使用的是PR0FI脚S-DP通信协议,调用PR0FIBUS-DP处理模块对接收到数据报文 进行处理;
[004引否则就调用M0DBUS-RTU处理模块对接收到数据报文进行处理;
[0049] 波特率表:
[(K)加]

[0051 ] 波特率表如上表所示。
[0化2]步骤1中,将串口初始化为:Ait起始位、8bit数据位abit偶校验位abit停止位, W波特率表中序号为1的波特率作为当前的通信波特率。
[0化3] PR0FIBUS-DP处理模块的处理过程为:
[0054]根据PR0FIBUS-DP协议数据采用累加和的方式检验接收到的数据报文是否正确 【累加和的方式检验是一种校验方式,所有接收到的数据相或处理,再与校验码进行比较, 相等校验通过,否则校验不正确】,再检验报文是不是W0xl6(0X16表示16进制的16)结尾 【即结尾字节是否等于0X16】,若正确再依据接收到的数据报文中的功能码按PR0FIBUS-DP 协议做出相应的处理后返回回送信息,回送信息通过串口传输给主站;若不正确,则不做任 何处理。主站发送报文格式如下:
[0化5]
[0化6] M0DBUS-RTU处理模块的处理过程为:根据M0DBUS-RTU协议数据采用CRC循环的方 式检验接收到的数据报文是否正确【CRC为常用校验方式,将接收到数据进行CRC循环校验 计算,再与报文中的CRC码(两个字节)进行比较,若相等,则表示校验正确,否则表明接收到 的数据错误。】若正确再根据接收到的数据报文中的功能码根据其协议做出相应的处理后 返回回送信息,回送信息通过串口传输给主站,若不正确,则不做任何处理。
[0057] N=5〇
【主权项】
1. 一种从站自适应两种通信协议的通信方法,两种通信协议是指PROFIBUS-DP通信协 议和MODBUS-RTU通信协议,其特征在于,包括W下步骤: 步骤1:串口初始化; 包括初始化串口的数据位配置和通信的波特率; 步骤2:同步主站通信波特率; 使用当前波特率接收串口报文并对接收的串口报文进行偶校验,若连续出现N次校验 错误,则依次轮询波特率表中的波特率重新设置串口的波特率来接收数据报文,N为大于2 的整数;直到能通过偶校验,则完成从站与主站的波特率匹配,按照匹配后的波特率接收串 口报文,进入步骤3; 步骤3:自动识别通信模式并处理串口数据; 检验接收到的串口报文数据的前两个字节,如果前两个字节是OXFF和OXFF,则判定当 前通信使用的是PROFIBUS-DP通信协议,调用PROFIBUS-DP处理模块对接收到数据报文进行 处理; 否则就调用版)DBUS-RTU处理模块对接收到数据报文进行处理; 波特率表:波特率表如上表所示。2. 根据权利要求1所述的从站自适应两种通信协议的通信方法,其特征在于,步骤1中, 将串口初始化为:化11起始位、Sbi t数据位abi t偶校验位abi t停止位,W波特率表中序号 为1的波特率作为当前的通信波特率。3. 根据权利要求2所述的从站自适应两种通信协议的通信方法,其特征在于, PROFI脚S-DP处理模块的处理过程为: 根据PROFIBUS-DP协议数据采用累加和的方式检验接收到的数据报文是否正确,再检 验报文是不是WOxie结尾,若正确再依据接收到的数据报文中的功能码按PROFIBUS-DP协 议做出相应的处理后返回回送信息,回送信息通过串口传输给主站;若不正确,则不做任何 处理。4. 根据权利要求3所述的从站自适应两种通信协议的通信方法,其特征在于, M0DBUS-RTU处理模块的处理过程为:根据M0DBUS-RTU协议数据采用CRC循环的方式检 验接收到的数据报文是否正确;若正确再根据接收到的数据报文中的功能码根据其协议做 出相应的处理后返回回送信息,回送信息通过串口传输给主站,若不正确,则不做任何处 理。5.根据权利要求1-4任一项所述的从站自适应两种通信协议的通信方法,其特征在于, N=5。
【专利摘要】本发明公开了一种从站自适应两种通信协议的通信方法,包括以下步骤:步骤1:串口初始化;包括初始化串口的数据位配置和通信的波特率;步骤2:同步主站通信波特率;步骤3:自动识别通信模式并处理串口数据;检验接收到的串口报文数据的前两个字节,如果前两个字节是OXFF和OXFF,则判定当前通信使用的是PROFIBUS-DP通信协议,调用PROFIBUS-DP处理模块对接收到数据报文进行处理;否则就调用MODBUS-RTU处理模块对接收到数据报文进行处理;该从站自适应两种通信协议的通信方法易于实施,能自动适配2种通信协议进行通信。
【IPC分类】H04L1/00, H04L12/403
【公开号】CN105656600
【申请号】
【发明人】周晓峰, 邓君
【申请人】湖南先步信息股份有限公司
【公开日】2016年6月8日
【申请日】2015年12月29日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1