基于can总线的无主网络通信系统的制作方法

文档序号:7820292阅读:187来源:国知局
基于can总线的无主网络通信系统的制作方法
【专利摘要】本发明提供了一种基于CAN总线的无主网络通信系统,包括:多通道数据管理模块,多通道超时管理模块,数据接收模块,平均优先权模块,多通道预发送模块,数据发送模块和应答模块,多通道数据管理模块分别与应用接口、多通道超时管理模块和平均优先权模块连接,数据接收模块分别与多通道超时管理模块,应用接口和应答模块连接,多通道预发送模块分别与多通道超时管理模块、平均优先权模块和数据发送模块连接,数据发送模块和应答模块均与平均优先权模块连接。本发明使CAN总线实现无主可靠的多点通信,具有降低系统延时,通信速度快的优点。
【专利说明】基于CAN总线的无主网络通信系统

【技术领域】
[0001]本发明涉及消防电子电路领域,具体地,涉及一种基于CAN总线的无主网络通信系统。

【背景技术】
[0002]所谓总线,是两个或多个电子设备之间通信的载体,例如电话线,有线电视线等都是总线。电子设备在总线上的通信包括发送信息和接收信息两个部分。CAN总线是在工业控制领域应用非常广泛的一种差分总线,目前,CAN总线采用主从式通信,CAN总线有如下特点:
[0003]CAN总线的硬件可以自动将要发送的数据包装成帧,发送出去,在一定时间内接收不到应答还会重发,在接收到数据帧时会校验接收的数据是否正确,如果不正确则不应答。如果总线上只有两个节点A和节点B,则节点A向节点B发送数据,节点A可以通过硬件就知道节点B是否已经正确收到此信息,但如果总线上不只两个节点,则节点A不能判断收到的应答是节点B发送的,即节点A无法判断节点B是否正确接收到节点A发送的数据。CAN总线的另一个特点是有总线仲裁机制,即当两个节点同时向总线上发送信息时,总线会自动判断两帧信息的优先级,优先级高的先发送,优先级低的会自动排在优先级高的数据帧之后发送。尽管CAN总线有硬件仲裁机制,但由于多点通信时,无法通过硬件准确判断出接收端是否正确接收到数据。另外由于总线仲裁机制的存在,各个数据有优先级的分别,如果处理不当,有可能导致低优先级的数据长时间发送不出去。因此,现有的CAN总线通信系统一般都采用主从式通信,没有充分发挥CAN总线的特点,通信速度慢。


【发明内容】

[0004]针对现有技术中的缺陷,本发明的目的是提供一种基于CAN总线的无主网络通信系统,本发明可以充分发挥CAN总线的硬件仲裁优点,使CAN总线实现无主可靠的多点通信,降低系统延时,提高通信速度。
[0005]根据本发明的一个方面,提供一种基于CAN总线的无主网络通信系统,包括:多通道数据管理模块,多通道超时管理模块,数据接收模块,平均优先权模块,多通道预发送模块,数据发送模块和应答模块,多通道数据管理模块分别与应用接口、多通道超时管理模块和平均优先权模块连接,数据接收模块分别与多通道超时管理模块,应用接口和应答模块连接,多通道预发送模块分别与多通道超时管理模块、平均优先权模块和数据发送模块连接,数据发送模块和应答模块均与平均优先权模块连接;其中:
[0006]多通道数据管理模块接收应用接口发送来的数据,将其按发送目的地址分通道存储在各个通道的数据队列中;且多通道数据管理模块接收多通道超时管理模块发送来的某通道的应答的信息,从此通道的数据队列中取出一帧要发送的数据,连同通道号,一同发送给平均优先权模块;
[0007]平均优先权模块接收多通道数据管理模块发送来的数据和通道号,将数据做平均优先权处理之后,连同通道号一同发送给多通道预发送模块;且平均优先权模块接收应答模块发送来的应答信息,将其做平均优先权处理之后,发送给数据发送模块;
[0008]多通道预发送模块接收平均优先权模块发送来的数据和通道号,将通道号发送给多通道超时管理模块,将要发送数据的通道的存储寄存器清空,存储本次要发送的数据,并将要发送的数据发送给数据发送模块;且多通道预发送模块接收多通道超时管理模块发送来的某通道超时信息,将超时的通道存储的数据重新发送给数据发送模块;
[0009]数据发送模块接收多通道预发送模块发送来的数据,将其通过CAN总线发送出去;且数据发送模块接收平均优先权模块发送来的应答数据,将其通过CAN总线发送出去;
[0010]多通道超时管理模块接收多通道预发送模块发送来的通道信息,开启对应通道的超时定时器,如果超时定时器超时,则向多通道预发送模块发送此通道超时的信息;且多通道超时管理模块接收数据接收模块发送来的应答信息,停止并复位应答信息对应的通道的超时定时器,并将此应答信息发送给多通道数据管理模块;
[0011]数据接收模块与CAN总线连接,从CAN总线上接收到数据之后,如果接收到的信息为应答信息,则将其发送给多通道超时管理模块,如果为非应答信息,则将其发送给应用接口和应答模块;
[0012]应答模块接收数据接收模块发送来的非应答信息,根据此信息的源地址,发送对应的应答信息给平均优先权模块。
[0013]优选地,平均优先权模块用以使总线上的各个通信节点的通信帧优先权平均相等,防止因优先权高的数据一直在发送,而使优先权低的数据长时间得不到总线使用权,具体采用以下方式:将每个CAN节点分别设置高、低两个ID,这两个ID在优先级上互补,即高ID在所有ID中的优先级为N,则低ID在所有ID中的优先级为倒数N,而且每个通信节点在每通信完一帧之后,就将自己的高低ID互换,即上一帧用自己的高ID发送数据,下一帧就要使用自己的低ID发送数据,这样,因为优先级低而处于等待状态的数据帧由于优先级高的数据帧发送完毕而变成了当前最高优先级的数据帧而得到总线控制权,从而,使总线上所有的通信节点的通信延时都在可控制范围之内。
[0014]优选地,通道表示两个通信节点之间的通信关系,当两个节点A,B,节点A向节点B发送数据,则节点A和节点B之间建立了一个节点A向节点B的通道,节点A在向节点B发送一帧信息之后,节点A向节点B的通道将暂时处于阻塞状态,此时节点A不能继续向节点B发送数据,直到节点A接收到节点B发送的应答信息,或等待超过了预定时间,在此等待期间,不影响节点A向其他节点以及节点B向节点A发送信息,节点A向其他节点以及节点B向节点A发送信息都是不同的通道,且不同于节点A向节点B的通道。
[0015]本发明通过多通道控制和发送应答机制使CAN总线实现了无主可靠的多点通信,与现有技术相比,本发明具有如下的有益效果:本发明可以充分发挥CAN总线的硬件仲裁优点,使各个通信节点在有事件要发送时,无需等待主节点的巡检信息,可以即时发送,通信延时更小。因此,与现有技术相比,本发明使CAN总线实现无主可靠的多点通信,具有降低系统延时,通信速度快的优点。

【专利附图】

【附图说明】
[0016]通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0017]图1为本发明基于CAN总线的无主网络通信系统的结构原理图。
[0018]图中:I为多通道数据管理模块,2为多通道超时管理模块,3为数据接收模块,4为平均优先权模块,5为多通道预发送模块,6为数据发送模块和7为应答模块。

