Смекни!
smekni.com

Микропроцессорная система управления предназначенная для использования на лесопильном заводе (стр. 2 из 6)

Ниже следуют пояснения по каждому блоку рис.5.

Блок центрального процессора, память и шины системы

“Сердцем” всей МП системы является микропроцессор (МП) Z80 (или его отечественный аналог – КР1856ВМ1).

Вкратце опишем используемые в МП системе выводы микропроцессора.

Сигналы, которые активны в нуле, будем отмечать суффиксом “#”.

- CLK – вход тактовой частоты 4 МГц;

- RESET# – вход сброса (активен в нуле);

- MREQ# – выход запроса памяти. Нулевое состояние свидетельствует, что микропроцессор обращается к памяти для чтения или записи;

- IORQ# – выход запроса портов ввода/вывода. Нулевое состояние означает, что идет обращение к портам;

- RD# – чтение. Активен, когда микропроцессор инициирует операцию чтения из памяти или из устройства ввода/вывода;

- WR# – запись. То же, что и RD#, но для операции записи;

- A0-A15 – шина адреса. Имеет 16 линий и используется для адресации к максимум 65535 ячейкам памяти и устройствам ввода-вывода;

- D0-D7 – шина данных. Восемь двунаправленных линий, используемых, для ввода/вывода данных микропроцессора, памяти и периферийных устройств.

- INT# – вход прерывания. Нуль на этом входе означает наличие запроса на прерывание от внешнего устройства.

- M1# – выход первого машинного цикла. Нуль на этом выходе показывает, что микропроцессор производит выборку кода операции. В нашей системе этот выход совместно с IORQ# служит для подтверждения прерывания.

Тактовым генератором служит мультивибратор, собранный на двух инверторах. Времязадающими цепями являются конденсатор, сопротивления и резонатор. Частота генератора 16 МГц (как и резонатора Z1). Затем эта частота двумя триггерами делится на 4, получается тактовая частота 4 МГц, которая и подается на вход CLK. Деление частоты нужно для большей ее точности.

Кнопка “RESET” в нажатом состоянии подает на соответствующий вход микропроцессора сигнал сброса. Для устранения эффекта “дребезга контактов” сигнал RESET# подается через D-триггер, записываясь в него по фронту первого же тактового импульса с линии CLK.

Для организации шин адреса (ША), данных (ШД), управления (ШУ) микропроцессорной системы к соответствующим выходам микропроцессора подключены буферные элементы. Их нагрузочная способность гораздо больше нагрузочной способности выводов микропроцессора. Они являются повторителями и “цифровыми усилителями” сигналов микропроцессора. Для ША это два 8-разрядных регистра ИР82. Для ШД – специальная микросхема – 8-разрядный двунаправленный шинный формирователь с возможным Z-состоянием выводов.

