一种超低功耗CAN网络通讯方法与流程

文档序号:12623072阅读:582来源:国知局
一种超低功耗CAN网络通讯方法与流程

本发明涉及CAN网络通信技术领域,尤其涉及一种超低功耗CAN网络通讯方法。



背景技术:

CAN网络(Controller Area Network)作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,已被广泛应用到各个自动化控制领域。随着计算机技术和微电子技术的迅速发展,节能的热潮,提出了绿色系统的概念,使得很多厂商越来越注重微控制器的低功耗问题。因此,电路与系统的低功耗设计一直都是电子工程技术人员设计时需要考虑的重要因素。

目前,在长距离CAN网络通讯中,为了保持通讯中继,需要CAN网络节点设备长期处于接收状态却无法进入休眠,产生较高的功耗,使得电池供电的很多CAN网络节点,如果要保持原有的待机时间,需加大电池容量,从而导致成本较高。



技术实现要素:

本发明实施例所要解决的技术问题在于,提供一种超低功耗CAN网络通讯方法,能够降低CAN网络整体功耗,不必加大电池供电的CAN网络节点的电池容量,降低了成本。

为了解决上述技术问题,本发明实施例提供了一种超低功耗CAN网络通讯方法,所述方法包括:

将CAN网络所有的节点划分成多个组;

对各组均预设有不同的唤醒时间,使得各组在其相应预设的唤醒时间到达时被唤醒,实现所述CAN网络节点之间数据交换。

其中,所述方法进一步包括:

各组均会在属于同组的CAN网络节点之中选其任一作为一级节点,选除一级节点之外的同组CAN网络节点均作为二级节点,并将各组预设的唤醒时间分别设为各组一级节点的唤醒时间,将低于同组一级节点的唤醒时间的一定时间值设为同组所有二级节点的唤醒时间;

待任一组的二级节点和一级节点依次被唤醒后,所述被唤醒组的一级节点均会向同组的所有二级节点下发数据交换指令;

待任一组二级节点接收到同组一级节点下发的数据交换指令后,筛选出参与数据交换的二级节点并向同组一级节点发送数据报文,实现所述CAN网络节点之间数据交换。

其中,所述方法进一步包括:

当某一组中一级节点在间隔一定的时间内未接收到同组任一二级节点所发送的数据报文时,则所述未接收到数据报文的一级节点会向其同组的所有二级节点下发休眠指令后并进入休眠,且同时使得所述接收到休眠指令的同组所有二级节点均会进入休眠。

其中,在所述未接收到数据报文的一级节点进入休眠的步骤之前,还包括步骤:

重新预设所述进入休眠的一级节点所属组的唤醒时间。

实施本发明实施例,具有如下有益效果:

本发明对CAN网络节点进行分组,然后再对每一组进行分级定时被唤醒通讯,避免每次通讯冲突太多,从而达到进一步降低CAN网络整体功耗的目的,使得电池供电的CAN网络节点的不必加大电池容量,降低了成本。

附图说明

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

图1为本发明实施例提供的超低功耗CAN网络通讯方法的流程图;

图2为本发明实施例提供的超低功耗CAN网络通讯方法的应用场景图;

图3为图2中任一组分级处理的应用场景图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。

如图1所示,为本发明实施例中,提供的一种超低功耗CAN网络通讯方法,所述方法包括:

步骤S1、将CAN网络所有的节点划分成多个组;

步骤S2、对各组均预设有不同的唤醒时间,使得各组在其相应预设的唤醒时间到达时被唤醒,实现所述CAN网络节点之间数据交换。

在本发明实施例中,为了提高系统通讯可靠性,在对CAN网络节点分组后,会再对每一组的CAN网络节点进行分级处理,因此所述方法进一步包括:

各组均会在属于同组的CAN网络节点之中选其任一作为一级节点,选除一级节点之外的同组CAN网络节点均作为二级节点,并将各组预设的唤醒时间分别设为各组一级节点的唤醒时间,将低于同组一级节点的唤醒时间的一定时间值设为同组所有二级节点的唤醒时间;

