Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Stenin Lab / C8051F60-67-устройство МК.pdf
Скачиваний:
196
Добавлен:
10.02.2015
Размер:
5.19 Mб
Скачать

C8051F060/1/2/3/4/5/6/7

20.3. Режимы работы модуля SMBus

Модуль SMBus может быть настроен для работы как в режиме ведущего, так и в режиме ведомого. В любой конкретный момент времени он может работать в одном из четырех режимов: ведущий передатчик, ведущий приемник, ведомый передатчик, ведомый приемник. Значение регистра состояния SMB0STA определяет состояние режима передачи модуля SMBus0 (см. табл.20.1). Приведенные ниже описания режимов показывают применение модуля SMBus0 с использованием управления по прерываниям; кроме этого работа с модулем SMBus0 возможна в режиме опроса.

20.3.1. Режим ведущего передатчика

Последовательные данные выдаются на линию SDA, а тактовые импульсы выдаются на линию SCL. SMBus0 генерирует бит START и затем передает первый байт, который содержит адрес целевого ведомого устройства и бит направления. В этом случае бит направления (R/W) должен быть сброшен в 0, инициируя операцию записи. Затем модуль SMBus0 передает один или несколько байт последовательных данных, ожидая подтверждения (ACK) от ведомого после каждого байта. Для обозначения конца сеанса передачи последовательных данных ведущее устройство генерирует бит STOP.

Рисунок 20.4. Передача данных в режиме ведущего

 

 

S

SLA

W

A

Байт данных

 

A

Байт данных

 

A

P

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прерывание

 

 

Прерывание

 

Прерывание

 

Прерывание

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Полученные интерфейсом

 

 

S = START

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SMBus

 

 

 

 

 

 

 

P = STOP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A = ACK

 

 

 

 

 

 

Переданные интерфейсом

 

 

W = WRITE (ЗАПИСЬ)

 

 

 

 

 

 

 

 

SMBus

 

 

 

 

 

 

 

SLA = Адрес ведомого

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20.3.2. Режим ведущего приемника

Последовательные данные принимаются с линии SDA, а тактовые импульсы выдаются на линию SCL. Модуль SMBus0 генерирует бит START и затем передает первый байт, который содержит адрес целевого ведомого устройства и бит направления. В этом случае бит направления (R/W) должен быть установлен в 1, инициируя операцию чтения. Модуль SMBus0 принимает последовательные данные от ведомого по линии SDA, при этом генерирует тактовые импульсы на линии SCL. После приема каждого байта модуль SMBus0 генерирует биты подтверждения (ACK) или неподтверждения (NACK) в зависимости от состояния бита АА регистра SMB0CN. Для обозначения конца сеанса передачи последовательных данных ведущий генерирует бит

STOP.

Рисунок 20.5. Прием данных в режиме ведущего

 

 

 

S

SLA

R

A

Байт данных

 

A

Байт данных

 

N

P

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прерывание

 

 

Прерывание

 

Прерывание

 

Прерывание

 

 

 

 

 

Полученные интерфейсом

 

 

S = START

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SMBus

 

 

 

 

 

 

 

P = STOP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A = ACK

 

 

 

 

 

 

 

 

Переданные интерфейсом

 

 

N = NACK

 

 

 

 

 

 

 

 

 

 

R = READ (ЧТЕНИЕ)

 

 

 

 

 

SMBus

 

 

 

 

 

 

 

SLA = Адрес ведомого

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ред. 1.2

238