掌桥专利:专业的专利平台
掌桥专利
首页

一种CAN总线波特率配置参数的设置方法和装置

文献发布时间:2024-04-18 19:58:30


一种CAN总线波特率配置参数的设置方法和装置

技术领域

本发明涉及汽车电子网络通信领域,尤其涉及一种CAN总线波特率配置参数的设置方法和装置。

背景技术

随着社会的快速发展,汽车已经成为了每家每户不可缺少的一部分。在车辆生产的过程中,控制器局域网总线(CAN,Controller Area Network)因实时性好、抗干扰能力强以及可靠性高等优点被广泛应用在汽车总线中,以实现车辆中各个部件之间的实时数据交换和控制。CAN通信的采样点是指读取总线电平并将其解释为相应位的值的时间点;每个数据帧都包含多个数据位,每个数据位都有自己的采样点,在发送端,CAN控制器会在每个数据位的采样点上发送数据,而接受端则会在相同的采样点上对数据进行采样和解码。CAN总线上的数据传输速度很快,而采样点的作用是确保数据能够被正确地解码,如果采样点不正确,就会导致数据误码或丢失,从而影响通信的稳定性和可靠性。采样点作为确保CAN通信正常运行的重要因素之一,为保证数据在传输过程中被准确采样和解码,从而实现高效稳定的通信,在正确的时间点对数据进行采样是至关重要的。

在CAN通信中,采样点的位置受很多因素的影响,例如:数据传输速率、CAN总线长度以及CAN控制器使用的时钟频率。其中,CAN总线的数据传输速率越高,采样点间隔时间越短,因此在高速数据传输时还可能需要增加采样点的数量;CAN总线长度越长,信号衰减程度越高,因此采样点之间的距离应该更密集以获得更好的信号质量;时钟频率过高或者过低,都会导致采样点发生偏移。具体的,CAN通信中,在一个位时间内,可以将该位时间划分为四个非重叠的时间段,分别是同步段(synchronization segment,Sync_Seg)、传播段(propagation time segment,Prop_Seg)、第一相位缓冲段(phase buffer segment 1,Phase_Seg1)以及第二相位缓冲段(phase buffer segment 2,Phase_Seg2);每个时间段由多个时间量子(Time quantum,Tq)组成,其中,Tq是从振荡器周期导出的基准时间单位,根据ISO11898规范,Sync_Seg固定为由1个Tq组成,Prop_Seg由1~8个Tq组成,Phase_Seg1由1~8个Tq组成,Phase_Seg2由2~8个Tq组成;采样点位于第一相位缓冲段的结尾,其具体数值由CAN通信的需求方指定,一般设置在一个位时间的70%-85%的位置。

为了能得到预设采样点,需要先计算出该采样点对应的传播段、第一相位缓冲段、第二相位缓冲段以及同步跳转宽度(Synchro Jump Width,SJW)四个配置参数;现有技术中,一般采用人工计算的方式,在计算上述4个配置参数时,不仅需要工作人员熟悉CAN总线的通信原理,还需要工作人员经过一系列的计算和推导,计算过程十分繁琐。

发明内容

本发明提供一种CAN总线波特率配置参数的设置方法和装置,解决了现有的人工计算CAN总线波特率配置参数时计算过程繁琐以及计算效率低的问题。

为达到上述目的,本发明采用如下技术方案:

第一方面,本发明提供一种CAN总线波特率配置参数的设置方法,该方法包括:

获取标准输入信息;所述标准输入信息包括CAN总线的波特率、CAN控制器的时钟频率以及采样时间点;所述采样时间点为读取所述CAN总线的电平并将所述电平解释为比特位的逻辑值的时间点;

根据所述波特率和所述时钟频率,确定所述标准输入信息的位时间、时间量子以及在所述位时间内包括的所述时间量子的数量;所述位时间为一个所述比特位在所述CAN总线传输需要的时间;所述位时间包括多个所述时间量子,所述时间量子为所述时钟频率的倒数;

根据所述时间量子的数量与预设的时间量子标准范围值的大小关系确定所述时钟频率是否需要分频处理;所述分频处理为将所述时钟频率对应的时间量子的数量降低至所述时间量子标准范围值内的操作;

若确定所述时钟频率需要分频处理,则根据所述时钟频率对应的时间量子的数量和所述时间量子标准范围值计算分频系数,并根据所述分频系数确定分频处理后的时间量子、以及所述位时间内包括的所述时间量子的数量;

根据所述时间量子、所述时间量子的数量、所述采样时间点以及预先确定的传播时延,确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值;

根据所述第二相位缓冲段参数的值,确定所述CAN总线的同步跳转宽度的值;

根据所述传播段参数、所述第一相位缓冲段参数、所述第二相位缓冲段参数以及所述同步跳转宽度的值对所述CAN总线进行通信配置。

在一种可能的实现方式中,所述根据所述时间量子、所述时间量子的数量、所述采样时间点以及预先确定的传播时延,确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值,具体包括:

确定所述时间量子、预先确定的传播时延与传播段参数之间的第一等式关系;

确定同步段参数、所述传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及所述时间量子的数量之间的第二等式关系;所述同步段参数的值为第一预设值;

确定所述同步段参数、所述传播段参数、所述第一相位缓冲段参数、所述第二相位缓冲段参数以及所述采样时间点之间的第三等式关系;

根据所述第一等式关系、所述第二等式关系以及所述第三等式关系确定所述传播段参数、所述第一相位缓冲段参数以及所述第二相位缓冲段参数的值。

在一种可能的实现方式中,所述根据所述波特率和所述时钟频率,确定所述标准输入信息的位时间、时间量子以及在所述位时间内包括的所述时间量子的数量,具体包括:

根据所述波特率的倒数确定所述标准输入信息的位时间;

根据所述时钟频率的倒数确定所述标准输入信息的时间量子;

根据所述位时间与所述时钟频率的比值,确定在所述位时间内包括的所述时间量子的数量。

在一种可能的实现方式中,根据所述时间量子的数量与预设的时间量子标准范围值的大小关系确定所述时钟频率是否需要分频处理,具体包括:

确定所述时间量子的数量是否大于所述时间量子标准范围值;

若确定所述时间量子的数量大于所述时间量子标准范围值的最大值,则需要对所述时钟频率进行分频处理,且分频处理后的时钟频率对应的时间量子的数量位于所述时间量子标准范围值内;

若确定所述时间量子的数量在所述时间量子标准范围值内,则不需要对所述时钟频率进行分频处理。

在一种可能的实现方式中,所述根据所述时钟频率对应的时间量子的数量和所述时间量子标准范围值计算分频系数,并根据所述分频系数确定分频处理后的时间量子、以及所述位时间内包括的所述时间量子的数量,具体包括:

获取所述时间量子标准范围值内的所有整数值;

依次将每个所述整数值作为除数,获取使所述时钟频率对应的时间量子的数量与所述除数的比值为整数的数值作为分频系数;

确定所述分频系数对应的分频处理后的时钟频率,并根据所述分频处理后的时钟频率以及所述位时间确定所述位时间内包括的分频处理后的时间量子的数量;

确定所述时间量子的数量是否为整数;

若确定所述时间量子的数量不为整数,重新获取使所述时钟频率对应的时间量子的数量与所述除数的比值为整数的数值作为分频系数。

在一种可能的实现方式中,所述根据所述第二相位缓冲段参数的值与第二预设值的大小,确定所述CAN总线的同步跳转宽度的值,具体包括:

确定所述第二相位缓冲段参数的值是否小于所述第二预设值;

若确定所述第二相位缓冲段参数的值小于所述第二预设值,则将所述第二相位缓冲段参数的值作为所述CAN总线的同步跳转宽度的值;

若确定所述第二相位缓冲段参数的值大于或等于所述第二预设值,则将所述第二预设值作为所述CAN总线的同步跳转宽度的值。

在一种可能的实现方式中,在根据所述时间量子、所述时间量子的数量、所述采样时间点以及预先确定的传播时延,确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值之前,所述方法还包括:

确定所述标准输入信息中是否包含传播时延信息;

若确定所述标准输入信息中包含传播时延信息,则根据单位转换关系将所述传播时延信息转换为标准传播时延,并将所述标准传播时延作为预先确定的传播时延;所述标准传播时延的单位为预设时延单位;

若确定所述标准输入信息中不包含传播时延信息,则获取预设的默认传播时延,并将所述默认传播时延作为预先确定的传播时延。

第二方面,本发明提供一种CAN总线波特率配置参数的计算装置,该装置包括:

数据输入模块,用于获取标准输入信息;所述标准输入信息包括CAN总线的波特率、CAN控制器的时钟频率以及采样时间点;所述采样时间点为读取所述CAN总线的电平并将所述电平解释为比特位的逻辑值的时间点;

第一处理模块,用于根据所述波特率和所述时钟频率,确定所述标准输入信息的位时间、时间量子以及在所述位时间内包括的所述时间量子的数量;所述位时间为一个所述比特位在所述CAN总线传输需要的时间;所述位时间包括多个所述时间量子,所述时间量子为所述时钟频率的倒数;

第二处理模块,用于根据所述时间量子的数量与预设的时间量子标准范围值的大小关系确定所述时钟频率是否需要分频处理;所述分频处理为将所述时钟频率对应的时间量子的数量降低至所述时间量子标准范围值内的操作;

第三处理模块,用于在确定所述时钟频率需要分频处理后,根据根据所述时钟频率对应的时间量子的数量和所述时间量子标准范围值计算分频系数,并根据所述分频系数确定分频处理后的时间量子、以及所述位时间内包括的所述时间量子的数量;

第一参数确定模块,用于根据所述时间量子、所述时间量子的数量、所述采样时间点以及预先确定的传播时延,确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值;

第二参数确定模块,用于根据所述第二相位缓冲段参数的值,确定所述CAN总线的同步跳转宽度的值;

通信配置模块,用于根据所述传播段参数、所述第一相位缓冲段参数、所述第二相位缓冲段参数以及所述同步跳转宽度的值对所述CAN总线进行通信配置。

在一种可能的实现方式中,所述第一参数确定模块具体被配置为执行:

确定所述时间量子、预先确定的传播时延与传播段参数之间的第一等式关系;

确定同步段参数、所述传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及所述时间量子的数量之间的第二等式关系;所述同步段参数的值为第一预设值;

确定所述同步段参数、所述传播段参数、所述第一相位缓冲段参数、所述第二相位缓冲段参数以及所述采样时间点之间的第三等式关系;

根据所述第一等式关系、所述第二等式关系以及所述第三等式关系确定所述传播段参数、所述第一相位缓冲段参数以及所述第二相位缓冲段参数的值。

在一种可能的实现方式中,所述第一处理模块具体被配置为执行:

根据所述波特率的倒数确定所述标准输入信息的位时间;

根据所述时钟频率的倒数确定所述标准输入信息的时间量子;

根据所述位时间与所述时钟频率的比值,确定在所述位时间内包括的所述时间量子的数量。

在一种可能的实现方式中,所述第二处理模块具体被配置为执行:

确定所述时间量子的数量是否大于所述时间量子标准范围值;

若确定所述时间量子的数量大于所述时间量子标准范围值的最大值,则需要对所述时钟频率进行分频处理,且分频处理后的时钟频率对应的时间量子的数量位于所述时间量子标准范围值内;

若确定所述时间量子的数量在所述时间量子标准范围值内,则不需要对所述时钟频率进行分频处理。

在一种可能的实现方式中,在确定所述时钟频率需要分频处理后,所述第三处理模块具体被配置为执行:

获取所述时间量子标准范围值内的所有整数值;

依次将每个所述整数值作为除数,获取使所述时钟频率对应的时间量子的数量与所述除数的比值为整数的数值作为分频系数;

确定所述分频系数对应的分频处理后的时钟频率,并根据所述分频处理后的时钟频率以及所述位时间确定所述位时间内包括的分频处理后的时间量子的数量;

确定所述时间量子的数量是否为整数;

若确定所述时间量子的数量不为整数,重新获取使所述时钟频率对应的时间量子的数量与所述除数的比值为整数的数值作为分频系数。

在一种可能的实现方式中,所述第二参数确定模块具体被配置为执行:

确定所述第二相位缓冲段参数的值是否小于所述第二预设值;

若确定所述第二相位缓冲段参数的值小于所述第二预设值,则将所述第二相位缓冲段参数的值作为所述CAN总线的同步跳转宽度的值;

若确定所述第二相位缓冲段参数的值大于或等于所述第二预设值,则将所述第二预设值作为所述CAN总线的同步跳转宽度的值。

在一种可能的实现方式中,所述装置还包括传播时延预处理模块;在根据所述时间量子、所述时间量子的数量、所述采样时间点以及预先确定的传播时延,确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值之前,所述传播时延预处理模块被配置为执行:

确定所述标准输入信息中是否包含传播时延信息;

若确定所述标准输入信息中包含传播时延信息,则根据单位转换关系将所述传播时延信息转换为标准传播时延,并将所述标准传播时延作为预先确定的传播时延;所述标准传播时延的单位为预设时延单位;

若确定所述标准输入信息中不包含传播时延信息,则获取预设的默认传播时延,并将所述默认传播时延作为预先确定的传播时延。

第三方面,本发明提供一种电子设备,该电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述任一项所述的CAN总线波特率配置参数的计算方法

第四方面,本发明提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述任一项所述的CAN总线波特率配置参数的计算方法。

本发明实施例提供的CAN总线波特率配置参数的设置方法在应用时,首先,获取CAN总线的波特率、CAN控制器的时钟频率以及采样时间点作为标准输入信息;其次,根据波特率和时钟频率确定该标准输入信息对应的位时间、时间量子以及在一个位时间内包括的时间量子的数量;再次,根据时间量子的数量和预设的时间量子标准范围值的大小关系确定时钟频率是否需要分频处理,若确定需要分频处理,则根据时钟频率和时间量子标准范围值计算分频系数,并根据分频系数确定分频处理后的时间量子、以及一个位时间内包括的分频处理后的时间量子的数量;之后,根据时间量子、时间量子的数量、采样时间点以及预先确定的传播时长,确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值;之后,根据第二相位缓冲段参数的值确定CAN总线的同步跳转宽度的值;最后根据传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及同步跳转宽度的值对CAN总线进行通信配置;本发明仅根据获取的CAN总线的波特率、CAN控制器的时钟频率以及采样时间点就可以计算得到CAN总线通信配置时需要的传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及同步跳转宽度的值,与传统的人工计算CAN总线波特率配置参数的方法相比,本发明的方法在计算配置参数时更加简单,计算效率更高。