待任一组的二级节点和一级节点依次被唤醒后,所述被唤醒组的一级节点均会向同组的所有二级节点下发数据交换指令;

待任一组二级节点接收到同组一级节点下发的数据交换指令后,筛选出参与数据交换的二级节点并向同组一级节点发送数据报文,实现CAN网络节点之间数据交换。

应当说明的是,各组至少有两个CAN网络节点,且二级节点的唤醒时间优于同组的一级节点的唤醒时间,从而确保二级的CAN网络节点成员都能接收到一级的CAN网络节点广播数据交换指令。

为了降低CAN网络整体功耗,各组结束数据交换后会进入休眠,因此所述方法进一步包括:

当某一组中一级节点在间隔一定的时间内未接收到同组任一二级节点所发送的数据报文时,则所述未接收到数据报文的一级节点会向其同组的所有二级节点下发休眠指令后并进入休眠,且同时使得所述接收到休眠指令的同组所有二级节点均会进入休眠。

为了避免累积唤醒时间的误差,每一组CAN网络节点在进入休眠前,将各组之间采用的通信协议的通讯头作为本组的网络节点同步,因此在未接收到数据报文的一级节点进入休眠的步骤之前,还包括步骤:

重新预设进入休眠的一级节点所属组的唤醒时间。

应当说明的是,重新预设各组的唤醒时间,可以实现各组一级节点及二级节点的唤醒时间的重新预设。

如图2和图3所示,对本发明实施例中的超低功耗CAN网络通讯方法的应用场景做进一步说明:

图2中,将若干个CAN网络节点分为一组,总共分成n组,并给予定时的唤醒值赋值为T,为了避免各组CAN网络节点出现重叠被唤醒,采用如下唤醒机制:第一组CAN网络节点在(T+T1)时被唤醒,第二组CAN网络节点在(T+T2)时被唤醒,第三组CAN网络节点在(T+T3)时初醒,其中T1、T2、T3互不相等,且都不能大于或等于T,其余各组以此类推;

图3中,将各组均分成两级处理,包括一个一级节点和多个二级节点,其中,一级节点具有最高优先权,并赋予特殊的通讯协议,使其每次被唤醒后向二级的所有CAN网络节点广播数据交换指令,通知二级所有CAN网络节点开始发送数据,二级所有CAN网络节点收到指令后,确定参与数据交换的二级CAN网络节点并开始向一级CAN网络节点发送数据,从而实现CAN网络节点之间的数据交换;

为了保证二级CAN网络节点都能接收到一级CAN网络节点广播的数据交换指令,因此需要二级CAN网络节点比一级CAN网络节点先被唤醒,如二级CAN网络节点在(T+T1-300ms)时被唤醒,而一级CAN网络节点在(T+T1)时被唤醒;

当一级CAN网络节点间隔一定的时间(如30S)内没有接收到二级CAN网络节点所发送的数据后,向二级CAN网络节点广播休眠指令,通知二级CAN网络节点进入休眠,此时一级CAN网络节点也进入休眠,使得整组的CAN网络节点都进入休眠,从而降低CAN网络整体功耗;

为了避免累积唤醒时间的误差,每一组CAN网络节点在进入休眠前,将各组之间采用的通信协议的通讯头作为本组的网络节点同步,重新预设各组的唤醒时间,从而可以实现重新初始化本组各个CAN节点的定时被唤醒值,使得每组都会循环执行如下步骤:预设唤醒时间—休眠—唤醒—交换信息—同步初醒值。

实施本发明实施例,具有如下有益效果:

本发明对CAN网络节点进行分组,然后再对每一组进行分级定时被唤醒通讯,避免每次通讯冲突太多,从而达到进一步降低CAN网络整体功耗的目的,使得电池供电的CAN网络节点的不必加大电池容量,降低了成本。

值得注意的是,上述系统实施例中,所包括的各个系统单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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