6.1 Протокол CANopen PDO

Редактировал(а) Admin 2025/02/17 13:46

Communication protocols

CANopen PDO protocol

CANopen_PDO_Main_Mini.dbc 

Общая информация

Плата BMS Main 3 реализует протокол CiA 301 CANopen для настройки и чтения состояния АКБ и BMS.

Основные характеристики:

  • Поддерживаются стандартные 11-ти битные идентификаторы сообщений.
  • Скорость обмена – 125, 250 (по умолчанию), 500 или 1000 кбит/с.
  • Идентификатор COBID платы по умолчанию – 32 (0x20).

Поддерживаемые режимы передачи данных:

  • SDO (для настройки платы).
  • PDO (для обмена данными с другими элементами системы).
  • Sync (настраивается).
  • Heartbeat producer (настраивается).
  • Heartbeat consumer (используется для контроля активности других устройств на шине CAN).

Передача данных PDO выполняется по сигналу синхронизации (CANID = 0x80, длина данных 0). Плата может сама выступать источником сигнала синхронизации (режим Sync).

Ниже даётся описание параметров, передаваемых в режиме PDO. В колонке «Тип параметра»:

  • U8 – беззнаковое 8-разрядное число;
  • U16 – беззнаковое 16-разрядное число;
  • S16 – знаковое 16-разрядное число;
  • U32 – беззнаковое 32-разрядное число.

Порядок байт в словах – от младшего к старшему (little endian).

TPDO packets

CANID = 0x180+COBID (по умолчанию 0x1A0)

Длина пакета – 8 байт.

Содержимое пакета:

БайтParameter nameParameter typeConverting
0

Discrete input signals 1 (bitfield):

bit 0 – signal “Battery cover”;

bit 1 – signal “Charger connected”;

bit 2 – signal “Power down request”;

bit 3 – signal “Inhibit charging”;

bit 4 – signal “Inhibit discharging”;

bit 5 – signal “CH contactor feedback”;

bit 6 – signal “DCH contactor feedback”;

bit 7 – signal “Insulation status”.

U8 
1–2Battery currentS160.1A/bit
3Minimum cell temperatureS81ºC/bit
4Maximum cell temperatureS81ºC/bit
5State of charge (SOC)U81%/bit
6–7Battery voltageU160.1V/bit

CANID = 0x280+COBID (0x2A0 by default)

Packet length – 8 bytes.

Packet content:

БайтParameter nameParameter typeConverting
0–3

Internal signals (bitfield):

bit 0 — signal "Low SOC";

bit 1 — signal "High charging current";

bit 2 — signal “Charging” (0 – open, 1 – closed);

bit 3 — signal "Allow charging" (0 – open, 1 – closed);

bit 4 — signal "Charging current present";

bit 5 — signal “Discharging” (0 – open, 1 – closed);

bit 6 — signal "Discharging current present";

bit 7 — signal "Voltage too high for charging";

bit 8 — signal "Heater" (0 – off, 1 – on);

bit 9 — signal "Cooler" (0 – off, 1 – on);

bit 10 — signal “Shutdown request (HYG/Spirit)”;

bit 11 — signal “Init” (current sensor calibration or BMS Logic scanning is performed);

bit 12 — signal “Precharging” (0 – open, 1 – closed);

bit 13 — signal “Shutdown request (Combilift)”;

bit 14 — signal "Cell analysis";

bit 15 — signal “Balancing 1”;

bit 16 — signal “Balancing 2”;

bit 17 — signal “Discharging (AUX)” (0 – open, 1 – closed);

bit 18 — signal “Power down ACK”;

bit 19 — signal “Crown EWS”;

bit 20 — signal “Main contactor” (0 – open, 1 – closed);

bit 21 — signal “Service reset”;

bit 22 — signal “Charging/Discharging” (0 – open, 1 – closed);

bit 23 — signal “Ready to charge”;

bit 24 — signal “Ready to discharge”;

bit 25 — signal “Power up”;

bits 26-31 — not used.

U32 
4–7

Errors 1 (bitfield):

bit 0 — error "Overcurrent";

bit 1 — error "Undervoltage";

bit 2 — error "Overvoltage";

bit 3 — error "Low temperature (DCH)";

bit 4 — error "High temperature (DCH)";

bit 5 — error "Battery cover";

bit 6 — error "High humidity";

bit 7 — error "Water";

bit 8 — error "Logic high temperature";

bit 9 — error "Logic offline";

bit 10 — "Critical error";

bit 11 — "Crown error";

bit 12 — "Cell count error";

bit 13 — error "HYG offline";

bit 14 — reserved (set to 0);

bit 15 — error "Combilift offline";

bit 16 — error "Short circuit";

bit 17 — error "High contactor temperature";

bit 18 — "Logic count error";

bit 19 — "ADC error";

bit 20 — “Current sensor error”;

bit 21 — “CH contactor cycles error”;

bit 22 — “DCH contactor cycles error”;

bit 23 — error "Shunt offline";

bit 24 — “Shunt error”;

bit 25 — reserved (set to 0);

bit 26 — error “WDT reset”;

bit 27 — error "No temperature sensors";

bit 28 — error "Temperature sensor shorted";

bit 29 — error “Spirit offline”;

bits 30-31 – not used.

U32 

CANID = 0x380+COBID (0x3A0 by default)

Packet length – 8 bytes.

Packet content:

БайтParameter nameParameter typeConverting
0–3

Errors 2 (bitfield):

bit 0 — error "Low temperature (CH)";

bit 1 — error “High temperature (CH)”;

bit 2 — reserved (set to 0);

bit 3 — reserved (set to 0);

bit 4 — error “Unallowable charging”;

bit 5 — error “Stuck contactor”;

bit 6 — “CH contactor feedback error”;

bit 7 — “DCH contactor feedback error”;

bit 8 — “Insulation fault”;

bit 9 — “PCH contactor feedback error”;

bit 10 — “CH/DCH contactor feedback error”;

bit 11 — “Main contactor feedback error”;

bit 12 — reserved (set to 0);

bit 13 — “General error”;

bit 14 — “High voltage fault”;

bit 15 — “Power switch error”;

bit 16 — “HVIL error”;

bit 17 — “Precharge error”;

bit 18 — “Power fault”;

bits 19-31 — not used.

U32 
4-5

Discrete input signals 2 (bitfield):

bit 0 – signal “Charge request”;

bit 1 – signal “Precharge request;

bit 2 – signal “Discharge request”;

bit 3 – signal “PCH contactor feedback”;

bit 4 – signal “CH/DCH contactor feedback”;

bit 5 – signal “Main contactor feedback”;

bit 6 – signal “Interlock”;

bit 7 – signal “Fuse 1”;

bit 8 – signal “Fuse 2”;

bit 9 – signal “Fuse 3”;

bit 10 – signal “Circuit breaker status”;

bit 11 – signal “Balancing request”;

bit 12 – signal “Close Main contactor”;

bits 13-15 – not used.

U16 
6-7ReservedU16