Skip to main content
Application Notes

BMS Communication Protocols: CAN Bus, Modbus RTU, and JSON Compared

CAN Bus, Modbus RTU, and JSON compared for BMS communication — latency, cable distance, integration effort, and why most installations use more than one.

LiBat Engineering Team8 min read
BMS Communication Protocols: CAN Bus, Modbus RTU, and JSON Compared

Every BMS has to talk to something: a vehicle controller, an inverter, a SCADA system, a charging station, a cloud platform. The protocol it uses determines integration complexity, data throughput, latency, cable distances, and long-term maintainability [1]. Yet many BMS datasheets list protocol support as a checkbox feature without explaining when each choice makes sense.

Here's how the three dominant protocols compare in practice.

CAN Bus: The Real-Time Standard

Controller Area Network has been the backbone of automotive and mobile machinery communication since Bosch introduced it in the 1980s [2]. It runs on a differential two-wire bus (CAN-H and CAN-L) at speeds up to 1 Mbps, with hardware-level message arbitration that guarantees the highest-priority message always wins when two nodes transmit simultaneously.

That deterministic behavior is the reason CAN Bus dominates safety-critical applications. When a BMS needs to tell a vehicle controller "disconnect now," the message cannot be delayed by lower-priority data traffic. CAN Bus guarantees worst-case message latency under 1 millisecond, a property no other common industrial protocol matches [3].

Our BMS masters implement CAN Bus 2.0b with both standard (11-bit) and extended (29-bit) identifier formats [4]. The BMS continuously broadcasts cell voltages, temperatures, SOC, SOH, protection status, and fault codes on configurable message IDs. Integration with a host controller is straightforward: map the CAN message IDs to the controller's receive configuration. No handshaking, no polling, no connection management.

The main limitation is physical: CAN Bus cable runs top out at about 40 meters at 1 Mbps (longer at lower speeds) [2]. For vehicle and mobile applications, that's never a problem. For building-scale energy storage with hundreds of meters between battery racks and the control room, it's a constraint.

Modbus RTU: The Industrial Workhorse

Where CAN Bus owns the vehicle world, Modbus owns everything stationary: SCADA systems, PLCs, energy management systems, grid-tied inverters [5]. If it plugs into a wall, it probably speaks Modbus.

Modbus RTU runs over RS485 physical layer on a client-server polling model. The host system requests specific data from defined register addresses, the BMS responds with the requested values. This polling approach introduces inherent latency equal to the polling interval, but for stationary energy storage where 1 to 10 second update rates are fine, that trade-off is more than acceptable.

The practical advantages stack up quickly. Every PLC, SCADA system, and industrial gateway supports Modbus natively. RS485 allows cable runs up to 1,200 meters, thirty times CAN Bus's range [6]. Multiple devices share a single bus with unique addresses. And the protocol is simple enough that a competent engineer can write a complete Modbus integration in an afternoon.

Our BMS products implement Modbus RTU with a published register map covering all cell voltages, temperatures, pack-level metrics, protection status, and configuration parameters [4]. The register map follows standard Modbus conventions (holding registers for read-write parameters, input registers for read-only measurements), so integration with any Modbus-capable host is predictable.

JSON: The Cloud Bridge

CAN Bus and Modbus serve machine-to-machine communication. JSON serves a different need: human-readable, web-compatible data exchange for cloud platforms and modern software systems [7].

JSON isn't a low-level communication protocol. It's a data format that rides on top of serial (RS232/RS485) or network (TCP/IP, MQTT, HTTP) transport layers. Our BMS products output JSON-formatted data strings containing all telemetry in a structured, self-describing format. Each message includes field names alongside values, so a developer reading the data stream can immediately understand what they're looking at without consulting an external register map.

This self-describing quality makes JSON ideal for cloud integration. LiBat Connect ingests JSON telemetry from BMS units through cellular or WiFi gateways, parses the structured data, and stores it directly in a time-series database [8]. No protocol translation layer, no register mapping table, and no risk of misinterpreting data fields when firmware versions change.

The trade-off is overhead. JSON messages are larger than equivalent CAN frames or Modbus responses because they carry field names in every message. That's irrelevant for cloud connectivity over cellular or WiFi, but it makes JSON impractical for the tight timing and bandwidth constraints of real-time control loops.

In Practice: You'll Probably Use More Than One

The protocol choice depends on the integration target, not the BMS. Vehicle controller needs real-time data? CAN Bus. Industrial PLC on RS485 infrastructure? Modbus. Cloud analytics platform? JSON.

Our BMS masters support all three simultaneously on dedicated hardware interfaces [4]. A single BMS installation can feed real-time CAN data to a vehicle controller, respond to Modbus polls from a PLC, and stream JSON telemetry to a cloud platform, all at the same time, on separate physical ports, with no software multiplexing or performance trade-offs.

We designed it this way because most real-world installations don't fit neatly into one protocol category. An AGV battery pack needs CAN Bus for the vehicle, Modbus for the warehouse management system, and JSON for remote monitoring. A grid-tied ESS needs Modbus for the inverter and JSON for the cloud [9]. Supporting all three natively means the BMS adapts to the installation, rather than forcing the installation to adapt to the BMS.

References

  1. [1]Rahimifard, S. et al., Communication Standards for Smart Battery Management Systems: A Review, Energies, Vol. 15, 2022
  2. [2]ISO 11898-1:2024 — Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling
  3. [3]Davis, R. I., Controller Area Network (CAN) Schedulability Analysis: Refuted, Revisited and Revised, Real-Time Systems, Vol. 35, 2007
  4. [4]LiBat — Battery Management Systems: Complete Product Lineup and Communication Interfaces
  5. [5]Modbus Organization, Modbus Application Protocol Specification V1.1b3, 2012
  6. [6]TIA/EIA-485-A — Standard for Electrical Characteristics of Generators and Receivers for Use in Balanced Digital Multipoint Systems
  7. [7]ECMA-404 — The JSON Data Interchange Standard, 2nd Edition, 2017
  8. [8]LiBat — Configuration Tools: LiMon PC Tool, LiMon CONNECT, and LiBat CONNECT Mobile
  9. [9]IEC 61850 — Communication Networks and Systems for Power Utility Automation
BMSEmbedded SystemsElectronic DesignBattery ManagementLithium BatteryCAN BusModbusRS485RS232JSONSCADAEnergy StorageCloud BMSIndustrial AutomationLiBat Connect