Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция 16.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.25 Mб
Скачать
  1. Регистры i2c

Рис.18. Регистры I2C

Регистров у интерфейса I2C достаточно много. Рассмотрим их подробнее на рисунке 18. Регистры собственных адресов содержат данные об адресе ведомого устройства (контроллера). Так как есть источники прерываний, то есть регистр маски прерываний и регистр статуса прерываний. Регистр делителя частоты (младшая и старшая часть) – это два независимых коэффициента деления. Для передачи данных в формате повторения требуется счетчик данных. Регистр подчиненного (ведомого) адреса, какое устройство с каким связано, здесь записывается адрес устройства которому передаются данные. В регистрах режимах содержится информация о форматах передачи данных. Регистр вектора прерываний, так как источников прерываний много, в этом регистре указан текущий активный источник. Регистры идентификационных данных – протоколы, данные об реализации интерфейса и данные по устройству.

  1. Векторы прерываний

Для приборного интерфейса используется 23 вектор прерываний (см. рис.19), имеющий приоритет 24.

Рис.19. – Векторы прерываний

  1. Регистры адреса и масок

Рис.20. – Регистры адреса и масок

ICOAR – регистр собственного адреса, максимальное 10 разрядов, 6 разрядов не используется.

ICIMR – имеется семь источников прерываний:

  1. OADDR – Own slave address (собственный адрес)

  2. AAS – Address-as-slave (обнаружение нулевого или своего адрес)

  3. SCD – Stop condition detected (обнаружение условия STOP)

  4. ICXRDY – Transmit-data-ready(готовность передатчика)

  5. ICRRDY – Receive-data-ready (готовность приемника, необходимо считать данные из регистра данных)

  6. ARDY – Register-access-ready (готовность доступа к регистру, интегрированное прерывание)

  7. NACK – No-acknowledgment (нет подтверждения)

  8. AL – Arbitration-lost (потеря арбитража)

  1. Регистры статусов

Рис.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 (потеря арбитража)

  1. Регистры приема-передачи

Рис.22. – Регистры приема-передачи

ICCL – Clock low-time divide-down (подчиненное направление).

ICCH – Clock high-time divide-down (отправка подтверждения).

ICDC – Data count (счетчик данных).

SADDR – Slave address (подчиненный адрес).