Patent Description:
Storage and dispensing enclosures may include a plurality of internal compartments for holding items to be dispensed, such as in multi-tiered, locker-like cabinets, and/or a variety of active dispensing units, such as the "pushers" used in some vending machines to dispense individual items, and/or a variety of passive dispensing units that track the presence, withdrawal, and, potentially, return of items, such as in rack-and-bin and bin-in-drawer systems that dispense bulk parts or individual tools (using bulk sensors such as load cells, counting sensors such as break beams, radio frequency identification sensors and radio frequency responsive tags attached to individual items or tools, etc.). The number, size and/or arrangement of the compartments, active dispensing units, and passive dispensing units may vary from enclosure to enclosure based upon an end user's practices and needs. In addition, such enclosures are significant capital equipment, and thus manufacturers have begun to modularize compartment access controls, active dispensing units, and passive dispensing units for such enclosures to allow for customized configuration and, potentially, reconfiguration of individual enclosures.

Such storage and dispensing enclosures require the installation of accessory components that are operatively connected to a controller programmed to, e.g., control the operation of an access door based upon payment or authorization, and/or control the operation of an active dispensing module based upon payment or authorization, and/or monitor a passive dispensing module so to provide an activity/audit trail. Potential accessory components include: compartment access controls such as door locks and door position sensors; motors, solenoids, actuators, and switches for active dispensing units such as the aforementioned pushers; load cells, break beam emitters/detectors, and RFID sensors for passive dispensing units such as the aforementioned bin systems; etc. Accessory components could also include annunciators, cameras, in-compartment environmental sensors, etc. Each of those accessory components would conventionally be wired to a central controller that has been configured to directly operate the accessory components. Alternately, some enclosures may include a master controller configured to indirectly operate such accessory components via networked slave controllers provided in accessory modules. For example, <CIT>, published as <CIT> discloses modular door assemblies providing door locks, door position sensors, and annunciators (indicator lights) for controlling access to individual compartments within an enclosure, where each modular door assembly is directly controlled by an in-module (slave) microcontroller and indirectly controlled by an in-enclosure (master) controller. However, and particularly in the case of highly customizable enclosures, installing and configuring such accessory modules can still be a complex, time-consuming, and costly process because the networked controllers should be logically associated with a particular compartment or dispenser in a particular location within the enclosure.

<CIT> discloses a self-identification system for slave devices that share a bus with a plurality of other identical slave devices.

<CIT> discloses multiple ICs that communicate with a controller through a shared bus.

<CIT> discloses a system for dynamically assigning addresses and determining the configuration of a plurality of programmable function modules connected to an electrical conductor, such as a serial bus.

<CIT> discloses a contention free local area network including a token passing control bus and a data bus coupled to a plurality of communication nodes.

A sequential identification value that has a simple and easily comprehended meaning to a human operator, who could be responsible for the initial configuration of an enclosure, the in-the-field repair of a malfunctioning enclosure, or the reconfiguration of an existing enclosure, would be superior to the complex hardware identifiers fused, burned, or otherwise permanently associated with most networked microcontrollers and networking peripherals. This application discloses a system and method for automatically associating sequential identification values with the complex and generally nonsequential hardware or network address identifiers generally used to address the controllers of networked modules, networked accessories, and other such "nodes.

In a first aspect, disclosed is a method for automatically assigning sequential identification values to a plurality of networked nodes according to claim <NUM>.

Optionally, the associating step under claim <NUM> of the first aspect comprises associating a unique identifier of the replying client controller with the sequential identification value. Further optionally, the unique identifiers of replying client controllers are generally nonsequential.

In a second aspect, disclosed is a method for automatically assigning sequential identification values to a plurality of networked nodes according to claim <NUM>.

Optionally, the controller of the plurality of client controllers under claim <NUM> has a unique identifier, and the reply to the query includes the unique identifier. Further optionally, the unique identifiers of the plurality of client controllers are generally nonsequential.

