CN114281620A - 一种i2c总线信号的测试方法和装置 - Google Patents
一种i2c总线信号的测试方法和装置 Download PDFInfo
- Publication number
- CN114281620A CN114281620A CN202111479706.7A CN202111479706A CN114281620A CN 114281620 A CN114281620 A CN 114281620A CN 202111479706 A CN202111479706 A CN 202111479706A CN 114281620 A CN114281620 A CN 114281620A
- Authority
- CN
- China
- Prior art keywords
- oscilloscope
- tested
- target item
- aiming
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本发明实施例提供了一种I2C总线信号的测试方法和装置,应用于测试设备,所述测试设备与示波器和待测主板连接,所述示波器与所述待测主板连接,包括:在检测到预设事件时,确定目标待测试项;根据所述目标待测试项,对所述示波器进行触发条件的设置;向所述示波器发送针对所述目标待测试项的测试指令,并获取所述示波器针对所述测试指令测量的波形数据,所述波形数据为所述示波器在所述待测主板中I2C总线信号满足所述触发条件时测量的;对所述波形数据进行转换,得到针对所述目标待测试项的结果数据。通过本发明实施例,实现了对I2C总线信号质量的自动化测试,提升了测试的效率和准确性。
Description
技术领域
本发明涉及示波器技术领域,特别是涉及一种I2C总线信号的测试方法和装置。
背景技术
目前,I2C(Inter-Integrated Circuit)总线的应用越来越多,I2C总线是两线式串行总线,其包含一条双向串行数据线SDA(Serial Data)和一条串行时钟线SCL(SerialClock),但对I2C总线信号质量的测试通常是人为借助示波器进行测试,这种人为的方式效率较低且准确度不足。
发明内容
鉴于上述问题,提出了以便提供克服上述问题或者至少部分地解决上述问题的一种I2C总线信号的测试方法和装置,包括:
一种I2C总线信号的测试方法,应用于测试设备,所述测试设备与示波器和待测主板连接,所述示波器与所述待测主板连接,包括:
在检测到预设事件时,确定目标待测试项;
根据所述目标待测试项,对所述示波器进行触发条件的设置;
向所述示波器发送针对所述目标待测试项的测试指令,并获取所述示波器针对所述测试指令测量的波形数据,所述波形数据为所述示波器在所述待测主板中I2C总线信号满足所述触发条件时测量的;
对所述波形数据进行转换,得到针对所述目标待测试项的结果数据。
可选地,所述对所述波形数据进行转换,得到针对目标待测试项的结果数据,包括:
获取针对所述示波器的配置参数;
根据所述配置参数,将所述波形数据中点的位置信息转换为电压信息;
根据所述波形数据中点的电压信息,得到二进制信息;
根据所述二进制信息,得到针对目标待测试项的结果数据。
可选地,所述根据所述波形数据中点的电压信息,得到二进制信息,包括:
根据所述波形数据中点,确定多个点集合;
针对每个点集合,根据其所包含的点的电压信息,得到电压平均值;
根据所述多个点集合的电压平均值,得到二进制信息。
可选地,所述根据所述二进制信息,得到针对所述目标待测试项的结果数据,包括:
在所述目标待测试项为读数据类型的情况下,确定目标上升沿范围;
按照所述目标上升沿范围,从所述二进制信息中,得到针对目标待测试项的结果数据。
可选地,还包括:
判断所述二进制信息是否包含针对上升沿或下降沿的特征信息;
在所述二进制信息包含针对上升沿或下降沿的特征信息的情况下,执行所述根据所述二进制信息,得到针对目标待测试项的结果数据;
在所述二进制信息未包含针对上升沿或下降沿的特征信息的情况下,返回执行所述获取所述示波器针对所述测试指令生成的波形数据。
可选地,所述触发条件包括触发模式,在所述触发模式为边沿触发模式的情况下,所述触发条件还包括用于触发测量的目标上升沿或目标下降沿的标识。
可选地,在所述根据所述目标待测试项,对所述示波器进行触发条件的设置之前,还包括:
对所述示波器进行初始化。
一种I2C总线信号的测试装置,应用于测试设备,所述测试设备与示波器和待测主板连接,所述示波器与所述待测主板连接,包括:
目标待测试项确定模块,用于在检测到预设事件时,确定目标待测试项;
触发条件设置模块,用于根据所述目标待测试项,对所述示波器进行触发条件的设置;
波形数据获取模块,用于向所述示波器发送针对所述目标待测试项的测试指令,并获取所述示波器针对所述测试指令测量的波形数据,所述波形数据为所述示波器在所述待测主板中I2C总线信号满足所述触发条件时测量的;
结果数据得到模块,用于对所述波形数据进行转换,得到针对目标待测试项的结果数据。
一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的I2C总线信号的测试方法。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的I2C总线信号的测试方法。
本发明实施例具有以下优点:
在本发明实施例中,通过在检测到预设事件时,确定目标待测试项,根据目标待测试项,对示波器进行触发条件的设置,然后向示波器发送针对目标待测试项的测试指令,并获取示波器针对测试指令测量的波形数据,波形数据为示波器在所述待测主板中I2C总线信号满足触发条件时测量的,对波形数据进行转换,得到针对目标待测试项的结果数据,实现了对I2C总线信号质量的自动化测试,提升了测试的效率和准确性。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种I2C总线信号的测试方法的步骤流程图;
图2是本发明一实施例提供的一种I2C总线信号的测试系统的结构框图;
图3是本发明一实施例提供的一种测试设备的图形用户界面;
图4是本发明一实施例提供的一种I2C总线信号的测试装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,示出了本发明一实施例提供的一种I2C总线信号的测试方法的步骤流程图,该方法可以应用于测试设备,测试设备可以与示波器和待测主板连接,示波器可以与待测主板连接,具体的,待测试主板可以包括通过I2C总线连接的主设备和从设备,示波器可以与I2C总线连接。
如图2,测试设备可以为上位机,待测试主板可以为PCBA(Printed Circuit BoardAssembly),上位机串口控制示波器和PCBA,示波器通过两个通道分别于PCBA中SDA和SCL连接。
具体的,可以包括如下步骤:
步骤101,在检测到预设事件时,确定目标待测试项。
其中,待测试项可以区分为基于I2C协议的读数据流程和基于I2C协议的写数据流程的两种类型的待测试项,进而能否更加精准测试。
在测试设备中,可以预先存储有针对I2C总线信号的多个待测试项,并可以通过图形用户界面展示该多个待测试项,如图3即为测试设备的图形用户界面,用户可以通过图形用户界面对待测试项进行选择操作,响应于用户的选择操作,则可以确定用户选定的目标待测试项。
步骤102,根据目标待测试项,对示波器进行触发条件的设置。
其中,触发条件可以为示波器开始抓取波形的条件,如触发条件可预设为检测到信号跳变为高或跳变为低时开始抓取波形。
具体的,触发条件可以包括触发模式,触发模式可以包括边沿触发模式和时间触发模式,边沿触发模式即在指定边沿下触发测量,时间触发模式即在指定时间下触发测量。在触发模式为边沿触发模式的情况下,触发条件还可以包括用于触发测量的目标上升沿或目标下降沿的标识,如目标上升沿或目标下降沿的标识的序号,即在第几个上升沿或下降沿时,触发示波器抓取。
在一示例中,边沿触发模式可以为AB触发,即在事件A触发之后,等待若干个脉冲边沿后,触发事件B,通过AB触发配合获取不同的时序。
对于不同的待测试项,示波器所需的触发条件是不同的,则可以根据目标待测试项,对示波器的触发条件进行针对性地设置,如设置具体在哪一个上升沿或下降沿时触发示波器开始抓取波形。
在一示例中,还可以根据目标待测试项,对示波器水平时间进行设置。
在本发明一实施例中,在步骤102之前,还可以包括如下步骤:
对示波器进行初始化。
在使用示波器之前,可以通过上位机连接示波器和待测主板,进而可以对示波器参数进行初始化,例如,数据长度配置(如配置为1M个数据点)、通道配置、单次触发设置、触发位置选择在屏幕正中间等。
步骤103,向示波器发送针对目标待测试项的测试指令,并获取示波器针对测试指令测量的波形数据,波形数据为示波器在待测主板中I2C总线信号满足触发条件时测量的。
在对示波器设置完成后,上位机可以向示波器发送针对目标待测试项的测试指令,待测主板可以开始通过I2C总线传递信号,示波器可以在待测主板中I2C总线信号满足触发条件时开始测量,进而可以得到波形数据,如波形数据可以采用示波器图片的形式。
以下待测试项及其触发、获取示波器图片到本地进行示例性说明:
SCL AMP(Amplitude,振幅)测试
①示波器水平时间设置,Perd*(CountRise/10)
②示波器单次触发模式设置
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令添加示波器测试项目AMP
⑤获取示波器图片,命名"HostSCLAmplitude"
SCL
Fre(Frequency,频率)测试
①示波器水平时间设置,Perd*/4.
②示波器采用AB边沿触发方式,由于水平一格是1/4周期,选择SCL第五个上升沿触发,可以满足整个屏幕都是SCL信号波形
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令添加示波器测试项目Fre
⑤获取示波器图片到本地,命名"HostSCLFrequency"
SCL
Low
period测试
①示波器水平时间设置,Perd*/10.
②示波器采用AB边沿触发方式,由于水平一格是1/10周期,选择SCL第五个下降沿触发,基本满足一个屏幕只有一个周期信号波形,提升测试精度
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令添加示波器测试项目Lowperiod
⑤获取示波器图片到本地,命名"HostSCLLowperiod"
SCL
High
period测试
①示波器水平时间设置,Perd*/10.
②示波器采用AB边沿触发方式,由于水平一格是1/10周期,选择SCL第五个上升沿触发,基本满足一个屏幕只有一个周期信号波形,提升测试精度。
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令添加示波器测试项目Highperiod
⑤获取示波器图片到本地,命名"HostSCLHighperiod"
SCL Overshoot测试
①示波器水平时间设置,Perd*/10.
②示波器采用AB边沿触发方式,由于水平一格是1/10周期,选择SCL第五个上升沿触发,基本满足一个屏幕只有一个周期信号波形,提升测试精度。
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令添加示波器测试项目overshoot
⑤获取示波器图片到本地,命名"HostSCLOvershoot"
SCL
Undershoot测试
①示波器水平时间设置,Perd*/10.
②示波器采用AB边沿触发方式,由于水平一格是1/10周期,选择SCL第五个下降沿触发,基本满足一个屏幕只有一个周期信号波形,提升测试精度。
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令添加示波器测试项目Undershoot
⑤获取示波器图片到本地,命名"HostSCLUndershoot"
SCL
Risetime30%-70%测试
①示波器水平时间设置,SCLRT/2,也就是至少用水平两格来显示上升沿过程,从而提高测试精度
②示波器采用AB边沿触发方式,选择SCL第五个上升沿触发
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令配置上升沿测试配置,配置成30%-70%
⑤获取示波器图片到本地,命名"HostSCLRisetime30%-70%"
SCL
Risetime10%-90%测试
①沿用上一张图,无需再次触发
②软件指令配置上升沿测试配置,配置成10%-90%
③获取示波器图片到本地,命名"HostSCLRisetime10%-90%"
SCL
Falltime30%-70%测试
①示波器水平时间设置,SCLFT/2.也就是至少用水平两格来显示下降沿过程,从而提高测试精度
②示波器采用AB边沿触发方式,选择SCL第五个下降沿触发
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令配置下降沿测试配置,配置成30%-70%
⑤获取示波器图片到本地,命名"HostSCLFalltime30%-70%"
SCL
Falltime10%-90%测试
①沿用上一张图,无需再次触发
②软件指令配置下降沿测试配置,配置成10%-90%
③获取示波器图片到本地,命名"HostSCLFalltime10%-90%"
写SDA
AMP测试
①示波器水平时间设置,Perd*(CountRise/10).
②示波器单次触发模式设置
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令添加示波器测试项目AMP
⑤获取示波器图片,命名"HostSDAAmplitude"
写SDA Setuptime测试
①示波器水平时间设置,Perd/10
②示波器采用AB边沿触发方式,选择SDA第2个上升沿触发,此时屏幕中有且仅有一个SCL下降沿波形,一个SDA上升沿波形,一个SCL上升沿波形,
③从SDA上升沿的70%的位置到SCL上升沿的30%的位置,水平时间即为setuptime。
④因此软件发送SDA上升沿30%-70%测试指令,解析70%位置水平时间x1,软件发送SCL上升沿30%-70%测试指令,解析30%位置水平时间x2
⑤x2-x1即为setuptime,获取示波器图片,命名"HostSDASetuptime"
写SDA Holdtime测试
①沿用上一张图无需再次发送命令触发
②从SCL的上升沿70%的位置到SDA的上升沿的30%的位置,水平时间即为Holdtime
③因此软件发送SCL上升沿30%-70%测试指令,解析70%位置水平时间x1,软件发送SDA上升沿30%-70%测试指令,解析30%位置水平时间x2
④x2-x1即为holdtime,获取示波器图片,命名"HostSDAholdtime"
写SDA overshoot测试
①示波器水平时间设置,Perd*/10.
②示波器采用AB边沿触发方式,由于水平一格是1/10周期,选择SDA第二个上升沿触发,基本满足一个屏幕只有一个周期信号波形,提升测试精度。
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令添加示波器测试项目overshoot
⑤获取示波器图片到本地,命名"HostSDAOvershoot"
写SDA undershoot测试
①示波器水平时间设置,Perd*/10.
②示波器采用AB边沿触发方式,由于水平一格是1/10周期,选择SDA第二个下降沿触发,基本满足一个屏幕只有一个周期信号波形,提升测试精度。
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令添加示波器测试项目undershoot
⑤获取示波器图片到本地,命名"HostSDAundershoot"
写SDA Risetime30%-70%测试
①示波器水平时间设置,SDART/2.也就是至少用水平两格来显示上升沿过程,从而提高测试精度
②示波器采用AB边沿触发方式,SDA第一个上升沿触发
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令配置上升沿测试配置,配置成30%-70%
⑤获取示波器图片到本地,命名"HostSDARisetime30%-70%"
写SDA
Risetime10%-90%测试
①沿用上一张图,无需再次触发
②软件指令配置上升沿测试配置,配置成10%-90%
③获取示波器图片到本地,命名"HostSDARisetime10%-90%"
写SDA Falltime30%-70%测试
①示波器水平时间设置,SDAFT/2.也就是至少用水平两格来显示下降沿过程,从而提高测试精度
②示波器采用AB边沿触发方式,选择SDA第1个下降沿触发
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令配置下降沿测试配置,配置成30%-70%
⑤获取示波器图片到本地,命名"HostSDAFalltime30%-70%"
写SDA Falltime10%-90%测试
①沿用上一张图,无需再次触发
②软件指令配置下降沿测试配置,配置成10%-90%
③获取示波器图片到本地,命名"HostSDAFalltime10%-90%"
写SDA Startcon测试
①开始条件定义为SDA第一次拉低到SCL第一次拉低的时间
②示波器采用AB边沿触发方式,选择SDA第1个下降沿触发,示波器水平时间设置,Perd*/10.
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④因此软件发送SDA下降沿30%-70%测试指令,解析70%位置水平时间x1,软件发送SCL下降沿30%-70%测试指令,解析30%位置水平时间x2
⑤x2-x1即为startcon时间,获取示波器图片到本地,命名"HostSDAStart"
写SDA
Stop测试
①结束条件定义为SCL最后一次拉高到SCL最后一次拉高的时间
②示波器采用AB边沿触发方式,选择SCL最后一个下降沿触发,示波器水平时间设置,Perd*/10.
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④因此软件发送SCL上升沿30%-70%测试指令,解析70%位置水平时间x1,软件发送SDA上升沿30%-70%测试指令,解析30%位置水平时间x2
⑤x2-x1即为stop时间,获取示波器图片到本地,命名"HostSDAStop"
读SDA
AMP测试
①示波器水平时间设置,Perd
②示波器采用AB边沿触发模式,选择SCL第CountRise-9个上升沿触发,原因是最后一个读的数据字节只占用8个位,8个上升沿,加一个停止条件
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④软件指令添加示波器测试项目AMP
⑤获取示波器图片,命名"HostSDAAmplitude"
读SDA Setuptime测试
①示波器水平时间设置,Perd/10
②示波器采用AB时序触发方式,trigA选择SCL第一个下降沿触发,SDA选择一段时间后触发第一次上升沿,这个时间为Perd*(CountRise-9)。此时屏幕中有且仅有一个SCL下降沿波形,一个SDA上升沿波形,一个SCL上升沿波形,
③从SDA上升沿的70%的位置到SCL上升沿的30%的位置,水平时间即为setuptime。
④因此软件发送SDA上升沿30%-70%测试指令,解析70%位置水平时间x1,软件发送SCL上升沿30%-70%测试指令,解析30%位置水平时间x2
⑤x2-x1即为setuptime,获取示波器图片,命名"DeviceSDASetuptime"
读SDA Holdtime测试
①示波器水平时间设置,Perd/10
②示波器采用AB时序触发方式,trigA选择SCL第一个下降沿触发,SDA选择一段时间后触发第一次上升沿,这个时间为Perd*(CountRise-9)。此时屏幕中有且仅有一个SCL下降沿波形,一个SDA上升沿波形,一个SCL上升沿波形,
③从SCL下降沿的70%的位置到SCL上升沿的30%的位置,水平时间即为holdtime。
④因此软件发送SCL下降沿30%-70%测试指令,解析30%位置水平时间x1,软件发送SDA上升沿30%-70%测试指令,解析30%位置水平时间x2
⑤x2-x1即为holdtime,获取示波器图片,命名"DeviceSDAholdtime"
读SDA overshoot测试
①示波器水平时间设置,Perd/10
②示波器采用AB时序触发方式,trigA选择SCL第一个下降沿触发,SDA选择一段时间后触发第一次上升沿,这个时间为Perd*(CountRise-9)。此时屏幕中有且仅有一个SCL下降沿波形,一个SDA上升沿波形,一个SCL上升沿波形,
③软件指令添加示波器测试项目overshoot
④获取示波器图片,命名"DeviceSDAovershoot"
读SDA undershoot测试
①示波器水平时间设置,Perd/10
②示波器采用AB时序触发方式,trigA选择SCL第一个下降沿触发,SDA选择一段时间后触发第一次下降沿,这个时间为Perd*(CountRise-9)。此时屏幕中有且仅有一个SCL下降沿波形,一个SDA上升沿波形,一个SCL上升沿波形,
③软件指令添加示波器测试项目undershoot
④获取示波器图片,命名"DeviceSDAundershoot"
读SDA
Risetime30%-70%测试
①示波器水平时间设置,SDART/2
②示波器采用AB时序触发方式,trigA选择SCL第一个下降沿触发,SDA选择一段时间后触发第一次上升沿,这个时间为Perd*(CountRise-9)。此时屏幕中有且仅有一个SCL下降沿波形,一个SDA上升沿波形,一个SCL上升沿波形,
③软件指令配置上升沿测试配置,配置成30%-70%
④获取示波器图片到本地,命名"DeviceSDARisetime30%-70%"
读SDA
Risetime10%-90%测试
①示波器水平时间设置,SDART/2
②示波器采用AB时序触发方式,trigA选择SCL第一个下降沿触发,SDA选择一段时间后触发第一次上升沿,这个时间为Perd*(CountRise-9)。此时屏幕中有且仅有一个SCL下降沿波形,一个SDA上升沿波形,一个SCL上升沿波形,
③软件指令配置上升沿测试配置,配置成10%-90%
④获取示波器图片到本地,命名"DeviceSDARisetime10%-90%"
读SDA Falltime30%-70%测试
①示波器水平时间设置,SDAFT/2
②示波器采用AB时序触发方式,trigA选择SCL第一个下降沿触发,SDA选择一段时间后触发第一次下降沿,这个时间为Perd*(CountRise-9)。此时屏幕中有且仅有一个SCL下降沿波形,一个SDA上升沿波形,一个SCL上升沿波形,
③软件指令配置下降沿测试配置,配置成30%-70%
④获取示波器图片到本地,命名"DeviceSDAFalltime30%-70%"
读SDA Falltime10%-90%测试
①示波器水平时间设置,SDAFT/2
②示波器采用AB时序触发方式,trigA选择SCL第一个下降沿触发,SDA选择一段时间后触发第一次下降沿,这个时间为Perd*(CountRise-9)。此时屏幕中有且仅有一个SCL下降沿波形,一个SDA上升沿波形,一个SCL上升沿波形,
③软件指令配置下降沿测试配置,配置成10%-90%
④获取示波器图片到本地,命名"DeviceSDAFalltime10%-90%"
读SDA Startcon测试,同写SDA Startcon测试
读SDA Stop测试,同写SDA Stop测试
读SDA Restartcon测试
①示波器水平时间设置,Perd/10
②采用AB边沿触发方式,SCL第19个下降沿的地方为restartcon
③发送串口命令触发,检查是否被触发,否的话就再发一次命令
④因此软件发送SDA下降沿30%-70%测试指令,解析70%位置水平时间x1,软件发送SCL下降沿30%-70%测试指令,解析30%位置水平时间x2
⑤x2-x1即为startcon时间,获取示波器图片到本地,命名"DeviceSDAReStart"
步骤104,对波形数据进行转换,得到针对目标待测试项的结果数据。
在获得波形数据后,可以采用ADC(Analogue-to-Digital Conversion,模数转换)的方式,对波形数据进行转换,进而可以从转换后的数据中,分析得到针对目标待测试项的结果数据,例如,结果数据可以为SCL的周期Perd、上升沿时间SCLRT、下降沿时间SCLFT。
在本发明一实施例中,步骤104可以包括如下子步骤:
子步骤11,获取针对示波器的配置参数;
在实际应用中,上位机可以发送示波器指令查询SDA当前配置参数,如配置参可以包括屏幕位置偏差(Yoff)、通道一格量程(Yscal)、通道偏置值(Yzero)、高电平数值(Hvale)。
子步骤12,根据配置参数,将波形数据中点的位置信息转换为电压信息;
由于在示波器进行初始化时配置了数据长度,则波形数据可以包括上位机发送示波器指令获取当前SDA通道满足数据长度的数据点集的信息,如数据长度为1M,则数据点集为1M个数据点。
而且,数据点集的信息可以包含每个点的位置信息,如当前屏幕竖直位置信息,则对于波形数据中每个点,可以将其位置信息通过公式转换为电压信息,如采用如下公式进行转换:
Vi=(Di-Yoff)*Yscal+Yzero
其中,Vi为电压信息,Di为位置信息。
子步骤13,根据波形数据中点的电压信息,得到二进制信息;
在获得波形数据中点的电压信息,可以进一步对电压信息进行转换,进而可以得到针对波形数据的二进制信息,即采用二进制的数据。
在本发明一实施例中,子步骤13可以包括如下子步骤:
根据波形数据中点,确定多个点集合;针对每个点集合,根据其所包含的点的电压信息,得到电压平均值;根据多个点集合的电压平均值,得到二进制信息。
在实际应用中,可以预先设置一数据点个数,如20个,进而可以按照该数据点个数,将波形数据中点划分为多个点集合。
由于预先转换得到每个点的电压信息,则可以对电压信息去除最大值和最小值后,计算剩余的电压信息的平均值,得到电压平均值。
在获得每个点集合的电压平均值后,可以通过判断电压平均值是否大预设电压值,根据判断的结果,将电压平均值转换而二进制值。
例如,预设电压值为0.5,在电压平均值大于预设电压值时,将该电压平均值转换为二进制中的1,在其小于或等于预设电压值时,将该电压平均值转换为二进制中的0。
在获得二进制值后,将所有的点集合的二进制值进行组合,得到针对波形数据的二进制信息。
子步骤14,根据二进制信息,得到针对目标待测试项的结果数据。
在获得二进制信息后,可以对其进行分析,得到针对目标待测试项的结果数据。具体的,由于I2C协议是采用高电平采样,则若要获取SDA数据位,只需要在SCL上升沿的位置读取对应得SDA的数据即可,而SCL上升沿在二进制信息中即为从0至1的变化,则只需要找到从0至1的变化的位置对应的数据即可,匹配所有的01并记录位置形成数据集合。
在本发明一实施例中,子步骤14可以包括如下子步骤:
在目标待测试项为读数据类型的情况下,确定目标上升沿范围;按照目标上升沿范围,从二进制信息中,得到针对目标待测试项的结果数据。
为了确保读到正常的数据,对于I2C协议中读数据流程,由于其还携带有响应信息(ack)和停止条件信息,则可以确定在读数据的情况下所需要获取数据的具体位置,即目标上升沿范围,进而可以按照目标上升沿范围,从二进制信息中进行数据提取,得到针对目标待测试项的结果数据。
例如,读取数据时最后一个字节占了8个上升沿,还存在加上ack占了一个上升沿、停止条件占了一个上升沿,则倒数第三个到倒数第十个上升沿即为SDA对应的时钟,进而可以读取相应的数据。
在本发明一实施例中,还可以包括如下步骤:
判断二进制信息是否包含针对上升沿或下降沿的特征信息;在二进制信息包含针对上升沿或下降沿的特征信息的情况下,执行根据二进制信息,得到针对目标待测试项的结果数据;在二进制信息未包含针对上升沿或下降沿的特征信息的情况下,返回执行获取示波器针对测试指令生成的波形数据。
为了确保获取到数据的可用性,则可以判断二进制信息是否包含针对上升沿或下降沿的特征信息,即二进制信息判断是否包含从0变化到1(上升沿)或从1变化到0(下降沿)的内容。
在二进制信息包含针对上升沿或下降沿的特征信息的情况下,则可以继续进行测试分析,而在二进制信息未包含针对上升沿或下降沿的特征信息的情况下,需要重新获取波形数据,暂停测试。
在本发明实施例中,通过在检测到预设事件时,确定目标待测试项,根据目标待测试项,对示波器进行触发条件的设置,然后向示波器发送针对目标待测试项的测试指令,并获取示波器针对测试指令测量的波形数据,波形数据为示波器在所述待测主板中I2C总线信号满足触发条件时测量的,对波形数据进行转换,得到针对目标待测试项的结果数据,实现了对I2C总线信号质量的自动化测试,提升了测试的效率和准确性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明一实施例提供的一种I2C总线信号的测试装置的结构示意图,可以应用于测试设备,所述测试设备可以与示波器和待测主板连接,所述示波器可以与所述待测主板连接。
具体的,可以包括如下模块:
目标待测试项确定模块401,用于在检测到预设事件时,确定目标待测试项;
触发条件设置模块402,用于根据所述目标待测试项,对所述示波器进行触发条件的设置;
波形数据获取模块403,用于向所述示波器发送针对所述目标待测试项的测试指令,并获取所述示波器针对所述测试指令测量的波形数据,所述波形数据为所述示波器在所述待测主板中I2C总线信号满足所述触发条件时测量的;
结果数据得到模块404,用于对所述波形数据进行转换,得到针对目标待测试项的结果数据。
在本发明一实施例中,结果数据得到模块404,包括:
配置参数获取子模块,用于获取针对所述示波器的配置参数;
电压信息转换子模块,用于根据所述配置参数,将所述波形数据中点的位置信息转换为电压信息;
二进制信息转换子模块,用于根据所述波形数据中点的电压信息,得到二进制信息;
结果数据转换子模块,用于根据所述二进制信息,得到针对目标待测试项的结果数据。
在本发明一实施例中,二进制信息转换子模块,包括:
点集合确定单元,用于根据所述波形数据中点,确定多个点集合;
电压平均值得到单元,用于针对每个点集合,根据其所包含的点的电压信息,得到电压平均值;
二进制信息得到单元,用于根据所述多个点集合的电压平均值,得到二进制信息。
在本发明一实施例中,结果数据转换子模块,包括:
目标上升沿范围确定单元,用于在所述目标待测试项为读数据类型的情况下,确定目标上升沿范围;
结果数据得到单元,用于按照所述目标上升沿范围,从所述二进制信息中,得到针对目标待测试项的结果数据。
在本发明一实施例中,还包括:
特征判断模块,用于判断所述二进制信息是否包含针对上升沿或下降沿的特征信息;在所述二进制信息包含针对上升沿或下降沿的特征信息的情况下,调用结果数据转换子模块;在所述二进制信息未包含针对上升沿或下降沿的特征信息的情况下,调用波形数据获取模块403。
在本发明一实施例中,所述触发条件包括触发模式,在所述触发模式为边沿触发模式的情况下,所述触发条件还包括用于触发测量的目标上升沿或目标下降沿的标识。
在本发明一实施例中,还包括:
初始化模块,用于对所述示波器进行初始化。
本发明一实施例还提供了一种电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上I2C总线信号的测试方法。
本发明一实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上I2C总线信号的测试方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对所提供的一种I2C总线信号的测试方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种I2C总线信号的测试方法,其特征在于,应用于测试设备,所述测试设备与示波器和待测主板连接,所述示波器与所述待测主板连接,包括:
在检测到预设事件时,确定目标待测试项;
根据所述目标待测试项,对所述示波器进行触发条件的设置;
向所述示波器发送针对所述目标待测试项的测试指令,并获取所述示波器针对所述测试指令测量的波形数据,所述波形数据为所述示波器在所述待测主板中I2C总线信号满足所述触发条件时测量的;
对所述波形数据进行转换,得到针对所述目标待测试项的结果数据。
2.根据权利要求1所述的方法,其特征在于,所述对所述波形数据进行转换,得到针对目标待测试项的结果数据,包括:
获取针对所述示波器的配置参数;
根据所述配置参数,将所述波形数据中点的位置信息转换为电压信息;
根据所述波形数据中点的电压信息,得到二进制信息;
根据所述二进制信息,得到针对目标待测试项的结果数据。
3.根据权利要求2所述的方法,其特征在于,所述根据所述波形数据中点的电压信息,得到二进制信息,包括:
根据所述波形数据中点,确定多个点集合;
针对每个点集合,根据其所包含的点的电压信息,得到电压平均值;
根据所述多个点集合的电压平均值,得到二进制信息。
4.根据权利要求2或3所述的方法,其特征在于,所述根据所述二进制信息,得到针对所述目标待测试项的结果数据,包括:
在所述目标待测试项为读数据类型的情况下,确定目标上升沿范围;
按照所述目标上升沿范围,从所述二进制信息中,得到针对目标待测试项的结果数据。
5.根据权利要求4所述的方法,其特征在于,还包括:
判断所述二进制信息是否包含针对上升沿或下降沿的特征信息;
在所述二进制信息包含针对上升沿或下降沿的特征信息的情况下,执行所述根据所述二进制信息,得到针对目标待测试项的结果数据;
在所述二进制信息未包含针对上升沿或下降沿的特征信息的情况下,返回执行所述获取所述示波器针对所述测试指令生成的波形数据。
6.根据权利要求1所述的方法,其特征在于,所述触发条件包括触发模式,在所述触发模式为边沿触发模式的情况下,所述触发条件还包括用于触发测量的目标上升沿或目标下降沿的标识。
7.根据权利要求1所述的方法,其特征在于,在所述根据所述目标待测试项,对所述示波器进行触发条件的设置之前,还包括:
对所述示波器进行初始化。
8.一种I2C总线信号的测试装置,其特征在于,应用于测试设备,所述测试设备与示波器和待测主板连接,所述示波器与所述待测主板连接,包括:
目标待测试项确定模块,用于在检测到预设事件时,确定目标待测试项;
触发条件设置模块,用于根据所述目标待测试项,对所述示波器进行触发条件的设置;
波形数据获取模块,用于向所述示波器发送针对所述目标待测试项的测试指令,并获取所述示波器针对所述测试指令测量的波形数据,所述波形数据为所述示波器在所述待测主板中I2C总线信号满足所述触发条件时测量的;
结果数据得到模块,用于对所述波形数据进行转换,得到针对目标待测试项的结果数据。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的I2C总线信号的测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的I2C总线信号的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111479706.7A CN114281620A (zh) | 2021-12-06 | 2021-12-06 | 一种i2c总线信号的测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111479706.7A CN114281620A (zh) | 2021-12-06 | 2021-12-06 | 一种i2c总线信号的测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114281620A true CN114281620A (zh) | 2022-04-05 |
Family
ID=80870951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111479706.7A Pending CN114281620A (zh) | 2021-12-06 | 2021-12-06 | 一种i2c总线信号的测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281620A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115297026A (zh) * | 2022-08-29 | 2022-11-04 | 广东美的智能科技有限公司 | 通信系统及其检测方法 |
CN115934450A (zh) * | 2023-03-08 | 2023-04-07 | 苏州浪潮智能科技有限公司 | 数据传输质量的检测方法、装置、存储介质及电子装置 |
CN116257398A (zh) * | 2023-05-11 | 2023-06-13 | 中星联华科技(北京)有限公司 | 串口测试方法及系统 |
-
2021
- 2021-12-06 CN CN202111479706.7A patent/CN114281620A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115297026A (zh) * | 2022-08-29 | 2022-11-04 | 广东美的智能科技有限公司 | 通信系统及其检测方法 |
CN115934450A (zh) * | 2023-03-08 | 2023-04-07 | 苏州浪潮智能科技有限公司 | 数据传输质量的检测方法、装置、存储介质及电子装置 |
CN116257398A (zh) * | 2023-05-11 | 2023-06-13 | 中星联华科技(北京)有限公司 | 串口测试方法及系统 |
CN116257398B (zh) * | 2023-05-11 | 2023-10-03 | 中星联华科技(北京)有限公司 | 串口测试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114281620A (zh) | 一种i2c总线信号的测试方法和装置 | |
JP2733746B2 (ja) | ロジック信号表示方法 | |
US7574632B2 (en) | Strobe technique for time stamping a digital signal | |
KR101239743B1 (ko) | 디지털 신호를 타임 스탬핑하기 위한 스트로브 기술 | |
CN107799043B (zh) | Goa电路的检测方法、系统及电子设备 | |
JP2001352350A (ja) | 連続ビットストリームの統計的アイダイアグラムによる測定装置及び方法 | |
CN104977448A (zh) | 具有高级触发能力的测试和测量仪器 | |
CN117388673A (zh) | Ate设备及其芯片测试方法、电子设备、存储介质 | |
CN111190089B (zh) | 抖动时间的确定方法及装置、存储介质和电子设备 | |
CN201348514Y (zh) | 一种事件顺序记录测试信号发生器 | |
CN112834898A (zh) | 一种存储设备电源芯片稳定性的测试方法、装置及设备 | |
CN111258828A (zh) | I2c总线测试方法,测试装置及计算机可读存储介质 | |
CN111863114B (zh) | 芯片采样准位确定方法及装置 | |
US8942300B1 (en) | Integrated digitizer system with streaming interface | |
CN112084124B (zh) | 一种嵌入式多媒体卡eMMC的数据信号处理方法和装置 | |
CN112995650B (zh) | 用于检测摄像头的视频连续性的方法和装置 | |
US20110130990A1 (en) | Low voltage differential signaling timing test system and method | |
CN109145728B (zh) | 一种余辉消隐方法、装置及计算机可读存储介质 | |
US11397197B2 (en) | Voltage detection system and method | |
CN111371453A (zh) | 信号周期测量电路与方法 | |
CN102939595A (zh) | 信号处理装置及其信号处理方法 | |
CN111045358A (zh) | 一种数据采集方法、装置、设备及介质 | |
CN109101380B (zh) | 一种i2c信号质量的检测方法及设备 | |
CN110888045B (zh) | 抖动确定方法及装置、存储介质和电子设备 | |
CN113884852B (zh) | 一种i2c链路信号的测试方法及电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |