31243-1 (Контроллер системы автоматизации), страница 2

2016-07-31СтудИзба

Описание файла

Документ из архива "Контроллер системы автоматизации", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "31243-1"

Текст 2 страницы из документа "31243-1"

сигнал STROBEIN – вывод РС4;

сигналы BUSYIN и ACKNLGIN – выводы РС0 и РС1 соответственно.

При приеме байта, он поступает на линии порта А (сигналы DIN 0 – DIN 7). Для передачи управляющих символов используется порт В. При этом служебные сигналы подключаются к следующим линиям:

сигнал STROBEOUT – вывод РС2;

сигналы BUSYOUT и ACKNLGOUT – выводы РС5 и РС6 соответственно.

Для передачи информации используется параллельный порт ввода-вывода PPI (DD16) На нем также реализован интерфейс ИРПР-М. Данные выдаются через порт А. Сигнал STROBE поступает в линию связи через нулевой разряд порта В. Сигналы готовности приемника BUSY и ACKNLG поступают в порт С (разряды 1 и 0 соответственно). Так как импульс ACKNLG имеет длительность около 5 мкс, то его программная фиксация в режиме параллельной обработки нескольких задач затруднена. Предусмотрена аппаратная защелка этого сигнала с помощью триггера. После получения сигнала ACKNLG триггер программно сбрасывается. Аналогичная схема присутствует и в блоке приема данных.

Индикатор готовности выполнен на дешифраторе DD28. Его адресные входы подсоединены к линиям 4, 5, 6 порта С микросхемы DD16. Регистр в нормальном рабочем режиме управляет индикатором готовности системы, а в случае конфликтной ситуации отображает номер “зависшей” задачи.

Программируемый таймер используется для отсчета интервалов времени для контроля выполнения задач и вызова прерываний для самопроверки контроллера – подсчета контрольной суммы ПЗУ. В качестве счетных импульсов к таймеру подведен сигнал с выхода 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 – Состав блока “передача символа”.

Алгоритм приема информации реализует прием пакетов в формате X-Modem.

Контроль получаемых сообщений реализуется с помощью подсчета контрольной суммы.

На рисунке 3.5 показана схема алгоритма передачи информации. Передатчик начинает работать, если буфер данных заполнен символами. Об этом сигнализирует флаг BufReady. После окончания передачи программа должна снять этот флаг – это служит запросом для процедуры подготовки данных.

Рисунок 3.5 – Автономная форма алгоритма процесса передачи.

Передача осуществляется порциями по 256 байт. Первые три байта – текущее время в секундах от начала работы контроллера.

Задача “службы времени” разбита на две части: Одна из них следит за текущим временем и формирует переменную, содержащую значение времени с момента включения контроллера, а другая часть контролирует отсутствие “зависаний” выполняемых задач.

На рисунке 3.6 показаны схемы алгоритмов для обеих частей задачи.

Рисунок 3.6 – Автономная форма алгоритмов процессов “службы времени”.

Схемы алгоритмов рабочей программы. Фоновый процесс

В графической части представлена схема алгоритма процесса передачи в однопроходной форме. После размыкания циклов задачи получилось две ветви. Первая – ожидание заполнения буфера данных. Вторая – собственно посылка буфера. За один проход задачи посылается один символ. Выбор ветви осуществляется с помощью переменной Sentry. Обмен информацией идет по стандарту интерфейса ИРПР-М. При посылке байта для соблюдения необходимых временных интервалов формируются паузы не менее 0,5 мкс. При проверке готовности приемника происходит логическое сложение сигналов BUSY и ACKNLG, и если результат равен нулю, выполняется отправка одного байта. По окончании передачи всего сообщения флаг готовности буфера сбрасывается.

3.4 Схемы алгоритмов рабочей программы. Подпрограмма обработки прерываний

Подпрограмма самодиагностики запускается по прерыванию от таймера. В однопроходном варианте присутствует три ветви. Первая ветвь пустая. Она выполняется диспетчером, если не возникало прерывания от таймера. Вторая ветвь служит для инициализации счетчика контрольной суммы. Обнуляется переменная – указатель и переменная, запоминающая текущее значение КС. В третьей ветви выполняются действия по суммированию содержимого ПЗУ. При достижении конечного адреса происходит сравнение полученного значения контрольной суммы с проверочным. При совпадении процедура устанавливает точку входа на первую ветвь, включает индикатор готовности и заканчивает работу. При ошибке КС индикатор готовности гасится и процессор зацикливается.

Текст фрагмента рабочей программы

Фрагмент программы, представленный в приложении полностью соответствует описанной выше схеме алгоритма. Программа выполнена в виде самостоятельного модуля. Трансляция проводилась с помощью ассемблера TASM 5.0. Результаты работы транслятора показаны на рисунке 3.7.

Рисунок 3.7 – Результаты работы транслятора

Программа состоит из четырех основных частей. В первой части происходит сохранение используемых регистров и опрос переменной, хранящей точку входа в основное тело программы. При этом происходит выбор одной из ветвей прохода задачи. Вторая часть реализует первую ветвь алгоритма и начинается сметки Е0. Здесь осуществляется проверка готовности буфера и, при необходимости, изменение точки входа. Третья часть программы реализует вторую ветвь алгоритма. Если приемник готов, то выполняется посылка одного байта и изменение счетчика символов. И, наконец, четвертая часть программы (метка EXLABEL) завершает проход задачи, восстанавливает регистры и передает управление вызвавшей программе.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее