一种实现多主通信方式的RS485总线驱动电路的制作方法

文档序号:15661223发布日期:2018-10-13 00:48阅读:365来源:国知局

本实用新型涉及电子电路领域,尤其是一种实现多主通信方式的RS485总线驱动电路。



背景技术:

RS485总线是一种常见的串行总线标准,采用平衡发送与差分接收的方式,因此具有抑制共模干扰的能力。在一些要求通信距离为几十米到上千米的时候,RS485总线是一种应用最为广泛的总线。RS485系统总线因硬件设计简单、控制方便、成本低廉等优点在自动化监控、安全防护、门禁考勤及工业自动化系统得到普及和应用。

现有技术的RS485通信方式是主从方式,即连接在一个网络中的所有节点中,只有一个是主机节点,其余都是从机节点。主机节点可以从主机主动向从机发送数据,而从机节点只有收到主机节点的查询命令后,才能被动地向另一从机发送数据。

这种通信方式存在有三个不足:(1)需要主机节点对从机节点逐一遍历轮询,当所有从机节点轮询一圈下来要花费很长的时间;(2)从机节点无法及时主动发送数据,如果主机节点没有轮询到它,它就无法发送数据,大大影响到从机节点数据的及时有效性,从而降低了整个系统的时效性;(3)网络带宽利用率较低,主机节点不知道哪个从机节点有数据要发送,只能不断地轮询,逐一查询各个所有从机节点是否要发送数据,网络带宽很大一部分空间被查询包消耗掉,导致浪费网络带宽,降低网络的流畅及主机与从机的通信工作效率。

本专利方案的目的在于克服RS485总线上述现有技术之不足,仅采用一片总线接口芯片,并配合各个节点的通讯接口软件,构成采用多主通信方式的,且传输性能优于传统标准RS485总线,兼容RS485总线;克服了上面所述传统标准的RS485总线实时性差,网络利用效率低的不足,可在实际应用中广泛的采用。



技术实现要素:

为了解决上述现有技术中存在的问题,本实用新型提供一种实现多主通信方式的RS485总线驱动电路。

本实用新型解决其技术问题所采用的技术方案是:一种实现多主通信方式的RS485总线驱动电路,包括带UART异步通信口的MCU控制器芯片,器件型号为PCA82C250的总线接口芯片以及符合RS485总线规范的RS485通信线路;MCU控制器芯片的RXD引脚连接于总线接口芯片的RXD引脚,MCU控制器芯片的TXD引脚连接于总线接口芯片的TXD引脚;总线接口芯片的CANH引脚连接于RS485通信线路的信号线A,CANL引脚连接于RS485通信线路的信号线B。

本实用新型和现有技术相比,其优点在于:

(1)该电路使用的总线接口芯片,能产生符合RS485总线规范且性能优于RS485总线规范的传输特性。

(2)与使用其它标准的RS485总线接口器件比较,该电路使用的总线接口芯片2没有收发控制端,电路连接更加简单和简洁,使用更加方便。

(3)该接口电路具备MCU控制器芯片的UART接口端能够实现数据同步自发自收的特性,是在RS485总线上实现多主通信方式的最基本和必备的硬件电路条件。

(4)该接口电路兼容传统的标准RS485总线,MCU控制器芯片的软件可以仍然以原传统标准RS485总线的主从方式交换数据,原代码稍微做些改动,甚至无需改动直接使用。

(5)在该接口电路的基础上,通过MCU控制器芯片的软件配合,可以实现多主通信的RS485总线系统。多主通信的RS485总线系统克服了传统标准的RS485总线实时性差,网络利用效率低的不足,可在实际应用中广泛的采用。

(6)本接口电路兼容CAN总线的物理层接口电路。

本实用新型的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本实用新型的实践了解到。

附图说明

为了更清楚地说明本实用新型实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实用新型的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为实现多主通信方式的RS485总线一个节点的接口电路结构示意图;

图2为由3个节点组成的RS485总线系统结构示意图;

附图标记说明:

MCU控制器芯片1;总线接口芯片2;RS485通信线路3。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

在本实用新型的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本实用新型,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本实用新型的限制。

一种实现多主通信方式的RS485总线驱动电路,包括带UART异步通信口的MCU控制器芯片1,器件型号为PCA82C250的总线接口芯片2以及符合RS485总线规范的RS485通信线路3;所述MCU控制器芯片1的RXD引脚连接于总线接口芯片2的RXD引脚,MCU控制器芯片1的TXD引脚连接于总线接口芯片2的TXD引脚;总线接口芯片2的CANH引脚连接于RS485通信线路3的信号线A,CANL引脚连接于RS485通信线路3的信号线B。

所述MCU控制器芯片1是RS485总线节点控制器,通过芯片的UART通信口的RXD引脚接收其RS485总线上节点发送的数据,并通过UART通信口的TXD向RS485总线上的其它节点发送数据;UART通信接口的传输方式为标准异步传输字符数据帧格式。

所述总线接口芯片2是通信协议的物理层转换器件,将MCU控制器芯片1的UART接口发送端TXD按标准异步传输字符数据帧格式发出的信号进行转换后,以RS485总线标准的平衡发送方式送入RS485信号线A和RS485信号线B上;并以差分方式接收RS485总线的RS485信号线A和RS485信号线B上的信号,并转换成符合异步传输字符数据帧格式的信号传送到MCU控制器芯片1的UART接口的接收端RXD。

所述总线接口芯片2的发送和接收的转换是全双工的,当一个节点的MCU控制器芯片1的UART发送端TXD通过总线接口芯片2向符合RS485总线规范的RS485通信线路3发送数据的同时,该节点的MCU控制器芯片1的UART接收端RXD会收到总线接口芯片2从符合RS485总线规范的RS485通信线路3上正在传送的数据;通过该总线接口芯片2构成的RS485接口电路后,在MCU控制器芯片1的UART接口端实现数据的同步自发自收。

所述RS485通信线路3由采用满足RS485规范的双绞线构成,分别为RS485信号线A和RS485信号线B;RS485通信线路3上连接若干个通信节点;连接在RS485总线上的各个节点之间相互通信并传输数据;RS485总线的通信方式为半双工方式。所述RS485信号线A和RS485信号线B的两端之间连接有电阻R1和电阻R2;所述电阻R1和电阻R2的阻值为120Ω。

实施例1

图1为能实现多主通信方式的RS485总线上一个节点的接口电路图,它包括带UART异步通信口的MCU控制器芯片1、总线接口芯片2和符合RS485总线规范的RS485通信线路3。

作为本方案具体优化的,MCU控制器芯片1是一个RS485总线节点控制器。它在内部程序的配合下,通过芯片的UART通信口的RXD引脚接收其它RS485总线上节点发送的数据,并通过UART通信口的TXD向RS485总线上的其它节点发送数据。UART通信接口的传输方式为标准异步传输字符数据帧格式。市场上大多数的MCU芯片都配有符合该标准的UART异步通信接口。

作为本方案具体优化的,符合RS485总线规范的RS485通信线路3由采用满足RS485规范的双绞线构成。双绞线其中一根为RS485信号线A,双绞线其中另外一根为RS485信号线B。符合RS485总线标准的RS485总线是采用平衡发送与差分接收的方式传送信号,具有抑制共模干扰的能力,通信距离可到上千米。在符合RS485总线规范的RS485通信线路3上可以连接多达100个以上的通信节点,每个通信节点的连接方式均采用如图1所示的结构。采用该方式连接在RS485总线上的各个节点之间可以相互通信并传输数据。RS485总线的特性决定了该总线的通信方式为半双工方式;任何一个时间内只能允许有一个节点向RS485总线发送数据;在任何时间内所有的节点都可以从RS485总线上接收数据。

作为本方案具体优化的,总线接口芯片2的一端与带UART异步通信接口的MCU控制器芯片1的UART通信口对接,其中:RXD引脚与MCU控制器芯片1的RXD连接;TXD引脚与MCU控制器芯片1的TXD连接。芯片2的另一端与符合RS485总线规范的RS485通信线路3对接,其中:CANH引脚与符合RS485总线规范的RS485通信线路3的信号线A连接,CANL引脚与符合RS485总线规范的RS485通信线路3的信号线B连接。

作为本方案具体优化的,总线接口芯片2是一片通信协议的物理层转换器件,它将MCU控制器芯片1的UART接口发送端TXD按标准异步传输字符数据帧格式发出的信号进行转换后,以RS485总线标准的平衡发送方式送入RS485总线的A\B信号线上;并以差分方式接收RS485总线的A\B信号线上的信号,并转换成符合异步传输字符数据帧格式的信号传送到MCU控制器芯片1的UART接口的接收端RXD。

作为本方案具体优化的,总线接口芯片2的发送和接收的转换是全双工的,不需要象常规使用的RS485接口芯片那样切换发送和接收的传输方向。既当一个节点的MCU控制器芯片1的UART发送端TXD通过总线接口芯片2向符合RS485总线规范的RS485通信线路3发送数据的同时,该节点的MCU控制器芯片1的UART接收端RXD会收到总线接口芯片2从符合RS485总线规范的RS485通信线路3上正在传送的数据。简单的讲,就是通过该总线接口芯片2构成的RS485接口电路后,在MCU控制器芯片1的UART接口端实现了数据的同步自发自收。

作为本方案具体优化的,接口电路具备MCU控制器芯片1的UART接口端能够实现数据同步自发自收的特性,是在RS485总线上实现多主通信方式的最基本和必备的硬件电路条件。

实施例2

图2展示的是一个由3个节点组成的RS485总线系统图。图中每个节点都是按照图1方式对接在符合RS485总线规范的RS485通信线路3采用满足RS485规范的双绞线的信号线A和信号线B上。总线两端电阻R1和电阻R2为符合RS485总线规范要求120欧姆的总线终端匹配电阻。

特征a:在这个RS485总线系统中的任何一个节点,都可以(但不能同时)通过RS485总线和任意其它一个节点实现通信,交换数据。

特征b:在这个RS485总线系统中,任何时间内仅允许一个节点向RS485总线发送数据。如果同时有大于2个以及2个以上节点在同一时间向RS485总线发送数据,RS485总线上的数据将发生冲突。

特征c:在这个RS485总线系统中的任何一个节点都可以同时接收到RS485总线上传输的数据。

以上特征a和特征b是标准RS485总线的通信规范,关键的不同是特征c。在标准的RS485总线中,任何一个节点(但不包括向RS485总线发送数据的节点自己)都可以同时接收到RS485总线上传输的数据。而在采用本专利方案构成的RS485总线中,任何一个节点(包括向RS485总线发送数据的节点自己)都可以同时接收到RS485总线上传输的数据。

最后的这个电路特点,是为MCU通信控制软件进行总线侦听、冲突检测,随机避让,实现多主通信的硬件基础。

按照图2中的对接方式,可以把更多的节点对接到RS485总线上,就构成更多节点的RS485总线系统。此时,系统中的任何一个节点,都是一个主机节点,都可以主动(但不能同时)通过RS485总线和向任意其它一个节点发送数据,使得多主通信机制在RS485总线上得以实施。

采用图2所示,RS485总线上所有节点均按照本专利描述的RS485接口电路而组成的RS485总线系统是构成多主通信方式硬件上的必要和充分条件。实现多主通信还需要MCU软件配合。

实施例3

实现多主通信机制的RS485系统通信软件的具体操作方法如下:

(1)所有通信节点中MCU的通讯软件采用相同的算法。

(2)根据应用的实际情况,确定一个时间初值tidle,单位为毫秒。该初值的取值一般应大于通信节点MCU的UART发送一个字节所需要时间的五至十倍。例如,MCU的UART采用9600bps波特率发送数据,那么发送一个字节所需要的时间大约为1ms,此时tidel的初值可以设定为10ms.

(3)所有通信节点中MCU的通讯软件中各自具备一个自己专用毫秒级的减一计数器T485。节点上电以后,计数器T485初值设定为tidel,然后每毫秒自动减一计数,直到计数器T485的值为零。T485为零表示RS485总线上最后一段无数据通信的持续时间大于10ms,表征RS485总线上此时无数据传送,处于待机状态。

(4)所有节点的MCU通信控制器允许UART接收中断,随时接收(侦听)RS485总线上传输的数据。所有节点的MCU通信控制器一旦从RS485总线收到一个字节的数据后,将自身毫秒级的减一计数器T485重新设定为初值tidel,然后计数器T485重新每毫秒自动减一计数,直到减一计数器T485的值为零;或再次接收到一个新数据,将减一计数器T485重新设定初值tidel。

(5)所有节点的MCU通信控制器允许UART接收中断,随时接收(侦听)RS485总线上传输的数据,并送入MCU通信控制器的接收缓冲器中保存。当完整收到一个数据包后,交给上层用户层软件处理。

(6)当RS485某一个节点需要向其它节点发送数据时,是参照以太网媒体访问控制技术CSMA/CD的机制,“先听后发,边听边发,冲突停止,延迟重发”的原则向RS485总线发送数据,具体描述如下:

1)发送节点MCU准备好要发送到RS485总线上的数据包,本例假定由i个字节组成;

2)查看本节点的专用毫秒级减一计数器T485是否为零。如果不为零则表示当前RS485总线被别的主机占用,总线上有其它节点传送数据,需要在此一直等到T485为零才能进入下一步发送数据(先听后发);

3)发送节点MCU通过UART口向RS485发送一个字节数据,并同时接收RS485总线上的数据(边听边发,能实现的关键是,按本专利设计的总线构成的RS485接口具备自发自收的功能)。然后本节点MCU将自己刚发送的一个字节数据与刚接收到的一个字节数据做比较,结果不相同,说明RS485总线上有其它主机同时发送数据(冲突停止),总线发生冲突,此时随机延时一段时间,转到(2)再次尝试从头开始发送(延迟重发)。如果本节点MCU将自己刚发送的一个字节数据与刚接收到的一个字节数据做比较,结果相同,说明RS485总线上只有本机在发送数据,没有发生冲突,则重复本过程3),继续发送数据包中下一个字节,一直循环到整个数据包i个字节全部发送完成。

尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本实用新型的实施例,并非因此限制本实用新型的专利保护范围,凡是利用本实用新型说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本实用新型的专利保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1