附图说明

图1为CAN总线通信在理想情况下一个位时间内采样点的位置示意图;

图2为CAN总线通信在实际通信过程中一个位时间内采样点的位置示意图;

图3为本发明实施例提供的一种CAN总线波特率配置参数的设置方法的方法流程图;

图4为本发明实施例提供的一种CAN总线波特率配置参数的设置装置的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。另外,“基于”或“根据”的使用意味着开放和包容性,因为“基于”或“根据”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。

CAN总线(Controller Area Network,控制器局域网总线)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是目前应用最广泛的现场总线之一。例如:CAN总线可用于汽车中各种不同元件之间的通信。

CAN总线以数据帧的形式进行通信,每个数据帧都包含多个数据位,每个数据位都有自己的采样点。在发送端,CAN控制器会在每个数据位的采样点上发送数据,而接收端会在相同的采样点上对数据进行采样和解码。由于CAN总线上的数据传输速率很快,且采样点的作用是确保数据能够被正确地解码,因此如果采样点不正确,就会导致数据误码或丢失,从而影响CAN通信的稳定性和可靠性。所以,采样点是确保CAN通信正常运行的重要因素之一,为保证数据在传输过程中被准确采样和解码,实现高效稳定的通信,在正确的时间点对数据进行采样是至关重要的。

如图1所示,在CAN通信中,在一个位时间内,可以将该位时间划分为四个非重叠的时间段,分别是同步段(synchronization segment,Sync_Seg)、传播段(propagation timesegment,Prop_Seg)、第一相位缓冲段(phase buffer segment 1,Phase_Seg1)以及第二相位缓冲段(phase buffer segment 2,Phase_Seg2)。

每个时间段由多个时间量子(Time quantum,Tq)组成,其中,Tq是从振荡器周期导出的基准时间单位。

如图1所示,在CAN总线国际标准(ISO11898)中规定了,同步段(Sync_Seg)固定为由1个Tq组成,传播段(Prop_Seg)由1~8个Tq组成,第一相位缓冲段(Phase_Seg1)由1~8个Tq组成,第二相位缓冲段(Phase_Seg2)由2~8个Tq组成。且采样点(sample point)位于第一相位缓冲段(Phase_Seg1)的结尾,其具体数值由CAN通信的需求方指定,一般设置在一个位时间的70%-85%的位置。

如图2所示,在实际通信过程中,由于发送端和接收端存在时间差,需要对发送端和接收端进行同步处理。具体的,除了数据帧的起始位采样硬件同步的方式进行同步处理外,该数据帧的其他数据位均采用重同步的方式。在重同步时,需要依据同步跳转宽度(SJW)延长第一相位缓冲段(Phase_Seg1)或缩短第二相位缓冲段(Phase_Seg2),从而保证接收节点和发送节点在处理同一个位数据时采样点一致,进而保证数据传输的稳定性和可靠性。

例如:在一个数据位内,发送端的采样点(sample point)位于第一相位缓冲段(Phase_Seg1)的结尾,接收端的采样点的位置与发送端的采样点的位置相对,在图2中的实际采样点(actual sample point)处,由于发送端和接收端存在时间差,此时的实际采样点(actual sample point)并不在第一相位缓冲段(Phase_Seg1)的结尾,导致接收端与发送端在处理同一个位数据时采样点并不相同;因此,为了保证接收端与发送端采样点对应的数据的一致性,需要将实际采样点(actual sample point)向后移动到接收端对应的第一相位缓冲段(Phase_Seg1)的结尾,即图2中原始采样点(original sample point)的位置,而实际采样点(actual sample point)与原始采样点(original sample point)之间的距离为同步跳转宽度(SJW)。

由上可知,为了能得到CAN总线通信时准确的采样点,在对CAN总线进行配置时,需要提前计算得到传播段(Prop_Seg)、第一相位缓冲段(Phase_Seg1)、第二相位缓冲段(Phase_Seg2)以及同步跳转宽度(SJW)四个配置参数的值。

而现有技术中,在对CAN总线波特率进行配置时,一般采用人工计算的方式计算传播段、第一相位缓冲段、第二相位缓冲段以及同步跳转宽度四个配置参数的值,不仅计算过程繁琐,而且计算效率低。

为了解决现有的人工计算CAN总线波特率配置参数时计算过程繁琐以及计算效率低的问题,本发明实施例提供了一种CAN总线波特率配置参数的设置方法和装置。

如图3所示,第一方面,本发明实施例提供了一种CAN总线波特率配置参数的设置方法,该方法包括:

步骤101、获取标准输入信息。

其中,标准输入信息包括CAN总线的波特率、CAN控制器的时钟频率以及采样时间点。

CAN总线的波特率是指CAN总线每秒钟传输的比特数,通常用bps表示。例如CAN总线通常可以支持以下几种波特率:1Mbps、500kbps、250kbps、125kbps、100kbps、50kbps、和20kbps。

