一种兼容I2C通信与IPMB通信的方法与流程

文档序号:11707539阅读:3046来源:国知局
一种兼容I2C通信与IPMB通信的方法与流程

本发明涉及一种串行总线通信方法。



背景技术:

i2c(inter-integratedcircuit)总线是由philips公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。

i2c通过串行数据(sda)线和串行时钟(scl)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别,而且都可以作为一个发送器或接收器(由器件的功能决定)。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件。此时,任何被寻址的器件都被认为是从机。

ipmi(intelligentplatformmanagementinterface)是一个智能平台管理接口。用户可以利用ipmi监视服务器等设备的物理特征,如各部件的温度、电压、风扇工作状态、电源供应以及机箱入侵等。

ipmb使用“请求——应答”协议,发送一条请求消息给一个智能设备,该设备会返回一个独立的应答消息。任何传输协议都是有限制的,ipmb总线直接支持有15个内部节点的系统,系统应用应该努力减轻总线的占用时间,例如,每秒钟少于6条消息,这样做,可以确保节点可以成功在要求的重试次数内抢占总线。请求消息和应答消息都是通过i2c总线的“主写”(masterwrite)模式传输的,也就是说,一条请求消息是从一个作为i2c主端(master)的节点发出,被一个作为i2c从设备的节点接收;对应的应答消息是从一个作为i2c主端的应答设备发出,被一个作为i2c从设备的请求发起者接收。

ipmb点对点传输,数据包包含ipmbconnectionheaders、command、和data字节。如图1所示。

如图2所示,i2c总线写寄存器的标准流程为:

1.master发起起始信号

2.master发送i2caddr(7bit)和w操作0(1bit),等待ack

3.slave发送ack

4.master发送regaddr(8bit),等待ack

5.slave发送ack

6.master发送data(8bit),即要写入寄存器中的数据,等待ack

7.slave发送ack

8.第6步和第7步可以重复多次,即顺序写多个寄存器

9.master发起停止信号

ipmb总线协议中i2c是用作媒介和物理层的。协议严格按照下列条件使用i2c服务:

1、只使用主写模式(masterwrite)(i2c从地址的r/w位一直是0)。

2、不使用10_bit寻址。

3、每次传输只用一个从地址。

4、不使用repeatedstarts,repeatedstarts是i2c协议为了在传输的过程中改变总线方向而定义的。由于ipmb协议只用到主写模式,所以就不需要repeatedstarts了,不过在非ipmb协议的设备中还是要继续使用repeatedstarts的。

5、i2c的通知机制(ackbit)只表示字节被从端接收,不能保证接收的数据的完整性和正确性。

me(managementengine)是英特尔的管理引擎驱动,该驱动为intel针对其桌面系列芯片组推出的一款热能管理驱动。它介于固件和系统驱动之间,类似于一种接口(interface),通过这个接口,系统可以和固件之间相互作用,从而达到改善热能管理的目的。

公开号为cn104483913a的中国发明专利提供一种应用i2c总线实现龙芯刀片服务器电源状态监控的方法,本发明采用i2c总线进行ipmb命令传输,将采集到的电源模块状态信息通过i2c端口扩展芯片连接至管理控制单元中的bmc模块,远程管理用户通过网络与bmc模块通信,实现远程用户对电源在位信息、工作状态信息、电压信息、电流信息等的实时监控。该技术使用了额外的扩展芯片来实现ipmb的兼容,不仅占用了电路板资源,还可能会产生额外的时延,影响通信性能。



技术实现要素:

本发明为解决上述技术问题,为此,本发明提供一种兼容i2c通信与ipmb通信的方法,它具实现i2c主从模式的快速切换,同时保证数据链路的简洁,不占用额外的链路,该模块完全兼容正常i2c通信与ipmb通信,极大地提高了资源利用率的优点。

为了实现上述目的,本发明采用如下技术方案。

一种兼容i2c通信与ipmb通信的方法,当与i2c从设备进行通信的时候,进行标准i2c读写数据操作,按照需求进行读指令和写指令的传递。此时由bmc控制产生i2c时钟,并且拉低数据线产生起始信号,随后按照协议发送地址和数据,在传输完成后发出停止信号完成一次命令的发出;

当与me通信的时候,按照ipmb协议,写数据走的依然是正常的i2c写寄存器流程,而当进行读数据操作的时候,me会给bmc发送起始信号,产生时钟和写请求。

优选的,系统一直检测i2c总线信号,当总线上有起始信号的时候,会进行内部的自我判定,判断该信号是bmc发出的命令还是外部发给bmc的写请求,如果判断确定是外部的写请求,就进入地址的校验流程,根据me提供的时钟信号,记录每个bit字节,得出me发送的地址,之后与预先设定的bmc地址对比校验是否一致,校验通过则进入数据记录环节,记录收到的数据,经过格式和链路的处理,发送到读寄存器中,并按照bmc要求进行数据的转发和上传。

优选的,数据传输完成后,me会发送停止信号,此时本模块将最后1byte数据发出,进入停止状态,并立即恢复idle等待下一次读写。

本发明的有益效果:具实现i2c主从模式的快速切换,同时保证数据链路的简洁,不占用额外的链路,该模块完全兼容正常i2c通信与ipmb通信,极大地提高了资源利用率的优点。

附图说明

图1是ipmb点对点传输数据包示意图。

图2是i2c总线写方式数据包示意图。

图3是本实施例方法流程图。

图4是本实施例状态转换流程图。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

如图3、图4所示,一种兼容i2c通信与ipmb通信的方法,当与i2c从设备进行通信的时候,进行标准i2c读写数据操作,按照需求进行读指令和写指令的传递。此时由bmc控制产生i2c时钟,并且拉低数据线产生起始信号,随后按照协议发送地址和数据,在传输完成后发出停止信号完成一次命令的发出;

当与me通信的时候,按照ipmb协议,写数据走的依然是正常的i2c写寄存器流程,而当进行读数据操作的时候,me会给bmc发送起始信号,产生时钟和写请求。

系统一直检测i2c总线信号,当总线上有起始信号的时候,会进行内部的自我判定,判断该信号是bmc发出的命令还是外部发给bmc的写请求,如果判断确定是外部的写请求,就进入地址的校验流程,根据me提供的时钟信号,记录每个bit字节,得出me发送的地址,之后与预先设定的bmc地址对比校验是否一致,校验通过则进入数据记录环节,记录收到的数据,经过格式和链路的处理,发送到读寄存器中,并按照bmc要求进行数据的转发和上传。

数据传输完成后,me会发送停止信号,此时本模块将最后1byte数据发出,进入停止状态,并立即恢复idle等待下一次读写。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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