5.2.2. Модуль I2C
Для связи с интегральными схемами у МК STM32 имеется еще один специальный интерфейс - I2C. Интерфейс I2C может работать в ведущем или подчиненном режиме и поддерживает возможность арбитра шины, что необходимо в мультимастерных системах. Интерфейс I2C поддерживает оба скоростных режима шины: стандартный со скоростями до 100 кГц и быстродействующий со скоростями до 400 кГц.
Модуль I2C использует 7- и 10-битные режимы адресации. Модуль полностью реализует протокол передачи данных по шине и требует для управления только необходимой протоколу передачи информации. Модуль I2C может генерировать два прерывания: одно при обнаружении ошибок и другое для управления адресом связи и передаваемыми данными. Кроме того, блок ПДП предоставляет два канала, которые можно использовать для чтения из буфера передачи и записи данных в этот буфер. Таким образом, сразу после задания адреса и подлежащих передаче данных можно начать двунаправленную передачу данных полностью под аппаратным управлением.
Два модуля I2C дополнены возможностями, которые делают их совместимыми с шинами SMBus и PMBus. В них входит аппаратный блок коррекции ошибок
Благодаря поддержке всех перечисленных возможностей, модули I2C являются скоростными и эффективными шинными интерфейсами. Однако у них реализован ряд дополнительных возможностей, позволяющих расширить базовые функции шины I2C. В модуль I2C микроконтроллеров STM32 входит блок аппаратной проверки ошибок в пакете (блок PEC). После активизации, блок PEC будет генерировать байт с CRC-кодом для проверки ошибок.
Данный байт автоматически помещается в конец передаваемого потока данных. Блок PEC также имеет возможность проверки принятых данных на соответствие переданному байту защиты от ошибок.
Данный байт автоматически помещается в конец передаваемого потока данных. Блок PEC также имеет возможность проверки принятых данных на соответствие переданному байту защиты от ошибок.
Модуль I2C МК STM32 также поддерживает два дополнительных коммуникационных протокола: SMBus и PMBus. Протокол SMBus был предложен Intel в 1995 году для использования внутри ПК и серверов. Протоколом SMBus оговариваются требования к канальному слою, в т.ч. использование PEC и передача стандартизованных конфигурационных данных между BIOS компьютера и ИС различных производителей. Работая в режиме SMBus, модуль I2C, помимо PEC, поддерживает ряд других возможностей протокола SMBus. К их числу относятся протокол разрешения адреса SMN, протокол уведомления host-устройства и работа с сигналом SMBALERT. Протокол PMBus является разновидностью SMBus и предназначен для работы в системах электропитания. PMBus позволяет конфигурировать, программировать и контролировать в реальном времени системы электропитания.
|