一种示波器中采样方法、装置及示波器与流程

文档序号:17437129发布日期:2019-04-17 04:16阅读:216来源:国知局
一种示波器中采样方法、装置及示波器与流程
本发明涉及数据解码
技术领域
,具体涉及一种示波器中采样方法、装置及示波器。
背景技术
:在现代测试测量领域,为了应对电子产品设计的日益复杂,示波器正朝着高带宽、高采样率以及高存储深度的方向发展。此外,目前的示波器都集成了串行协议的触发和解码功能,常见的串行协议有i2c、uart、spi、can、lin等,这极大地方便了用户的调试。现有串行协议解码的处理流程图如图1所示,可以包括以下步骤:1)解码数据读取;由于解码数据缓存在可编程逻辑器件所在的ddr3中,因此第一步需要将原始数据从可编程逻辑器件读取到cpu的内存。2)根据设置的阈值电平将解码数据转换为0/1数字电平;当解码数据源为数字通道时该步骤可以省略;3)根据采样率与波特率的关系确定采样点;仅适用某些协议如uart/lin/can等;4)根据具体的协议解析得到解码结果;解码结果包括各字段内容和位置信息等;5)解码结果的显示。但是,上述技术方案至少存在以下缺点:第一、现有方案采用的是软件方式进行解码。首先需要读取原始点数据,在存储深度较大时,该环节就需要花费较多时间。并且上述的5个步骤是串行执行的,限制了解码的效率。当存储深度很大时,为了提高处理的速度,解码数据一般会经过适当的压缩后再送给cpu,这必然会丢失一部分信息。第二、针对有波特率参数的串行协议,需要根据当前时基的采样率与用户设置的波特率来确定采样点的位置。当采样率与波特率之比不是整数时,通常只考虑整数部分,但这往往会导致恢复出的串行bit错误。比如,当采样率与波特率之比为3.5时,每个bit会按照整数进行采样3次或4次。但是,按照这种方式,经过一段时间的累积就会产生1个采样点的误差(多1个或少1个采样点),这常常会导致后续子模块解码错误。以图2和图3为例,每个串行bit持续7个clk(0~6),采样周期为2个clk,即采样率为波特率的3.5倍。经过采样得到的序列为111_0000_111_0000_111。如果按照采样率为波特率的3倍进行解码处理(图2),恢复出的串行bit为10_10_01(取中间的bit)。同样若以采样率为波特率的4倍进行解码处理(图3),也会得到错误的结果10_10(取第2个bit)。技术实现要素:为了至少部分地解决现技术存在的问题,本发明实施例期望提供一种示波器中采样方法、装置及示波器。根据第一方面,一种实施例中提供了一种示波器中采样方法,包括:对多通道数字电平信号进行同步,得到同步后的信号;对同步后的信号进行采样得到采样信号,其中,在每次采样过程中按照当次所确定的采样周期进行采样。根据第二方面,一种实施例中提供了一种示波器中采样装置,所述装置,包括:同步模块和采样模块;其中,所述同步模块,用于对多通道数字电平信号进行同步,得到同步后的信号;所述采样模块,用于对同步后的信号进行采样得到采样信号,其中,在每次采样过程中按照当次所确定的采样周期进行采样。根据第三方面,一种实施例中提供了一种示波器,包括:存储器,用于存储程序;处理器,用于通过执行所述存储器存储的程序以实现如上述第一方面所述的方法。根据第四方面,一种实施例中提供了一种计算机可读存储介质,该计算机可读存储介质包括程序,所述程序用于被处理器执行以实现如上述第一方面所述的方法。与现有技术相比,本发明实施例至少具备以下优点:根据本发明实施例提供的示波器中采样方法,包括:对多通道数字电平信号进行同步,得到同步后的信号;对同步后的信号进行采样得到采样信号,其中,在每次采样过程中按照当次所确定的采样周期进行采样;对采样信号进行解码,得到解码信号。基于本发明实施例所提供的技术方案,至少具有以下有益效果:当采样率与波特率的比值不是整数时,由于在每次采样过程中均按照当次所确定的采样周期进行采样,而不是一直按照同一个采样周期进行采样,这样能够在每次采样过程中合理设置采样周期,实现采样点的合理分段,从而消除了采样结果不准确的问题。附图说明图1是现有串行协议解码处理的流程图;图2是现有串行解码结果示意图一;图3是现有串行解码结果示意图二;图4是本发明示波器中采样方法在一种实施方式中的流程图;图5是根据本发明示波器中采样方法进行采样的示例图一;图6是根据现有技术进行采样的示例图一;图7是根据现有技术进行采样的示例图二;图8是根据本发明示波器中采样方法进行采样的示例图二;图9是本发明示波器中采样装置在一种实施方式中的结构框图;图10是本发明示波器中采样装置在第二种实施方式中的结构框图;图11是本发明示波器中采样装置在第三种实施方式中的结构框图。具体实施方式下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力地认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。实施例一本发明实施例一提供了一种示波器中采样方法,参照图4,所述方法包括:步骤401、对多通道数字电平信号进行同步,得到同步后的信号;步骤402、对同步后的信号进行采样得到采样信号,其中,在每次采样过程中按照当次所确定的采样周期进行采样;当同步后的信号的采样率和波特率的比值不是整数时,如果采用现有技术方案,一直按照同一个采样周期进行采样,不可避免的会在采样过程中,使同步后的信号的跳变沿上的值位于当次采样所得到的多个采样点的中间部分,从而在确定当次采样的采样输出值时,如果中间部分恰好是两个不同的值(0和1),通常会根据情况随机选择一个,这样会使得采样结果出现大的偏差,而且随着采样的进行,误差会逐渐累积,采样结果的偏差也会越来越大,因此,为了避免这种偏差,需要在每次采样过程中,确定适合的采样周期,并按照当次所确定的采样周期进行采样。即使当同步后的信号的采样率和波特率的比值是整数时,仍然可能存在采样时刻在同步后的信号的跳变沿处的情况,使得采样结果偏差大。实际应用中,关于如何保证每次采样过程中同步后的信号的跳变沿上的点是当次采样得到的多个采样点中边缘位置的点,有以下两种方式实现:第一种方式:检测所述同步后的信号的跳变沿;当采样bit计数器的计数值为0时,开始对所述同步后的信号中的每bit数据进行检测直到检测到跳变沿;每检测1bit数据将采样bit计数器的计数值加1;当检测到所述同步后的信号的跳变沿时,将采样bit的计数器清零;将采样bit计数器清零前的计数值确定为当次采样周期;并按照当次采样周期从当次所检测的数据中读取采样结果。上面所说的当次所检测的数据是指从采样bit计数器的计数值为0开始直到采样bit计数器的计数值再次被置为0为止,这之间所检测的数据。举例来说,假设从采样bit计数器的计数值为0时开始,直到采样bit计数器的计数值再次被置为0为止,这中间所检测的数据为6个,而在采样bit计数器的计数值再次被置为0之前,所述采样bit计数器的计数值为5,则将5确认为当次采样的采样周期,则从当次所检测的6个数据中读取前5个数据作为当次采样的采样数据,并从中读取当次采样的采样结果。确定当次采样的采样结果的方式通常为将中间数据在值确定为当次采样结果。图5是根据第一种方式进行采样的示例图,如图5所示,对同步后的信号的跳变沿(从0到1或从1到0)进行检测,一旦检测到跳变沿,将采样bit的计数器重新清零。参照图5,本例中默认取计数值等于1的时刻对应的数据为恢复出的串行数据,最终恢复出的串行数据为:10_10_1。第二种方式:根据同步后的信号的采样率和波特率的比值,确定出使得累积采样误差较小的采样周期,根据所述采样周期进行采样。具体的,所述根据同步后的信号的采样率和波特率的比值,确定出使得累积采样误差较小的采样周期,根据所述采样周期进行采样,包括:确定同步后的信号的采样率和波特率的比值,并确定出比值中的整数部分;在一个采样周期开始前,确定当前累积采样误差,并分别确定采样周期等于所述整数部分的值以及等于所述整数部分加一的值时的采样误差,将所确定的两个采样误差分别与所述当前累积采样误差相加得到的新的累积采样误差;将使得新的累积采样误差较小的采样误差所对应的采样周期确定为当前采样周期;按照当前采样周期进行一次采样,并进入下一个采样周期。在上述方法中,当两个新的累积采样误差相等时,随机将所述整数部分的值确定为采样误差或者将所述整数部分加一的值确定为采样误差;或者,将所述整数部分的值确定为采样误差;或者,将所述整数部分加一的值确定为采样误差。在一种实施方式中,按照第二种方式计算采样周期的过程如下:根据采样率和用户设置的波特率,计算出两者之比的整数部分(i_ratio_integral)和小数部分(i_ratio_remainder)。其中小数部分用7bit量化(*2^7)。实时计算出采样周期等于i_ratio_integral和(i_ratio_integral+1)两种情况下的误差(取绝对值)计算过程如下:1)初始状态值:left=~i_ratio_remainder+1right=(1<<7)-i_ratio_remainder;//正数sum=02)计算过程offset_left=sum+leftoffset_right=sum+rightsum=(abs(offset_left)<=abs(offset_right))?offset_left:offset_rightsample_period=(abs(offset_left)<=abs(offset_right))?i_ratio_integral:(i_ratio_integral+1)其中,left表示采样率与波特率的比值不是整数时,采样周期向下取整时引入的误差。如采样率和波特率的比值为3.5,采样周期向下取整为3,则引入的误差为-0.5。在具体实现时会对小数进行量化后再处理;right表示采样率与波特率的比值不是整数时,采样周期向上取整时引入的误差。如采样率和波特率的比值为3.5时,采样周期向上取整为4,则引入的误差为+0.5。在具体实现时会对小数进行量化后再处理;offset_left表示当采样周期向下取整时,引入的累积误差;offset_right表示当采样周期向上取整时,引入的累积误差。sum表示最终累积的误差。比较offset_left和offset_right的绝对值,取绝对值小的作为累积误差。在本发明的一种可选实施方式中,所述对同步后的信号进行采样得到采样信号,包括:当采样率与波特率的比值大于等于10时,对所述同步后的信号进行并行采样;当采样率与波特率的比值小于10时,对所述同步后的信号进行串行采样;当采样率与波特率的比值大于等于10时,相当于大于或等于1个时钟才输出1个bit的采样点,而当两者的比值等于10时,则每个时钟输出1个采样点;并行采样过程中,待采样和解码的同步后的信号是并行处理的,比如,每个时钟输入10bit数据;串行采样过程中,待采样和解码的同步后的信号是串行处理的,首先将每个时钟输入的10bit数据先转换为1bit串行数据,再对串行数据流采样。当所述同步后的信号进行串行采样时,通过fifo缓存数据,并在fifo快满时向数据发送端发送busy信号,通知数据发送端暂停发送数据,当fifo快空时,再通知数据发送端发送数据。在本发明的一种可选实施方式中,所述方法还包括:对采样信号进行解码,得到解码信号。具体的,所述对采样信号进行解码,包括:接收用户输入的解码指令,所述解码指令中包含解码方式,按照所述解码指令中包含的解码方式对采样信号进行解码;其中,所述解码方式包括以下解码方式至少其中之一:uart解码、lin解码、can解码、spi解码以及i2c解码。综上,本发明实施例一所提供的示波器中采样方法,包括:对多通道数字电平信号进行同步,得到同步后的信号;对同步后的信号进行采样得到采样信号,其中,当所述同步后的信号的采样率和波特率的比值不是整数时,在每次采样过程中保证所述同步后的信号的跳变沿上的点是当次采样得到的多个采样点中边缘位置的点。基于本发明实施例所提供的技术方案,至少具有以下有益效果:当采样率与波特率的比值不是整数时,由于在每次采样过程中均按照当次所确定的采样周期进行采样,而不是一直按照同一个采样周期进行采样,这样能够在每次采样过程中合理设置采样周期,实现采样点的合理分段,从而消除了采样结果不准确的问题,并保证了后续解码过程的准确度。下面通过一个具体示例对本发明所提供的示波器中采样方法,做以下详细介绍。本例以输入信号为持续5个高电平、采样率与波特率之比为3.5为例说明。在本例中,采样率和波特率的比值为3.5,如果只考虑比值中的整数部分,而将采样周期确定为3或者4的话,则会出现恢复出的串行数据比真实值多或者少的问题。相反的,按照上述第二种方式,则可以避免这种问题。图6是按照采样周期等于3进行处理的示意图,如图6所示,恢复得到6个1。图7是按照采样周期等于4进行处理的示意图,如图7所示,恢复得到4个1。而实际输入信号为5个1。因此,当采样率与波特率之比为小数时,如果仅按照整数部分处理,随着时间的累积(长时间没有电平跳变),恢复出的数据的bit数总会比真实值多或少一些。图8是采用采样周期动态变化方式进行处理的示意图,如图8所示,恢复得到的结果为:5个1。下对采样周期的计算过程进行详细说明:因为采样率与波特率之比为3.5,因此,以采样周期等于3和等于4时引入的误差分别为left=3-3.5=-0.5和right=4-3.5=+0.5。第一次采样:初始误差为0,因此offset_left和offset_right分别为-0.5和+0.5,对应表1中的序号1。由于两者的绝对值相等,因此采样周期等于3或4都可以,本例中选择3,此次,引入的误差sum=-0.5。序号offse_leftoffset_rightsum采样周期1-0.5+0.5-0.532-10043-0.5+0.5-0.534-1004表1第二次采样:如果仍然选择采样周期为3,那么引入的误差为offset_left=sum+left=-0.5+(-0.5)=-1;如果选择采样周期为4,引入的误差为offset_right=sum+right=-0.5+0.5=0;由于选择采样周期等于4时的累积误差的绝对值小于采样周期等于3时的绝对值,因此,此次选择采样周期等于4。依次类推,可以看到通过该方法,采样周期在3和4之间不断变化,使得误差始终保持在1个采样点内。实施例二参照图9,本发明实施例二提供了一种示波器中采样装置,所述装置,包括:同步模块91、采样模块92和解码模块93;其中,所述同步模块91,用于对多通道数字电平信号进行同步,得到同步后的信号;所述采样模块92,用于对同步后的信号进行采样得到采样信号,其中,在每次采样过程中按照当次所确定的采样周期进行采样。具体的,同步模块91进行同步的信号为数字电平信号,参照图1,同步模块91可以接收多个通道数据,其中ch1至ch4均为模拟通道,而mso为数字通道,模拟通道中的数据在进入同步模块91之前需要通过电平比较模块转换为数字信号,而数字通道中的信号则直接发送至同步模块91。由于ch1、ch2、ch3、ch4以及mso通道的数据进入后续模块的时间有差异,因此需要在同步模块91中先用ram或fifo缓存,再同时读取,以保证从同步模块91中输出的数据是同步的。具体的,所述采样模块92,包括:第一判断单元9201、并行采样单元9202和串行采样单元9203;其中,所述第一判断单元9201,用于当采样率与波特率的比值大于等于10时,将所述同步后的信号发送到并行采样单元9202进行并行采样;当采样率与波特率的比值小于10时,将所述同步后的信号发送到串行采样单元9203进行串行采样;其中,当将所述同步后的信号发送到串行采样单元9203进行串行采样时,通过fifo缓存数据,并在fifo快满时向同步模块91发送busy信号,通知数据发送端暂停发送数据,当fifo快空时,再通知同步模块91发送数据。具体的,所述采样模块92中的并行采样单元9202或者串行采样单元9203,用于通过以下方式进行采样:当采样bit计数器的计数值为0时,开始对所述同步后的信号中的每bit数据进行检测直到检测到跳变沿;每检测1bit数据将采样bit计数器的计数值加1;当检测到所述同步后的信号的跳变沿时,将采样bit的计数器清零;将采样bit计数器清零前的计数值确定为当次采样周期;并按照当次采样周期从当次所检测的数据中读取采样结果。相应的,当采样bit计数器再次被置为0,则进入下一次采样,具体采样方式同上。具体的,所述采样模块92中的并行采样单元9202或者串行采样单元9203,用于通过以下方式进行采样:根据同步后的信号的采样率和波特率的比值,确定出使得累积采样误差较小的采样周期,根据所述采样周期进行采样。具体的,所述采样模块92中的并行采样单元9202或者串行采样单元9203,用于按照以下方式进行采样:确定同步后的信号的采样率和波特率的比值,并确定出比值中的整数部分;在一个采样周期开始前,确定当前累积采样误差,并分别确定采样周期等于所述整数部分的值以及等于所述整数部分加一的值时的采样误差,将所确定的两个采样误差分别与所述当前累积采样误差相加得到的新的累积采样误差;将使得新的累积采样误差较小的采样误差所对应的采样周期确定为当前采样周期;按照当前采样周期进行一次采样,并进入下一个采样周期。所述采样模块92中的并行采样单元9202或者串行采样单元9203,还用于当两个新的累积采样误差相等时,随机将所述整数部分的值确定为采样误差或者将所述整数部分加一的值确定为采样误差;或者,将所述整数部分的值确定为采样误差;或者,将所述整数部分加一的值确定为采样误差。在本发明的一种可选实施方式中,参照图10,所述装置还包括:解码模块93,用于对采样信号进行解码,得到解码信号。所述解码模块93,包括:第二判断单元9301和多个不同类型的解码模块9302;其中,所述第二判断模块9301用于接收用户输入的解码指令,所述解码指令中包含解码方式,确定出所述解码指令中包含的解码方式,并将所述采样信号发送至于所述解码方式相对应的解码单元进行解码;各个不同类型的解码单元9302,分别用于按照各自的解码方式对采样信号进行解码得到解码信号;其中,所述不同类型的解码单元9302包括单不限于以下单元:uart解码单元、lin解码单元、can解码单元、spi解码单元以及i2c解码单元。在本发明的一种可选实施方式中,参照图11,所述装置还包括:存储控制模块94,用于将解码信号读取到内存中,由cpu读取并进行显示。由于一帧解码信号中包含有很多帧串行数据,因此,有必要将解码结果存入ddr3中,再由软件读取并进行显示。在具体实施过程中,上述同步模块91、采样模块92、解码模块93及存储控制模块94均可以由示波器内的中央处理器(cpu,centralprocessingunit)、微处理器(mpu,microprocessingunit)、数字信号处理器(dsp,digitalsignalprocessor)或可编程逻辑阵列(fpga,field-programmablegatearray)来实现。实施例三本发明实施例三提供了一种实施例中提供了一种示波器,包括:存储器,用于存储程序;处理器,用于通过执行所述存储器存储的程序以实现如上述实施例一所述的方法。实施例四本发明实施例四提供了一种计算机可读存储介质,所述计算机可读存储介质包括程序,所述程序用于被处理器执行以实现如实施例一所述的方法。本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属
技术领域
的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1