【具体实施方式】
[0019]下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
[0020]请参阅图1,一种基于CAN总线的无主网络通信系统,包括:多通道数据管理模块,多通道超时管理模块,数据接收模块,平均优先权模块,多通道预发送模块,数据发送模块和应答模块,多通道数据管理模块分别与应用接口、多通道超时管理模块和平均优先权模块连接,数据接收模块分别与多通道超时管理模块,应用接口和应答模块连接,多通道预发送模块分别与多通道超时管理模块、平均优先权模块和数据发送模块连接,数据发送模块和应答模块均与平均优先权模块连接。
[0021]多通道数据管理模块接收应用接口发送来的数据,将其按发送目的地址分通道存储在各个通道的数据队列中;且多通道数据管理模块接收多通道超时管理模块发送来的某通道的应答的信息,从此通道的数据队列中取出一帧要发送的数据,连同通道号,一同发送给平均优先权模块。
[0022]平均优先权模块接收多通道数据管理模块发送来的数据和通道号,将数据做平均优先权处理之后,连同通道号一同发送给多通道预发送模块;且平均优先权模块接收应答模块发送来的应答信息,将其做平均优先权处理之后,发送给数据发送模块。
[0023]平均优先权模块用以使总线上的各个通信节点的通信帧优先权平均相等,防止因优先权高的数据一直在发送,而使优先权低的数据长时间得不到总线使用权,具体采用以下方式:将每个CAN节点分别设置高、低两个ID,这两个ID在优先级上互补,即高ID在所有ID中的优先级为N,则低ID在所有ID中的优先级为倒数N,而且每个通信节点在每通信完一帧之后,就将自己的高低ID互换,即上一帧用自己的高ID发送数据,下一帧就要使用自己的低ID发送数据,这样,因为优先级低而处于等待状态的数据帧由于优先级高的数据帧发送完毕而变成了当前最高优先级的数据帧而得到总线控制权,从而,使总线上所有的通信节点的通信延时都在可控制范围之内。
[0024]多通道预发送模块接收平均优先权模块发送来的数据和通道号,将通道号发送给多通道超时管理模块,将要发送数据的通道的存储寄存器清空,存储本次要发送的数据,并将要发送的数据发送给数据发送模块;且多通道预发送模块接收多通道超时管理模块发送来的某通道超时信息,将超时的通道存储的数据重新发送给数据发送模块。
[0025]数据发送模块接收多通道预发送模块发送来的数据,将其通过CAN总线发送出去;且数据发送模块接收平均优先权模块发送来的应答数据,将其通过CAN总线发送出去。
[0026]多通道超时管理模块接收多通道预发送模块发送来的通道信息,开启对应通道的超时定时器,如果超时定时器超时,则向多通道预发送模块发送此通道超时的信息;且多通道超时管理模块接收数据接收模块发送来的应答信息,停止并复位应答信息对应的通道的超时定时器,并将此应答信息发送给多通道数据管理模块。
[0027]数据接收模块与CAN总线连接,从CAN总线上接收到数据之后,如果接收到的信息为应答信息,则将其发送给多通道超时管理模块,如果为非应答信息,则将其发送给应用接口和应答模块。
[0028]应答模块接收数据接收模块发送来的非应答信息,根据此信息的源地址,发送对应的应答信息给平均优先权模块。
[0029]具体地,通道为一虚拟通道,通道表示两个通信节点之间的通信关系,当两个节点A,B,节点A向节点B发送数据,则节点A和节点B之间建立了一个节点A向节点B的通道,节点A在向节点B发送一帧信息之后,节点A向节点B的通道将暂时处于阻塞状态,此时节点A不能继续向节点B发送数据,直到节点A接收到节点B发送的应答信息,或等待超过了预定时间,在此等待期间,不影响节点A向其他节点以及节点B向节点A发送信息,节点A向其他节点以及节点B向节点A发送信息都是不同的通道,且不同于节点A向节点B的通道。
[0030]进一步地,数据发送模块控制CAN控制器,将数据通过CAN控制器发送到总线上。数据接收模块控制CAN控制器,通过CAN控制器从总线上接收数据。
[0031]在本发明的一个较佳实施例中,处理器采用LPC1765单片机,此单片机内部集成了 CAN控制器,CAN收发器采用CTM1050T,CAN总线波特率设置为1Mbps,采用CAN2.0B扩展帧模式,在通信协议中,CAN总线ID有29个bit位,其中bitO?bit7定义为命令字,bit8?bitl5定义为目的地址,bitl6?bit23定义为源地址。表示应答的应答帧中,命令字定义为0x3e。通信超时时间设为100ms。
[0032]以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
【权利要求】
1.一种基于CAN总线的无主网络通信系统,其特征在于,包括:多通道数据管理模块,多通道超时管理模块,数据接收模块,平均优先权模块,多通道预发送模块,数据发送模块和应答模块,所述多通道数据管理模块分别与应用接口、多通道超时管理模块和平均优先权模块连接,所述数据接收模块分别与所述多通道超时管理模块,应用接口和应答模块连接,所述多通道预发送模块分别与所述多通道超时管理模块、平均优先权模块和数据发送模块连接,所述数据发送模块和应答模块均与所述平均优先权模块连接;其中: 所述多通道数据管理模块接收应用接口发送来的数据,将其按发送目的地址分通道存储在各个通道的数据队列中;且所述多通道数据管理模块接收多通道超时管理模块发送来的某通道的应答的信息,从此通道的数据队列中取出一帧要发送的数据,连同通道号,一同发送给平均优先权模块; 所述平均优先权模块接收多通道数据管理模块发送来的数据和通道号,将数据做平均优先权处理之后,连同通道号一同发送给多通道预发送模块;且所述平均优先权模块接收应答模块发送来的应答信息,将其做平均优先权处理之后,发送给数据发送模块; 所述多通道预发送模块接收平均优先权模块发送来的数据和通道号,将通道号发送给多通道超时管理模块,将要发送数据的通道的存储寄存器清空,存储本次要发送的数据,并将要发送的数据发送给数据发送模块;且所述多通道预发送模块接收多通道超时管理模块发送来的某通道超时信息,将超时的通道存储的数据重新发送给数据发送模块; 所述数据发送模块接收多通道预发送模块发送来的数据,将其通过CAN总线发送出去;且所述数据发送模块接收平均优先权模块发送来的应答数据,将其通过CAN总线发送出去; 所述多通道超时管理模块接收多通道预发送模块发送来的通道信息,开启对应通道的超时定时器,如果超时定时器超时,则向多通道预发送模块发送此通道超时的信息;且所述多通道超时管理模块接收数据接收模块发送来的应答信息,停止并复位应答信息对应的通道的超时定时器,并将此应答信息发送给多通道数据管理模块; 所述数据接收模块与CAN总线连接,从CAN总线上接收到数据之后,如果接收到的信息为应答信息,则将其发送给多通道超时管理模块,如果为非应答信息,则将其发送给应用接口和应答模块; 所述应答模块接收数据接收模块发送来的非应答信息,根据此信息的源地址,发送对应的应答信息给平均优先权模块。
2.根据权利要求1所述的基于CAN总线的无主网络通信系统,其特征在于,所述平均优先权模块用以使总线上的各个通信节点的通信帧优先权平均相等,防止因优先权高的数据一直在发送,而使优先权低的数据长时间得不到总线使用权,具体采用以下方式:将每个CAN节点分别设置高、低两个ID,这两个ID在优先级上互补,即高ID在所有ID中的优先级为N,则低ID在所有ID中的优先级为倒数N,而且每个通信节点在每通信完一帧之后,就将自己的高低ID互换,即上一帧用自己的高ID发送数据,下一帧就要使用自己的低ID发送数据,这样,因为优先级低而处于等待状态的数据帧由于优先级高的数据帧发送完毕而变成了当前最高优先级的数据帧而得到总线控制权,从而,使总线上所有的通信节点的通信延时都在可控制范围之内。
3.根据权利要求1所述的基于CAN总线的无主网络通信系统,其特征在于,所述通道表示两个通信节点之间的通信关系,当两个节点A, B,节点A向节点B发送数据,则节点A和节点B之间建立了一个节点A向节点B的通道,节点A在向节点B发送一帧信息之后,节点A向节点B的通道将暂时处于阻塞状态,此时节点A不能继续向节点B发送数据,直到节点A接收到节点B发送的应答信息,或等待超过了预定时间,在此等待期间,不影响节点A向其他节点以及节点B向节点A发送信息,节点A向其他节点以及节点B向节点A发送信息都是不同的通道,且不同于节点A向节点B的通道。
【文档编号】H04L12/40GK104378274SQ201410668335
【公开日】2015年2月25日 申请日期:2014年11月20日 优先权日:2014年11月20日
【发明者】姜洪宇, 杜啸晓, 郑珊珊, 张永刚 申请人:中国船舶重工集团公司第七二六研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1