- •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 Программирование жки
3.4.4.11 Конфликт
1. Проект, в котором участвуют несколько сторон, обязательно столкнется
с конфликтом интересов.
2. Процесс создания и распространения программных систем – прямо-
таки рассадник всевозможных конфликтов.
3. В большинстве компаний, где создается программное обеспечение,
никто специально не занимается вопросом решения конфликтов.
4. Конфликт заслуживает понимания и уважительного отношения.
Конфликт не имеет ничего общего с непрофессиональным поведением.
5. Донесите до каждого, что постараетесь учитывать интересы всех
участников, и проследите, чтобы так оно и было.
6. Тяжело договариваться. Гораздо легче выступать посредником.
7. Объявите
заранее,
что
если
интересы
конфликтующих
сторон
полностью или частично противоположны, то поиск решения будет
переложен на посредника.
8. Не забывайте: мы находимся по одну сторону баррикад. По другую
сторону находится сама проблема.
3.4.4.12 Кто такой катализатор проекта
1. Существуют люди-катализаторы. Они помогают создать здоровую
команду, отношения, боевой дух. Даже если бы они больше ничего не
делали (а как правило, они делают куда как много), их роль в проекте
остается одной из наиболее важных.
2. Посредничество – еще одна сфера, в которой люди-катализаторы
просто незаменимы. Впрочем, посредничеству можно научиться, это не
очень сложно.
3. Первым шагом к посредничеству должна быть маленькая церемония.
Например, можно произнести фразу: «Вы позволите мне попробовать
помочь вам решить этот спор?»
3.4.4.13 Человеку свойственно ошибаться
Нам кажется, что самое страшное – не знать чего-то. На самом деле
гораздо хуже быть уверенным, что знаешь, когда на самом деле это не так.
3.4.4.14 О персонале
1. Если в самом начале проект делает большая команда, это снижает
эффективность самой ответственной части работы - определения
174
архитектуры системы (потому что всем разработчиком надо скорее дать
какую-то работу).
2.
3.
4.
Если работу раздать людям и командам еще до того, как завершится
стадия дизайна продукта, не получится создать простые и эффективные
модели взаимодействия между людьми и рабочими группами.
Это приведет к потере независимости, увеличению числа собраний и
совещаний, общему недовольству.
В идеале было бы хорошо сначала набрать маленькую команду, которая
создала бы продуманную архитектуру системы, а уже потом, на
последнюю, шестую часть времени разработки в эту команду можно
было
бы
добавить
новый
персонал
(который
работал
бы
непосредственно над кодированием).
5.
Ужасное предположение: кажется, те команды, перед которыми не
ставят жестких сроков, заканчивают работу быстрее!
3.4.4.15 Проблемы социологии
1. Собрания должны быть небольшими. Для этого нужно сделать так,
чтобы люди не боялись пропускать ненужные им собрания. Самый
простой способ – заранее опубликовать повестку дня, а потом всегда
строго ее придерживаться.
2. Каждому проекту нужна какая-то церемония или ритуал.
3. С помощью церемоний можно концентрировать внимание собравшихся
на основных целях и задачах совещания: сократить состав рабочей
группы, повысить качество программного кода и т.п.
4. Защищайте людей от оскорблений и ругани Начальства.
5. Запомните: в работе страх = гнев. Те руководители, которые любят
кричать на своих подчиненных и всячески унижают и оскорбляют их,
на самом деле просто чего-то очень боятся.
6. Наблюдение: если бы для всех проявление грубости и злости к
подчиненным всегда значило бы, что начальник просто боится, то никто
из начальников не стал бы так себя вести просто из страха, что его
страх станет заметен! (Это, конечно, не решает проблем такого
руководителя, но, по крайней мере, оберегает его подчиненных.)