GB/T Icon

GB/T Контроллер Вики

Техническая документация и спецификации для контроллеров зарядки GB/T

Обзор

Описание стандарта не претендует на абсолютное соответствие официальной документации, это наша интерпретация с собственной аппаратной и программной реализацией.

Характеристики разъёма GB/T 20234.3 DC:
  • Номинальное напряжение: 750 В / 1000 В DC
  • Доступный ток: 80 А, 125 А, 200 А, 250 А
  • Максимальная мощность: 250 кВт
GB/T 18487.1-2015
Разъём GB/T 18487.1-2015
  • S+ / S− — Связь для зарядки CAN_H / CAN_L
  • CC1 / CC2 — Подтверждение зарядки, сигнализация после вставки
  • PE — Защитное заземление
  • DC+ / DC- — Основное питание DC положительный / отрицательный
  • A+ / A− — Вспомогательное питание DC 12В +/-5%, 10А

Аппаратная часть

GBT Hardware
Последовательная схема

Программная часть

Стандарт зарядки по кабелю GB/T 27930 основан на сетевом протоколе SAE J1939 и использует шину CAN с соединением точка-точка.

Стандарт основан на спецификации CAN 2.0 со скоростью обмена 250 кбит/с и 29-битным идентификатором.

Стандарт широко используется в современных транспортных средствах в качестве основного стандарта связи для модулей транспортного средства.

Протокол основан на системе PGN и SPN. Где PGN является частью 29-битного идентификатора, а SPN — это информация полезной нагрузки, расположенная в определённом месте в битовом поле 8-байтового сообщения.

Structure of a standard message
Структура стандартного сообщения

Основным недостатком спецификации CAN 2.0 является ограниченная длина кадра, не более 8 байт.

Ограничение длины кадра в стандарте SAE J1939 было решено на программном уровне. Было введен так называемый "Транспортный Уровень" (Transport Layer).

Принцип формирования 29-битного идентификатора для CAN 2.0B:
const uint8_t addressBMS = 0xF4;
const uint8_t addressCHA = 0x56;
uint32_t id = (priority << 26) | ((pgn | (uint8_t)addressBMS) << 8) | (uint8_t)addressCHA;
/* "pgn", "priority" is specified in the tables of the GB/T 27930-2015 standard. */
Тестовый код для справки:
const uint8_t addressBMS = 0xF4;
const uint8_t addressCHA = 0x56;
const uint8_t START_FRAME_PGN = 0xEC00;
const uint8_t NEXT_FRAME_PGN = 0xEB00;
uint8_t data[8];
const uint8_t CM_RTS = 0x10;
const uint8_t CM_CTS = 0x11;
const uint8_t CM_EndOfMsgACK = 0x13;

/* For example PGN for transmit = 0xFFEB;
   priority = 6;
   data for transmit: payload[28] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27}
*/
uint16_t pgn = 0xFFEB;
uint8_t payload[28] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27};

const uint32_t ID_NEXT_FRAME = (priority << 26) | ((NEXT_FRAME_PGN | (uint8_t)addressBMS) << 8) | (uint8_t)addressCHA;

uint16_t size = sizeof(payload);
uint8_t num_of_packets = (size / 7) + ((size % 7) ? 1 : 0);

/* Connection Initiation STEP 1 */
const uint32_t ID_START_FRAME = (priority << 26) | ((START_FRAME_PGN | (uint8_t)addressBMS) << 8) | (uint8_t)addressCHA;
const uint32_t ID_START_FRAME_CTS = (priority << 26) | ((START_FRAME_PGN | (uint8_t)addressCHA) << 8) | (uint8_t)addressBMS;
const uint32_t ID_END_FRAME_ACK = (priority << 26) | ((START_FRAME_PGN | (uint8_t)addressCHA) << 8) | (uint8_t)addressBMS;

data[0] = CM_RTS;
data[1] = (uint8_t)size;
data[2] = (uint8_t)(size >> 8);
data[3] = num_of_packets;
data[4] = 0xFF;
data[5] = (uint8_t)pgn;
data[6] = (uint8_t)(pgn >> 8);
data[7] = 0;
sendMsg(ID_START_FRAME, data, sizeof(data)); // send message to can

/* Step by step we should send 7 bytes of payload, data[0] indicate number of packet, empty bytes we should fill by 0xFF */
/* detailed see below */
                            
Structure of a standard message
Диаграмма процесса отправки длинного PGN от контроллера зарядки к электромобилю:
Таблица: Классификация сообщений на этапе рукопожатия зарядки
Message code Message description PGN (Dec) PGN (Hex) Priority Data length byte Message period ms Source address-destination address
CHM Charger handshake 9728 002600H 6 3 250 Charger → BMS
BHM Vehicle handshake 9984 002700H 6 2 250 BMS → Charger
CRM Charger recognition 256 000100H 6 8 250 Charger → BMS
BRM BMS and vehicle identification message 512 000200H 7 41 250 BMS → Charger
Таблица: Классификация сообщений на этапе конфигурации параметров зарядки
Код сообщения Описание сообщения PGN (Dec) PGN (Hex) Приоритет Длина данных (байт) Период сообщения (мс) Адрес источника-адрес назначения
BCP Charging parameters of power storage battery 1536 000600H 7 13 500 BMS → Charger
CTS Charger send-time synchronization information 1792 000700H 6 7 500 Charger → BMS
CML Charger's maximum output 2048 000800H 6 8 250 Charger → BMS