CAN控制器的时钟频率指的是CAN控制器中包括的时钟源频率,即每秒钟发生的周期数,通常以Hz表示。例如:CAN控制器的时钟频率可以设置为16MHz或20MHz。

采样时间点即采样点,是读取CAN总线的电平并将电平解释为比特位的逻辑值的时间点。

在本实施例中,标准输入信息中波特率、时钟频率以及采样时间点依次排列并以顿号、逗号或空格等符号分隔开,便于计算机程序识别。标准输入信息可以是用户按照预设的标准输入格式直接输入的数据,也可以是在获取其他格式的输入信息后,将其他格式的输入信息按照预设的单位转换规则转化为标准输入格式后的输入信息。

其中,标准输入格式中波特率的单位为bps、时钟频率的单位为Hz、采样时间点的格式为小数。

例如:当需求方需要的采样时间点为70%时,在标准输入格式中采样点以0.7表示。

当用户的输入信息与标准输入信息的格式不一致时,提示输入无效,并显示标准输入信息的示例,以提示用户输入正确的输入信息。

步骤102、根据波特率和时钟频率,确定标准输入信息的位时间、时间量子以及在位时间内包括的时间量子的数量。

其中,位时间为一个比特位在CAN总线传输需要的时间,即一个二进制位在总线传输所需要的时间。

位时间仅与波特率相关,当获取到波特率后,可以直接计算得到位时间的值。

其中,每个位时间包括多个时间量子。

例如:如图1所示,该位时间由同步段(Sync_Seg)、传播段(Prop_Seg)、第一相位缓冲段(Phase_Seg1)以及第二相位缓冲段(Phase_Seg2)组成,同步段包括1个时间量子(Tq),传播段包括1~8个时间量子,第一相位缓冲段包括1~8个时间量子,第二相位缓冲段包括2~8个时间量子。

其中,时间量子为时钟频率的倒数。

也就是说时间量子的值仅与时钟频率相关,当获取得到时钟频率后,可以直接计算得到时间量子的值。

其中,每个位时间包括的时间量子的数量仅与位时间和时间量子相关,当根据波特率计算得到位时间,根据时钟频率计算得到时间量子之后,根据位时间和时间量子就可以计算得到时间量子的数量。

步骤103、根据时间量子的数量与预设的时间量子标准范围值的大小关系确定时钟频率是否需要分频处理。

其中,分频处理为将时钟频率对应的时间量子的数量降低至时间量子标准范围值内的操作。

具体的,在CAN总线国际标准(ISO11898)中规定了,一个位时间内包括的时间量子的数量应该在8~25之间,当时间量子的数量不在8~25的范围内时,需要对时钟频率进行分频处理。

在本实施例中,预设的时间量子标准范围值为8~25,当步骤102中计算得到的时间量子的数量在8~25内时,不需要对时钟频率进行分频处理,当时间量子的数量不在8~25的范围内时,需要对时钟频率进行分频处理。

在对时钟频率进行分频处理时,分频后的时钟频率的时间量子的数量需要在8~25内,且时间量子的数量的值越大,采样时间点越精确。

步骤104、若确定时钟频率需要分频处理,则根据时钟频率对应的时间量子的数量和时间量子标准范围值计算分频系数,并根据分频系数确定分频处理后的时间量子、以及位时间内包括的时间量子的数量。

具体的,当时间量子的数量不在8~25的范围内时,说明当前的时钟频率需要进行分频处理。时间量子的数量和分频系数均为整数,因此,在分频后的时钟频率对应的时间量子的数量需要满足的时间量子标准范围值时,可以通过计算使时钟频率与目标时间量子的数量的比值为整数的值,将比值为整数的值作为分频系数,根据该分频系数对当前的时钟频率进行分频,得到分频后的时钟频率,根据分频后的时钟频率确定分频处理后的时间量子,以及在一个位时间内分频处理后的时间量子的数量。

当时间量子的数量在8~25的范围内时,说明当前的时钟频率不需要进行分频处理。

步骤105、根据时间量子、时间量子的数量、采样时间点以及预先确定的传播时延,确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值。

具体的,根据预先确定的传播时延的传播时延与时间量子的比值可以确定传播段参数的值。

根据一个位时间可以由同步段、传播段、第一相位缓冲段以及第二相位缓冲段组成,同步段固定为由1个时间量子组成,可以确定,1与传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值的总和等于时间量子的数量。

根据采样点的计算公式可以确定,采样时间点等于1和传播段参数、第一相位缓冲段参数的值的总和,与时间量子的数量的比值。

在时间量子、时间量子的数量、采样时间点以及预先确定的传播时延均确定的情况下,可以直接计算得到传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值。

其中,在当前的时钟频率不需要进行分频处理时,时间量子以及时间量子的数量均为当前时钟频率对应的数据;