Четыре сигнала управления (WR#, RD#, MREQ#, IORQ#) сначала подвергаются дешифрации. Объединенные по схеме ИЛИ сигналы RD# и MREQ# дают в результате сигнал MEMRD# чтения памяти. Аналогично получены сигналы чтения порта IORD# и записи в порт IOWR#. Еще получен сигнал WR#/RD, который равен 0, когда активен сигнал WR# и равен 1, когда активен RD#. Пять сигналов (MEMRD#, MREQ#, WR#/RD, IORD#, IOWR#) понадобятся при организации обращения к памяти и портам. Все они объединены в 5-разрядную шину управления (ШУ), которая также имеет шинный формирователь.

Рассмотрим подключение микросхем памяти. Всего подключено 2К ПЗУ на одной микросхеме К541РЕ1 (адресное пространство 0000H – 07FFH) и 4К ОЗУ на двух микросхемах К537РУ8 (адреса 0800H – 17FFH). Принцип работы микропроцессора с памятью следующий. В первом такте машинного цикла обращения к памяти (чтения или записи) процессор выдает на ША адрес запрашиваемой ячейки. Этот адрес дешифруется так, что вход CS (выбор кристалла) соответствующей адресу микросхемы становится активным (нулем), сигнализируя, что эта микросхема выбрана для операции. Во втором такте МП формирует на шине управления сигналы управления. Сигнал MEMRD# подается на вход разрешения операции микросхемы ПЗУ. Сигнал WR#/RD подается на одноименные входы микросхем ОЗУ, а сигнал MREQ# – на вход разрешения операции микросхем ОЗУ. Итак, чтение/запись микросхемы памяти происходит, если одновременно выполнены два условия: микросхема выбрана адресом и ей разрешена операция сигналами управления.

Порты ввода-вывода

Всего МП система имеет 14 байт портов ввода и вывода. На рис. 5 можно видеть их адреса в пространстве ввода-вывода.

Механизм действия портов аналогичен действию микросхем памяти. Адрес порта на ША дешифруется в двенадцать сигналов выбора кристалла CS0#–CS13#, а каждый порт имеет возможность управляемого чтения/записи. Для порта ввода (порт диаметра) одновременно активные CSi# и IORD# стробируют выдачу одного байта на шину данных. Для порта вывода одновременно активные CSi# и IOWR# стробируют запись байта с шины данных в регистр порта.

Адреса портов ввода-вывода дешифруются отдельным дешифратором ИД3 с четырьмя входами и 16-ю выходами (первые 14 из которых – CS0#–CS13#). На входы подается младшая тетрада шины адреса – номер адресуемого порта, на всех выходах дешифратора образуются единицы, кроме одного нулевого выхода, имеющего этот номер.

Два адресам контроллера прерываний (0C-0D) дешифруются в один сигнал выборки кристалла, при этом контроллер принимает бит A0 адреса и самостоятельно разбирается, к какому из двух адресов идет обращение.

Порт ввода диаметра. Двухбайтный порт, выбирается адресами 00 и 01 (сигналами CS0# и CS1#). Датчик диаметра бревна является аналоговым. Чтобы ввести числовое значение диаметра в МП и использовать его в вычислениях, надо преобразовать напряжение с датчика в цифровой код. Этим занимается АЦП на специальной микросхеме К1113ПВ1А. Это 10-разрядный АЦП с выходными цифровыми уровнями ТТЛ с возможностью преобразования однополярного аналогового сигнала в диапазоне [0..10,5]В или биполярного сигнала в диапазоне [-5,5..5,5]В. Мы используем АЦП в однополярном режиме, поэтому вход 15 (Z1) присоединен к массе. Преобразуемое аналоговое напряжение подается на вход 13 (вход A). По заднему фронту (спаду) импульса на входе 11 (RES) АЦП сбрасывается и начинает преобразование. Преобразование занимает некоторое время (около 30 мкс). По окончании микросхема АЦП на выходах D0–D9 выводит итоговый цифровой код, а на выходе готовности данных 17 (RDY) выставляет логический 0, сигнализирующий “преобразование окончено”. На этом работа АЦП заканчивается.

Далее в МП системе сигнал с выхода АЦП RDY несет две функции: стробирует запись кода диаметра с АЦП в два буферных регистра ИР82 и посылает сигнал запроса прерывания на вход IR2 контроллера прерываний.

На вход RES АЦП мы подаем импульсы частотой Ѕ Гц, соответственно, раз в две секунды возникает прерывание IRQ2. Обработчик этого прерывания, при условии, что бревно сейчас под пластиной датчика (эта информацию можно прочесть из порта статуса фотоэлементов, описанного ниже) будет читать регистры диаметра в некий массив диаметров в ОЗУ. По прохождении бревна, когда запускается вычисление объема бревна, все введенные диаметры усредняются и в вычислениях используется среднее значение всех мгновенных диаметров.

Порт вывода сигнала отбраковки (адрес 02). Представляет собой обычный D-триггер. По одновременным сигналам CS2# и IOWR# в триггер записывается младший бит D0 шины адреса. Программа устанавливает D0=1, если бревно бракованное, иначе D0=0.

Порт вывода на индикаторы (8 байт). В эти ячейки программа заносит семисегментный код, выводимый на индикаторы. Сигналы выборки кристаллов индикаторов в схеме – CS3# (самый левый индикатор)…CS10# (самый правый).

Есть одна особенность индикации. На индикаторы возможен вывод объема VS или текущего времени – должно зависеть от кнопок управления индикацией на панели оператора. Пусть эти величины в семисегментном коде хранятся в разных ячейках памяти (каждая по 8 байт). Процессор, выполняя управляющую программу, то и дело копирует их содержимое в порт. Ячейку VS – в порт (03..0A), а ячейку времени – в порт (13..1A).

Как говорилось ранее, при обращении к портам дешифруются лишь младшие 4 бита с шины адреса. Поэтому и в том, и в другом случае обращение идет к одним и тем же физическим индикаторам. Дополнительной дешифрации, зависимой от кнопок управления индикации, подвергается бит A4 адреса. Если A4=1, значит, процессор пытается индицировать время, при этом нажатая кнопка “время” разрешает прохождение сигналов выборки кристалла. А в отжатом положении сигналы выборки не пройдут, и индикация не состоится. Аналогично нажатая кнопка “VS” разрешает адресацию к индикаторам при A4=0.

Этот вариант “двойной адресации” свою относительную сложность искупает экономией лишних 8-ми регистров, которые понадобились бы, если делать отдельные порты вывода для VS и для времени.

Порт ввода статуса фотоэлементов. Этот порт (адрес 0B) необходим для использования при первоначальном тестировании, когда система проверяет готовность фотоэлементов (контролирует выходы Фэл1 и Фэл2 на ноль). Во время работы содержимое порта несет смысл статуса обработки и помогает разобраться, на какой стадии своего движения находится бревно.

В порте действительно несут информацию только 2 бита: D0 – о состоянии Фэл1 (ноль на выходе Фэл1 или единица), D1 – о статусе Фэл2. Ноль свидетельствует об успешном прохождении света от лампы к светоприемнику фотоэлемента, единица – о том, что свет не проходит.

Порт контроллера прерываний (адреса 0C и 0D). Используется для адресации регистров контроллера: сигналы CS12# и CS13#, объединенные по ИЛИ, подаются на его вход выбора кристалла.


Подсистема прерываний

МП система должна периодически опрашивать датчики и оперативно реагировать на изменение их состояния. Один из вариантов опроса – МП в цикле управляющей программы опрашивает все датчики, анализирует их состояние; инициатива при вводе-выводе информации принадлежит микропроцессору. Второй вариант – опрос по прерываниям: само внешнее устройство, приготовив данные, подает к МП сигнал прерывания и тот считывает эти данные, выполняя процедуру обработки прерывания. Очевидно, что для нашей системы второй вариант преимуществен: медленно меняющийся диаметр лучше считывать по внешней периодической синхронизации (например, Ѕ Гц), чем в каждом цикле управляющей программы. Сигналы с фотоэлементов (точнее, их перепады, после которых надо производить старт/стоп таймеров), которые похожи на “исключительные ситуации”, также логичнее обрабатывать по прерываниям. Наконец, прерывания помогают организовать программно часы реального времени и таймеры T1 и T2, экономя на микросхемах. Недостаток только один: приходится усложнять систему, вводя программируемый контроллер прерываний (ПКП).