Перейти к основному контенту

Описание интерфейса SigmaBUS

Принятые сокращения

Модуль — модуль Сигма 10/15.

Оборудование — стороннее оборудование, осуществляющее обмен с модулем по линии UART.

Кадр — фрагмент данных протокола, передаваемый по линии UART.

Общее описание протокола

Протокол SigmaBUS предназначен для формирования и выдачи данных внешнему устройству, полученных модулем по цифровым шинам CAN и LIN автомобиля, а также формирования команд управления модулем.

Предусматривается использование дуплексного асинхронного протокола в топологии соединения точка-точка. Канальный уровень интерфейса: UART, 8N1, 9600 Baud, двухпроводная линия, уровень сигнала 5В.

Описание физического уровня интерфейса UART

Канал TX

image.png

Электрические характеристики

Канал Характеристика Значение
Выход TX выходное сопротивление, кОм 1±10%
напряжение, логический «0» при токе 100 мкА, В <0,2
напряжение, логический «0» при токе 1000 мкА, В <1,4
напряжение, логическая «1» при токе 100 мкА, В >4,5
напряжение, логическая «1» при токе 1000 мкА, В >3,6
максимально допустимое напряжение, В –12....+12

Канал RX

image.png

Электрические характеристики

 Канал Характеристика Значение
Выход TX выходное сопротивление, кОм 1±10%
напряжение, логический «0» при токе 100 мкА, В <0,2
напряжение, логический «0» при токе 1000 мкА, В <1,4
напряжение, логическая «1» при токе 100 мкА, В >4,5
напряжение, логическая «1» при токе 1000 мкА, В >3,6
максимально допустимое напряжение, В –12....+12

Описание программного уровня

Протокол реализует последовательный битовый интерфейс. Каждый бит представляется одним из двух возможных потенциальных уровней линии: «0» и «1». Каждый байт передается в виде последовательности битов, выдаваемых в линию без перерыва, младшими битами вперед (LSB first):

    • Старт-бит. Всегда «0».

    • Биты 0-7 байта данных.

    • Стоп бит. Всегда «1».

Время передачи каждого бита Tbit = 1 / f ± 5% = 104,2 ±5% µS.

Время передачи 1 байта Tbyte = Tbit × 10 ±5% = 1042 ±5% µS.

Данные передаются кадрами. Для разделения кадров используется байт 0xAA (далее — разделитель кадров). Разделитель кадров помогает отказаться от контроля пауз между кадрами для их корректного разделения, также отпадает необходимость подсчета количества байт для поиска конца кадра. 

Внутри кадра запрещено использование байта 0xAA. Для передачи внутри кадра байта с значением 0xAA используется экранирующий байт 0xA8. Если в исходном кадре используются байты 0xAA или 0xA8, они должны быть заменены на кодирующие их значения. Для кодировки байта 0xAA используется последовательность 0xA8AB, для байта 0xA8 — 0xA8A9

image.png

В протоколе предусмотрено несколько типов кадра:

  • Кадр статусов — содержит параметры системы (статусы). Передаются в линию периодически;
  • Кадр команд управления — запрос на выполнение команд управления. Передаются асинхронно в произвольные моменты времени;
  • Кадр ответов на команды управления — подтверждающие прием команды. Передаются в ответ на успешно принятые командные кадры.
  • Кадр эксплуатационных параметров - содержит эксплуатационные параметры автомобиля: скорость, пробег, уровень топлива, обороты. Передаются в линию периодически;
  • Кадр запроса идентификационных параметров - запрос идентификационных параметров системы: версия ПО, серийный номер Модуля, версия CAN библиотеки, версия протокола. Передаются асинхронно в произвольные моменты времени;
  • Кадр ответа на запрос идентификационных параметров - содержит запрошенный идентификационный параметр системы. Формат зависит от запрошенного параметра;

Каждый кадр передается последовательностью байт, начиная с поля «Идентификатор протокола» длинной 1 байт и заканчивая полем контрольной суммы длинной 1 байт. Кадр с неверной контрольной суммой при приеме игнорируется.

