本发明是有关于一种通讯传输方法,特别是指一种内部整合电路通讯方法。
背景技术:
内部整合电路(Inter-Integrated Circuit,I2C)总线通讯系统中,通常有一个为主控模块,例如微控制器,其余多个外围为从属模块,例如存储器、硬盘、系统温度传感器等。主控模块经由I2C总线主动向各从属模块传送资料,或者读取各从属模块的资料,借以监控各从属模块的参数功能状态,增加系统的安全性,并且方便管理。
但是,由于I2C总线通讯系统应用较多样,容易造成I2C总线受到干扰,例如电路干扰等,使得主控模块与各从属模块之间的资料传输发生各种错误,此时,主控模块中止资料传送或接收,从而导致通讯失败。
技术实现要素:
因此,本发明的目的在于提供一种提高通讯成功率的内部整合电路通讯方法。
于是,本发明内部整合电路通讯方法,由一内部整合电路通讯系统执行,该内部整合电路通讯系统包括一主控模块、一内部整合电路总线,及至少一从属模块,该内部整合电路通讯方法包含一步骤(A)、一步骤(B)、一步骤(C)、一步骤(D)、一步骤(F),及一步骤(G)。
该步骤(A)是该主控模块传送一资料,经由该内部整合电路总线至该从属模块。
该步骤(B)是当该资料传输失败,该主控模块产生所对应的一通讯错误码。
该步骤(C)是该主控模块根据该通讯错误码判断是否执行一资料重传。
该步骤(D)是若步骤(C)的判断结果为是,则该主控模块判断一重传计数值是否达到一预设重传次数。
该步骤(F)是若步骤(D)的判断结果为是,则该主控模块执行一自身重置。
该步骤(G)是该主控模块根据该通讯错误码,记录一通讯错误事件。
此外,本发明的另一目的在于提供一种提高通讯成功率的扩展装置。
于是,本发明扩展装置,电连接至少一从属模块,且包含一内部整合电路总线,及一主控模块。
该主控模块传送一资料,经由该内部整合电路总线至该从属模块,当该资料传输失败,该主控模块产生所对应的一通讯错误码,并根据该通讯错误码判断是否执行一资料重传,若判断为执行该资料重传,则该主控模块判断一重传计数值是否达到一预设重传次数,若判断达到,则该主控模块执行一自身重置,并根据该通讯错误码,记录一通讯错误事件。
本发明的功效在于:该主控模块于该资料传送失败时,能执行该资料重传,并且在达到该预设重传次数时,记录该通讯错误事件予使用者得知,借以增加与该从属模块通讯的成功率,进而增进通讯质量。
【附图说明】
图1是本发明内部整合电路通讯方法所使用的一内部整合电路通讯系统;及
图2是本发明内部整合电路通讯方法的一实施例。
【具体实施方式】
参阅图1,本发明内部整合电路(Inter-Integrated Circuit,I2C)通讯方法的一实施例,由一内部整合电路通讯系统1执行,该内部整合电路通讯系统1包括一扩展装置(Expander)11,及复数从属模块(slave module)12。
该扩展装置11包括一主控模块(master module)111、一内部整合电路总线112、一快闪存储器(Flash ROM)113,及一非挥发性存储器114。该主控模块111例如能以一微控制器来实施,该内部整合电路总线112具有一串列资料线(serial data line,SDA)和一串列时脉线(serial clock line,SCL),该主控模块111经由该内部整合总线112的该串列资料线及该串列时脉线,与该等从属模块12彼此进行通讯传输。该快闪存储器113储存一程序码,供该主控模块111读取并执行控制、计数、重传、重置等功能。该非挥发性存储器114则能用于记录一通讯错误事件。
每一从属模块12电连接于该扩展装置11的内部整合电路总线112,并例如可以一温度传感器、一电子抹除式可复写唯读存储器、一电源供应单元的任一者来实施。
参阅图2,本发明内部整合电路通讯方法的实施例是在该内部整合电路通讯系统1中实施,以下详细说明该方法的各个步骤。
在步骤A中,该主控模块111传送一资料,经由该内部整合电路总线112至该从属模块12。且该主控模块111储存一预设重传次数。
在步骤B中,当该资料传送失败,该主控模块111产生所对应的一通讯错误码。详细而言,该通讯错误码为指示一主控模块互斥溢时(Mutex timeout)、一主控模块非预期岔断(Unexpected interrupt source)、一从属模块接收资料失败(Data NACK)、一主控模块互斥溢时恢复(Mutex timeout recovered),及一从属模块位址未应答(slave address NACK)的其中之一。
在步骤C中,该主控模块111根据该通讯错误码判断是否执行一资料重传,若判断不需执行该资料重传,即直接进入步骤G。进一步说,当该通讯错误码为该主控模块互斥溢时、该主控模块非预期岔断、该从属模块接收资料失败的其中之一时,该主控模块111判断执行该资料重传;当该通讯错误码为该主控模块互斥溢时恢复、该从属模块位址未应答时,该主控模块111判断不执行该资料重传。
在步骤D中,若步骤C的判断结果为是,则该主控模块111判断一重传计数值是否达到一预设重传次数。
在步骤E中,若步骤D的判断结果为否,则该主控模块111将该重传计数值增加,并返回步骤A,其中,返回步骤A是表示该主控模块111将该资料重传。且在本实施例中,该主控模块111是将该重传计数值增加一,而返回步骤A。
在步骤F中,若步骤D的判断结果为是,则该主控模块111执行一自身重置(reset),并进到步骤G。也就是说,该主控模块111执行该资料重传后,该通讯错误码依旧存在,并且已达到该预设重传次数时,该主控模块111即进行该自身重置。
在步骤G中,若步骤C的判断结果为否,以及在步骤F进行该自身重置之后,该主控模块111根据该通讯错误码,记录一通讯错误事件于该非挥发性存储器114,其中,该通讯错误事件包括该通讯错误码,和该通讯错误码所对应的该重传次数值、以及该自身重置的历史记录。详细来说,当该通讯错误码为该主控模块互斥溢时恢复、该从属模块位址未应答的其中之一时,该主控模块111判断不执行该资料重传,而仅对应地将该通讯错误码,记录成该通讯错误事件于该非挥发性存储器114。另外,该主控模块111因为该重传计数值达到该预设重传次数,而进行该自身重置后,也会记录成该通讯错误事件于该非挥发性存储器114。如此,使用者能由该通讯错误事件,得知该主控模块111资料传输失败的通讯错误码,并且得知该通讯错误码所对应的资料重传次数,以及是否经过该自身重置等信息。
综上说明可知,本发明内部整合电路通讯方法,能使得该主控模块111于资料传输失败时,通过判断是否允许重传与重传次数是否达上限,配合重置主控模块111的技术使用,能提高该主控模块111通讯的成功率,使得整体I2C通讯质量变得更佳,并且记录成该通讯错误事件以供使用者得知,所以确实能达成本发明的目的。
上面结合附图对本发明的具体实施方式和实施例做了详细说明,但不能以之限定本发明的范围,在本发明申请专利范围内所作的修饰和变化,皆应该属于本发明专利范围内。