Регистр входной фиксации (Input Capture Register) расположен по адресу 14Н-15Н и предназначен только для чтения из него времени обнаружения на выводе TCAD сигнала. Уровень сигнала, вызывающего фиксацию времени, задается программно через бит IEDG управляющего регистра. RESET не оказывает влияния на содержимое регистра входной фиксации. Значение в регистре ICR при фиксации будет на единицу больше значения счетчика в момент фиксации. Эта задержка необходима для внутренней синхронизации. Таким образом, счетчик и регистр входной фиксации имеют одинаковое разрешение, равное четырем циклам внутренней синхронизации.
При обнаружении сигнала на выводе ТСАP содержимое счетчика фиксируется в ICR вне зависимости от состояния флага ICF (см. регистр статуса). Поэтому ICR всегда содержит время последней фиксации.
При чтении старшего байта регистра входной фиксации (14Н) фиксация следующего значения запрещается до тех пор, пока не будет прочитан младший байт. Чтение же младшего байта не влияет на возможность очередной входной фиксации.
Регистр выходного сравнения (Output Compare Register) расположен по адресу 16Н-17Н и используется для программирования какого-либо действия в определенное время (т. е. когда счетчик достигнет определенного значения). Все биты регистра могут быть прочитаны и записаны в любой момент времени, и не изменяют свое состояние при RESET. Если в функции выходного сравнения нет необходимости, эти ячейки памяти могут использоваться для других целей. Значение в регистре выходного сравнения сравнивается со счетчиком каждые 4 цикла. Когда значения совпадают, устанавливается флаг (OCF) и уровень бита OLVL (см. регистр статуса таймера) передается на вывод ТСМР. Так же может происходить прерывание, если установлен бит OCIE. Содержимое регистра выходного сравнения и бит OLVL должны изменяться после каждого удачного сравнения, для того чтобы начать новый цикл сравнения. При записи сначала в старший байт ОСR (16Н) сравнение не будет производиться до тех пор, пока не будет записан младший байт. При записи же сначала в младшийбайт, функция сравнения будет активирована. Таким образом, пользователь должен записать оба байта OCR, если сначала записывается старший.
Управляющий регистр (TCR), находящийся по адресу 12Н, содержит 5 управляющих битов. Каждому из трех бит управления прерываниями соответствует флаг статуса таймера ICF, OCF и TOF.
Управляющий регистр таймера
Название | ICIE | OCIE | TOIE | 0 | 0 | 0 | IEDG | OLVL |
Установка после RESET | 0 | 0 | 0 | 0 | 0 | 0 | - | 0 |
ICIE - бит запрета/разрешения прерывания при входной фиксации,
при ICIE=1-прерывание разрешено,
при ICIE=0-прерывание запрещено,
OCIE - бит запрета/разрешения прерывания при выходном сравнении,
при ОCIE=1-прерывание разрешено,
при OCIE=0-прерывание запрещено,
TOIE - бит запрета/разрешения прерывания при переполнении таймера,
при TOIE=1-прерывание разрешено,
при TOIE=0-прерывание запрещено,
IEDG - бит определяет, что будет инициировать фиксацию счетчика в регистре входной фиксации - фронт или спад импульса на TCAP.
при IEDG=1-фронт,
при IEDG=0-спад
RESET не оказывает влияния на этот бит.
OLVL - бит определяет, какой уровень будет устанавливаться на TCMP
при выходном сравнении.
при OLVL=1-высокий уровень,
при OLVL=0-изкий уровень.
Регистр статуса таймера находится по адресу 13Н, предназначен только для чтения и содержит три флага, каждый из которых относится к определенному прерыванию.
Регистр статуса
Назначение | ICF | OCF | TOF | 0 | 0 | 0 | 0 | 0 |
Установка после RESET | U | U | U | 0 | 0 | 0 | 0 | 0 |
ICF-флаг входной фиксации,
ICF=1 - флаг устанавливается, когда входной сигнал соответствующей полярности зафиксирован,
ICF=0 - флаг сбрасывается при чтении младшего байта входного регистра фиксации (15Н), после чтения TSR, пока установлен ICR.
OCF-флаг выходного сравнения,
OCF=1 - флаг устанавливается, когда значение в регистре выходного сравнения совпадает со значением в счетчике.
OCF=0 - флаг сбрасывается при записи в младший байт (17Н) регистра выходного сравнения, после чтения TSR пока установлен ОCF.
TOF-флаг переполнения таймера,
TOF=1 - флаг устанавливается при переключении счетчика со значения FFFFH на 0000H.
TOF=0 - флаг сбрасывается при чтении младшего байта (19Н) счетчика после чтения TSR пока установлен TOF.
Для того, чтобы сбросить бит статуса, необходимо произвести две операции: во-первых, прочитать регистр статуса, во-вторых, прочитать регистр, соответствующий определенному биту статуса (например, для бита ICF это регистр ICR).
При использовании функции переполнения таймера и обращениях к счетчику в различное время могут возникнуть проблемы, связанные со сбросом флага переполнения. Это может произойти в одном из двух случаев: либо регистр статуса был прочитан в тот момент, когда флаг TOF был установлен, либо младший бит счетчика был прочитан без цели воздействовать на флаг переполнения. Эти возможности необходимо отслеживать при написании программ.
Работа таймера в режимах STOP и WAIT описана в разделе 3.2.
2.4 Последовательный интерфейс
Порт D представляет собой 7-и битный (канал D6 не используется) однонаправленный порт (только для ввода данных, если он используется как порт общего назначения для параллельного обмена). Когда активизированы системы последовательного интерфейса связи (Serial Communication Interface), либо последовательного периферийного интерфейса (Serial Periferal Interface), управление портом D переходит к ним. Во время начальной установки порт D конфигурируется на ввод информации, поскольку последовательные интерфейсы блокированы.
Последовательный периферийный интерфейс использует 4 вывода порта D (MISO и MOSI-ввод-вывод информации, SCK-системная синхронизация, SS-ведущий/ведомый). Последовательный интерфейс связи использует 2 вывода (RDI-прием данных, TDO-передача).
Рассмотрим подробнее последовательный интерфейс связи. Полно-дуплексный асинхронный последовательный интерфейс связи работает в стандартном NRZ формате с широким выбором скорости приема/передачи информации. Передатчик и приемник функционально независимы, но используют одинаковый формат данных и скорость работы.
Общие особенности интерфейса:
стандартный NRZ формат;
усовершенствованная система выявления ошибок, включающая фильтрацию помех с длительностью до 1/16 времени передачи 1 бита;
полно-дуплексное функционирование (одновременный прием и передача);
программирование на одну из 32 возможных скоростей обмена;
программно-изменяемая длина слова (8 либо 9 бит в слове);
отдельно расположенные биты управления приемом и передачей;
возможность управления по прерыванию;
различных условия возникновения прерывания;
Особенности приемника:
наличие функции активации передатчика (свободная линия или разряд адреса);
обнаружение свободной линии;
обнаружение ошибок кадрирования (см. ниже);
выявление шумов;
обнаружение переполнения;
флаг контроля за полнотой регистра данных;
Особенности передатчика:
флаг контроля за пустотой регистра данных;
флаг завершения передачи;
прерывание посылки;
Структура интерфейса представлена на рис. 2-9.
Пользователь имеет возможность задать режим работы интерфейса через первый управляющий регистр (SCCR1).Второй управляющий регистр (SCCR2) содержит биты контроля за приемом/передачей, разрешением/запретом прерываний и другие. Рассмотри работу SCI в различных режимах.
Передача данных начинается с записи в регистр передачи данных (SCDAT),который физически расположен в одной и той же ячейке памяти с регистром приема данных. При условии, что работа передатчика разрешена, данные передаются в сдвиговый регистр. Эта передача данных устанавливает бит TDRE (пуст регистр передачи данных) в регистре SCSR и генерирует прерывание, если прерывания разрешены. Передача данных в сдвиговый регистр синхронизируется по внутреннему генератору скорости. Данные передаются младшим битом вперед.. При завершении передачи данных, бит TC устанавливается и генерируется прерывание. Если передатчик блокирован, и были посланы либо данные, либо код останова, бит ТС также будет установлен. Если передатчик блокируется во время передачи, то происходит завершение передачи текущего байта, и затем останов передатчика.
Прием данных начинается с чтения из регистра SCDAT, содержащего последний полученный байт, при условии что приемник не блокирован. Бит RDRF в регистре SCSR устанавливается, если данные из сдвигового регистра перенесены в SCDAT, что может вызвать кроме того прерывание от периферийного интерфейса, если оно разрешено. Передача данных из сдвигового регистра в SCDAT синхронизируется по внутреннему генератору. Флаги переполнения (OR), обнаружения шумов (NF), либо FE устанавливаются, если происходит ошибка при приеме данных.
На рис. 2-10 представлена диаграмма обмена в упоминавшимся выше NRZ-формате, используемом в интерфейсе.