- •1 Введение во встраиваемые вычислительные системы
- •1.1 Определения, особенности, классификация
- •1.1.6.1 Уровень предприятия (1)
- •1.1.6.2 Уровни объекта (2) и подсистемы (3)
- •1.1.6.3 Уровень функциональных узлов (4)
- •1.1.6.4 Уровень оборудования функциональных узлов (5)
- •1.1.6.4.1 Устройства ввода-вывода
- •1.1.6.4.2 Устройство сопряжения с объектом
- •1.2 Механизмы реального времени
- •1.2.4.1 Классификация прерываний
- •1.2.4.2 Функции системы прерываний и их реализация
- •1.2.5.1 Основные характеристики pcf8583
- •1.2.5.2 Описание
- •1.2.5.3 Режимы работы часов
- •1.2.5.4 Регистры-счетчики
- •1.2.5.5 Будильник
- •1.2.5.6 Регистры сигнализации
- •1.2.5.7 Таймер
- •1.2.5.8 Режим счетчика событий
- •1.2.5.9 Вывод прерывания int
- •2 Технические средства встраиваемых систем
- •2.1 Элементная база микропроцессорной техники для
- •2.2 Модульный принцип организации процессора ввс
- •2.2.4.1 Энергонезависимая память e2prom: историческая справка
- •2.2.4.2 Основные характеристики eeprom at24Cxx
- •2.2.4.3 Описание
- •2.2.4.4 Организация памяти
- •2.2.4.5 Адресация модулей eeprom
- •2.2.4.6 Операция записи
- •2.2.4.7 Операция чтения
- •2.2.5.1 Однонаправленные порты
- •2.2.5.2 Двунаправленные порты и порты с альтернативной функцией
- •2.2.6.1 Программируемые таймеры в микроконтроллере с ядром Intel
- •2.2.6.2 Модули таймеров-счетчиков со схемами входного захвата,
- •2.2.7.1 Классификация ацп
- •2.2.9.1 Контроллер последовательного интерфейса в
- •2.2.10 Подсистема синхронизации
- •2.2.11 Механизмы начальной инициализации встроенной памяти
- •2.2.11.1 Внешнее программирование встроенного пзу
- •2.3 Сетевые интерфейсы встраиваемых систем
- •2.3.1.1 Концепция шины I²c
- •2.3.1.2 Принцип работы шины I²c
- •2.3.1.3 Сигналы старт и стоп
- •2.3.1.4 Подтверждение
- •2.3.1.5 Синхронизация
- •2.3.1.6 Форматы обмена данными по шине I²c (7-битный адрес)
- •2.3.1.7 Арбитраж
- •2.3.1.8 Достоинства шины I²c
- •2.3.2.1 Согласование и конфигурация линии связи
- •2.3.2.2 Защитное смещение
- •2.3.2.3 Исключение приема при передаче в полудуплексном режиме
- •2.3.4.1 Протоколы реального времени
- •2.3.4.2 Резервирование каналов и кольцевая топология
- •2.3.4.3 Отличия от обычного Ethernet
- •2.3.6.1 Преимущества
- •2.3.6.2 Преимущества plc по сравнению с Wi-Fi
- •2.3.6.3 Недостатки
- •2.3.9.1 Физический уровень
- •2.3.9.2 Контроллер шины
- •2.3.9.3 Оконечные устройства
- •2.3.9.4 Монитор канала
- •3 Программное обеспечение и инструментальные
- •3.1 Особенности программного обеспечения ввс
- •3.1.4.1 Особенности плк
- •3.1.4.2 Варианты построения систем на базе плк
- •3.1.4.3 Особенности программирования плк
- •3.1.4.4 Варианты реализации плк
- •3.1.4.5 Цикл плк
- •3.1.4.6 Области применения плк
- •3.1.4.7 Сравнение с микроконтроллерами
- •3.2 Языки программирования
- •3.2.8.1 Удобочитаемость
- •3.2.8.2 Лёгкость создания программ
- •3.2.8.3 Надёжность
- •3.2.10 Краткий обзор языков, используемых при проектировании
- •3.2.10.1 Язык программирования Си
- •3.2.10.3 Платформа Java
- •3.2.10.4 Платформа .Net
- •3.2.10.5 Язык программирования ada
- •3.2.10.6 Язык программирования Esterel
- •3.2.10.7 Язык программирования Lustre
- •3.3 Инструментальные средства отладки и тестирования
- •Ieee 1149.1 jtag - механизм граничного сканирования
- •3.3.3.1 Реализация jtag-инструментария
- •3.3.4.1 Цели и задачи профилировки
- •3.3.4.2 Общее время исполнения
- •3.3.4.3 Удельное время выполнения
- •3.3.4.4 Определение количества вызовов
- •3.3.4.5 Определение степени покрытия
- •3.3.5.1 Обеспечение корректности программного кода: обзор
- •3.4 Разработка программного продукта
- •3.4.2.1 Сложность проектирования и разработчики- одиночки
- •3.4.2.2 Оценка времени проектирования
- •3.4.2.3 Использование новых технологий
- •3.4.4.1 Безопасность и перемены
- •3.4.4.6 Играй в защите
- •3.4.4.7 Сбор метрических данных
- •3.4.4.8 Что дает давление сверху
- •3.4.4.9 Сердитый начальник
- •3.4.4.10 Туманные спецификации
- •3.4.4.11 Конфликт
- •3.4.4.12 Кто такой катализатор проекта
- •3.4.4.13 Человеку свойственно ошибаться
- •3.4.4.14 О персонале
- •3.4.4.15 Проблемы социологии
- •3.4.4.16 О патологической политике (еще раз)
- •3.4.4.17 Злоба и скупость
- •3.4.4.18 Основы здравого смысла
- •4 Устройство современного контроллера на примере
- •4.1 Назначение стенда
- •4.2 Состав стенда
- •4.3 Разъемы стенда и назначение выводов
- •4.4 Обзор компонентов принципиальной электрической
- •4.4.3.1 Матричная клавиатура
- •4.4.3.2 Жидкокристаллический индикатор
- •4.4.3.3 Светодиодные индикаторы
- •4.4.3.4 Звукоизлучатель
- •4.4.3.5 Дискретные входы-выходы
- •4.4.10 Фильтрующие емкости
- •4.5 Микроконтроллер aDuC812
- •4.6 Расширитель портов ввода-вывода на базе плис
- •4.6.1 Регистр клавиатуры kb
- •4.6.2 Регистр шины данных жки data_ind
- •4.6.3 Регистр данных параллельного порта ext_lo
- •4.6.4 Регистр данных параллельного порта ext_hi
- •4.6.5 Регистр управления ena
- •4.6.6 Регистр управления жки c_ind
- •4.6.7 Регистр управления светодиодами sv
- •4.6.8 Логическая схема плис: доступ к периферийным устройствам
- •4.6.9 Жидкокристаллический индикатор
- •4.6.9.1 Историческая справка
- •4.6.9.2 Подключение жки
- •4.6.9.3 Контроллер жки
- •4.6.9.4 Память данных жки (ddram)
- •4.6.9.9 Таблица команд контроллера жки
- •4.6.9.10 Операции чтения и записи команд/данных
- •4.7 Внешняя память программ и данных
- •5 Инструментальные средства для работы со стендом
- •5.1 Программирование стенда sdk-1.1
- •5.2 Компилятор sdcc
- •5.2.10 Использование меток
- •5.2.11 Директива __naked
- •5.2.12 Формат Intel hex
- •5.3 Инструментальная система m3p
- •5.4 Утилита make
- •5.5 Система контроля версий
- •6 Примеры программирования стенда sdk-1.1
- •6.1 Приступаем к работе
- •6.2 Программирование светодиодных индикаторов
- •6.3 Программирование последовательного канала
- •6.4 Программирование таймера
- •6.5 Программирование жки
2.3.1.7 Арбитраж
Арбитраж помогает решать конфликтные ситуации во время передачи
данных по I²C, когда присутствует несколько ведущих (режим мультимастера).
Ведущий может начинать пересылку данных только, если шина свободна. Если
один ведущий передает на линию данных НИЗКИЙ уровень, в то время как
другой – ВЫСОКИЙ, то последний отключается от линии, так как состояние
SDA (НИЗКОЕ) не соответствует ВЫСОКОМУ состоянию его внутренней
линии данных [7, 18].
Вследствие того, что арбитраж зависит только от адреса и данных,
передаваемых соревнующимися ведущими, не существует центрального
ведущего, а также приоритетного доступа к шине.
Рисунок 54. Арбитраж между двумя ведущими (случай одновременной передачи данных)
Что же будет, когда два ведущих начнут передачу одновременно? Тут
опять помогает свойство монтажного И: оба мастера бит за битом передают
адрес ведомого, потом данные, кто первый выставит на линию «0», тот и
побеждает в этой конфликтной ситуации. Так что очевидно, что самый важный
адрес должен начинаться с нулей, чтобы тот, кто к нему пытался обращаться,
всегда выигрывал арбитраж. Проигравшая же сторона вынуждена ждать, пока
шина не освободится.
Таким образом, арбитраж может продолжаться до окончания адреса, а если
ведущие адресуют одно и то же устройство, то в арбитраже будут участвовать и
113
данные. Вследствие такой схемы арбитража при столкновении данные не
теряются.
Ведущему,
проигравшему
арбитраж,
разрешается
выдавать
синхроимпульсы на шину SCL до конца байта, в течение которого был потерян
доступ.
Если в устройство ведущего также встроены и функции ведомого и он
проигрывает арбитраж на стадии передачи адреса, то он немедленно должен
переключиться в режим ведомого, так как выигравший арбитраж ведущий мог
адресовать его.
2.3.1.8 Достоинства шины I²c
Требуется только две линии – линия данных (SDA) и линия
синхронизации (SCL) Каждое устройство, подключённое к шине, может
быть программно адресовано по уникальному адресу. В каждый момент
времени существует простое отношение ведущий/ведомый: ведущие
могут работать как ведущий-передатчик и ведущий-приёмник.
Шина позволяет иметь несколько ведущих, предоставляя средства для
определения коллизий и арбитраж для предотвращения повреждения
данных в ситуации, когда два или более ведущих одновременно
начинают передачу данных. В стандартном режиме обеспечивается
передача последовательных 8-битных данных со скоростью до 100
кбит/с, и до 400 кбит/с в “быстром” режиме.
Встроенный в микросхемы фильтр подавляет всплески, обеспечивая
целостность данных.
Максимальное допустимое количество микросхем, подсоединённых к
одной шине, ограничивается максимальной емкостью шины 400 пФ.
Это лишь некоторые преимущества. Кроме того, I²C-совместимые
микросхемы
увеличивают
гибкость
системы,
позволяя
простое
конструирование вариантов оборудования и легкую модернизацию для того,
чтобы поддерживать разработки на современном уровне [7, 18]. Таким образом,
целое семейство оборудования может быть разработано, основываясь на
базовой модели. Модернизация оборудования или расширение его функций
(например, дополнительная память, дистанционное управление и т.п.) может
быть произведена путем простого подключения соответствующей микросхемы
к
шине.
Если
требуется
бoльшая
ПЗУ,
то
дело
лишь
в
выборе
микроконтроллера с большим объемом ПЗУ. Поскольку новые микросхемы
могут замещать старые, легко добавлять новые свойства в оборудование или
увеличивать его производительность путем простого отсоединения устаревшей
микросхемы и подключения к шине новой.
114
2.3.2
Интерфейс RS-485
RS-485 (Recommended Standard 485, Electronics Industries Association 485,
EIA-485) – стандарт передачи данных по двухпроводному полудуплексному
многоточечному последовательному каналу связи.
Стандарт RS-485 совместно разработан двумя ассоциациями: Ассоциацией
электронной промышленности (EIA — Electronics Industries Association) и
Ассоциацией промышленности средств связи (TIA — Telecommunications
Industry Association). Ранее EIA маркировала все свои стандарты префиксом
«RS» (Recommended Standard — Рекомендованный стандарт). Многие
инженеры продолжают использовать это обозначение, однако EIA/TIA
официально заменил «RS» на «EIA/TIA» с целью облегчить идентификацию
происхождения
своих
стандартов.
На
сегодняшний
день,
различные
расширения стандарта RS-485 охватывают широкое разнообразие приложений,
этот стандарт стал основой для создания целого семейства промышленных
сетей широко используемых в промышленной автоматизации.
В стандарте RS-485 для передачи и приёма данных часто используется
единственная витая пара проводов. Передача данных осуществляется с
помощью
дифференциальных
сигналов.
Разница
напряжений
между
проводниками одной полярности означает логическую единицу, разница другой
полярности — ноль.
RS-485 имеет следующие особенности:
возможность объединения несимметричных и симметричных цепей,
параметры качества сигнала, уровень искажений (%),
методы доступа к линии связи,
протокол обмена,
аппаратную конфигурацию (среда обмена, кабель),
типы соединителей, разъёмов, колодок, нумерацию контактов,
качество источника питания (стабилизация, пульсация, допуск),
отражения в длинных линиях.
Электрические и временные характеристики интерфейса RS-485:
32 приёмопередатчика при многоточечной конфигурации сети (на
одном сегменте, максимальная длина линии в пределах одного сегмента
сети: 1200 метров).
Только один передатчик активный.
Максимальное количество узлов в сети — 250 с учётом магистральных
усилителей.
Характеристика
скорость
обмена/длина
линии
связи
(зависимость
экспоненциальная):
62,5 кбит/с 1200 м (одна витая пара)
375 кбит/с 300 м (одна витая пара)
115
500 кбит/с
1000 кбит/с
2400 кбит/с 100 м (две витых пары)
10000 кбит/с 10 м
Примечание: Скорости обмена 62,5 кбит/с, 375 кбит/с, 2400 кбит/с
оговорены стандартом RS-485. На скоростях обмена свыше 500 кбит/с
рекомендуется использовать экранированные витые пары.
Тип
приёмопередатчиков
—
дифференциальный,
потенциальный.
Изменение входных и выходных напряжений на линиях A и B: Ua (Ub) от −7В
до +12В (+7В).