基于响应帧有效性的RS-485总线极性自适应方法技术

技术编号:21735931 阅读:36 留言:0更新日期:2019-07-31 19:07
本发明专利技术公开了一种基于响应帧有效性的RS‑485总线极性自适应方法,利用主MCU的串行通信接口通过RS‑485总线向从机发送命令帧,从机会回传响应帧。主MCU判断从机响应帧的有效性,通过GPIO口线控制从MCU实现RS‑485总线极性的正反切换,实现基于响应帧有效性的RS‑485总线极性自适应。本发明专利技术解决了不需要考虑RS‑485总线极性接线的问题,该主机设备可以实现多台从机的RS‑485总线极性自适应。本发明专利技术具有记忆功能,只需开机检测一次从机的连接极性,通信成功后,所有从机设备的连接极性将会被记录。本发明专利技术大大缩短了工业现场通信设备或者电网设备的安装工期,节省人力,具有电路板体积小、成本低的特点。

Polarity Adaptive Method of RS-485 Bus Based on Response Frame Effectiveness

【技术实现步骤摘要】
基于响应帧有效性的RS-485总线极性自适应方法
本专利技术涉及智能电网计量技术和通信
,特别是一种基于响应帧有效性的RS-485总线极性自适应方法。
技术介绍
RS-485总线极性的存在使通信设备的安装与调试步骤复杂繁琐,为了简化设备的安装调试过程,RS-485无极性连接得到了广泛的关注。目前,已有的RS-485无极性连接技术主要有如下三种:第一种是中国专利CN201710108172.4公开的一种智能电能表及其RS-485通信AB极性自适应通信方法,该方法旨在提供一种在通信线缆无论正接或反接状态下,传送数据都可被同时接收的智能电能表,通过智能电能表中CPU的判断,得到正确的传送数据以及线缆连接状况,并启动相应的发送方式,将应答数据发送出去,从而实现了与连线极性无关的智能电能表RS-485的正常通信,方便了现场电网建设过程,提高了建设效率,满足了电网建设企业的需要。但该方法是通过硬件LED指示然后进行RS-485接线极性的人工切换,这种方式需要人力的干预,延长了设备的安装工期。第二种是中国专利CN201310068409.2公开的一种无极性收发单元及RS-485通信电路,该无极性收发单元包括具有通信接口A端及B端的RS-485芯片、能检测自身RXD端的信号相位的MCU芯片,所述RS-485芯片的RO端与MCU芯片的RXD端相连接,所述RS-485芯片的DI端与MCU的TXD端相连接,RO端与RXD端之间、DI端与TXD端之间还连接有受MCU芯片的P0.0端控制的无极性逻辑电路,用以在RS-485芯片的通信接口正接时使信号正确传输,反接时反转RO端的输出信号及DI端的输入信号的极性,实现信号的正确传输。但该方法是通过在从机中增加一个RS-485驱动芯片,产生两路信号,从机对两路信号进行识别取舍进而实现无极性连接,这种方式应用于从机当中,仅能够实现一台设备的无极性连接,另外这种方式需要主机一直发送同步字,资源开销较大。第三种是中国专利CN201710310249.6公开的一种实现RS485无极性连接的方法,该方法采取在接收端增加一个相应的RS-485芯片,在从机增加相应的极性判断及切换软件,从而实现RS-485接线的无极性连接,同时如果在数据正常通信中,存在主机重启、通信线重接等通信异常情况时,软件也可以自动重新判断极性,适应新的状态,不需要人工干预,提高了系统的工作效率和可靠性。但该方法是对消息进行曼彻斯特编码然后再通过RS-485进行数据传输,这种方式需要在主机和从机上配备编码器和解码器,系统复杂度及成本偏高。
技术实现思路
为解决现有技术存在的上述问题,本专利技术要设计一种设备的安装工期短、资源开销小、系统复杂度及成本低的基于响应帧有效性的RS-485总线极性自适应方法。为了实现上述目的,本专利技术的技术方案如下:基于响应帧有效性的RS-485总线极性自适应方法,所述RS-485总线极性自适应的电路,包括主MCU、从MCU和RS-485驱动芯片;所述主MCU采用Cortex-M3架构的STM32F103RCT6芯片,所述主MCU通过UARTTX和UARTRX引脚分别与从MCU的GPIO4、GPIO5口线相连;主MCU的通用GPIO1口线与RS-485驱动芯片的TERE引脚连接,用于控制RS-485驱动芯片的发送或接收;主MCU的通用GPIO1口线与从MCU的GPIO3口线连接,用于控制从MCU的消息发送或接收;主MCU的通用GPIO2口线与从MCU的GPIO6相连,用于控制RS-485驱动芯片极性的正反切换;所述从MCU采用Cortex-M3架构的STM32F103C8T6芯片,从MCU的通用GPIO4、GPIO5口线分别用于检测UARTTX引脚电平、发送消息至UARTRX引脚,通用GPIO3口线用于检测RS-485驱动芯片的发送接收状态,通用GPIO6口线用于检测主MCU对RS-485驱动芯片极性正反切换的控制,通用GPIO7、GPIO8口线分别与RS-485驱动芯片的DI、RO引脚相连,用于接收状态下检测RO引脚电平或者发送状态下将消息传输给DI引脚;所述RS-485驱动芯片采用MAXIM公司推出的低功耗RS-485收发器MAX485ESA;RS-485驱动芯片的TERE引脚用于控制RS-485驱动芯片的接收与发送;RS-485驱动芯片的DI引脚在发送状态时接收来自从MCU的信号;RS-485驱动芯片的RO引脚在接收状态时将数据发送给从MCU进行消息传输;所述RS-485驱动芯片的A、B引脚通过RS-485总线与多个从机连接。基于响应帧有效性的RS-485总线极性自适应方法,包括以下步骤:A1、初始化:对主MCU的定时器、串口及GPIO1、GPIO2进行初始化,对从MCU的定时器和GPIO3-GPIO8进行初始化;A2、主MCU通过从MCU向从机发送MODBUS命令帧,所述的MODBUS命令帧结构为:帧头、从机地址、从机读写控制命令、从机读写字节数、从机写入数据以及校验和,所述的发送过程包括主MCU通过RS-485总线极性控制引脚及RS-485驱动芯片发送接收使能引脚对从MCU的控制;A3、从MCU向主MCU回传从机的MODBUS响应帧,从MCU回传的MODBUS响应帧受控于主MCU的RS-485总线极性控制引脚电平;A4、主MCU处理从MCU回传的从机MODBUS响应帧:主MCU判断回传的MODBUS响应帧是否有效,如果MODBUS响应帧有效则处理MODBUS响应帧并保存从机RS-485总线极性标志,下一步返回处理其他进程,如果MODBUS响应帧无效,RS-485总线极性标志位取反后返回步骤A2。进一步地,所述的主MCU的工作方法,包括以下步骤:B1、主MCU的UART及GPIO初始化,从机状态标志位置1,表示从机处于正常工作状态,由主MCU的FLASH中读取从机的RS-485总线极性标志,主MCU的GPIO2口线根据从机的RS-485总线极性标志输出高低电平;B2、主MCU的GPIO1口线输出高电平,RS-485驱动芯片发送使能,主MCU的UARTTX开始发送命令帧,命令帧发送完毕后GPIO1口线输出低电平,RS-485驱动芯片接收使能,开始接收从机MODBUS响应帧;B3:判断主MCU的UARTTX接收到的MODBUS响应帧是否有效,如果MODBUS响应帧有效执行步骤B4,如果MODBUS响应帧无效或未接收到MODBUS响应帧执行步骤B5;B4:保存该从机的RS-485总线极性标志,处理UARTRX接收到的MODBUS响应帧,返回;B5:判断主MCU的UARTTX向从机发送命令帧的尝试次数是否超过预设值,如果超过预设值执行步骤B6,如果没有超过预设值执行步骤B7;B6:从机状态标志位置0,表示从机通信故障或者未连接,返回;B7:RS-485总线极性标志位取反,主MCU的GPIO2口线实现电平转换,控制从MCU向RS-485驱动芯片发送命令帧,转步骤B2。进一步地,所述的从MCU的工作方法,包括以下步骤:C1:定时器中断及GPIO初始化配置,其中定时器中断触发的频率配置为115200Hz,保证每一个码元内的采样点数是相同的,否则会导致消息传输错误;C2:检测RS-485驱动芯片发送控制本文档来自技高网
...

