Цель работы: изучение интерфейса I2C и его особенностей,
структуры и принципа работы встроенного периферийного модуля синхронного последовательного интерфейса (MSSP) микроконтроллера PIC18F4520; освоение практической реализации
интерфейса I2C.
1. Методические указания
1.1. описание интерфейса I2C
в данном разделе приведено описание только тех особенностей
интерфейса I2C, знание которых необходимо для выполнения лабораторной работы. При необходимости данные, не вошедшие в
данный раздел, можно найти в работе [1].
данный интерфейс (шина) был разработан фирмой «Philips»
и первоначально был предназначен для эффективного взаимодействия различных блоков телевизоров. в настоящее время
шина I2C широко используется для передачи данных как в бытовой, так и в промышленной электронике. она применяется для
связи между собой однокристальных микроконтроллеров, жидкокристаллических индикаторов, микросхем памяти, аналогоцифровых и цифроаналоговых преобразователей, часов реального времени и т. д.
Шина I2C является последовательной двунаправленной шиной передачи данных [1]. для переноса информации используются всего две линии:
SDA – последовательная линия данных,
SCL – последовательная линия синхронизации.
данные по шине I2C могут передаваться со скоростью до
100 кбит/с в стандартном режиме и до 400 кбит/с – в «быстром»
режиме.
Максимально допустимое количество микросхем, подключенных к одной шине, ограничивается единственным параметром –
максимальной емкостью шины (до 400 пФ).
Рис. 1. Подключение устройств к шине I2C
(входные и выходные каскады устройств показаны условно)
для обеспечения двунаправленности шины выходные каскады подключенных устройств имеют открытый сток или открытый коллектор, а сами линии SDA и SCL подсоединены к положительному источнику питания через подтягивающий резистор
(рис. 1). это необходимо для реализации схемы монтажного «И».
когда шина свободна, обе линии находятся в состоянии логической единицы. Иногда для защиты входных каскадов микросхем
от высоковольтных выбросов в линии применяют дополнительные резисторы Rs.
каждое устройство, подключенное к шине, может быть передатчиком или приёмником. это зависит от назначения устройства и конкретной фазы передачи данных. кроме того, все устройства подразделяются на ведущие и ведомые. ведущее устройство
инициирует передачу, генерирует сигналы синхронизации и завершает передачу. При этом любое адресуемое устройство считается ведомым по отношению к ведущему.
Шина I2C допускает несколько ведущих устройств. это означает, что к ней можно подключить несколько устройств, способных управлять этой шиной. для избежания конфликтов между
такими устройствами предусмотрена специальная процедура арбитража.
Каждое ведомое устройство