[发明专利]一种面向BMC的I2C控制器的快速传输方法有效
申请号: | 201810023683.0 | 申请日: | 2018-01-10 |
公开(公告)号: | CN108228520B | 公开(公告)日: | 2020-06-16 |
发明(设计)人: | 王朝辉;王霞;王振江 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F13/42 | 分类号: | G06F13/42 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 刘淑风 |
地址: | 215100 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 bmc i2c 控制器 快速 传输 方法 | ||
1.一种面向BMC的I2C控制器的快速传输方法,其特征在于,将32位ARM分为两个16位,每个16位的低8位作为I2C的传输数据,高8位作为控制信号进行传输,在I2C控制器与ARM总线之间有读写宽度不同的两个FIFO用作命令和数据的缓存:
对于写命令数据端,FIFO写宽度为(8+3)*2=22位,其中8位为有效数据,3位表示START、STOP、INVALID三个标志位,FIFO读宽度为8+3=11位;
对于ARM读数据端,FIFO写宽度为(8+1)=9位,其中8位为有效数据,1位表示无效或者FIFO为空的标志位,FIFO的读宽度为(8+1)*2=18位。
2.根据权利要求1所述的一种面向BMC的I2C控制器的快速传输方法,其特征在于,对于写命令数据端,状态机如下:
1) I2C_START状态,当收到START标志,状态机跳到I2C_SLAVE_ADDR状态;
2) I2C_SLAVE_ADDR状态,根据8位数据的最低位跳转到读状态或者写状态,如果最低位为1,则跳转到I2C_READ状态,否则跳转I2C_WRITE状态;
3) I2C_WRITE状态,如果接收到STOP标志,状态机跳到I2C_STOP状态,如果接收到START标志,立即跳到I2C_START状态,否则状态机一直处于向slaver写状态;
4) I2C_READ状态,如果接收到STOP标志,状态机跳到I2C_STOP状态,否则状态机一直处于向slaver读数据;
5) I2C_STOP状态,表示状态机处于停止状态。
3.根据权利要求1或2所述的一种面向BMC的I2C控制器的快速传输方法,其特征在于,如果数据长度byte数为奇数,状态机必须将最后一个byte的INVALID标志位置1,并写入一个随机数,用来凑满32位总线。
4.根据权利要求1或2所述的一种面向BMC的I2C控制器的快速传输方法,其特征在于,I2C支持快速模式、发出byte模式、多byte地址发出接收模式。
5.根据权利要求1或2所述的一种面向BMC的I2C控制器的快速传输方法,其特征在于,该方法适用于各种基于SOC的I2C控制系统、或用于非SOC的I2C控制器和FPGA设计。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810023683.0/1.html,转载请声明来源钻瓜专利网。