CN106164887A - 总线地址分配 - Google Patents
总线地址分配 Download PDFInfo
- Publication number
- CN106164887A CN106164887A CN201580005513.4A CN201580005513A CN106164887A CN 106164887 A CN106164887 A CN 106164887A CN 201580005513 A CN201580005513 A CN 201580005513A CN 106164887 A CN106164887 A CN 106164887A
- Authority
- CN
- China
- Prior art keywords
- equipment
- address
- controller
- bus
- controller equiment
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5038—Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5053—Lease time; Renewal aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
多个设备通过总线通信,设备包括多个控制器设备和多个第二设备。每一个控制器设备负责分配包括至少所述第二设备中的相应一个或多个中的每一个的地址的一个或多个地址。控制器设备包括地址配给逻辑,其配置成通过以下过程向该控制器设备的相应一个或多个第二设备中的每一个分配地址:搜索要分配给其相应一个或多个第二设备中的每一个的当前未分配地址,并且如果不能找到用于一个或多个相应第二设备中的一个的未分配地址,则向所述控制器设备中的至少一个其它控制器设备发出请求以请求所述其它控制器设备改变所述其它控制器设备所负责分配的一个或多个地址中的一个。
Description
技术领域
本公开涉及唯一总线地址向连接到总线(诸如I2C总线或任何其它类型的总线)的设备的分配。
背景技术
I2C是可以用于将低速***设备附连到主板、嵌入式***、蜂窝电话或其它电子设备的一种类型的串行计算机总线。在总线的上下文中,主设备是可以发起通过总线的交易的设备,并且从设备是连接到总线但是不能发起通过它的任何交易(并且因而仅响应于主设备而通过总线通信)的设备。典型地,I2C使用在印刷电路板(PCB)上以将有限数目的从设备连接到单个主设备微控制器。不管怎样,I2C协议的确允许多个主设备,即各自可以发起通过总线的交易(以便向另一设备提供指令或信息,或者从另一设备读取信息)的多个设备。甚至可能的是,每一个参与方是主设备。另外,I2C可以用于经由线缆而不是仅仅在一个PCB内连接组件。
基于I2C的***典型地使用通用构建块而建立。在其中I2C使用于PCB上以将有限数目的“哑”功能块连接到一个“智能”(微)控制器的情况下,***设置和地址的可用性事先已知。
发明内容
将合期望的是使诸如I2C之类的总线***更加适用于较宽范围的应用,诸如照明控制***。例如,可能期望的是提供多个模块,诸如智能照明器,其中每一个模块包括全部单独地连接到相同总线的控制器设备和一个或多个第二设备。例如,在智能照明器的情况下,每一个照明器可以包括智能控制器和一个或多个哑设备,诸如存储器(例如EEPROM)、灯和/或传感器;每一个模块中的每一个智能和哑设备全部单独地连接到相同总线,诸如I2C总线。
使用诸如I2C总线之类的总线作为将不同模块连接在一起的通信接口(例如以建立诸如照明控制***之类的***)可以提供优点,但是也有挑战。优点在于,其允许更大的灵活性,例如“智能”(微)控制器和许多标准“哑”功能设备,比如存储器、输入、输出、感测和许多其他功能设备,在市场上可获得。这允许快速且成本有效的开发。然而,挑战是在I2C的典型应用领域之外并且仍旧达到可接受性能的环境中使用该***。数据吞吐量和鲁棒性方面的性能由***设置和其所使用的环境来确定。例如,将合期望的是提供I2C地址分配过程,其允许多个(类似)模块互连而同时确保所有I2C候选者具有唯一地址且模块控制器知晓所有其自身设备的地址。
将***放大至连接在相同总线上的多个“智能”控制器极大地增加了保证每一个参与方得到唯一I2C地址的问题。由于给定类型的“哑”功能块可以多于一次地使用于***中,所以如通常在I2C***中所使用的固定寻址方案将不总是可行。在设计阶段中,可能不必知晓哪些通用构建块将要组合在***中,并且因此也许不大可能在设计阶段处选择用于构建块的合适地址。例如,如果具有I2C EEPROM的智能控制器使用与具有I2C EEPROM的另一智能控制器相同的I2C总线,则将合期望的是提供“智能”寻址方案,其提供用于两个控制器并且用于其相应EEPROM的不同I2C地址。类似考虑也可以出现在其它应用和/或其它类型的总线中。
本公开提供了一种***,其中多个控制器连接到总线,并且每一个控制器负责分配也连接到总线的一个或多个相应第二设备的地址。例如,每一个控制器设备及其相应的(多个)第二设备可以形成相同的相应模块的部分,例如相同照明器。出于本申请的目的,“智能”设备是负责分配一个或多个地址的控制器设备,并且“哑”设备是具有其由控制器设备分配的地址的第二设备(例如,因为其不能够分配其自身地址或者实际上任何地址)。在实施例中,智能控制器还可以具有其它责任,例如每一个控制器可以负责控制其相应的(多个)第二设备。智能控制器可以是主设备,这意味着能够发起通过总线的交易的设备,而哑第二设备可以是从设备,这意味着不能够发起通过总线的交易的设备(尽管智能和哑不需要在所有可能的实施例中与主和从同义)。
在这样的布置中,一个特别的问题在于,可以存在用于拾取地址的有限选项,其中仅总线的地址范围内的一些地址适用于一些设备,而仅某些其它地址可能适用于其它设备。例如,每一个第二设备可能仅能够被分配来自包括比总线的地址范围少的地址的有限、预确定的可能地址范围之中的地址,例如受约束于有限的出厂地址范围;或者某些地址可能由于其它原因而不适用,例如由于设计师的设计考虑。这意味着当添加新设备或模块或者其变得具有所分配的地址时,可能必要的是再次访问较早的选择。
根据本公开,智能控制器设备尝试寻找自由地址以分配给其哑第二设备(它不能配给其自身地址),但是如果没有自由地址,则控制器向一个或多个其它智能设备询问它们是否可以改变其地址之一(其自身的或者它们所负责的一个哑设备)。
因而,根据本文公开的一个方面,提供了一种包括总线接口和地址配给逻辑的控制器设备。总线接口使得能够基于分配给多个设备(其通过该总线通信)的地址而实现通过总线的通信。这些设备包括多个第二设备,以及包括所述控制器设备的多个控制器设备。每一个控制器设备负责分配一个或多个总线地址,包括至少第二设备中的相应一个或多个的(多个)地址。地址配给逻辑配置成向所述控制器设备的相应一个或多个第二设备中的每一个分配地址。其通过以下过程而完成这一点:搜索要分配给其相应一个或多个第二设备中的每一个的当前未分配地址,并且如果没有找到用于一个或多个相应第二设备中的一个的未分配地址,则向所述控制器设备中的至少一个其它控制器设备发出请求(例如通过总线)以请求其它控制器设备改变所述其它控制器设备负责分配的一个或多个地址中的一个。
在实施例中,所述请求包括改变所述其它设备的相应一个或多个第二设备中的一个的地址的请求。在实施例中,每一个控制器设备还可以负责分配其自身地址,并且所述请求可以包括改变所述其它设备的地址或者所述其它设备的相应一个或多个第二设备中的一个的地址的请求。
在另外的实施例中,控制器设备可以通过用于分配其(多个)地址的分离连接而连接到其一个或多个相应第二设备中的每一个,即通过与所述总线分离的连接。因而在实施例中,控制器设备可以包括第二接口以用于经由与所述总线分离的分离连接而分配所述控制器设备的相应一个或多个第二设备的地址。在实施例中,这可以针对控制器设备及其相应第二设备中的每一个来提供。该附加连接可以是控制器与其相应第二(例如,从)设备之间的专用或点对点连接,其中具有针对每一个第二设备的单独连接。在实施例中,每一个控制器可以通过单独的专用或点对点连接而连接到其一个或多个自身相应(多个)第二(例如,从)设备中的每一个(相反地说,相等设备连接在链环中并且沿链向下传递地址)。
为了实现请求机构,在实施例中,所述请求可以包括所述控制器设备提出使用于其相应一个或多个第二设备中的一个的所提出的地址,由此触发其它控制器设备确定其是否可以借助于所述改变而释放所提出的地址,如果所提出的地址已经由所述其它控制器设备分配的话。
控制器设备还可以包括允许(多个)其它设备做出它的类似请求的互逆机构。因而在实施例中,地址配给逻辑可以可操作成从至少一个其它控制器设备接收包括所述其它控制设备提出使用于其相应一个或多个第二设备中的一个的所提出的地址的请求;并且地址配给逻辑可以配置成作为响应,如果所提出的地址已经由所述控制器设备分配,则确定其是否可以通过改变所述控制器设备负责分配的一个或多个地址中的一个而释放所提出的地址。
在另外的实施例中,地址配给逻辑可以配置成通过以下过程执行针对当前未分配地址的所述搜索:通过总线向候选地址发送消息,并且如果作为响应从候选地址接收回确认,则确定候选地址已经被分配,并且如果作为响应没有从候选地址接收回确认,则确定候选地址当前未分配。
根据本文公开的另一方面,可以提供一种***,包括:总线;以及连接到总线并且各自请求用于通过总线通信的地址的多个设备,多个设备布置在分组中,每一个分组包括相应控制器设备和相应一个或多个第二设备。例如,每一个分组可以形成相应模块的部分,例如相应照明器。每一个控制器设备负责分配所述地址中的一个或多个,包括至少其相应一个或多个第二设备中的每一个的地址。另外,每一个控制器设备配置成通过以下过程执行所述分配:搜索要分配给其相应一个或多个第二设备中的每一个的当前未分配地址,并且如果不能找到用于一个或多个相应第二设备中的一个的未分配地址,则向所述控制器设备中的至少一个其它控制器设备发出请求,以请求所述其它控制器设备改变所述其它控制器设备负责分配的一个或多个地址中的一个。
在实施例中,***的控制器设备中的任一个、一些或全部可以依照本文公开的任何控制器设备的任何特征来配置;并且***的第二设备中的任一个、一些或全部可以依照本文公开的任何第二设备的任何特征来配置。
根据另一方面,本公开提供了一种计算机程序产品,其体现在计算机可读介质上并且配置成以便在控制器设备上执行时实施依照本文公开的任何控制器设备的操作。
附图说明
为了帮助理解本公开并且示出实施例可以如何付诸实践,作为示例而参照附图,其中:
图1是总线和所连接的设备的示意性框图,
图2是照明***的示意性框图,
图3是控制器设备的示意性框图,
图4是总线和所连接的设备的另一示意性框图,
图5是由控制器设备控制的第二设备的示意性框图,
图6是地址分配过程的示意性流程图,以及
图7是提供地址分配过程的另外细节的示意性流程图。
具体实施方式
以下实施例提供了I2C控制器,其布置成连接到I2C总线,并且分离地连接到也连接至I2C总线的I2C从设备。I2C控制器配置成确定连接到I2C总线的所有其它I2C控制器具有分配给它们的相应地址,并且然后一次一个地向I2C地址的列表发送确认请求。一旦确认请求中的一个没有得出确认,则I2C控制器停止发送确认请求并且然后向I2C从设备分配所述那个确认请求原本发送至的地址。如果可能没有找到这样的地址,则I2C控制器向一个或多个其它控制器发送请求以询问它们是否可以改变它们所负责的任何地址,由此释放出用于由请求控制器分配给其一个从设备的地址。这考虑到以下情况:当总线可以具有原则上可获得的某一总体地址范围时,仅那些地址中的一些地址可以适用于某些设备,而其它地址可能适用于其它设备。例如,标准“开架”功能块可以仅具有其地址可以选自其中的固定出厂地址范围。
图1图示了一种***,包括通信总线2和连接到总线2的多个设备6,8,使得设备6,8之间的通信可以通过总线2而根据合适的总线协议进行。在实施例中,总线2是通过其而根据I2C协议进行通信的I2C总线。连接到总线2并且布置成根据相关总线协议而通过总线2接收和/或传送消息的设备6,8可以被称为该总线的参与方。在当前情况下,总线参与方包括多个“智能”设备6和一个或多个“哑”设备8。
如在下文中使用的“智能”设备是指控制器设备,其包括依照本文公开的实施例的地址配给逻辑机构的实例,并且其优选地包括布置成执行用于控制连接到总线2的一个或多个其它设备6,8的软件的微控制器或其它处理器。因此,每一个智能设备优选地是主设备,即能够发起通过总线2的交易(以控制从设备和/或以与其它主设备通信)。另一方面,“哑”设备是指不具有依照本文公开的实施例的地址配给逻辑的设备,并且它要求通过负责它的相关联(智能)控制器设备6向它分配它的地址。每一个哑设备可以是从设备(即不能发起总线交易),或者是主设备,但是仅根据标准或之前已知的总线技术配置并且自身不能够分配地址的主设备。例如,“哑”设备可以是标准(“开架”)I2C设备。哑设备可以实现在专用硬件中,或者在仅编程有有限功能性的微控制器中。在实施例中,一个、一些或全部哑设备8可以是从设备。可替换地,每一个总线参与方可以是主设备。在以下示例中,每一个智能设备6可以可交换地描述为主设备,并且每一个哑设备8可以可交换地描述为从设备。然而,将领会到,在所有可能的实施例中,情况未必如此。
每一个控制器设备6包括通信逻辑10,其配置成依照其相应设备的主设备状态而通过总线2与其它设备6,8通信。主设备6可以自主地访问总线2,即可以向总线上发出消息而没有首先轮询或者从连接到总线2的另一设备接收请求。也就是说,如所提及的,主设备6是可以发起通过总线的交易的设备。另一方面,从设备8仅可以接收消息并且对所接收的消息做出响应。从设备自身不能发起交易。每一个从设备8包括用于根据总线协议而通过总线2接收消息并对消息做出响应的(有限)总线通信逻辑11。
除通过总线2通信之外,每一个设备6,8还具有提供设备的“最终使用”或目的的某种其它功能性。例如,在照明***中,一些设备各自可以包括布置成光照空间(例如室内空间,诸如房间、走廊、大厅、剧院、车间等;或者室外空间,诸如花园、公园、体育场等;或者任何其它空间,诸如车辆内部)的相应灯或光源。一个或多个设备可以提供其它类型的功能性,诸如存在传感器。存在传感器是检测人员在空间中的存在的设备,例如通过检测运动和/或热量。存在传感器可以通过其进行操作的示例技术包括被动红外(PIR)或超声。其它示例设备可以包括存储器设备,诸如EEPROM,和/或用于经由总线2控制一个或多个灯和/或传感器的控制器。
每一个主设备6可以从总线2上的另一设备6,8请求数据,例如请求状态信息。每一个主设备还可以向总线2上的另一模块6,8发送数据,例如以控制它提供某种功能性,或者以在那里存储信息。
如图1中所示,设备6,8布置成分组12,其中每一个分组包括一个或多个相应从设备8和充当针对该分组12的控制器的相应主设备6。例如,每一个分组12可以是通过总线2连接在一起的智能模块的***的相应模块的设备6,8。例如,每一个模块12可以是智能照明***的相应智能照明器。在每一个给定模块或分组12内,主控制器设备6负责其相应模块或分组12中的相应一个或多个从设备8。依照本公开,这至少意味着主控制器设备6布置成向其一个或多个相应从设备8中的每一个分配总线地址,如很快将更加详细讨论的。优选地,这还意味着主控制器设备6布置成经由总线2控制或利用其一个或多个相应从设备8的功能性。要指出的是,每一个单独的设备6,8(不仅仅是每一个模块12)单独连接到总线2,这意味着任何主设备6潜在地能够与任何其它设备6,8通信(取决于它们是否编程或以其它方式部署成在任何给定应用中这样做);但是不管怎样,每一个主设备6至少主要负责控制其相应分组或模块12的相应从设备8。
在实施例中,每一个设备6,8还可以连接到分离的电力供应线4,诸如以太网供电连接,其提供设备6,8的前端功能性。例如,在照明器的情况下,第一电源4可以连接到照明器的(多个)光源的驱动器。可替换地,一些或全部设备6,8各自可以提供有其自身单独的电源,或者电源可以并入到通信总线2中。
本公开的示例应用在图2中图示。此处,***包括多个智能照明器12,每一个包括各自连接到总线2的多个设备6,8。例如,每一个照明器的设备6,8可以包括在相同外壳内。在所示示例中,每一个照明器12包括灯或光源、存在传感器、诸如EEPROM之类的存储器、以及控制器。光源、传感器和存储器中的每一个可以实现为从设备或哑设备8,并且每一个控制器可以实现为智能主设备6。每一个主控制器设备6主要负责控制其自身相应照明器12的光源并且从其自身照明器12的传感器取得传感器读数,尽管也许还可能的是控制器6发起通过总线2与其它照明器12的从设备8的交易。另外,控制器6可以通过总线2与其它控制器6通信,例如以交换用于协调照明器12的操作的信息,例如以仅接通或调亮其中基于来自存在传感器的传感器读数而确定用户存在的区中的那些照明器12,并且关断或调暗其它照明器12以便节省电力消耗。将领会到,这仅仅是一个示例,并且各种其它布置可能用于实现照明***或其它种类的***。
在该应用或其它应用的实施例中,总线2可以包括在不同电路板上和/或容纳在不同单元中的设备6,8或模块12之间的一个或多个长度的线缆,其可以通过几米线缆分离。例如,在诸如照明***之类的上下文中,总线2可以包括连接在各种智能照明器6之间的几米线缆。
图3示出了单独的主设备6的细节。在实施例中,参与在总线2上的每一个主设备6可以如图3中那样配置。主设备6包括用于连接到总线2的端口19。另外,主设备6包括总线通信逻辑10和地址配给逻辑21。总线通信逻辑10配置成根据相关总线协议而通过总线2通信,例如I2C。地址配给逻辑12配置成能够向其自己及其相应(多个)从设备8分配地址,如将很快更加详细讨论的。
在示例性实现中,主设备6可以包括包含一个或多个处理单元或核的处理器14,以及包含一个或多个存储单元或存储介质的存储器16。在实施例中,处理器14和存储器16可以采取嵌入式微控制器的形式,例如嵌入在照明器12中,尽管一般地不就处理器或存储器的尺寸或类型做出限制。在这样的实现中,总线通信逻辑10和/或地址配给逻辑21中的一些或全部可以以代码的形式实现,该代码存储在存储器16上并且布置用于在相应主模块6的处理器14上执行。例如,存储器16可以包括通过总线2将来自分离的存储器模块(例如EEPROM)的代码获取到其中的RAM,和/或嵌入式非易失性存储装置,诸如其中预存储代码的启动ROM。因此要指出的是,“逻辑”或“机构”不暗示着专用硬件电路中的实现。不管怎样,在可替换实现中,可能的是总线通信逻辑10和/或预设结构20中的一些或全部可以实现在专用硬件电路中,或者可配置或可重新配置的电路中,诸如PGA或FPAG。一般地,逻辑或机构可以是指软实现或硬实现。
不同主设备6上的配给逻辑21一起形成依照本公开的实施例的分布式地址分配***,其示例将在下文参照图4-7更加详细地讨论。
下文公开了保证***内的每一个设备6,8(智能或不智能)的I2C地址的唯一性的智能、自动化寻址机构,从而使得能够与每一个分离的设备单独地交互。该自动化寻址机构考虑到哑功能设备8可以连接到I2C总线,并且将避免这样的设备可能声明的典型地址(因此在新的从设备8添加到I2C总线2时仍旧保证所有地址的唯一性)。
一旦哑“开架”I2C设备8由连接到总线2的模块12之一使用,则相同设备8或模块12的另一实例将引起总线2上的地址冲突,从而不允许单独地寻址分离的开架设备8。因为在设计时整个***的构建可能未知,因此需要在运行时间期间注意到寻址暗示。下文描述了决定如何向附加设备配给地址的高校方式,以及设定所选地址的构件。
要指出的是:附加哑或从设备8没有在地址冲突的情况下改变其自身地址的构件。
在实施例中,解决方案具有以下特征。
a)每一个智能模块6包括具有使用智能寻址方案所获得的唯一地址的(微)控制器(阶段i)。
b)每一个从设备8耦合到一个(微)控制器。
c)每一个从设备8具有用于从出厂地址范围之中设定特定地址的外部输入。
d)使用于每一个从设备8的所分配的地址唯一使得总是存在具有特定地址的一个(并且仅一个)设备6,8(具有相同地址的多个设备可能彼此干扰并且可能引起不想要的行为)。可以使用“检查和声明”寻址方案而使地址唯一(阶段ii)。
这样,相同哑从设备8的实例可以使用在多个智能模块12上,同时维持唯一的单独地址,而不管哪些模块12或设备6,8组合成实现***。
如在图4和5中所图示的,每一个哑或从设备8使用I2C连接到总线2,但是还具有到其相应智能(微)控制器8的附加连接23,从而允许选择从设备8的I2C地址。该连接23没有经由总线2,并且优选地这采取专用硬件连接的形式。例如,从设备8可以采取“开架”集成电路(IC)的形式,并且该附加连接23可以包括IC的一个或多个外部引脚,以及到控制器6形成于其上的IC的导线连接。这样的引脚可能已经存在于哑或从设备8中,制造商最初意图用于在***设计或调试阶段期间设置地址。然而,依照本文公开的实施例,引脚的存在被用于允许控制器6“现场”动态地配给其从设备8的地址,包括动态地改变已经配给的地址的可能性。
在实施例中,其它连接也可以提供在控制器6与其相应从设备8之间,诸如从控制器6到其从设备8的重置引脚的连接22,其允许控制器6经由除总线2之外的其它构件而重置从设备8(例如,在总线被卡于错误状态中的从设备6遮挡的情况下)。
图6和7图示了向设备6,8分配地址总线以用于通过总线2通信的过程。
在寻址方案的第一阶段(i)中,每一个智能(微)控制器6将接收唯一的I2C地址。这些可以在设计阶段或调试阶段预配置,或者控制器6可以配置成在运行时间分配其自身的地址。在控制器6分配其自身地址的情况下,它们可以配置成通过相互协商而这样做,或者一个控制器6可以负责以集中化方式分配所有控制器地址,或者各种控制器可以各自自主地在不同(例如随机化)时间处开始起作用,其中一个控制器6首先声明第一地址,然后下一控制器6检查自由地址并且从其余地址之中声明其自身地址,等等。在后一情况下,控制器设备6可以检查自由地址,例如通过经由总线2向其意图声明的地址发送消息,并且检查其是否接收到确认(如果是,则地址不自由并且它必须再次尝试)。
不管如何实现,阶段(i)的总体过程通过图6中的步骤S10和S20概念性地表示。在步骤S10处,将地址分配给第一控制器6,然后在步骤S20处,确定是否存在另外的控制器6,并且如果是,则方法循环回到步骤S10以分配下一控制器6的地址,等等。一旦已经分配所有控制器地址,则方法就继续到步骤S30,其中确定是否存在任何从设备8并且因此请求分配地址。这是地址分配过程的阶段(ii)。
在阶段(ii)中,智能(微)控制器6确定用于连接到它的每一个从设备8的合适地址。图7和以下描述详述了用于附连到单独智能控制器6的一个哑I2C从设备8的示例性进程。用于附连到单独智能控制器6的多个这样的从设备8的过程以相同方式工作,其中每一从设备8具有寻址过程的分离实例。过程的实例还在每一个控制器6处针对其相应从设备8中的每一个单独地运行。
步骤S35:控制器6选择用于从设备8的可能地址,并且通过总线2向该地址发送出消息;并且在步骤40处等待结果。
步骤S50:控制器6将核验该地址是否可用(access_claim-address)。如果是,则将通过总线从所讨论的地址接收回非确认(no<ACK>)(其可以通过等待超时时段或者从总线2接收回错误来检测)。控制器6然后选择该地址用于当前考虑之下的从设备8(经由分离连接23)。这包括在步骤S60处:保持总线2被占用(使用例如重复开始或时钟展宽),并且在保持总线2被占用时,配置用于从设备的地址并且重置或启用从设备8(例如经由连接22),然后释放总线2。一旦已经针对控制器6所负责的所有从设备8找到相应地址,则进行到步骤S120(参见下文),其中进入后台过程。
步骤S70:另一方面,如果所讨论的地址不可用,则这将通过经由总线2从已经具有该地址的设备6,8接收回确认(<ACK>)来检测。在该情况下,控制器6确定其是否具有更多可能的地址选项(在给定适用于所讨论的从设备8的地址上的任何约束的情况下,例如由于有限出厂地址范围)。如果是,则其尝试用于从设备8的下一可能地址,重复步骤S40-S60的迭代过程;否则,进行到步骤S80,其中它向一个或多个其它控制器6询问它们是否可以释放它们之前已经分配的其地址之一(通过向当前具有它的设备6,8重新分配另一地址)。
步骤S75:控制器6选择用于从设备的可能地址(已经确定已经被分配给另一设备6,8的那个)。其通过总线2发送出声明请求消息以信令它提出使用该地址(send_request_ask-address);并且在步骤S80处等待回复(参见在接收控制器6中运行的步骤S120-S140)。
步骤S90:控制器6评估其从其它控制器6接收回的响应。
步骤S110:如果回复是拒绝请求([refused]),则控制器6确定其是否具有更多可能地址选项来尝试(在给定适用于所讨论的从设备8的地址上的任何约束的情况下,例如由于有限出厂地址范围)。如果是,则它尝试用于从设备的下一可能地址(从步骤S75起重复步骤)。否则,进行到步骤S150:在给定当前选择的模块的情况下,没有***解决方案可用。控制器6等待***的改变。
步骤S110:另一方面,如果回复是接受请求([accepted]),则控制器6选择用于该从设备8的地址。这包括:配置用于从设备8的地址(例如经由分离连接23),重置或启用从设备8,并且向其它控制器6发送确认它接受提议的恢复消息([using])。
步骤S120:控制器6等待来自其它控制器6的消息([release finished])。当接收到时,分配和重新分配已经完成,并且控制器6进行到以步骤S120处开始的后台过程。
步骤120-140的后台过程是控制器6在其一旦已经向所有其自身的从设备8分配地址就连续地运行的过程,并且现在倾听来自其它控制器6的请求,其可能要求它释放那些地址中的一个(通过重新分配)。
步骤S120:控制器6等待来自另一控制器6的请求消息([send_request_ask])(参见步骤S75)。请求消息包括所提出的地址,请求设备提出将其使用于其自身的一个从设备8,但是目前由当前控制器6(接收请求的控制器)分配给其一个从设备8。
步骤S130:控制器6检查以查明是否有多于一个地址可用于当前使用在请求消息中提及的所提出的地址的从设备8。如果否,则其仅仅通过总线2返回拒绝消息([refused])给请求控制器6
步骤S140:另一方面,如果一个或多个可替换地址可用于所讨论的从设备8,则控制器向请求控制器6返回接受消息([accepted])。它然后等待来自请求设备的确认消息([using])以确认它已经接受提议并且将实际上声明所讨论的地址。当接收到确认消息([using])时,当前控制器6的从设备8被禁用,释放完成消息([release finished])被回复到请求控制器6,并且针对所禁用的从设备8开始新的声明循环。
以上参照图7的示例描述的过程在每一个控制器设备处运行,其中每一个控制器6布置成分配其自身相应从设备8的地址,并且不同控制器6相互协商以适应彼此的从设备地址上的潜在约束。因而,控制器以分布式方式分配其相应从设备8的地址,从而不要求任何一个集中式地址配给,允许设备6,8或模块12在运行时“现场”添加。
此外,过程是动态的,使得当添加新的从设备8时,其自动地具有通过其相应控制器6分配给它的地址,其中另一控制器自动地重新分配其地址之一以适应新的从设备8的地址约束,如果要求的话。用于向新的从设备8分配地址的过程(在步骤S30处开始)可以在添加新的从设备时触发(步骤S30),或者在间隔处(例如周期性地)针对新的设备重复检查。另外,后台过程(步骤S110-S140)继续在后台中运行,使得如果添加在另一控制器6处新的设备6,则地址可以动态地并且自动化地“重新搅乱”,如所要求的那样。
将领会到,已经仅通过示例的方式描述了以上实施例。通过研究附图、公开内容和随附权利要求,本领域技术人员在实践所要求保护的发明时可以理解和实现对所公开的实施例的其它变形。在权利要求中,词语“包括”不排除其它元件或步骤,并且不定冠词“一”或“一个”不排除多个。单个处理器或其它单元可以满足在权利要求中记载的若干项的功能。在相互不同的从属权利要求中记载某些措施的仅有事实不指示这些措施的组合不能用于获利。计算机程序可以存储和/或分布在合适的介质上,诸如与其它硬件一起供应或者作为其部分的光学存储介质或固态介质,但是也可以以其它形式分布,诸如经由互联网或其它有线或无线电信***。权利要求中的任何参考标记不应当解释为限制范围。
Claims (15)
1.一种控制器设备,包括:
用于基于分配给通过总线(2)通信的多个设备的地址而通过总线通信的总线接口(10,19),设备包括多个第二设备(8)和包括所述控制器设备的多个控制器设备(6),其中每一个控制器设备负责分配包括至少所述第二设备中的相应一个或多个中的每一个的地址的一个或多个地址;以及
地址配给逻辑(21),配置成通过以下过程向所述控制器设备的相应一个或多个第二设备中的每一个分配地址:搜索要分配给其相应一个或多个第二设备中的每一个的当前未分配地址,并且如果不能找到用于一个或多个相应第二设备中的一个的未分配地址,则向所述控制器设备中的至少一个其它控制器设备发出请求以请求所述其它控制器设备改变所述其它控制器设备所负责分配的一个或多个地址中的一个。
2.权利要求1所述的控制器,其中请求包括改变所述其它设备的相应一个或多个第二设备中的一个的地址的请求。
3.权利要求1或2所述的控制器,其中每一个控制器设备(6)还负责分配其自身地址,所述请求包括改变所述其它设备的相应一个或多个第二设备中的一个的地址或者所述其它设备的地址的请求。
4.任一项前述权利要求所述的控制器,其中每一个第二设备(8)不能分配其自身地址。
5.权利要求4所述的控制器,其中每一个第二设备(8)不能分配任何地址。
6.任一项前述权利要求所述的控制器,其中每一个控制器设备(6)还负责经由总线(2)控制其相应一个或多个第二设备。
7.任一项前述权利要求所述的控制器,包括用于经由与所述总线分离的分离连接(23)分配所述控制器设备的相应一个或多个第二设备的地址的第二接口。
8.任一项前述权利要求所述的控制器,其中每一个控制器设备(6)是能够发起通过所述总线的交易的主设备,并且每一个第二设备(8)是不能发起通过所述总线(2)的交易的从设备。
9.任一项前述权利要求所述的控制器,其中所述请求通过总线(2)发出。
10.任一项前述权利要求所述的控制器,其中所述请求包括所述控制器提出使用于其相应一个或多个第二设备中的一个的所提出的地址,由此触发所述其它控制器设备确定其是否能够借助于所述改变释放所提出的地址,如果所提出的地址已经由所述其它控制器设备分配的话。
11.任一项前述权利要求所述的控制器,其中总线(2)具有地址范围,并且每一个第二设备(6)仅能够被分配包括比所述地址范围少的地址的有限、预确定的可能地址范围。
12.任一项前述权利要求所述的控制器设备,其中地址配给逻辑(21)配置成通过以下过程执行针对当前未分配地址的所述搜索:通过总线(2)向候选地址发送消息,并且如果作为响应从候选地址接收回确认,则确定候选地址已经被分配,并且如果作为响应从候选地址没有接收回确认,则确定候选地址当前未分配。
13.任一项前述权利要求所述的控制器设备,其中地址配给逻辑(21)可操作成从控制器设备中的至少一个其它控制器设备接收请求,其包括所述其它控制器设备提出使用于其相应一个或多个第二设备中的一个的所提出的地址;并且地址配给逻辑配置成作为响应,如果所提出的地址已经由所述控制器设备分配,则确定它是否能够通过改变所述控制器设备所负责分配的一个或多个地址中的一个而释放所提出的地址。
14.一种包括根据任一项前述权利要求所述的控制器设备的***,该***包括:
总线(2);以及
连接到总线并且各自要求用于通过总线通信的地址的多个设备,多个设备布置成分组(12),其中每一个分组包括相应控制器设备(6)和相应一个或多个第二设备(8);
其中每一个控制器设备负责分配包括至少其相应一个或多个第二设备中的每一个的地址的所述地址中的一个或多个;并且
其中每一个控制器设备配置成通过以下过程执行所述分配:搜索要分配给其相应一个或多个第二设备中的每一个的当前未分配地址,并且如果不能找到用于一个或多个相应第二设备中的一个的未分配地址,则向所述控制器设备中的至少一个其它控制器设备发出请求以请求所述其它控制器设备改变所述其它控制器设备负责分配的一个或多个地址中的一个。
15.一种包括代码的计算机程序产品,所述代码实现在计算机可读介质上并且配置成以便在控制器设备上执行时实施以下操作:
基于分配给通过总线通信的多个设备的地址的方案来通过总线(2)通信,设备包括多个第二设备(8)和包括所述控制器设备的多个控制器设备(6),其中每一个控制器设备负责分配包括至少相应一个或多个第二设备中的每一个的地址的一个或多个地址;
搜索要分配给所述控制器设备的相应一个或多个第二设备中的每一个的当前未分配地址;以及
如果不能找到用于一个或多个相应第二设备中的一个的未分配地址,则向所述控制器设备中的至少一个其它控制器设备发出请求,以请求所述其它控制器设备改变所述其它控制器设备负责分配的一个或多个地址中的一个。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14157280.0 | 2014-02-28 | ||
EP14157280 | 2014-02-28 | ||
PCT/EP2015/052569 WO2015128172A1 (en) | 2014-02-28 | 2015-02-09 | Bus address assignment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106164887A true CN106164887A (zh) | 2016-11-23 |
CN106164887B CN106164887B (zh) | 2017-11-17 |
Family
ID=50241098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580005513.4A Active CN106164887B (zh) | 2014-02-28 | 2015-02-09 | 总线地址分配 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10185689B2 (zh) |
EP (1) | EP3072058B1 (zh) |
JP (1) | JP6198967B2 (zh) |
CN (1) | CN106164887B (zh) |
WO (1) | WO2015128172A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684264A (zh) * | 2018-12-27 | 2019-04-26 | 上海剑桥科技股份有限公司 | Iic交换***及其控制方法 |
CN111034129A (zh) * | 2017-08-30 | 2020-04-17 | 赤多尼科两合股份有限公司 | 具有网络接口的通讯模块与照明总线*** |
CN111045980A (zh) * | 2019-12-24 | 2020-04-21 | 广东嘉泰智能技术有限公司 | 一种多核处理器 |
CN111221765A (zh) * | 2019-12-31 | 2020-06-02 | 苏州浪潮智能科技有限公司 | 一种防止i2c总线地址冲突的通信方法及通信*** |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6359955B2 (ja) * | 2014-11-13 | 2018-07-18 | ルネサスエレクトロニクス株式会社 | シリアル通信システム、通信制御装置および電子装置 |
WO2016078056A1 (en) * | 2014-11-20 | 2016-05-26 | SZ DJI Technology Co., Ltd. | Addressing method for functional modules of a movable object |
WO2017067842A1 (en) * | 2015-10-19 | 2017-04-27 | Philips Lighting Holding B.V. | Control system for communicating with devices connected to a bus, and communication method |
JP6822105B2 (ja) * | 2016-08-09 | 2021-01-27 | 株式会社リコー | 通信システム及び画像形成装置 |
DE102019002119B4 (de) * | 2019-03-25 | 2020-06-10 | Inova Semiconductors Gmbh | Ansteuern von Ausführungseinheiten |
US10805262B1 (en) * | 2019-06-10 | 2020-10-13 | Banner Engineering Corp. | Modbus system having actual and virtual slave addresses and slave sensors |
FR3120267B1 (fr) * | 2021-02-26 | 2024-03-15 | St Microelectronics Rousset | Communication sur bus I2C |
CN113641613A (zh) * | 2021-08-17 | 2021-11-12 | 西安易朴通讯技术有限公司 | 背板、硬盘池、服务器以及通信方法 |
US11909710B2 (en) * | 2022-07-07 | 2024-02-20 | Mellanox Technologies, Ltd. | Unique address assignment without reconfiguration |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787306A (en) * | 1994-05-18 | 1998-07-28 | National Semiconductor Corporation | Automatic assignment of I/O addresses in a computer system |
US6745270B1 (en) * | 2001-01-31 | 2004-06-01 | International Business Machines Corporation | Dynamically allocating I2C addresses using self bus switching device |
US20070250648A1 (en) * | 2006-04-25 | 2007-10-25 | Texas Instruments Incorporated | Methods of inter-integrated circuit addressing and devices for performing the same |
DE102010005104B3 (de) * | 2010-01-20 | 2011-07-21 | Texas Instruments Deutschland GmbH, 85356 | Elektronische Vorrichtung und Verfahren für einen größeren Adressbereich auf einem IIC oder einem IIC-kompatiblen Bus |
CN103106142A (zh) * | 2011-11-10 | 2013-05-15 | 澜起科技(上海)有限公司 | 需要分配地址的器件、器件***及地址分配方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3462626B2 (ja) * | 1995-06-19 | 2003-11-05 | シャープ株式会社 | アドレス割当て方法およびそれを用いる無線端末装置およびそれを用いる無線ネットワーク |
US6725281B1 (en) * | 1999-06-11 | 2004-04-20 | Microsoft Corporation | Synchronization of controlled device state using state table and eventing in data-driven remote device control model |
US7698459B2 (en) | 2006-03-16 | 2010-04-13 | Tellabs Operations, Inc. | Method and system for identifying a device address |
US7827383B2 (en) * | 2007-03-09 | 2010-11-02 | Oracle America, Inc. | Efficient on-chip accelerator interfaces to reduce software overhead |
US7865675B2 (en) * | 2007-12-06 | 2011-01-04 | Arm Limited | Controlling cleaning of data values within a hardware accelerator |
US7925836B2 (en) * | 2008-01-25 | 2011-04-12 | Arm Limited | Selective coherency control |
US8478917B2 (en) | 2010-09-22 | 2013-07-02 | Microsoft Corporation | Automatic addressing protocol for a shared bus |
WO2012120565A1 (en) * | 2011-03-09 | 2012-09-13 | Hitachi, Ltd. | Storage apparatus and method of comparing an expected communication rate between a storage controller and an expander with an operational connection rate |
WO2012171582A1 (en) | 2011-06-17 | 2012-12-20 | Telefonaktiebolaget L M Ericsson (Publ) | Resolving address conflicts in a bus system |
WO2013147885A1 (en) * | 2012-03-30 | 2013-10-03 | Intel Corporation | Apparatus and method for accelerating operations in a processor which uses shared virtual memory |
US9465751B2 (en) * | 2012-03-30 | 2016-10-11 | Intel Corporation | Efficient locking of memory pages |
US20150134804A1 (en) * | 2012-05-17 | 2015-05-14 | Mitsubishi Electric Corporation | Communication device and communication system |
US9785590B2 (en) * | 2014-02-13 | 2017-10-10 | Darcy Winter | Bus auto-addressing system |
US20170286122A1 (en) * | 2016-04-01 | 2017-10-05 | Intel Corporation | Instruction, Circuits, and Logic for Graph Analytics Acceleration |
US10324858B2 (en) * | 2017-06-12 | 2019-06-18 | Arm Limited | Access control |
-
2015
- 2015-02-09 CN CN201580005513.4A patent/CN106164887B/zh active Active
- 2015-02-09 WO PCT/EP2015/052569 patent/WO2015128172A1/en active Application Filing
- 2015-02-09 JP JP2016554223A patent/JP6198967B2/ja active Active
- 2015-02-09 EP EP15703280.6A patent/EP3072058B1/en active Active
- 2015-02-09 US US15/121,700 patent/US10185689B2/en active Active
-
2018
- 2018-12-27 US US16/234,524 patent/US10831692B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787306A (en) * | 1994-05-18 | 1998-07-28 | National Semiconductor Corporation | Automatic assignment of I/O addresses in a computer system |
US6745270B1 (en) * | 2001-01-31 | 2004-06-01 | International Business Machines Corporation | Dynamically allocating I2C addresses using self bus switching device |
US20070250648A1 (en) * | 2006-04-25 | 2007-10-25 | Texas Instruments Incorporated | Methods of inter-integrated circuit addressing and devices for performing the same |
DE102010005104B3 (de) * | 2010-01-20 | 2011-07-21 | Texas Instruments Deutschland GmbH, 85356 | Elektronische Vorrichtung und Verfahren für einen größeren Adressbereich auf einem IIC oder einem IIC-kompatiblen Bus |
CN103106142A (zh) * | 2011-11-10 | 2013-05-15 | 澜起科技(上海)有限公司 | 需要分配地址的器件、器件***及地址分配方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111034129A (zh) * | 2017-08-30 | 2020-04-17 | 赤多尼科两合股份有限公司 | 具有网络接口的通讯模块与照明总线*** |
CN111034129B (zh) * | 2017-08-30 | 2021-12-07 | 赤多尼科两合股份有限公司 | 具有网络接口的通讯模块与照明总线*** |
CN109684264A (zh) * | 2018-12-27 | 2019-04-26 | 上海剑桥科技股份有限公司 | Iic交换***及其控制方法 |
CN111045980A (zh) * | 2019-12-24 | 2020-04-21 | 广东嘉泰智能技术有限公司 | 一种多核处理器 |
CN111221765A (zh) * | 2019-12-31 | 2020-06-02 | 苏州浪潮智能科技有限公司 | 一种防止i2c总线地址冲突的通信方法及通信*** |
Also Published As
Publication number | Publication date |
---|---|
JP2017508216A (ja) | 2017-03-23 |
US10185689B2 (en) | 2019-01-22 |
EP3072058B1 (en) | 2017-04-12 |
US20190129878A1 (en) | 2019-05-02 |
US10831692B2 (en) | 2020-11-10 |
EP3072058A1 (en) | 2016-09-28 |
US20160371210A1 (en) | 2016-12-22 |
CN106164887B (zh) | 2017-11-17 |
WO2015128172A1 (en) | 2015-09-03 |
JP6198967B2 (ja) | 2017-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106164887B (zh) | 总线地址分配 | |
US7548150B2 (en) | Method for the allocation of short addresses in illumination systems | |
US8478917B2 (en) | Automatic addressing protocol for a shared bus | |
CN110290227B (zh) | 集成电路总线地址的动态分配方法、***及存储介质 | |
US10229078B2 (en) | Multi-master bus | |
US20070073446A1 (en) | Method for dynamically allocating controlling and self- assigning of addresses in a network | |
US20070214288A1 (en) | Pointbus architecture and automatic sequential addressing | |
KR20060097532A (ko) | 마스터 노드 및 슬레이브 노드를 갖는 전자 장치 시스템 | |
CN101981901A (zh) | 借助冲突检查的总线地址自动分配 | |
US8825908B2 (en) | Method of identifying devices on a bus and apparatus | |
JP2022027554A (ja) | シリアル接続されたスレーブ装置を自動的にアドレス指定するシステム、装置及び方法 | |
CN107734082B (zh) | 一种地址分配方法及*** | |
US11392519B2 (en) | Method and apparatus for configuring I/O modules connected to a fieldbus controller | |
CN106155954A (zh) | 一种模块识别和通信端口自动分配的***及方法 | |
CN103412838B (zh) | 一种扩展***、通信方法、地址配置方法、设备及装置 | |
KR101330066B1 (ko) | 통신 시스템의 백플랜 버스 구조 및 이를 이용한 보드 인식 방법 | |
JP2007295774A (ja) | 電力供給システム及びシステム電源 | |
JP2019192538A (ja) | 端末器、照明器具、情報端末、ペアリング方法およびプログラム | |
CN109428951A (zh) | 串联通讯***中的地址自动分配方法 | |
EP3631285B1 (en) | Address assignment system and method for surgical lighthead components | |
US11886269B2 (en) | Control network system for power allocation | |
US20080104292A1 (en) | Electronic network | |
CN107729273A (zh) | 一种总线逻辑仲裁装置及方法 | |
TWI635729B (zh) | 串聯通訊系統中的地址自動分配方法 | |
CN117678202A (zh) | 用于协调10base-t1s以太网网络中的多个节点的方法、***和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Eindhoven Patentee after: Signify Holdings Ltd. Address before: Eindhoven Patentee before: Philips Lighting Holdings |