Микроконтроллеры семейства Zilog Z86Рефераты >> Программирование и компьютеры >> Микроконтроллеры семейства Zilog Z86
Запуск и обновление сторожевого таймера осуществляется специальной командой WDT в рабочем режиме выполнения программы RUN. После однократного выполнения этой команды сторожевой таймер постоянно разрешен. Поэтому программа МК должна предусматривать периодическое повторение (с периодом, меньшим установленного времени сторожевого таймера) команды WDT. Это должно быть обеспечено программистом. В этом случае, при нормальной работе процессора сторожевой таймер будет периодически перезапускаться и не достигнет состояния окончания счета. При "зависании" процессора сторожевой таймер достигает состояния окончания счета, что вызывает запуск автосброса МК и выполнение программы с начала. Работа WDT в режимах HALT и STOP разрешается путем программирования соответствующих битов D2 и D3 регистра WDTMR. В этом случае, при переходе в соответствующий режим, WDT продолжает свою работу.
В модели 03 сторожевой таймер имеет фиксированную задержку 15 мс (при синхронизации от GRC) или 512TpC (при синхронизации от XTAL), а состояние битов D1 и D0 регистра WDTMR должно быть 01.
В моделях 02, 04, 08 регистры WDTMR и SMR отсутствуют, поэтому схема имеет фиксированную конфигурацию (соответствует изображенным на рис.1.7 положениям переключателей). Разрешение работы сторожевого таймера в режиме HALT осуществляется исполнением специальной команды WDH (выполняется до перехода в режим HALT). В режиме STOP в этих МК работа сторожевого таймера запрещена.
Запрещение работы сторожевого таймера во всех моделях МК происходит при выполнении внутреннего сброса. Исключение составляют некоторые модели (или отдельные модификации) имеющие программируемый (масочно или однократно) бит постоянного разрешения WDT (Permanent WDT). Если этот бит запрограммирован, то WDT постоянно разрешен и запрещение работы его после сброса не происходит.
Таким образом, функция сброса и сторожевой таймер обеспечивают корректный начальный запуск программы и перезапуск в случае сбоя программы.
1.2.5. Порты ввода/вывода
МК Z8 имеет до 32 линий ввода/вывода, сгруппированных в четыре восьмибитных порта Р0, Р1, Р2, Р3 (физическое наличие соответствующих выводов портов для каждой модели МК указано в табл.1.2). Порты размещены в адресном пространстве регистрового файла по адресам соответственно 00H, 01H, 02H, 03H.
Работа линий портов может программироваться на ввод или вывод: Р0 -потетрадно, Р1 -побайтно (т.е. целиком), а Р2 -побитно (см. табл. на рис. 1.9). Порты могут работать в режиме синхронного программного обмена, в режиме обмена с квитированием, в режиме стробируемого ввода/вывода.
При синхронном программном обмене ввод или вывод реализуется в момент исполнения команд чтения или записи регистра порта. При этом внешнее устройство должно быть постоянно готово к обмену.
Режим обмена с квитированием или "рукопожатием" (Handshake) заключается в том, что МК и внешнее устройство обмениваются сигналами (квитанциями) ГОТОВНОСТИ к обмену -RDY (Ready) и ДЕЙСТВИТЕЛЬНОСТИ ДАННЫХ -/DAV (Data is Available). Ввод и вывод с квитированием подробно поясняются временными диаграммами, рис.1.10 и 1.11.
Состояние 1. |
Сигнал RDY имеет высокий уровень, что указывает MK принять данные. | |
Состояние 2. |
Внешнее устройство помещает данные на выводы порта и активизирует сигнал /DAV. Это приводит к фиксации данных во входном регистре порта МК и генерирования запроса прерывания. | |
Состояние 3. |
МК переводит выход RDY в низкое состояние, сигнализируя внешнему устройству, что данные зафиксированы. | |
Состояние 4. |
Внешнее устройство возвращает линию /DAV в высокое состояние после получения низкого уровня сигнала RDY. | |
Состояние 5. |
МК должен среагировать на запрос прерывания и прочитать содержимое порта для завершения последовательности квитирования. На линии RDY устанавливается высокий уровень тогда и только тогда, когда порт уже прочитан и /DAV имеет высокий уровень. Это возврощает интерфейс в его начальное значение. |
Состояние 1. |
Вход RDY имеет высокий уровень, что указывает на готовность внешнего устройства к приему данных. | ||||
Состояние 2. |
МК записывает данные в регистр порта для инициализации передач данных. Запись в порт новых данных и переход выхода /DAV в состояние низкого уровня происходит только тогда, когда RDY имеет высокий уровень. | ||||
Состояние 3. |
Внешнее устройство делает уровень сигнала RDY низким после фиксации данных. Низкий уровень RDY вызывает генерирование запроса прерывания. МК может уже записать новые данные в ответ на низкий уровень DRY, однако эти данные не выводятся до состояния 5. | ||||
Состояние 4. |
Уровень выхода /DAV МК становится высоким в ответ на переход выхода RDY в состояние низкого уровня. | ||||
|
Состояние 5. |
Уровень выхода /DAV остается высоким, внешнее устройство может установить высокий уровень RDY, что возвращает интерфейс в его начальное состояние. |