[发明专利]基于I2C接口通过CPLD来实现PCA9555功能的方法有效
申请号: | 201710267050.X | 申请日: | 2017-04-21 |
公开(公告)号: | CN107066746B | 公开(公告)日: | 2020-09-25 |
发明(设计)人: | 蔡享荣 | 申请(专利权)人: | 深圳市同泰怡信息技术有限公司 |
主分类号: | G06F13/42 | 分类号: | G06F13/42;G06F30/33 |
代理公司: | 深圳市科吉华烽知识产权事务所(普通合伙) 44248 | 代理人: | 王雨时 |
地址: | 518000 广东省深圳市南山区粤*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 i2c 接口 通过 cpld 实现 pca9555 功能 方法 | ||
1.一种基于I2C接口通过CPLD来实现PCA9555功能的方法,其特征在于,包括以下步骤:
步骤A:初始化步骤,所述初始化步骤系将CPLD配制成I2C Slave设备;
步骤B:运行步骤,所述运行步骤系将主板的I2C通讯接口连接到CPLD的GPIO接口;
其中,
所述步骤A中通过状态机机制实现CPLD配制成I2C Slave;
所述状态机机制通过VHDL语言来实现;
所述步骤A包括以下分步骤:
步骤A1:将I2C分解成若干状态;
步骤A2:主板BMC确定CPLD设备地址;
步骤A3:主板BMC向所述CPLD设备发送操作信号;
步骤A4:CPLD解析并执行操作信号;
所述步骤A1中将I2C分解成Idle状态、Read Address状态、Send_ACK2状态、Write_CMD_IO0状态、Write_CMD_IO1状态、Read_CMD_IO0状态、Read_CMD_IO1状态、Read_CMD_IO9状态、Send_ACK_1状态、BMC_COMMAND状态、Wait_ACK_1状态、Wait_ACK_2状态,利用这些状态有效的把I2C的通信协议分解成一个一个的模块,这些模块内部处理完后会跳转到下一个模块进行处理,如果处理完成了就会跳转到Idel状态,这些模块之间的跳转遵循以下原则,首先Master设备发送CPLD设备的地址,当CPLD读取到的地址值跟自身设置的地址一样时就会发送ACK信号给Master设备,如果地址不一样CPLD不进行后续处理,然后根据地址值的最后一位是高电平还是低电平来判断此命令是读操作还是写操作,读为高电平,写为低电平,此操作的下一步是Master发送Command数据,Command数据用来判定是对IO0/IO1/IO9的读操作,还是IO0/IO1的写操作,CPLD会对此数据解析出来执行对应的操作,当数据操作完成后CPLD会等待Maseter设备发送Wait_ACk的信号或者CPLD发送Send_ACK信号来指示数据的接收或者发送是否已经完成。
2.根据权利要求1所述的基于I2C接口通过CPLD来实现PCA9555功能的方法,其特征在于,所述步骤A2包括以下分步骤:
步骤A21:主板BMC发送寻址信号;
步骤A22:CPLD读取所述寻址信号,若寻址信号地址与自身相同则发送相应信号,若寻址信号地址与自身不同则不做处理。
3.根据权利要求2所述的基于I2C接口通过CPLD来实现PCA9555功能的方法,其特征在于,所述CPLD通过寻址信号最后一位判读进行读操作或写操作。
4.根据权利要求3所述的基于I2C接口通过CPLD来实现PCA9555功能的方法,其特征在于,所述步骤A3中所述主板BMC发送所述CPLD可解析的具体操作信号。
5.根据权利要求4所述的基于I2C接口通过CPLD来实现PCA9555功能的方法,其特征在于,所述步骤A还包括步骤A5:发送结束信号停止操作;所述步骤A5在步骤A4后执行。
6.根据权利要求5所述的基于I2C接口通过CPLD来实现PCA9555功能的方法,其特征在于:若所述操作为CPLD读操作,则步骤A5为所述CPLD向所述BMC发送结束信号;若所述操作为CPLD写操作,则步骤A5为所述BMC向所述CPLD发送结束信号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市同泰怡信息技术有限公司,未经深圳市同泰怡信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710267050.X/1.html,转载请声明来源钻瓜专利网。