- •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.2.4.7 Операция чтения
Операция чтения инициируется точно так же, как и операция записи, за
тем исключением, что бит чтения/записи в слове адреса устройства
устанавливается равным 1. Существует три операции чтения: чтение с текущего
адреса, чтение в режиме произвольного доступа и последовательное чтение.
64
Чтение с т е к у щ е г о а д р е с а
Внутренний счетчик адреса содержит последний адрес, к которому
производилось обращение во время операции чтения или записи, увеличенный
на единицу. Этот адрес остается корректным в промежутке между операциями
до тех пор, пока микросхема работает (питание включено). Во время чтения
счетчик адреса «перепрыгивает» с последнего байта последней страницы
памяти на первый байт первой страницы.
После передачи микроконтроллером байта адреса устройства с битом
чтения/записи, установленным в «1», и подтверждения его модулем E2PROM,
следующим микроконтроллеру передается байт данных по текущему адресу
памяти. Микроконтроллер в ответ сигнализирует об окончании чтения:
посылает NO ACK и стоп-сигнал (см. рисунок).
Рисунок 16. Чтение с текущего адреса
Список обозначений:
READ – чтение;
ACK – сигнал подтверждения;
NO ACK – отсутствие подтверждения;
SDA LINE – линия передачи данных SDA;
DATA – данные;
DEVICE ADDRESS – адрес устройства.
Чтение в режиме произвольного доступа
Рисунок 17. Чтение в режиме произвольного доступа
*Эти биты для памяти EEPROM емкостью 1 К могут быть любыми.
65
Список обозначений:
READ – чтение;
WRITE – запись;
ACK – сигнал подтверждения;
SDA LINE – линия передачи данных SDA;
DATA – данные;
DEVICE ADDRESS – адрес устройства;
WORD ADDRESS – адрес ячейки памяти;
DUMMY WRITE – холостая запись (установка счетчика адреса).
Как только слово адреса устройства и адрес слова данных будут приняты
2
После чего начинается чтение с текущего адреса, только что установленного
(см. предыдущий раздел).
Чтение в режиме последовательного доступа
Последовательное чтение данных инициируется в процессе либо чтения с
текущего адреса, либо чтения в режиме произвольного доступа – чтением
последовательности байтов данных из EEPROM. Когда счетчик адреса
достигнет последнего байта последней страницы памяти, он «перепрыгнет» на
первый байт первой страницы. Операция последовательного чтения будет
остановлена в том случае, если микроконтроллер сигнализирует об окончании
чтения: посылает NO ACK и стоп-сигнал (см. рисунок).
Рисунок 18. Последовательное чтение
Список обозначений:
READ – чтение;
ACK – сигнал подтверждения;
NO ACK – отсутствие подтверждения;
SDA LINE – линия передачи данных SDA;
DATA – данные;
DEVICE ADDRESS – адрес устройства.
66
E PROM, микроконтроллер должен сгенерировать еще один старт-сигнал.
2.2.5
Порты ввода-вывода
Каждый процессор для встраиваемых применений имеет некоторое
количество внешних линий ввода-вывода, подключенных к внешним выводам
микросхемы и называемых внешними портами. Одиночные (одноразрядные,
состоящие из одной линии) порты ввода-вывода объединяются в группы,
обычно, по 4, 8 или 16 линий, которые называются параллельными портами.
Разрядность параллельных портов может быть нестандартной, например, 5-
разрядный порт у микроконтроллера PIC16F84.
Через порты процессорное ядро взаимодействует с различными внешними
устройствами – считывает значения входных сигналов и устанавливает
значения выходных сигналов.
Во встраиваемых системах в качестве внешних устройств чаще всего
рассматриваются датчики, исполнительные устройства, устройства ввода-
вывода данных оператором, устройства внешней памяти.
По типу сигнала различают порты:
1. Дискретные (цифровые) – используются для ввода-вывода дискретных
значений логического «0» или «1».
В большинстве современных процессоров для встраиваемых применений
поддерживается как независимое управление каждой линией параллельного
порта, так и групповое управление всеми разрядами. Так как схемотехника
отдельных линий в рамках одного 4-х, 8-ми или 16-разрядного порта
одинакова, то дальше будет рассматриваться устройство и функционирование
одиночного разряда.
2. Аналоговые – через них вводятся сигналы на вход АЦП или других
аналоговых схем и выводятся выходные сигналы ЦАП или других
аналоговых схем.
Аналоговые порты (или перестраиваемые порты в аналоговом режиме) –
используются подключения внешних сигналов к ЦАП, АЦП или аналоговым
компараторам, встроенным приемопередатчикам. В режиме работы с ЦАП,
АЦП или компаратором порты обычно позволяют вводить сигнал в диапазоне
от 0В- до Uпит+ (индексы + и – означают чуть больше и чуть меньше,
примерно на 200..300мВ). В режиме приемопередатчика параметры сигналов
определяются конкретным интерфейсом. В большинстве случаев аналоговые
или цифровые линии подключения к приемопередатчикам вообще не называют
портами, хотя они по схемотехнике и по месту в структуре процессора близки к
универсальным портам ввода-вывода. Реализация входных и выходных
каскадов зависит от схемы АЦП, компаратора, ЦАП или приемопередатчика.
3. Перестраиваемые – настраиваются на аналоговый или цифровой режим
работы.
По направлению передачи сигнала различают:
67
1. Однонаправленные порты, предназначенные только для ввода (входные
порты, порты ввода) или только для вывода (выходные порты, порты
вывода).
2. Двунаправленные порты, направление передачи которых определяется
в процессе программно-управляемой настройки схемы.
3. Порты с альтернативной функцией. Отдельные линии этих портов
связаны со встроенными периферийными устройствами, такими, как
таймер, контроллеры последовательных приемопередатчиков. Если
соответствующий периферийный модуль не задействован, то линии
можно использовать как обычные порты, если модуль активизирован,
то связанные с ним линии автоматически или «вручную» (программно)
конфигурируются в соответствии с функциональным назначением и не
могут быть использованы в качестве универсальных портов ввода-
вывода. В некоторых случаях порты могут использоваться только для
связи с периферийным модулем (например, входы АЦП в некоторых
процессорах).
По алгоритму обмена различают порты:
1. С
программно
управляемым
(программным)
вводом-выводом
–
установка
и
считывание
данных
определяется
только
ходом
вычислительного процесса. Нет защиты от повторного считывания-
записи одного и того же (не изменившегося) значения на выводе и
считывания-записи во время переходного процесса на выводе.
2. Со стробированием – каждая операция ввода вывода подтверждается
импульсом синхронизации (стробом) со стороны источника сигнала
(при выводе – процессор, при вводе – внешнее устройство). Считывание
информации приемником происходит только по стробу, что позволяет
защититься от приема данных во время переходного процесса входного
сигнала. Пример: порт PSP (Parallel slave port) в ОКМЭВМ PICmicro.
3. С полным квитированием. Данный режим чаще всего используется для
обмена данными с другой вычислительной системой по параллельной
шине. Кроме сигналов синхронизации со стороны передатчика
используются сигналы подтверждения (готовности к следующему
обмену)
со
стороны
приемника.
Это
позволяет
управлять
интенсивностью обмена обоим взаимодействующим сторонам и
предотвращает потерю данных, когда одна из них перегружена. Пример
порта с квитированием – порт LPT персонального компьютера. Во
встроенных
модулях
процессоров
данный
режим
чаще
всего
реализуется программно-аппаратно.