Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
E_UP_DVS.doc
Скачиваний:
67
Добавлен:
11.03.2016
Размер:
1.02 Mб
Скачать

13. Последовательные интерфейсы rs-232, usb, k-Line, can, lin и (j1850)

Интерфейс - это средства и правила, используемые при передаче разного рода информации (данных). Передачи могут быть внутренние - внутри м/к, блока упр. и внешние - между блоком управления и прочими устройствами. Примеры передач. Процессор – память, процессор – порт, БУ – компьютер.

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

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

Следующий уровень – канальный– определяет структуру посылок, т.е. определяет, как во времени передаются порции данных.

Следующие уровни рассматривают процесс передачи данных между различными участниками при передачах и приёме данных. И, наконец, самый верхний, т.н. "прикладной" уровень рассматривает, как использовать полученные данные, как на них реагировать…

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

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

Асинхронная последовательная передача одного байта информации состоит из передачи стартового бита, битов данных (5-9), контрольного бита (четность-нечетность), который является необязательным и стопового бита. Кадр получился макс. длины 1+9+1+2=13 битов. Пассивное состояние линии совпадает с уровнем стопового бита (лучше высокий уровень – почему?). Уровень стартового бита противоположен уровню стопового.

Ниже представлена краткая характеристика последовательных асинхронных интерфейсов.

RS-232.Отдельные сигналы приём (вход), передача (выход) и множество прочих. Предназначен для связидвухустройств. Прочие устройства, если имеются, могут только "слушать" одного или другого абонента. Физический уровень. Лог. 1 - +12В, лог. 0 - минус 12В. С годами эти уровни превратились в ±9В и даже менее этого. Помимо сигналов и разъёмов (DSUB25 или 9 контактов) стандартизированы и скорости. Исходная частота 18432кГц/10 = 1843.2кГц. Кадр делится на 16 отрезков. Т.о. макс. скорость получится 1843.2кГц/16 = 115.2 кбит/с. Более медленные скорости получаются делением на целое число 2, 3, 4, ..6, … 11, 12,…768, т.е. получаются скорости 56.7, 38.4, 28.8, 19.2, …10.473, 9.6,… 0.15 кбит/с.

Приём/передача – побайтные, по окончании приёма или передачи генерируется прерывание для м/п. Формат посылки не оговорен, т.е. структура и длина передаваемых данных м.б. произвольными, т.е. стандарт (канальный уровень) регламентирует толькопередачуодного байта. Цифровой автомат, который реализует эту задачу, обычно называютUART-ом (UniversalAsinchronicReceiverTransmitter). Заметим также, чтоUART, как периферийный компонент, имеется в составе большинства микроконтроллеров.

Поскольку UARTв м/к имеет уровниTTL/CMOS, между ним и линией передачи устанавливается м/с драйвера, которая преобразует уровниTTL/CMOSв сигналы стандартаRS-232 (+/-12В). Для других стандартов, рассматриваемых ниже имеются свои м/с драйверов.

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

K-Line (ISO-9141/ISO14230).И. специально разработан для диагностических целей в авто. Однопроводный, позволяет подключать несколько устройств. Скорость ограничивается мощностью передатчиков, работающих на большую ёмкостную нагрузку, что сказывается на небольшой возможной длине линии (обычно не более 10м). Логически и. идентиченUART/RS-232 (побайтная передача). Физические уровни 0/1 аналогичны уровням КМОП, где уровень "1" достигает бортового напряжения +12..14В.

Протокол обмена регламентирован документом ISO14230-3, отражающим правила обмена посылками. Так посылка начинается с заголовка, который в общем случае содержит от 1 до 4 байтов (ВАЗ определил заголовок 3 или 4-байтным), за которым следует байт, указывающий на тип передаваемых данных, сами данные от 1 до 63 или до 255 байтов. Последним должен быть передан байт контрольной суммы (простая сумма всех байтов помимо её самой).

Первый байт заголовка определяет т.н. формат посылки и определяет наличие или отсутствие адресных байтов заголовка (для ВАЗ они есть), наличие или отсутствие байта длины посылки. Т.е. по сути определяет число байтов заголовка. Адресные байты (если они есть) указывают, кому предназначена посылка и от кого.

Протокол обмена регламентирует скорость обмена. В начале скорость д.б. установлена 10.4 кбит/с и может быть изменена по согласию (тестера и БУ) на бОльшие значения 38.4 или 56.7 кбит/с. Исходный стандарт, кажется, не допускает увеличение скорости свыше 10.4 кбит/с. Заметим, что скорость 10400 отличается от устанавливаемой на РС (10473) на -0.7%.