In a third aspect, disclosed is a system for automatically assigning sequential identification values to a plurality of networked nodes. The system includes a host controller operatively interconnected with a plurality of client controllers by a shared, multi-drop communications bus. The host controller is further operatively interconnected with a first controller of the plurality of client controllers by an initial segment of a daisy-chained, point-to-point communications bus, with each previous controller of the plurality of client controllers being operatively connected to a subsequent controller of the plurality of client controllers by another segment of the point-to-point communications bus. The host controller includes control logic to (i) issue a token to the first of the plurality of client controllers via the initial segment of the point-to-point communications bus, (ii) following issue of the token, query the plurality of client controllers via the multi-drop communications bus, (iii) receive a reply via the multi-drop communications bus and, upon receiving the reply, associate a replying client controller with a sequential identification value, and (iv) command via the multi-drop communications bus passing of the token via the point-to-point communications bus. The client controllers include control logic to (i) receive the token via the point-to-point communications bus, (ii) receive the query via the multi-drop communications bus, (iii) if that controller has the token, issue the reply to the query via the multi-drop communications bus, and (iv) receive the command via the multi-drop communications bus and, if that controller holds the token, pass the token via the point-to-point communications bus to a subsequent controller of the plurality of client controllers.

In a fourth aspect, disclosed is storage and dispensing enclosure including a host controller and a plurality of accessory modules, each including a respective client controller, disposed within the enclosure. The storage and dispensing enclosure also includes a shared, multi-drop communications bus operatively interconnecting the host controller with the plurality of accessory modules via the respective client controllers. The storage and dispensing enclosure further includes a daisy-chained, point-to-point communications bus operatively interconnecting the host controller with a first of the plurality of accessory modules via an initial segment, and each previous accessory module of the plurality of accessory modules being with each subsequent accessory module of the plurality of accessory modules via additional segments. The host controller includes control logic to (i) issue a token to the first of the plurality of accessory modules via the initial segment of the point-to-point communications bus, (ii) following issue of the token, query the plurality of accessory modules via the multi-drop communications bus, (iii) receive a reply via the multi-drop communications bus and, upon receiving the reply, associate a replying accessory module with a sequential identification value, and (iv) command via the multi-drop communications bus passing of the token via the daisy-chained, point-to-point communications bu. The accessory modules include control logic to (i) receive the token via the point-to-point communications bus, (ii) receive the query via the multi-drop communications bus, (iii) if that accessory module has the token, issue the reply to the query via the multi-drop communications bus, and (iv) receive the command via the multi-drop communications bus and, if that accessory module holds the token, pass the token via the point-to-point communications bus to a subsequent accessory module of the plurality of accessory modules.

In certain processing environments, it is desirable to be able to automatically assign simple, sequential identification values to networked client nodes depending upon the order in which they are physically connected to a host node via a linear bus. That ability can be important when functionally random and unique identification numbers such as Globally Unique Identifiers (GUIDs), Media Access Control (MAC) addresses, or the like must be logically associated with a relative physical location within a network or device. An example of such an environment would be a storage and dispensing disclosure, where accessory modules may be installed in various locations within an enclosure frame, and the relative physical location of the accessory module within the enclosure frame is the principal distinguishing characteristic to a human operator configuring or maintaining the device.

In some existing storage and dispensing enclosures, such as vending machines, the physical locations of motor and switch elements can be laid out in a fixed X-Y grid topology that is addressable using fixed row and column wiring. Each element can then be efficiently identified and addressed by well-known column and row addressing methods so long as there is a single input device and/or single output device per node and per-location. That efficiency is lost, however, when complex wiring harnesses begin to be required to support complex input/output requirements for multi-functional modules or nodes, when differently sized accessories begin to be installed in varying locations within an enclosure, and when an enclosure may be configured with different accessories having different input/output requirements. For example, a customer may want a series of enclosures that include four different-sized compartments in two or more different configurations, and where some of the compartments are both access-controlled and environmentally monitored. Grid wiring and fixed wiring harnesses directly connected to a central controller are not well-suited for use in such architectures.

Accordingly, in a first aspect schematically illustrated in <FIG>, a storage and dispensing enclosure may include a host controller <NUM>. The host controller <NUM> includes control logic stored in a memory such as a read-only memory, a non-volatile and re-writeable memory, or a combination thereof. In some constructions, the control logic of the host controller <NUM> may indirectly control access to compartments in the storage and dispensing unit based upon a payment or an authorization. In some constructions, the control logic of the host controller <NUM> may indirectly control the operation of active dispensing modules based upon a payment or an authorization. In some constructions, the control logic of the host controller <NUM> may monitor events communicated by passive dispensing modules so as to record an indication of a dispensing event. Constructions may include any one or more of the foregoing functionalities.

The storage and dispensing enclosure also includes a plurality of client controllers <NUM>, e.g., a first client controller 200a, a second client controller 200b, and a third client controller 200c. Each client controller may have a unique ID <NUM>, e.g., IDs 201a, 201b, and 201c, respectively. The unique ID may be a hardware identifier such as a GUID or a MAC address, or may be an assigned unique ID such as an IP address. The client controllers <NUM> also include control logic stored in a memory such as a read-only memory, a non-volatile and re-writeable memory, or a combination thereof. For example, a client controller <NUM> such as controller 200a may, responsive to host controller <NUM>, directly control a door lock so as to control access to a compartment of the storage and dispensing unit. For further example, a client controller such as controller 200b may, responsive to host controller <NUM>, directly control the operation of an active dispensing module, such as a "pusher," so as to dispense an item via the active dispensing module. For yet further example, a client controller <NUM> such as controller 200c may monitor a passive dispensing module, such as a bin resting upon a load cell, and communicate to host controller <NUM> a dispensing event when the passive dispensing module senses the removal of an item from the bin.

The host controller <NUM> is operatively interconnected with the plurality of client controllers <NUM> by a shared, multi-drop communications bus <NUM>. The multi-drop communications bus <NUM> may be, for example, an RS-<NUM>-compliant bus. The multi-drop communications bus <NUM> may be, for example, a Controller Area Network (CAN)-specification-compliant bus. Other shared, multi-drop communications bus technologies usable with the system and method will be readily apparent to those skilled on the art.

The host controller <NUM> is also operatively connected to a first controller of the plurality of client controllers <NUM> by a segment of daisy-chained, point-to-point communications bus <NUM>. The point-to-point communications bus <NUM> may be, for example, an RS-<NUM>-compliant bus. Other daisy-chainable, point-to-point communications bus technologies usable with the system and method will also be readily apparent to those skilled on the art. The first controller of the plurality of client controllers, e.g., controller 200a, is operatively connected to a second of the plurality of client controllers <NUM>, e.g., controller 200b, by a different segment of the daisy-chained, point-to-point communications bus <NUM>, and so on, so that, in general, each previous controller of the plurality of client controllers <NUM> is operatively connected to a subsequent controller of the plurality of client controllers <NUM> by another segment of the daisy-chained, point-to-point communications bus <NUM>. Consequently, the host controller <NUM> can communicate via the multi-drop communications bus <NUM> with each of the plurality of client controllers <NUM>, but via the point-to-point communications bus <NUM> with only the first of the plurality of client controllers <NUM>. The first controller of the plurality of client controllers <NUM> can communicate via the point-to-point communications bus <NUM> with only a controller attached to the same segment, and so on. Preferably, each previous controller of the plurality of client controllers <NUM> can only transmit via the point-to-point communications bus <NUM> to a subsequent controller of the plurality of client controllers <NUM>.

The host controller <NUM> includes control logic to issue a token to the first of the plurality of client controllers <NUM> via the point-to-point communications bus <NUM>. The token may be a simple unique number, a data packet including a token flag or a unique number, or the like. The token is used to control the discovery and identification of the plurality of client controllers <NUM> via the multi-drop communications bus <NUM>. A client controller <NUM> that has received and not yet passed on the token may reply to the host controller <NUM> during commissioning of the system, such as during initial configuration of an enclosure, maintenance involving the replacement of a node in an enclosure, or reconfiguration of the nodes installed in an enclosure. Other client controllers that have passed on the token, i.e., have been discovered and associated with a sequential identification value, or have not yet received the token, i.e., have not yet been discovered and not yet been associated with a sequential identification value, will remain silent. The daisy-chained, point-to-point communications bus <NUM> and the orderly passing of the token along that bus consequently enables sequential identification values to be associated with the plurality of client controllers <NUM> based upon the order in which they are physically connected to the host controller <NUM> via that bus. The point-to-point communications bus <NUM> may be disposed within the storage and dispensing enclosure in a configuration readily observable by a human operator (e.g., by being visible from the front or rear of the enclosure, potentially after the removal of a fascia, panel, or the like), allowing the operator to observe the sequence in which each node is physically connected to that bus.

The host controller <NUM> further includes control logic to, following issue of the token, query the plurality of client controllers via the multi-drop communications bus <NUM>. Each of the plurality of client controllers <NUM> includes control logic to receive the token issued via the point-to-point communications bus <NUM>, to receive the query via the multi-drop communications bus <NUM>, and, if that controller has the token, to reply to the query via the multi-drop communications bus <NUM>. The reply to the query may include the unique ID <NUM> and/or other information such as the type of module controlled by that client controller <NUM> and the version of the control logic in that client controller <NUM>.