【技术保护点】
1.基于响应帧有效性的RS‑485总线极性自适应方法,其特征在于:所述RS‑485总线极性自适应的电路,包括主MCU、从MCU和RS‑485驱动芯片;所述主MCU采用Cortex‑M3架构的STM32F103RCT6芯片,所述主MCU通过UART TX和UART RX引脚分别与从MCU的GPIO4、GPIO5口线相连;主MCU的通用GPIO1口线与RS‑485驱动芯片的TE RE引脚连接,用于控制RS‑485驱动芯片的发送或接收;主MCU的通用GPIO1口线与从MCU的GPIO3口线连接,用于控制从MCU的消息发送或接收;主MCU的通用GPIO2口线与从MCU的GPIO6相连,用于控制RS‑485驱动芯片极性的正反切换;所述从MCU采用Cortex‑M3架构的STM32F103C8T6芯片,从MCU的通用GPIO4、GPIO5口线分别用于检测UART TX引脚电平、发送消息至UART RX引脚,通用GPIO3口线用于检测RS‑485驱动芯片的发送接收状态,通用GPIO6口线用于检测主MCU对RS‑485驱动芯片极性正反切换的控制,通用GPIO7、GPIO8口线分别与RS‑485驱动芯片的DI、RO引脚相连,用于接收状态下检测RO引脚电平或者发送状态下将消息传输给DI引脚;所述RS‑485驱动芯片采用MAXIM公司推出的低功耗RS‑485收发器MAX485ESA;RS‑485驱动芯片的TE RE引脚用于控制RS‑485驱动芯片的接收与发送;RS‑485驱动芯片的DI引脚在发送状态时接收来自从MCU的信号;RS‑485驱动芯片的RO引脚在接收状态时将数据发送给从MCU进行消息传输;所述RS‑485驱动芯片的A、B引脚通过RS‑485总线与多个从机连接;基于响应帧有效性的RS‑485总线极性自适应方法,包括以下步骤:A1、初始化:对主MCU的定时器、串口及GPIO1、GPIO2进行初始化,对从MCU的定时器和GPIO3‑GPIO8进行初始化;A2、主MCU通过从MCU向从机发送MODBUS命令帧,所述的MODBUS命令帧结构为:帧头、从机地址、从机读写控制命令、从机读写字节数、从机写入数据以及校验和,所述的发送过程包括主MCU通过RS‑485总线极性控制引脚及RS‑485驱动芯片发送接收使能引脚对从MCU的控制;A3、从MCU向主MCU回传从机的MODBUS响应帧,从MCU回传的MODBUS响应帧受控于主MCU的RS‑485总线极性控制引脚电平;A4、主MCU处理从MCU回传的从机MODBUS响应帧:主MCU判断回传的MODBUS响应帧是否有效,如果MODBUS响应帧有效则处理MODBUS响应帧并保存从机RS‑485总线极性标志,下一步返回处理其他进程,如果MODBUS响应帧无效,RS‑485总线极性标志位取反后返回步骤A2。...

【技术特征摘要】
1.基于响应帧有效性的RS-485总线极性自适应方法,其特征在于:所述RS-485总线极性自适应的电路,包括主MCU、从MCU和RS-485驱动芯片;所述主MCU采用Cortex-M3架构的STM32F103RCT6芯片,所述主MCU通过UARTTX和UARTRX引脚分别与从MCU的GPIO4、GPIO5口线相连;主MCU的通用GPIO1口线与RS-485驱动芯片的TERE引脚连接,用于控制RS-485驱动芯片的发送或接收;主MCU的通用GPIO1口线与从MCU的GPIO3口线连接,用于控制从MCU的消息发送或接收;主MCU的通用GPIO2口线与从MCU的GPIO6相连,用于控制RS-485驱动芯片极性的正反切换;所述从MCU采用Cortex-M3架构的STM32F103C8T6芯片,从MCU的通用GPIO4、GPIO5口线分别用于检测UARTTX引脚电平、发送消息至UARTRX引脚,通用GPIO3口线用于检测RS-485驱动芯片的发送接收状态,通用GPIO6口线用于检测主MCU对RS-485驱动芯片极性正反切换的控制,通用GPIO7、GPIO8口线分别与RS-485驱动芯片的DI、RO引脚相连,用于接收状态下检测RO引脚电平或者发送状态下将消息传输给DI引脚;所述RS-485驱动芯片采用MAXIM公司推出的低功耗RS-485收发器MAX485ESA;RS-485驱动芯片的TERE引脚用于控制RS-485驱动芯片的接收与发送;RS-485驱动芯片的DI引脚在发送状态时接收来自从MCU的信号;RS-485驱动芯片的RO引脚在接收状态时将数据发送给从MCU进行消息传输;所述RS-485驱动芯片的A、B引脚通过RS-485总线与多个从机连接;基于响应帧有效性的RS-485总线极性自适应方法,包括以下步骤:A1、初始化:对主MCU的定时器、串口及GPIO1、GPIO2进行初始化,对从MCU的定时器和GPIO3-GPIO8进行初始化;A2、主MCU通过从MCU向从机发送MODBUS命令帧,所述的MODBUS命令帧结构为:帧头、从机地址、从机读写控制命令、从机读写字节数、从机写入数据以及校验和,所述的发送过程包括主MCU通过RS-485总线极性控制引脚及RS-485驱动芯片发送接收使能引脚对从MCU的控制;A3、从MCU向主MCU回传从机的MODBUS响应帧,从MCU回传的MODBUS响应帧受控于主MCU的RS-485总线极性控制引脚电平;A4、主MCU处理从MCU回传的从机MODBUS响应帧:主MCU判断回传的MODBUS响应帧是否有效,如果MODBUS响应帧有效则处理MODBUS响应帧并保存从机RS-485总线极性标志,下一步返回处理其他进程,如果MODBUS响应帧无效,RS-485总线极性标志位取反后返回步骤A2。2.根据权利要求1所述的基于响应帧有效性的RS-485总线极性自适应方法,其特征在于:所述的主MCU的工作方法,包括以下步骤:B1、主MCU的UART及GPIO初始化,从机状态标志位置1,表示从机...

【专利技术属性】
技术研发人员:魏东兴张其宝
申请(专利权)人:大连理工大学
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1