Важное предупреждение
Данный документ основан на анализе обмена данными между аккумуляторами и устройствами Makita и содержит предположения относительно назначения некоторых данных. Это неофициальная документация и может содержать ошибки и неточности.
Использование данной информации может привести к повреждению оборудования («окирпичиванию» устройств). Вся ответственность за последствия лежит на пользователе.
Физический интерфейс
Помимо силовых контактов
+40 В и
−40 В, аккумуляторы XGT имеют четыре сигнальных контакта:
КонтактНазначениеDS/WKРазряд / Пробуждение (Discharge/Wake)DTОбнаружение подключения (Detection)TRПередача/приём данных (Transmit/Receive)CSКонтроль заряда (Charge Sense)
Между двумя силовыми контактами находятся четыре малых контакта.
Расположение:
Со стороны защёлки аккумулятора:
- CS — ближе к плюсовому контакту
- TR — ближе к минусовому контакту
С противоположной стороны:
- DT — ближе к плюсовому контакту
- DS — ближе к минусовому контакту
Во время установки и снятия аккумулятора происходит кратковременное соединение некоторых линий между батареей и инструментом/зарядным устройством. Точное назначение этой процедуры пока не установлено.
Важно учитывать, что на любом из этих контактов может появляться напряжение до
42 В постоянного тока. В оригинальных аккумуляторах Makita на линии TR наблюдалось не более 5 В, однако на китайских клонах фиксировалось до 33 В. Поэтому интерфейс рекомендуется проектировать с устойчивостью к напряжениям до 40 В.
Линия DS/WK (Discharge / Wake)
Данный вывод выполняет две функции:
1. Разрешение разряда
Сигнал сообщает инструменту, что аккумулятор допускает разряд.
2. Пробуждение контроллера батареи
Если аккумулятор ушёл в глубокий сон из-за переразряда, внешний источник может подать питание на эту линию для запуска встроенного микроконтроллера батареи.
Когда уровень заряда становится достаточным, питание микроконтроллера начинает формироваться от самой батареи, и на линии DS появляется соответствующее напряжение.
Практически это означает:
- есть напряжение на DS → батарея активна и готова к работе;
- нет напряжения → батарея находится в защитном отключении и разряд запрещён.
Линия DT (Detection)
Используется для определения наличия аккумулятора.
Полностью заряженная батарея выдаёт на DT около
34,3 В.
Быстрозарядное устройство
DC40RA не начинает обмен данными, пока не обнаружит напряжение на DT.
Даже напряжение порядка
3,3 В уже достаточно для запуска процедуры обмена данными.
Линия TR (Transmit / Receive)
Используется для цифрового обмена данными между аккумулятором и подключённым устройством.
По сути это однопроводная последовательная шина связи.
Линия CS (Charge Sense)
Назначение изучено не полностью.
Предполагается, что по этой линии аккумулятор сообщает зарядному устройству:
- разрешена зарядка;
- зарядка запрещена.
Также обнаружена зависимость между напряжением на линии CS и зарядным током:
Ichg=28.9−7.7×VCSI_{chg}=28.9-7.7 \times V_{CS}Ichg=28.9−7.7×VCSгде:
- IchgI_{chg}Ichg — ток зарядки (А),
- VCSV_{CS}VCS — напряжение на контакте CS.
Электрический протокол
Обмен построен на основе UART.
Параметры интерфейса:
- Скорость: 9600 бод
- Данные: 8 бит
- Контроль чётности: Even Parity
- Стоп-бит: 1
Формат обычно обозначается:
9600 / 8-E-1Однако имеется существенное отличие от обычного UART:
Вместо отдельных линий TX и RX используется одна общая линия
TR.
Инвертированный UART
Обычный UART:
- линия в покое = логическая «1»;
- стартовый бит = переход в «0».
В XGT всё наоборот:
- линия в покое удерживается на уровне 0 В;
- логический ноль передаётся импульсом +5 В.
Таким образом:
СостояниеНапряжениеПокой0 ВПередача бита «0»+5 ВПередача бита «1»линия отпущена
Линия подтянута к нулю слабым резистором.
Передатчик должен:
- выдавать +5 В для передачи логического нуля;
- переводить выход в высокоимпедансное состояние для передачи единицы.
Это позволяет нескольким устройствам работать на одной линии.
Структура сообщений
После декодирования UART необходимо выполнить разворот битов в каждом байте.
Пример:
Получено: 0x84
10000100
После разворота:
00100001
Результат: 0x21Далее каждые два байта объединяются в 16-битное слово (Big Endian).
Пример:
0x12 0x34
→ 0x1234
Заголовок пакета
Каждое сообщение начинается словом:
0xA5A5Это сигнатура начала кадра.
Word 1 — длина сообщения
Биты содержат информацию о длине пакета и количестве байтов заполнения (padding).
Базовая длина сообщения:
16 байтДополнительные флаги позволяют увеличивать длину пакета.
Word 2 — идентификатор сообщения
Содержит:
- 12-битный ID сообщения;
- признак запроса;
- признак ответа.
Зарядное устройство обычно начинает с ID = 1 и увеличивает его на единицу для каждого нового запроса.
Ответ аккумулятора содержит тот же ID.
Word 3
Всегда содержит:
0x4D4CНазначение пока неизвестно.
Word 4
Для зарядных устройств:
0x00CCДля инструментов:
0x000CНазначение также неизвестно.