一种I2C通信方法、系统、设备、及存储介质技术方案

技术编号:32565267 阅读:58 留言:0更新日期:2022-03-09 16:50
本申请公开了一种I2C通信方法,包括:通过内存映射的方式将目标设备的基地址映射到内存中;建立目标设备的各个寄存器与相应的内存地址之间的一一对应关系;通过内存操作目标设备的第一寄存器,以使能目标设备;通过内存操作目标设备的第二寄存器,以将目标设备设置为主设备;通过内存操作目标设备的第三寄存器,以填入待写入的数据信息;通过内存操作目标设备的第四寄存器,以基于数据信息确定出从设备,并通过I2C总线进行数据写入。应用本申请的方案,可以在不依赖I2C的驱动程序的情况下,有效地实现I2C通信。本申请还公开了一种I2C通信系统、设备及存储介质,具有相应技术效果。具有相应技术效果。具有相应技术效果。

【技术实现步骤摘要】
一种I2C通信方法、系统、设备、及存储介质


[0001]本专利技术涉及存储
,特别是涉及一种I2C通信方法、系统、设备、及存储介质。

技术介绍

[0002]在诸多领域,特别是在存储领域中,I2C(Inter

Integrated Circuit,两线式串行总线)被广泛使用,例如CPU处理器与电池备份单元之间的通信链路采用I2C通信,存储设备上的CPLD(Complex Programmable logic device,复杂可编程逻辑器件),BMC(Baseboard Management Controller,基板管理控制器)等均可以基于I2C进行通信。
[0003]目前,如果想在Linux环境下,使用I2C和从设备通信的话,主设备中必须安装I2C的驱动程序。目前常用的方法是:在编译Linux内核时,将对应的I2Ccontroller芯片的驱动程序编进内核,或者是编译成ko驱动文件,后期使用时再插入对应ko文件。上述的方式都是需要安装有I2C的驱动,才能使用I2C与从设备通信,即对Linux的I2C驱动强依赖。这对于没有I2C驱动,或无法安装I2C驱动的场景来说,使用上尤为不便。例如,部分场合中,对于需要调试I2C物理链路的使用者来说,只是需要测试I2C物理链路是否正常,并不想将I2C驱动拉入测试范围。
[0004]综上所述,如何在不依赖I2C的驱动程序的情况下,有效地实现I2C通信,是目前本领域技术人员急需解决的技术问题。

技术实现思路

