Современная электроника №1/2022

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 48 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 1 2022 Работа с последовательным интерфейсом I 2 C в программной среде Proteus 8.11 Рис. 1. Схема соединения устройств по интерфейсу I 2 C В статье рассматривается проектирование схем микроэлектронных устройств с использованием интерфейса I 2 C в Proteus на примере его реализации в устройстве измерения температуры, собранном на основе микроконтроллера AVR (семейства АТ90) и датчиков LM75AD. Описаны особенности написания программного кода на языке С для инициализации интерфейса и работы с ним. Приведён пример моделирования схемы, в которой проводится передача данных через I 2 C между датчиками температуры, сконфигурированными как ведомые устройства, и ведущим микроконтроллером АТ90S8515, компиляция программы инициализации которого выполнена в CodeVisionAVR. Выполнено отображение принятых ведущим устройством данных на экране буквенно-цифрового дисплея LM016L. С помощью осциллографа проведён контроль сигналов, присутствующих на линиях SDA и SCL интерфейса I 2 C. Татьяна Колесникова (beluikluk@gmail.com) Введение Двухпроводный последовательный интерфейс I 2 C (Integrated Circuit) обе- спечивает взаимодействие микрокон- троллера с множеством микросхем (энергонезависимой памятью, кон- троллерами параллельных портов, LCD-дисплеями, микроконтроллера- ми и различными специализированны- ми устройствами). Данный интерфейс позволяет объединить до 128 устройств по схеме, приведённой на рис. 1. Интерфейс представляет собой две линии: одна (SDA) используется для передачи данных, другая (SCL) – для тактовых сигналов. Через резисторы R1, R2 обе линии подключены к источ- нику питания VCC. Выходы устройств выполнены по схеме с открытым кол- лектором (стоком), что позволяет реа- лизовать функцию «монтажное И» для выходных сигналов. Низкий уровень сигнала (логический 0) на выходе любо- го из устройств устанавливает низкий уровень на всей линии. Высокий уро- вень на линии устанавливается, когда выводы всех устройств находятся в тре- тьем (высокоимпедансном) состоянии. Устройство, подключённое к шине, может иметь статус ведущего (master) или ведомого (slave). Статус микрокон- троллера устанавливается программно. Протоколом работы шины предус- мотрены: ● посылка ведущим устройством стар- тового бита начала обмена; ● передача последовательности из семи разрядов адреса ведомого устройства; ● транзакция чтения или записи 8-би- товых данных; ● получение ведущим устройством би- тов подтверждения передачи адреса и данных; ● формирование бита подтверждения после приёма данных; ● посылка ведущим устройством сто- пового бита. Шина I 2 C является последователь- ной: все данные и адреса передаются по линии SDA поразрядно. Каждый переда- ваемый бит сопровождается тактовым сигналом на линии SCL. В течение все- го временидействия сигнала SCL (SCL =1) состояние линии SDA должно оставать- ся неизменным. Изменение данных на линии SDA происходит при отсутствии тактовогосигналана линииSCL (SCL =0). Исключение составляют стартовый и стоповый биты, определяющие нача- ло и конец обмена. Стартовый бит фор- мируется путём изменения уровня сиг- нала на линии SDA с 1 на 0 при SCL = 1, стоповый бит – при изменении сигна- ла SDA с 0 на 1 также при SCL = 1. Протокол обмена по шине предпо- лагает передачу двух типов кадров: с адресом и данными. Кадр 7-разрядно- го адреса содержит: ● S – стартовый бит; ● А – 7-разрядный адрес ведомого устройства, передаваемый ведущим, начиная со старшего разряда; ● R/W – управляющий бит, опреде- ляющий тип транзакции на шине (R/W = 0 – запись, R/W = 1 – чтение); ● АСК – бит подтверждения. Адрес, передаваемый ведущим устрой- ством после захваташины, поступает ко всем устройствам, подключённым к ней. Каждое из устройств сравнивает посту- пающий адрес с собственным. При рас- познавании ведомым устройством свое- го адреса оно возвращает на линию SDA сигнал подтверждения АСК низкого уровня во время 9-го тактового сигна- ла SCL. Если по каким-либо причинам ведомое устройство не способно обслу- жить запрос ведущего, оно удерживает на линии SDA сигнал высокого уровня. Нулевой адрес используется для обще- го вызова всех устройств. Управляющий бит в этом случае устанавливается в 0, чтобы обеспечить передачу одного и того же сообщения всем устройствам. После передачи адреса начинается передача данных. Кадр байта данных содержитвосемьбитовданныхиодинбит подтверждения,формируемыйприёмни- ком. Данные, такжекакиадрес, передают- сяпоследовательнобит забитом, начиная состаршегоразряда. Послеприёмакаждо- гобайтаданныхприёмниквырабатывает сигнал подтверждения АСК путём выда- чиналиниюSDAсигналанизкогоуровня. Высокийуровень сигналасвидетельству-

RkJQdWJsaXNoZXIy MTQ4NjUy