Реферат: Контроллер системы автоматизации
Программируемый таймер используется для отсчета интервалов времени для контроля выполнения задач и вызова прерываний для самопроверки контроллера – подсчета контрольной суммы ПЗУ. В качестве счетных импульсов к таймеру подведен сигнал с выхода PCLK системного генератора, имеющий частоту, в два раза меньшую, чем тактовая частота процессора. При частоте процессора 5 МГц таймер отсчитывает импульсы с частотой 2,5 МГц. При этом максимальная задержка, обеспечиваемая таймером равна 26 мс.
Программируемый контроллер прерываний служит для упорядочения запросов на прерывание по приоритету и во времени. В данной схеме обслуживается два прерывания: контроль прохождения контрольной точки задачами и самодиагностика. Запросы на прерывание поступают от таймера и подаются на входы IRQ0, IRQ1 и IRQ2.
Для выбора нужной микросхемы при выполнении операций ввода-вывода используется дешифратор DD29, преобразующий два разряда адресной шины AB2 и AB3 в сигналы выбора CS. Сигналы выбора кристалла CS формируются только если один из сигналов IOR и IOW находится в активном состоянии. Необходимым условием выбора внешних по отношению к процессору устройств является равенство нулю младшего адресного разрядаAB0. Для хранения адреса в течение всего цикла шины используются регистры-защелки DD11 и DD12, управляемые сигналов ALE процессора. Шина данных умощняется за счет подключения шинных формирователей.
Память контроллера организована на четырех микросхемах; две из них образуют ПЗУ (DD2 и DD3) и две другие – ОЗУ (DD7 и DD8). Память выполнена в виде двух банков с целью передачи как двухбайтовых слов, так и отдельных байтов. Для выбора соответствующего банка используются сигнал BHE (разрешение старшего банка) и младший разряд адресной шины AB0. Разряд шины адреса AB14 служит для выбора ПЗУ или ОЗУ. Также в качестве управляющих сигналов, задающих направление передачи применяются MEMR и MEMW.
Шина управления состоит из четырех сигналов MEMR, MEMW, IOR, IOW, которые формируются на основе сигналов процессора RD, WR, M/IO.
В таблице 2.1 показано соответствие основных элементов структурной схемы контроллера используемым микросхемам.
Таблица 2.1 – Используемые микросхемы.
Обозначение на схеме | Микросхема |
DD1 | К1810 ГФ84 |
DD2, DD3 | К556 РТ16 |
DD6 | К1810 ВМ86 |
DD7, DD8 | К537 РУ17 |
DD11, DD12 | К1810 ИР82 |
DD13, DD14 | К1810 ВА86 |
DD15, DD16 | К580 ВВ55 |
DD17 | К1810 ВИ54 |
DD18 | К1810 ВН59А |
DD27 | К155 ТМ2 |
DD28 | К155 ИР1 |
DD29 | К155 ИД3 |
РАЗРАБОТКА РАБОЧЕЙ ПРОГРАММЫ КОНТРОЛЛЕРА
Структура данных
В данном проекте фоновым процессом является передача данных. В связи с этим опишем используемые переменные и структуры.
К основной структуре можно отнести два массива. Один из них служит буфером приемника и занимает в памяти ячейки с 0000 по 2FFFh. Указателем в этом массиве служит переменная RecCount. Второй массив SendBuf является буфером передатчика. За его заполнением следит отдельная задача, не рассматриваемая в данном проекте. При заполнении этого буфера данными флаг BufReady устанавливается в единичное состояние. Буфер SendBuf имеет размер 255 байт и располагается с адреса 3000h по адрес 30FFh. Указателем на очередной элемент буфера служит переменная SendCount. В таблице 3.1 описаны используемые переменные.
Таблица 3.1 – Описание используемых переменных
Переменная | Размер | Расположение | Описание |
TimeVar | 3 байта | 3100h | Переменная хранит время в секундах с начала работы контроллера |
BufReady | 1 байт | 3104h | Флаг готовности буфера передатчика |
RecCount | 2 байта | 3106h | Указатель буфера приемника |
SendCount | 2 байта | 3108h | Указатель буфера передатчика |
Sentry | 1 байт | 310Ah | Переменная – точка входа в процедуру передатчика |
FS | 1 байт | 310Ch | Флаг работы процедуры передатчика (анализируется “службой времени”) |
Переменная TimeVar обслуживается счетчиком времени. Ее значение периодически используется для процедурой формирования очередного сообщения.
Переменная Sentry необходима для работы однопроходной формы задачи. В ней хранится метка входа в процедуру.
Переменная FS является сигнализатором того, что процесс передачи в данный момент активен. В случае “зависания” по этим флагам служба времени определяет конфликтную задачу и отображает ее номер на индикаторе.
Счетчик байтов SendCount в процессе передачи сообщения изменяет свое значение от 0 до FF.
Схемы алгоритмов процессов в автономной форме
Схема алгоритма процесса самодиагностики в автономной форме показана на рисунке 3.1.
Рисунок 3.1 – Автономная форма алгоритма процесса самодиагностики.
Процесс самодиагностики инициируется по прерываниям от таймера. Заключается в подсчете контрольной суммы ПЗУ и сравнении ее с известным значением. При несовпадении индикатор готовности гасится и процессор останавливается (вводится в бесконечный цикл)
Схема алгоритма процесса приема в автономной форме показана на рисунке 3.2.
Рисунок 3.2 – Автономная форма алгоритма процесса приема.
На рисунках 3.3 и 3.4 более подробно раскрыт состав блоков “прием символа” и “передача символа”.
Рисунок 3.3 – Состав блока “прием символа”.
Рисунок 3.4 – Состав блока “передача символа”.