Составители:
9
Сигнал START говорит всем периферийным устройствам, что сейчас к
кому-то из них будет произведено обращение. Теперь микроконтроллер
передает по I2C байт данный, который мы ниже будем называть запросным.
Этот запросный байт содержит информацию о “номере” периферийного
устройства, с которым желает связаться микроконтроллер. Этот номер (также
часто называемый адресом slave-устройства) принимается всеми
устройствами,
подключенными к шине I2C. Каждое периферийное устройство “знает”, какой
за ним закреплен номер и сверяет этот номер с тем адресом, который
содержится в запросном байте. Если эти адреса совпали, то устройство готово к
дальнейшему обмену данными с контроллером. Если нет, то устройство
“отключается” от I2C до тех пор, пока там не
появится следующий сигнал
START. Выбранное устройство “отзывается” на обращение к нему сигналом
ACK – выдает нулевой бит на SDA во время действия девятого
синхроимпульса. Напомним, что первые 8 синхроимпульсов соответствовали
передаче запросного байта (см. рис. 3).
Рис. 3. Формирование сигнала подтверждения ACК
Сигнал АСК (acknowledge – подтверждение) говорит о нормальном
завершении приема байта данных. Микроконтроллер должен освободить
линию данных перед приемом ACK, чтобы периферия могла выдать нулевой
бит на эту линию. Под освобождением линии понимается перевод выходного
каскада в закрытое состояние, т. е. на линии появляется высокий уровень
напряжения
за счет “подтягивающего” резистора. Далее последовательность
сигналов START+запросный байт+ACK и сопровождающие эти сигналы
синхроимпульсы мы будем называть запросным пакетом.
В запросном байте последний (младший) бит содержит информацию о
том, какое действие хочет совершить микроконтроллер – передачу данных в
периферийное устройство или чтение данных из периферийного устройства.
Если последний бит запросного байта
нулевой, то это запрос на запись, в
противном случае – на чтение.
Заметим, что в процессе работы микроконтроллера с выбранным
периферийным устройством сигнал START сформироваться “случайно” не
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »