СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №1/2015
ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 39 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 1 2015 Рис. 3. Функциональная схема блока интерфейса I 2 C Регистр данных Регистр сдвига Компаратор Управление данными Управление частотой Блок вычисления Адресный регистр 1 Адресный регистр 2 Регистр PEC Регистр CCR Регистры CR1 и CR2 Регистры SR1 и SR2 SMBALERT SDA SCL Логика управления Прерывания Запросы ПДП и АСК За 8 тактами передачи байта дан- ных следует 9-й такт, в течение кото- рого приёмник должен послать бит уве- домления ACK, получивший своё назва- ние от слова ACKnowledge. На рисунке 2 приведена временна ′ я диаграмма одной посылки интерфейса I 2 C. Наличие уведомления в ответе мож- но программно включить или от- ключить. Размерность адреса интер- фейса I 2 C (7 бит или 10 бит и адрес общего вызова) можно выбрать про- граммно. А РХИТЕКТУРА БЛОКА ИНТЕРФЕЙСА I 2 С Функциональная схема блока интер- фейса I 2 C для микроконтроллера STM32 приведена на рисунке 3. Регистр сдвига на этой схеме пред- ставляет собой основной регистр, через который передаются и прини- маются данные. Передаваемые дан- ные предварительно записываются в регистр данных, после чего через регистр сдвига последовательно транс- лируются в линию связи SDA. Прини- маемые по этой же линии связи дан- ные накапливаются в регистре сдвига, а затем перемещаются в регистр дан- ных. Таким образом, интерфейс может передавать и принимать данные толь- ко поочередно. Кроме того, регистр сдвига аппарат- но подключён к компаратору, который позволяет сравнивать принятый адрес с адресными регистрами и, таким обра- зом, определять, для кого предназначен очередной блок данных. Узел управления частотой позво- ляет формировать сигнал синхрони- зации SCL в роли ведущего и синхро- низироваться от этого сигнала в каче- стве ведомого устройства. Регистр CCR обеспечивает программную настройку данного узла. Блок интерфейса подклю- чён к выходу PCLK1 шины APB1 через два предварительных делителя. Микро- контроллер поддерживает два режима обмена: стандартный (Standard Speed) – до 100 кГц, и быстрый (Fast Speed) – до 400 кГц. В зависимости от режима обме- на частота тактирования модуля долж- на быть не менее 2 МГц в стандартном режиме и не менее 4 МГц в быстром режиме. Блок вычисления позволяет аппа- ратно вычислять контрольную сумму блока данных и сохранять её в реги- стре PEC. Управление блоком интерфейса I 2 C, а также формирование флагов собы- тий и прерываний выполняется узлом логики управления. Он же позволяет обслуживать запросы ПДП и форми- ровать сигнал ACK. Связь этого бло- ка с микроконтроллером осуществля- ется программно с помощью реги- стров управления CR1, CR2 и регистров состояния SR1, SR2. П РЕРЫВАНИЯ ОТ I 2 C Интерфейс I 2 C имеет аппаратную организацию, способнуюформировать запросы на прерывание в зависимости от режима работы и текущих событий. В таблице 1 приведены запросы на пре- рывание от интерфейса I 2 C. О ПИСАНИЕ РЕГИСТРОВ Для работы с интерфейсом I 2 C в микроконтроллере STM32 имеются специальные регистры. Карта этих регистров с названием входящих в них разрядов представлена в таблице 2. Рассмотрим регистры, необходимые для работы интерфейса I 2 С. К ним отно- сятся: ● I 2 C_CR1 – управляющий регистр 1; ● I 2 C_CR2 – управляющий регистр 2; Таблица 1. Запросы на прерывание от интерфейса I 2 C Событие Флаг события Разрешающий бит управления Послано старт-условие SB ITEVFEN Ведущий послал адрес или ведомый получил свой адрес ADDR Ведущий послал заголовок 10 бит ADD10 Ведомый получил стоп-условие STOPF Передача байта закончена BTF Буфер приёма не пуст RxNE ITEVFEN и ITBUFEN Буфер передачи пуст TxE Ошибка шины BERR ITERREN Потеря прав на шину ведущего ARLO Ошибка уведомления AF Переполнение/недостача данных OVR Ошибка пакета PECERR Ошибка превышения времени TIMEOUT
RkJQdWJsaXNoZXIy MTQ4NjUy