在当前的时钟频率需要分频处理时,需要根据计算的分频系数确定分频后的时钟频率,时间量子以及时间量子的数量为分频后的时钟频率对应的数据。

步骤106、根据第二相位缓冲段参数的值,确定CAN总线的同步跳转宽度的值。

在本实施例中,同步跳转宽度的取值范围为1~4之间的整数,当第二相位缓冲段参数的值小于4时,令同步跳转宽度的值等于第二相位缓冲段参数的值;当第二相位缓冲段参数的值大于或等于4时,令同步跳转宽度的值等于4。

步骤107、根据传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及同步跳转宽度的值对CAN总线进行通信配置。

具体的,由于CAN总线波特率配置参数包括传播段、第一相位缓冲段、第二相位缓冲段以及同步跳转宽度四个配置参数,因此在步骤105中确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值,以及步骤106中确定的同步跳转宽度的值之后,即可对CAN总线进行通信配置。

本发明实施例提供的CAN总线波特率配置参数的设置方法在应用时,首先,获取CAN总线的波特率、CAN控制器的时钟频率以及采样时间点作为标准输入信息;其次,根据波特率和时钟频率确定该标准输入信息对应的位时间、时间量子以及在一个位时间内包括的时间量子的数量;再次,根据时间量子的数量和预设的时间量子标准范围值的大小关系确定时钟频率是否需要分频处理,若确定需要分频处理,则根据时钟频率和时间量子标准范围值计算分频系数,并根据分频系数确定分频处理后的时间量子、以及一个位时间内包括的分频处理后的时间量子的数量;之后,根据时间量子、时间量子的数量、采样时间点以及预先确定的传播时长,确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值;之后,根据第二相位缓冲段参数的值确定CAN总线的同步跳转宽度的值;最后根据传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及同步跳转宽度的值对CAN总线进行通信配置。

本发明仅根据获取的CAN总线的波特率、CAN控制器的时钟频率以及采样时间点就可以计算得到CAN总线通信配置时需要的传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及同步跳转宽度的值,与传统的人工计算CAN总线波特率配置参数的方法相比,本发明的方法在计算配置参数时更加简单,计算效率更高。

通过本发明的方法计算CAN波特率配置参数时,仅需要用户输入CAN总线的波特率、CAN控制器的时钟频率以及采样时间点三个数据,即可自动计算得到CAN波特率配置参数,无需操作人员了解CAN总线的通信原理,对操作人员的水平要求较低,且能避免因操作人员的计算错误导致对CAN总线通信配置出错的情况。

进一步的,根据时间量子、时间量子的数量、采样时间点以及预先确定的传播时延,确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值,具体包括:

确定时间量子、预先确定的传播时延与传播段参数之间的第一等式关系。

其中,第一等式关系具体为:

其中,Prop_Seg表示传播段参数,Delay表示预先确定的传播时延,Tq表示时间量子。

确定同步段参数、传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及时间量子的数量之间的第二等式关系。

其中,同步段参数的值为第一预设值,在本实施例中第一预设值为1。

其中,第二等式关系具体为:

1+Prop_Seg+Phase_Seg1+Phase_Seg2=Q(2);

其中,Phase_Seg1表示第一相位缓冲段参数,Phase_Seg2表示第二相位缓冲段参数,Q表示时间量子的数量。

确定同步段参数、传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及采样时间点之间的第三等式关系。

其中,第三等式关系具体为:

其中,P表示采样时间点。

根据第一等式关系、第二等式关系以及第三等式关系确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值。

具体的,第一等式关系、第二等式关系以及第三等式关系组成一个三元一次方程组,求解该方程组即可得到传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值。

进一步的,根据波特率和时钟频率,确定标准输入信息的位时间、时间量子以及在位时间内包括的时间量子的数量,具体包括:

根据波特率的倒数确定标准输入信息的位时间。

其中,位时间等于波特率的倒数,而波特率是标准输入信息中直接获取得到的已知数据,因此可以计算得到位时间的值。

根据时钟频率的倒数确定标准输入信息的时间量子。

其中,时间量子等于时钟频率的倒数,而时钟频率是标准输入信息中直接获取得到的已知数据,因此可以计算得到时间量子的值。

根据位时间与时钟频率的比值,确定在位时间内包括的时间量子的数量。

其中,时间量子的数量等于位时间与时钟频率的比值,而位时间已通过波特率计算得到,时间量子已通过时钟频率计算得到,因此可以计算得到一个位时间内时间量子的数量。

进一步的,根据时间量子的数量与预设的时间量子标准范围值的大小关系确定时钟频率是否需要分频处理,具体包括:

确定时间量子的数量是否大于时间量子标准范围值。

其中,根据CAN总线国际标准的规定,时间量子标准范围值为8~25,判断时间量子的数量是否超出8~25的范围,即判断时间量子的数量是否大于8~25的最大值。

若确定时间量子的数量大于时间量子标准范围值的最大值,则需要对时钟频率进行分频处理,且分频处理后的时钟频率对应的时间量子的数量位于时间量子标准范围值内。

具体的,在时间量子的数量大于25时,确定需要对当前的时钟频率进行分频处理。且分频处理需要满足的要求是:对当前的时钟频率分频处理后的目标时钟频率对应的时间量子的数量应该位于8~25内。

若确定时间量子的数量在时间量子标准范围值内,则不需要对时钟频率进行分频处理。

具体的,在时间量子的数量在8~25内时,不需要对当前的时钟频率分频处理。

进一步的,根据时钟频率对应的时间量子的数量和时间量子标准范围值计算分频系数,并根据分频系数确定分频处理后的时间量子、以及位时间内包括的时间量子的数量,具体包括:

获取时间量子标准范围值内的所有整数值。

其中,时间量子需要为一个整数,那么我们需要先获取时间量子标准范围值内的所以整数值。

也就是说获取8~25内的包括边界值8与25在内的所有整数值。

依次将每个整数值作为除数,获取使时钟频率对应的时间量子的数量与除数的比值为整数的数值作为分频系数。

具体的,以当前的时钟频率对应的时间量子的数量为被除数,依次以时间量子标准范围值内的每一个整数值为除数,获取计算结果为整数的数值作为分频系数,此处计算可以通过循环语句实现。

确定分频系数对应的分频处理后的时钟频率,并根据分频处理后的时钟频率以及位时间确定位时间内包括的分频处理后的时间量子的数量。

其中,分频处理后的时钟频率等于分频处理前的时钟频率与分频系数的比值。

分频处理后的时间量子等于分频处理后的时钟频率的倒数,分频处理后的时间量子的数量等于位时间与分频处理后的时间量子的比值。

确定时间量子的数量是否为整数。

其中,由于时间量子的数量需要为整数,因此在分频处理之后,需要确定确定分频处理后的时间量子的数量为整数,才能保证分频处理的正确性。

若确定时间量子的数量不为整数,重新获取使时钟频率对应的时间量子的数量与除数的比值为整数的数值作为分频系数。

其中,当分频处理后的时间量子的数量不为整数时,说明当前的分频系数出错,需要重新获取使时钟频率对应的时间量子的数量与除数的比值为整数的数值作为新的分频系数。

进一步的,根据第二相位缓冲段参数的值与第二预设值的大小,确定CAN总线的同步跳转宽度的值,具体包括:

确定第二相位缓冲段参数的值是否小于第二预设值。

其中,同步跳转宽度的取值范围为1~4之间的整数,在本实施例中,第二预设值设置为4。

若确定第二相位缓冲段参数的值小于第二预设值,则将第二相位缓冲段参数的值作为CAN总线的同步跳转宽度的值。

具体的,当第二相位缓冲段参数的值小于4时,令同步跳转宽度的值等于第二相位缓冲段参数的值。

若确定第二相位缓冲段参数的值大于或等于第二预设值,则将第二预设值作为CAN总线的同步跳转宽度的值。

具体的,当第二相位缓冲段参数的值大于或等于4时,令同步跳转宽度的值等于4。

传播时延信息可以包含在标准输入信息中,与CAN总线的波特率、CAN控制器的时钟频率以及采样时间点一同作为输入参数;传播时延信息也可以是预设的默认传播时延。

进一步的,在根据时间量子、时间量子的数量、采样时间点以及预先确定的传播时延,确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值之前,方法还包括:

确定标准输入信息中是否包含传播时延信息。

具体的,在对标准输入信息进行解析时,可以确定输入参数中是否包括传播时延信息。

若确定标准输入信息中包含传播时延信息,则根据单位转换关系将传播时延信息转换为标准传播时延,并将标准传播时延作为预先确定的传播时延。

其中,标准传播时延的单位为预设时延单位。

具体的,当确定标准输入信息中包含传播时延信息时,需要进一步确定传播时延信息与预设时延单位是否一致,若单位不一致,则需要根据单位转换关系将传播时延信息转化为标准传播时延。之后才能将标准传播时延作为预先确定的传播时延参与传播段参数的计算。

若确定标准输入信息中不包含传播时延信息,则获取预设的默认传播时延,并将默认传播时延作为预先确定的传播时延。

具体的,当确定标准输入信息中不包含传播时延信息时,则直接以预设的默认传播时延作为预先确定的传播时延参与传播段参数的计算。

本发明实施例提供的CAN总线波特率配置参数的设置方法在应用时,传播时延可以为用户输入的目标传播时延,也可以为预先设定的默认传播时延,提高了配置参数计算的灵活性。

本发明只需要用户输入包括CAN总线的波特率、CAN控制器的时钟频率以及采样时间点的标准输入信息,或输入包括CAN总线的波特率、CAN控制器的时钟频率、采样时间点以及传播时延信息的标准输入信息的标准输入信息即可输出匹配的传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及同步跳转宽度的值用于CAN总线的通信配置,不仅操作简单、使用方便,而且计算速度快,计算准确率高。

