Thursday, September 18, 2014

Reviewing potential CAN protocols

CAN is largely the hardware used to connected different nodes.  On top of that there are oh so many 'protocols' which can be carried, Wikipedia has a few nicely listed here:

From a higher level protocol I am looking for the ability for the BMS to broadly do two things:
  1. Effectively communicate the current status and health of the battery it is managing.
  2. Provide information useful to external charging sources for better coordination.
#1 is the classic:  Volts, Amps, temp, Ah, SOC, etc.  But for some battery types, notably LiFePO4, would include High Voltage and Low Voltage warnings as well as alarms and cut-off / faults.  #2 contains some of the same items as #1, but extends to include desired charge states, target charge voltages and currents, etc.   There needs to be some way to address multiple charging sources, ones of different capabilities and a way to prioritize them (ala, let Solar do the final top-off charging as opposed to running the generator).   And these need to be usable for batteries deployed in a house-bank usage, contrasting directly to those deployed in Electric Vehicles.

Of the ones I have looked at (not totally in depth), here is what I have found out so far:

SAE J1939-xx

  •  Set of industry specific standard developed for many segments:  Transportation, industrial, etc.
  • Special interest J1939/75: Generator and Industrial
    • Portions of this have been adopted by NMEA-2000.
    • Includes some concepts of battery instance and Charger Instance
    • Support 10mV / 100mA resolution
  • Strong / well developed standard
  • Closed, and costly.

OBD-II Mode#22 (aka: SAE J2190)

  • Variation of J1939 / OBD-II designed for EVs.  
  • Widely adopted by EV community for their BMS / Charger communications
  • Includes concept of BMS directed charging sources! 
  • Vbat resolution is 100mV, way too coarse for house battery usage.
  • Closed, and costly.


  • Built upon J1939, DeviceNet, and others - with marine specific extensions.
  • Implemented by some marine equipment suppliers (notable Victron)
  • Very fred DC/Battery PIDs defined - Most venders augment heavly via priority extensions..
    • There is a LiFePO4 working group that has been established.
  • Closed, costly.


  • Open standard, targeting RV industry
  • Includes house battery and charger concepts.
  • Also included Generator, Autogen functions.. 
  • 50mV battery voltage resolution. . . .
  • Has many characteristics inline with J1939, but not a related standard. 
  • May be open to accepting extensions as needed
  • Open and Free!


CiA  / CANopen

  • Wide support and deployment, mainly in industrial applications.
  • Includes modules targeting Batteries (CiA-418) and Chargers (CiA-419)
  • Support for 1mV resolution!
  • Can not locate any Generator functions...
  • Semi-open/closed:  Free to use spec, membership needed for changes.

Each spec brings somethings, from BMS coordinated charging, cabling specs, generator integration, etc.  But some common problems include insufficient battery voltage resolution, closed / expensive standards to support.  Of them, my current thinking is along these lines:
  • J1939:  May have all that is needed, but clearly not open-sourced. 
    • using it would likely pick up to a large part NMEA-2000 compatibility.
  • J2190: Has key concepts for BMS directed charging sources, but some problems:
    • Grossly insufficient voltage resolution for House battery voltages (designed around 70-300v banks)
    • Assumes simple charge then discharge usage.  Does not support simultaneous use/charge modes.
    • Does not support different sized chargers.
  • NMEA-2000:  really just a repackaged J1939 spec with DeviceNet connectors.
  • CiA:  Promising.  May need some 'hacked in' extensions to fully support needs - lacks Generator support and not sure how would do different charging source coordination.
  • RV-C:   IF changes are accepted, can have what is needed.  Plus free licensing / usage.

At this point, I am going to continue to dig into information around the J1939-75 spec, I have started working with the RV-C team on some ideas for proposed changes, and I will keep in mind CiA as well. 

Does anyone out there have any thoughts / insights into this topic???

No comments:

Post a Comment