
- •К.А. Палагута Микропроцессоры и интерфейсные средства транспортных средств
- •Москва 2011
- •Глава 1. Микропроцессор (мп), микропроцессорная система (мпс), основные понятия 11
- •Глава 2 Режимы работы мпс 33
- •Глава 3. Реализация и организация памяти мп 57
- •Глава 4. Микропроцессор кр580вм80а (Intel 8080) 77
- •Глава 5. Микропроцессор к1810вм86 (Intel 8086) 138
- •Глава 6. Микропроцессоры Intel от 80186 до Pentium 4 159
- •Глава 7. Микропроцессор к1801вм1, магистраль q-bus 209
- •Глава 8. Понятие и задачи интерфейса 239
- •Глава 9. Интерфейсные блоки для магистралей isa и q-bus 255
- •Глава 10. Промышленные интерфейсы. Сетевые протоколы в автомобиле 308
- •Глава 11. Интегральные схемы программируемой логики (ис пл) 326
- •Предисловие
- •Введение
- •Глава 1. Микропроцессор (мп), микропроцессорная система (мпс), основные понятия
- •1.1 Определение микропроцессора, классификация мп
- •1.2 Микропроцессорный комплект (мпк)
- •1.3 Микропроцессорная система
- •1.4 Линия, шина, магистраль
- •1.5 Типы магистралей
- •1.6 Шина адреса, раздельные и объединенные адресные пространства памяти и устройств ввода-вывода
- •1.7 Шина данных
- •1.8 Шина управления
- •1.9 Архитектура и структура микропроцессора
- •1.10 Cisc и risc процессоры, конвейерное выполнение команд программы
- •1.11 Конвейерная обработка данных
- •1.12 Контрольные вопросы и задания
- •Глава 2 Режимы работы мпс
- •2.1 Режим обмена данными под управлением процессора
- •2.2 Режим пдп
- •2.3 Режим прерывания
- •2.4 Контрольные вопросы и задания
- •Глава 3. Реализация и организация памяти мп
- •3.1. Виды запоминающих устройств (зу)
- •3.2. Кэш-память
- •3.3. Когерентность, механизмы сквозной и обратной записи
- •3.4. Алгоритмы обновления содержимого заполненных строк, снуппинг
- •3.5. Организация памяти
- •3.6. Внешние зу
- •3.7. Контрольные вопросы и задания
- •Глава 4. Микропроцессор кр580вм80а (Intel 8080)
- •4.1 Структура мп к580вм80
- •4.2 Основные технические характеристики мп кр580вм80а
- •4.3 Регистровая модель мп к580вм80
- •4.4 Классификация команд мп кр580вм80а
- •4.5 Команды пересылки (перемещения) данных
- •4.5.1 Пересылка из регистра в регистр
- •4.5.2 Непосредственная пересылка
- •4.5.3 Непосредственная загрузка пары регистров
- •4.5.4 Запоминание/загрузка аккумулятора и пары hl
- •4.5.5 Ввод из пары регистров в стек
- •4.5.6 Ввод а и f в стек
- •4.5.7 Выбор из стека пары регистров
- •4.5.8 Выбор (a) и (f) из стека
- •4.5.9 Обмен данными
- •4.5.10 Пересылка нl
- •4.6 Приращение / отрицательное приращение
- •4.6.1 Приращение/отрицательное приращение регистра
- •4.6.2 Приращение пары регистров
- •4.6.3 Отрицательное приращение пары регистров
- •4.7 Арифметические и логические операции
- •4.7.1 Арифметические операции над (a) и (r)
- •4.7.2 Арифметические операции с непосредственной адресацией
- •4.7.3 Сложение содержимого пар регистров
- •4.7.4 Логические операции над (а) и (r)
- •0800) Ora c
- •4.7.5 Логические операции с непосредственной адресацией
- •4.7.6 Операции сравнения
- •4.7.7 Операции циклического сдвига (а).
- •4.7.8 Дополнение аккумулятора
- •4.8 Команды перехода и вызова подпрограмм
- •4.8.1 Команды переходов
- •4.8.2 Команды вызова подпрограмм и возврата из подпрограмм
- •4.9 Команды ввода – вывода
- •4.9.1 Ввод данных из входного порта
- •4.9.2 Вывод данных в выходной порт
- •4.10 Команды управления
- •4.10.1 Рестарт (повторный запуск)
- •4.10.2 Изменение (Тс)
- •0800) Stc
- •0800) Cmc
- •4.10.3 Управление прерываниями
- •4.10.4 Двоично-десятичная коррекция
- •4.10.5 Пустая операция
- •4.10.6 Останов
- •4.11 Микропроцессор intel8085
- •4.11.1 Архитектура мп intel8085
- •4.11.2 Регистры мп Intel 8085
- •4.11.3 Ввод и вывод последовательных данных
- •4.12 Контрольные вопросы и задания
- •Глава 5. Микропроцессор к1810вм86 (Intel 8086)
- •5.1. Устройство и работа микропроцессора Intel 8086 (k1810bm86)
- •5.1.1. Структура микропроцессора Intel 8086
- •5.1.2. Режимы работы микропроцессора
- •5.1.3. Структура минимально укомплектованной системы на базе микропроцессора к1810вм86
- •5.1.4. Структура системы средней сложности на базе микропроцессора к1810вм86
- •5.2. Программная модель микропроцессора Intel 8086
- •5.2.1. Пользовательские регистры
- •5.2.2. Регистры общего назначения
- •5.2.3. Сегментные регистры
- •5.2.4. Регистры состояния и управления
- •5.3. Формирование физического адреса в микропроцессоре Intel 8086
- •5.4 Способы адресации микропроцессора
- •5.5 Контрольные вопросы и задания
- •Глава 6. Микропроцессоры Intel от 80186 до Pentium 4
- •6.1. Архитектура микропроцессоров 80186/80188
- •6.2. Микропроцессор 80286
- •6.2.1 Аппаратные особенности
- •6.2.2 Система команд
- •6.2.3. Виртуальная память
- •6.3. Микропроцессоры 80386 и 80486
- •6.3.1. Микропроцессор 80386
- •6.4. Микропроцессоры Pentium и Pentium Pro
- •6.5. Специальные регистры микропроцессора Pentium
- •6.6. Управление памятью микропроцессора Pentium
- •6.7. Новые команды микропроцессора Pentium
- •6.8. Специальные особенности микропроцессора Pentium Pro
- •6.9. Микропроцессоры Pentium II, Pentium III и Pentium 4
- •6.9.1. Сопряжение с памятью
- •6.9.2. Набор регистров
- •6.11 Контрольные вопросы и задания
- •Глава 7. Микропроцессор к1801вм1, магистраль q-bus
- •7.1 Микропроцессор к1801вм1
- •7.1.1 Структурная схема микропроцессора к1801вм1
- •7.1.2 Основные технические характеристики
- •7.1.3 Регистровая модель микропроцессора
- •7.1.4 Адресное пространство
- •7.1.5 Формат команд
- •7.1.6 Методы адресации
- •7.2. Системная магистраль q-Bus
- •7.2.1 Временная диаграмма цикла ввод
- •7.2 2 Временная диаграмма цикла вывод
- •7.2.3 Цикл ввод-пауза-вывод
- •7.2.4 Временная диаграмма предоставления прямого доступа к памяти
- •7.2.5 Временная диаграмма прерывания
- •7.3 Контрольные вопросы и задания
- •Глава 8. Понятие и задачи интерфейса
- •8.1 Интерфейс
- •8.2 Селекция магистралей
- •8.2.1 Схемы централизованной селекции
- •8.2.2 Схемы децентрализованной селекции
- •8.3 Синхронизация обмена по магистрали
- •8.4 Координация взаимодействия устройств на магистрали
- •8.5 Контрольные вопросы и задания
- •Глава 9. Интерфейсные блоки для магистралей isa и q-bus
- •9.1 Isa
- •9.2. Порядок обмена по системной магистрали isa
- •9.2.1. Особенности магистрали isa
- •9.2.2. Сигналы магистрали isa
- •9.2.3. Циклы магистрали isa
- •9.3 Разработка устройств сопряжения для isa
- •9.3.1. Проектирование аппаратуры для сопряжения с isa
- •9.4 Разработка устройств сопряжения для q-bus
- •9.5 Контрольные вопросы и задания
- •Глава 10. Промышленные интерфейсы. Сетевые протоколы в автомобиле
- •10.1 Промышленные Fieldbus (полевые) сети
- •10.1.1 Модель osi (Open System Interconnection) (iso/osi) для стандартов.
- •10.1.2 Локальная сеть на основе интерфейса rs-485, объединяющая несколько приемо-передатчиков.
- •10.2 Этапы развития fieldbus технологий
- •10.3 Сетевые протоколы в автомобиле
- •10.4 Контрольные вопросы и задания
- •Глава 11. Интегральные схемы программируемой логики (ис пл)
- •11.1. Классификация ис программируемой логики
- •11.2. Конструктивно-технологические типы современных программируемых элементов
- •11.3. Области применения микросхем с программируемой логикой
- •11.4 Системные свойства ис пл
- •11.5 Типовые схемотехнические решения
- •11.6 Приемы дополнительной обработки сигнала
- •11.7 Организация двунаправленных выводов
- •11.8 Схема программирования типа выхода ячейки (введение триггера)
- •11.9 Fpga (программируемые пользователем вентильные матрицы)
- •11.10. Полные ресурсы межсоединений в микросхемах cpld
- •11.11 Контрольные вопросы и задания
- •Заключение
- •Глоссарий
- •Список литературы
10.3 Сетевые протоколы в автомобиле
Различают 3 основных протокола:
- самыймедленный– LIN (Local Interconnection Network)
- CAN (Controller Area Network), котрыйделитсяна:
-CAN-comfort (медленная модификация);
-CAN – силового агрегата (максимальное быстродействие);
- MOST – используется для медиа-приложений
Шина LIN. Протокол LIN поддерживает двунаправленную передачу данных по одному проводу длиной до 40 м, используя недорогой микроконтроллер с генератором на RC-цепочке, без кварцевого резонатора. Основная идеология - как можно больше задач переложить на программное обеспечение с целью уменьшения стоимости конструкции. Контроллеры автоматически проводят самосинхронизацию при каждой посылке данных.
В основу LIN положена концепция "single-master/multi-slave", обеспечивающая дешевое исполнение, основанное на обычных последовательных интерфейсах UART/SCI; для них характерны как программная, так и аппаратная возможность реализации, самосинхронизирующаяся тактирующая система, работающая от RC-генератора и не требующая кварцевого резонатора для Slave-устройств; гарантированное время ожидания для передаваемого сигнала; дешевое однопроводное исполнение и скорость до 20 Кбит/с. Возможен перевод шины в режим микропотребления "Sleep", когда она выключается с целью уменьшения потребляемого тока, но любой узел на шине при необходимости может включить ее вновь. Основное отличие протокола LIN от шины CAN заключается в низкой стоимости за счет пониженной эффективности. Структура шины представляет собой нечто среднее между I2C и RS232. Шина подтягивается вверх к источнику питания через резистор в каждом узле и вниз через открытый коллекторный переход приемопередатчика, как в I2C. Но вместо стробирующей линии каждый передаваемый байт обрамляется стартовым и стоповым битами и передается асинхронно, как в RS-232.
На рис. 10.5 показана типовая конфигурация шины LIN. Для обмена данными используется один сигнальный провод, в каждом узле подтянутый к источнику питания через резистор. В качестве выходного каскада используется транзистор с открытым коллектором. Активным состоянием является низкий уровень на шине данных, в это состояние ее может перевести любой узел. В пассивном состоянии напряжение на шине близко к Vbat (9-18 В). Это означает, что все узлы находятся в неактивном состоянии. Диапазон изменения напряжения питания - в пределах 9-18 В, но все узлы должны выдерживать перегрузки и сохранять работоспособность при увеличении напряжения на шине вплоть до 40 В. Обычно микроконтроллер в каждом узле подключен к шине через приемопередатчик, который и обеспечивает защиту от перегрузок. Это позволяет использовать обычный микроконтроллер с напряжением питания 5 В, в то время как сама шина работает на больших напряжениях.
|
Рис. 10.5 Типовая конфигурация шины LIN
|
Шина в каждом узле подтягивается к напряжению питания (Vbat). Для устройства - задатчика (master) значение терминального резистора составляет 1 кОм, для устройств-исполнителей (slave) – 20-47 кОм. Максимальная длина шины составляет 40 м.
|
Рис. 10.6 Формат посылки для шины LIN
|
|
Рис. 10.7 Формат сообщения для шины LIN |
Протокол LIN подразумевает использование RC-цепочки в качестве задающего генератора микроконтроллеров исполнителей. Поэтому каждое сообщение содержит поле синхронизации и каждый исполнитель обязан подстроить по этому полю частоту своего приёмопередатчика. Для того, чтобы определить время передачи одного бита, необходимо засечь время четырех периодов стартовой посылки, разделить на 8 и округлить (рис. 10.8).
|
Рис. 10.8 Определение времени передачи одного бита |
В идентификационном поле сообщается информация о том, что же, собственно, последует дальше. Поле идентификации (рис.10.9) разделено на три части: четыре бита (0-3) содержат адрес исполнителя, с которым будет производиться обмен информацией, два бита (4-5) указывают количество передаваемых байт и последние два бита (6-7) используются для контроля четности. Четыре бита адреса могут выбирать одного из 16-ти исполнителей, каждый из них может отвечать 2-мя, 4-мя, или 8-ю байтами, таким образом, получаем 64 типа различных сообщений на шине. Спецификация LIN не устанавливает каких-либо жестких рамок на передаваемую информацию (за исключением команды "Sleep"), оставляя свободу творчества для программистов.
|
Рис.10.9 Идентификационное поле |
Задатчик может послать команду всем исполнителям перейти в микромощный режим (Sleep), выставив в поле идентификации байт 0х80). Исполнители, приняв его, освобождают шину и переходят в "спящий" режим с выходом из него по изменению состояния на шине. Любой исполнитель может активизировать шину, передав байт 0х80. После этого все узлы ожидают дальнейший опрос.
Шина CAN. Первые идея CAN была предложена в середине 80-х немецкой компанией Robert Bosch, которая задумывала ее в качестве экономичного средства для объединения контроллеров, расположенных внутри автомобиля. Традиционный способ связи распределенных по объекту контроллеров жгутами проводов по своей технической сложности, по ценовым и по весовым параметрам для столь массового изделия, каким является автомобиль, оказался непригоден. Требовалось альтернативное решение, сокращающее количество проводов, поэтому был предложен протокол CAN, для которого достаточно любой проводной пары.
Идея заключалась в том, чтобы создать сетевое решение для распределённых систем, работающих в реальном времени. Первоначально CAN применялся в автомобилях, но затем область его применения расширилась и на проблемы автоматизации технологических процессов.
Шина CAN обеспечивает высокий уровень защиты данных от повреждения даже при работе в сложных условиях (сильные помехи), при этом достигается достаточно большая скорость передачи данных (до 1 Мбит/с). Важным достоинством CAN является также то, что разработчик системы может влиять на приоритет сообщений с тем, чтобы самые важные из них не ожидали в очереди на отправку. Это свойство CAN позволяет строить сети, поддерживающие реальный масштаб времени.
Высокая степень надежности сети благодаря развитым механизмам обнаружения и исправления ошибок, самоизоляции неисправных узлов, нечувствительность к высокому уровню электромагнитных помех обеспечивает сети широчайшую сферу применения.
Среди многочисленных факторов, обеспечивших взлет популярности CAN в последние годы, следует отметить разнообразие элементной базы CAN и ее дешевизну.
Немалую роль играет и возможность поддержки разнотипных физических сред передачи данных: от дешевой витой пары до оптоволокна и радиоканала. А ряд оригинальных механизмов сетевого взаимодействия (мультимастерность, широковещание, побитовый арбитраж) в сочетании с высокой скоростью передачи данных (до 1 Мбит/с) способствуют эффективной реализации режима реального времени в системах распределенного управления.
|
Рис. 10.10 Топология CAN сети |
CAN контроллеры соединяются с помощью шины, которая имеет, как минимум, два провода can- high и can-low. CAN сеть предназначена для коммуникации так называемых узлов. Каждый узел должен состоять, как минимум, из двух составляющих. Это собственно CAN - контроллер, который обеспечивает взаимодействие с сетью, и CPU (рис. 10.10). CAN не нуждается в особой физической среде передачи сигналов. То есть для соединения CAN контроллеров можно использовать и витую пару, и оптоволоконный кабель. Сигнал передается по двум линиям can_high и can_low. Логический ноль регистрируется, когда на can_high напряжение выше, чем на can_low. Логическая единица - в обратном случае. Такая схема передачи делает возможным работу CAN сети в очень сложных внешних условиях. С точки зрения помехозащищённости, CAN - подходящий вариант для систем управления технологическими объектами и автомобильными системами.
В любой реализации CAN - носитель (физическая среда передачи данных) интерпретируется как эфир, в котором контроллеры работают как приемники и передатчики. При этом, начав передачу, контроллер не прерывает слушание эфира, в частности, он отслеживает и контролирует процесс передачи текущих, предаваемых им же, данных. Это означает, что все узлы сети одновременно принимают сигналы, передаваемые по шине. Невозможно послать сообщение какому-либо конкретному узлу. Все узлы сети принимают весь трафик, передаваемый по шине. Однако, CAN-контроллеры предоставляют аппаратную возможность фильтрации CAN-сообщений.
CAN контроллеры соединяются с помощью шины, которая имеет как минимум два провода CAN_H и CAN_L , по которым передаются сигналы при помощи специализированных ИМС приемо-передатчиков. Кроме того, ИМС приемо-передатчиков реализуют дополнительные сервисные функции:
Регулировка скорости нарастания входного сигнала путем изменением тока на входе.
Встроенная схема ограничения тока защищает выходы передатчиков от повреждения при возможных замыканиях линий CAN_H и CAN_L с цепями питания , а также от кратковременного повышения напряжения на этих линиях.
Внутренняя тепловая защита.
Режим пониженного энергопотребления, в котором приемники продолжают сообщать контроллеру о состоянии шины для того, чтобы при обнаружении на шине информационных сигналов он мог вывести приемопередатчики в нормальный режим работы.
Наиболее широкое распространение получили два типа приемоперадатчиков (трансиверов):
"High Speed" приемопередатчики (ISO 11898-2);
"Fault Tolerant" приемопередатчики
Трансиверы, выполненные в соответствии со стандартом "High-Speed" (ISO11898-2), наиболее просты, дешевы и дают возможность передавать данные со скоростью до 1 Мбит/c. "Fault-Tolerant" приемопередатчики (нечувствительные к повреждениям на шине) позволяют построить высоконадежную малопотребляющую сеть со скоростями передачи данных не выше 125 Кбит/c.
Физический уровень канала CAN. Физический уровень (Physical Layer) протокола CAN определяет сопротивление кабеля, уровень электрических сигналов в сети и т.п. Существует несколько физических уровней протокола CAN (ISO 11898, ISO 11519, SAE J2411). В подавляющем большинстве случаев используется физический уровень CAN, определенный в стандарте ISO 11898.
ISO 11898 в качестве среды передачи определяет двухпроводную дифференциальную линию с импедансом (терминаторы) 120 Ом (допускается колебание импеданса в пределах от 108 Ом до 132 Ом.
Максимальная скорость сети CAN в соответствие с протоколом равна 1 Мбит/с. При скорости в 1 Мбит/с максимальная длина кабеля равна примерно 40 метрам. Ограничение на длину кабеля связано с конечной скоростью распространения сигнала и механизмом побитового арбитража (во время арбитража все узлы сети должны получать текущий бит передачи одновременно, те сигнал должен успеть распространиться по всему кабелю за единичный отсчет времени в сети.
Соотношение между скоростью передачи и максимальной длиной кабеля приведено ниже (скорость передачи - максимальная длина сети):
1000 Кбит/сек - 40 метров
500 Кбит/сек - 100 метров
250 Кбит/сек - 200 метров
125 Кбит/сек - 500 метров
10 Кбит/сек - 6 километров.
Разъемы для сети CAN до сих пор НЕ СТАНДАРТИЗОВАНЫ. Каждый протокол высокого уровня обычно определяет свой тип разъемов для CAN-сети.
Логический ноль регистрируется, когда на линии CAN_H сигнал выше, чем на линии CAN_L.
Логическая единица - в случае, когда сигналы CAN_HI и CAN_LO одинаковы (отличаются менее чем на 0.5 В).
Использование такой дифференциальной схемы передачи делает возможным работу CAN сети в очень сложных внешних условиях.
Логический ноль называется доминантным битом, а логическая единица - рецессивным. Эти названия отражают приоритет логической единицы и нуля на шине CAN.
При одновременной передаче в шину логических нуля и единицы на шине будет зарегистрирован только логический ноль (доминантный сигнал), а логическая единица будет подавлена (рецессивный сигнал).
Арбитраж шины CAN. Быстродействие CAN сети (до 1 Мбит/с) достигается благодаря механизму недеструктивного арбитража шины посредством сравнения бит конкурирующих сообщений. Т.е., если случится так, что одновременно начнут передачу несколько контроллеров, то каждый из них сравнивает бит, который он собирается передать на шину с битом, который пытается передать на шину конкурирующий контроллер. Если значения этих битов равны, то оба контроллера пытаются передать следующий бит. И так происходит до тех пор, пока значения передаваемых битов не окажутся различными. Теперь контроллер, который передавал логический ноль (более приоритетный сигнал) будет продолжать передачу, а другой (другие) контроллер прервёт свою передачу до того времени, пока шина вновь не освободится. Конечно, если шина в данный момент занята, то контроллер не начнет передачу до момента её освобождения.
|
Рис.10.11 Побитовый арбитраж сети CAN |
Эта спецификация CAN исходит из предположения, что все CAN контроллеры принимают сигналы с шины одновременно. Т.е. в одно и то же время один и тот же бит принимается всеми контроллерами в сети. С одной стороны, такое положение вещей делает возможным побитовый арбитраж, а с другой стороны ограничивает длину CAN шины. Сигнал распространяется по шине CAN с огромной, но конечной скоростью и для правильной работы CAN нужно, чтобы все контроллеры "услышали" его почти одновременно. Почти, потому что каждый контроллер принимает бит в течение определённого промежутка времени, отсчитываемого системными часами. Таким образом, чем выше скорость передачи данных, тем меньшая длина шины CAN допустима.
CAN - широковещательный протокол. Данные по сети CAN пересылаются в виде отдельных кадров стандартного формата (рис. 10.12). Все возможные кадры, передаваемые по сети, имеют назначаемый передающим узлом идентификатор и каждый узел решает на основе этого идентификатора, принимать данный кадр или нет. Этот идентификатор передается в поле identifier CAN кадра. Другим важным полем кадра являются собственно данные (data). Приоритетность сообщения определяется значением идентификатора. Приоритет тем больше, чем идентификатор меньше. Как правило, контроллер позволяет задавать лишь эти два поля. Остальные поля используются для передачи специфических данных, необходимых для функционирования шины CAN.
|
Рис.10.12 Формат кадра CAN |
CAN поддерживает два вида кадров: стандартный и расширенный. Стандартный кадр имеет поле идентификатора длиной 11 бит, расширенный - 29 бит.
Способы обнаружения ошибок:
- подсчет контрольных сумм;
- контроль правильности формата кадра;
- подтверждение приема;
- проверка битов.
Шина MOST (Media Oriented Systems Transport) разработана группой ведущих мировых автопроизводителей и производителей электроники в 1998 году и используется для передачи мультимедийных сообщений по оптоволоконной линии.
Основными ее достоинствами являются следующие:
- передача данных по оптоволокну, что позволяет избежать искажений сигнала при его передаче в насыщенной электромагнитными помехами среде современного автомобиля и , в свою очередь, избежать повышения уровня этих помех;
- стандартизованная система передачи звука, изображения и команд управления в мультимедийных системах.
В настоящее время шина MOST используется в спецификации, позволяющей передавать одновременно сигнал только одного видеоисточника и несколько сигналов аудио источников.
Помимо сетевых протоколов, в автомобиле используются диагностические протоколы, задаваемые стандартом OBD II – (On Board Diagnostics Systems Protocol).
Этот стандарт:
- определяет тип диагностического разъема;
- распределение сигналов по контактам разъема;
- варианты использования диагностического протокола;
- зоны размещения разъемов.
На диагностическом разъеме могут встретиться 3 типа протоколов:
- CAN;
- K-LINE;
- J 1850/