在本发明中,当输入信息与标准输入信息不一致时,会提示正确的标准输入信息示例,以提示用户输入正确的输入信息,提高了用户的使用感受。

如图4所示,第二方面,本发明实施例提供了一种CAN总线波特率配置参数的设置装置,该装置包括:

数据输入模块201,用于获取标准输入信息;标准输入信息包括CAN总线的波特率、CAN控制器的时钟频率以及采样时间点;采样时间点为读取CAN总线的电平并将电平解释为比特位的逻辑值的时间点;

第一处理模块202,用于根据波特率和时钟频率,确定标准输入信息的位时间、时间量子以及在位时间内包括的时间量子的数量;位时间为一个比特位在CAN总线传输需要的时间;位时间包括多个时间量子,时间量子为时钟频率的倒数;

第二处理模块203,用于根据时间量子的数量与预设的时间量子标准范围值的大小关系确定时钟频率是否需要分频处理;分频处理为将时钟频率对应的时间量子的数量降低至时间量子标准范围值内的操作;

第三处理模块204,用于在确定时钟频率需要分频处理后,根据根据时钟频率对应的时间量子的数量和时间量子标准范围值计算分频系数,并根据分频系数确定分频处理后的时间量子、以及位时间内包括的时间量子的数量;

第一参数确定模块205,用于根据时间量子、时间量子的数量、采样时间点以及预先确定的传播时延,确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值;

第二参数确定模块206,用于根据第二相位缓冲段参数的值,确定CAN总线的同步跳转宽度的值;

通信配置模块207,用于根据传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及同步跳转宽度的值对CAN总线进行通信配置。

进一步的,第一参数确定模块205具体被配置为执行:

确定时间量子、预先确定的传播时延与传播段参数之间的第一等式关系;

确定同步段参数、传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及时间量子的数量之间的第二等式关系;同步段参数的值为第一预设值;

确定同步段参数、传播段参数、第一相位缓冲段参数、第二相位缓冲段参数以及采样时间点之间的第三等式关系;

根据第一等式关系、第二等式关系以及第三等式关系确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值。

进一步的,第一处理模块202具体被配置为执行:

根据波特率的倒数确定标准输入信息的位时间;

根据时钟频率的倒数确定标准输入信息的时间量子;

根据位时间与时钟频率的比值,确定在位时间内包括的时间量子的数量。

进一步的,第二处理模块203具体被配置为执行:

确定时间量子的数量是否大于时间量子标准范围值;

若确定时间量子的数量大于时间量子标准范围值的最大值,则需要对时钟频率进行分频处理,且分频处理后的时钟频率对应的时间量子的数量位于时间量子标准范围值内;

若确定时间量子的数量在时间量子标准范围值内,则不需要对时钟频率进行分频处理。

进一步的,在确定时钟频率需要分频处理后,第三处理模块204具体被配置为执行:

获取时间量子标准范围值内的所有整数值;

依次将每个整数值作为除数,获取使时钟频率对应的时间量子的数量与除数的比值为整数的数值作为分频系数;

确定分频系数对应的分频处理后的时钟频率,并根据分频处理后的时钟频率以及位时间确定位时间内包括的分频处理后的时间量子的数量;

确定时间量子的数量是否为整数;

若确定时间量子的数量不为整数,重新获取使时钟频率对应的时间量子的数量与除数的比值为整数的数值作为分频系数。

进一步的,第二参数确定模块206具体被配置为执行:

确定第二相位缓冲段参数的值是否小于第二预设值;

若确定第二相位缓冲段参数的值小于第二预设值,则将第二相位缓冲段参数的值作为CAN总线的同步跳转宽度的值;

若确定第二相位缓冲段参数的值大于或等于第二预设值,则将第二预设值作为CAN总线的同步跳转宽度的值。

进一步的,装置还包括传播时延预处理模块;在根据时间量子、时间量子的数量、采样时间点以及预先确定的传播时延,确定传播段参数、第一相位缓冲段参数以及第二相位缓冲段参数的值之前,传播时延预处理模块被配置为执行:

确定标准输入信息中是否包含传播时延信息;

若确定标准输入信息中包含传播时延信息,则根据单位转换关系将传播时延信息转换为标准传播时延,并将标准传播时延作为预先确定的传播时延;标准传播时延的单位为预设时延单位;

若确定标准输入信息中不包含传播时延信息,则获取预设的默认传播时延,并将默认传播时延作为预先确定的传播时延。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

第三方面,本发明实施例还提供了一种电子设备,电子设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现本发明实施例中的CAN总线波特率配置参数的设置方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现本发明实施例中的CAN总线波特率配置参数的设置方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种更新设备设置的方法及设备设置装置
  • 一种I2C总线装置及一种I2C信号保护方法
  • 一种CAN总线波特率自适应设置方法
  • 一种异步串行总线的波特率监测方法及装置
技术分类

06120116501001