При обмене между модулем и оборудованием приняты следующие правила:

  1. Кадр статусов выдается в физический канал связи на регулярной основе. Частота выдачи кадров Fdf = 16,67 Гц (период выдачи кадров Tdf = 60 мс).
  2. Кадры команд управления могут выдаваться модулю в произвольные моменты времени. В качестве подтверждения приема командных посылок модуль должен выдать оборудованию кадр ответов на команды управления. Значение поля Frame_ID подтверждающего кадра должно содержать номер только что принятой команды. Время в течении которого модуль должен ответить Tresptout = 100 мс. Если в течении Tresptout ответ от модуля не получен, команда считается не принятой.
  3. Кадр эксплуатационных параметров передается в физический канал связи на регулярной основе. Частота выдачи кадров Fdf = 2 Гц (период выдачи кадров Tdf = 500 мс).
  4. Модуль выключает передачу кадра статусов и эксплуатационных параметров в режиме пониженного энергопотребления (Sleep). Модуль выйдет из режима пониженного энергопотребления при получении команды SleepOut или при появлении активности на цифровых шинах CAN и LIN. Следующий кадр команды управления, предназначенный для выполнения Модулем, должна следовать после SleepOut не ранее чем через 5 мс. Команда SleepOut определена посылкой длинной 1 байт, значение которого – DataSleepOut = 0x00.

Структура кадра протокола

Поле Описание Размер, байт
Protocol_ID Идентификатор протокола. 1
Frame_ID Идентификатор кадра. Определяет размер и структуру поля Data. 1
Data Передаваемые данные 32
CRC8  Контрольная сумма 1

image.png

Расчет контрольной суммы

Для расчета контрольной суммы используется полином x8 +x5 +x4 +1, с начальным значением 0x5A. Экранированные последовательности (0xA80xA9 и 0xA80xAB) должны быть декодированы перед расчетом контрольной суммы.

Описание типов кадров

Кадр команд управления
Protocol_ID  Frame_ID Data CRC8
0x02 0x01

Data 

CRC8

Data 

Смещение Размер Данные
0x00 1 байт Номер кадра. Должен быть уникальным. Используется для подтверждения приема команды Модулем в подтверждающем кадре.
0x01 2 байта Номер команды (см. Команды управления).
0x03 2 байта Код автомобиля. Используется только при передаче команды установки номера автомобиля.

Команды управления

Номер команды Описание

0x0001

закрыть ЦЗ
0x0002 открыть ЦЗ
0x0004 запирание а/м с включением штатной сигнализации
0x0044 запирание а/м с включением штатной сигнализации и функцией «Комфорт»
0x0005 запирание а/м без включения штатной сигнализации
0x0045 запирание а/м без включения штатной сигнализации с функцией «Комфорт»
0x0008 отпирание а/м с выключением штатной сигнализации
0x000A отпирание а/м без выключения штатной сигнализации
0x000C отпирание двери водителя с выключением штатной сигнализации а/м
0x0046 отпирание двери водителя без выключения штатной сигнализации а/м
0x0010 открыть багажник
0x0020 мигнуть лампами указателей поворота
0x0040 запустить функцию «Комфорт»
0x0080 остановить функцию «Комфорт»
0x1000
имитировать открытие/закрытие двери водителя. На время выполнения команды информация о двери водителя, поступающая от а/м, игнорируется.
0x0130 сброс модуля к заводским установкам. После установки заводских настроек производится программный сброс модуля
0x0200 установить код автомобиля. После установки производится сброс модуля. Код автомобиля передается в байтах D3 - D4.
0x0400
сброс модуля. На сброс контроллера может потребоваться до 2 с. В течение этого времени останавливается прием и передача всех пакетов.
0x0800
запуск/остановка двигателя
0x0801 запуск двигателя
0x0802 остановка двигателя
0x0900 заблокировать Keyless
0x0901 разблокировать Keyless
0x0A00 запустить обучение обходчика штатного иммобилайзера
0x0A01 запустить обход штатного иммобилайзера
0x0B00 запустить блокировку двигателя
0x0B01 отменить блокировку двигателя
0x8000 запустить предпусковой подогреватель
0x9000 остановить предпусковой подогреватель
Кадр подтверждения команды управления
Protocol_ID  Frame_ID Data CRC8
0x02 0x02