Протокол обмена тестера и БУ предусматривает процедуры установления и завершения сессий. Сначала тестер должен попытаться установить связь с БУ на стандартной скорости. При получении положительного ответа – установить режимобмена. Подрежимомможет пониматься набор параметров и скорость обмена. Если в процессе обмена сообщениями имеются значительные паузы, тестер обязан сообщать БУ о своём присутствии, иначе сессия может быть прервана. При окончании сессии тестер уведомляет БУ о завершении связи.

Недостатки.Структура заголовка предусматривает слишком много вариантов, что усложняет программную реализацию. Производители кодируют данные и их расположение в посылках кому как вздумается. Так, например, частота вращения передаётся одним байтом, исх. величина делится на 40. То же относится к другим данным, которые в большинстве кодируются одним байтом (жмоты!). При наличии многих абонентов, каждый из которых периодически наровит передавать свои данные в сеть становится значительной вероятность конфликтов (одновременная передача посылок как минимум двумя абонентами). При конфликте посылки неизбежно портятся и их необходимо передавать повторно. При возникновении конфликта пропускная способность сети резко снижается и возможен коллапс. Большая длина посылок усугубляет ситуацию. Деление посылок на важные и не очень (арбитраж) также отсутствует.

USB. Компьютерныйдифференциальныйи. – передачи по двум симметричным линиям. Соединительные провода - витая пара. Длина не более 2-3м. Всего 4 контакта, 2 – данные, питание +5В и общий.v.1.1 - исходная частота 48MHz.Fullspeed12MHz(/4, 0.5-12MHz),lowspeed- 1.5MHz(/32, 0.01-1.5MHz).V.2.0 - исходная частота 480MHz, фактическая скорость подбирается в процессе работы в соответствии с конкретными условиями (параметрами соединительного кабеля) и возможностями устройств (Highspeed25-480MHz).V3.0. 4800MHz, +2 витые пары, макс. ток по питанию до 900 мА (было - 500).

Идеологически и. представляет связь между одним ведущим (хостом-главным процессором) и периферийными, подчинёнными устройствами (флешки, модемы, принтеры и пр.). Так невозможно связать два компьютера через USBинтерфейс.

CAN ISO 11898 (Controller Area Network - сеть контроллеров) – разработан Robert Bosch Gmbh в середине 1980-х. Стандарт, разработанный изначально для автомобилей, прижился в первую очередь не только на продвинутых авто, но в первую очередь, как ни поразительно - в промышленности.

Многопользовательская сеть с несколькими ведущими (любой абонент может передавать сообщения без запроса). Число абонентов зависит от мощности передатчиков и может составлять более 100. До 25-30м длины макс. скорость м.б. до 1 Мбит/с. Если сеть K-lineпредназначена в основном для диагностических целей, тоCANсеть используется в первую очередь для передачи информации между контроллерами при обычной работе автомобиля.

Физический уровень CAN.И. чаще всегодифференциальный,хотя может быть и однопроводным. Реализуется т.н. трансиверами или драйверами – м/с преобразующими логические уровниTTL/CMOSв сигналы на линии связи. Ниже рассмотрим три разновидности линий.

Разновидность 1. CANISO11898-2 (CANHS–HighSpeed). Когда говорят просто проCAN, то чаще всего имеют ввиду именно этот вариант. И имеет два сигналаCAN-H,CAN-L, провода свиты в "витую пару", устойчивую без особых хитростей к помехам. На концах линии ставятся резисторы по 120ом, которые демпфируют отражённую волну при распространении сигнала. Скорость - до 1 Мбит/с. Лог. 1 – пассивное состояние (рецессивный уровень) – на обеих линиях одинаковые напряжения (около 2.5В – разность напряженийCAN-H-CAN-L= 0). Лог. 0 - доминантное состояние – разность напряженийCAN-H-CAN-L= 3.5-1.5 = +2В. "Доминантное" – преобладающее, перебарывает рецессивный уровень. И. не может работать с серьёзными физическими нарушениями. Базовый трансиверNXP(PHILIPS) 82C250.

Разновидность 2. CANISO11898-3 (CANLS–LowSpeed) могут работать при замыкании одной из линий на землю и даже на +12В. Скорость - до 125 кбит/с. Лог. 1 – пассивное состояние – разность напряженийCAN-H-CAN-L= 0-5 = -5В. Лог. 0 - доминантное состояние – разность напряженийCAN-H-CAN-L= 3.6-1.4 = +2.2В. Нет концевых резисторов. Базовый трансиверNXP(PHILIPS)TJA1054.

