[发明专利]一种从I2C设备解挂死的方法有效
| 申请号: | 202010381034.5 | 申请日: | 2020-05-08 |
| 公开(公告)号: | CN111538626B | 公开(公告)日: | 2023-03-24 |
| 发明(设计)人: | 周健 | 申请(专利权)人: | 成都蓉博通信技术有限公司 |
| 主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F13/42 |
| 代理公司: | 成都天嘉专利事务所(普通合伙) 51211 | 代理人: | 邓小兵 |
| 地址: | 610000 四川省成都*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 i2c 设备 解挂死 方法 | ||
本发明公开了一种从I2C设备解挂死的方法,通过现有的从I2C设备的微处理器MCU上新增SDA_in管脚和SCL_in管脚,以及在微处理器MCU内部利用逻辑单元虚拟出计数器和比较器,再采用特定的连接关系就能够实现从I2C设备的解挂死,整个方案中不需要另外增加外围电子物料,具有成本低的优点。
技术领域
本发明涉及通信技术领域,尤其涉及一种从I2C设备解挂死的方法。
背景技术
I2C总线广泛应用于光模块中,大多数光模块都需要实现一个从I2C设备,以便于和主板上的主I2C设备进行通讯。如图2所示,I2C总线包括SDA信号线和SCL信号线,从I2C设备通过SDA信号线和SCL信号线与主I2C设备进行通讯。
但在某些时候,从I2C设备发生异常不能正确响应主I2C设备的访问时,会将SDA信号一直拖死到低电平,这一异常现象被称之为从I2C设备“挂死”,注意从I2C设备在正常工作状态下SDA信号是处于被从I2C设备”释放”的状态,即被外部的上拉电阻至VCC而呈现出高电平。于是一些光模块的多源协议规定,当光模块的从I2C设备不能正确响应主I2C设备的访问时,主I2C设备在探知到SDA被异常“挂死”后,可以发出连续9个SCL的脉冲信号到从I2C设备,则从I2C设备应必须重置其从I2C接口并恢复到正常工作状态,这一过程被称之为从I2C设备“解挂死”。
虽然在光模块的多源协议中规定了从I2C设备挂死时可通过主I2C设备发出连续9个SCL的脉冲信号进行解挂死,但在实际应用过程中,光模块因为自身硬件条件有限,通常忽略从I2C设备的“解挂死”功能。而当光模块的从I2C设备发生“挂死”时,就需要施工人员到现场插拔光模块重新上电复位,否则光模块的从I2C设备将无法工作进而导致和主板的I2C通讯异常,这不仅影响了正常的通讯,还会产生较大的人工成本。因此,需要对现有技术进行改进。
发明内容
本发明的目的在于克服现有技术中存在的上述问题,提供了一种从I2C设备解挂死的方法,本发明所要解决的技术问题是以低成本实现从I2C设备的解挂死。
为实现上述目的,本发明采用的技术方案如下:
一种从I2C设备解挂死的方法,其特征在于:包括以下步骤:
步骤一:在从I2C设备的微处理器MCU上新增SDA_in管脚和SCL_in管脚,并在微处理器MCU内部利用逻辑单元虚拟出计数器和比较器,然后将SDA_in管脚的一端与并联在SDA信号线上,将SDA_in管脚的另一端分别与计数器的低电平使能端和高电平清零端相连;将SCL_in管脚的一端并联在SCL信号线上,将SCL_in管脚的另一端与计数器的时钟端相连,将比较器的输入端与计数器的输出端相连,将比较器的输出端与从I2C设备的高电平复位端相连;
步骤二:从I2C设备挂死时,由主I2C设备通过SCL信号线向从I2C设备连续发送9个SCL脉冲信号,此时SCL_in将接收到9个SCL脉冲信号;当SDA_in=1时,计数器的输出值被异步清零;当SDA_in=0时,计数器被同步使能,来一个SCL_in的上升沿计数器的输出值就累加1;
步骤三:将计数器的输出值送入比较器中进行比较,若累加的计数大于8,则比较器向从I2C设备发出复位信号,使从I2C设备复位重启,从I2C设备重启后释放SDA信号线,完成从I2C设备的解挂死。
所述步骤三中,当从I2C设备重启完成解挂死后,SDA_in=1,计数器被清零,从I2C设备不再被复位。
所述计数器为4-bit计数器。
采用本发明的优点在于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都蓉博通信技术有限公司,未经成都蓉博通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010381034.5/2.html,转载请声明来源钻瓜专利网。





