- •Проектирование микроконтроллеров
- •Isbn 5-7629-0812-7 сПбГэту «лэти», 2008
- •Список использованных сокращений
- •1.Цели и задачи курсового проектирования. Уточнение задания
- •2.Разработка структурной схемы контроллера Типы разрабатываемых контроллеров-имитаторов
- •2.1.Схемы алгоритмов функционирования контроллеров
- •2.2.Варианты заданий на курсовой расчет
- •2.3.Спецификация входных и выходных сигналов контроллеров
- •2.4.Параметры радионавигационного сигнала
- •2.5.Форматы пакетов управления и пакета «старт»
- •2.6.Упрощенная структурная схема контроллера
- •3.Разработка функциональных блоков контроллера
- •3.1.Блок cpu
- •3.2.Блок памяти
- •3.3.Блок приема пакетов управления
- •3.4.Входные сигналы параллельного интерфейса блока приема управляющих пакетов и пакета «старт»
- •3.5.Последовательный интерфейс для приема пакетов управления
- •3.6. Блок индикации
- •3.7.Электрический расчет драйверов сид-дисплея
- •3.8.Особенности построения сид-индикатора на приборах с оа
- •3.9.Блок формирования временного паттерна
- •3.10.Реализация интерфейса для передачи дельта-импульсов
- •3.11.Табличное представление временного паттерна
- •Другие варианты построения таймера временного паттерна, встречающиеся в курсовом расчете
- •3.12.Селектор адреса
- •4.Уточненная структурная схема контроллера
- •5.Разработка программного обеспечения
- •5.1.Программный модуль курсового расчета
- •5.2.Структура данных модуля
- •5.3.Конструирование программного модуля
- •6.Описание шаблонов программного обеспечения, представленного на cd
- •Последовательность действий для запуска исполняемого модуля программы
- •Варианты управления контроллером
- •6.1.Варианты шаблонов формирования временного паттерна
- •6.2.Варианты шаблона "Динамическая индикация"
- •Список иллюстраций Список таблиц
- •Список литературы
- •Типы схем
- •Проектирование микроконтроллеров
- •197376, С.-Петербург, ул. Проф. Попова, 5.
Варианты управления контроллером
Каталоги этого раздела рассматривают различные варианты параллельного и последовательного ввода пакетов управления и пакета «Старт». В отличие от заданий на курсовой расчет в шаблонах используется пакеты управления из 5 байт.
Здесь приведены следующие варианты:
ввод без квитирования (ctr2);
ввод-вывод по прерыванию (ctr1);
программный ввод-вывод (ctr3);
последовательный ввод-вывод (srl).
Ввод без квитирования. Данный вариант рассматривает простейший ввод данных по прерыванию без квитирования, реализуемый через порты прибора 8355 (аналог прибора 8755, в котором использована память с записью содержимого при изготовлении).
Замечание. Все файлы этого варианта ввода имеют одинаковое имя (ctr2): различаются они по цифровым индексам или типам.
Данные представлены в виде файлов ctr2.dat, они поступают на вход port B 8355. Строб синхронизации (файл ctr2.stb) поступает на вход запроса прерывания RST7.5 (рис. 6.1). Прерывание, возбужденное стробами синхронизации, вызывает ППОП, которая принимает байты данных и сохраняет их в буфере ввода. Ответный сигнал готовности контроллера к работе в составе имитатора сигналов передается через port A 8355. Вариант предполагает использование 5-байтового пакета управления, а синхронный режим ввода предъявляет особые требования к структуре и временным параметрам синхропоследовательности. В шаблоне используется синхропоследовательность в виде текста
000000000000000000000000000001000001000001000001000001,
которая запускается вместе с программой и подключается к входу прерывания через интервалы, заданные в файле конфигурации и настройки ctr2.zgr. Последовательность содержит пять единичных символов по числу байтов в пакете управления. Предполагается использование этой последовательности с автоповтором при вводе каждого пакета управления. Единичный бит запроса прерывания выбирается из младшего бита файла данных crt2.stb.
|
Рис. 6.37. Схема эмуляции ввода без квитирования пакетов управления |
= 300 cycles. Длительный начальный интервал между пачками предназначен для выполнения:
операций инициализации программы и разрешения прерывания при запуске,
декодирования принятой управляющей последовательности в промежутках между пакетами,
настройки контроллера на заданные рабочие параметры и формирования ответного байта готовности контроллера к работе при получении «своего» пакета управления.
Временная диаграмма функционирования модуля представлена на рис. 6.2.
|
Рис. 6.38. Временная диаграмма функционирования модуля приема пакетов управления |
Как видно из временной диаграммы, успешная работа схемы возможна, если длительность подпрограммы обработки прерывания (TППОП) будет меньше периода повторения стробов входного пакета (Tstb). Файл данных содержит текст F123я F249я F309я Sя, который соответствует поступлению трех пакетов управления и пакета «Старт».
Замечание. Буква «я» в пакетах управления соответствует коду FFh при его представлении в текстовом виде.
Пакеты управления предназначены для задания режимов работы контроллеров-имитаторов типа F, номера которых 31h = 49, 32h = 50, 33h = 51, выбраны исходя из удобства представления в текстовом виде. Демо-программа предназначена для контроллера типа F с номером 50. Код именно этого пакета будет зафиксирован в пяти байтах в начале буфера BUF (объемом 10 байт), следующие 5 байт будут использованы для временного хранения «чужих» пакетов управления и окончательного пакета «Старт». Схема алгоритма программы приведена на рис. 6.3.
После выполнения инициализации и разрешения прерывания от запросов входного устройства (блоки 1-2) на схеме алгоритма представлены 4 варианта ввода пакетов.
Первый вариант представлен последовательно выполняемыми блоками 3...6. Здесь выполняется прием пакета из 5 байт (ожидание приема по прерыванию полного пакета от ППОП1 анализируется в ПП WAIT_RDY), определяется принадлежность пакета к своему или чужому контроллеру (блок 5) и при выявлении чужого пакета управления производит повторную инициализацию указателей и счетчиков (блок 6), с переходом к вводу следующего пакета. Последовательность выполняется многократно;
Второй вариант представлен последовательно выполняемыми блоками 3...10. Этот вариант выполняется только один раз для «своего» пакета управления. Он предполагает не только ввод 5 байт пакета управления и их декодирование (блоки 4, 5), но и вывод ответного байта готовности контроллера к работе (ПП OUT_READY).
Далее производится настройка органов управления контроллера на заданные параметры (ПП TURN_WORK), установка флага разрешения приема стартового пакета (Strt_Enable = 1), установка указателя записи на следующие 5 байт в буфере ввода и задание значения счетчика (Count = 1) для ввода и опознавания пакета «Старт».
Третий вариант начинается непосредственно после получения «своего» пакета управления и представлен последовательностью блоков 10-11-12-13-3-4. Он отличается от первого варианта тем, что для идентификации пакета «Старт» и пропуска чужих пакетов он содержит фрагмент идентификации (блоки 10...12). Если первый байт пакета – код 00h, то поступил пакет «Старт», если байт отличен от 00h, то получен новый «чужой» пакет управления, который должен быть пропущен. Выполняется многократно;
|
Рис. 6.39. Схема алгоритма синхронного ввода пакетов управления |
Четвертый вариант начинает работать, если в блоке 12 обнаружен принятый код, равный нулю, т. е. код пакета «Старт». Он представлен последовательностью 12-14-15-16, которая реализует прием пакета из 3 байт и размаскирование запросов прерывания от таймера временного паттерна (блок 17).
Замечание. Некоторые ПП в шаблоне не реализованы, другие реализованы частично. Предполагается, что обучающийся выполнит программирование самостоятельно. В частности, в ПП WAIT_RDY (блок 15) не реализована команда установки сигнала SOD = 1 при приеме пакета «Старт».
Схема алгоритма ППОП1, которая вводит каждый байт по прерыванию от входной линии стробов, приведена на рис. 6.4. В ППОП производится чтение принятого байта и запись в буфер для всех байтов пакета.
Для связи ППОП1 и главной программы (рис. 6.3) используется флаг flag_RDY, который устанавливается в 1 после приема полного пакета управления. Исходное состояние flag_RDY = 0 устанавливается при инициализации.
Состояние flag_RDY непрерывно анализируется в ПП WAIT_RDY главной программ (рис. 6.4) и при обнаружении flag_RDY = 1 выполняется передача управления в блоки 4 или 12 схемы алгоритма (рис. 6.3). Предварительно ПП WAIT_RDY очищает флаг (flag_RDY = 0) для приема следующего пакета управления).
Для анализа работоспособности исполняемого файла данной программы подготовлены два командных файла ctr20. zgr и ctr21. zgr. Оба файла загружают программу в среду симулятора-отладчика, настраивают окна дампа памяти на область буфера и устанавливают точки останова. Причем первый устанавливает постоянную точку останова на входе в ППОП и позволяет проанализировать вводимые байты пакетов управления, а второй устанавливает постоянную точку останова в конце исполняемого кода после приема пакета «Старт» и позволяет убедиться в правильности настройки параметров пакета управления.
Подробности командных файлов приведены в файле README2C.ZGR. Стробы также представлены в двух видах (CTR21.STB и CTR20.STB).
Ввод-вывод по прерыванию (ctr1). Вариант ввода-вывода по прерыванию с квитированием предполагает использование прибора 8155, входящего в комплект MSC-85 и имеющего порты ввода-вывода, которые поддерживают соответствующий режим (режимы Alt3, Alt4). Структурная схема эмуляции ввода пакетов управления по прерыванию с квитированием представлена на рис. 6.5.
Для ввода используются такой же файл данных (CTR1.DAT), как и в ранее рассмотренном варианте.
Строб (CTR1.STB) генерируется текстовой последовательностью 10101010101111111111 с автоповтором. Темп автоповтора задается командными файлами симулятора-отладчика CTR10.ZGR и CTR10.ZGR.
|
Рис. 6.40. Схема алгоритма ППОП |
|
Рис. 6.41. Схема эмуляции ввода по прерыванию с квитированием |
При изучении этого варианта ввода пакетов управления целесообразно обратить внимание на временную диаграмму ввода (рис. 6.6) и сопоставить ее с образцом, представленным в [3 рис. 3.124]. Временная диаграмма построена для ввода первых двух байтов из файла CTR1.DAT, которые относятся к входному пакету управления F123я. Темп ввода (200 cycles) и временной паттерн задается файлом CTR11.ZGR. Внимательное изучение временной диаграммы позволяет заметить некоторое отличие наблюдаемого временного паттерна от описанного. Оно состоит в увеличении в два раза 1-го положительного интервала относительно ожидаемого значения в 200 циклов.
Эта особенность симулятора-отладчика наблюдается для разных темпов подключения входного файла при задании стробов, начинающихся с единичного кода.
Вторая особенность состоит в том, что в режиме ввода с квитированием чтение порта прибора 8155 должно производиться при подготовленных данных на пинах порта.
Чтобы обеспечить такую подготовку в программе инициализации (до начала чтения данных в ППОП) производится предварительное чтение 1-го
|
Рис. 6.42. Временная диаграмма ввода по прерыванию пакета управления |
байта из файла (на пинах порта PB устанавливается байт 46h). ППОП при выполнении 1-го чтения вводит этот подготовленный байт и выставляет на пины следующий (байт 31h), чтение которого будет производиться при очередном вызове. Указанная особенность показана на рис. 6.6 в строках RD# (PB) и PB.
Программный ввод-вывод. Этот вариант подробно рассмотрен в лабораторном практикуме [6] и используется при выполнении лабораторного цикла дисциплины «Цифровые устройства и микропроцессоры». Шаблон и варианты его исследования подробно описаны там же. Здесь следует лишь напомнить, что все файлы этого варианта имеют единое имя (CTR3) и загрузка шаблона производится через меню файлового менеджера путем последовательного выбора разделов: «ЦМПУ 2000 Меню шаблонов курсового расчета Вариант "Управления контроллером" Программный ВВ (ctr3)».
Последовательный ввод-вывод. В составе симулятора-отладчика нет контроллера последовательного ввода-вывода, поэтому, чтобы иметь возможность изучить этот вариант ввода управляющих пакетов, в шаблонах представлена программная реализация последовательного ввода. В качестве порта ввода последовательного кадра использован пин R7.5. Выбор этого пина обусловлен наличием входного регистра и команд, поддерживающих битовый ввод-вывод (RIM, SIM) с этого пина. Первый символ последовательного кадра (буква F), с которого начинаются пакеты управления имитаторов типа F, представлен на рис. 6.7. Кадр состоит из 10 интервалов равной длительности (T0). Начальный интервал (Str) всегда имеет низкий уровень после высокого уровня паузы между пакетами, конечный интервал (Stp) всегда имеет высокой уровень. Передаваемый байт начинается с младшего бита.
|
Рис. 6.43. Структура последовательного кадра при передаче ASCII-символа F |
Входной пакет, используемый в шаблоне (SRL4.DAT), представлен ниже. (Жирностью выделен 1-й символ пакета – F.)
S 1 0 0 1 1 1 0 1 P P S 0 1 1 1 0 0 1 1 P P S 1 0 1 1 0 0 1 1 P P S 0 0 1 1 0 0 1 1 P P S 0 0 0 0 0 0 0 0 P P 0 0 0 0 0 0 S 1 0 0 1 1 1 0 1 P P S 1 0 1 1 0 0 1 1 P P S 1 1 0 1 0 0 1 1 P P S 0 1 1.
Из этого текста, имитирующего управляющую последовательность, используется только младший бит каждого символа. Введение букв S и P применяется для визуального различия в тексте границ кадров. Буква S (код 53h) и цифра 1 (код 31h) предназначены для ввода бита 0, буква P (код 50h) и цифра 0 (код 30h) используются для ввода бита 1 (используется инверсное представление кадра).
Замечание. Инвертирование последовательного кадра сделано для создания прерывания по входу R7.5 при поступлении стартового бита, остальные биты кадра читаются программно.
Временная диаграмма обработки кадра приведена на рис. 6.8.
|
Рис. 6.44. Временная диаграмма обработки кадра последовательной посылки |
Полученный управляющий пакет обрабатывается так же, как и в предыдущих вариантах.
