发明内容
本发明的目的是提供一种双速率CAN FD的波特率测量方法及装置,以测量具有两种通讯速率的CAN FD总线信号的波特率,提升用户体验。
为解决上述技术问题,本发明提供一种双速率CAN FD的波特率测量方法,包括:
获取位宽信息;
记录已获取的位宽信息中的第一最大位宽信息、次大位宽信息、最大位宽结束时间和第一最小位宽信息;
记录当前位宽结束时间;
判断是否满足所述次大位宽信息除以所述第一最小位宽信息大于等于2、所述当前位宽结束时间减去所述第一最大位宽结束时间大于等于16倍的所述第一最小位宽信息且所述第一最大位宽信息除以所述第一最小位宽信息大于等于第一阈值;其中,所述第一阈值大于等于5;
若是,则计算第一波特率,根据所述第一波特率计算并记录第二最大位宽信息和第二最小位宽信息;
再次获取位宽信息;
根据已再次获取的位宽信息更新或保持所述第二最大位宽信息和/或所述第二最小位宽信息;
判断是否满足所述第二最大位宽信息大于等于7除以所述第一波特率且所述第二最小位宽信息乘以第二阈值小于等于1除以所述第一波特率;
若是,则计算第二波特率;
输出所述第一波特率和所述第二波特率。
可选的,所述判断是否满足所述次大位宽信息除以所述第一最小位宽信息大于等于2、所述当前位宽结束时间减去所述第一最大位宽结束时间大于等于16倍的所述第一最小位宽信息且所述第一最大位宽信息除以所述第一最小位宽信息大于等于第一阈值之后,还包括:
若不满足所述次大位宽信息除以所述第一最小位宽信息大于等于2、所述当前位宽结束时间减去所述第一最大位宽结束时间大于等于16倍的所述第一最小位宽信息且所述第一最大位宽信息除以所述第一最小位宽信息大于等于第一阈值,则判断所述次大位宽信息除以所述第一最小位宽信息是否大于等于3;
若所述次大位宽信息除以所述第一最小位宽信息大于等于3,则执行所述计算第一波特率并根据所述第一波特率计算第二最大位宽信息和第二最小位宽信息的步骤;
若所述次大位宽信息除以所述第一最小位宽信息不大于等于3,则执行所述获取位宽信息的步骤,用于获取下一位宽信息。
可选的,所述输出所述第一波特率和所述第二波特率之前,还包括:
更新所述当前位宽结束时间;
重绘所述第一最大位宽结束时间至更新的所述当前位宽结束时间之间的波形;
对重绘的所述波形进行CAN FD解码;
判断所述解码是否成功;
若是,则执行所述输出所述第一波特率和所述第二波特率的步骤;
若否,则判断所述第二最大位宽信息是否大于等于10除以第一波特率;
若所述第二最大位宽信息不大于等于10除以第一波特率,则执行所述再次获取位宽信息的步骤;
若所述第二最大位宽信息大于等于10除以第一波特率,则用所述第二最大位宽信息更新所述第一最大位宽信息,执行所述获取位宽信息的步骤。
可选的,所述判断是否满足所述第二最大位宽信息大于等于7除以所述第一波特率且所述第二最小位宽信息乘以第二阈值小于等于1除以所述第一波特率之后,还包括:
若不满足所述第二最大位宽信息大于等于7除以所述第一波特率且所述第二最小位宽信息乘以第二阈值小于等于1除以所述第一波特率,则执行所述判断所述第二最大位宽信息是否大于等于10除以第一波特率的步骤。
可选的,所述记录已获取的位宽信息中的第一最大位宽信息、次大位宽信息、最大位宽结束时间和第一最小位宽信息,包括:
判断当前的位宽信息是否大于预设或已记录的所述第一最大位宽信息;
若是,则更新所述第一最大位宽信息和所述最大位宽结束时间或更新所述第一最大位宽信息、所述次大位宽信息和所述最大位宽结束时间,执行所述记录当前位宽结束时间的步骤;
若否,判断当前的位宽信息是否大于预设或已记录的所述次大位宽信息;
若当前的位宽信息大于预设或已记录的所述次大位宽信息,则更新所述次大位宽信息,执行所述记录当前位宽结束时间的步骤;
若当前的位宽信息不大于预设或已记录的所述次大位宽信息,则判断当前的位宽信息是否小于预设或已记录的所述第一最小位宽信息且大于预设或已记录的所述第一最小位宽信息除以第三阈值;
若当前的位宽信息小于预设或已记录的所述第一最小位宽信息且大于预设或已记录的所述第一最小位宽信息除以第三阈值,则更新所述第一最小位宽信息,执行所述记录当前位宽结束时间的步骤;
若当前的位宽信息不小于预设或已记录的所述第一最小位宽信息,和/或当前的位宽信息不大于预设或已记录的所述第一最小位宽信息除以第三阈值,则执行所述记录当前位宽结束时间的步骤。
可选的,所述根据已再次获取的位宽信息更新或保持所述第二最大位宽信息和/或所述第二最小位宽信息,包括:
判断当前的位宽信息是否小于已记录的所述第二最小位宽信息且大于已记录的所述第二最小位宽信息除以第四阈值;
若是,则更新所述第二最小位宽信息,执行所述判断是否满足所述第二最大位宽信息大于等于7除以所述第一波特率且所述第二最小位宽信息乘以第二阈值小于等于1除以所述第一波特率的步骤;
若否,则判断当前的位宽信息是否大于已记录的所述第二最大位宽信息;
若当前的位宽信息大于已记录的所述第二最大位宽信息,则更新所述第二最大位宽信息,执行所述判断是否满足所述第二最大位宽信息大于等于7除以所述第一波特率且所述第二最小位宽信息乘以第二阈值小于等于1除以所述第一波特率的步骤;
若当前的位宽信息不大于已记录的所述第二最大位宽信息,则执行所述判断是否满足所述第二最大位宽信息大于等于7除以所述第一波特率且所述第二最小位宽信息乘以第二阈值小于等于1除以所述第一波特率的步骤。
可选的,所述获取位宽信息和/或所述再次获取位宽信息,还包括:
当电平信号在预定时间间隔内未产生边沿跳变时,按所述预定时间间隔添加电平信息。
此外,本发明还提供了一种双速率CAN FD的波特率测量装置,包括:
第一获取模块,用于获取位宽信息;
第一记录模块,用于记录已获取的位宽信息中的第一最大位宽信息、次大位宽信息、最大位宽结束时间和第一最小位宽信息;
第二记录模块,用于记录当前位宽结束时间;
第一判断模块,用于判断是否满足所述次大位宽信息除以所述第一最小位宽信息大于等于2、所述当前位宽结束时间减去所述第一最大位宽结束时间大于等于16倍的所述第一最小位宽信息且所述第一最大位宽信息除以所述第一最小位宽信息大于等于第一阈值;其中,所述第一阈值大于等于5;若是,则向第一计算模块发送第一计算信号;
第一计算模块,用于接收所述第一计算信号,计算第一波特率,根据所述第一波特率计算并记录第二最大位宽信息和第二最小位宽信息;
第二获取模块,用于再次获取位宽信息;
第一更新模块,用于根据已再次获取的位宽信息更新或保持所述第二最大位宽信息和/或所述第二最小位宽信息;
第二判断模块,用于判断是否满足所述第二最大位宽信息大于等于7除以所述第一波特率且所述第二最小位宽信息乘以第二阈值小于等于1除以所述第一波特率;若是,则向第二计算模块发送第二计算信号;
第二计算模块,用于接收所述第二计算信号,计算第二波特率;
输出模块,用于输出所述第一波特率和所述第二波特率。
可选的,该装置还包括:
第三判断模块,用于若不满足所述次大位宽信息除以所述第一最小位宽信息大于等于2、所述当前位宽结束时间减去所述第一最大位宽结束时间大于等于16倍的所述第一最小位宽信息且所述第一最大位宽信息除以所述第一最小位宽信息大于等于第一阈值,则判断所述次大位宽信息除以所述第一最小位宽信息是否大于等于3;若是,则向所述第一计算模块发送所述第一计算信号;若否,则向所述第一获取模块发送获取信号,用于获取下一位宽信息。
可选的,该装置还包括:
第二更新模块,用于更新所述当前位宽结束时间;
重绘模块,用于重绘所述第一最大位宽结束时间至更新的所述当前位宽结束时间之间的波形;
解码模块,用于对重绘的所述波形进行CAN FD解码;
第四判断模块,用于判断所述解码是否成功;若是,则向所述输出模块发送输出信号;若否,则向第五判断模块发送判断信号;
第五判断模块,用于接收所述判断信号,判断所述第二最大位宽信息是否大于等于10除以第一波特率;若否,则向所述第二获取模块发送再次获取信号,用于获取下一位宽信息;
第三更新模块,用于若所述第二最大位宽信息大于等于10除以第一波特率,则用所述第二最大位宽信息更新所述第一最大位宽信息,则向所述第一获取模块发送所述获取信号,用于获取下一位宽信息。
本发明所提供的一种双速率CAN FD的波特率测量方法,包括:获取位宽信息;记录已获取的位宽信息中的第一最大位宽信息、次大位宽信息、最大位宽结束时间和第一最小位宽信息;记录当前位宽结束时间;判断是否满足所述次大位宽信息除以所述第一最小位宽信息大于等于2、所述当前位宽结束时间减去所述第一最大位宽结束时间大于等于16倍的所述第一最小位宽信息且所述第一最大位宽信息除以所述第一最小位宽信息大于等于第一阈值;其中,所述第一阈值大于等于5;若是,则计算第一波特率,根据所述第一波特率计算并记录第二最大位宽信息和第二最小位宽信息;再次获取位宽信息;根据已再次获取的位宽信息更新或保持所述第二最大位宽信息和/或所述第二最小位宽信息;判断是否满足所述第二最大位宽信息大于等于7除以所述第一波特率且所述第二最小位宽信息乘以第二阈值小于等于1除以所述第一波特率;若是,则计算第二波特率;输出所述第一波特率和所述第二波特率;
可见,本发明通过第一最大位宽信息、次大位宽信息、最大位宽结束时间、第一最小位宽信息和当前位宽结束时间这些数值间的比较可以确定仲裁域最小位宽,从而计算出第一波特率也就是仲裁域的波特率;通过第二最大位宽信息、第二最小位宽信息和第一波特率这些数值间的比较可以确定数据域最小位宽,从而计算出第二波特率也就是数据域的波特率,以达到测量具有两种通讯速率的CAN FD总线信号的波特率的目的,提升了用户体验。此外,本发明还提供了一种双速率CAN FD的波特率测量装置,同样具有上述有益效果。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图2、图3和图4,图2为本发明实施例所提供的一种双速率CAN FD的波特率测量方法的流程图;图3为本发明实施例所提供的一种双速率CAN FD的波特率测量方法的电平信息添加的示意图;图4为本发明实施例所提供的一种双速率CAN FD的波特率测量方法的量化位宽比值的示意图。该方法可以包括:
步骤101:获取位宽信息。
其中,位宽信息可以为相邻的两个边沿跳变信息的时间相减得到。而对于边沿跳变信息的记录方式,也就是位宽信息的记录方式,考虑到总线长时间无报文出现的情况,也就是总线信号有可能出现长时间的隐性电平,如几秒长的时间。这个长时间的隐性电平如果一直不结束将不利于本发明对帧结束的判断,如总线上只出现1帧报文,这时报文结束后的信号一直没有边沿跳变,最后一段隐性电平的宽度将无法测量,也就判断不出帧结束的位置。可以增加对长时间不变的电平信号做记录的控制,可以当电平信号在预定时间间隔内未产生边沿跳变时,按预定时间间隔添加电平信息。由于CAN总线的最小通信速率为5KBPS,即一个逻辑位的时间为0.2mS,上述预定时间间隔可以选择大于等于3mS的数值,具体预定时间间隔的设置可以由设计人员或用户根据实用场景和用户需求自行设置,本实施例对此不受任何限制。如图3中Tm和Tm+1的位置所示,可以在电平信号超过4mS未产生边沿跳变时自动添加电平信息,也就是预定时间间隔为4mS。
步骤102:记录已获取的位宽信息中的第一最大位宽信息、次大位宽信息、最大位宽结束时间和第一最小位宽信息。
其中,本步骤的目的是记录已获取的位宽信息中的第一最大位宽信息(AMAX1)、次大位宽信息(AMAX2)、最大位宽结束时间(TMAX)和第一最小位宽信息(AMIN)。对于具体的记录方式,可以通过获取的当前位宽信息分别与已记录的AMAX1、AMAX2和AMIN比较的方式,选择是否更新AMAX1、AMAX2、TMAX和AMIN的数值;为了排除干扰信号的影响,也可以在当前位宽信息与AMIN比较中加入与AMIN/p的比较,也就是比较当前位宽信息是否小于AMIN且大于AMIN/p。通过前位宽信息是否大于AMIN/p的判断中第三阈值(p)的取值的设置,可以将小于AMIN的p分之一的宽度的干扰信号剔除。对于p的具体数值可以由设计人员或其他软件配置,可根据CAN总线不同的应用环境配置不同的值,典型取值可以为4。本实施例对此不做任何限制。
可以理解的是,对于本步骤中第一最大位宽信息、次大位宽信息、最大位宽结束时间和第一最小位宽信息的具体记录方式,本实施例不做任何限制。
步骤103:记录当前位宽结束时间。
其中,当前位宽结束时间可以用TBIT表示。
步骤104:判断是否满足次大位宽信息除以第一最小位宽信息大于等于2、当前位宽结束时间减去第一最大位宽结束时间大于等于16倍的第一最小位宽信息且第一最大位宽信息除以第一最小位宽信息大于等于第一阈值;其中,第一阈值大于等于5;若是,则进入步骤105。
其中,次大位宽信息除以第一最小位宽信息大于等于2、当前位宽结束时间减去第一最大位宽结束时间大于等于16倍的第一最小位宽信息且第一最大位宽信息除以第一最小位宽信息大于等于第一阈值,可以分别用AMAX2/AMIN>=2、TBIT-TMAX>=16*AMIN和AMAX1/AMIN>=m表示。对于第一阈值(m)的取值,由CAN总线的填充规则可知,如果测量起始点在帧起始后,那么只要检测到AMAX1/AMIN>=5就可以确定已检测到仲裁域的最小位宽,也就是m的取值为5,但考虑到总线信号位宽通常存在隐性位被显性位侵占而变小的情况,可以将m取大于5的数值,如可以将条件设为AMAX1/AMIN>=7。本实施例对此不受任何限制。
可以理解的是,本步骤的目的是通过AMAX2/AMIN>=2、TBIT-TMAX>=16*AMIN和AMAX1/AMIN>=m的条件限定,确定出仲裁域的最小位宽(AMIN),上述的限定条件对所有的标准CAN FD帧均适用。对于部分拓展CAN FD帧,可以在不满足上述限定条件的情况下,判断是否符合AMAX2/AMIN>=3;若是,则也可以确定出仲裁域的最小位宽,进行接下来的步骤;若否,则说明未确定出仲裁域的最小位宽,需要返回步骤101,继续获取位宽信息。
需要说明的是,本实施例中对于不满足AMAX2/AMIN>=2、TBIT-TMAX>=16*AMIN和AMAX1/AMIN>=m条件的情况,并未进行过多的描述,可以进行如上述是否满足AMAX2/AMIN>=3的判断,也可以直接返回步骤101继续获取位宽信息。可以根据本实施例所提供的方法使用环境中是否存在拓展CAN FD帧进行选择,本实施例对此不受任何限制。
对于本步骤中的AMAX2/AMIN>=2、TBIT-TMAX>=16*AMIN和AMAX1/AMIN>=m的三个限定条件,可以如本实施例所展示的在一个步骤中直接判断三个条件,也可以在多个步骤中分别判断上述三个条件,本实施例对此不受任何限制。
步骤105:计算第一波特率,根据第一波特率计算并记录第二最大位宽信息和第二最小位宽信息。
其中,尽管计算出的第一波特率可以是仲裁域的波特率也可以是数据域的波特率,但通过接下来的步骤可以将第一波特率为数据域的波特率的情况排除,确保输出的第一波特率为仲裁域的波特率。因此,对于最终的输出结果而言第一波特率为仲裁域的波特率(ABTR),上述AMIN为仲裁域的最小位宽信息。
可以理解的是,测量出仲裁域的最小位宽信息之后,由于信号变形的原因,不能将仲裁域的最小位宽信息(AMIN)直接作为仲裁域的波特率的周期1/ABTR。因此计算第一波特率,可以在第一最大位宽信息(AMAX1)之后开始,将后续的每一段位宽信息除以AMIN,舍去余数得到位宽比值N,共有i个N,如图4所示,再用公式(TBIT-TMAX)/(N1+N2+…+Ni-1+Ni)求得波特率的倒数1/ABTR,进而得出仲裁域波特率ABTR的值,也就是第一波特率。这样就能避免总线信号变形的影响,减小波特率计算误差。可以理解的是,对于第一波特率的具体计算方式,可以使用上述方式,使用其他方式也可以达到本实施例的目的,本实施例对此不受任何限制。
需要说明的是,根据第一波特率(ABTR)计算并记录第二最大位宽信息(DMAX)和第二最小位宽信息(DMIN),可以为通过1/ABTR的方式计算并记录DMAX和DMIN的初始值。
步骤106:再次获取位宽信息。
可以理解的是,再次获取位宽信息可以为继续获取帧内的位宽信息,只是接下来对于获取的当前位宽信息的比较对象发生了改变。
步骤107:根据已再次获取的位宽信息更新或保持第二最大位宽信息和/或第二最小位宽信息。
其中,本步骤可以为获取的当前位宽信息分别与已记录的DMAX和DMIN进行比较,将大于DMAX或小于DMIN的当前位宽信息更新到对应的DMAX或DMIN,否则保持DMAX或DMIN不变。
可以理解的是,为了排除干扰信号的影响,也可以在当前位宽信息与DMIN比较中加入与DMIN/q的比较,也就是比较当前位宽信息是否小于AMIN且大于AMIN/q,对于q(第四阈值)的具体设置方式与上文中p的设置方式相似,在此不再赘述。
步骤108:判断是否满足第二最大位宽信息大于等于7除以第一波特率且第二最小位宽信息乘以第二阈值小于等于1除以第一波特率;若是,则进入步骤109。
其中,第二最大位宽信息大于等于7除以第一波特率且第二最小位宽信息乘以第二阈值小于等于1除以第一波特率,可以分别用DMAX>=7/ABTR和DMIN*k<=1/ABTR表示。由于数据域的位速率比仲裁域的位速率大,可以通过DMIN*k<=1/ABTR,确定记录的DMAX和DMIN是否属于数据域,从而确保计算的第一波特率和第二波特率分别为仲裁域的波特率(ABTR)和数据域的波特率(DBTR)。第二阈值(k)可以选择大于1的数值,k的数值决定了数据域的波特率与仲裁域的波特率的最小比值,对于k的数值的具体配置方式,可以由设计人员或其他软件配置,典型值可以为1.5。以k=2,仲裁域波特率为1MBPS为例,只有数据域的波特率大于等于2MBPS时才能被本发明所提供的方法测量出。
可以理解的是,通过DMIN*k<=1/ABTR可以确定出当前位宽属于数据域,通过DMAX>=7/ABTR可以判定当前帧结束。当上述两个限定条件满足的情况下,可以通过步骤109计算第二波特率,也就是数据域的波特率。当上述两个限定条件满足的情况下不满足的情况下,可以通过判断是否满足DMAX>=10/ABTR来确定当前位宽信息是否不属于数据域;若是,则返回步骤101,获取位宽信息,重新计算仲裁域的波特率;若否,则返回步骤106,再次获取位宽信息,进行判定,从而计算第二波特率。优选的,可以在上述返回步骤101之前,用记录的DMAX更新AMAX1的数值。
需要说明的是,只要达到DMIN*k<=1/ABTR和DMAX>=7/ABTR的限定目的,对于这两个限定的具体步骤的设置,可以如本实施例中在一个步骤中直接判断,也可以分两个步骤分别判断,本实施例对此不做任何限制。
步骤109:计算第二波特率。
可以理解的是,计算出的第二波特率可以为数据域的波特率(DBTR),对于计算第二波特率的方式可以使用与计算第一波特率相似的方式,在此不再赘述。
步骤110:输出第一波特率和第二波特率。
优选的,在输出第一波特率(ABTR)和第二波特率(DBTR)之前,为了确保测量出来的上述两个波特率的正确性,可以使用位宽信息进行波形重绘,并用测量出来的上述两个波特率对重绘的波形进行CAN FD协议解码;当解码成功时,说明波特率的测量是准确的,则可以输出上述两个波特率信息;当解码出现错误时,则需要进行波特率的重新测量,也就是直接返回步骤101重新测量两个上述波特率,或者返回判断是否满足DMAX>=10/ABTR的步骤,选择重新测量第二波特率还是重新测量两个波特率。本实施例对此不受任何限制。
可以理解的是,根据测量起始点位置的不同,本发明实施例所提供的方法最快能在只有一帧双速率的CAN FD帧的情况下测量出两个波特率,最慢也只需要两帧双速率的CAN FD帧就能测量出两个波特率。
本实施例中,本发明实施例通过第一最大位宽信息、次大位宽信息、最大位宽结束时间、第一最小位宽信息和当前位宽结束时间这些数值间的比较可以确定仲裁域最小位宽,从而计算出第一波特率也就是仲裁域的波特率;通过第二最大位宽信息、第二最小位宽信息和第一波特率这些数值间的比较可以确定数据域最小位宽,从而计算出第二波特率也就是数据域的波特率,以达到测量具有两种通讯速率的CAN FD总线信号的波特率的目的,提升了用户体验。
请参考图5,图5为本发明实施例所提供的另一种双速率CAN FD的波特率测量方法的流程示意图。该方法可以包括:
步骤201:获取位宽信息。
其中,本步骤与步骤101相似,在此不再赘述。
步骤202:判断当前的位宽信息是否大于预设或已记录的AMAX1;若是,则进入步骤203;若否,则进入步骤204。
步骤203:更新AMAX1和TMAX或更新AMAX1、AMAX2和TMAX,进入步骤208。
步骤204:判断当前的位宽信息是否大于预设或已记录的AMAX2;若是,则进入步骤205;若否,则进入步骤206。
步骤205:更新AMAX2,进入步骤208。
步骤206:判断当前的位宽信息是否小于预设或已记录的AMIN且大于预设或已记录的AMIN除以p的值;若是,进入步骤207;若否,进入步骤208。
步骤207:更新AMIN,进入步骤208。
可以理解的是,步骤202至步骤207是为了获取仲裁域的最大位宽信息(AMAX1)和最小位宽信息(AMIN),以及接下来步骤209判定所需的最大位宽结束时间(TMAX)和次大位宽信息(AMAX2)。对于AMAX1和AMAX2可以预设为0,AMIN可以预设为0.2mS。
步骤208:记录TBIT。
步骤209:判断是否满足AMAX2/AMIN>=2、TBIT-TMAX>=16*AMIN且AMAX1/AMIN>=7;若否,则进入步骤210;若是,则进入步骤211。
步骤210:判断是否满足AMAX2/AMIN>=3;若是,则进入步骤211;若否,则进入步骤201。
需要说明的是,对于拓展数据帧,只用步骤209中AMAX2/AMIN>=2、TBIT-TMAX>=16*AMIN且AMAX1/AMIN>=7这三个条件来判定,有时会出现误检最小位宽的情况。而在这种情况下,因为位流中包含有连续4位或5位相同逻辑电平的位流,所以,位速率切换时必然满足AMAX2/AMIN>=3,即这种情况下只要进行AMAX2/AMIN>=3这个条件判断即可确定仲裁域的最小位宽。
步骤211:计算ABTR,用1/ABTR计算并记录DMAX和DMIN。
步骤212:再次获取位宽信息。
步骤213:判断当前的位宽信息是否小于已记录的DMIN且大于已记录的DMIN除以q的值;若是,进入步骤214;若否,进入步骤215。
步骤214:更新DMIN,进入步骤217。
步骤215:当前的位宽信息是否大于已记录的DMAX;若是,进入步骤216;若否,进入步骤217。
步骤216:更新DMAX,进入步骤217。
步骤217:更新TBIT。
可以理解的是,本步骤中的更新当前位宽结束时间(TBIT)目的是为了接下来重绘波形做准备。因此本步骤也可以放在步骤221中的计算DBTR的之前或之后,本实施例对此不受任何限制。
步骤218:判断是否满足DMAX>=7/ABTR且DMIN*k<=1/ABTR;若否,则进入步骤219;若是,则进入步骤221。
步骤219:判断是否满足DMAX>=10/ABTR;若否,则进入步骤212;若是,则进入步骤220。
步骤220:用DMAX更新AMAX1,进入步骤201。
步骤221:计算DBTR,重绘TMAX至TBIT之间的波形并对重绘的波形进行CAN FD进行解码。
步骤222:判断解码是否成功;若否,则进入步骤219;若是,则进入步骤223。
步骤223:输出ABTR和DBTR。
本实施例中,本发明实施例通过加入AMAX2/AMIN>=3这个条件的判断,确保了本发明实施例所提供的方法在标准CAN FD帧和CAN FD帧中均能适用,进一步提升了使用场景,通过对信号进行CAN FD协议解码,进一步确保测量出的两个波特率的准确性。进一步提升了用户的体验。
请参考图6,图6为本发明实施例所提供的一种双速率CAN FD的波特率测量装置的结构图。该装置可以包括:
第一获取模块100,用于获取位宽信息;
第一记录模块200,用于记录已获取的位宽信息中的第一最大位宽信息、次大位宽信息、最大位宽结束时间和第一最小位宽信息;
第二记录模块300,用于记录当前位宽结束时间;
第一判断模块400,用于判断是否满足所述次大位宽信息除以所述第一最小位宽信息大于等于2、所述当前位宽结束时间减去所述第一最大位宽结束时间大于等于16倍的所述第一最小位宽信息且所述第一最大位宽信息除以所述第一最小位宽信息大于等于第一阈值;其中,所述第一阈值大于等于5;若是,则向第一计算模块发送第一计算信号;
第一计算模块500,用于接收所述第一计算信号,计算第一波特率,根据所述第一波特率计算并记录第二最大位宽信息和第二最小位宽信息;
第二获取模块600,用于再次获取位宽信息;
第一更新模块700,用于根据已再次获取的位宽信息更新或保持所述第二最大位宽信息和/或所述第二最小位宽信息;
第二判断模块800,用于判断是否满足所述第二最大位宽信息大于等于7除以所述第一波特率且所述第二最小位宽信息乘以第二阈值小于等于1除以所述第一波特率;若是,则向第二计算模块发送第二计算信号;
第二计算模块900,用于接收所述第二计算信号,计算第二波特率;
输出模块1000,用于输出所述第一波特率和所述第二波特率。
可选的,该装置还可以包括:
第三判断模块,用于若不满足所述次大位宽信息除以所述第一最小位宽信息大于等于2、所述当前位宽结束时间减去所述第一最大位宽结束时间大于等于16倍的所述第一最小位宽信息且所述第一最大位宽信息除以所述第一最小位宽信息大于等于第一阈值,则判断所述次大位宽信息除以所述第一最小位宽信息是否大于等于3;若是,则向所述第一计算模块发送所述第一计算信号;若否,则向所述第一获取模块发送获取信号,用于获取下一位宽信息。
可选的,该装置还可以包括:
第二更新模块,用于更新所述当前位宽结束时间;
重绘模块,用于重绘所述第一最大位宽结束时间至更新的所述当前位宽结束时间之间的波形;
解码模块,用于对重绘的所述波形进行CAN FD解码;
第四判断模块,用于判断所述解码是否成功;若是,则向所述输出模块发送输出信号;若否,则向第五判断模块发送判断信号;
第五判断模块,用于接收所述判断信号,判断所述第二最大位宽信息是否大于等于10除以第一波特率;若否,则向所述第二获取模块发送再次获取信号,用于获取下一位宽信息;
第三更新模块,用于若所述第二最大位宽信息大于等于10除以第一波特率,则用所述第二最大位宽信息更新所述第一最大位宽信息,则向所述第一获取模块发送所述获取信号,用于获取下一位宽信息。
本实施例中,本发明实施例通过第一判断模块400中第一最大位宽信息、次大位宽信息、最大位宽结束时间、第一最小位宽信息和当前位宽结束时间这些数值间的比较可以确定仲裁域最小位宽,从而使第一计算模块500计算出第一波特率也就是仲裁域的波特率;通过第二判断模块800中第二最大位宽信息、第二最小位宽信息和第一波特率这些数值间的比较可以确定数据域最小位宽,从而使第二计算模块900计算出第二波特率也就是数据域的波特率,以达到测量具有两种通讯速率的CAN FD总线信号的波特率的目的,提升了用户体验。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的双速率CAN FD的波特率测量方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。