I2c通信地址分配系统及方法

文档序号:6603230阅读:1770来源:国知局
专利名称:I2c通信地址分配系统及方法
技术领域
本发明涉及一种电子装置的I2C通信地址分配方法,特别是关于一种多个电子装置共享同一 I2C总线的I2C通信地址分配系统及方法。
背景技术
目前,很多计算机(例如服务器)采用一种刀锋式系统(Blade typesystem),并将刀锋式系统整合于机壳内的主板中。如图1所示,是一种刀锋式系统的示意图。该刀锋式系统内含 CPU (Central Processing Unit,中央处理器)、以及 EEPROM(ElectricalIy Erasable Programmable Read-OnlyMemory,电可擦除只读储存器)。该EEPROM内存放刀锋式系统开机时所需的参数值,CPU与EEPROM之间通过I2C总线(I2C Bus)作为两者通信的控制接口。当刀锋式系统开机时,CPU通过I2C总线从EEPROM中读取预设的参数值运作, 并通过GPI0-1端口、GPI0-2端口来侦测插入在整合主板的插槽编号。其中,CPU通过I2C 总线与EEPROM沟通读取预设参数值时,其EEPROM的I2C地址通常可以通过EEPROM的引脚 (例如图1中的Al与AO引脚)来定义一个通信地址,一般定义为“0x50”。此时,CPU即可根据此通信地址通过I2C总线从EEPROM中读取数据进行通信。然而,当使用多个刀锋式系统整合在一块主板上时,而整合主板上又有多个IC芯片需要与每一个刀锋式系统的CPU通过I2C总线进行通信。由于所有刀锋式系统的I2C总线经由整合主板全部连接在一起,如此一来就会发生I2C总线上的EEPROM的“0x50”通信地址重复,造成各刀锋式系统的CPU无法正确地从EEPROM中读取预设参数值,从而造成通信操作错误而不能正常运行系统。为解决此问题,需要将每一个刀锋式系统中EEPROM的通信地址分别设定不同的I2C地址,例如分别设置为“0X50”、“0X51”、“0X52”、“0X53”。然而这种设定I2C地址的方式就是通过调整每一个EEPROM的AO与Al引脚外接的电阻,将其分别接至低电位或高电位。如此一来虽可解决通信地址冲突的问题,但硬件在大量生产制造刀锋式系统时, 为设定EEPROM的Al、AO地址的外接电阻,就会有多种设定不同通信地址的刀锋式系统硬件。如果生产制造人员没有分辨清楚这些不同设定的硬件,很容易混淆搞混,此外,如果插入至整合主板使用时,还是会发生通信地址重复冲突的问题。发明信息鉴于以上内容,有必要提供一种I2C通信地址分配系统及方法,能够自动设定出多个电子装置(例如刀锋式系统)内EEPROM不同的通信地址,在生产制造刀锋式系统的硬件时无需针对每个硬件定义通信地址。所述的I2C通信地址分配系统,用于为接插在主板上的多个电子装置自动分配不同的I2C通信地址。每一个电子装置包括CPU及EEPR0M。所述的I2C通信地址分配系统包括连接模块,用于当EEPROM的AO引脚与CPU的GPI0-2端口相连接及EEPROM的Al引脚与CPU的GPI0-1端口相连接时,将电子装置内的CPU与EEPROM建立通信连接;识别模块, 用于当多个电子装置通过接插卡插入主板的每一个插槽时,通过调节每一个插槽所连接的电阻电位为每一个插槽定义一个插槽编号,并通过每一个CPU的GPIO-I端口、GPI0-2端口分别识别出每一个电子装置所在的插槽编号;地址分配模块,用于根据每一个插槽编号为相应插槽上的电子装置内EEPROM分配一个I2C通信地址。所述的I2C通信地址分配方法,用于为接插在主板上的多个电子装置自动分配不同的I2C通信地址。每一个电子装置包括CPU及EEPR0M。该方法包括步骤将多个电子装置通过接插卡分别插入主板的插槽中;将每一个电子装置内EEPROM的AO引脚与CPU的 GPI0-2端口相连接,并将EEPROM的Al引脚与CPU的GPI0-1端口相连接;通过调节每一个插槽所连接的电阻电位为每一个插槽定义一个插槽编号;通过每一个CPU的GPI0-1端口、 GPI0-2端口分别识别出每一个电子装置所在的插槽编号;根据每一个插槽编号为相应插槽上的电子装置内EEPROM分配一个I2C通信地址。相较于现有技术,本发明所述的I2C通信地址分配系统及方法,当多个刀锋式系统通过其插槽卡接插在一块主板的插槽内时,能够为每一个刀锋式系统内EEPROM自动分配不同的I2C通信地址,从而解决多个刀锋式系统共享同一 I2C总线而发生通信地址重复冲突问题。