[0005]本专利技术的目的是提供一种I2C通信方法、系统、设备、及存储介质,以在不依赖I2C的驱动程序的情况下,有效地实现I2C通信。
[0006]为解决上述技术问题,本专利技术提供如下技术方案:
[0007]一种I2C通信方法,包括:
[0008]通过内存映射的方式将目标设备的基地址映射到内存中;
[0009]建立所述目标设备的各个寄存器与相应的内存地址之间的一一对应关系;
[0010]通过内存操作所述目标设备的第一寄存器,以使能所述目标设备;
[0011]通过内存操作所述目标设备的第二寄存器,以将所述目标设备设置为主设备;
[0012]通过内存操作所述目标设备的第三寄存器,以填入待写入的数据信息;
[0013]通过内存操作所述目标设备的第四寄存器,以基于所述数据信息确定出从设备,并通过I2C总线进行数据写入。
[0014]优选的,在所述通过内存操作所述目标设备的第二寄存器,以将所述目标设备设置为主设备之后,还包括:
[0015]通过内存操作所述目标设备的所述第三寄存器,以填入读取信息;
[0016]通过内存操作所述目标设备的所述第四寄存器,以基于所述读取信息确定出从设备,并通过I2C总线进行数据读取。
[0017]优选的,在通过内存操作所述目标设备的第二寄存器,以将所述目标设备设置为主设备之后,还包括:
[0018]通过内存操作所述目标设备的所述第二寄存器,以设定所述目标设备的通信速度。
[0019]优选的,所述目标设备为CPU。
[0020]优选的,所述CPU为hygon 7285CPU或者为hygon 7265CPU。
[0021]优选的,基于所述数据信息确定出的从设备为存储设备。
[0022]优选的,在所述通过内存操作所述目标设备的第二寄存器,以将所述目标设备设置为主设备之后,还包括:
[0023]执行预设的检测程序,并按照所述检测程序,通过内存操作所述目标设备的相应寄存器,以进行目标从设备的检测。
[0024]一种I2C通信系统,包括:
[0025]内存映射单元,用于通过内存映射的方式将目标设备的基地址映射到内存中;
[0026]对于关系建立单元,用于建立所述目标设备的各个寄存器与相应的内存地址之间的一一对应关系;
[0027]使得单元,用于通过内存操作所述目标设备的第一寄存器,以使能所述目标设备;
[0028]主设备设定单元,用于通过内存操作所述目标设备的第二寄存器,以将所述目标设备设置为主设备;
[0029]第一输入单元,用于通过内存操作所述目标设备的第三寄存器,以填入待写入的数据信息;
[0030]写入执行单元,通过内存操作所述目标设备的第四寄存器,以基于所述数据信息确定出从设备,并通过I2C总线进行数据写入。
[0031]一种I2C通信设备,包括:
[0032]存储器,用于存储计算机程序;
[0033]处理器,用于执行所述计算机程序以实现如上述任一项所述的I2C通信方法的步骤。
[0034]一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的I2C通信方法的步骤。
[0035]应用本专利技术实施例所提供的技术方案,考虑到没有I2C驱动程序的话,用户空间无法直接操作目标设备的寄存器,但是可以通过内存映射的方式将目标设备的基地址映射到内存中,并且建立目标设备的各个寄存器与相应的内存地址之间的一一对应关系,这样便可以通过访问内存来操作目标设备的寄存器。通过内存操作目标设备的第一寄存器,可以使能目标设备,通过内存操作目标设备的第二寄存器,可以将目标设备设置为主设备;通过内存操作目标设备的第三寄存器,可以填入待写入的数据信息,最后,通过内存操作目标设备的第四寄存器,可以基于数据信息确定出从设备,并通过I2C总线进行数据写入,也就是让目标设备实现了将数据写入至从设备中,可以看出,本申请的方案,通过内存映射的方式实现了寄存器的访问,从而不需要使用驱动程序来访问,即可以在不依赖I2C的驱动程序的情况下,有效地实现I2C通信。
附图说明
[0036]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037]图1为本专利技术中一种I2C通信方法的实施流程图;
[0038]图2为本专利技术中一种I2C通信系统的结构示意图。
具体实施方式
[0039]本专利技术的核心是提供一种I2C通信方法,可以在不依赖I2C的驱动程序的情况下,有效地实现I2C通信。
[0040]为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0041]请参考图1,图1为本专利技术中一种I2C通信方法的实施流程图,该I2C通信方法可以包括以下步骤:
[0042]步骤S101:通过内存映射的方式将目标设备的基地址映本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种I2C通信方法,其特征在于,包括:通过内存映射的方式将目标设备的基地址映射到内存中;建立所述目标设备的各个寄存器与相应的内存地址之间的一一对应关系;通过内存操作所述目标设备的第一寄存器,以使能所述目标设备;通过内存操作所述目标设备的第二寄存器,以将所述目标设备设置为主设备;通过内存操作所述目标设备的第三寄存器,以填入待写入的数据信息;通过内存操作所述目标设备的第四寄存器,以基于所述数据信息确定出从设备,并通过I2C总线进行数据写入。2.根据权利要求1所述的I2C通信方法,其特征在于,在所述通过内存操作所述目标设备的第二寄存器,以将所述目标设备设置为主设备之后,还包括:通过内存操作所述目标设备的所述第三寄存器,以填入读取信息;通过内存操作所述目标设备的所述第四寄存器,以基于所述读取信息确定出从设备,并通过I2C总线进行数据读取。3.根据权利要求1所述的I2C通信方法,其特征在于,在通过内存操作所述目标设备的第二寄存器,以将所述目标设备设置为主设备之后,还包括:通过内存操作所述目标设备的所述第二寄存器,以设定所述目标设备的通信速度。4.根据权利要求1所述的I2C通信方法,其特征在于,所述目标设备为CPU。5.根据权利要求4所述的I2C通信方法,其特征在于,所述CPU为hygon 7285CPU或者为hygon 7265CPU。6.根据权利要求4所述的I2C通信方法,其特征在...

【专利技术属性】
技术研发人员:董强强
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1