Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава_5.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.43 Mб
Скачать

Режима ввода с полным квитированием установления связи

В этом протоколе регистр C является портом ввода, STRA - линия стробирования ввода данных в порт C из внешней системы и линия STRB - линия вывода сигнала готовности, управляемая логикой микроконтроллера.

При определении сигнала готовности, внешнее устройство помещает данные на линии порта C, после чего подает сигнал на линию STRA. По фронту на линии STRA данные на входе порта C копируются в регистр PORTCL, устанавливается флаг STAF (не обязательно вызывая прерывание) и сбрасывается сигнал готовности на линии STRB. Сброс сигнала готовности автоматически препятствует стробированию внешними устройствами новых данных в порт C. Чтение порта C (независимо от состояния флага STAF) устанавливает сигнал готовности на линии STRB, сигнализируя о том, что в порт C можно записывать новые данные.

Линия STRB может быть настроена (битом управления PLS) как импульсный выход (импульсный режим) или статический выход (статический режим).

В регистре направления DDRC должны быть сброшены биты, соответствующие разрядам порта C, которые используются для ввода с квитированием. Однако, некоторые линии порта C можно использовать в качестве входов с квитированием и в тоже время некоторые линии могут использоваться как статические входы, а некоторые - как статические выходы. Протокол режима ввода не оказывает никакого влияния на использование линий порта C в качестве статических входов или статических выходов. Чтение регистра данных PORTC всегда возвращает логические уровни на выводах порта C (для линий, настроенных на ввод). Запись как в регистр PORTC, так и в регистр PORTCL посылает информацию в тот же самый выходной регистр порта C, не влияя на стробирование ввода с квитированием.

Режима вывода с полным квитированием установления связи

В этом протоколе порт C настроен на вывод, на линию STRB выводится сигнал готовности и линия STRA является входной линией подтверждения (работающая по фронту), сообщающая микроконтроллеру о том, что выходные данные приняты внешним устройством. В разных вариантах этого протокола линия STRA используется также и в качестве линии разрешения вывода.

Микроконтроллер помещает данные на выходные линии порта C и подтверждает это действие сигналом на линии STRB. После этого внешнее устройство считывает данные с последующим подтверждением по линии STRA, означающим, что на порт C уже можно выводить новые данные. Активный перепад на линии STRA позволяет сбросить линию STRB и установить флаг STAF. В ответ на установку флага STAF программа выводит через порт C новые данные. Запись данных в регистр PORTCL вызывает появление этих данных на выходных линиях порта C и подачу сигнала подтверждения по линии STRB.

Режима двунаправленного обмена

Существуют варианты протокола вывода, которые допускают режим работы порта C в третьем состоянии, то есть возможно прямое соединение этого 8-разрядного порта с другими устройствами, имеющими трехстабильные выходы без использования других вспомогательных схем.

Во время нахождения линии STRA в неактивном состоянии направление передачи на всех линиях порта C определяется содержимым регистра направления, то есть линии, настроенные как входы находятся в высокоимпедансном состоянии. При активизации линии STRA все линии порта C становятся выходами несмотря на содержимое регистра направления. Следует заметить, что в рассматриваемом протоколе чтение порта C всегда будет возвращать величину на входе выходных буферов порта, независимо от состояния регистра направления, поскольку эти линии могут не иметь значащих данных в варианте данного протокола с третьим состоянием. Эта особенность делает непрактичным использование некоторых линий порта C для ввода во время протокола вывода, но не мешает им являться статическими выходами. У линий порта C, которые используются в качестве статических выходов или обычных выходов со стробированием, соответствующие биты регистра направления должны быть установлены, а у линий, использующихся как выходы с высокоимпедансным состоянием в протоколе вывода с квитированием - сброшены.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]