图1是一种刀锋式系统的示意图O
图2是本发明I2C通信地址分配系统较佳实施例的实施架构图。
图3是本发明I2C通信地址分配系统较佳实施例的功能模块图。
图4是本发明I2C通信地址分配方法较佳实施例的流程图。
主要元件符号说明
I2C通信地址分配系统10
连接模块101
识别模块102
地址分配模块103
开机模块10具体实施例方式如图2所示,是本发明I2C通信地址分配系统10较佳实施例的实施架构图。 在本实施例中,该I2C通信地址分配系统10分别固化并运行于每一个电子装置中,该电子装置是一种刀锋式系统(Blade type system)。如图2示出四个刀锋式系统,例如刀锋式系统-1、刀锋式系统_2、刀锋式系统-3、刀锋式系统-4,每一个刀锋式系统包括 CPU(Central ProcessingUnit,中央处理器)、以及 EEPROM(Electrically Erasable ProgrammableRead-Only Memory,电可擦除只读储存器)。每一个EEPROM内储存有刀锋式系统开机时所需的系统参数,每一个CPU与其对应的EEPROM之间通过I2C总线(I2C Bus) 进行通信,该I2C总线是CPU与EEPROM之间进行通信的控制接口。每一个刀锋式系统通过其插槽卡分别插入一块整合主板的插槽中,该主板包括多个插槽,例如插槽-1、插槽-2、插槽_3、插槽-4。每一个插槽分别连接有两个电阻,CPU通过调节每一个电阻的电位来定义每一个插槽的编号(ID),该插槽编号用一个二进制的数值表示,例如插槽-I的编号为“00”,插槽-2的编号为“01”,插槽-3的编号为“ 10”,插槽-4 的编号为“11”。每一个插槽通过主板上的I2C总线连接在一起,I2C总线上外接有多个的 IC芯片,例如IC-1、IC-2、IC-3、IC-4。每一个刀锋式系统共享主板上的I2C总线,并可以与每一个IC芯片进行通信。每一个CPU 包括 GPI0-1 端口(General-Purpose Input Output Port,通用输入输出端口 )及GPI0-2端口,每一个EEPROM包括AO引脚与Al引脚。其中,EEPROM的Al 引脚与CPU的GPI0-1相连接,而AO引脚与GPI0-2相连接。所述的AO引脚、Al引脚用于为EEPROM与CPU进行通信定义一个I2C通信地址,例如I2C通信地址为“0χ50”、“0χ51”、 “0χ52”、“0χ53”。每一个CPU通过GPI0-1端口、GPI0-2端口侦测对应的刀锋式系统插入在整合主板的插槽编号,根据插槽编号为每一个EEPROM分配一个I2C通信地址,并根据I2C 通信地址通过I2C总线从对应的EEPROM中读取系统参数控制相应的刀锋式系统进行开机。如图3所示,是本发明I2C通信地址分配系统10较佳实施例的功能模块图。该 I2C通信地址分配系统10包括连接模块101、识别模块102、地址分配模块103、以及开机模块104。每一个功能模块均由多个计算指令组成,用于为共享于同一 I2C总线上多个刀锋式系统分配相应的I2C通信地址,从而使每一个刀锋式系统完成正确的开机运作。所述的连接模块101用于当每一个刀锋式系统内EEPROM的AO引脚与CPU的 GPI0-2端口相连接以及EEPROM的Al引脚与CPU的GPI0-1端口相连接时,将该刀锋式系统内CPU与EEPROM建立相应的通信连接。所述的识别模块102用于当每一个刀锋式系统通过其接插卡插入主板的插槽时, 通过调节每一个插槽所连接的电阻电位为每一个插槽定义一个插槽编号。该插槽编号用一个二进制数值表示,例如插槽-1至插槽-4所对应的编号分别为“00”、“01”、“10”及“11”。 所述的识别模块102还用于通过每一个CPU的GPI0-l、GPI0-2端口分别识别出每一个刀锋式系统所在的插槽编号。例如,刀锋式系统-1通过其接插卡插在主板的插槽-1上,识别模块102则识别出刀锋式系统-1所在的插槽编号为“00”。所述的地址分配模块103用于根据每一个插槽编号为相应插槽上的刀锋式系统的EEPROM分配一个I2C通信地址。例如,地址分配模块103为刀锋式系统_1至刀锋式系统-4内的EEPROM分配的I2C通信地址分别为“0x50”、“0x51 ”、“0x52”及“0x53”。所述的开机模块104用于按照每一个EEPROM所分配的I2C通信地址通过I2C总线从该EEPROM中读取系统参数来控制对应的刀锋式系统进行开机运作,从而避免由于多个刀锋式系统共享同一 I2C总线上发生通信地址重复冲突问题。例如刀锋式系统-1所分配的I2C通信地址为“0x50”,开机模块104则根据该I2C通信地址从对应的EEPROM中读取系统参数完成正确的开机运作。如图4所示,是本发明I2C通信地址分配方法较佳实施例的流程图。在本实施例中,当多个电子装置通过其插槽卡接插在一块整合主板的插槽时,实施本发明能够为电子装置内EEI3ROM自动分配不同的I2C通信地址,从而解决多个电子装置共享同一 I2C总线而发生通信地址重复冲突问题。本实施例以四个刀锋式系统为例来描述电子装置,例如图2 所示的刀锋式系统-1至刀锋式系统_4。步骤S41,用户将多个刀锋式系统通过其接插卡分别插入一块整合主板的插槽中, 如插槽-1至插槽_4,每一个刀锋式系统包括CPU以及EEPR0M。
步骤S42,当每一个刀锋式系统内EEPROM的AO引脚与CPU的GPI0-2端口相连接以及EEPROM的Al引脚与CPU的GPI0-1端口相连接时,连接模块101将锋式系统内CPU与 EEPROM建立相应的通信连接。步骤S43,当每一个刀锋式系统通过其接插卡分别插入主板的每一个插槽时,识别模块102通过调节每一个插槽所连接的电阻电位为每一个插槽定义一个插槽编号。该插槽编号用一个二进制数值表示,例如插槽-1至插槽-4所对应的插槽编号分别为“00”、“01”、 “10”及“11”。步骤S44,识别模块102通过每一个CPU的GPI0-1、GP10-2端口分别识别出每一个刀锋式系统所在的插槽编号。例如,刀锋式系统-1通过其接插卡插在主板的插槽-1上, 识别模块102则识别出刀锋式系统-1所在的插槽编号为“00”。步骤S45,地址分配模块103根据每一个插槽编号为相应插槽上的刀锋式系统内的EEPROM分配一个I2C通信地址。例如,地址分配模块103为刀锋式系统_1至刀锋式系统-4内的EEPROM分配的I2C通信地址分别为“0x50”、“0x51 ”、“0x52”及“0x53”。步骤S46,开机模块104按照每一个EEPROM所分配的I2C通信地址通过I2C总线从该EEPROM中读取系统参数来控制对应的刀锋式系统进行开机运作,从而避免由于多个刀锋式系统共享同一 I2C总线而发生通信地址重复冲突问题。例如刀锋式系统-1所分配的I2C通信地址为“0x50”,开机模块104则按照该I2C通信地址从对应的EEPROM中读取系统参数完成正确的开机运作。
权利要求
1.一种I2C通信地址分配系统,用于为接插在主板上的多个电子装置分配不同的I2C 通信地址,每一个电子装置包括CPU及EEPR0M,其特征在于,所述的I2C通信地址分配系统包括连接模块,用于当EEPROM的AO引脚与CPU的GPI0-2端口相连接及EEPROM的Al引脚与CPU的GPI0-1端口相连接时,将每一个电子装置内CPU与EEPROM建立通信连接;识别模块,用于当多个电子装置通过接插卡分别插入主板的插槽时,通过调节每一个插槽所连接的电阻电位为每一个插槽定义一个插槽编号,并通过每一个CPU的GPI0-1端口、GPI0-2端口分别识别出每一个电子装置所在的插槽编号;以及地址分配模块,用于根据每一个插槽编号为相应插槽上的电子装置内EEPROM分配一个12C通信地址。
2.如权利要求1所述的I2C通信地址分配系统,其特征在于,每一个EEPROM内储存有电子装置开机时所需的系统参数,每一个CPU与其对应的EEPROM之间通过一个I2C总线进行通信。
3.如权利要求2所述的I2C通信地址分配系统,其特征在于,该系统还包括开机模块, 用于按照每一个EEPROM所分配的I2C通信地址通过I2C总线从该EEPROM中读取系统参数控制对应的电子装置进行开机运作。
4.如权利要求1所述的I2C通信地址分配系统,其特征在于,每一个插槽分别连接有两个电阻,用于为每一个插槽定义一个二进制数值的插槽编号。
5.如权利要求1所述的I2C通信地址分配系统,其特征在于,所述的电子装置是一种刀锋式系统。
6.一种I2C通信地址分配方法,用于为接插在主板上的多个电子装置分配不同的I2C 通信地址,每一个电子装置包括CPU及EEPR0M,其特征在于,该方法包括步骤将多个电子装置通过接插卡分别插入主板的插槽中;将每一个电子装置内EEPROM的AO引脚与CPU的GPI0-2端口相连接,以及将EEPROM 的Al引脚与CPU的GPI0-1端口相连接;通过调节每一个插槽所连接的电阻电位为每一个插槽定义一个插槽编号;通过每一个CPU的GPI0-1端口、GPI0-2端口分别识别出每一个电子装置所在的插槽编号;以及根据每一个插槽编号为相应插槽上的电子装置内EEPROM分配一个I2C通信地址。
7.如权利要求6所述的I2C通信地址分配方法,其特征在于,每一个EEPROM内储存有电子装置开机时所需的系统参数,每一个CPU与其对应的EEPROM之间通过一个I2C总线进行通信。
8.如权利要求7所述的I2C通信地址分配方法,其特征在于,该方法还包括步骤按照每一个EEPROM所分配的I2C通信地址通过I2C总线从该EEPROM中读取系统参数控制对应的电子装置进行开机运作。
9.如权利要求6所述的I2C通信地址分配方法,其特征在于,每一个插槽分别连接有两个电阻,用于为每一个插槽定义一个二进制数值的插槽编号。
10.如权利要求6所述的I2C通信地址分配方法,其特征在于,所述的电子装置是一种刀锋式系统。
全文摘要
一种I2C通信地址分配系统及方法,用于为接插于主机板上的多个电子装置自动分配不同的I2C通信地址。每一个电子装置包括CPU以及EEPROM。该方法包括步骤将多个电子装置透过接插卡分别插入主机板的插槽中;将EEPROM的A0引脚与CPU的GPIO-2埠相连接,并将EEPROM的A1引脚与CPU的GPIO-1埠相连接;透过调节每一个插槽所连接的电阻电位为每一个插槽定义一个插槽编号;透过每一个CPU的GPIO-1埠、GPIO-2埠分别识别出每一个电子装置所在的插槽编号;根据每一插槽编号为相应插槽上的电子装置内EEPROM分配一个I2C通信地址。
文档编号G06F13/40GK102262606SQ20101018609
公开日2011年11月30日 申请日期2010年5月28日 优先权日2010年5月28日
发明者徐明源 申请人:鸿富锦精密工业(深圳)有限公司, 鸿海精密工业股份有限公司
网友询问留言 已有1条留言
  • 访客 来自[陕西省延安市电信ADSL] 2018年02月20日 06:01
    你好,有没有啥办法能快速分配里面的订单
    0
1