技术领域
[0001] 本
发明涉及通信领域,具体而言,涉及一种精准定位控制器局域网CAN网络中节点的方法及装置。
背景技术
[0002] CAN(Controller Area Network,控制器局域网)总线网络设计上的连接是各设备节点通讯线首尾相接,形成一条有首尾的长总线网络,如图1所示,节点1通常为外机,位于整个通讯网络的首节点,其他节点通常为内机,位于整个通讯网络的尾节点的内机需要外接匹配
电阻。基于现有安装的多联机系统网络,现有机组不具备网络节点定位功能,需要使用专
门的调试工具进行调试和维修。基于此,CAN网络在实际使用中通常会遇到下面这些问题:
[0003] 1),目前CAN应用系统多在系统头端设备、尾端设备接入120Ω的匹配电阻,来实现系统的阻抗匹配。现在工程安装头端设备匹配电阻较容易接入,而末端设备的匹配电阻多为工程人员查找到尾端设备并手动操作接入匹配电阻的,这样既浪费工程调试时间又增加了工程安装操作的难度。
[0004] 2),在某些非常规接线的场合或者在已有多联机网络中加入机组,可能会使得网络整体形成非单尾的情况,这种情况下可能会有段网络因为没有匹配电阻的接入导致通讯错误率高的问题,又或者由新机组加入尾部机组由原机组变成另外一台机组的情况,如果人工排查容易出现遗漏,匹配电阻没能同步更改
位置,同样会导致通讯错误率高的问题。
[0005] 3),在网络连接时的需要在有外机的情况下才不会报内通讯故障。这个方法在多联机组装好后可以容易辨认出哪台内机和外机失联,失联的原因可能是内机
主板损坏,也可能是通讯线损坏。对于后者,由于多联机的通讯线都是预埋在墙体中的,目前的手段不容易找出损坏的通讯线是哪一段。
[0006] 针对上述由于
现有技术中在CAN网络系统的调试及维修的问题,目前尚未提出高效简便的解决方案。
发明内容
[0007] 本发明
实施例提供了一种精准定位控制器局域网CAN网络中节点的方法及装置,以至少解决相关技术中对于CAN网络中的节点需要工程人员查找到尾端设备并手动操作接入匹配电阻的技术问题。
[0008] 根据本发明的一个实施例,提供了一种控制器局域网CAN网络中节点的定位方法,包括:在所述CAN网络中的节点上电后,触发调试工具向所述CAN网络中的节点发送用于公布IP地址的数据
帧;其中,所述调试工具与所述CAN网络中的首端节点连接;根据所述数据帧获取到所述CAN网络中各个节点的IP地址采集与所述IP地址分别对应的
电压采样值;根据所述电压采样值确定所述CAN网络中各个节点与所述调试工具之间的距离。
[0009] 根据本发明的另一个实施例,提供了一种控制器局域网CAN网络中节点的定位装置,包括:触发模
块,用于在所述CAN网络中的节点上电后,触发调试工具向所述CAN网络中的节点发送用于公布IP地址的数据帧;其中,所述调试工具与所述CAN网络中的首端节点连接;采集模块,用于根据所述数据帧获取到所述CAN网络中各个节点的IP地址采集与所述IP地址分别对应的电压采样值;定位模块,用于根据所述电压采样值确定所述CAN网络中各个节点与所述调试工具之间的距离。
[0010] 根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有
计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0011] 根据本发明的又一个实施例,还提供了一种
电子装置,包括
存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
[0012] 在本
申请中,可以通过触发调试工具向CAN网络中的节点发送用于公布IP地址的数据帧,从而根据数据帧获取到CAN网络中各个节点的IP地址采集与IP地址分别对应的电压采样值,根据电压采样值确定CAN网络中各个节点与调试工具之间的距离;也就是说,在CAN网络中的首端节点接入调试工具,以获取CAN网络中的鱼首端节点的距离,从而距离最远的节点并在位置最远端的节点接入匹配电阻,可见解决了相关技术中对于CAN网络中的节点需要工程人员查找到尾端设备并手动操作接入匹配电阻的技术问题,提高了对CAN网络维修和调试的效率。
附图说明
[0013] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0014] 图1是现有技术中CAN网络的结构示意图;
[0015] 图2是根据本发明实施例的CAN网络中节点的定位方法的
流程图;
[0016] 图3是根据本发明实施例的调试工具的结构示意图;
[0017] 图4是根据本发明实施例的总线电压检测模块的结构示意图;
[0018] 图5是根据本发明可选实施例的CAN网络中节点的定位装置的结构示意图。
具体实施方式
[0019] 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0020] 实施例1
[0021] 在本实施例中提供了一种控制器局域网CAN网络中节点的定位方法,图2是根据本发明实施例的控制器局域网CAN网络中节点的定位方法的流程图,如图2所示,该流程包括如下步骤:
[0022] 步骤S202,在CAN网络中的节点上电后,触发调试工具向CAN网络中的节点发送用于公布IP地址的数据帧;其中,调试工具与CAN网络中的首端节点连接;
[0023] 步骤S204,根据数据帧获取到CAN网络中各个节点的IP地址采集与IP地址分别对应的电压采样值;
[0024] 步骤S206,根据电压采样值确定CAN网络中各个节点与调试工具之间的距离。
[0025] 通过上述步骤S202至步骤S206,可以通过触发调试工具向CAN网络中的节点发送用于公布IP地址的数据帧,从而根据数据帧获取到CAN网络中各个节点的IP地址采集与IP地址分别对应的电压采样值,根据电压采样值确定CAN网络中各个节点与调试工具之间的距离;也就是说,在CAN网络中的首端节点接入调试工具,以获取CAN网络中的鱼首端节点的距离,从而距离最远的节点并在位置最远端的节点接入匹配电阻,可见解决了相关技术中对于CAN网络中的节点需要工程人员查找到尾端设备并手动操作接入匹配电阻的技术问题,提高了对CAN网络维修和调试的效率。
[0026] 需要说明的是,本申请中涉及到的调试工具的功能有可以直接接入CAN网络与CAN网络的各个节点通讯,可以直接测量CAN网络的电气性能。图3是根据本发明实施例的调试工具的结构示意图,该结构是本申请优选的调试工具的结构,需要说明的是,调试工具自带有电源。调试工具自有
人机界面,此外,如图3所示,该调试工具还包括:
[0027] CAN传输芯片:CAN总线
信号是
差分信号,CAN传输芯片接收总线差分信号发送给MCU芯片CAN控制器,或接收MCU芯片CAN控制器的信号发送到总线上,内部或外围带保护功能。
[0028] 隔离芯片:实现电平转换和保护功能。
[0029] MCU(Microprogrammed Control Unit,微程序控制器):负责信号的处理。
[0030] 总线电压检测:实现测量CAN网络的电气性能。
[0031] 如图4所示,总线电压检测部分自有保护功能模块,包括4个模块:
[0032] IO
接口,用于与主芯片进行信息交互,此数据不密集可用半双工异步通信方式,或其他形式。
[0033] BUFF缓存区,用于对采样信息的存取。
[0034] 比较器,用于读取数据帧仲裁段的ID。
[0035] AD采样,用于采样数据帧数据段的电平值。
[0036] 可选地,对于本申请中步骤S204中涉及到根据数据帧获取到CAN网络中各个节点的IP地址采集与IP地址分别对应的电压采样值的方式,可以是:
[0037] 步骤S204-11,获取CAN网络中的节点响应于数据帧反馈的总线帧;
[0038] 步骤S204-12,判断总线帧中的功能码与预设的功能码是否一致;
[0039] 步骤S204-13在判断结果为是的情况下,保存总线帧中的IP地址,并根据保存的IP地址采集电压采样值。
[0040] 结合上诉本申请中调试工具的具体结构,对上述步骤104-11至步骤S104-13进行举例说明;
[0041] 首先,采样的依据是AN总线帧,其中,CAN总线帧格式如表1所示:
[0042]
[0043] 表1
[0044] CAN总线在仲裁段进行各节点数据优先级判断,最终获得总线控制权的节点可发送仲裁段后面的数据,由于节点的位置不同,总线上的电平会不同,由此可采样此部分数据的电平作为定位节点位置的依据。
[0045] 现有CAN网络有“公布设备节点的IP和MAC地址”和“要求其他节点公布自身及下层设备节点的IP和MAC地址”功能。用于“公布设备节点的IP和MAC地址”的总线帧格式如表2所示:
[0046]
[0047] 表2
[0048] 其中,表2中的功能码X代表“公布设备节点的IP和MAC地址”含义,以此作为比较器的比较基准。由于功能码在CAN网络设计之初就已经定义好,因此,调试工具可在设计之初就明确,也可以通过人工对调试器选择设定。
[0049] 比较器监听总线数据,将总线功能码与功能码X对比,与功能码X一致,则记录IP地址到BUFF,并进行采样,采样控制段的电平。
[0050] 在本申请的可选实施方式中,对于上述步骤S206中涉及到的根据电压采样值确定CAN网络中各个节点与调试工具之间的距离的方式,可以是:
[0051] 步骤S206-11,获取CAN网络的总线长度,并通过下述公式确定单位长度电压Vl:
[0052] Vl=(VCAN-VH)/L;其中,VCAN为CAN网络收发芯片
输出电压的最高高电平值;VH为检测到的最低高电平值;
[0053] 步骤S206-12,根据电压采样值VC与下述公式确定距离L;
[0054] l=L+1-VC/Vl。
[0055] 结合上述图3和图4的调试工具的结构,对于上述步骤S106在具体应用场景中,可以是:
[0056] AD采样首先进行差分
信号处理,差分线显性电平相减为高电平,高电平最高值为CAN收发芯片输出电压VCAN(V),采样
精度由设计的网络确定:整体网络设计总线长度L,单位米(m),单位长度电压为Vl=(VCAN-VH)/L,采样精度Vi可根据实际电压选择分压P次,Vi=V/P,其中VH(V)为收发器可以检测到的最低高电平值。采样值VC与节点距离采样端的距离l的关系为l=L+1-VC。
[0057] 总线电压检测自带有时钟源以供AD采样和比较器使用,但采样
频率的选择与总线电压检测功能有关,此部分选择依据为:总线波特率决定总线上1位的时间t(us),采样周期T≤t,
采样频率f≥1/T。采样次数至少可以为1次,为提高采样的准确值,可进行多次采样,最终值可取平均值或其他取值方式。因为采样的目标为控制端,此时,控制端的值为固定,可以是4或其他有意义值,可以根据此值确定采样次数,如表3所示,其中“D”:显性电平,“R”:隐性电平。
[0058]
[0059]
[0060] 表3
[0061] 在本实施例的可选实施方式中,在步骤S106中涉及到的在根据电压采样值确定CAN网络中各个节点与调试工具之间的距离之后,本实施例的方法还包括:
[0062] 步骤S208,对距离进行排序;
[0063] 其中,对于距离进行排序的方式为:判断各个节点与首端节点之间的距离是否存在相等的距离;在判断结果为是的情况下,增大CAN网络中的分压次数,并继续执行根据电压采样值确定CAN网络中各个节点与调试工具之间的距离的操作,直到不存在相等的距离或P值为最大值。
[0064] 步骤S210,判断排序后的距离中是否存在相等的距离;
[0065] 步骤S212,在判断结果为是的情况下,上报报警信息。
[0066] 可见,对于上述步骤S208至步骤S212,在具体应用场景中可以是:CAN网络节点定位排布依据采样数据的处理逻辑:
[0067] 首先,获得所有IP及对应距离采样端的距离l,可有数组lIP1、lIP2、……、lIPn,对数据进行排序。如出现lIP1=lIP2的情况,可重复进行电压采集,做误差修正次数自定。完成修正后依然存在两个节点距离相同,可增大P值,再重复进行电压采集。如P值已最大,依然存在两个节点距离相同,则将此并列排列。
[0068] 因此,在网络首端接入调试工具,获得各网络节点位置之后,如显示同距离位置有多于1个节点,则代表可能存在非规范接线的情况,则可以针对这些节点进行进一步排查。
[0069] 此外,通过本申请的方式判断异常是否因为通讯线中部开路引起,此时可以确定各内机节点正常却通讯异常的情况。在通讯异常的内机节点处接入调试工具,调试工具模拟外机,有连接起来的内机会解除异常,如果原网络有1处断线,则此时形成了两个通信圈,如有多于1处断线,则此时形成两个通信圈和其他依旧处于通讯异常的内机。多处断线情况可通过进行重复操作排除解决。对由调试工具来接起来的网络排序内机节点,找到网络首尾,此两端点就是和其他内机来接的端点,即可以判断通讯线开路所在通讯线。
[0070] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助
软件加必需的通用
硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,
服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0071] 实施例2
[0072] 在本实施例中还提供了一种控制器局域网CAN网络中节点的定位装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0073] 图5是根据本发明实施例的控制器局域网CAN网络中节点的定位装置的结构示意图,如图5所示,该装置包括:触发模块52,用于在CAN网络中的节点上电后,触发调试工具向CAN网络中的节点发送用于公布IP地址的数据帧;其中,调试工具与CAN网络中的首端节点连接;采集模块54,与触发模块52耦合链接,用于根据数据帧获取到CAN网络中各个节点的IP地址采集与IP地址分别对应的电压采样值;定位模块56,与采集模块54耦合链接,用于根据电压采样值确定CAN网络中各个节点与调试工具之间的距离。
[0074] 可选地,本申请中涉及到的采集模54块包括:获取单元,用于获取CAN网络中的节点响应于数据帧反馈的总线帧;判断单元,用于判断总线帧中的功能码与预设的功能码是否一致;采集单元,用于在判断结果为是的情况下,保存总线帧中的IP地址,并根据保存的IP地址采集电压采样值。
[0075] 可选地,本申请中涉及到的定位模块56进一步可以包括:处理单元,用于获取CAN网络的总线长度,并通过下述公式确定单位长度电压Vl:
[0076] Vl=(VCAN-VH)/L;其中,VCAN为CAN网络收发芯片输出电压的最高高电平值;VH为检测到的最低高电平值;
[0077] 确定单元,用于根据电压采样值VC与下述公式确定距离L;
[0078] l=L+1-VC/Vl。
[0079] 需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
[0080] 实施例3
[0081] 本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0082] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0083] S1,在CAN网络中的节点上电后,触发调试工具向CAN网络中的节点发送用于公布IP地址的数据帧;其中,调试工具与CAN网络中的首端节点连接;
[0084] S2,根据数据帧获取到CAN网络中各个节点的IP地址采集与IP地址分别对应的电压采样值;
[0085] S3,根据电压采样值确定CAN网络中各个节点与调试工具之间的距离。
[0086] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、
只读存储器(Read-Only Memory,简称为ROM)、
随机存取存储器(Random Access Memory,简称为RAM)、移动
硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0087] 本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0088] 可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0089] 可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0090] S1,在CAN网络中的节点上电后,触发调试工具向CAN网络中的节点发送用于公布IP地址的数据帧;其中,调试工具与CAN网络中的首端节点连接;
[0091] S2,根据数据帧获取到CAN网络中各个节点的IP地址采集与IP地址分别对应的电压采样值;
[0092] S3,根据电压采样值确定CAN网络中各个节点与调试工具之间的距离。
[0093] 可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0094] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成
电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0095] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何
修改、等同替换、改进等,均应包含在本发明的保护范围之内。