Aspects of the present disclosure relate to the addressing of communication devices in a communication network. A variety of communication networks are used in different applications and environments. For example, industrial, automotive, and other industries have used communications networks to facilitate the control of and/or communication between various devices. These communications have been increasingly used to suit various needs. In particular, the automotive industry has seen increased use of network communications for a variety of uses, such as for controlling communication circuits relating to the operation of a vehicle.
Battery management systems are well-suited for use in electric vehicles (both fully-electric and hybrid), and other arrangements in which it is desirable to control the battery to improve performance Electric vehicles are propelled by electric motors, and are energized by a set of batteries. Typically about 100 lithium-ion battery cells (collectively in a battery or battery pack) store the energy required to drive the vehicle. The batteries can be charged by the power grid or an internal combustion engine (e.g., as a hybrid engine or a range extender).
For optimal performance, one or more battery properties may be monitored including, e.g., state-of-charge, state-of-function and state-of-health. This information can be used to inform the driver of the vehicle's estimated remaining driving range (a fuel gauge function) and the probability of the vehicle being able to reach the desired destination. Also, this information can be used by the battery manager to improve the performance of the battery, which is critical for any electric vehicle due to the relatively short driving range and limitations on the ability to recharge the battery. In order to accomplish this, the battery manager should be able to communicate with the battery cells.
In the automotive market, various communication bus systems exist. For instance, automobiles may contain a LIN bus for low-cost body electronics, a CAN bus for mainstream power-train communications, and a FlexRay bus for high-end applications. Each such bus is used with suitable vehicle components, and each component will have a transceiver for effecting communication via the bus.
Aspects of the present disclosure relate generally to methods, circuits and devices for the communication of data to and from communication circuits via a bi-directional data path.
In some embodiments, an apparatus is provided that includes a bi-directional communication bus, a set of battery sections connected to the bi-directional communication bus, and a battery manager circuit bi-directional communication bus. Each of the battery sections of the set has a clock circuit. The battery manager circuit is configured to communicate with the set of battery sections via the bi-directional communication bus using a synchronous master-slave communication protocol, in which symbols transmitted by the battery manager circuit include respective timing trigger segments and respective data segments. Each battery section of the set of battery sections is configured and arranged to adjust a frequency or a phase of the respective clock circuit of the battery section, relative to timing of the timing trigger segments.
In some embodiments, an apparatus is provided that includes a plurality of battery sections. Each section includes a battery cell, a clock circuit, and a communication circuit coupled to the battery cell and the clock circuit. The communication circuit includes first and second connection nodes. The plurality of battery sections is connected in a daisy-chain via the first and second connection nodes to form a bi-directional communication bus. The apparatus also includes a battery manager circuit connected to the bi-directional communication bus. The battery manager circuit is configured to communicate with the plurality of battery sections via the bi-directional communication bus using a synchronous master-slave communication protocol. Symbols transmitted by the battery manager circuit include respective timing trigger segments and respective data segments. Each battery section is configured to adjust a frequency or a phase of the respective clock circuit of the battery section relative to timing of the timing trigger segments.
In some embodiments, an apparatus is provided that includes a plurality of battery sections. Each battery section includes a battery cell, a clock circuit, and a communication circuit coupled to the battery cell and the clock circuit. The communication circuit includes first and second connection nodes. The plurality of battery sections is connected in a daisy-chain via the first and second connection nodes to form a bi-directional communication bus. The apparatus also includes a battery manager circuit connected to the bi-directional communication bus and configured and arranged to communicate with the plurality of battery sections via the bi-directional communication bus, using a master-slave communication protocol. The battery sections and the battery manager circuit are configured to coordinate transmission of data symbol segments using timing trigger segments transmitted by the battery manager circuit.
The above summary is not intended to describe each embodiment or every implementation of the present disclosure. The figures, detailed description, and claims that follow more particularly exemplify various embodiments.
Aspects of the present disclosure may be more completely understood in consideration of the detailed description of various embodiments that follows, in connection with the accompanying drawings, in which:
While the disclosure is amenable to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that the intention is not to limit the disclosure to the particular embodiments described. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the scope of the disclosure, including aspects defined in the claims. While the present disclosure is not necessarily limited in this context, various aspects of the disclosure may be appreciated through a discussion of related examples.
Aspects of the present disclosure generally relate to methods, circuits and devices for the communication of data to and from communication circuits via a bi-directional data path (e.g., a daisy-chain bus). For ease of explanation, the examples herein are primarily described with reference to communication of data to and from a plurality of battery sections in a battery pack.
In some embodiments, an apparatus is provided that includes a bi-directional communication bus, a set of battery sections connected to the bi-directional communication bus and a battery manager connected to the bi-directional communication bus. Each of the battery sections has a respective clock circuit. The battery manager is configured to communicate with the set of battery sections via the bi-directional communication bus using a synchronous master-slave communication protocol, in which symbols transmitted by the battery manager include respective timing trigger segments and respective data segments. Each battery section of the set of battery sections is configured and arranged to adjust a frequency or a phase of the respective clock circuit of the battery section, relative to timing of the timing trigger segments.
In some implementations, each battery section is configured to communicate a status of the battery section in response to receiving one of the symbols from the battery manager. The symbols from the battery manager are communicated in a first direction over the bi-directional communication bus; and status messages from the battery sections are communicated in a second direction over the bi-directional communication bus.
The battery sections and the battery manager are configured to coordinate transmission of data symbol segments using timing trigger segments transmitted by the battery manager. In some implementations, the clock circuit in each battery section is configured to maintain a respective clock signal. The clock circuits may include, for example, a frequency-locked-loop or a phase-locked loop. The clock circuit of each battery section is configured to adjust the frequency and/or phase of a respective clock signal to match a frequency and/phase of the timing trigger segments of the symbols communicated from the battery manager. As a result of the adjustments, the clock signals maintained by the respective battery sections become synchronized to a clock used by the battery manager for communication.
Due to drift that may occur between independently maintained clocks, the clock signals maintained by the respective battery sections become unsynchronized from the clock of the battery manager if the bi-directional communication bus is idle for a threshold period of time. In some embodiments, in response to the bi-directional communication bus being idle for a threshold period of time, the battery manager transmits one or more symbols including a timing trigger segment and including a data segment having synchronization data. The synchronization data exhibits a frequency of the clock of the battery manager that may be used for synchronization of the clock circuits of the battery sections with the battery manager. The synchronization data is configured to allow the clock circuit of each battery section to adjust the frequency of the respective clock without prompting the battery section to take additional action.
In some embodiments, each of the battery sections includes a first connection node and a second connection node. The battery sections are connected in a daisy-chain via the first and second connection nodes to form the bi-directional communication bus. For instance, for each battery section, in response to receiving a symbol via the first connection node, the battery section forwards the symbol along the bi-directional communication bus via the second connection node. Conversely, in response to receiving a symbol via the second connection node, the battery section forwards the symbol along the bi-directional communication bus via the first connection node.
In some embodiments, each of the battery sections also includes a battery cell and a communication circuit connected to the battery cell. The communication circuit is configured to communicate cell-status data over the bi-directional communication bus. The cell-status data characterizes one or more aspects of a cell. For instance, the cell-status data may provide a measurement of current, voltage, power, and/or temperature of the cell of the battery section. Alternatively, or additionally, the apparatus may be used to communicate data generated by a logic circuit of the battery cell over the bi-directional data path.
Various embodiments may encode data differently for transmission over the bi-directional communication bus. For example, in one implementation a first data value may be encoded by setting the entire data segment of a symbol to high value and a second data value may be encoded by setting the entire data segment of the symbol to low value. In some implementations, the data segment may encode more than two different values. For instance, a third data value may be encoded by setting a first portion of the data segment to the low value and a section portion of the data segment to the high value. The time at which the data segment transitions from the low value to the high value may be used to encode a number of different values. In some embodiments, the battery manager and the set of battery sections are configured to communicate data using the battery manager to drive the bi-directional communication bus to a recessive high voltage and using the set of battery sections to pull the bi-directional communication bus down to a dominant low voltage.
In some embodiments, the communication circuits are configurable to communicate data to the battery manager over the daisy-chain bus in either a first direction, via the first end of the daisy-chain bus, or in a second direction, via the second end of the daisy-chain bus. The direction may be selected, for example, by the battery manager circuit. In some implementations, the communication circuits are each configured to communicate the cell-status data to the battery manager, in response to receiving a data command from the battery manager. For instance, the communication circuits may be configured to transmit cell status data via the communication node from which the data command is received.
In various embodiments, the battery manager may utilize a number of different data commands to communicate data to/from the communication circuits in the daisy-chain bus. For instance, in one example, the battery manager transmits a first type of data command to prompt all of the communication circuits to provide cell-status data.
As another example, the battery manager may transmit a second type of data command to request cell-status data from a particular one of communication circuits to provide cell-status data. For instance, in some implementations, the communication circuits are configured to provide the cell-status data if the second type of data command includes a respective unique identifier of the communication circuit and/or section. Otherwise, the communication circuits transmit an acknowledgement of the second data message.
In some embodiments, the battery manager may issue a third data command to prompt the communication circuits to split the daisy-chain bus at a particular connection in the daisy-chain bus. For instance, the battery manager may take such action in response to detecting that the particular connection is broken or has reduced bandwidth. In some embodiments, the battery manager may prompt the communication circuits to split the daisy-chain bus in order to double the available bandwidth, by simultaneously communicating different sets of data via each of the two respective ends of the data bus. In response to the third data command, a first subset of the communication circuits is configured to communicate data via the first end and a second subset of the communication circuits is configured to communicate data via the second end. A connection between the first and second subsets is disabled—thereby splitting the daisy-chain bus into two isolated daisy-chain buses. Various embodiments may alternatively/additionally utilize other commands to communicate data to/from the communication circuits.
Turning now to the figures,
Symbols transmitted by the battery manager include respective timing trigger segments and respective data segments. The battery sections and the battery manager are configured to coordinate transmission of data symbols on the bi-directional communication bus by using the timing trigger segments to synchronize clocks circuits 165, 175, and 185 of the battery sections with the battery manager 150. In some embodiments, the clock circuits 165, 175, and 185 may be included as part of the respective communication circuits 161, 171, and 181.
Each battery section is configured to adjust a frequency and/or phase of the respective clock circuit circuits 165, 175, or 185, included therein, relative to timing of the timing trigger segments. As a result of the adjustments, the clock signals maintained by the respective battery sections become synchronized to a clock used by the battery manager 150 for communication. The communication circuits 161, 171, and 181 are configured to sample and transmit symbols on the daisy-chain bus using the clock signal maintained by the respective clock circuit 165, 175, or 185.
The battery manager circuit 150 may be connected directly to the daisy-chain bus as shown by battery manager 130 in
In some embodiments, the communication circuits 161, 171, and 181 are configurable to communicate data to the battery manager over the daisy-chain bus in either a first direction via the first end 152 of the daisy-chain bus or in a second direction via the second end 153 of the daisy-chain bus. The direction may be selected, for example, by the battery manager circuit 150. In some implementations, the communication circuits 161, 171, and 181 are each configured to communicate the cell-status data to the battery manager, in response to receiving a data command from the battery manager. More specifically, the communication circuits 161, 171, and 181 are each configured to transmit cell status data via the communication node from which the data command is received. This arrangement allows the battery manager 150 and/or communication interface 151 to request and receive cell-status data via either of the ends 152 and 153 of the daisy-chain bus.
As an illustrative example, if the connection between communication circuits 161 and 171 in the daisy-chain bus is broken, the communication circuit 161 will become unresponsive to data commands communicated from the battery manager via the first end 152 of the daisy-chain bus. In response to the communication interface 151 and/or battery manager 150 detecting that the communication circuit 161 is unresponsive, the communication interface 151 is set to operate in the second mode. While operating in the second mode, the communication interface 151 transmits data commands from the battery manager via both ends 152 and 153 of the daisy-chain bus. Communication circuits 171 and 181 receive the data command via the first end 152 and the communication circuit 161 receives the data command via the second end 153. Data responses are communicated from communication circuits 171 and 181 to the communication interface 151 via the first end 152. A data response is communicated from communication circuit 161 to the communication interface 151 via the second end 153. In this manner, the battery manager is able to continue communicating with each of the communication circuits in-spite of the connection break in the daisy-chain bus.
In various embodiments, the battery manager 150 may utilize a number of different data commands to request data and/or control circuits of the battery sections 160, 170, and 180. For instance, in one example, the battery manager transmits a first type of data command to prompt all of the communication circuits 161, 171, and 181 to provide cell-status data regarding the battery cell 162, 172, and 182 of the corresponding battery section 160, 170, and 180. The battery manager 150 transmits a second type of data command to request a particular one of the communication circuits to provide cell-status data. For instance, in some implementations the communication circuits 161, 171, and 181 are configured to provide the cell-status data if the second data command includes a unique identifier of the communication circuit and/or section. Otherwise, the communication circuits 161, 171, and 181 transmit an acknowledgement of the second data message.
Further, in some embodiments, the battery manager 150 may issue a third data command causing the communication circuits 161, 171, and 181 to split the daisy-chain bus at a particular connection in the daisy-chain bus. For instance, the battery manager 150 may take such action in response to detecting that the particular connection is broken or has reduced bandwidth. In some embodiments, the battery manager 150 may prompt the communication circuits 161, 171, and 181 to split the daisy-chain bus in order to double the available bandwidth, by simultaneously communicating different respective sets of data over the two respective ends of the data bus. In response to the third data command, a first subset of the communication circuits is configured to communicate data via the first end 152 and a second subset (including the other ones of the communication circuits) is configured to communicate data via the second end 153. The communication circuits 161, 171, and 181 are also configured to disable the communication path in the daisy-chain bus connecting the first and second subsets of communication circuits—thereby splitting the daisy-chain bus into two isolated daisy-chain buses. Other, various data commands may also be used to request data from and/or control circuits of the sections 160, 170, and 180.
The communication circuit 123 includes a clock circuit (not shown in
In this example, a communication interface 125 is coupled to the battery manager 111 and to the respective first and second ends 127 and 128 of the daisy-chain bus. The communication interface 125 is configured to communicate data between the battery manager circuit and the communication circuits of the plurality of LIICS devices via the daisy-chain bus 109.
One possible implementation of the communication interface 125 is shown by circuit 126. In this example, the circuit 126 includes a communication circuit 126c configured to communicate data via first and second ends of the daisy-chain bus 109. As described in more detail in the following, the LIICS devices may operate in respective voltage domains, creating a large DC voltage difference between the first and second ends of the daisy-chain bus 109. For instance, in some automotive applications, a multi-cell battery may be configured to provide a charge of several hundred volts. As one particular example, a typical electronic vehicle may include a multi-cell battery providing 280-350 volts for driving an electric motor.
To avoid damage caused by the DC voltage difference, the communication circuit 126c of the communication interface may include an isolation circuit 126a (e.g., a galvanic isolation circuit) configured to pass data between the communication circuit 126c and the second end 128 while also providing DC isolation between the communication circuit 126c and the first end 127. Isolation may be provided, e.g., using capacitive, inductive, and/or optical coupling. This circuit 126 also includes a pack controller 126b configured to receive control commands from the battery manager 111 via CAN bus 115. Various features of the pack controller 126b are described in more detail in the following description of
As one pertinent feature of the daisy-chain bus 109 in
Some other features of the daisy-chain bus that may be implemented are: 1) host control of timing synchronization of the LIICS devices; 2) through-mode communication from the host to the LIICS devices—reducing latency; 3) shift-mode communication from the LIICS devices to the host—enabling a balanced timing budget for both near and remote LIICS devices, and thereby avoiding latency issues; 4) reduced mechanical complexity for both the battery cells and battery pack; and 5) good matching with the electric constraints of the cascaded battery cells (stacked voltages).
The system shown in
The battery cells 107 are cascaded in series, which results in a high working voltage between the two external battery terminals 117, 119 (e.g., <1000 V), as this limits the current (e.g. <100 Amperes) supplied to the vehicle's electric motor(s) (not shown). The series cell voltage configuration causes all but the first of the LIICS devices 101 to have a voltage offset with respect to ground. Yet, the voltage offset between two adjacent battery cells 107 is limited to a single cell voltage (Vbat=typically 3-4 V). Optionally, 2 or more (n) cells can be connected to a single LIICS device. This LIICS device is the same as the single cell device and shares its parameters on n sets of registers in this LIICS device.
By configuring the communication interface as a daisy-chain bus between successive LIICS devices 101, each bus interface 109a, 109b, 109c . . . needs to span only a single battery voltage (Vbat). The physical connection between two adjacent LIICS devices 101 therefore must accommodate a level-shift in the voltage of the interface signal. This arrangement avoids the need for expensive high-voltage components or galvanic isolation.
The pack controller 126b can be a standard component, which interfaces between the battery manager 111 (which can communicate with other vehicle components using a CAN bus 115) and the LIICS devices 101 (which use the daisy-chain bus 109). Optionally, the first cell-supervising LIICS device 101 in the daisy-chain bus 109 operates between ground and battery voltage (Vbat), hence it operates at the same voltage levels as the pack controller 126b. This means that the first daisy-chain bus segment does not require the specific voltage-shifting electrical interface of the other daisy-chain bus segments, avoiding the need for an extra interface component. Consequently, low voltage CMOS switching levels can be used to transfer digital information over the first daisy-chain bus interface, reducing the complexity of the client.
As shown in
A single-wire interface is used as a low cost solution for transferring the electrical data signals over the daisy-chain bus segments. The single-wire interface between adjacent LIICS devices 101 typically spans only a short distance (e.g. ˜10 cm) and because the interface operates across the battery cell voltage Vbat (not the full battery pack voltage, which is approximately nVbat, in which n is the number of battery cells in the battery pack and Vbat is the voltage across one such battery cell), the single-wire interface can be routed close to the power leads of the battery-cells without safety issues.
Communication over the daisy-chain bus 109 needs to be bidirectional so that the battery manager 111 can issue commands to the battery cells' LIICS devices 101, and also receive information from those LIICS devices 101.
More specifically, since the host (here, battery manager 111) must take care of initialization and application specific control settings for all the LIICS devices 101, the host must be able to send command information over the daisy-chain bus 109 into the control registers (not shown in
The host also must be able to collect information such as status and measurement values from all the LIICS devices 101 over the daisy-chain bus 109 (such information is first stored in the LIICS registers and then is sent to the battery manager 111).
The typical information flow in battery management systems, including that disclosed herein, is very regular. Such information flow is initiated and managed by the battery manager 111. The information can be transferred in fixed-size packets.
The host (battery manager 111) will send command packets to trigger specific actions or set specific parameter values in one or more slave devices (e.g., the LIICS devices 101). The host also can interpret confirmation packets received from the slave devices. Thus, during operation there will be bidirectional information flow.
Slave devices can interpret command packets sent by the host, relay such command packets to the next slave device (“next” meaning, for a particular slave device, the adjacent slave device which is located farther from the host), and will send their confirmation packets towards the host after each command packet is received from the host. Confirmation packets from a slave device will be relayed towards the host by prior slave devices (“prior” meaning, for a particular slave device, the adjacent slave device which is located closer to the host). Other than relaying a confirmation packet from another slave device that is farther from the host, each slave device is not able to directly communicate with other slave devices, meaning one slave device cannot control another.
For any command packet the host sends, the host will receive a confirmation packet from each slave device that forwards the command packet to another slave device (in the absence of such a confirmation packet the host could resend the command packet or trigger an alarm). This stepwise relaying of confirmation packets by successive slave devices toward the host means there will be a significantly higher bandwidth demand for the information-flowing towards the host (battery manager 111) than away from the host.
A half-duplex communication link can efficiently meet the stated data transfer requirements (other communications schemes such as full-duplex communication could also be used). For half-duplex communication, Time Division Multiplexing (TDM) can be used to switch the direction of the information flow on the daisy-chain bus 109, while cycling through the process of sending a command packet (˜1% of the data flow) and receiving confirmation packets (˜99% of the data flow). Bus arbitration is not required.
Various aspects and details of data communication on the daisy-chain bus are described with reference to
The host 211 is the source of real-time reference signals used by the LIICS devices 201 to affect the transfer of data. The host's timing triggers are propagated through the system from the host to the slaves (in the direction of arrow 227), along with any data being transferred outward from the host to the LIICS devices 201. Only the host 211 can take the initiative to start transactions, transferring command data and confirmation data. As shown in
In some embodiments the data segment includes a single rising edge, used to encode various data values. For example, in one implementation the data segment is configured to encode one binary value. A first data value (logic 1) is encoded by setting the entire data segment of a symbol to high voltage and a second data value (logic 0) is encoded by setting the entire data segment of the symbol to low voltage. Both encoded values set the bus to the high value at the end of the data segment. In the next subsequent symbol, the bus remains set high until the falling edge of the timing trigger segment is encountered, where the bus is set to a low voltage.
When measured between falling edges of the timing trigger segments of consecutive symbols, a logic 1 value corresponds to a ¼ of sampled values having the voltage followed by ¾ of samples having the high voltage. Conversely, a logic 0 value corresponds to a ¾ of sampled values having the low voltage followed by ¼ of sampled values having the high voltage.
In some implementations, the data segment may encode more than two different values. For instance, in a ternary implementation (having three possible values), a third data value may be encoded by setting a first half of the data segment to the low voltage and a section half of the data segment to the high voltage. When measured between falling edges of the timing trigger segments, a third ternary value corresponds to the first 1/2 of sampled values having the low voltage followed by the second 1/2 of sampled values having the high voltage.
The time at which the data segment transitions from the low value to the high value may be used to encode any number of different values. For instance, in one quadrary implementation having 4 possible values 0-3, a logic 0 corresponds to 5/6 of the sampled values being set to the low value followed by 1/6 of the sampled values being set to the high voltage. Logic 1 corresponds to 4/6 of the sampled values being set to the low value followed by 2/6 of the sampled values being set to the high voltage. Logic 2 corresponds to 2/6 of the sampled values being set to the low value followed by 4/6 of the sampled values being set to the high voltage. logic 0 corresponds to 5/6 of the sampled values being set to the low value followed by 1/6 of the sampled values being set to the high voltage.
In some embodiments, the battery manager and the set of battery sections are configured to communicate data using the battery manager to drive the bi-directional communication bus to a recessive high voltage and using the set of battery sections to pull the bi-directional communication bus down to a dominant low voltage. When the bi-directional communication bus is idle, the battery manager sets the bus to the high voltage. This configuration allows the battery sections to transmit confirmation data by pulling the bi-directional communication bus to the dominant low voltage.
As indicated above, due to drift that may occur between independently maintained clocks, the clocks of the respective battery sections may become unsynchronized from the clock of the battery manager circuit if the bi-directional communication bus is idle for a threshold period of time. In some embodiments, the data segment may be set to include synchronization data that may be used to assist with faster synchronization of clock circuits. For example, in response to the bi-directional communication bus being idle for a threshold period of time, the battery manager transmits one or more symbols having synchronization data in the data segment. The synchronization data exhibits a frequency of the clock of the battery manager and may be used for synchronization of the clock circuits of the battery sections with the battery manager. The synchronization data is configured to allow the clock circuit of each battery section to adjust the frequency of the respective clock and is distinguishable from an encoded data value.
In some embodiments, the communication circuits are configured to perform two modes of data transfer: a shift mode and a through mode.
Shift mode is described with reference to
As an alternative to shift mode, data can be transferred in through mode with a minimum latency from one daisy-chain bus segment to the next. Through mode is described with reference to
Returning to
For optimal performance of the system, through mode data transfer is used for sending command messages from the battery manager 111 to the LIICS devices 101, while shift mode data transfer is used to receive at the battery manager 111 all the confirmation messages with status and measurement values sent by the LIICS devices 101.
In further detail, the broadcast command 439 is shown as a line having a series of slanted upward pointing arrows. The lowest arrow in the Int0 time slot corresponds to the broadcast command as sent by the host 411 to the first LIICS device 401a. The vertical component of the arrow's vector reflects the propagation of the broadcast command from LIICS device 401a to the adjacent LIICS devices 401b-e, farther away from the host 411. The horizontal component of that arrow's vector reflects the latency of the broadcast command as it propagates over time (issues of latency are discussed in more detail below). As shown in
It should be noted that the confirmation message 441e from the most distant LIICS device 401e reaches the host 411 at the end of Int5. The host 411 then is able to send a new command message 439′ to LIICS devices 401a-e starting at the beginning of Int6, and the communication process repeats for that new command message.
The example shown in
If any LIICS devices are unresponsive, to the command message, decision step S501 directs the battery manager and devices to communicate in a second mode, via both ends of the daisy-chain bus. In step S522, the battery manager sends a command message to a first subset of the LIICS devices via the first end of the daisy-chain bus and sends the command message to a second subset of the LIICS devices via the second end of the daisy-chain bus. Step S524 reflects the detailed operations which are involved in such stepwise relaying of the command messages, and those details are shown in
As the transfer of data over a daisy-chain bus is not infinitely fast, in part because of processing delays in the linked devices which transfer such data, propagation delays will arise. Consequently, transferring a signal over a daisy-chain bus as disclosed will take some time, in part because of time needed for the capturing, buffering and re-transmitting of a signal by one daisy-chain bus segment to the next daisy-chain bus segment.
To improve the reliability of communication in the daisy-chain bus in both directions, each bit is filtered and validated during its complete symbol-period and only after the interpretation of a bit, is the bit relayed to the next LIICS device. This implies that the propagation delay will be a one bit-period, because it takes at least one bit-period to propagate the bit from one LIICS device to the next, meaning the minimum bus segment latency is Tbit (about 4 μs, for example). It follows that the minimum time needed for a command message to travel from the host to the last slave device on the bus (e.g., the last of a total of 254 slave devices) is 254*Tbit. For 32 bits/frame communication it follows that the first slave in the chain (and possibly other slaves close to the host) will have finished replying to the host with its confirmation message(s) before the last slave device has detected the beginning of the broadcast command. In other words, there may be a period in which parts of the daisy-chain bus are still idle and slave devices are waiting to receive the host's command message.
A corresponding bus segment propagation delay can occur during the transmission of a confirmation message from a slave device to the host (most likely, performed using shift mode). Such propagation delays may cause problems, as the host must wait at regular intervals before it can capture the response of each LIICS device.
Sending of the confirmation data is triggered (at the LIICS device) by receipt of the broadcast command (sent by the host). As such, for the first daisy-chain bus segment, such confirmation data is returned to the host with a very short timing latency. Yet, for each further remote daisy-chain bus segment, the return of confirmation data takes two additional segment latency periods, as two extra bus segments need to be spanned. As a solution, the communication registers 335 (
A read pointer is defined to locate the position of the local or relayed confirmation data to be sent towards the host. A write pointer is defined to locate the position of the incoming confirmation data, such that it is well-aligned with the timing of outgoing confirmation data. This means that all confirmation messages will arrive at the host as a concatenated stream of data and such confirmation messages will arrive immediately after the host has finished sending a broadcast command.
In some embodiments, a battery management system includes a single master device (host), which takes all initiatives, such as issuing commands and collecting responses. Local cell managers (LIICS devices) are slaves and they only respond to instructions from the host. When the host sends an instruction to one or more of the LIICS devices, the LIICS devices each provide a confirmation that the instruction has been correctly received.
The bus system is configured as a daisy-chain bus in a line topology and includes a host and up to 254 LIICS devices and bus segments. The LIICS devices and the bus segments both introduce a timing latency. This latency corresponds to one bit period per bus segment.
In an application where a single LIICS device would be addressed, both upstream and downstream delays should be taken into account. It would be very complex to support a generic message acknowledgement service, as these latency delays can be rather long and vary with the distance between the host and a particular LIICS device “LIICS(n)” (where n is expressed as the number of segments between the particular LIICS device and the host). With each individual LIICS device (LIICS, LIICS(1), LIICS(2) . . . , LICS(n) . . . , LICS(254)) sending an acknowledgement message immediately after receiving an instruction, the related latency and latency variations caused by up to 254 acknowledgement messages being transmitted by the LIICS devices would make the system very complex.
In some implementations, each LIICS device sends its acknowledgement towards the host in combination with regular confirmation data. Each message sent by the host to one or more LIICS devices will cause every LIICS device to return a message toward the host. The message includes both acknowledgement and status information. As the amount of messages to be send by the host is rather limited and often requires the return of a large amount of data, both the overhead and complexity of this acknowledge method are quite reduced, as compared to a generic message acknowledgement service mentioned above.
Also, in instances where commands are sent that would not require the return of data to the host (e.g., commands from the host which might only set control data or trigger an event at the LIICS devices), each LIICS device still will send a confirmation message. In this case, at least a partial copy of the transmitted payload data is returned to the host, which can be used by the host to determine whether the sent data arrived correctly at the desired LIICS device, thereby increasing the reliability of the system.
In some embodiments, the LIICS cell supervisors are slaves and only respond to instructions from the master device. This type of system may require two types of interrupts:
(1) the master device (host or battery controller) forcing control over the (locked) system; and
(2) a slave, e.g., the LIICS device, requesting a service due to an alarm condition.
If, while sending a command, the master wants to send an interrupt to one or more slave devices, it waits until it has completely sent the command, and also waits until all slaves have confirmed this message. However, this wait period may be too long if an interrupt needs to be served on short notice, e.g., in case of an emergency stop. In such a situation, the master can abort the current transaction by stopping the sending of the related symbols, containing timing triggers. Next, the master can issue a new command to one or more LIICS devices containing the interrupt information.
By way of non-limiting example, an LIICS device may need to request the attention of the host due to a specific condition, e.g., an over/under voltage in a battery cell, an over/under battery cell temperature, or a communication error. In a battery management system these requests typically allow for a response latency of a few seconds during operation (while driving or charging), and up to a few hours when the system is idle (while parking and not charging).
The host is able to detect a service requesting LIICS device by either an interrupt mechanism or continuous polling. An interrupt mechanism requires an (independent) medium to transfer the request. Depending on the physical implementation of a battery manager interface, a possible implementation for such an interrupt mechanism could be to modulate the requests in a full-duplex channel over a transmission medium, e.g., by sending a specific frequency over the single wire, to be detected by the master. However, according to various design considerations for the battery pack, it may not be feasible to provide additional wiring for this purpose.
For the above reasons, the continuous polling approach may be preferred in some applications. As the battery manager typically requests a continuous stream of measurement data from the LIICS devices, the polling of interrupt requests may be included in the regular transfer of these data packets, which already include device identification information. For this purpose, some extra information can be stored in a data packet.
In the situation where a LIICS device requests service from the host, a service request flag is set, requesting attention from the master. When the request is urgent, due to an emergency condition, the content of the confirmation packet sent by the LIICS device to the host can be replaced with additional status information on the emergency condition. In this way, the master need not request this additional data in a separate command, reducing the interaction latency. In the packet sent to the host by the LIICS device, an acknowledge flag is set to false, to identify to the host that there is an exception, and a status flag is set to signal to the host that there is a pending service request. These flags are not part of the payload data.
The host device typically captures measurement data from all of the LIICS devices at a rate of about 10 samples per second, which is a sampling rate that should be sufficient to meet the timing requirements for interrupt requests.
The embodiments described above are well-suited for use in a battery management system wherein each battery cell includes an integrated circuit which can accurately and effectively monitor all relevant parameters of the battery cell. In such a system, each battery cell is controlled by an LIICS circuit, which can enable new features through the local measurement and preprocessing of data derived from the battery cell.
An application specific communication bus, as described herein, permits the transfer of control data from the battery manager (host) towards the LIICS devices (slaves), and the transfer of measurement data from the LIICS devices back towards the battery manager. Only the LIICS devices employ the daisy-chain bus interface with a PHY containing a dedicated level-shifter. As this daisy-chain bus node does not required level-shifting, the host PHY can be implemented using standard digital interface components. As shown in
In a specific, non-limiting example, one detailed implementation includes a multi-cell battery pack for use in an electric vehicle. The multi-cell battery pack includes a plurality of battery sections, each including one or more cells. The multi-cell battery pack also includes a battery manager circuit configured to monitor a status of the cell(s) in each battery section of the battery pack over a bi-directional data bus. The battery manager circuit is configured to communicate with the set of battery sections via the bi-directional communication bus using a synchronous master-slave communication protocol, in which symbols transmitted by the battery manager circuit include respective timing trigger segments and respective data segments. Each battery section of the set has a clock circuit and each battery section is configured and arranged to adjust a frequency or a phase of the respective clock circuit of the battery section, relative to timing of the timing trigger segments.
The embodiments described herein are not limited to electrical vehicles, and can also be employed in other application domains, e.g., Uninterruptable Power Supplies (UPS) and photovoltaic energy storage systems.
Various blocks, modules or other circuits may be implemented to carry out one or more of the operations and activities described herein and/or shown in the figures. In these contexts, a “block” (also sometimes “logic circuitry” or “module”) is a circuit that carries out one or more of these or related operations/activities. For example, in certain of the above-discussed embodiments, one or more modules are discrete logic circuits or programmable logic circuits configured and arranged for implementing various elements shown in the figures and processes discussed above. In certain embodiments, such a programmable circuit is one or more computer circuits programmed to execute a set (or sets) of instructions (and/or configuration data). The instructions (and/or configuration data) can be in the form of firmware or software stored in and accessible from a memory (circuit).
For additional information, regarding processes and circuits for communication between devices (battery sections and LIICS) over a bi-directional communication bus (e.g., a daisy-chain), reference may be made to U.S. application Ser. No. 13/938,416, filed Jul. 10, 2013, which has common inventors and a common assignee with the instant application, and which is fully incorporated in its entirety by reference herein. Reference may also be made to a concurrently filed U.S. Application, having attorney docket number 81537425US01 and titled DAISY-CHAIN COMMUNICATION BUS AND PROTOCOL, which also has common inventors and a common assignee with the instant application, and which is fully incorporated in its entirety by reference herein. For example, with reference to FIGS. 1, 2, 3A, 3B and 4, the U.S. application Ser. No. 13/938,416 describes communication between a battery manager (host) and a plurality of communications connected in a daisy-chain. As another example, FIGS. 1A, 1B, 1C, and 1D, of the concurrently filed U.S. Application (attorney docket number 81537425US01) show battery sections having communication circuits configured to communicate with a battery manager over a daisy-chain communication bus.
Based upon the above discussion and illustrations, those skilled in the art will readily recognize that various modifications and changes may be made to the various embodiments without strictly following the exemplary embodiments and applications illustrated and described herein. For example, different aspects discussed herein may be combined in various combinations to form different embodiments. Such modifications do not depart from the true spirit and scope of aspects of the present disclosure, including aspects set forth in the claims.
This patent document claims benefit under 35 U.S.C. §119 to U.S. Provisional Patent Application Ser. No. 61/889,408, entitled “Daisy Chain Bidirectional Communication Bus” and filed on Oct. 10, 2013, which is fully incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61889408 | Oct 2013 | US |