- •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.10 Подсистема синхронизации
Подсистема синхронизации отвечает за формирование устойчивых
сигналов синхронизации внутренних блоков процессора и внешних цепей
(блоков) управляющих вычислительных систем, построенных на данном
процессоре.
К внутренним блокам относятся:
Вычислительное ядро;
101
Скорость |
fosc, МГц |
SMOD |
Таймер 1 (TH1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19200 бод |
11.059 |
1 |
FD |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9600 бод |
11.059 |
0 |
FD |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4800 бод |
11.059 |
0 |
FA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2400 бод |
11.059 |
0 |
F4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Периферийные устройства (таймеры/счетчики, блоки CCP, АЦП, ЦАП,
приемопередатчики и др.);
Схемы рестарта («сброса»).
Для
синхронизации
внешних
схем
(периферийных
контроллеров,
интерфейсных микросхем, блоков программируемой логики и др.) из
процессора на специальную ножку выводится сигнал синхронизации.
Обобщенная
структура
подсистемы
синхронизации
встраиваемых
процессоров приведена на рисунке.
Подсистема синхронизации включает блок генераторов синхроимпульсов
(основной и вспомогательный генераторы, схему формирователя выходного
сигнала
синхронизации)
и
формирователь
внутренних
синхросигналов
процессора (коммутаторы К1 и К2, делители, схему «сброса»).
К д ел
Выходной сигнал
синхронизации
Выходной делитель
Сигнал от внешнего
генератора
Блок основного генератора
Время-
Умно-
задающая
цепь
Генератор
житель
PLL
Делитель основной
синхронизации
К1
Схема
Время-
стоп
стоп
К умн
«Сброса»
задающая
цепь
Генератор
Делитель вспомогательной
синхронизации
Блок вспомогательного генератора
К2
Рисунок 47. Подсистема синхронизации
Блок основного генератора вырабатывает сигналы синхронизации для
вычислительного ядра, большинства периферийных устройств, схемы рестарта.
Блок включает собственно схему генератора, внешнюю или встроенную
времязадающую цепочку для генератора и (не всегда) схему умножителя
частоты.
Основная частота синхронизации может изменяться в очень широких
пределах – от десятков килогерц до десятков и сотен мегагерц. Невысокая
частота
(до
1
МГц)
используется
в
системах
с
пониженным
энергопотреблением.
В зависимости от выбранной рабочей частоты, требований точности и
стабильности параметров сигнала синхронизации необходимо могут быть
использованы различные типы времязадающих цепочек, которые в свою
очередь требуют перенастройки режимов работы генераторов. Выбор режима
102
ssync
psync
К вычислительному ядру
работы
генератора
и
типа
времязадающей
цепочки
осуществляется
программированием специальных конфигурационных бит во встроенной
памяти программ микропроцессора.
Времязадающие
цепочки
подключаются
к
специальным
выводам
микропроцессора. В некоторых моделях имеются встроенные цепочки.
Наиболее часто используются следующие типы времязадающих цепочек:
1. Кварцевый резонатор: частоты от десятков килогерц до десятков
мегагерц,
высокая
стабильность
частоты
(погрешность
–
сотые/тысячные доли процента), относительно высокая цена;
2. Пьезокерамический резонатор: частоты от десятков килогерц до единиц
мегагерц, средняя стабильность частоты (погрешность – десятые доли
процента), невысокая цена;
3. LC-цепь: частоты единицы-сотни килогерц, средняя стабильность
частоты (погрешность – десятые доли/единицы процента), невысокая
цена;
4. RC-цепь: частоты единицы-сотни килогерц, низкая стабильность
частоты (погрешность – единицы процента), низкая цена, часто
реализуется как встроенная времязадающая цепочка;
В случаях высокой частоты (свыше 30 МГц) рекомендуется встроенный
генератор отключать полностью и подключать внешний. Так же можно
поступать, если от одного внешнего генератора синхронизируется несколько
схем, включая процессор.
Работа генератора на высокой частоте ведет за собой следующие
трудности: сложность «запуска» встроенного генератора (на частотах свыше 30
МГц), специальные требования к трассировке и качеству печатных плат,
высокий уровень помех от внешних высокочастотных цепей (например, цепей
подключения кварцевого резонатора), невозможность оперативной перестройки
частоты. Для избежания этих проблем почти во всех 16/32-разрядных
процессорах используются встроенные цифровые умножители частоты с
программируемым коэффициентом умножения. Наиболее распространенным
умножителем на сегодняшний день является схема синтезатора частоты с
фазовой автоподстройкой (PLL).
От основного генератора синхросигнал выводится на ножку микросхемы и
может использоваться для тактирования внешних схем. Для снижения частоты
выходного сигнала в этой цепи может использоваться управляемый или
фиксированный делитель.
Блок вспомогательного генератора обеспечивает тактирование части
периферийных устройств, обычно таймеров-счетчиков (PICmicro, ATmega,
Fujitsu MB90), а в некоторых режимах может принимать на себя функции
основного генератора (синхронизацию ядра, периферии, схем «сброса»).
Вспомогательный генератор обычно работает на частотах до 1 МГц. В случае
использования его как базы часов реального времени – на частоте 32768 Гц.
103
По
структуре
вспомогательный
генератор
аналогичен
основному
генератору, но почти никогда не используется умножитель частоты.
Ядром формирователя внутренних сигналов являются делители частоты
основного и вспомогательного генераторов. С их выходов берутся сигналы
тактирования ядра и схемы сброса ssync и сигналы синхронизации
периферийных модулей psync. Обычно все внутренние сигналы (ssync и psync)
получаются делением частоты генераторов на фиксированный коэффициент, но
в некоторых процессорах коэффициенты деления могут программироваться,
например, если необходимо снизить частоту тактирования ядра в режимах
пониженного энергопотребления.
Коммутаторы синхросигналов К1 и К2 используются для выбора
источника
тактирования
внутренних
схем
процессора:
основного
или
вспомогательного генератора. В обычном режиме большинство подсистем
синхронизируется от основного генератора, а вспомогательный используется
как временная база таймеров, часов реального времени или сторожевого
таймера. В случае нестабильности работы основного генератора или при
необходимости перейти на более низкие частоты функционирования, например,
в режимах энергосбережения, можно подключить вход делителя основного
генератора на выход вспомогательного генератора.