CN103164379B - 一种实现热拔和热插的方法以及电子设备 - Google Patents
一种实现热拔和热插的方法以及电子设备 Download PDFInfo
- Publication number
- CN103164379B CN103164379B CN201110428015.4A CN201110428015A CN103164379B CN 103164379 B CN103164379 B CN 103164379B CN 201110428015 A CN201110428015 A CN 201110428015A CN 103164379 B CN103164379 B CN 103164379B
- Authority
- CN
- China
- Prior art keywords
- equipment
- bus
- parts
- data
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请公开了一种实现热拔和热插的方法以及电子设备,所述实现热拔的方法应用在第一设备中,所述第一设备通过I2C总线与第二设备相连,其中,所述第一设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述第二设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,所述方法包括:获得与所述第二设备进行I2C通信的错误信息;基于所述错误信息,对所述M个I2C部件以及所述N个I2C部件进行遍历操作;基于所述遍历操作,获得多个反馈信息;在确定所述多个反馈信息全部来自所述M个I2C部件时,确定所述第一设备与所述第二设备间的所述I2C总线已经断开。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种实现热拔和热插的方法以及电子设备。
背景技术
I2C(Inter-IntegratedCircuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。
每个I2C总线上面连接有主机和从机,主机和从机间通过I2C总线进行数据传输,并且主机和从机上面都连接有多个部件。但是,I2C总线协议规范中是不支持热插拔的。故而,当从机和主机分开时,会造成死锁,从而使数据传输无法继续进行。所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无另外的控制指令,它们都将无法推进下去。
现有技术中还无法解决I2C总线不支持热插拔的技术问题,
发明内容
本发明提供一种实现热插和热拔的方法,用以解决现有技术中I2C总线不支持热插拔的问题。
本发明通过本申请中的实施例,提供如下技术方案:
一方面,本发明通过本申请中的一个实施例,提供如下技术方案:
一种实现热拔的方法,应用在第一设备中,所述第一设备通过I2C总线与第二设备相连,其中,所述第一设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述第二设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,所述方法包括:
获得与所述第二设备进行I2C通信的错误信息;
基于所述错误信息,对所述M个I2C部件以及所述N个I2C部件进行遍历操作;
基于所述遍历操作,获得多个反馈信息;
在确定所述多个反馈信息全部来自所述M个I2C部件时,确定所述第一设备与所述第二设备间的所述I2C总线已经断开。
进一步的,所述对所述M个I2C部件以及所述N个I2C部件进行遍历操作,具体为:
向所述M个I2C部件以及所述N个I2C部件中的每一个部件发送一个遍历消息。
进一步的,在所述确定所述第一设备与所述第二设备间的所述I2C总线已经断开之后,所述方法还包括:
设置所述I2C总线,以使所述第一设备能够获得与所述第二设备连接的通知消息。
进一步的,所述设置所述I2C总线,具体为:
将所述I2C总线中的CLOCK线设置为GPO状态,将DATA线设置为GPI中断模式。
进一步的,所述获得与所述第二设备进行I2C通信的错误信息之前,还包括:
当所述第一设备读取到来自于所述第二设备的数据包时,将数据包中包含的校验码与保存于所述第一设备中的预设校验码进行匹配;
如果匹配成功,则确定所述数据包中包含的数据为正确的数据;
如果匹配不成功,则确定所述数据包中包含的数据为错误的数据。
进一步的,在所述确定所述数据包中包含的数据为错误的数据之后,所述方法还包括:
将所述数据包对应的第一计数值加1;
判断所述第一计数值是否大于一预设阈值,如果判断结果为是,确定所述第一设备和所述第二设备之间的数据传输出现错误;如果判断结果为否,继续读取所述数据包。
另一方面,本发明通过本申请中的另一实施例提供如下技术方案:
一种实现热插的方法,应用在第一设备中,所述第一设备通过I2C总线与第二设备相连,其中,所述第一设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述第二设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,在所述第一设备在与所述第二设备断开状态时,将所述I2C总线中的将DATA线设置为GPI中断模式,所述方法包括:
获得所述DATA线上从高电平到低电平的下降沿;
基于所述下降沿,产生一中断事件;
处理所述中断事件,以对所述M个I2C部件以及所述N个I2C部件进行遍历操作;
基于所述遍历操作,获得多个反馈信息;
确定所述多个反馈信息是否有来自所述N个I2C部件的反馈消息;
如果有,则确定所述所述第一设备已通过所述I2C总线与所述第二设备连接。
进一步的,所述对所述M个I2C部件以及所述N个I2C部件进行遍历操作,具体为:
向所述M个I2C部件以及所述N个I2C部件中的每一个部件发送一个遍历消息。
进一步的,所述确定所述第一设备已通过所述I2C中线与所述第二设备连接之后,还包括:
设置所述I2C总线,以使在满足预设条件时,所述第一设备能通过所述I2C总线与所述第二设备通信。
进一步的,所述设置所述I2C总线,具体为:
将所述I2C总线中的CLOCK线由GPO状态设置为CLOCK状态,将DATA线设置为由GPI中断模式设置为DATA状态。
另一方面,本发明通过本申请中的另一实施例提供如下技术方案:
一种电子设备,所述电子设备通过I2C总线与另一设备相连,其中,所述电子设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述另一设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,所述电子设备包括:
获得单元:用于获得与所述另一设备进行I2C通信的错误信息;
遍历单元:用于基于所述错误信息,对所述M个I2C部件以及所述N个I2C部件进行遍历操作;
反馈信息获得单元:用于基于所述遍历操作,获得多个反馈信息;
确定单元:用于在确定所述多个反馈信息全部来自所述M个I2C部件时,确定所述电子设备与所述另一设备间的所述I2C总线已经断开。
进一步的,所述电子设备还包括:
匹配单元:用于在获得与所述另一设备进行I2C通信的错误信息之前,当所述电子设备读取到来自于所述另一设备的数据包时,将数据包中包含的校验码与保存于所述电子设备中的预设校验码进行匹配;
匹配成功单元:用于如果匹配成功,则确定所述数据包中包含的数据为正确的数据;
匹配失败单元:用于如果匹配不成功,则确定所述数据包中包含的数据为错误的数据。
进一步的,所述电子设备还包括:
设置单元:用于在确定所述电子设备与所述另一设备间的所述I2C总线已经断开之后,设置所述I2C总线,以使在满足预设条件时,所述电子设备能通过所述I2C总线连接至所述另一设备。
进一步的,所述匹配失败单元,还包括:
第一计数器模块:用于在所述确定所述数据包中包含的数据为错误的数据之后,将所述数据包对应的第一计数值加1;
判断模块:用于判断所述第一计数值是否大于一预设阈值,如果判断结果为是,确定所述电子设备和所述另一设备之间的数据传输出现错误;如果判断结果为否,继续读取所述数据包。
另一方面,本发明通过本申请中的另一实施例提供如下技术方案:
一种电子设备,所述电子设备通过I2C总线与另一设备相连,其中,所述电子设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述另一设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,在所述设备设备在热断开状态时,将所述I2C总线中的DATA线设置为GPI中断模式,所述电子设备包括:
获得单元:用于获得所述DATA线上从高电平到低电平的下降沿;
中断事件单元:用于基于所述下降沿,产生一中断事件;
处理单元:用于处理所述中断事件,以对所述M个I2C部件以及所述N个I2C部件进行遍历操作;
反馈信息单元:用于基于所述遍历操作,获得多个反馈信息;
确定单元:用于确定所述多个反馈信息是否有来自所述N个I2C部件的反馈消息;以及
如果有,则确定所述所述电子设备已通过所述I2C总线与所述另一设备连接。
进一步的,所述电子设备还包括:
设置单元:用于确定所述电子设备已通过所述I2C中线与所述另一设备连接之后,设置所述I2C总线,以使在满足预设条件时,所述电子设备能通过所述I2C总线与所述另一设备通信。
通过上述技术方案中的一个或多个技术方案,具有如下技术效果或优点:
提供一种解决I2C总线无法实现热插拔的问题,解决两个设备之间通过I2C总线连接无法实现两个设备间热插拔的问题。
更进一步解决了因两个设备分离导致的I2C总线死锁的问题。
由于采用了在数据传输发生错误时,才向I2C总线上连接的部件发送查询消息的技术方案,故而达到了减少查询次数、降低系统功耗的技术效果;
由于采用了基于硬件设置来判断主机和从机是否连接上的技术方案,故而达到了判断主机和从机是否连接上时完全采用硬件控制、故而提高了处理器效率的技术效果。
附图说明
图1为本申请实施例一中实现热拔方法的流程图;
图2为本申请实施例二中实现热插方法的流程图;
图3为本申请实施例三中检测数据传输正确与否的流程图;
图4为本申请实施例四中结合具体实现环境实现热插和热拔的流程图;
图5为本申请实施例五中电子设备的方框图;
图6为本申请实施例五中电子设备细化方框图;
图7为本申请实施例五中电子设备进一步细化的方框图;
图8为本申请实施例五中匹配失败单元的方框图;
图9为本申请实施例六中电子设备的方框图;
图10为本申请实施例六中电子设备细化的方框图。
具体实施方式
为了使本申请所属技术领域中的技术人员更清楚地理解本申请,下面结合附图,通过具体实施例对本申请技术方案作详细描述。
一方面,本申请实施例一提供一种实现热拔的方法,应用在第一设备中,所述第一设备通过I2C总线与第二设备相连,其中,所述第一设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述第二设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,如图1所示,所述方法包括如下步骤:
S101:获得与所述第二设备进行I2C通信的错误信息;
在本申请实施例中,第一设备为主机,第二设备为从机。当第一设备与第二设备进行I2C通信中出现错误信息,例如,第一设备提示:无法检测到数据传输通道,那么产生这个错误信息,而造成该错误信息的原因可能是因为第一设备和第二设备之间已经断开,也可能是数据传输出现错误,也可能是其他原因造成的错误。在本申请中,对于第一设备和第二设备之间的通信出现何种错误不作限制。
S102:基于所述错误信息,对所述M个I2C部件以及所述N个I2C部件进行遍历操作;或者,S102’基于所述错误信息,对所述N个I2C部件进行遍历操作。所述S102’的实现需要在第一设备和第二设备连接时,第一设备获得第二设备的I2C部件。例如,N个I2C部件。
在具体实施过程中,在发现第一设备和第二设备之间的通讯出现错误后,为了防止第一设备和第二设备之间的通讯出现死锁,就要判断第一设备和第二设备之间是否已经断开。在本申请中,当第一设备检测到通信的错误信息后,就向基于I2C总线连接的多个部件中的每一个部件发送查询消息,当然也可以只对第二设备连接的多个I2C部件发送查询消息。
S103:基于所述遍历操作,获得多个反馈信息;
在具体实施过程中,如果第二设备与第一设备的连接没有断开,那么第二设备上面的每一个部件在接收到查询消息后,会基于这个查询消息,向第一设备发送一个反馈消息。例如,第一设备向所有部件分别发送一个消息询问:是否能够收到这条消息,如果任一部件收到这条消息,将反馈消息:收到。在本申请中,对于查询消息和反馈消息的内容不作限制。
S104:在确定所述多个反馈信息全部来自所述M个I2C部件时,确定所述第一设备与所述第二设备间的所述I2C总线已经断开。
在具体实施过程中,如果连接于第二设备的所有部件都没有向第一设备发送反馈消息,那么就说明第二设备和第一设备的连接已经断开。
本发明的实施例提供一种实现热拔的方法,解决两个设备之间通过I2C总线连接无法实现两个设备间热插拔的问题。更进一步解决了因两个设备分离导致的I2C总线死锁的问题。由于采用了在数据传输发生错误时,才向I2C总线上连接的部件发送查询消息的技术方案,故而达到了减少查询次数、降低系统功耗的技术效果。
在这种情况下,为了让第二设备能够再次连接于第一设备,同时同时该第一设备能够得知第二设备连接上,第一设备就要对I2C总线做一些设置。主要包括如下设置:
首先,为了第二设备连接于第一设备时,第一设备能够得知,对I2C总线作如下设置:将I2C总线中的DATA线与第一设备连接部分设置为GPI中断模式,也就是将DATA线设置为GPI状态,由于在第一设备与第二设备断开时,将I2C总线与第二设备连接部分设置为GPO状态,故而当第二设备再次连接于第一设备时,第一设备的GPI就会收到一个高电平到低电平的下降沿,从而触发中断,退出热断开模式,从而让第二设备连接于第一设备时,第一设备能够知道连接消息。
然后,为了让第一设备退出热断开的同时,第二设备也能退出热断开,还要对I2C总线作如下设置:将I2C总线中的CLOCK线与第一设备连接部分设置为GPO状态,并且设置为高电平,并且将CLOCK线与第二设备连接部分设置为GPI状态,当第一设备和第二设备连接上时,该GPI能够接收低电平到低高电平的上升沿,从而触发中断,退出热断开模式,从而让第一设备连接于第二设备时,第二设备能够知道连接消息。
另一方面,本申请实施例二中,提供一种实现热插的方法,应用在第一设备中,所述第一设备通过I2C总线与第二设备相连,其中,所述第一设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述第二设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,在所述第一设备在与所述第二设备断开状态时,将所述I2C总线中的将DATA线设置为GPI中断模式,如图2所示,所述方法包括如下步骤:
S201:获得所述DATA线上从高电平到低电平的下降沿;
在具体实施过程中,由于在对第一设备和第二设备经行热拔时,已经对第一设备的DATA线进行了设置,也就是将DATA线设置为GPI中断模式,第一就是将DATA线设置为GPI模式,第二是将GPI模式的DATA线设置为高电平。故而当第二设备插入第一设备时,第一设备的DATA线上会有一个从高电平到低电平的下降沿。
S202:基于所述下降沿,产生一中断事件;
在具体实施过程中,当第一设备的DATA线检测到这个下降沿的时候,就会触发第一设备去判断是否存在第二设备插入第一设备。
S203:处理所述中断事件,以对所述M个I2C部件以及所述N个I2C部件进行遍历操作;
这里的遍历操作和前面所描述的检测第一设备和第二设备断开时的遍历操作一样。第一设备向第一设备以及第二设备连接的多个部件发送一查询消息,然后如果设备有通过I2C总线与第一设备连接的话,将会向第一设备发送多个反馈消息。例如:第一设备发送如下消息:如果收到此消息请回复OK,然后任一部件收到上述消息后,会反馈:OK。基于这条反馈消息,第一设备就能够知道该部件与第一设备存在连接关系。在本申请中,对于查询消息和反馈消息的内容不作限制。
S204:基于所述遍历操作,获得多个反馈信息;
在具体实施过程中,这里基于遍历操作的不同,会有不同的反馈消息,比如如果只想第二设备连接的部件发送查询消息,那么反馈消息要么不存在,要么全都来自第二设备连接的多个部件。如果既向第一设备连接的多个部件发送查询消息也向第二设备连接的多个部件发送了查询消息,那么这里的反馈消息既有来自第一设备连接的部件的,也可能有来自第二设备连接的部件的。
S205:确定所述多个反馈信息是否有来自所述N个I2C部件的反馈消息;
S206:如果有,则确定所述所述第一设备已通过所述I2C总线与所述第二设备连接。
在具体实施过程中,如果第二设备没有与第一设备通过I2C总线相连,那么第二设备上面的部件自然是无法发送至第一设备,故而只要第二设备连接的部件有反馈消息,比如反馈:OK。则表明第二设备一定通过I2C总线与第一设备相连。
由于在第一设备和第二设备进行热断开,对I2C总线作了如下设置:将I2C总线中的CLOCK线与第一设备连接部分设置为GPO状态,并且设置为高电平,并且将CLOCK线与第二设备连接部分设置为GPI状态,当第一设备和第二设备连接上时,该GPI其会接收到一个由低电平到高电平的上升沿,故而第二设备能够知道热连接信息。
在具体实施过程中,确定第一设备和第二设备连接上后,为了有效进行通信,要对I2C总线进行设置,具体为:
将所述I2C总线的CLOCK线中与第一设备连接部分由GPO状态恢复为CLOCK状态,与第二设备连接部分由GPI状态恢复为DATA状态;将所述I2C总线的CLOCK线与第二设备连接部分由GPI状态恢复CLOCK状态,将I2C总线的DATA线中与第二设备连接部分由GPO状态恢复为DATA状态。
另一方面,本申请实施例三中,提供一种检测数据传输的方法,用于当第一设备和第二设备进行数据传输时,判断传输的数据是否出现错误,如图3所示,具体包括:
S301:当所述第一设备读取到来自于所述第二设备的数据包时,将数据包中包含的校验码与保存于所述第一设备中的预设校验码进行匹配;
在具体实施过程中,第一设备和第二设备以约定好的格式进行数据传输,比如包头+数据+CRC验证码;然后第一设备在接收到第二设备传输的数据后,首先校验CRC验证码是否正确。当然,在具体实施过程中,第一设备和第二设备之间以何种约定格式进行数据传输,本申请不作限制,其格式可以是包头+数据+校验码,也可以是数据+校验码,也可以是校验码+包头+数据,对于采用何种验证码验证数据传输正确与否,本申请也不做限制,可以是CRC校验码,也可以是其他校验码。
S302:如果匹配成功,则确定所述数据包中包含的数据为正确的数据;
S303:如果匹配不成功,则确定所述数据包中包含的数据为错误的数据。
在具体实施过程中,为了避免出现错误,当发现CRC验证错误时,第一设备会对该数据包的CRC验证码重新进行验证,如果多次验证CRC验证码都不正确,比如两次、三次,则表明传输的数据确实错误。自然,对于CRC验证码出现错误后,还要重复验证几次,要视具体情况而定,本申请不作限制。
同理,当第二设备接收到第一设备发送的数据包时,也采用的同样的方法进行验证。当然,第一设备和第二设备只是验证流程相同,但是不代表具体参数也相同。
另一方面,本申请实施例四中,将结合一个具体的应用环境对本申请中的技术方案做详细描述。
如图4所示,在本实施例中,第一设备也就是主机为一ARM系统401,从机也就是第二设备为一X86系统402;主机与从机通过一I2C总线相连,通过一电源403进行供电;
当主机获得和从机进行数据传输出现错误时,向主机和从机连接的每一个设备发送消息,如果没有收到与从机相连的设备反馈的消息,那么确定第一设备和第二设备之间的连接已经断开;而从图上可以看出,主机401和从机402都是由电源403供电的,故而由于断开了,从机402没有供电,故而会检测到一个低电平,从而确定处于断开状态。
在确定主机和从机之间的连接断开后,为了主机和从机再次插上时,能够连接,那么就要对I2C总线的CLOCK线404和DATA线405进行设置,主要包括如下设置:
首先,为了从机402连接于主机401时,主机能够得知,对I2C总线作如下设置:将I2C总线中的DATA线与主机401连接部分407设置为GPI中断模式,也就是将DATA线设置为GPI状态,由于在主机401与从机402断开时,将I2C总线与从机402连接部分409设置为GPO状态,故而当从机402再次连接于主机401时,主机401的GPI就会收到一个高电平到低电平的下降沿,从而触发中断,退出热断开模式,从而让从机402连接于主机401时,主机401能够知道连接消息。
然后,为了让主机401退出热断开的同时,从机402也能退出热断开,还要对I2C总线作如下设置:将I2C总线中的CLOCK线与主机连接部分406设置为GPO状态,并且设置为高电平,并且将CLOCK线与从机连接部分408设置为GPI状态,当主机和从机连接上时,该GPI能够接收低电平到低高电平的上升沿,从而触发中断,退出热断开模式,从而让主机401连接于从机402时,从机402能够知道连接消息。
由于采用了基于硬件设置来判断第一设备和第二设备是否连接上的技术方案,故而达到了判断第一设备和第二设备是否连接上时完全采用硬件控制、故而提高了处理器效率的技术效果。
另一方面,本申请实施例五中,提供一种电子设备,所述电子设备通过I2C总线与另一设备相连,其中,所述电子设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述另一设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,如图5所示,所述电子设备包括:
获得单元501:用于获得与所述另一设备进行I2C通信的错误信息;
遍历单元502:用于基于所述错误信息,对所述M个I2C部件以及所述N个I2C部件进行遍历操作;
反馈信息获得单元503:用于基于所述遍历操作,获得多个反馈信息;
确定单元504:用于在确定所述多个反馈信息全部来自所述M个I2C部件时,确定所述电子设备与所述另一设备间的所述I2C总线已经断开。
进一步的,所述电子设备,如图6所示,还包括:
匹配单元505:用于在获得与所述另一设备进行I2C通信的错误信息之前,当所述电子设备读取到来自于所述另一设备的数据包时,将数据包中包含的校验码与保存于所述电子设备中的预设校验码进行匹配;
匹配成功单元506:用于如果匹配成功,则确定所述数据包中包含的数据为正确的数据;
匹配失败单元507:用于如果匹配不成功,则确定所述数据包中包含的数据为错误的数据。
进一步的,所述电子设备,如图7所示,还包括:
设置单元508:用于在确定所述电子设备与所述另一设备间的所述I2C总线已经断开之后,设置所述I2C总线,以使在满足预设条件时,所述第一设备能通过所述I2C总线连接至所述第二设备。
进一步的,所述匹配失败单元,如图8所示,还包括:
第一计数器模块801:用于在所述确定所述数据包中包含的数据为错误的数据之后,将所述数据包对应的第一计数值加1;
判断模块802:用于判断所述第一计数值是否大于一预设阈值,如果判断结果为是,确定所述电子设备和所述另一设备之间的数据传输出现错误;如果判断结果为否,继续读取所述数据包。
由于本申请实施五中的电子设备为与实施本申请实施例一、三、四中的方法所对应的电子设备,所以基于本申请实施例一、三、四中的方法,本领域所属技术人员能够了解本申请实施五中的电子设备的具体实施方法以及本申请实施五的电子设备的各种变化形式。所以在此对于该电子设备的运行不再详细介绍,只要本领域所属技术人员基于本申请实施例一、三、四中的方法所采用的电子设备,都属于本申请所欲保护的范围。
另一方面,本申请实施例六中,提供一种电子设备,所述电子设备通过I2C总线与另一设备相连,其中,所述电子设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述另一设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,在所述设备设备在热断开状态时,将所述I2C总线中的DATA线设置为GPI中断模式,如图9所示,所述电子设备包括:
获得单元901:用于获得所述DATA线上从高电平到低电平的下降沿;
中断事件单元902:用于基于所述下降沿,产生一中断事件;
处理单元903:用于处理所述中断事件,以对所述M个I2C部件以及所述N个I2C部件进行遍历操作;
反馈信息单元904:用于基于所述遍历操作,获得多个反馈信息;
确定单元905:用于确定所述多个反馈信息是否有来自所述N个I2C部件的反馈消息;以及
如果有,则确定所述所述电子设备已通过所述I2C总线与所述另一设备连接。
进一步的,所述电子设备,如图10所示,还包括:
设置单元906:用于确定所述电子设备已通过所述I2C中线与所述另一设备连接之后,设置所述I2C总线,以使在满足预设条件时,所述电子设备能通过所述I2C总线与所述另一设备通信。
由于本申请实施六中的电子设备为与实施本申请实施例二、三、四中的方法所对应的电子设备,所以基于本申请实施例二、三、四中的方法,本领域所属技术人员能够了解本申请实施例六中的电子设备的具体实施方法以及本申请实施六的电子设备的各种变化形式。所以在此对于该电子设备的运行不再详细介绍,只要本领域所属技术人员基于本申请实施例二、三、四中的方法所采用的电子设备,都属于本申请所欲保护的范围。
上述技术方案中的一个或多个技术方案,具有如下技术效果或优点:
由于采用了在数据传输发生错误时,才向I2C总线上连接的部件发送查询消息的技术方案,故而达到了减少查询次数、降低系统功耗的技术效果;
由于采用了基于硬件设置来判断主机和从机是否连接上的技术方案,故而达到了判断主机和从机是否连接上时完全采用硬件控制、故而提高了处理器效率的技术效果。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (16)
1.一种实现热拔的方法,应用在第一设备中,所述第一设备通过I2C总线与第二设备相连,其中,所述第一设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述第二设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,其特征在于,所述方法包括:
获得与所述第二设备进行I2C通信的错误信息;
基于所述错误信息,对所述M个I2C部件以及所述N个I2C部件进行遍历操作;
基于所述遍历操作,获得多个反馈信息;
在确定所述多个反馈信息全部来自所述M个I2C部件时,确定所述第一设备与所述第二设备间的所述I2C总线已经断开。
2.如权利要求1所述的方法,其特征在于,所述对所述M个I2C部件以及所述N个I2C部件进行遍历操作,具体为:
向所述M个I2C部件以及所述N个I2C部件中的每一个部件发送一个遍历消息。
3.如权利要求1所述的方法,其特征在于,在所述确定所述第一设备与所述第二设备间的所述I2C总线已经断开之后,所述方法还包括:
设置所述I2C总线,以使所述第一设备能够获得与所述第二设备连接的通知消息。
4.如权利要求3所述的方法,其特征在于,所述设置所述I2C总线,具体为:
将所述I2C总线中的CLOCK线设置为GPO状态,将DATA线设置为GPI中断模式。
5.如权利要求1所述的方法,其特征在于,所述获得与所述第二设备进行I2C通信的错误信息之前,还包括:
当所述第一设备读取到来自于所述第二设备的数据包时,将数据包中包含的校验码与保存于所述第一设备中的预设校验码进行匹配;
如果匹配成功,则确定所述数据包中包含的数据为正确的数据;
如果匹配不成功,则确定所述数据包中包含的数据为错误的数据。
6.如权利要求5所述的方法,其特征在于,在所述确定所述数据包中包含的数据为错误的数据之后,所述方法还包括:
将所述数据包对应的第一计数值加1;
判断所述第一计数值是否大于一预设阈值,如果判断结果为是,确定所述第一设备和所述第二设备之间的数据传输出现错误;如果判断结果为否,继续读取所述数据包。
7.一种实现热插的方法,应用在第一设备中,所述第一设备通过I2C总线与第二设备相连,其中,所述第一设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述第二设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,在所述第一设备在与所述第二设备断开状态时,将所述I2C总线中的将DATA线设置为GPI中断模式,其特征在于,所述方法包括:
获得所述DATA线上从高电平到低电平的下降沿;
基于所述下降沿,产生一中断事件;
处理所述中断事件,以对所述M个I2C部件以及所述N个I2C部件进行遍历操作;
基于所述遍历操作,获得多个反馈信息;
确定所述多个反馈信息是否有来自所述N个I2C部件的反馈消息;
如果有,则确定所述所述第一设备已通过所述I2C总线与所述第二设备连接。
8.如权利要求7所述的方法,其特征在于,所述对所述M个I2C部件以及所述N个I2C部件进行遍历操作,具体为:
向所述M个I2C部件以及所述N个I2C部件中的每一个部件发送一个遍历消息。
9.如权利要求7所述的方法,其特征在于,所述确定所述第一设备已通过所述I2C中线与所述第二设备连接之后,还包括:
设置所述I2C总线,以使在满足预设条件时,所述第一设备能通过所述I2C总线与所述第二设备通信。
10.如权利要求9所述的方法,其特征在于,所述设置所述I2C总线,具体为:
将所述I2C总线中的CLOCK线由GPO状态设置为CLOCK状态,将DATA线设置为由GPI中断模式设置为DATA状态。
11.一种电子设备,所述电子设备通过I2C总线与另一设备相连,其中,所述电子设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述另一设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,其特征在于,所述电子设备包括:
获得单元:用于获得与所述另一设备进行I2C通信的错误信息;
遍历单元:用于基于所述错误信息,对所述M个I2C部件以及所述N个I2C部件进行遍历操作;
反馈信息获得单元:用于基于所述遍历操作,获得多个反馈信息;
确定单元:用于在确定所述多个反馈信息全部来自所述M个I2C部件时,确定所述电子设备与所述另一设备间的所述I2C总线已经断开。
12.如权利要求11所述的电子设备,其特征在于,还包括:
匹配单元:用于在获得与所述另一设备进行I2C通信的错误信息之前,当所述电子设备读取到来自于所述另一设备的数据包时,将数据包中包含的校验码与保存于所述电子设备中的预设校验码进行匹配;
匹配成功单元:用于如果匹配成功,则确定所述数据包中包含的数据为正确的数据;
匹配失败单元:用于如果匹配不成功,则确定所述数据包中包含的数据为错误的数据。
13.如权利要求12所述的电子设备,其特征在于,还包括:
设置单元:用于在确定所述电子设备与所述另一设备间的所述I2C总线已经断开之后,设置所述I2C总线,以使在满足预设条件时,所述电子设备能通过所述I2C总线连接至所述另一设备。
14.如权利要求12所述的电子设备,其特征在于,所述匹配失败单元,还包括:
第一计数器模块:用于在所述确定所述数据包中包含的数据为错误的数据之后,将所述数据包对应的第一计数值加1;
判断模块:用于判断所述第一计数值是否大于一预设阈值,如果判断结果为是,确定所述电子设备和所述另一设备之间的数据传输出现错误;如果判断结果为否,继续读取所述数据包。
15.一种电子设备,所述电子设备通过I2C总线与另一设备相连,其中,所述电子设备具有M个I2C部件基于I2C协议连接所述I2C总线上,所述另一设备具有N个I2C部件基于所述I2C协议连接到所述I2C总线上,M和N为大于0的整数,在所述设备设备在热断开状态时,将所述I2C总线中的DATA线设置为GPI中断模式,其特征在于,所述电子设备包括:
获得单元:用于获得所述DATA线上从高电平到低电平的下降沿;
中断事件单元:用于基于所述下降沿,产生一中断事件;
处理单元:用于处理所述中断事件,以对所述M个I2C部件以及所述N个I2C部件进行遍历操作;
反馈信息单元:用于基于所述遍历操作,获得多个反馈信息;
确定单元:用于确定所述多个反馈信息是否有来自所述N个I2C部件的反馈消息;以及
如果有,则确定所述电子设备已通过所述I2C总线与所述另一设备连接。
16.如权利要求15所述的电子设备,其特征在于,还包括:
设置单元:用于确定所述电子设备已通过所述I2C中线与所述另一设备连接之后,设置所述I2C总线,以使在满足预设条件时,所述电子设备能通过所述I2C总线与所述另一设备通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110428015.4A CN103164379B (zh) | 2011-12-19 | 2011-12-19 | 一种实现热拔和热插的方法以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110428015.4A CN103164379B (zh) | 2011-12-19 | 2011-12-19 | 一种实现热拔和热插的方法以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164379A CN103164379A (zh) | 2013-06-19 |
CN103164379B true CN103164379B (zh) | 2015-11-25 |
Family
ID=48587477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110428015.4A Active CN103164379B (zh) | 2011-12-19 | 2011-12-19 | 一种实现热拔和热插的方法以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103164379B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013380A (zh) * | 2007-02-05 | 2007-08-08 | 华南理工大学 | 一种基于hpi模型的热插拔处理方法 |
CN101119224A (zh) * | 2006-08-01 | 2008-02-06 | 上海未来宽带技术及应用工程研究中心有限公司 | 基于atca机架的fru调试和测试装置 |
US7814255B1 (en) * | 2009-04-14 | 2010-10-12 | Oracle America, Inc. | Multi-interface multi-channel modular hot plug I/O expansion |
CN102023940A (zh) * | 2009-09-16 | 2011-04-20 | 研祥智能科技股份有限公司 | 一种cpci热插拔系统 |
-
2011
- 2011-12-19 CN CN201110428015.4A patent/CN103164379B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119224A (zh) * | 2006-08-01 | 2008-02-06 | 上海未来宽带技术及应用工程研究中心有限公司 | 基于atca机架的fru调试和测试装置 |
CN101013380A (zh) * | 2007-02-05 | 2007-08-08 | 华南理工大学 | 一种基于hpi模型的热插拔处理方法 |
US7814255B1 (en) * | 2009-04-14 | 2010-10-12 | Oracle America, Inc. | Multi-interface multi-channel modular hot plug I/O expansion |
CN102023940A (zh) * | 2009-09-16 | 2011-04-20 | 研祥智能科技股份有限公司 | 一种cpci热插拔系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103164379A (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020074102A (ja) | Usb電力搬送ソーシングデバイスのための省電力モード | |
EP2854369B1 (en) | Method and apparatus for detecting interface connection between devices | |
US8375201B2 (en) | Ethernet PHY level security | |
CN107926075B (zh) | 支持异构环境下的数据通信的系统和方法 | |
CN105491017A (zh) | Rs485总线多设备多协议解析方法及系统 | |
EP3490304B1 (en) | Method for identifying access point and hotspot, and related products | |
KR102091565B1 (ko) | 프로토콜 예외 상태를 갖는 데이터 전송 | |
CN112165713B (zh) | 用于智能设备接入无线网络的方法、装置、系统及存储介质 | |
CN103577362B (zh) | 改善数据传输的方法及其相关计算机系统 | |
WO2017101762A1 (zh) | 一种协商模式处理方法及智能网络设备 | |
US9722526B2 (en) | Modular motor drive communication system and method | |
CN104092515B (zh) | 兼容can2.0b协议的can总线通信方法 | |
CN110809002A (zh) | 机器人和焊接设备间协议转换的方法及协议转换模块 | |
CN103164379B (zh) | 一种实现热拔和热插的方法以及电子设备 | |
US20170249278A1 (en) | Stack timing adjustment for serial communications | |
CN102480333A (zh) | 线路编码方法、编码数据块同步的处理方法及装置 | |
US9722937B2 (en) | Enhanced motor drive communication system and method | |
US9811496B2 (en) | Method and apparatus for detecting interface connection between devices | |
CN103858105A (zh) | 连接方法 | |
KR20140050566A (ko) | 단일 전도체 인터페이스 작동 및 스위칭 장치 및 그 방법 | |
EP2916523A1 (en) | Data stream and data packet transmission method and device | |
CN102567133B (zh) | 一种通过中断实现通信方法、i2c器件及i2c系统 | |
CN107066412B (zh) | 一种通信电路及其方法 | |
CN102957601A (zh) | 板间通信方法及装置 | |
CN201274489Y (zh) | 一种智能电器的固件模块结构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |