F40-43a (1041604), страница 44

Файл №1041604 F40-43a (Раздаточные материалы) 44 страницаF40-43a (1041604) страница 442017-12-26СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 44)

Кроме того, ведущий не может установить на линии SCL высокий уровень, чтобыисправить бит ошибки. Чтобы решить эту проблему, протокол SMBus определяет, что устройства,участвующие в обмене, должны распознавать как условие «таймаута» любой тактовый цикл, в котором сигналудерживается на низком уровне более 25мс. Устройства, которые обнаружили такое условие таймаута, должныв течение 10мс после этого сбросить свои модули обмена.19.2.4. Таймаут высокого уровня на линии SCL (шина SMBus свободна)Спецификация SMBus оговаривает, что если устройство удерживает линии SCL и SDA на высокомуровне более 50 мкс, то шина считается свободной. Если устройство на шине SMBus ожидает освобожденияшины, чтобы сгенерировать бит START (в ведущем режиме), то он будет сгенерирован сразу же послеистечения таймаута освобождения шины.Ред.

1.3232C8051F040/1/2/319.3. Режимы работы модуля SMBusМодуль SMBus может быть настроен для работы как в режиме ведущего, так и в режиме ведомого. Влюбой конкретный момент времени он может работать в одном из четырех режимов: ведущий передатчик,ведущий приемник, ведомый передатчик, ведомый приемник. Значение регистра состояния SMB0STAопределяет состояние режима передачи модуля SMBus0 (см. табл.19.1). Приведенные ниже описания режимовпоказывают применение модуля SMBus0 с использованием управления по прерываниям; кроме этого работа смодулем SMBus0 возможна в режиме опроса.19.3.1. Режим ведущего передатчикаПоследовательные данные выдаются на линию SDA, а тактовые импульсы выдаются на линию SCL.SMBus0 генерирует бит START и затем передает первый байт, который содержит адрес целевого ведомогоустройства и бит направления. В этом случае бит направления (R/W) должен быть сброшен в 0, инициируяоперацию записи.

Затем модуль SMBus0 передает один или несколько байт последовательных данных, ожидаяподтверждения (ACK) от ведомого после каждого байта. Для обозначения конца сеанса передачипоследовательных данных ведущее устройство генерирует бит STOP.Рисунок 19.4. Передача данных в режиме ведущегоSSLAПрерываниеWAБайт данныхAБайт данныхПрерываниеПрерываниеПолученные интерфейсомSMBusAPПрерываниеS = STARTP = STOPA = ACKW = WRITE (ЗАПИСЬ)SLA = Адрес ведомогоПереданные интерфейсомSMBus19.3.2. Режим ведущего приемникаПоследовательные данные принимаются с линии SDA, а тактовые импульсы выдаются на линию SCL.Модуль SMBus0 генерирует бит START и затем передает первый байт, который содержит адрес целевоговедомого устройства и бит направления.

В этом случае бит направления (R/W) должен быть установлен в 1,инициируя операцию чтения. Модуль SMBus0 принимает последовательные данные от ведомого по линииSDA, при этом генерирует тактовые импульсы на линии SCL. После приема каждого байта модуль SMBus0генерирует биты подтверждения (ACK) или неподтверждения (NACK) в зависимости от состояния бита ААрегистра SMB0CN. Для обозначения конца сеанса передачи последовательных данных ведущий генерирует битSTOP.Рисунок 19.5. Прием данных в режиме ведущегоSSLAПрерываниеRAБайт данныхПрерываниеAПрерываниеNPПрерываниеS = STARTP = STOPA = ACKN = NACKR = READ (ЧТЕНИЕ)SLA = Адрес ведомогоПолученные интерфейсомSMBusПереданные интерфейсомSMBus233Байт данныхРед. 1.3C8051F040/1/2/319.3.3.

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

Модуль SMBus0 выходит из режима ведомого после приема бита STOP от ведущего.Рисунок 19.6. Передача данных в режиме ведомогоПрерываниеSSLARAБайт данныхAБайт данныхПрерываниеПрерываниеNPПрерываниеS = STARTP = STOPN = NACKW = WRITE (ЗАПИСЬ)Полученные интерфейсомSMBusПереданные интерфейсомSMBusSLA = Адрес ведомого19.3.4. Режим ведомого приемника.Последовательные данные принимаются с линии SDA, а тактовые импульсы принимаются с линииSCL.

Модуль SMBus0 принимает бит START, а вслед за ним байт данных, который содержит адрес ведомого ибит направления. В этом случае бит направления (R/W) должен быть сброшен в 0, инициируя операцию записи.Если принятый адрес ведомого соответствует адресу, хранящемуся в регистре SMB0ADR, то модуль SMBus0генерирует бит подтверждения (ACK). Модуль SMBus0 также будет генерировать бит подтверждения (ACK),если принятый адрес является адресом общего вызова (0х00) и бит разрешения адреса общего вызова(SMB0ADR.0) установлен в 1.

Модуль SMBus0 принимает один или несколько байт последовательных данных;после приема каждого байта модуль SMBus0 передает биты подтверждения (ACK) или неподтверждения(NACK) в зависимости от состояния бита АА регистра SMB0CN. Модуль SMBus0 выходит из режима ведомогоприемника после приема бита STOP от ведущего.Рисунок 19.7. Прием данных в режиме ведомогоПрерываниеSSLAWAБайт данныхПрерываниеAБайт данныхПрерываниеПолученные интерфейсомSMBusAPПрерываниеS = STARTP = STOPA = ACKR = READ (ЧТЕНИЕ)Переданные интерфейсомSMBusSLA = Адрес ведомогоРед. 1.3234C8051F040/1/2/319.4. Регистры специального назначения модуля SMBusДля доступа к интерфейсу SMBus и управления им используются пять регистров SFR: региструправления SMB0CN, регистр установки тактовой частоты SMB0CR, регистр адреса SMB0ADR, регистрданных SMB0DAT и регистр состояния SMB0STA.

Все эти регистры описываются в следующих разделах.19.4.1. Регистр управленияРегистр управления SMB0CN используется для управления модулем SMBus и его настройки. Все битыэтого регистра могут быть прочитаны и записаны программно. Два из управляющих битов такжеустанавливаются модулем SMBus0 аппаратно. Флаг прерывания от последовательного порта (SI, SMB0CN.3)устанавливается в 1 аппаратно при возникновении прерывания от модуля SMBus.

Он может быть сброшентолько программно. Флаг STOP (STO, SMB0CN.4) сбрасывается в 0 аппаратно при обнаружении на шине битаSTOP.Установка в 1 флага ENSMB включает модуль SMBus. Сброс в 0 флага ENSMB отключает модульSMBus и удаляет его с шины. Сброс флага ENSMB и затем повторная его установка в 1 приведут к сбросумодуля SMBus. Однако, флаг ENSMB не следует использовать для временного удаления устройства с шины,т.к. информация о состоянии шины будет потеряна. Вместо этого для временного удаления устройства с шиныследует использовать флаг назначения подтверждения АА (описание флага АА приведено ниже).Установка в 1 флага запуска (STA, SMB0CN.5) переведет модуль SMBus в режим ведущего. Если шинасвободна, модуль SMBus сгенерирует бит START.

Если шина занята, то модуль SMBus будет ожидать битаSTOP, свидетельствующего об освобождении шины, и затем сгенерирует бит START через 5мкс послезадержки, определяемой значением регистра SMB0CR. (В соответствии с протоколом SMBus, модуль SMBusтакже будет считать шину свободной, если шина простаивает в течение 50мкс и бит STOP не обнаружен). Еслибит STA устанавливается в 1 в то время, когда модуль SMBus находится в режиме ведущего и уже переданыодин или несколько байт, то будет сгенерировано событие «повторный START». Чтобы гарантироватьправильное функционирование, флаг STO следует явно сбросить в 0 до установки в 1 бита STA.Если флаг окончания передачи (STO, SMB0CN.4) устанавливается в 1 в то время, когда модуль SMBusнаходится в режиме ведущего, то модуль SMBus сгенерирует на шине бит STOP. В режиме ведомого флаг STOможно использовать для восстановления из состояния сбоя.

В это случае бит STOP не генерируется, но модульSMBus ведет себя так, как будто бит STOP уже получен, и переходит в режим «не адресованного» ведомогоприемника. Следует иметь ввиду, что этот условный бит STOP не вызовет освобождения шины. Шина будетоставаться занятой до тех пор, пока на ней не появится бит STOP или пока не произойдет условие таймаутаосвобождения шины.

При обнаружении на шине бита STOP модуль SMBus автоматически сбрасывает в 0 флагSTO.Флаг прерываний от последовательного порта (SI, SMB0CN.3) устанавливается аппаратно в 1, еслиинтерфейс SMBus переходит к одному из 27 возможных состояний. Если прерывания для модуля SMBusразрешены, то при установке в 1 флага SI генерируется запрос прерывания. Флаг SI должен быть сброшенпрограммно.Важное примечание: Если флаг SI установлен в 1 в то время, когда на линии SCL удерживаетсянизкий уровень сигнала, то период тактового импульса будет «растягиваться» (на участке с низким уровнемсигнала) и передача последовательных данных по шине приостановится до тех пор, пока не будет сброшен в 0флаг SI.

На длительность высокого уровня сигнала на линии SCL установка флага SI не влияет.Флаг назначения подтверждения АА (AA, SMB0CN.2) используется для задания уровня сигнала налинии SDA во время тактового импульса подтверждения на линии SCL. Установка в 1 флага АА приведет кпередаче бита подтверждения ACK (низкий уровень сигнала на линии SDA) во время тактового импульсаподтверждения на линии SCL, если устройство распознало свой адрес. Сброс в 0 флага АА приведет к передачебита «нет подтверждения» NACK (высокий уровень сигнала на линии SDA) во время тактового импульсаподтверждения на линии SCL. После передачи байта в режиме ведомого ведомое устройство можно временноудалить с шины путем сброса в 0 флага АА.

Характеристики

Тип файла
PDF-файл
Размер
4,96 Mb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Раздаточные материалы
Описания к различным сериям микроконтроллеров
Описания некоторых систем передачи данных
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее