一种CAN总线节点地址分配方法及系统技术方案

技术编号:19549676 阅读:25 留言:0更新日期:2018-11-24 21:38
本发明专利技术涉及一种CAN总线节点地址分配方法及系统,该方法包括:从节点控制器通过随机数发生器产生一组随机数,该组随机数组成该从节点的临时CAN网络节点地址;从节点向主节点发送数据帧,所述数据帧中包含该从节点的临时CAN网络节点地址和获取地址的命令;主节点接收从节点发送的数据,根据所述临时CAN网络节点地址给该从节点分配相应的地址,并对应生成存储表条目;从节点接收数据,将该从节点的临时地址修改为主节点分配的地址。该方法利用从节点自动生成随机数节点地址,并向主节点请求分配的方法,有效的解决了现有技术中采用拨码开关、上下拉电阻等方式,或者直接修改程序等方法出现的软硬件资源浪费,以及由此导致的地址分配不合理、冲突等问题。

A CAN Bus Node Address Assignment Method and System

The present invention relates to a CAN bus node address allocation method and system. The method includes: generating a group of random numbers from a node controller through a random number generator, which constitute the temporary CAN node address of the slave node; sending a data frame from the slave node to the master node, and the data frame includes the proximity of the slave node. The master node receives the data sent by the slave node, assigns the corresponding address to the slave node according to the address of the temporary CAN network node, and generates the storage table entries accordingly. The slave node receives the data and modifies the temporary address of the slave node to the address assigned by the master node. This method uses the method of automatically generating random number node addresses from slave nodes and requesting assignment from master nodes. It effectively solves the waste of hardware and software resources in the existing technology by using dial switch, pull-down resistance, or directly modifying programs, and the unreasonable and conflicting address assignment caused by this method. And so on.

【技术实现步骤摘要】
一种CAN总线节点地址分配方法及系统
本专利技术涉及嵌入式领域,具体而言是一种CAN总线节点地址分配方法及系统。
技术介绍
CAN是控制器局域网络(ControllerAreaNetwork)的简称,具有较高的可靠性和良好的错误检测能力,是国际上应用最广泛的现场总线之一,广泛用于汽车电子、工业测控和工业自动化等领域。CAN网络中包含多个节点(如图1所示),它们通过CAN总线连接在一起,每个节点都可以监听CAN总线上的通信。CAN网络中每个节点都必须有自己的地址,CAN协议中规定了地址的长度必须为11位(标准帧)或者29位(扩展帧)。但是CAN协议中没有规定地址的获取方式。通常情况下,采用预设地址的方式进行地址分配。具体而言,在节点接入CAN网络之前,进行地址分配。例如,采用拨码开关、上下拉电阻等方式,或者直接修改程序,为各节点分配对应地址。以上方法实现起来不仅浪费资源,而且可能出现地址分配不合理、冲突等情况。
技术实现思路
本专利技术针对现有技术中存在的技术问题,提供一种CAN总线地址分配的方法及系统,以保证CAN总线通信的正常进行。本专利技术解决上述技术问题的技术方案如下:一方面,本专利技术提供一种CAN总线节点地址分配方法,包括以下步骤:步骤1,从节点控制器通过随机数发生器产生一组随机数,该组随机数组成该从节点的临时CAN网络节点地址;步骤2,从节点向主节点发送数据帧,所述数据帧中包含该从节点的临时CAN网络节点地址和获取地址的命令;步骤3,主节点接收从节点发送的数据,根据所述临时CAN网络节点地址给该从节点分配相应的地址,并对应生成存储表条目;步骤4,从节点接收数据,将该从节点的临时地址修改为主节点分配的地址。进一步,所述的一组随机数包括依次生成的11位或29位随机数,每位随机数取值0~f,由所述11位或29位随机数构成该从节点的临时CAN网络节点地址。进一步,所述步骤3还包括:主节点接收从节点发送的数据后,将所述临时CAN网络节点地址与存储表中已记录的从节点地址进行匹配操作,若匹配到相同的从节点地址,则主节点不响应当前从节点的节点地址分配请求。进一步,所述步骤3后还包括:从节点等待接收主节点分配地址超时,则跳转至步骤1,重新生成一组随机数,作为该从节点的临时CAN网络节点地址。进一步,该方法还包括,多个从节点根据优先级获取对CAN总线的控制权,在当前从节点地址分配完毕后,释放对CAN总线的控制权。另一方面,本专利技术还提供一种CAN总线节点地址分配系统,包括通过CAN总线连接的一个主节点控制器和多个从节点控制器;所述从节点控制器包括:一随机数发生器,用于产生一组随机数,该组随机数组成该从节点的临时CAN网络节点地址;一数据帧封装模块,用于将该从节点的临时CAN网络节点地址和获取地址的命令封装成一个数据帧,并发送给主节点控制器;所述主节点控制器包括:一数据解析模块,用于解析从节点控制器发送的数据帧,获取从节点的临时CAN网络节点地址;一地址存储表,用于存储主节点控制器已分配的从节点地址;一地址匹配模块,用于判断获取的临时CAN网络节点地址与所述地址存储表中的从节点地址是否匹配。进一步,所述随机发生器产生的一组随机数包括依次生成的11位或29位随机数,每位随机数取值0~f,由所述11位或29位随机数构成该从节点的临时CAN网络节点地址。进一步,所述从节点控制器还包括一延时计数器,所述数据帧封装模块向所述主节点控制器发送数据后进行计数,当计数超过阈值时,则随机数发生器重新生成一组随机数,并由数据帧封装模块封装后发送给主节点控制器。进一步,所述多个从节点控制器设有不同的优先级,优先级高的从节点控制器在进行节点地址请求时拥有较高的CAN总线控制权,当且仅当该从节点地址分配结束后,所述从节点控制器释放CAN总线控制权。本专利技术的有益效果是:该方法利用从节点自动生成随机数节点地址,并向主节点请求分配的方法,有效的解决了现有技术中采用拨码开关、上下拉电阻等方式,或者直接修改程序等方法出现的软硬件资源浪费,以及由此导致的地址分配不合理、冲突等问题。附图说明图1为CAN网络结构示意图;图2为本专利技术方法流程图;图3为本专利技术系统结构示意图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。如图2所示,一方面,本专利技术提供一种CAN总线节点地址分配方法,包括以下步骤:步骤1,从节点控制器通过随机数发生器产生一组随机数,该组随机数组成该从节点的临时CAN网络节点地址,所述的一组随机数包括依次生成的11位或29位随机数,每位随机数取值0~f,由所述11位或29位随机数构成该从节点的临时CAN网络节点地址;步骤2,从节点向主节点发送数据帧,所述数据帧中包含该从节点的临时CAN网络节点地址和获取地址的命令;步骤3,主节点接收从节点发送的数据,根据所述临时CAN网络节点地址给该从节点分配相应的地址,并对应生成存储表条目;主节点接收从节点发送的数据后,将所述临时CAN网络节点地址与存储表中已记录的从节点地址进行匹配操作,若匹配到相同的从节点地址,则主节点不响应当前从节点的节点地址分配请求。从节点等待接收主节点分配地址超时,则跳转至步骤1,重新生成一组随机数,作为该从节点的临时CAN网络节点地址。步骤4,从节点接收数据,将该从节点的临时地址修改为主节点分配的地址。在进行地址分配时,多个从节点根据优先级获取对CAN总线的控制权,在当前从节点地址分配完毕后,释放对CAN总线的控制权。另一方面,本专利技术还提供一种CAN总线节点地址分配系统,如图3所示,包括通过CAN总线连接的一个主节点控制器和多个从节点控制器;所述从节点控制器包括:一随机数发生器,用于产生一组随机数,该组随机数组成该从节点的临时CAN网络节点地址;一数据帧封装模块,用于将该从节点的临时CAN网络节点地址和获取地址的命令封装成一个数据帧,并发送给主节点控制器;一延时计数器,所述数据帧封装模块向所述主节点控制器发送数据后进行计数,当计数超过阈值时,则随机数发生器重新生成一组随机数,并由数据帧封装模块封装后发送给主节点控制器。所述主节点控制器包括:一数据解析模块,用于解析从节点控制器发送的数据帧,获取从节点的临时CAN网络节点地址;一地址存储表,用于存储主节点控制器已分配的从节点地址;一地址匹配模块,用于判断获取的临时CAN网络节点地址与所述地址存储表中的从节点地址是否匹配。所述多个从节点控制器设有不同的优先级,优先级高的从节点控制器在进行节点地址请求时拥有较高的CAN总线控制权,当且仅当该从节点地址分配结束后,所述从节点控制器释放CAN总线控制权。该方法利用从节点自动生成随机数节点地址,并向主节点请求分配的方法,有效的解决了现有技术中采用拨码开关、上下拉电阻等方式,或者直接修改程序等方法出现的软硬件资源浪费,以及由此导致的地址分配不合理、冲突等问题。以上所述仅为本专利技术的较佳实施例,并不用以限制本专利技术,凡在本专利技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本专利技术的保护范围之内。本文档来自技高网...

【技术保护点】
1.一种CAN总线节点地址分配方法,其特征在于,包括以下步骤:步骤1,从节点控制器通过随机数发生器产生一组随机数,该组随机数组成该从节点的临时CAN网络节点地址;步骤2,从节点向主节点发送数据帧,所述数据帧中包含该从节点的临时CAN网络节点地址和获取地址的命令;步骤3,主节点接收从节点发送的数据,根据所述临时CAN网络节点地址给该从节点分配相应的地址,并对应生成存储表条目;步骤4,从节点接收数据,将该从节点的临时地址修改为主节点分配的地址。

【技术特征摘要】
1.一种CAN总线节点地址分配方法,其特征在于,包括以下步骤:步骤1,从节点控制器通过随机数发生器产生一组随机数,该组随机数组成该从节点的临时CAN网络节点地址;步骤2,从节点向主节点发送数据帧,所述数据帧中包含该从节点的临时CAN网络节点地址和获取地址的命令;步骤3,主节点接收从节点发送的数据,根据所述临时CAN网络节点地址给该从节点分配相应的地址,并对应生成存储表条目;步骤4,从节点接收数据,将该从节点的临时地址修改为主节点分配的地址。2.根据权利要求1所述一种CAN总线节点地址分配方法,其特征在于,所述的一组随机数包括依次生成的11位或29位随机数,每位随机数取值0~f,由所述11位或29位随机数构成该从节点的临时CAN网络节点地址。3.根据权利要求1所述一种CAN总线节点地址分配方法,其特征在于,所述步骤3还包括:主节点接收从节点发送的数据后,将所述临时CAN网络节点地址与存储表中已记录的从节点地址进行匹配操作,若匹配到相同的从节点地址,则主节点不响应当前从节点的节点地址分配请求。4.根据权利要求3所述一种CAN总线节点地址分配方法,其特征在于,所述步骤3后还包括:从节点等待接收主节点分配地址超时,则跳转至步骤1,重新生成一组随机数,作为该从节点的临时CAN网络节点地址。5.根据权利要求1所述一种CAN总线节点地址分配方法,其特征在于,还包括,多个从节点根据优先级获取对CAN总线的控制权,在当前从节点地址分配完毕后,释放对CAN总线的控制权。6.一种CA...

【专利技术属性】
技术研发人员:张智雄
申请(专利权)人:武汉高仕达电气有限公司
类型:发明
国别省市:湖北,42

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

1