一种波形存储方法及装置的制造方法

文档序号:10615877阅读:224来源:国知局
一种波形存储方法及装置的制造方法
【专利摘要】本申请提供了一种波形存储方法,包括:对CAN总线中的波形数据进行采样,并将采样得到的每一位波形数据转换为逻辑电平信号;当连续得到多个逻辑电平信号表征CAN总线处于空闲态时,检测后续得到的逻辑电平信号中是否存在帧起始信号;当检测到帧起始信号时,对帧起始信号对应的波形数据进行存储。本申请提供的方法将波形数据转化为便于检测帧起始信号的逻辑电平信号,帧起始信号表示总线上出现了通信波形,因此只要在总线处于空闲态后检测到帧起始信号就可以对帧起始信号对应的波形数据进行存储,不需要加入控制器对CAN报文进行接收,也不需要加入收发器对CAN报文进行解码来判断总线是否处于通信状态,有效降低了波形存储的成本。
【专利说明】
一种波形存储方法及装置
技术领域
[0001]本发明涉及通信领域,更具体地,涉及一种波形存储方法及装置。
【背景技术】
[0002]CAN(ControIIer Area Network,CAN)是现场总线的一种重要类型,由于其具有高性能、高可靠性,以及独特的设计而越来越受到广泛关注,已经形成国际标准,被公认为最有前途的现场总线之一。
[0003]CAN总线分析仪或者示波器的CAN总线分析插件的一个最基本的功能是记录CAN总线上的波形,并对波形进行后续的软件解码分析。为了尽可能长时间地记录通信波形,并且使总线通信时的波形尽可能地被完整记录,就需要CAN总线分析仪在存储波形的时候要支持帧触发技术,即在CAN总线空闲时不记录波形,而当总线上出现CAN帧时将这帧波形存储下来。
[0004]传统的帧触发技术需要加入CAN控制器对CAN报文进行接收,还需要借助CAN控制器解码总线上的CAN报文,再通过解码后的报文来触发波形存储,在触发存储波形之前至少缓存I帧CAN帧的波形,该技术需要大量的片内RAM资源,提高了存储CAN总线上波形的成本。

【发明内容】

