Рисунки 8 и 9 показывают, как достигается передача данных на шинеI2C. В зависимости от состояния бита R/W, возможны два типа передачи данных:
Передача данных с ведущего на ведомый. Первый байт, переданный ведущим – это адрес ведомого. Затем следует число байт данных. Ведомый высылает бит подтверждения после каждого полученного байта.
Передача данных с ведомого на ведущий. Ведущий передаёт первый байт – адрес ведомого. Ведомый выдаёт бит подтверждения. Затем следует число байт данных, переданных ведущим ведомому. Ведущий возвращает бит подтверждения после всех других полученных байтов кроме последнего байта. В конце последнего полученного байта, не выставляется бит подтверждения.
Главное устройство генерирует всю последовательность тактовых импульсов и условие STOP и START. Передача заканчивается условием STOPили повторным условием START. Так как повторное условие START - также начало следующей последовательной передачи, шина не освобождается.
DS1340 может работать в следующих двух режимах:
Режим ведомого приёмника (Режим Записи): Последовательные данные и такты получаются через SDA и SCL. После того, как каждый байт получен, передаётся бит подтверждения. START и STOP состояние распознаются как начало и конец последовательной передачи.
Распознавание адреса выполняется аппаратными средствами после приема адреса ведомого и бита направления.
Байт адреса ведомого - это первый полученный байт после того, как ведущий генерирует условие START. Байт адреса ведомого содержит 7 битов DS1340 адрес, который является 1101000, сопровождаемым битом направления (R/W), который является 0 для записи. После получения и декодирования байта адреса ведомого, DS1340 выводит бит подтверждения на SDA. После того, как DS1340 признает, что адрес ведомого + бит записи, ведущий передаёт адрес слова в DS1340. Это устанавливает указатель регистра на DS1340, с передачей DS1340 подтверждения. Ведущий может тогда передать ноль или больше байт данных, с DS1340 каждый полученный байт подтверждается битом подтверждения. Приращения регистра указателя после передачи каждого байта данных. Ведущий генерирует условие STOP, чтобы закончить запись данных.
Режим передачи ведомым (Режим Чтения): первый полученный байт обрабатывается точно также как и в режиме приёмника. Однако, в этом режиме, бит направление указывает, что направление передачи полностью изменено. DS1340 передает последовательные данные относительно SDA, в то время как последовательные импульсы появляются на SCL. START и STOP условия распознаются как начало и конец последовательной передачи. Аппаратные средства исполняют распознавание адреса после приема адреса ведомого и бита направления. Байт адреса ведомого - первый полученный байт после того, как ведущий сгенерировал условие START. Байт адреса ведомого содержит 7-ми битный DS1340 адрес, который является 1101000, сопровождаемый битом направления (R/W), который равен 1 для чтения. После получения и декодирования байта адреса подчинённого, DS1340 выдаёт бит подтверждения на SDA. DS1340 тогда начинает передавать данные, начинающиеся с адреса регистра, на который указывает указатель регистра. Если указатель регистра не записан перед инициированием режима чтения, первый адрес, который читается – это последний, сохраненный в указателе регистра. DS1340 не должен получить подтверждение, чтобы закончить чтение (The DS1340 must receive a not acknowledge to end a read).
Рисунок 8 Запись данных – режим приёма ведомым
Рисунок 9. Чтения данных – режим передачи ведомым
Рисунок 10. Запись-чтение Данных (Указатель Записи, Затем Чтение) – ведомый получает и передаёт данные
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.