一种I2C线路检测方法、系统及装置与流程

文档序号:17640562发布日期:2019-05-11 00:38阅读:324来源:国知局
一种I2C线路检测方法、系统及装置与流程

本发明涉及机箱管理领域,特别涉及一种i2c线路检测方法、系统及装置。



背景技术:

机箱管理中有很多的数据需要管理,而且数据的获取很多都是通用的i2c协议,如psu,cpld,monitor等很多的数据;主系统在上层开辟不同的线程,针对各项数据进行处理,或者触发某种操作控制,因此上层应用针对机箱管理繁琐的数据,有不同的判定流程,条目很多逻辑复杂;而一个器件可能因为不同的操作,附加现象有太多的逻辑判定,需要出发对多个器件的操作。在这种复杂的要求下,有些程序以共享库的形式调用,仅仅开放了接口,在程序调试过程中很不方便;而且多线程之间存在竞争,如果并发与竞态处理不好,会出各种问题。

在这种一主多从的情况下,如何了解总线信号并对总线信号的程序进行调试,是目前本领域技术人员需要解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种i2c线路检测方法、系统及装置,以便能够简便快速地调试总线信号。其具体方案如下:

一种i2c线路检测方法,包括:

将两根gpio线分别接到scl线和sdl线引脚上,配置所述gpio线为输入管脚;

设置电平信号的上升沿和下降沿均触发中断;

通过所述gpio线接收所述scl线和所述sdl线上的电平信号;

根据i2c协议,解析所述gpio线接收的所述电平信号。

优选的,所述通过所述gpio线接收所述scl线和所述sdl线上的电平信号的过程,具体包括:

当有所述gpio线上触发中断,接收所述scl线或所述sdl上的电平信号,同时记录时间戳。

优选的,所述根据i2c协议,解析所述gpio线接收的所述电平信号的过程,具体包括:

根据i2c协议,对所述电平信号进行分段,得到开始帧和/或地址帧和/或数据帧和/或停止帧;

对分段后的所述电平信号进行解析。

优选的,所述根据对分段后的所述电平信号进行解析的过程,还包括:

结合所述时间戳和分段后的所述电平信号,生成时序数据;

对所述时序数据进行解析。

优选的,所述通过所述gpio线接收所述scl线和所述sdl线上的电平信号的过程,具体包括:

调试上层应用的线程调度,并通过所述gpio线接收所述scl线和所述sdl线上的电平信号;

所述根据i2c协议,解析所述gpio线接收的所述电平信号的过程,具体包括:

根据所述i2c协议,解析所述电平信号,得到解析结果;

根据所述解析结果检测所述线程调度是否存在异常问题;

如果是,根据所述解析结果对所述异常问题进行定位。

相应的,本发明还公开了一种i2c线路检测系统,包括:

接线模块,用于将两根gpio线分别接到scl线和sdl线引脚上,配置所述gpio线为输入管脚;

初始化模块,用于设置电平信号的上升沿和下降沿均触发中断;

信号接收模块,用于通过所述gpio线接收所述scl线和所述sdl线上的电平信号;

信号解析模块,用于根据i2c协议,解析所述gpio线接收的所述电平信号。

优选的,所述信号接收模块具体用于:

当有所述gpio线上触发中断,接收所述scl线或所述sdl上的电平信号,同时记录时间戳。

优选的,所述信号解析模块具体用于:

根据i2c协议,对所述电平信号进行分段,得到开始帧和/或地址帧和/或数据帧和/或停止帧;

对分段后的所述电平信号进行解析。

优选的,所述信号接收模块具体用于:

调试上层应用的线程调度,并通过所述gpio线接收所述scl线和所述sdl线上的电平信号;

所述信号解析模块具体用于:

根据所述i2c协议,解析所述电平信号,得到解析结果;

根据所述解析结果检测所述线程调度是否存在异常问题;

如果是,根据所述解析结果对所述异常问题进行定位。

相应的,本发明还公开了一种i2c线路检测装置,包括:

存储器,用于存储检测程序;

处理器,用于执行所述检测程序时实现如上文任一项所述i2c线路检测方法的步骤。

本发明公开了一种i2c线路检测方法,包括:将两根gpio线分别接到scl线和sdl线引脚上,配置所述gpio线为输入管脚;设置电平信号的上升沿和下降沿均触发中断;通过所述gpio线接收所述scl线和所述sdl线上的电平信号;根据i2c协议,解析所述gpio线接收的所述电平信号。本发明通过gpio线实时获取i2c线路上的电平信号,直接解析电平信号可以快速了解i2c线路上的传输信息,了解对应的线程操作,便于程序调试和故障调节。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例中一种i2c线路检测方法的步骤流程图;

图2为本发明实施例中一种i2c信号的传输示意图;

图3为本发明实施例中一种i2c线路检测系统的结构分布图;

图4为本发明实施例中一种i2c线路检测装置的结构分布图。

具体实施方式

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

有些程序以共享库的形式调用,仅仅开放了接口,在程序调试过程中很不方便;而且多线程之间存在竞争,如果并发与竞态处理不好,会出各种问题。在这种一主多从的情况下,如何了解总线信号并对总线信号的程序进行调试,是目前本领域技术人员需要解决的问题。

而本发明通过gpio线实时获取i2c线路上的电平信号,直接解析电平信号可以快速了解i2c线路上的传输信息,了解对应的线程操作,便于程序调试和故障调节。

本发明实施例公开了一种i2c线路检测方法,参见图1所示,包括:

s1:将两根gpio线分别接到scl线和sdl线引脚上,配置所述gpio线为输入管脚;

s2:设置电平信号的上升沿和下降沿均触发中断;

s3:通过所述gpio线接收所述scl线和所述sdl线上的电平信号;

具体的,当有所述gpio线上触发中断,接收所述scl线或所述sdl上的电平信号,同时记录时间戳。

s4:根据i2c协议,解析所述gpio线接收的所述电平信号。

具体的,根据i2c协议,对所述电平信号进行分段,得到开始帧和/或地址帧和/或数据帧和/或停止帧;

对分段后的所述电平信号进行解析。

可以理解的是,i2c是一种常用的双总线,可以支持多个从设备与主设备相连,在机箱卦农历中各种外设都提供了i2c接口便于进行读取或控制。其中i2c的读取,既可以是单字节的读写,也可以是多字节的读写,按照特定的i2c协议操作。

具体的,参见图2所示的i2c信号传输示意图,通过i2c传输的电平信号包括以下几部分:

开始条件(startcondition):

为了标识传输正式启动,master设备会将scl置为高电平(当总线空闲时,sda和scl都处于高电平状态),然后将sda拉低,这样,所有slave设备就会知道传输即将开始。

地址帧(addressframe):

地址帧总是在一次通信的最开始出现。一个7-bit的地址是从最高位(msb)开始发送的,这个地址后面会紧跟1-bit的操作符,1表示读操作,0表示写操作。

数据帧(dataframes):

在地址帧发送之后,就可以开始传输数据了。master继续产生时钟脉冲,而数据则由master(写操作)或slave(读操作)放到sda上。每个数据帧8bits,数据帧的数量可以是任意的,直到产生停止条件。每一帧数据传输(即每8-bit)之后,接收方就需要回复一个ack或nack(写数据时由slave发送ack,读数据时由master发送ack。当master知道自己读完最后一个byte数据时,可发送nack然后接stopcondition)。

停止条件(stopcondition):

当所有数据都发送完成时,master将产生一个停止条件。停止条件定义为:在sda置于低电平时,将scl拉高并保持高电平,然后将sda拉高。

其中开始帧对应开始条件,停止帧对应停止条件。

另外,考虑时序的话,步骤s4还包括:

结合所述时间戳和分段后的所述电平信号,生成时序数据;

对所述时序数据进行解析。

本实施例可以应用在编码调试和程序检测中,对照解析的时序和手册的描述,驱动开发更为清晰直白。

在具体的调试上层应用的线程调度时,所述通过所述gpio线接收所述scl线和所述sdl线上的电平信号的过程,具体包括:

调试上层应用的线程调度,并通过所述gpio线接收所述scl线和所述sdl线上的电平信号;

所述根据i2c协议,解析所述gpio线接收的所述电平信号的过程,具体包括:

根据所述i2c协议,解析所述电平信号,得到解析结果;

根据所述解析结果检测所述线程调度是否存在异常问题;

如果是,根据所述解析结果对所述异常问题进行定位。

根据上述操作,能够较为快速地验证数据传输是否正确、从设备是否响应正确,并分析出阻塞卡死等异常现象的出现根源。

其中,解析电平信号的检测程序可以选择c/c++/java/python等程序语言进行编写,本实施例中的检测程序具有传输直白、可移植性、通用性强的特点,便于在不同平台上直接使用,能够根据不同的从设备和不同的时序进行解析,便于解决疑难问题。

本发明实施例公开了一种i2c线路检测方法,包括:将两根gpio线分别接到scl线和sdl线引脚上,配置所述gpio线为输入管脚;设置电平信号的上升沿和下降沿均触发中断;通过所述gpio线接收所述scl线和所述sdl线上的电平信号;根据i2c协议,解析所述gpio线接收的所述电平信号。本发明通过gpio线实时获取i2c线路上的电平信号,直接解析电平信号可以快速了解i2c线路上的传输信息,了解对应的线程操作,便于程序调试和故障调节。

相应的,本发明实施例还公开了一种i2c线路检测系统,参见图3所示,包括:

接线模块01,用于将两根gpio线分别接到scl线和sdl线引脚上,配置所述gpio线为输入管脚;

初始化模块02,用于设置电平信号的上升沿和下降沿均触发中断;

信号接收模块03,用于通过所述gpio线接收所述scl线和所述sdl线上的电平信号;

信号解析模块04,用于根据i2c协议,解析所述gpio线接收的所述电平信号。

本发明实施例通过gpio线实时获取i2c线路上的电平信号,直接解析电平信号可以快速了解i2c线路上的传输信息,了解对应的线程操作,便于程序调试和故障调节。

在一些具体的实施例中,所述信号接收模块03具体用于:当有所述gpio线上触发中断,接收所述scl线或所述sdl上的电平信号,同时记录时间戳。

在一些具体的实施例中,所述信号解析模块04具体用于:根据i2c协议,对所述电平信号进行分段,得到开始帧和/或地址帧和/或数据帧和/或停止帧;对分段后的所述电平信号进行解析。

在一些具体的实施例中,所述信号解析模块04还具体用于:结合所述时间戳和分段后的所述电平信号,生成时序数据;对所述时序数据进行解析。

在一些具体的实施例,所述信号接收模块03具体用于:调试上层应用的线程调度,并通过所述gpio线接收所述scl线和所述sdl线上的电平信号;

所述信号解析模块04具体用于:根据所述i2c协议,解析所述电平信号,得到解析结果;根据所述解析结果检测所述线程调度是否存在异常问题;如果是,根据所述解析结果对所述异常问题进行定位。

相应的,本发明实施例还公开了一种i2c线路检测装置,参见图4所示,包括处理器11和存储器12;其中,所述处理11执行所述存储器12中保存的检测程序时实现以下步骤:

将两根gpio线分别接到scl线和sdl线引脚上,配置所述gpio线为输入管脚;

设置电平信号的上升沿和下降沿均触发中断;

通过所述gpio线接收所述scl线和所述sdl线上的电平信号;

根据i2c协议,解析所述gpio线接收的所述电平信号。

本发明实施例通过gpio线实时获取i2c线路上的电平信号,直接解析电平信号可以快速了解i2c线路上的传输信息,了解对应的线程操作,便于程序调试和故障调节。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:当有所述gpio线上触发中断,接收所述scl线或所述sdl上的电平信号,同时记录时间戳。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:根据i2c协议,对所述电平信号进行分段,得到开始帧和/或地址帧和/或数据帧和/或停止帧;对分段后的所述电平信号进行解析。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:结合所述时间戳和分段后的所述电平信号,生成时序数据;对所述时序数据进行解析。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的计算机子程序时,具体可以实现以下步骤:调试上层应用的线程调度,并通过所述gpio线接收所述scl线和所述sdl线上的电平信号;根据所述i2c协议,解析所述电平信号,得到解析结果;根据所述解析结果检测所述线程调度是否存在异常问题;如果是,根据所述解析结果对所述异常问题进行定位。

进一步的,本实施例中的i2c线路检测装置,还可以包括:

输入接口13,用于获取外界导入的检测程序,并将获取到的检测程序保存至所述存储器12中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器11中,以便处理器11利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口13具体可以包括但不限于usb接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。

输出接口14,用于将处理器11产生的各种数据输出至与其相连的终端设备,以便于与输出接口14相连的其他终端设备能够获取到处理器11产生的各种数据。本实施例中,所述输出接口14具体可以包括但不限于usb接口、串行接口等。

通讯单元15,用于在i2c线路检测装置和外部服务器之间建立远程通讯连接,以便于i2c线路检测装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元15具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。

键盘16,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。

显示器17,用于对i2c线路检测过程的相关信息进行实时显示,以便于用户及时地了解当前i2c线路的检测情况。

鼠标18,可以用于协助用户输入数据并简化用户的操作。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种i2c线路检测方法、系统及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1