[0005]本发明的目的在于提供一种波形存储方法及装置,只需在总线处于空闲态后检测到帧起始信号就可以对帧起始信号对应的波形数据进行存储,不需要加入控制器对CAN报文进行接收,也不需要加入收发器对CAN报文进行解码来判断总线是否处于通信状态,有效降低了波形存储的成本。
[0006]—种波形存储方法,所述方法包括:
[0007]对CAN总线中的波形数据进行采样,并将采样得到的每一位波形数据转换为逻辑电平信号;
[0008]当连续得到多个逻辑电平信号表征所述CAN总线处于空闲态时,检测后续得到的逻辑电平信号中是否存在帧起始信号;
[0009]当检测到帧起始信号时,对所述帧起始信号对应的波形数据进行存储。
[0010]优选的,所述对CAN总线中的波形数据进行采集,并将采集得到的每一位波形数据转换为逻辑电平信号包括:
[0011 ]按预设采样比对所述波形数据中的各路模拟信号进行采样;
[0012]对每一路所述模拟信号按预设衰减规则进行衰减;
[0013]将经过衰减的每一路所述模拟信号转换为数字信号;
[0014]将各路所述数字信号按预设算术规则进行算术相减,获得一路数学差分数据;
[0015]将所述数学差分数据中的每一位信号数据依次转换为逻辑电平信号。
[0016]优选的,所述逻辑电平信号为隐形位或显性位;
[0017]所述连续得到多个逻辑电平信号表征所述CAN总线处于空闲状态包括:
[0018]检测连续采样得到的隐性位的个数;
[0019]当连续采样得到的隐性位的个数满足预设个数要求时,判定所述CAN总线当前处于空闲状态。
[0020]优选的,所述检测后续得到的逻辑电平信号中是否存在帧起始信号包括:
[0021]在判定所述CAN总线当前处于空闲态时,将后续采集到的第一个为显性位的逻辑电平信号确定为帧起始信号。
[0022]优选的,将采样得到的每一位波形数据转换为逻辑电平信号后还包括:
[0023]对每一位逻辑电平信号进行去干扰处理,以保证后续依据多个逻辑电平信号确定所述CAN总线是否处于空闲态及检测是否存在帧起始信号的准确性。
[0024]一种波形存储装置,所述装置包括:
[0025]采样模块,用于对CAN总线中的波形数据进行采样,并将采样得到的每一位波形数据转换为逻辑电平信号;
[0026]检测模块,用于当连续得到多个逻辑电平信号表征所述CAN总线处于空闲态时,检测后续得到的逻辑电平信号中是否存在帧起始信号;
[0027]存储模块,用于当检测到帧起始信号时,对所述帧起始信号对应的波形数据进行存储。
[0028]优选的,所述采样模块包括:
[0029]采样子模块,用于按预设采样比对所述波形数据中的各路模拟信号进行采样;
[0030]衰减子模块,用于对每一路所述模拟信号按预设衰减规则进行衰减;
[0031]第一转换子模块,用于将经过衰减的每一路所述模拟信号转换为数字信号;
[0032]获取子模块,用于将各路所述数字信号按预设算术规则进行算术相减,获得一路数学差分数据;
[0033]第二转换子模块,用于将所述数学差分数据中的每一位信号数据依次转换为逻辑电平信号。
[0034]优选的,所述逻辑电平信号为隐性位或显性位;所述检测模块包括:
[0035]判定子模块,用于检测连续采样得到的隐性位的个数;当连续采样得到的隐性位的个数满足预设个数要求时,判定所述CAN总线当前处于空闲状态。
[0036]优选的,所述检测模块包括:
[0037]确定子模块,用于在判定所述CAN总线当前处于空闲态时,将后续采集到的第一个为显性位的逻辑电平信号确定为帧起始信号。
[0038]优选的,所述装置还包括:
[0039]去干扰模块,用于对每一位逻辑电平信号进行去干扰处理,以保证后续依据多个逻辑电平信号确定所述CAN总线是否处于空闲态及检测是否存在帧起始信号的准确性。
[0040]以上为本发明提供的一种波形存储方法,对CAN总线中的波形数据进行采样,并将采样得到的每一位波形数据转换为逻辑电平信号;当连续得到多个逻辑电平信号表征所述CAN总线处于空闲态时,检测后续得到的逻辑电平信号中是否存在帧起始信号;当检测到帧起始信号时,对所述帧起始信号对应的波形数据进行存储。
[0041]本发明提供的波形存储方法,将对CAN总线中的波形数据采样得到的每一位波形数据转换为逻辑电平信号,通过对连续多个逻辑电平信号进行分析可以判断CAN总线是否处于空闲态,以及在CAN总线处于空闲态后检测后续得到的逻辑电平信号是否存在帧起始信号。在CAN报文结构中,帧起始信号表示总线上出现了通信波形,因此只要在CAN总线处于空闲态后检测到帧起始信号就可以对所述帧起始信号对应的波形数据进行存储,不需要加入控制器对CAN报文进行接收,也不需要加入收发器对CAN报文进行解码来判断总线是否处于通信状态,节省了 CAN收发器和控制器的成本,同时仅需少量片内RAM资源,有效降低了波形存储的成本。
【附图说明】
[0042]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0043]图1为本发明公开的一种波形存储方法流程图;
[0044]图2为本发明公开的一种波形存储方法又一方法流程图;
[0045]图3为本发明公开的一种波形存储方法又一方法流程图;
[0046]图4为本发明公开的一种波形存储方法又一方法流程图;
[0047]图5为CAN总线波形数据转化为逻辑电平信号时出现干扰示意图;
[0048]图6为本发明公开的一种波形存储装置结构示意图;
[0049]图7为本发明公开的另一种波形存储装置结构示意图;
[0050]图8为本发明公开的另一种波形存储装置结构示意图。
【具体实施方式】
[0051]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]请参阅图1,图1为本发明公开的一种波形存储方法流程图,所述方法包括以下步骤:
[0053]步骤SlOl:对CAN总线中的波形数据进行采样,并将采样得到的每一位波形数据转换为逻辑电平信号;
[0054]具体的,在记录CAN总线上的通信波形时,要求在存储波形的时候在CAN总线空闲时不记录波形,当总线上出现CAN帧时将这帧波形存储下来。也就是说,在对CAN总线上的通信波形进行存储之前要对CAN波形数据进行采样,以对CAN总线是否处于空闲状态进行判断。
[0055]其中,CAN总线中的波形数据为模拟信号,为了便于后续的分析,需要将采样得到的每一位的波形数据转换为逻辑电平信号。
[0056]步骤S102:当连续得到多个逻辑电平信号表征所述CAN总线处于空闲态时,检测后续得到的逻辑电平信号中是否存在帧起始信号;
[0057]具体的,一个完整的CAN帧由帧起始、仲裁场、控制场、数据场(远程帧没有数据场)、校验场、应答场和帧结束组成。实际上,相对于检测总线通信,检测总线是否处于空闲态更简单易行,只要在确定CAN总线处于空闲态后,检测到帧起始信号就可以判断总线处于通信状态了。
[0058]步骤S103:当检测到帧起始信号时,对所述帧起始信号对应的波形数据进行存储。
[0059]具体的,当检测到帧起始信号时,表示总线处于通信状态,这个时候就可以对所述帧起始信号对应的波形数据进行存储了,也就是说,本发明公开的波形存储方法对CAN帧数据不需要解码,解码在波形存储后的相关研究工作中实现,没有必要进行重复解码,只要准确检测到帧起始信号就可以触发波形存储。也就是说,本发明不需要缓冲完整的一个CAN帧的波形,只需缓冲一个位的波形数据就可以触发波形存储。对CAN总线中的两路模拟信号以8位的ADC采样比为100:1采样为例,只需要缓冲2*8*100 = 200Bytes的波形,相对于现有技术需要缓冲一帧32000Bytes波形,大大节省了 FPGA的片内RAM资源。
[0060]以上为本发明提供的一种CAN波形存储方法,将对CAN总线中的波形数据采样得到的每一位波形数据转换为逻辑电平信号,通过对连续多个逻辑电平信号进行分析可以判断CAN总线是否处于空闲态,以及在CAN总线处于空闲态后检测后续得到的逻辑电平信号是否存在帧起始信号。在CAN报文结构中,帧起始信号表示总线上出现了通信波形,因此只要在CAN总线处于空闲态后检测到帧起始信号就可以对所述帧起始信号对应的波形数据进行存储,不需要加入控制器对CAN报文进行接收,也不需要加入收发器对CAN报文进行解码来判断总线是否处于通信状态,节省了 CAN收发器和控制器的成本,同时仅需少量片内RAM资源,有效降低了波形存储的成本。
[0061]如图2所示,对CAN总线中的波形数据进行采样,并将采样得到的每一位波形数据转换为逻辑电平信号,具体执行过程,包括以下步骤:
[0062]步骤S201:按预设采样比对所述波形数据中的各路模拟信号进行采样;
[0063]其中,采样比是模数转换器的采样率与CAN总线信号的波特率之比。CAN总线的波形数据包括CANH和CANL两路模拟信号。
[0064]优选的,所述预设的采样比为100:1,8卩:模数转换器的采样率为1001/3,04~总线信号的波特率为IMb/S,则采样比为100:1,也就是说在IB i t的波形上需要采样100次。
[0065]步骤S202:对每一路所述模拟信号按预设衰减规则进行衰减;
[0066]具体的,CANH和CANL信号在很强的外界干扰下可能会超出正常的范围,甚至可能达到十几伏。所以,需要将采样获取的CANH和CANL信号衰减到模数转换器的承受范围内。
[0067]步骤S203:将经过衰减的每一路所述模拟信号转换为数字信号;
[0068]具体的,经过衰减的CANH和CANL信号是模拟信号,为了便于后续的分析,需要将衰减后的CANH和CANL信号转化为2进制的数字信号。
[0069]步骤S204:将各路所述数字信号按预设算术规则进行算术相减,获得一路数学差分数据;
[0070]具体的,将CANH和CANL数字信号进行算术相减,获得一路数学差分数据,所述数学差分数据为单位为伏特的电压信号。
[0071]步骤S205:将所述数学差分数据中的每一位信号数据依次转换为逻辑电平信号。
[0072]具体的,在所述数学差分数据的取值范围OV?IV内设置两个阈值,第一阈值为
0.2V,第二阈值为0.8V,在每一位的数学差分数据中规定0.2V及0.2V以下的数学差分数据转化为显性位的逻辑电平信号;0.8V及0.8V以上的数学差分数据转化为隐性位的逻辑电平信号;在第一阈值与第二阈值之间的差分数据参考所述差分数据的上一个采样结果转化为的逻辑电平信号的结果,若所述位的差分数据上一个采样结果转化为显性位的逻辑电平信号则将所述差分数据转化为显性位的逻辑电平信号;若所述位的差分数据上一个采样结果转化为隐性位的逻辑电平信号则将所述差分数据转化为隐性位的逻辑电平信号。
[0073]请参阅图3,当连续得到多个逻辑电平信号表征所述CAN总线处于空闲态时,检测后续得到的逻辑电平信号中是否存在帧起始信号,具体包括以下步骤:
[0074]步骤301:检测连续采样得到的隐性位的个数;当连续采样得到的隐性位的个数满足预设个数要求时,判定所述CAN总线当前处于空闲状态。
[0075]具体的,通过CAN帧结构可以发现,一个完整的CAN帧由帧起始、仲裁场、控制场、数据场(远程帧没有数据场)、校验场、应答场和帧结束组成。帧结束为8个隐性位,帧间隔为3个隐性位,加起来共有11个隐性位。而CAN总线协议又规定了在除帧起始与帧结束的其它5个场中一旦出现5个连续的相同位必须填充一个相反位,即最多只能有5个连续的隐性位。也就是可以简单地只采样CAN总线的逻辑电平,当连续采样到11个隐性位时判定CAN总线处于空闲状态。
[0076]优选的,当连续采样到8个以上隐性位时就可以判定CAN总线处于空闲状态。
[0077]步骤S302:在判定所述CAN总线当前处于空闲态时,将后续采集到的第一个为显性位的逻辑电平信号确定为帧起始信号。
[0078]具体的,通过CAN帧结构可以发现,帧起始固定为I个显性位,只要在判定CAN总线当前处于空闲态时检测到I个显性位就能确定这个显性位为帧起始信号。
[0079]请参阅图4,所述波形存储方法还包括:
[0080]步骤S104:对每一位逻辑电平信号进行去干扰处理,以保证后续依据多个逻辑电平信号确定所述CAN总线是否处于空闲态及检测是否存在帧起始信号的准确性;
[0081]具体的,一个位的信号实际上是一段时间长度的电压信号,如果这个电压信号没有被干扰,那么理论上在这段时间内的任何时刻对信号进行采样都会是相同的结果,但如果这个电压信号被干扰,会导致这段时间的电压并不一直保持不变,在不同的时刻进行采样就会出现不同的结果。
[0082]将CAN总线波形数据转换为逻辑电平信号后,只是将每一位电压信号转换为表现为显性位或隐性位的逻辑电平信号,并不能过滤其中的脉冲干扰信号,当总线上有干扰时还是能在逻辑电平中表现出来。图5中一个隐性位中出现了一小段显性位干扰,如果采样只是简单的边沿检测再进行定时采样,就很可能会误采样到显性位。如果这种干扰发生在总线空闲状态时则会误判定为帧起始,即会误触发CAN波形存储。而如果这种干扰发生在连续的两个CAN帧之间,则有可能会采样不到连续的11个隐性电平从而漏触发CAN波形存储。为了避免这些情况发生,本发明对每一位逻辑电平信号进行去干扰处理,以保证后续依据多个逻辑电平信号确定所述CAN总线是否处于空闲态及检测是否存在帧起始信号的准确性。
[0083]优选的,采用重同步及三点采样的方式对每一位逻辑电平信号进行去干扰处理,实现准确可靠的数据采样。
[0084]将一个位的逻辑电平信号分为同步段、预处理段、相位段I和相位段2,同步段和预处理段用来重同步信号,解决信号位宽度抖动的问题。以IM波特率的CAN信号为例,I位的信号长度是IuS;但因为抖动及其它干扰的存在,导致某些位变成大于IuS,而某些位变成小于luS,所以采样不能以固定的IuS的时间间隔去判断一个位的区间,而需要根据隐性位与显性位切换时的信号边沿来进行重新同步;以时间份额为十等分为例,在信号跳变时,如果前面I个位的信号长度大于1.luS,那么在同步段将采样不到信号的跳变沿,跳变沿将在预处理段被采样到,如果是在预处理段的第I个时间份额采样到跳变沿,则后面对这个位的采样就需要后移I个时间份额,从而重新同步了信号。
[0085]采用三点采样的方式在每一个逻辑电平信号的相位段I和相位段2之间采样3次数据,若采样结果中有2个或3个采样数据为显性位,则判定所述位为显性位;若采样结果中有2个或3个采样数据为隐性位,则判定所述位为隐性位。这样避免了显性位的干扰,从而能准确可靠的提取帧起始位。
[0086]基于上述方法,能排除CAN总线干扰信号对检测帧起始信号时的干扰,准确可靠的提取帧起始信号。将采样获取的CAN总线波形数据转化为逻辑电平信号,只需根据去干扰后的逻辑电平信号判断CAN总线是否处于空闲态,在判定CAN总线处于空闲态后检测到帧起始信号就可以对所述帧起始信号对应的波形数据进行存储,不需要加入控制器对CAN报文进行接收,也不需要加入收发器对CAN报文进行解码来判断总线是否处于通信状态,节省了CAN收发器和控制器的成本,同时仅需少量片内RAM资源,有效降低了波形存储的成本。
[0087]基于上述本发明公开的一种波形存储方法,请参阅图6,本发明对应公开了一种波形存储装置,包括:
[0088]采样模块101,用于对CAN总线中的波形数据进行采样,并将采样得到的每一位波形数据转换为逻辑电平信号;
[0089]具体的,在记录CAN总线上的通信波形时,要求在存储波形的时候在CAN总线空闲时不记录波形,当总线上出现CAN帧时将这帧波形存储下来。也就是说,在对CAN总线上的通信波形进行存储之前要对CAN波形数据进行采样,以对CAN总线是否处于空闲状态进行判断。
[0090]其中,CAN总线中的波形数据为模拟信号,为了便于后续的分析,需要将采样得到的每一位的波形数据转换为逻辑电平信号。
[0091]检测模块102,用于当连续得到多个逻辑电平信号表征所述CAN总线处于空闲态时,检测后续得到的逻辑电平信号中是否存在帧起始信号;
[0092]具体的,一个完整的CAN帧由帧起始、仲裁场、控制场、数据场(远程帧没有数据场)、校验场、应答场和帧结束组成。实际上,相对于检测总线通信,检测总线是否处于空闲态更简单易行,只要在确定CAN总线处于空闲态后,检测到帧起始信号就可以判断总线处于通信状态了。
[0093]存储模块103,用于当检测到帧起始信号时,对所述帧起始信号对应的波形数据进行存储。
[0094]具体的,当检测到帧起始信号时,表示总线处于通信状态,这个时候就可以对所述帧起始信号对应的波形数据进行存储了,也就是说,本发明公开的波形存储方法对CAN帧数据不需要解码,解码在波形存储后的相关研究工作中实现,没有必要进行重复解码,只要准确检测到帧起始信号就可以触发波形存储。也就是说,这样就不需要缓冲完整的一个CAN帧的波形,只需缓冲一个位的波形数据就可以触发波形存储。对CAN总线中的两路模拟信号以8位的ADC采样比为100:1采样为例,只需要缓冲2*8*100 = 200Bytes的波形,相对于现有技术需要缓冲一帧32000Bytes波形,大大节省了 FPGA的片内RAM资源。
[0095]以上为本发明提供的一种CAN波形存储装置,所述预处理模块101对CAN总线中的波形数据进行采样,并将采样得到的每一位波形数据转换为逻辑电平信号;所述检测模块102当连续得到多个逻辑电平信号表征所述CAN总线处于空闲态时,检测后续得到的逻辑电平信号中是否存在帧起始信号;所述存储模块103当检测到帧起始信号时,对所述帧起始信号对应的波形数据进行存储。本发明提供的CAN波形存储装置,将对CAN总线中的波形数据采样得到的每一位波形数据转换为逻辑电平信号,通过对连续多个逻辑电平信号进行分析可以判断CAN总线是否处于空闲态,以及在CAN总线处于空闲态后检测后续得到的逻辑电平信号是否存在帧起始信号。在CAN报文结构中,帧起始信号表示总线上出现了通信波形,因此只要在CAN总线处于空闲态后检测到帧起始信号就可以对所述帧起始信号对应的波形数据进行存储,不需要加入控制器对CAN报文进行接收,也不需要加入收发器对CAN报文进行解码来判断总线是否处于通信状态,节省了 CAN收发器和控制器的成本,同时仅需少量片内RAM资源,有效降低了波形存储的成本。
[0096]请参阅图7,采样模块101具体包括
[0097]所述采样子模块104,用于按预设采样比对所述波形数据中的各路模拟信号进行米集;
[0098]其中,采样比是模数转换器的采样率与CAN总线信号的波特率之比。CAN总线的波形数据包括CANH和CANL两路模拟信号。
[0099]优选的,所述预设的采样比为100:1,8卩:模数转换器的采样率为1001/3,04~总线信号的波特率为IMb/S,则采样比为100:1,也就是说在IB i t的波形上需要采样100次。
[0100]所述衰减子模块105,用于对每一路所述模拟信号按预设衰减规则进行衰减;
[0101]具体的,CANH和CANL信号在很强的外界干扰下可能会超出正常的范围,甚至可能达到十几伏。所以,需要将采样获取的CANH和CANL信号衰减到模数转换器的承受范围内。
[0102]所述第一转换子模块106,用于将经过衰减的每一路所述模拟信号转换为数字信号;
[0103]具体的,经过衰减的CANH和CANL信号是模拟信号,为了便于后续的分析,需要将衰减后的CANH和CANL信号转化为2进制的数字信号。
[0104]所述获取子模块107,用于将各路所述数字信号按预设算术规则进行算术相减,获得一路数学差分数据;
[0105]具体的,将CANH和CANL数字信号进行算术相减,获得一路数学差分数据,所述数学差分数据为单位为伏特的电压信号。
[0106]所述第二转换子模块108,用于将所述数学差分数据中的每一位信号数据依次转换为逻辑电平信号。
[0107]具体的,在所述数学差分数据的取值范围OV?IV内设置两个阈值,第一阈值为
0.2V,第二阈值为0.8V,在每一位的数学差分数据中规定0.2V及0.2V以下的数学差分数据转化为显性位的逻辑电平信号;0.8V及0.8V以上的数学差分数据转化为隐性位的逻辑电平信号;在第一阈值与第二阈值之间的差分数据参考所述差分数据的上一个采样结果转化为的逻辑电平信号的结果,若所述位的差分数据上一个采样结果转化为显性位的逻辑电平信号则将所述差分数据转化为显性位的逻辑电平信号;若所述位的差分数据上一个采样结果转化为隐性位的逻辑电平信号则将所述差分数据转化为隐性位的逻辑电平信号。
[0108]检测模块102包括:判定子模块109和确定子模块110;
[0109]所述判定子模块109,用于检测连续采样得到的隐性位的个数;当连续采样得到的隐性位的个数满足预设个数要求时,判定所述CAN总线当前处于空闲状态。
[0110]具体的,通过CAN帧结构可以发现,一个完整的CAN帧由帧起始、仲裁场、控制场、数据场(远程帧没有数据场)、校验场、应答场和帧结束组成。帧结束为8个隐性位,帧间隔为3个隐性位,加起来共有11个隐性位。而CAN总线协议又规定了在除帧起始与帧结束的其它5个场中一旦出现5个连续的相同位必须填充一个相反位,即最多只能有5个连续的隐性位。也就是可以简单地只采样CAN总线的逻辑电平,当连续采样到11个隐性位时判定CAN总线处于空闲状态。
[0111]优选的,当连续采样到8个以上隐性位时就可以判定CAN总线处于空闲状态。
[0112]所述确定子模块110,用于在判定所述CAN总线当前处于空闲态时,将后续采集到的第一个为显性位的逻辑电平信号确定为帧起始信号。
[0113]具体的,通过CAN帧结构可以发现,帧起始固定为I个显性位,只要在判定CAN总线当前处于空闲态时检测到I个显性位就能确定这个显性位为帧起始信号。
[0114]请参阅图8,本发明另一种波形存储装置包括采样模块101、去干扰模块111、检测模块102和存储模块103,其中预处理模块101、检测模块102和存储模块103的功能同上不再赘述。
[0115]去干扰模块111,用于对每一位逻辑电平信号进行去干扰处理,以保证后续依据多个逻辑电平信号确定所述CAN总线是否处于空闲态及检测是否存在帧起始信号的准确性。
[0116]具体的,一个位的信号实际上是一段时间长度的电压信号,如果这个电压信号没有被干扰,那么理论上在这段时间内的任何时刻对信号进行采样都会是相同的结果,但如果这个电压信号被干扰,会导致这段时间的电压并不一直保持不变,在不同的时刻进行采样就会出现不同的结果。
[0117]将CAN总线波形数据转换为逻辑电平信号后,只是将每一位电压信号转换为表现为显性位或隐性位的逻辑电平信号,并不能过滤其中的脉冲干扰信号,当总线上有干扰时还是能在逻辑电平中表现出来。图5中一个隐性位中出现了一小段显性位干扰,如果采样只是简单的边沿检测再进行定时采样,就很可能会误采样到显性位。如果这种干扰发生在总线空闲状态时则会误判定为帧起始,即会误触发CAN波形存储。而如果这种干扰发生在连续的两个CAN帧之间,则有可能会采样不到连续的11个隐性电平从而漏触发CAN波形存储。为了避免这些情况发生,本发明增加去干扰模块111,对每一位逻辑电平信号进行去干扰处理,以保证后续依据多个逻辑电平信号确定所述CAN总线是否处于空闲态及检测是否存在帧起始信号的准确性。
[0118]优选的,所述去干扰模块111采用重同步及三点采样的方式对每一位逻辑电平信号进行去干扰处理,实现准确可靠的数据采样。
[0119]将一个位的逻辑电平信号分为同步段、预处理段、相位段I和相位段2,同步段和预处理段用来重同步信号,解决信号位宽度抖动的问题。以IM波特率的CAN信号为例,I位的信号长度是IuS;但因为抖动及其它干扰的存在,导致某些位变成大于IuS,而某些位变成小于luS,所以采样不能以固定的IuS的时间间隔去判断一个位的区间,而需要根据隐性位与显性位切换时的信号边沿来进行重新同步;以时间份额为十等分为例,在信号跳变时,如果前面I个位的信号长度大于1.luS,那么在同步段将采样不到信号的跳变沿,跳变沿将在预处理段被采样到,如果是在预处理段的第I个时间份额采样到跳变沿,则后面对这个位的采样就需要后移I个时间份额,从而重新同步了信号。
[0120]采用三点采样的方式在每一个逻辑电平信号的相位段I和相位段2之间采样3次数据,若采样结果中有2个或3个采样数据为显性位,则判定所述位为显性位;若采样结果中有2个或3个采样数据为隐性位,则判定所述位为隐性位。这样避免了显性位的干扰,从而能准确可靠的提取帧起始位。
[0121]基于上述装置,能排除CAN总线干扰信号对检测帧起始信号时的干扰,准确可靠的提取帧起始信号。将采样获取的CAN总线波形数据转化为逻辑电平信号,只需根据去干扰后的逻辑电平信号判断CAN总线是否处于空闲态,在判定CAN总线处于空闲态后检测到帧起始信号就可以对所述帧起始信号对应的波形数据进行存储,不需要加入控制器对CAN报文进行接收,也不需要加入收发器对CAN报文进行解码来判断总线是否处于通信状态,节省了CAN收发器和控制器的成本,同时仅需少量片内RAM资源,有效降低了波形存储的成本。
[0122]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种波形存储方法,其特征在于,所述方法包括: 对CAN总线中的波形数据进行采样,并将采样得到的每一位波形数据转换为逻辑电平信号; 当连续得到多个逻辑电平信号表征所述CAN总线处于空闲态时,检测后续得到的逻辑电平信号中是否存在帧起始信号; 当检测到帧起始信号时,对所述帧起始信号对应的波形数据进行存储。2.根据权利要求1所述的方法,其特征在于,所述对CAN总线中的波形数据进行采集,并将采集得到的每一位波形数据转换为逻辑电平信号包括: 按预设采样比对所述波形数据中的各路模拟信号进行采样; 对每一路所述模拟信号按预设衰减规则进行衰减; 将经过衰减的每一路所述模拟信号转换为数字信号; 将各路所述数字信号按预设算术规则进行算术相减,获得一路数学差分数据; 将所述数学差分数据中的每一位信号数据依次转换为逻辑电平信号。3.根据权利要求1所述的方法,其特征在于,所述逻辑电平信号为隐形位或显性位; 所述连续得到多个逻辑电平信号表征所述CAN总线处于空闲状态包括: 检测连续采样得到的隐性位的个数; 当连续采样得到的隐性位的个数满足预设个数要求时,判定所述CAN总线当前处于空闲状态。4.根据权利要求1所述的方法,其特征在于,所述检测后续得到的逻辑电平信号中是否存在帧起始信号包括: 在判定所述CAN总线当前处于空闲态时,将后续采集到的第一个为显性位的逻辑电平信号确定为帧起始信号。5.根据权利要求1所述的方法,其特征在于,将采样得到的每一位波形数据转换为逻辑电平信号后还包括: 对每一位逻辑电平信号进行去干扰处理,以保证后续依据多个逻辑电平信号确定所述CAN总线是否处于空闲态及检测是否存在帧起始信号的准确性。6.一种波形存储装置,其特征在于,所述装置包括: 采样模块,用于对CAN总线中的波形数据进行采样,并将采样得到的每一位波形数据转换为逻辑电平信号; 检测模块,用于当连续得到多个逻辑电平信号表征所述CAN总线处于空闲态时,检测后续得到的逻辑电平信号中是否存在帧起始信号; 存储模块,用于当检测到帧起始信号时,对所述帧起始信号对应的波形数据进行存储。7.根据权利要求6所述的装置,其特征在于,所述采样模块包括: 采样子模块,用于按预设采样比对所述波形数据中的各路模拟信号进行采样; 衰减子模块,用于对每一路所述模拟信号按预设衰减规则进行衰减; 第一转换子模块,用于将经过衰减的每一路所述模拟信号转换为数字信号; 获取子模块,用于将各路所述数字信号按预设算术规则进行算术相减,获得一路数学差分数据; 第二转换子模块,用于将所述数学差分数据中的每一位信号数据依次转换为逻辑电平信号。8.根据权利要求6所述的装置,其特征在于,所述逻辑电平信号为隐性位或显性位;所述检测1?块包括: 判定子模块,用于检测连续采样得到的隐性位的个数;当连续采样得到的隐性位的个数满足预设个数要求时,判定所述CAN总线当前处于空闲状态。9.根据权利要求6所述的装置,其特征在于,所述检测模块包括: 确定子模块,用于在判定所述CAN总线当前处于空闲态时,将后续采集到的第一个为显性位的逻辑电平信号确定为帧起始信号。10.根据权利要求6所述的装置,其特征在于,所述装置还包括: 去干扰模块,用于对每一位逻辑电平信号进行去干扰处理,以保证后续依据多个逻辑电平信号确定所述CAN总线是否处于空闲态及检测是否存在帧起始信号的准确性。
【文档编号】H04L12/40GK105978777SQ201610472132
【公开日】2016年9月28日
【申请日】2016年6月22日
【发明人】周立功
【申请人】广州致远电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1