Разновидность 3. SAE J2411 описывает однопроводной (плюс "земля", разумеется) физический уровень.

Канальный уровень CAN.Стандарт регламентирует передачу "сообщения/кадра/frame" (а не байта!) и передаётся сплошным битовым потоком без деления на байты, включающего помимо собственно данных (от 0 до максимум 8 байтов - маловато!) т.н. идентификатор и кучу служебной информации. Ограничение длины в 8 байтов связано с параноидальной боязнью снижения пропускной способности и убеждением, что длинные сообщения в задачах управления вовсе не нужны.Идентификаторнесёт смысловую нагрузку о данных и приоритете. Идентификатор может иметь длину 11, либо 11+18 = 29 битов и передаётся сразу после стартового бита.

Используется хитрая система арбитража приоритетов сообщений – при одновременном начале передач несколькими контроллерами своих сообщений в сети остаётся лишь то, которое имеет наивысший приоритет (наименьший по величине идентификатор), при этом сообщение не портится(!!), поскольку сообщения с меньшим приоритетом вовремя перестают передаваться.

Система адресации сообщений оригинальна – каждое сообщение отправляется не конкретному абоненту, а несёт смысловую нагрузку через тот же идентификатор. Например, блок АБС передаёт в сеть информацию о скорости автомобиля под конкретным идентификатором (достаточно всего одного байта, чтобы передать эту информацию в диапазоне 0-255км/ч). Блок управления двигателем может использовать эту информацию при принятии решения, отключать подачу топлива при сбросе газа или нет. Панель приборов использует эту информацию для показа скорости на спидометре и счёта суммарного пробега (для точности здесь нужна другая информация).

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

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

Микроконтроллер получает запросы прерываний при удачной попытке передачи сообщения, при удачном приёме сообщения и при проблемных ситуациях. При неудачной передаче сообщение повторно передаётся в линию автоматически (без участия основного м/к!).

Наряду с обычной циркуляцией сообщений в сети (периодическая передача-приём сообщений в виде т.н. кадров данных – DataFrame)CAN-контроллер также позволяет легко "попросить" данные, если, по мнению м/к, ему нужны какие-то данные. (Допустим м/к настроил один из почтовых ящиков на приём с каким-то идентификатором и давно или вовсе не получал в него сообщения). Запрос такого сообщения называется удалённым кадром (RemoteFrame). Удалённый кадр это не в смысле того, что он где-то далеко, а в смысле его отсутствия. Запрос на удалённый кадр не содержит данных и в поле арбитража есть маленькое отличие (здесь не рассматриваем столь мелкие подробности). Если в сети найдётся кто-либо, кто сможет ответить на такой запрос, то ответ будет вполне обычным кадром данных.

Существуют ещё два типа сообщений. Это кадры ошибок (Errorframe) и кадры перегрузки (Overloadframe)

Протоколы прикладного уровня. Таковых придумано довольно много, хотя бы потому, что CANживёт и в промышленности… Для автопроизводителей, в частности, имеются стандартыISO15765 - Диагностический протокол по CAN bus - Keyword 2000 на CAN bus иSAEJ1939, описывающий структуры рабочих (J1939-71) и диагностических сообщений (J1939-73).

LINLocalInterconnectNetwork,SAEJ2602 – как подсеть для сетиCAN). Физически идентичен (K-Line/ISO-9141) - однопроводный. Отличается от предшественника (K-Line/ISO9141) целым рядом ограничений и некоторых новых возможностей. Так жестко прописан протокол в канальной части. В сетиLINодин – главный, остальные (до 16 макс.) – подчинённые. Сеанс связи начинает главный, определяет через идентификатор, с каким подчиненным желает общаться. Подчинённый должен ответить 1-8 байтами + байтом контрольной суммы.

Скорость предусмотрена до 20 кбит/с. Подчинённые приёмники могут быть удешевлены за счёт возможного отсутствия кварцевого или керамического резонатора в тактовом генераторе – скорость передач приёмники могут подстраивать, когда главный начинает передачу. Вторая из синхронизирующих посылок содержит байт 0х55 или 0b01010101 (чередующиеся 0 и 1).

Предусмотрена возможность засыпания/пробуждения. В режиме сна падает энергопотребление и не требуется отключение питания при хранении автомобиля. Микроконтроллер существенно разгружен, т.к. при генерации посылок он непосредственно не участвует.

VANVehicleAreaNetwork(Автомобильная сеть).CANLS– подобная (несовместимая сCAN) сеть, ранее применяемая на частиPCA(Peugeot-Citroen) автомобилей. Длина данных увеличена до 28, но принципиально это ничего не меняет (всё равно мало).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]