- •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 Программирование жки
4.6 Расширитель портов ввода-вывода на базе плис
В SDK-1.1 используется программируемая логическая интегральная схема
(ПЛИС) семейства MAX3000A фирмы Altera (EPM3064A) как расширитель
портов ввода-вывода. Микросхема EPM3064A подключена к системной шине
МК ADuC812. Адресная линия A19 используется как сигнал CS (chip select) для
ПЛИС. Микросхема EPM3064A выбирается, когда на линии A19 логическая
единица. Физический адрес ПЛИС таким образом равен 80000h, что
соответствует восьмой странице внешней памяти.
Микросхема EPM3064A относится к типу CPLD (complex programmable
logic device)
и
имеет
следующие
характеристики:
энергонезависимая
(EEPROM-based), 1250 вентилей, 64 макроячейки, 4 логических блока, 220
МГц, 100 перезаписей.
Рисунок 81. Структурная схема ПЛИС EPM3064A
ПЛИС семейства MAX 3000A содержат:
Логические блоки (Logic array blocks, LABs), которые обеспечивают
построение как комбинационных цепей, так и схем с элементами
памяти.
Макроячейки
(Macrocells).
Макроячейка
(МЯ)
содержит
три
функциональных блока: матрица логических элементов (вентилей),
матрица
распределения
термов,
программируемый
регистр
204
(регистровый выход). Массив элементов И является программируемым,
массив элементов ИЛИ – фиксированным.
Логический расширитель термов (Expander product terms). Если для
реализации функции МЯ недостаточно числа ее собственных термов, то
можно воспользоваться дополнительными ресурсами двух типов ЛР:
общий (разделяемый) и параллельный.
Программируемая матрица соединений (Programmable interconnect
array, PIA)
Блоки ввода-вывода (I/O control blocks)
В очень упрощенном виде ПЛИС представляет собой набор макроячеек и
механизм для организации связи между ними (PIA). Информация о связях
между макроячейками хранится в энергонезависимой памяти находящейся
внутри самой микросхемы. Для программирования EPM3064A используется
специальная САПР QuartusII (Altera). Логическая схема расширителя портов
ввода-вывода была нарисована в этой САПР и преобразована в базис
макроячеек ПЛИС и, далее, в конфигурационный файл, необходимый для
соединения нужных логических ячеек ПЛИС. Конфигурационный файл
доставляется в память ПЛИС через интерфейс JTAG (IEEE 1149.1).
В стенде SDK-1.1 ввод-вывод данных осуществляется с помощью портов
микроконтроллера (см. подраздел 4.5.2) и микросхемы ПЛИС, которая имеет 8
регистров,
отображаемых
во
внешнее
адресное
пространство
данных
процессора. В старых версиях стенда SDK-1.1 используется упрощенная
конфигурация регистров микросхемы ПЛИС. В описании регистров будут
указаны различия между полной и упрощенной конфигурациями регистров
ПЛИС. К ПЛИС в SDK-1.1 подключены:
Клавиатура
ЖКИ
Линейка светодиодов
Звуковой излучатель
16 дискретных портов ввода-вывода
Таблица 14. Перечень регистров расширителя портов ввода-вывода
205
Адрес |
Регистр |
Доступ |
Назначение |
|
|
|
|
|
|
|
|
|
|
|
080000H |
KB |
R/W |
Регистр клавиатуры. |
|
|
|
|
|
|
|
|
|
|
|
080001H |
DATA_IND |
R/W |
Регистр шины данных ЖКИ. |
|
|
|
|
|
|
|
|
|
|
|
080002H |
EXT_LO |
R/W |
Регистр данных параллельного порта (разряды 0..7). |
|
|
|
|
|
|
|
|
|
|
|
080003H |
EXT_HI |
R/W |
Регистр данных параллельного порта (разряды 8..15). |
|
|
|
|
|
|
|
|
|
|
|
080004H |
ENA |
W |
Регистр управления портами ввода-вывода, звуком, сигналом INT0 и прерыванием от клавиатуры. |
|
|
|
|
|
|
|
|
|
|
|
080006H |
C_IND |
W |
Регистр управления ЖКИ. |
|
|
|
|
|
|
|
|
|
|
|
080007H |
SV |
W |
Регистр управления светодиодами. |
|
|
|
|
|
|
|
|
|
|
|