一种基于I2C通信的数据传输方法、装置、设备及存储介质与流程

文档序号:29158252发布日期:2022-03-08 22:22阅读:107来源:国知局
一种基于I2C通信的数据传输方法、装置、设备及存储介质与流程
一种基于i2c通信的数据传输方法、装置、设备及存储介质
技术领域
1.本发明涉及通信技术领域,特别涉及一种基于i2c通信的数据传输方法、装置、设备及存储介质。


背景技术:

2.机箱管理控制器(cmc,chassis management controller)作为机箱的管理系统,负责整个机箱的监控和管理。基板管理控制器(bmc,baseboard management controller)可以实现服务器的相关控制、信息监督等功能。cmc可与多个机箱上的bmc进行管理控制,cmc与bmc之间可以通过网络传输,但如果没有网络或者网络不佳则无法通信。也可以通过i2c进行相连以通过ipmb协议进行通信。特别是对于bmc升级cmc的过程中,需要通过i2c传输文件,如果使用原有协议进行文件数据传输,灵活性和效率较低。
3.因此,如何提高i2c通信中的数据传输效率是本领域技术人员亟待解决的技术问题。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种基于i2c通信的数据传输方法、装置、设备及存储介质,能够不受限于协议类型以实现机箱管理控制器与基板管理控制器之间基于i2c的高速率数据传输。其具体方案如下:
5.本技术的第一方面提供了一种基于i2c通信的数据传输方法,应用于机箱管理控制器,包括:
6.启动i2c数据接收进程以获取启动i2c数据发送进程的基板管理控制器发送的起始帧数据,并对所述起始帧数据进行解析得到与待传输数据相关的验证信息;
7.接收所述基板管理控制器发送的所述待传输数据,并利用解析得到的所述验证信息对接收到的所述待传输数据进行验证,如果验证通过,则数据传输完成,如果验证不通过,则数据传输失败。
8.可选的,所述启动i2c数据接收进程以获取启动i2c数据发送进程的基板管理控制器发送的起始帧数据之后,还包括:
9.根据所述i2c数据接收进程中的预设信息判断所述起始帧数据是否携带启动传输指令,如果是,则对所述起始帧数据进行解析得到与所述待传输数据相关的所述验证信息。
10.可选的,所述接收所述基板管理控制器发送的所述待传输数据,包括:
11.接收所述基板管理控制器发送的所述待传输数据的各个分数据包并写入临时文件;其中,各个所述分数据包为对所述待传输数据进行分割后得到的数据包;
12.将所述临时文件中的各个所述分数据包进行整合操作,以得到接收到的所述待传输数据。
13.可选的,所述接收所述基板管理控制器发送的所述待传输数据的各个分数据包并写入临时文件,包括:
14.接收所述基板管理控制器发送的所述待传输数据的各个所述分数据包;
15.对接收到的各个所述分数据包进行校验并将校验通过的所述分数据包写入所述临时文件。
16.可选的,所述验证信息,包括所述待传输数据的总大小、所述待传输数据的第一校验码及与所述待传输数据对应的分数据包个数;
17.相应的,所述利用解析得到的所述验证信息对接收到的所述待传输数据进行验证,包括:
18.生成与接收到的所述待传输数据对应的第二校验码,并判断所述第二校验码与所述第一校验码是否一致,如果是,则验证通过,如果否,则验证不通过。
19.可选的,所述第一校验码和所述第二校验码为md5值。
20.本技术的第二方面提供了一种基于i2c通信的数据传输方法,应用于基板管理控制器,包括:
21.启动i2c数据发送进程以向启动i2c数据接收进程的机箱管理控制器发送起始帧数据,以便所述机箱管理控制器对接收到的所述起始帧数据进行解析得到与待传输数据相关的验证信息;
22.向所述机箱管理控制器发送待传输数据,以便所述机箱管理控制器利用解析得到的所述验证信息对接收到的所述待传输数据进行验证,如果验证通过,则数据传输完成,如果验证不通过,则数据传输失败。
23.本技术的第三方面提供了一种基于i2c通信的数据传输装置,包括:
24.解析模块,用于启动i2c数据接收进程以获取启动i2c数据发送进程的基板管理控制器发送的起始帧数据,并对所述起始帧数据进行解析得到与待传输数据相关的验证信息;
25.验证模块,用于接收所述基板管理控制器发送的所述待传输数据,并利用解析得到的所述验证信息对接收到的所述待传输数据进行验证,如果验证通过,则数据传输完成,如果验证不通过,则数据传输失败。
26.本技术的第四方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述基于i2c通信的数据传输方法。
27.本技术的第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述基于i2c通信的数据传输方法。
28.本技术中,应用于机箱管理控制器的基于i2c通信的数据传输方法先启动i2c数据接收进程以获取启动i2c数据发送进程的基板管理控制器发送的起始帧数据,并对所述起始帧数据进行解析得到与待传输数据相关的验证信息;然后接收所述基板管理控制器发送的所述待传输数据,并利用解析得到的所述验证信息对接收到的所述待传输数据进行验证,如果验证通过,则数据传输完成,如果验证不通过,则数据传输失败。可见,本技术通过机箱管理控制器端的i2c数据接收进程和基板管理控制器端的i2c数据发送进程传输起始帧数据,机箱管理控制器根据起始帧数据中的相关验证信息对待传输数据进行验证,能够不受限于协议类型以实现机箱管理控制器与基板管理控制器之间基于i2c的高速率数据传
输。本技术还相应提供了一种应用于基板管理控制器的基于i2c通信的数据传输方法,能达到相同的技术效果,在此不再进行赘述。
附图说明
29.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
30.图1为本技术提供的一种应用于机箱管理控制器的基于i2c通信的数据传输方法流程图;
31.图2为本技术提供的一种应用于基板管理控制器基于i2c通信的数据传输方法流程图;
32.图3为本技术提供的一种应用于机箱管理控制器的基于i2c通信的数据传输装置结构示意图;
33.图4为本技术提供的一种基于i2c通信的数据传输电子设备结构图。
具体实施方式
34.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.现有技术中bmc与cmc之间需要使用i2c进行文件传输,但受限于ipmb协议长度和交互速率,其之间的传输效率很低。针对上述技术缺陷,本技术提供一种基于i2c通信的数据传输方案,通过机箱管理控制器端的i2c数据接收进程和基板管理控制器端的i2c数据发送进程传输起始帧数据,机箱管理控制器根据起始帧数据中的相关验证信息对待传输数据进行验证,能够不受限于协议类型以实现机箱管理控制器与基板管理控制器之间基于i2c的高速率数据传输。
36.图1为本技术实施例提供的一种基于i2c通信的数据传输方法流程图。参见图1所示,该基于i2c通信的数据传输方法应用于机箱管理控制器,包括:
37.s11:启动i2c数据接收进程以获取启动i2c数据发送进程的基板管理控制器发送的起始帧数据,并对所述起始帧数据进行解析得到与待传输数据相关的验证信息。
38.本实施例中,首先启动i2c数据接收进程以获取启动i2c数据发送进程的基板管理控制器发送的起始帧数据,然后对所述起始帧数据进行解析得到与待传输数据相关的验证信息。所述起始帧数据还用于通知所述机箱管理控制器开始传输数据,因此,在接收到所述起始帧数据后,还需要根据所述i2c数据接收进程中的预设信息判断所述起始帧数据是否携带启动传输指令,如果是,则对所述起始帧数据进行解析得到与所述待传输数据相关的所述验证信息。可以理解,所述预设信息表征了所述起始帧数据是否为开始传输数据的指令,所述预设信息的类型和格式在所述i2c数据接收进程和所述i2c数据发送进程中进行约定。所述i2c数据接收进程和所述i2c数据发送进程中可以在i2c通信之上开发文件传输协
议,以提升传输速率。
39.本实施例中,在bmc升级cmc的过程中,需要通过i2c传输镜像文件,由于镜像文件很大,需要将大文件进行分片或分割得到各个小的分数据包,分数据包的大小可以固定也可以不固定。通过对各个小的分数据包进行分开传输,以提高传输效率。此种情况下,所述起始帧数据中的所述验证信息为所述待传输数据的总大小、所述待传输数据的第一校验码及与所述待传输数据对应的分数据包个数。对所述起始帧数据进行解析得到所述待传输数据的总大小、所述待传输数据的第一校验码及与所述待传输数据对应的分数据包个数,并将上述信息存储在所述机箱管理控制器。所述第一校验码可以为md5值。
40.s12:接收所述基板管理控制器发送的所述待传输数据,并利用解析得到的所述验证信息对接收到的所述待传输数据进行验证,如果验证通过,则数据传输完成,如果验证不通过,则数据传输失败。
41.本实施例中,接收所述基板管理控制器发送的所述待传输数据,并利用解析得到的所述验证信息对接收到的所述待传输数据进行验证,如果验证通过,则数据传输完成,如果验证不通过,则数据传输失败。在分包传输的过程中,首先接收所述基板管理控制器发送的所述待传输数据的各个分数据包并写入临时文件。其中,各个所述分数据包为对所述待传输数据进行分割后得到的数据包。然后将所述临时文件中的各个所述分数据包进行整合操作,以得到接收到的所述待传输数据。在此基础上,生成与接收到的所述待传输数据对应的第二校验码,同样的,所述第二校验码也为md5值。然后判断所述第二校验码与所述第一校验码是否一致,如果是,则验证通过,如果否,则验证不通过。
42.为了提高数据准确性,也可以在接收到各个所述分数据包时首先对接收到的各个所述分数据包进行校验。也即在接收到所述基板管理控制器发送的所述待传输数据的各个所述分数据包后进一步对接收到的各个所述分数据包进行校验并将校验通过的所述分数据包写入所述临时文件。该校验不同于对整个所述待传输数据的校验过程,其之间的校验方式可以根据业务需求通过在所述i2c数据接收进程和所述i2c数据发送进程中进行约定,例如加和校验等,本技术实施例对此不进行限定。
43.可见,本技术实施例先启动i2c数据接收进程以获取启动i2c数据发送进程的基板管理控制器发送的起始帧数据,并对所述起始帧数据进行解析得到与待传输数据相关的验证信息;然后接收所述基板管理控制器发送的所述待传输数据,并利用解析得到的所述验证信息对接收到的所述待传输数据进行验证,如果验证通过,则数据传输完成,如果验证不通过,则数据传输失败。本技术实施例通过机箱管理控制器端的i2c数据接收进程和基板管理控制器端的i2c数据发送进程传输起始帧数据,机箱管理控制器根据起始帧数据中的相关验证信息对待传输数据进行验证,能够不受限于协议类型以实现机箱管理控制器与基板管理控制器之间基于i2c的高速率数据传输。
44.图2为本技术实施例提供的一种基于i2c通信的数据传输方法流程图。参见图2所示,该基于i2c通信的数据传输方法应用于基板管理控制器,包括:
45.s21:启动i2c数据发送进程以向启动i2c数据接收进程的机箱管理控制器发送起始帧数据,以便所述机箱管理控制器对接收到的所述起始帧数据进行解析得到与待传输数据相关的验证信息。
46.s22:向所述机箱管理控制器发送待传输数据,以便所述机箱管理控制器利用解析
得到的所述验证信息对接收到的所述待传输数据进行验证,如果验证通过,则数据传输完成,如果验证不通过,则数据传输失败。
47.本实施例中,首先启动i2c数据发送进程以向启动i2c数据接收进程的机箱管理控制器发送起始帧数据,以便所述机箱管理控制器对接收到的所述起始帧数据进行解析得到与待传输数据相关的验证信息。在将大文件分成小文件进行传输的情况下,所述基板管理控制器启动所述i2c数据发送进程,当接收到反馈信息后发送所述起始帧数据,通知所述机箱管理控制器开始传输文件并通知所述机箱管理控制器文件总大小及md5值等校验码及总包数。
48.然后向所述机箱管理控制器发送待传输数据,以便所述机箱管理控制器利用解析得到的所述验证信息对接收到的所述待传输数据进行验证,如果验证通过,则数据传输完成,如果验证不通过,则数据传输失败。所述机箱管理控制器接收数据并写入文件,当所述基板管理控制器传输最后一个包结束传输,所述机箱管理控制器接收到最后一个包写入文件并校验md5值,完成文件传输过程。关于所述机箱管理控制器的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
49.可见,本技术实施例先启动i2c数据发送进程以向启动i2c数据接收进程的机箱管理控制器发送起始帧数据,以便所述机箱管理控制器对接收到的所述起始帧数据进行解析得到与待传输数据相关的验证信息。然后向所述机箱管理控制器发送待传输数据,以便所述机箱管理控制器利用解析得到的所述验证信息对接收到的所述待传输数据进行验证,如果验证通过,则数据传输完成,如果验证不通过,则数据传输失败。本技术实施例中的基板管理控制器在启动i2c数据发送进程的情况下,向机箱管理控制器发送起始帧数据以开始传输数据,无需依赖i2c中固有的协议,提高文件传输效率。
50.参见图3所示,本技术实施例还相应公开了一种基于i2c通信的数据传输装置,应用于机箱管理控制器,包括:
51.解析模块11,用于启动i2c数据接收进程以获取启动i2c数据发送进程的基板管理控制器发送的起始帧数据,并对所述起始帧数据进行解析得到与待传输数据相关的验证信息;
52.验证模块12,用于接收所述基板管理控制器发送的所述待传输数据,并利用解析得到的所述验证信息对接收到的所述待传输数据进行验证,如果验证通过,则数据传输完成,如果验证不通过,则数据传输失败。
53.可见,本技术实施例先启动i2c数据接收进程以获取启动i2c数据发送进程的基板管理控制器发送的起始帧数据,并对所述起始帧数据进行解析得到与待传输数据相关的验证信息;然后接收所述基板管理控制器发送的所述待传输数据,并利用解析得到的所述验证信息对接收到的所述待传输数据进行验证,如果验证通过,则数据传输完成,如果验证不通过,则数据传输失败。本技术实施例通过机箱管理控制器端的i2c数据接收进程和基板管理控制器端的i2c数据发送进程传输起始帧数据,机箱管理控制器根据起始帧数据中的相关验证信息对待传输数据进行验证,能够不受限于协议类型以实现机箱管理控制器与基板管理控制器之间基于i2c的高速率数据传输。
54.在一些具体实施例中,所述基于i2c通信的数据传输装置还包括:
55.判断模块,用于根据所述i2c数据接收进程中的预设信息判断所述起始帧数据是
否携带启动传输指令,如果是,则对所述起始帧数据进行解析得到与所述待传输数据相关的所述验证信息。
56.在一些具体实施例中,所述验证模块12,具体包括:
57.接收单元,用于接收所述基板管理控制器发送的所述待传输数据的各个分数据包并写入临时文件;其中,各个所述分数据包为对所述待传输数据进行分割后得到的数据包;
58.第一校验单元,用于对接收到的各个所述分数据包进行校验并将校验通过的所述分数据包写入所述临时文件;
59.整合单元,用于将所述临时文件中的各个所述分数据包进行整合操作,以得到接收到的所述待传输数据;
60.第二校验单元,用于生成与接收到的所述待传输数据对应的第二校验码,并判断所述第二校验码与所述第一校验码是否一致,如果是,则验证通过,如果否,则验证不通过。
61.进一步的,本技术实施例还提供了一种电子设备。图4是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
62.图4为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的基于i2c通信的数据传输方法中的相关步骤。
63.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
64.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
65.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的基于i2c通信的数据传输方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到的起始帧数据。
66.进一步的,本技术实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的基于i2c通信的数据传输方法步骤。
67.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
68.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将
一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
…”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
69.以上对本发明所提供的基于i2c通信的数据传输方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1