Шина данных по 1 проводу

Протокол 1-Wire

1-Wire – протокол передачи данных в обе стороны по одному проводу.

Режим связи в этом протоколе – асинхронный и полудуплексный (об этом подробнее тут), а также «остроконечный» (при отсылке многобайтовых целых передача идёт от младшего байта к старшему).

При этом у нас всегда есть ведущий – одно устройство на шине, которое отсылает команды, и ведомые – устройства, которые эти команды принимают и отвечают на них, если необходимо; каждое из ведомых устройств подключается непосредственно к общей шине.

Ещё раз подчеркнём – на шине может быть только ОДИН ведущий – иначе возникнут конфликты, когда оба ведущих будут тянуть одеяло на себя (на самом деле, есть некоторые приёмы организации сетей 1-Wire в режиме мультимастера – например, с помощью ветвителя сети DS2409 – но в «обычной» жизни все-таки предпочтительней иметь только одного ведущего на шине).

Протокол 1-Wire хорош тем, что не сложен в реализации и требует для связи всего два-три провода (шина данных, земля и при необходимости питание); однако при этом он не лишён и недостатков – этот протокол весьма чувствителен ко времени и к помехам. Также 1-Wire не предназначена для передачи больших объёмов информации и для скоростного обмена данными – максимальная скорость 9600 Бод/с.

Протокол 1-Wire описывает физический, канальный, сетевой и транспортный уровни взаимодействия (см. модель OSI).
На физическом уровне даются описания способов подключения, требования к шине данных и питанию и т.д.
Канальный уровень описывает способы чтения и передачи битов по протоколу.
Сетевой уровень описывает способы адресации к различным устройствам на линии.
Наконец, транспортный уровень описывает функциональные команды, используемые устройствами 1-Wire.

Физический уровень протокола

Физически для организации интерфейса необходимы как минимум линия для данных и «земля»; достаточно часто также для подключения устройств необходима также линия питания, однако некоторые ведомые устройства могут питаться и паразитно – получать «подпитку» через шину данных.

Рисунок 1. Пример подключения ведущего и ведомых устройств по протоколу 1-Wire.

Упрощенный пример подключения шины представлен на рисунке 1: так, у нас есть ведущее устройство и три ведомых, Slave1, Slave2 и Slave3. Шина данных (data) подтянута резистором к питанию и к ней присоединены все четыре устройства; также каждое из устройств подсоединено к земле. Master, Slave2 и Slave3 подключены к питанию (от 3 до 5 В, в зависимости от требований устройств), а устройство Slave1 питается паразитно через шину данных (об этом подробнее ниже).

К слову, о питании – согласно даташиту, шина данных должна быть подтянута к питанию резистором 4.7 кОм, однако данный номинал используется при относительно коротких линиях; если же расстояние между устройствами достаточно велико, то сопротивление резистора можно уменьшить.

Канальный уровень протокола

Обмен информацией ведётся так называемыми временными, или тайм-слотами (60 мкс): один тайм-слот служит для обмена одним битом информации. Данные передаются бит за битом, начиная с младшего бита младшего байта – это, кстати, достаточно часто приводит к ошибкам у новичков – кажется, что нужно передавать данные слева направо, так, как они хранятся в памяти (то есть, следите за словами: кажется, что нужно начинать со старшего бита младшего байта (вы уже запутались, да?) – но нет! При передаче по 1-Wire, например, двухбайтового числа порядок передачи будет таким:
Имеем число 1023410 – в двоичном виде выглядит так: 00100111 111110102
В памяти (так как у нас «остроконечный» порядок хранения данных) выглядит так: 11111010 00100111.
А передача по 1-Wire будет выглядеть так:
0→1→0→1→1→1→1→1→1→1→1→0→0→1→0→0
Если вы запутались так же, как и я – самое время выпить чая с шоколадкой и немного утрясти все в голове.

Идём дальше. При обмене информацией ведущий инициирует каждую связь на битном уровне. Это означает, что передача каждого бита, независимо от направления (передача или приём), должна быть инициирована ведущим. Шина данных по умолчанию подтягивается к «единице», поэтому для начала как приёма, так и для передачи ведущий опускает линию в «ноль» на некоторое время.

Рассмотрим 5 основных команд для связи по шине 1-Wire: «Запись 1», «Запись 0», «Чтение», «Сброс» и «Присутствие». При этом на рисунках красным выделено управление линией от ведущего, синим – управление линией от ведомого, черным – освобожденная линия (с помощью подтяжки шина автоматически переходит в «единицу»).

Сигнал «Запись 1». Ведущий устанавливает низкий уровень в течение 1…15 мкс. После этого, в течение оставшейся части временного слота он освобождает шину.

Сигнал «Запись 0». Ведущий формирует низкий уровень в течение не менее 60 мкс, но не дольше 120 мкс.

Сигнал «Чтение». Ведущий устанавливает низкий уровень в течение 1…15 мкс. После этого подчинённый, если хочет передать 0, удерживает шину в низком состоянии до 60 мкс; если же подчинённых хочет передать 1, то он просто освобождает линию. Ведущий обычно сканирует состояние шины по истечении 15 мкс после установки низкого уровня на шине.

Так, ведомый удерживает линию к земле, если хочет передать «0», и просто отпускает линию, если хочет передать «1».
Таким образом при чтении получаем следующие диаграммы.

Сигнал «Чтение при получении 1»:

Сигнал «Чтение при получении 0»:

Основные проблемы, которые возникают при реализации чтения-записи – это проблемы со временем, то есть «невыдерживание», или наоборот, «передерживание» временных задержек при чтении линии. Возникают эти проблемы из-за того, что часто не делают поправку на медленность языков программирования высокого уровня. Особенно это касается различных «дополнительных» функций и ништяков. Подробнее тут

Сигнал «Сброс/присутствие». Здесь временные интервалы импульсов отличаются. Ведущий устанавливает низкий уровень в течение 8 временных слотов (480 мкс), а затем освобождает шину. Данный длительный период низкого состояния называется сигнал «Сброс».
Если на шине присутствует подчинённый, то он должен в течение 60 мкс после освобождения ведущим шины установить низкий уровень длительностью не менее 60 мкс. Данный отклик носит название «Присутствие». Если такой сигнал не обнаруживается, то ведущий должен полагать, что нет подключённых устройств к шине и дальнейшая связь невозможна.
Данная связка сигналов всегда начинает любой обмен информацией между устройствами.
Помимо этого, нужно учитывать, что любое ведомое устройство после получения питания сразу же выдаёт сигнал присутствия.
Сигнал же «Сброс» позволяет ведущему досрочно завершить обмен информацией – например, если датчик температуры передаёт нам всю свою память, а нам нужны только первые два байта, которые содержат значение температуры, то после получения этих двух байт микросхема просто может опустить линию в ноль на нужное количество времени – датчик поймет, что больше ничего пересылать не нужно.

Сетевой и транспортный уровни протокола

Рассмотрим «более высокий» уровень протокола 1-Wire – последовательность действий при взаимодействии ведущего и ведомого, а также основные команды. При этом нужно отметить, все данные, в том числе команды, отсылаются побитно последовательно, начиная с младшего бита.

Читайте также:  Стен с глушителем фото

Так, например, если у нас есть микроконтроллер и DS18S20 – датчик температуры, и мы хотим получить от этого датчика значение температуры, то алгоритм работы будет следующим:

При этом нужно помнить, что ведомые устройства могут поломаться и, например, опускать линию всегда на 0. Допустим, у нас так закоротило датчик температуры в термостате печки. Тогда, если ведущий не проверит, что линия возвращается в единицу, то вероятна следующая ситуация:

Выглядит все это довольно печально – и черевато большими проблемами! Так что на протокол полагайся, но сам не плошай.

Вернёмся к алгоритму взаимодействия ведущего и ведомого по протоколу. Как видно, реализовать работу ведущего устройства не так уж сложно – при этом есть как уже готовые библиотеки с кодом, так и аппаратные реализации – например, от той же фирмы Maxim Integrated. Так, например, для AVR-ок написан целый даташит для реализации 1-Wire.

А вот реализовать ведомое устройство не так уж просто – и если библиотеки существуют (например, у нас на сайте), то аппаратных реализаций именно протокола 1-Wire мне не встречалось. Принцип же работы ведомых устройств подробно описан в их документации, обычно в виде блок-схемы.

Паразитное питание

Протокол 1-Wire позволяет ведомым устройствам при необходимости использовать паразитное питание – так, например, если уже есть линия с двумя проводами, или же необходимо удалённое измерение, или, например, в случае системы аутентификации, ведомое устройство (ключ или карточка) не подразумевает подключение питания.

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

Например, для датчика температуры DS18S20, использующего протокол 1-Wire, необходимо гарантировать, что на шине данных будет достаточное напряжение при выполнении температурного преобразования или при копировании данных из памяти EEPROM. Согласно даташиту, при этом рекомендуется подтягивать линию данных к питанию с помощью полевого транзистора; на деле же при использовании напряжения +5-+5.5 В микроконтроллеру достаточно просто не опускать шину данных в ноль (в случае именно с датчиком DS18S20 – другие датчики могут потреблять больше тока). Также именно паразитное питание является одной из причин, почему микроконтроллеру стоит передавать сигналы (то есть опускать линию данных в ноль) по минимальному времени – это позволяет устройствам на паразитном питании нормально функционировать.

К слову, не все авторы библиотек заморачиваются данным вопросом – так, при попытке заставить работать датчик DS18S20 на паразитном питании в среде MikroElectronika с использованием библиотеки этой среды датчик просто не получал достаточного питания и не мог нормально «общаться».

Области применения

Помимо всевозможных устройств для идентификации и авторизации (ключи, карточки пропуска), многие датчики – будь то датчики температуры, датчики влажности, освещения и др. – также используют для связи интерфейс 1-Wire. Помимо этого, есть также ряд микросхем для «мониторинга, менеджмента, защиты и управления восстановлением заряда автономных источников питания самых различных типов и назначений».

Уникальные коды устройств 1-Wire

Пару слов об уникальных кодах устройств, с которыми и работают ROM-команды. Каждое «одноварное» устройство имеет свой 64-хбитный код, состоящий из трёх частей:

Младший байт – это код семейства, к которому относится устройство, 6 следующих байт – уникальный в семействе серийный номер, ну и наконец, старший байт – это CRC, который служит для проверки правильности приёма всего кода. Так, например, на родных даллосовских (сейчас максимовских) «таблетках» часть уникального кода – а именно, 48-битный серийный номер – пишется на металле в шестнадцатиричном виде (все дружно посмотрели на свои домофонные ключи).

Рассмотрим подробнее, какие коды семейств устройств 1-Wire бывают:

Код семейства (HEX) Устройство iButton Описание
01 DS1990A, DS1990R, DS2401, DS2411 Уникальный серийный номер-ключ
02 DS1991 Мультиключ, 1152-битная защищённая EEPROM
04 DS1994, DS2404 4 КБ NV RAM + часы, таймер и будильник
05 DS2405 Одиночный адресуемый ключ
06 DS1993 4 КБ NV RAM
08 DS1992 1 КБ NV RAM
09 DS1982, DS2502 1 КБ PROM
0A DS1995 16 КБ NV RAM
0B DS1985, DS2505 16 КБ EEPROM
0C DS1996 64 КБ NV RAM
0F DS1986, DS2506 64 КБ EEPROM
10 DS1920, DS1820, DS18S20, DS18B20 Датчик температуры
12 DS2406, DS2407 1 КБ EEPROM + двухканальный адресуемый ключ
14 DS1971, DS2430A 256 бит EEPROM и 64 бита PROM
1A DS1963L 4 КБ NV RAM + счётчик циклов записи
1C DS28E04-100 4 КБ EEPROM + двухканальный адресуемый ключ
1D DS2423 4 КБ NV RAM + внешний счётчик
1F DS2409 Двухканальный адресуемый ключ с возможностью коммутации на возвратную шину
20 DS2450 Четырёхканальный АЦП
21 DS1921G, DS1921H, DS1921Z Термохронный датчик с функцией сбора данных
23 DS1973, DS2433 4 КБ EEPROM
24 DS1904, DS2415 Часы реального времени
26 DS2438 Датчик температуры, АЦП
27 DS2417 Часы реального времени с прерыванием
29 DS2408 Двунаправленный 8-разрядный порт ввода/вывода
2C DS2890 Одноканальный цифровой потенциометр
2D DS1972, DS2431 1 КБ EEPROM
30 DS2760 Датчик температуры, датчик тока, АЦП
37 DS1977 32 КБ защищённой паролем EEPROM
3A DS2413 Двухканальный адресуемый коммутатор
41 DS1922L, DS1922T, DS1923, DS2422 Термохронные и гигрохронные датчики высокого разрешения с функцией сбора данных
42 DS28EA00 Цифровой термометр с программируемым разрешением, возможностью работать в режиме подключения к последовательному каналу и программируемыми портами ввода/вывода
43 DS28EC20 20 КБ EEPROM

NV RAM – Non-Volatile Random-Access Memory (энергонезависимое ОЗУ)
PROM – Programmable Read-Only Memory (однократно программируемое ПЗУ)
EEPROM – Electrically Erasable Programmable Random-Access Memory (электрически стираемое перепрограммируемое ПЗУ)

Про команду Search ROM (F0h):

По мотивам статьи Чернова Геннадия.
Если ведущий не знает серийный номер устройств, подключенных к шине, то существует возможность идентифицировать коды ROM каждого устройства – для этого необходимо использовать команду «Search ROM» [F0h]. Эта команда действует как команда «Read ROM», объединенная с командой «Match ROM».

Процесс идентификации кодов ROM ведомых устройств выглядит так:

После формирования мастером команды «Search ROM» все устройства посылают на шину значение своего младшего бита; при этом сначала в течение одного такта ведомыми посылается «прямое» значение бита, а в течение следующего такта – «обратное» (логическое НЕ, дополнение) значение этого же бита.
Тогда мастер может считать следующие последовательности:

Далее мастер в следующем временном слоте отсылает «0» или «1», таким образом определяя, с какими устройствами дальше будет общаться – все устройства, у которых младший бит не соответствует биту, сформированному мастером на этом этапе, перейдут в состояние ожидания и будут находиться в нём, пока не получат импульс сброса. Затем происходят аналогичные 63 цикла чтения-выбора, пока, наконец, ведущее устройство не определит код ROM одного из подчинённых устройств и не обратится к нему.
Для мастера каждая стадия выбора состоит из двух тайм-слотов чтения и одного тайм-слота записи.

Разберем работу команды «Search ROM» на примере.

Пусть на шине установлено четыре ведомых устройства со следующими значениями кодов:
устройство 1: xxxxxx10101100
устройство 2: xxxxxx01010101
устройство 3: xxxxxx10101111
устройство 4: xxxxxx10001000
для упрощения символом «x» заменены старшие биты и показаны только младшие восемь битов

Поиск младшего бита происходит следующим образом:

Иными словами, в процессе поиска ROM мы строим одно или два двоичных дерева размером 64 (длина кода ROM), с корнями в виде значений младшего бита и листьями в виде значений старшего байта кода ROM.
Время, требуемое для считывания содержания одного ROM (без учёта процессорного времени мастера) = 960 мкс + (8 + 3*64) *61 мкс =13.16 мс.

Источник

Электронные шины в автомобиле

Бортовая электроника современного автомобиля в своем составе имеет большое количество исполнительных и управляющих устройств. К ним относятся всевозможные датчики, контроллеры и т.д.

Для обмена информацией между ними требовалась надежная коммуникационная сеть.

В середине 80-х годов прошлого столетия компанией BOSCH была предложена новая концепция сетевого интерфейса CAN (Controller Area Network).

CAN-шина обеспечивает подключение любых устройств, которые могут одновременно принимать и передавать цифровую информацию (дуплексная система). Собственно шина представляет собой витую пару. Данная реализация шины позволила снизить влияние внешних электромагнитных полей, возникающих при работе двигателя и других систем автомобиля. По такой шине обеспечивается достаточно высокая скорость передачи данных.

Благодаря применению данной системы из состава электрической схемы автомобиля высвободилось определенное количество проводников, которые обеспечивали связь, например, по протоколу KWP 2000 между контроллером ЭСУД и штатной сигнализацией, диагностическим оборудованием и т.д.

На рис. 1 показана топология и форма сигналов CAN-шины легкового автомобиля.

Рис. 1. Топология и формы сигналов CAN-шины

При передаче информации какого-либо из блоков управления сигналы усиливаются приемо-передатчиком (трансивером) до необходимого уровня.

Следует учесть, что при выключении питания происходит отключение нагрузочных сопротивлений модулей, подключенных к CAN-шине.

На рис. 2 показан фрагмент CAN-шины с распределением нагрузки в линиях CAN-High, CAN-Low.

Рис. 2. Фрагмент CAN-шины с распределением нагрузки в проводах CAN-High, CAN-Low

Системы и блоки управления автомобиля имеют не только различные нагрузочные сопротивления, но и скорости передачи данных, все это может препятствовать обработке разнотипных сигналов. Для решения данной технической проблемы используется преобразователь для связи между шинами.

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

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

В данном случае большим плюсом в проведении диагностических работ является наличие единого унифицированного диагностического разъема (колодка OBD).

На рис. 3 показана блок-схема межсетевого интерфейса.

Рис. 3. Блок-схема межсетевого интерфейса

Следует учесть, что на некоторых марках автомобилей, например, на Volkswagen Golf V, CAN-шина системы «Комфорт» и информационно-командная система не соединены межсетевым интерфейсом.

В таблице представлены электронные блоки и элементы, относящиеся к CAN-шинам силового агрегата, системы «Комфорт» и информационно-командной системы. Приведенные в таблице элементы и блоки по своему составу могут отличаться в зависимости от марки автомобиля.

Таблица. CAN-шины современного автомобиля

CAN-шина силового агрегата

Электронный блок управления двигателя

Электронный блок управления КПП

Блок управления подушками безопасности

Электронный блок управления АБС

Блок управления электроусилителя руля

Блок управления ТНВД

Центральный монтажный блок

Электронный замок зажигания

Датчик угла поворота рулевого колеса

CAN-шина системы «Комфорт»

Электронные блоки дверей

Электронный блок контроля парковочной системы

Блок управления системы «Комфорт»

Блок управления стеклоочистителей

Контроль давления в шинах

CAN-шина информационно-командной системы

Диагностика неисправностей CAN-шины производится с помощью специализированной диагностической аппаратуры (анализаторы CAN-шины) осциллографа (в том числе, со встроенным анализатором шины CHN) и цифрового мультиметра.

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

Основные неисправности CAN-шины в основном связаны с замыканием/обрывом линий (или нагрузочных резисторов на них), снижением уровня сигналов на шине, нарушениями в логике ее работы. В последнем случае поиск дефекта может обеспечить только анализатор CAN-шины.

Развитие прогресса в автомобилестроении неуклонно ведет к повышению требований к управлению, возрастает объем функций, на совершенно новый уровень переходит информационная составляющая о работе и поведении автомобиля. В связи с этим бортовая электроника наращивает свое присутствие в современном автомобиле. По статистике, количество блоков управления в нем за последние 15 лет увеличилось более чем в пять раз, и эта тенденция сохраняется. Потребителю хочется иметь полный контроль над любимым авто и над дорогой. Последние модели могут обойтись в сложной ситуации без водителя и принять решение согласно заложенной программе. Такие вопросы, как парковка или проезд по размытому участку сельской дороги машина может решить самостоятельно, без участия человека. С каждым годом все реальнее и ближе введение элементов автопилотирования, применяемых в авиации.

Увеличившееся число электронных модулей вынудило, в свою очередь, находить и внедрять новые технологии передачи данных между отдельными блоками управления. В вычислительной технике они уже давно существовали, поэтому оставалось только перенести опыт их использования и стандартизировать применительно к автомобилю. Сначала произошло внедрение шины данных CAN. У ведущих проиводителей это случилось в середине 90-х годов. Однако пропускной способности и скорости этой технологии хватило примерно лет на 10, после чего встал вопрос о дальнейшем развитии системы передачи информации. Особенно заметными проблемы стали после повсеместного применения информационно-развлекательного контента. Вместе с ним пришли и технологии, применяемые в кабельном телевидении и в современных системах связи, включая диагностику и сервис.

В итоге к завоевавшей уважение и известной шине CAN на сегодня добавились:

— шина LIN (однопроводная шина);

— шина MOST (оптоволоконная шина) (рис. 4);

— беспроводная шина Bluetooth™.

Рис. 4. Оптоволоконная шина MOST в современном автомобиле

Блок управления LIN Master

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

Приведем основные функции блока LIN Master:

— контролирует передачу данных в шине LIN и скорость обмена;

— отправляет посылки-телеграммы в шину LIN. В его ПО заложен цикл, какому подчиненному блоку, когда, как часто и какие посылки-телеграммы отправлять;

— выполняет функцию сопряжения подчиненных блоков шины LIN с шиной данных CAN, так как является единственным блоком управления отдельной шины LIN, подключенным к шине данных CAN (рис. 5);

— обеспечивает процесс диагностики подключенных блоков управления LIN Slave (рис. 6).

Рис. 5. Применение шины LIN в современном автомобиле

Рис. 6. Блоки управления LIN Slave

Блоки управления LIN Slave

Подключенные или подчиненные блоки управления LIN Slave в рамках отдельной системы шины данных LIN выполняют функции контроля и управления работой отдельных устройств, например, мотора вентилятора, привода люка в крыше, а также датчиков и исполнительных механизмов (датчик уклона, ручного тормоза, сирена противоугонной сигнализации и т.д.). Датчики измеряют или контролируют какие-либо величины и передают сигнал в аналоговом виде. Блок управления LIN Slave анализирует и преобразовывает принятые параметры в цифровую форму. Затем эти величины передаются по шине LIN в виде цифрового сигнала. Блок управления LIN Master опрашивает исполнительные устройства (посылает телеграмму), получает информацию о состоянии, что позволяет провести сравнительный анализ между фактическим и расчетным состоянием и влиять на работу исполнительных механизмов через блоки управления LIN Slave. Каждый блок LIN Slave обладает электронными или электромеханическими функциями и имеет свой адрес. Адрес передается в заголовке посылки-телеграммы и его опознает блок, за которым закреплен этот адрес, иными словами происходит идентификация обращения.

Технически интерфейс LIN реализуется просто и надежно. Сопряжение блоков LIN Slave с управляющим блоком LIN (Master) осуществляется по однопроводной линии с помощью одноконтактного разъема, одного на всех. Рассмотрим алгоритм передачи данных.

Если по шине LIN не происходит передача телеграмм или передается «рецессивный» бит, то уровень сигнала будет около 12 В, если будет передан «доминантный» бит, то передатчик замыкает шину на «массу» и уровень будет близок к нулю (рис. 7) Последовательность доминантных и рецессивных битов и составляет телеграмму, с помощью которой блок управления LIN Master обменивается с блоками LIN Slave. В различных модификациях приемопередатчиков (трансиверов) внешний вид рецессивных и доминантных уровней может иметь отличия.

Рис. 7. Осциллограмма сигналов шины LIN

Чтобы устранить влияние различных факторов на качество работы шины LIN, при передаче возможны отклонения от заданных уровней (0 и 12 В) не более чем на 2 В (рис. 8).

Рис. 8. Диапазон напряжений при передаче

Уровень приема еще более защищен и сигналы принимаются амплитудой с отклонением до 40% от заданных (рис. 9).

Рис. 9. Диапазон напряжений при приеме

Опишем непосредственно «телеграммы», с помощью которых происходит общение блоков по шине LIN.

По такому алгоритму и происходит обмен между блоками, сопряженными шиной LIN.

Реализация этого алгоритма начинается с того, что блок LIN Master с определенным циклом обращается к блокам LIN Slave, посылая заголовок телеграммы (рис.10). Цикл обращения установлен программным обеспечением и может изменяться в зависимости от ситуации, режимов работы автомобиля и других факторов.

Рис. 10. Осциллограмма заголовка телеграммы

Обращение относится ко всему возможному оборудованию, если каких-либо устройств нет на шине LIN, а это зависит от количества опций, которое оплачено владельцем, то обмен с отсутствующими блоками не состоится. Иными словами, на свой запрос к некоторым возможным блокам LIN Slave останется без ответа, ибо эти блоки просто отсутствуют в данной модификации. Это обстоятельство не влияет на работу. Если данные блоки будут поставлены, алгоритм работы с ними восстановится, напомним, что их может быть до 16-ти на каждый блок управления LIN Master.

Теперь подробнее о самой реализации взаимодействия.

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

Каждая телеграмма содержит заголовок (Header) и собственно текст, состоящий из переданных данных.

Заголовок состоит из четырех частей (рис. 10):

— пауза в синхронизации;

Опишем каждую из них.

Пауза в синхронизации (synch break)

Представляет собой не менее 13-ти битов, пересылаемых доминантным уровнем, что в вычислительной технике расценивается как передача не менее 13-ти «нулей». Блоки LIN Slave имеют возможность настроиться на прием телеграммы, ибо в тексте самой телеграммы не может быть подобной информации и столь долгая передача только доминантного уровня подсказывает блокам, что после этого поля последуют другие.

Окончание синхронизации (synch delimiter)

Эта часть передается рецессивным уровнем (около 12 В), что соответствует передаче «единицы» и сообщает блокам LIN Slave о том, что пауза закончилась и необходимо приготовиться к синхронизации.

Поле синхронизации (synch field)

Эта часть заголовка служит для непосредственной настройки блоков LIN Slave на работу с блоком управления LIN Master. Поле состоит из последовательности доминантных и рецессивных битов, то есть последовательности «нулей» и «единиц». Таким образом синхронизируется частота, на которой блоки LIN Slave должны работать по шине LIN, принять поле идентификатора и последующие за ним данные.

Это поле состоит из восьми бит. В первых 6-ти битах передаются адрес блока LIN Slave для его опознавания (идентификации) и количество полей для передачи данных, отведенных для ответа (от 0 до 8). Два оставшихся бита предназначены для передачи контрольной суммы. Контрольная сумма вычисляется согласно определенному алгоритму и необходима для того, чтобы избежать ошибок в передаче. При совпадении контрольной суммы оборудование считает, что информация передана корректно.

Рис. 11. Осциллограмма ответа

Если необходимо изменить скорость вращения вентилятора, то блок управления LIN Master посылает телеграмму с нужной скоростью вращения, и блок LIN Slave, получив указание, изменяет скорость вентилятора (рис. 12).

Рис. 12. Регулировка скорости вращения вентилятора

Напомним, что опрос блоков LIN Slave осуществляется с частотой, заложенной в программном обеспечении, но при изменении ситуации эта частота может меняться.

Факторов к изменению частоты обращения к блокам LIN Slave тем больше, чем лучше ПО и чем современнее бортовое оборудование автомобиля.

Комплектация современного автомобиля может быть разной, и если блок управления LIN Master, имеющий полное ПО, посылает запрос несуществующему блоку LIN Slave, то заголовки телеграмм возвращаются к LIN Master без ответа (рис. 13). Это не мешает алгоритму работу шины LIN и при установке соответствующего блока LIN Slave незамедлительно начинается его опрос и контроль работы со стороны блока управления LIN Master.

Рис. 13. Осциллограммы с заголовками телеграмм без ответов

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

Диагностика шины LIN и всех блоков, сопряженных с этой линией, осуществляется через диагностический разъем. При тестировании происходит имитация обмена между блоками, анализируются ответы от блоков LIN Slave и задающие команды от LIN Master.

Мнения читателей

Нет комментариев. Ваш комментарий будет первый.

Вы можете оставить свой комментарий, мнение или вопрос по приведенному выше материалу:

Источник

Оцените статью
Adblock
detector