Расширенный протокол взаимодействия по UART с BMS ф. Daly / Daly UART Communication Protocol (Extended)
UPDATES ARE EXPECTED
В данном репозитории приводится описание расширенного протокола взаимодействия по UART с BMS (Battery Management System) ф. Daly, полученного с помощью реверс-инжиниринга. Акцент при исследовании протокола сделан на чтение параметров
Фирма Daly предоставляет спецификацию стандартного протокола, с помощью которого можно прочитать основные параметры аккумуляторной батареи. Также фирма поставляет официальное приложение BMS Monitor для персонального компьютера, имеющее расширенные возможности по работе с BMS (чтение и установка параметров как аккумуляторной батареи, так и самой платы). Стоит отметить, что данное приложение совместимо только с определенным модельным рядом, по найденной информации от RT16T и выше. Способ взаимодействия с приложением определяется возможностями конкретной платы, однако в общем случае используется интерфейс UART
Для анализа передаваемых сообщений между приложением и платой реализована схема, представленная ниже. Интерфейс UART типа точка-точка заменен на общую шину RS-485, к которой с помощью преобразователя подключается ноутбук. Для записи сообщений можно использовать любое приложение для работы с последовательным портом. Исходными данными для анализа послужили значения параметров из BMS Monitor и структура сообщений из спецификации стандартного протокола
Конфигурация оборудования:
- Smart BMS Daly LiFePO4 24S 500A, модель R32ND
- Преобразователь UART-RS485 (x2)
- Преобразователь USB-RS485
- Преобразователь USB-UART CP2102
- BMS Monitor v2.1.8 (beta 3)
- Windows 10
Детальная информация по полученным сообщениям представлена в приложенном документе
№ | Data ID | Type (R - Read, W - Write) |
Description |
---|---|---|---|
1 | 0x50 | R | Rated capacity and Rated cell voltage |
2 | 0x51 | R | Number of acquisition boards, Number of cell for each board, Number of NTC for each board |
3 | 0x52 | R | Cumulative charge and Cumulative discharge |
4 | 0x53 | R | Battery type, Battery mode, Production date, Current wave, Sleep time |
5 | 0x54 | R | Firmware index |
6 | 0x57 | R | Battery code |
7 | 0x59 | R | Cell voltage error level |
8 | 0x5A | R | Sum voltage error level |
9 | 0x5B | R | Charge and discharge current high error level |
10 | 0x5C | R | Charge and discharge temperature error level |
11 | 0x5D | R | SOC error level |
12 | 0x5E | R | Voltage and temperature difference error level |
13 | 0x5F | R | Balance start voltage and voltage difference |
14 | 0x60 | R | Short current and Sampling resistance |
15 | 0x62 | R | Software version |
16 | 0x63 | R | Hardware version |
17 | 0x65 | R | Address |
18 | 0x66 | R | Heat temperature on and Fan temperature on |
19 | 0xD9 | W | Discharge control |
20 | 0xDA | W | Charge control |