Номер кадра команды управления, ответ на который посылается.

CRC8
Кадр состояния параметров системы

Состояние каждого параметра определяется 2 битами. Параметр может принимать значения:

Состояние Значение
11 Состояние параметра не определено
10 Параметр не анализируется
00 Параметр в состоянии выключено (OFF)
01 Параметр в состоянии включено (ON)

Поле данных содержит числовые параметры и параметры состояний. Числовые параметры имеют длину более 2 бит, и могут принимать следующие значения:

  • Все биты в состоянии «1» — параметр не определен;
  • Все биты в состоянии «1», младший бит в состоянии «0» — запрет анализа параметра;
  • Все биты в состоянии «0» — параметр равен нулю;
  • Числовое значение параметра.

Параметры, размер которых больше 1 байта передаются в  кадре в порядке Little-endian (от младшего к старшему).

Изначально параметры системы находятся в неопределенном состоянии. При получении значения из цифровых шин CAN и LIN параметры принимают определенное значение. Если параметр не поддерживается, он принимает значение «параметр не анализируется». После сброса к заводским настройкам все поддерживаемые параметры принимают значение «состояние параметра не определено». Неиспользуемые поля пакета также заполняются значением «состояние параметра не определено».

Формат кадра параметров системы

Protocol_ID  Frame_ID Data CRC8
0x02 0x03 Параметры системы CRC8

Параметры системы

Поля данных Описание
D0.1 -D0.0 состояние цифровых шин CAN и LIN (активны/не активны)
D0.3-D0.2 не используется
D0.5-D0.4 не используется
D0.7-D0.6 состояние режима «Охрана»
D1.1-D1.0 не используется
D1.3-D1.2 не используется
D1.7-D1.4 не используется
D2.1-D2.0 не используется
D2.3-D2.2 дверь водителя
D2.5-D2.4 пассажирские двери. Объединенный статус всех дверей кроме двери водителя.
D2.7-D2.6 пассажирские двери. Объединенный статус всех дверей кроме двери водителя.
D3.1-D3.0 пассажирские двери. Объединенный статус всех дверей кроме двери водителя.
D3.3-D3.2 багажник
D3.5-D3.4 капот
D3.7-D3.6 педаль тормоза. При выключенном зажигании параметр не контролируется – значение в запрещенном состоянии
D4.1-D4.0 габаритные огни
D4.3-D4.2 не используется
D4.5-D4.4 аксессуары (ACC)
D4.7-D4.6 зажигание (IGN)
D5.1-D5.0 состояние аварийной сигнализации
D5.3-D5.2 паника штатной сигнализации
D5.5-D5.4 команда закрытия а/м со штатного брелка
D5.7-D5.6 команда открытия а/м со штатного брелка
D6.1-D6.0 команда открытия багажника со штатного брелка
D6.3-D6.2

статус ЦЗ (открыт/закрыт):

  • 0x0 — закрыт
  • 0x1 — открыт
  • 0x2 — не анализировать параметр
  • 0x3 — состояние не определено
D6.5-D6.4 контроль работы двигателя
D6.7-D6.6 стояночный тормоз. При выключенном зажигании параметр не контролируется – значение в запрещенном состоянии 0x2
D7.2-D7.0

положение ручки АКПП :

  • 0x0 — не анализировать параметр. Устанавливается во время переключения ручки АКПП или при выключении зажигания
  • 0x1 — положение «паркинг P»
  • 0x2 — положение «задний ход R»
  • 0x3 — положение «нейтральная передача N»
  • 0x4, 0x5 — положение «движение вперед" D»
  • 0x7 — состояние не определено
D7.5-D7.4 переход в режим Sleep Для индикации модулем готовности к переходу в Sleep. Переход через 3 с после выставления состояния ON
D7.7-D7.6 датчик движения а/м (скорость > 0 км/ч)
D11.7-D8.0 статус штатных кнопок а/м (на 1 кнопку 1 бит)
Кадр эксплуатационных параметров

Эксплуатационные параметры передаются от модуля оборудованию каждые 500 мс.

Protocol_ID  Packet_ID Data CRC8
0x02 0x06

Эксплуатационные параметры

CRC8

Эксплуатационные параметры

Поля данных Описание
D1-D0 скорость а/м (1 бит = 1 км/ч)
D3-D2 обороты двигателя (1 бит = 1 об/мин)
D7-D4 пробег а/м (1 бит = 5 м)
D8 не используется
D10.5-D9.0 уровень топлива в баке ([1 бит = 1 л]/[1 бит = 0,1%])
D10.7-D10.6 размерность параметра «уровень топлива в баке» 0x0: проценты (%) 0x1: литры (л)
Кадр идентификационных параметров
Protocol_ID  Frame_ID Data CRC8
0x02 0x07

Номер идентификационного параметра от 1 до 6

CRC8

Кадр может быть передан модулю в произвольный момент времени. В ответ модуль отправляет запрошенные идентификационные параметры. Контроль получения запрошенного параметра, контролируется анализом поля Frame_ID. 

Кадр ответа на запрос идентификационных параметров №1
Protocol_ID  Frame_ID Data CRC8
0x02 0x08

D31-D0 – серийный номер модуля (ASCII)

CRC8
Кадр ответа на запрос идентификационных параметров №2
Protocol_ID  Frame_ID Data CRC8
0x02 0x09

D1 - D0 – код номера а/м

CRC8
Кадр ответа на запрос идентификационных параметров №3

Зарезервировано

Кадр ответа на запрос идентификационных параметров №4
Protocol_ID  Frame_ID Data CRC8
0x02 0x0B

D0 – старший разряд версии ПО модуля

D1 – младший разряд версии ПО модуля

D5-D2 – ревизия ПО модуля

CRC8
Кадр ответа на запрос идентификационных параметров №5
Protocol_ID  Frame_ID Data CRC8
0x02 0x0C

D0 – старший разряд версии CAN библиотеки

D1 – младший разряд версии CAN библиотеки

D5-D2 – ревизия CAN библиотеки

CRC8
Кадр ответа на запрос идентификационных параметров №6
Protocol_ID  Frame_ID Data CRC8
0x02 0x0D

D0 – старший разряд версии протокола совпадает с типом протокола, равен 4

D1 – средний разряд версии протокола совпадает с идентификатором протокола, равен 2

D3-D2 – младший разряд версии протокола, равен 20

CRC8

Режим пониженного энергопотребления модуля

Переход в режим пониженного энергопотребления (Sleep) осуществляется модулем через 60 секунд после выключения цифровых шин CAN и LIN автомобиля. В режиме Sleep Модуль выключает трансляцию кадров статусов системы и эксплуатационных параметров. Уровни линий шины межблочного обмена UART-TX и UART-RX устанавливаются в уровни верхней подтяжки (pull-up) с напряжением U = 5 В.

Выход из режима Sleep осуществляется при регистрации любой активности на цифровых шинах CAN и LIN или по команде протокола межблочного обмена.

Индикация режима Sleep осуществляется выставлением соответствующего бита в кадре статусов Модуля. Фактический переход в режим пониженного энергопотребления осуществляется через 3 секунды после выставления индицирующего бита, что позволяет корректно обработать команды посланные модулю во время отработки перехода в Sleep режим.

Для выдачи команды управления от оборудования модулю, который находится в режиме Sleep, требуется первым шагом вывести модуль из состояния пониженного энергопотребления командой SleepOut (см. раздел «Общее описание протокола»), дождаться первого кадра статусов системы, выдать требуемую команду управления Модулем. Фактическое выполнение команды может происходить с некоторой задержкой (до 2 секунд), наличие которой связано с реализацией алгоритмов взаимодействия Модуля с CAN/LIN протоколом конкретного автомобиля.

Перезагрузка модуля

Перезагрузка модуля происходит по команде «установить код автомобиля» при настройке модели автомобиле или команде «сброс к заводским настройка» протокола межблочного обмена.

Перезагрузка модуля может длиться до 5 секунд (в зависимости от внешних условий). Во время перезагрузки модуль не будет транслировать кадр статусов системы и эксплуатационных параметров, а также не будет отвечать ни на какие команды оборудования.