6.1 Протокол CANopen PDO
Communication protocols
CANopen PDO protocol
Общая информация
Плата 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 name | Parameter type | Converting |
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–2 | Battery current | S16 | 0.1A/bit |
3 | Minimum cell temperature | S8 | 1ºC/bit |
4 | Maximum cell temperature | S8 | 1ºC/bit |
5 | State of charge (SOC) | U8 | 1%/bit |
6–7 | Battery voltage | U16 | 0.1V/bit |
CANID = 0x280+COBID (0x2A0 by default)
Packet length – 8 bytes.
Packet content:
Байт | Parameter name | Parameter type | Converting |
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 name | Parameter type | Converting |
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-7 | Reserved | U16 |