
- •Организация микропроцессора
- •Организация входов-выходов
- •Регистры входов-выходов
- •Приборный интерфейс i2c
- •Состояние линии
- •Синхронизация
- •Форматы и режимы
- •Арбитраж
- •Организация контроллера
- •Тактовое питание
- •Регистры i2c
- •Векторы прерываний
- •Регистры адреса и масок
- •Регистры статусов
- •Регистры приема-передачи
- •Регистры режима
- •Режим цифровой петли
- •Другие регистры
- •Регистры идентификации
- •Аппаратурный сброс
- •Инициализация ведущего
- •Инициализация ведомого
Регистры i2c
Рис.18. Регистры I2C
Регистров у интерфейса I2C достаточно много. Рассмотрим их подробнее на рисунке 18. Регистры собственных адресов содержат данные об адресе ведомого устройства (контроллера). Так как есть источники прерываний, то есть регистр маски прерываний и регистр статуса прерываний. Регистр делителя частоты (младшая и старшая часть) – это два независимых коэффициента деления. Для передачи данных в формате повторения требуется счетчик данных. Регистр подчиненного (ведомого) адреса, какое устройство с каким связано, здесь записывается адрес устройства которому передаются данные. В регистрах режимах содержится информация о форматах передачи данных. Регистр вектора прерываний, так как источников прерываний много, в этом регистре указан текущий активный источник. Регистры идентификационных данных – протоколы, данные об реализации интерфейса и данные по устройству.
Векторы прерываний
Для приборного интерфейса используется 23 вектор прерываний (см. рис.19), имеющий приоритет 24.
Рис.19. – Векторы прерываний
Регистры адреса и масок
Рис.20. – Регистры адреса и масок
ICOAR – регистр собственного адреса, максимальное 10 разрядов, 6 разрядов не используется.
ICIMR – имеется семь источников прерываний:
OADDR – Own slave address (собственный адрес)
AAS – Address-as-slave (обнаружение нулевого или своего адрес)
SCD – Stop condition detected (обнаружение условия STOP)
ICXRDY – Transmit-data-ready(готовность передатчика)
ICRRDY – Receive-data-ready (готовность приемника, необходимо считать данные из регистра данных)
ARDY – Register-access-ready (готовность доступа к регистру, интегрированное прерывание)
NACK – No-acknowledgment (нет подтверждения)
AL – Arbitration-lost (потеря арбитража)
Регистры статусов
Рис.21. Регистр состояния прерываний
Повторяет все те состояния, которые заведены на прерывание, но имеет и дополнительные флаги (см. рис.21):
SDIR – Slave direction (ведомое направление: 0 – ведомый приемник, 1 – ведомый передатчик);
NACKSNT – No-acknowledgment sent (при передаче данных не отправлено подтверждение);
BB – Bus busy (занятость шины);
RSFULL – Receive shift full (переполнение регистра сдвига приемника возникает тогда, когда не успели считать порцию с приемника);
XSMT – Transmit shift empty (пустота регистра сдвига передатчика, передатчику нечего передавать);
AAS – Addressed-as-slave (получен собственный адрес или широковещательный адрес);
AD0 – Address 0 (получен нулевой адрес);
SCD – Stop condition detected (обнаружено состояние STOP);
ICXRDY – Transmit-data-ready (готовность передатчика);
ICRRDY – Receive-data-ready (готовность приемника);
ARDY – Register-access-ready (готовность доступа к регистру);
NACK – No-acknowledgment (нет подтверждения);
AL – Arbitration-lost (потеря арбитража)
Регистры приема-передачи
Рис.22. – Регистры приема-передачи
ICCL – Clock low-time divide-down (подчиненное направление).
ICCH – Clock high-time divide-down (отправка подтверждения).
ICDC – Data count (счетчик данных).
SADDR – Slave address (подчиненный адрес).