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

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

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

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

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

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

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

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

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

Канал TX

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

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

Канал RX


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

 КаналХарактеристикаЗначение
Выход 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 байта TbyteTbit × 10 ±5% = 1042 ±5% µS.

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

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

протокол сигма 10

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

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

сигма 10 структура кадра

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

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

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

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

Protocol_ID Frame_IDDataCRC8
0x020x01

Data 

CRC8

Data 

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

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

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

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_IDDataCRC8
0x020x02

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

CRC8

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

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

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

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

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

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

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

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

Protocol_ID Frame_IDDataCRC8
0x020x03Параметры системы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_IDDataCRC8
0x020x06

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

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_IDDataCRC8
0x020x07

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

CRC8

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

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

Protocol_ID Frame_IDDataCRC8
0x020x08

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

CRC8

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

Protocol_ID Frame_IDDataCRC8
0x020x09

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

CRC8

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

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

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

Protocol_ID Frame_IDDataCRC8
0x020x0B

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

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

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

CRC8

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

Protocol_ID Frame_IDDataCRC8
0x020x0C

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

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

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

CRC8

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

Protocol_ID Frame_IDDataCRC8
0x020x0D

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 секунд (в зависимости от внешних условий). Во время перезагрузки модуль не будет транслировать кадр статусов системы и эксплуатационных параметров, а также не будет отвечать ни на какие команды оборудования.