The host controller <NUM> further includes control logic to receive the reply via the multi-drop communications bus <NUM>, to associate the replying client controller with a sequential identification value, and to transmit an acknowledgement to the replying client controller via the multi-drop communications bus <NUM>. The host controller may associate the replying client controller with a sequential identification value by associating a replying client controller's unique ID <NUM> with the sequential identification value. However, if the replying client controller does not have a unique ID <NUM>, the host controller may associate the replying client controller with a sequential identification value by assigning the replying client controller the sequential identification value as a local address on the multi-drop communications bus <NUM>. The acknowledgement may include the associated sequential identification value, which may be stored by the replying client controller within a non-volatile and rewritable memory. The sequential identification value may be used by the replying client controller as its local address on the multi-drop communications bus <NUM>. The sequential identification value may also or alternately be displayed by the node of the replying client controller as a visible indication of the associated sequential identification value at the node. The acknowledgement, whether or not including the associated sequential identification value, may trigger the replying client controller to set an association status flag within a non-volatile and rewritable memory signifying that the controller has been associated with a sequential identification value. The status stored by the association status flag may be displayed by the node as a visible indication of whether the host controller <NUM> has associated client controller <NUM> with the sequential identification value. The host controller <NUM> may subsequently increment a counter to create a subsequent sequential identification value or increment an index to reference a subsequent sequential identification value from a list, array, table, matrix, or other store for a predetermined sequence. The reader will appreciate that the sequential identification value could be a numerical value (e.g., <NUM>, <NUM>, <NUM>. ), an alphanumerical value (e.g., value from a hexadecimal sequence), or a value from a predetermined sequence (for sake of illustration, "first," "second," "third".

The host controller <NUM> yet further includes control logic to command via the multi-drop communications bus <NUM> passing of the token (e.g., transmits a broadcast command to all client controllers <NUM> for any having the token to pass the token to a subsequent client controller), and each of the plurality of client controllers <NUM> further includes control logic to receive the command via the multi-drop communications bus <NUM> and, if it holds the token, pass the token via the point-to-point communications bus <NUM> to a subsequent controller of the plurality of client controllers <NUM>.

After issuing the command over the multi-drop communication bus <NUM>, the host controller control logic iterates the querying, receiving, associating, transmitting, and commanding logic until the last of the plurality of client controllers <NUM> is identified and associated or a fault occurs. The host controller <NUM> may assume completion of the commissioning (identification and association) process if a reply is not received within a timeout. Alternately, the last of the plurality of client controllers <NUM> may send an end-of-bus, negative acknowledgement, or similar message if it has the token and is commanded to pass the token, if the point-to-point communications bus <NUM> has a connection-sensing capability. Faults may be indicated by the aforementioned display of the node. For example, an alphanumeric display may display a character indicating whether the client controller of the node is in commissioning mode (awaiting receipt of the token) or has been identified and associated (has received and passed on the token). Such a display may also indicate whether a node has the token, which may be useful for identifying a faulty connection between that client controller <NUM> and the multi-drop communications bus <NUM>. An alternate, multiple position or multiple color LED display may illuminate particular LEDs or illuminate particular colors to provide the same indications.

Turning to <FIG>, an exemplary host controller <NUM> may comprise a microcontroller or central processing unit <NUM>, a memory <NUM>, a first bus interface <NUM> to the multi-drop communications bus <NUM>, and a second bus interface <NUM> to the point-to-point communications bus <NUM>. The memory <NUM> is preferably non-volatile and rewriteable (so as to serve as a repository for upgradable control logic and the association information described above), but may be volatile random access memory paired with firmware. In one construction, the first bus interface <NUM> includes a universal asynchronous receiver/transmitter (UART) <NUM> and an RS-<NUM>-compliant transceiver <NUM>. In another construction, the bus interface <NUM> includes a CAN controller <NUM> and CAN transceiver <NUM> (alternate operative connections shown using broken lines). In the illustrated constructions, the second bus interface <NUM> includes a second universal asynchronous receiver/transmitter (UART) <NUM> and an RS-<NUM>-compliant transmitter <NUM>. It will be appreciated that in other constructions, the transmitter could be a transceiver and the bus interface may not require a UART.

