Описание интерфейса 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 байта Tbyte
= Tbit
× 10 ±5% = 1042 ±5% µS.
Данные передаются кадрами. Для разделения кадров используется байт 0xAA
(далее — разделитель кадров). Разделитель кадров помогает отказаться от контроля пауз между кадрами для их корректного разделения, также отпадает необходимость подсчета количества байт для поиска конца кадра.
Внутри кадра запрещено использование байта 0xAA
. Для передачи внутри кадра байта с значением 0xAA
используется экранирующий байт 0xA8
. Если в исходном кадре используются байты 0xAA
или 0xA8
, они должны быть заменены на кодирующие их значения. Для кодировки байта 0xAA
используется последовательность 0xA8AB
, для байта 0xA8
— 0xA8A9
.
В протоколе предусмотрено несколько типов кадра:
- Кадр статусов — содержит параметры системы (статусы). Передаются в линию периодически;
- Кадр команд управления — запрос на выполнение команд управления. Передаются асинхронно в произвольные моменты времени;
- Кадр ответов на команды управления — подтверждающие прием команды. Передаются в ответ на успешно принятые командные кадры.
- Кадр эксплуатационных параметров - содержит эксплуатационные параметры автомобиля: скорость, пробег, уровень топлива, обороты. Передаются в линию периодически;
- Кадр запроса идентификационных параметров - запрос идентификационных параметров системы: версия ПО, серийный номер Модуля, версия CAN библиотеки, версия протокола. Передаются асинхронно в произвольные моменты времени;
- Кадр ответа на запрос идентификационных параметров - содержит запрошенный идентификационный параметр системы. Формат зависит от запрошенного параметра;
Каждый кадр передается последовательностью байт, начиная с поля «Идентификатор протокола» длинной 1 байт и заканчивая полем контрольной суммы длинной 1 байт. Кадр с неверной контрольной суммой при приеме игнорируется.
При обмене между модулем и оборудованием приняты следующие правила:
- Кадр статусов выдается в физический канал связи на регулярной основе. Частота выдачи кадров Fdf = 16,67 Гц (период выдачи кадров Tdf = 60 мс).
- Кадры команд управления могут выдаваться модулю в произвольные моменты времени. В качестве подтверждения приема командных посылок модуль должен выдать оборудованию кадр ответов на команды управления. Значение поля
Frame_ID
подтверждающего кадра должно содержать номер только что принятой команды. Время в течении которого модуль должен ответить Tresptout = 100 мс. Если в течении Tresptout ответ от модуля не получен, команда считается не принятой. - Кадр эксплуатационных параметров передается в физический канал связи на регулярной основе. Частота выдачи кадров Fdf = 2 Гц (период выдачи кадров Tdf = 500 мс).
- Модуль выключает передачу кадра статусов и эксплуатационных параметров в режиме пониженного энергопотребления (Sleep). Модуль выйдет из режима пониженного энергопотребления при получении команды
SleepOut
или при появлении активности на цифровых шинах CAN и LIN. Следующий кадр команды управления, предназначенный для выполнения Модулем, должна следовать послеSleepOut
не ранее чем через 5 мс. КомандаSleepOut
определена посылкой длинной 1 байт, значение которого – DataSleepOut =0x00
.
Структура кадра протокола
Поле | Описание | Размер, байт |
---|---|---|
Protocol_ID | Идентификатор протокола. | 1 |
Frame_ID | Идентификатор кадра. Определяет размер и структуру поля Data. | 1 |
Data | Передаваемые данные | 32 |
CRC8 | Контрольная сумма | 1 |
Расчет контрольной суммы
Для расчета контрольной суммы используется полином 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 |
статус ЦЗ (открыт/закрыт):
|
D6.5-D6.4 | контроль работы двигателя |
D6.7-D6.6 | стояночный тормоз. При выключенном зажигании параметр не контролируется – значение в запрещенном состоянии 0x2 |
D7.2-D7.0 |
положение ручки АКПП :
|
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 секунд (в зависимости от внешних условий). Во время перезагрузки модуль не будет транслировать кадр статусов системы и эксплуатационных параметров, а также не будет отвечать ни на какие команды оборудования.