Simulating Daisy Chain SPI for Battery Management Systems
What is Daisy Chain SPI?
Computers and other electronic systems use serial interfaces to enable data transfer between connected devices. The serial peripheral interface (SPI) is a type of serial communication interface that enables synchronous data transmission between a master device such as a microcontroller (MCU) and one or more peripheral devices (slave devices). In SPI, the master device generates a clock signal, a selection signal and an input data signal (e.g. data that is transmitted to the slave devices). The slave devices receive the input data signal in synchronism with the clock signal while the selection signal is active, and generate a data output signal in synchronism with the clock signal for reception by the master device. SPI is a common form of interface in automotive applications for better flexibility, configurability and error reporting by the electronic components. Daisy Chain SPI is a method for synchronous serial communication between a master device and several slave devices. The main difference to the "conventional" SPI is that the slaves are not selected by the slave select, but that the transfer begins when the slave select is changed to logic 0 and the transfer is ended when the SS is reset.
Daisy chain SPI configuration
When multiple devices communicate with the same master over the same SPI bus, the daisy chain SPI configuration is required to keep GPIO ports available. The master must be configured in such a way that it generates a chip select, a header signal and several address fields depending on the number of devices connected in series. In addition, the master generates a clock signal with which the data can be transmitted synchronously through the chain. The figure below shows that the master sends a master signal over SDI1, which is decoded by each device in the chain, and the corresponding commands are executed.
Implementation details
The traditional daisy chain configuration allows a reduced number of terminals on the master device, but limits the communication bandwidth. For example, in some implementations, two transactions (two communication frames) are required to read from a slave device. In systems that allow frame-by-frame reading, the speed of transferring information through the serially connected slave devices is reduced as the number of slave devices increases. The synchronous serial communication system described here uses the daisy chain configuration to reduce the number of terminals required on the master device, allow reads in a single frame, and provide a transmission bit rate that is independent of the number of slave devices in the chain is. Some implementations allow operation with a single slave device without introducing additional protocol overhead. The following figure shows the data transmission and reception structure between master and slaves.
Daisy chain SPI in battery management systems
In a battery management system there are many slaves that monitor the voltages of the battery cells. The BMS consists of a master board for each string of the battery pack. The master includes the processing of signals, measurements, communication and control interfaces. A battery module can consist of a maximum of 14 cells and requires a slave to measure the voltage and monitor the temperature. The connection between the slaves and the master is implemented using a daisy chain.
Simulate daisy chain SPI with the Promira platform
The Promira platform is a platform whose applications can be configured user-specifically. The detailed API documentation makes the Promira platform a suitable choice for creating a daisy chain configuration and for simulating a battery management system. The Promira platform has many features such as a GPIO function and an integrated level shifter function, which can cover a wide range of applications. In addition, the control center is available to the user, with which a command sequence can be loaded using a batch script.
Daisy chain SPI test and measurement tools
Since Daisy Chain SPI is basically differentiated from SPI only by the difference in the Chip Select selection, SPI tools can be used to control and monitor the Daisy Chain Design.