Turning to <FIG>, an exemplary client controller <NUM> may comprise a microcontroller or central processing unit <NUM>, a memory <NUM>, a first bus interface <NUM> to the multi-drop communications bus <NUM>, and a second bus interface <NUM> to the point-to-point communications bus <NUM>. The memory <NUM> is again preferably non-volatile and rewriteable (so as to serve as a repository for upgradable control logic and the association information described above), but may be volatile random access memory paired with firmware. In one construction, the first bus interface <NUM> includes a universal asynchronous receiver/transmitter (UART) <NUM> and an RS-<NUM>-compliant transceiver <NUM>. In another construction, the bus interface <NUM> includes a CAN controller <NUM> and CAN transceiver <NUM> (alternate operative connections shown using broken lines). In the illustrated construction, the second bus interface <NUM> includes a second universal asynchronous receiver/transmitter (UART) <NUM> and at least one RS-<NUM>-compliant transceiver <NUM>. In the illustrated construction, a single RS-<NUM>-compliant transceiver receives from a prior segment of the point-to-point communications bus <NUM> and transmits to a subsequent segment of that bus so that communication through the bus <NUM> is one-directional. It will be appreciated that in other constructions, a transceiver may provide bidirectional communications, there may be paired transceivers to connect to the previous and subsequent segments, and the bus interface may require other UARTs or controllers.

Turning to <FIG>, a preferred physical construction of the system combines the multi-drop communications bus and point-to-point communications bus in twisted pair cabling (e.g., "category <NUM>" or ANSI/TIA/EIA-<NUM>-A cabling; used pairs are shown as single lines for clarity of illustration). The multi-drop communication bus <NUM> is continuous between input <NUM> and output <NUM> ports of each client controller <NUM>/node, with a drop connecting to the first bus interface <NUM> of the node, so that a first wire pair of the cabling forms an uninterrupted bus segment across all connected controllers <NUM>, <NUM>. The point-to-point communication bus <NUM> is interrupted by the second bus interface of the node so that another wire pair, or single wire in one-way implementations of the bus, forms a daisy-chain of interrupted bus segments across all connected controllers <NUM>, <NUM>. Accordingly, a linear bus having an arbitrary shape and length can be formed by daisy-chaining controllers <NUM>, <NUM> of the nodes using readily available structured cabling.

<FIG> summarizes a method <NUM> reflecting the control logic described above. In a system including a host controller <NUM> and a plurality of client controllers <NUM>, with the host controller <NUM> operatively connected to the plurality of client controllers <NUM> via a multi-drop communications bus <NUM>, the host controller <NUM> operatively connected to a first controller of the plurality of client controllers <NUM> via a segment of a point-to-point communications bus, and each previous controller of the plurality of client controllers <NUM> operatively connected to a subsequent controller of the plurality of client controllers <NUM> via another segment of the point-to-point communications bus <NUM>, a host controller <NUM> may transmit a commissioning order <NUM> to a plurality of client controllers <NUM> via the multi-drop communications bus <NUM>. Such a commissioning order may trigger the plurality of client controllers <NUM> to cease transmitting on the multi-drop communications bus, to discard any stored sequential identification value and/or reset any association status flag, and to enter a commissioning mode. The reader will appreciate that this step is considered optional, since a host controller <NUM> and plurality of client controllers <NUM> may be manually placed into a commissioning mode or ordered to enter a commissioning mode by other means.

The host controller <NUM> issues a token <NUM> to a first controller of the plurality of client controllers via the point-to-point communications bus <NUM>. The host controller <NUM> queries <NUM> the plurality of client controllers <NUM> via the multi-drop communications bus <NUM>. A client controller receiving the query and having the token replies <NUM> to the host controller <NUM> via the multi-drop communications bus <NUM>. The host controller <NUM> receives 550a the reply, associates 550b the replying client controller with a sequential identification value, and acknowledges 550c the association to the replying client controller via the multi-drop communications bus <NUM>. The replying client controller, receiving the acknowledgement and having the token, stores <NUM> the acknowledgement event. The storage may including storing an associated sequential identification value, setting an association status flag, or a combination of the foregoing. The host controller <NUM> and replying client controller may optionally use an associated sequential identification value as a local address <NUM> of the replying client controller on the multi-drop communications bus <NUM>, such as when the plurality of client controllers <NUM> includes client controllers that do not include a pre-assigned unique ID.

The host controller <NUM> commands <NUM> via the multi-drop communication bus <NUM> passing of the token. The replying client controller, receiving the command and having the token, passes the token <NUM> via the point-to-point communications bus <NUM> to a subsequent client controller of the plurality of client controllers. Then, the steps <NUM> through <NUM> are repeated. The reader will appreciate that there may be variations of and additional steps in the method reflecting the options and alternatives described for the control logic above.

The system and method advantageously establish a sequential identification value that has a simple and easily comprehended meaning to a human operator, who could be responsible for the initial configuration of an enclosure, the in-the-field repair of a malfunctioning enclosure, or the reconfiguration of an existing enclosure. This logical sequential identification value may be used for addressing client controllers on the multi-drop communications bus <NUM>, but even more importantly may be used by a human operator to, for example, identify to the host controller <NUM>, or any computer executing payment, authentication, and/or stock tracking software, the items that have been stocked in a particular compartment, active dispensing unit, or passive dispensing unit. Other uses for the sequential identification value will be apparent to those working in the art. In contrast to prior systems and methods, no unique parameters must be loaded when compiling controller control logic or manually programmed during initial configuration of an enclosure. Once commissioning has been completed, the multi-drop communications bus <NUM> enables operation even when single or multiple nodes have failed, while during commissioning the association of sequential identification values and potential for display of commissioning status (potentially by display of association status or the associated sequential identification value itself at each node) enables ready identification of faulty nodes, defective cabling segments and the like. Finally, the system and method simply in-the-field replacement of nodes or reconfiguration of an enclosure. The nodes may be interconnected using inexpensive structured cabling by technically savvy but relatively untrained operators, so that in-the-field replacements may be performed by non-specialized field service technicians and, potentially, an end user's own technical staff.

In another aspect, a system architecture for a storage and dispensing enclosure with complex input/output requirements is disclosed.

<FIG> illustrates a prior art system architecture in which a remote node is directly controlled by a central controller <NUM>. The exemplary remote node <NUM> is a touchscreen video interface that illustrates the variety of input/output interfaces and types that may be required. The remote node <NUM> includes audio interface <NUM> for receiving a digital audio signal, such as an I2S interface, a video interface <NUM> for receiving a digital video signal, such as an LVDS, HDMI, or Displayport interface, and an IRQ pin <NUM> and I2C interface <NUM> for a touchscreen controller <NUM>, with additional use of the I2C interface for a video screen backlight controller <NUM>. The central controller <NUM>, which may be a so-called embedded personal computer, correspondingly includes an audio interface <NUM>, such as an I2S interface, a video interface <NUM> for transmitting a digital video signal, such as an HDMI or Displayport interface, GPIO pin <NUM> for receiving the output of the touchscreen controller IRQ pin, and I2C interface <NUM> connection to the I2C interface <NUM>. Each wiring connection between corresponding interfaces requires cables including at least one and potentially up to <NUM> wires. Such wiring can be costly and difficult to route within complex and cramped storage and dispensing enclosures, particularly if longer lengths are required.

Claim 1:
A method for automatically assigning sequential identification values to a plurality of networked nodes including a host controller (<NUM>) operatively interconnected with a plurality of client controllers (<NUM>) by a shared, multi-drop communications bus (<NUM>), the host controller (<NUM>) being further operatively interconnected with a first controller (200a) of the plurality of client controllers (<NUM>) by an initial segment of a daisy-chained, point-to-point communications bus (<NUM>), and each previous controller of the plurality of client controllers (<NUM>) being operatively connected to a subsequent controller of the plurality of client controllers (<NUM>) by another segment of the point-to-point communications bus (<NUM>), the method being characterized in that it comprises the steps of:
issuing (<NUM>), via the host controller, a token to a first controller (200a) of the plurality of client controllers (<NUM>) via the point-to-point communications bus (<NUM>);
querying (<NUM>), via the host controller, the plurality of client controllers (<NUM>) via the multi-drop communications bus (<NUM>), and receiving, via the host controller, from a client controller having the token, a reply (550a) via the multi-drop communications bus (<NUM>);
associating (550b), via the host controller, the replying client controller with a sequential identification value;
acknowledging (550c), via the host controller, the association to the replying client controller via the multi-drop communications bus (<NUM>);
commanding (<NUM>), via the host controller and multi-drop communications bus (<NUM>), passing of the token (<NUM>) to a subsequent controller of the plurality of client controllers via the point-to-point communications bus (<NUM>); and
repeating the querying, associating, acknowledging, and commanding steps.