Смекни!
smekni.com

Разработка системы управления кондиционером (стр. 3 из 9)

Рассмотрим принципиальную электрическую схему, реализующую 1-Wireинтерфейс. Схема соединения ведущего и ведомого устройств посредством однопроводной шины приведена на рисунке 7. На этом рисунке также показаны особенности схемной реализации выходных каскадов ведущего и ведомого устройств. В схеме 1-Wireинтерфейса используются выходные каскады с открытым коллектором (стоком) и общей нагрузкой RH для всех элементов сети. В спецификации для 1-Wireинтерфейса специально оговаривается, что резистор RH должен находиться в непосредственной близости от ведущего устройства.

Биполярный транзистор в выходном каскаде ведущего устройства показан условно. С не меньшим (а скорее большим) успехом можно применять микросхемы, у которых выходные каскады построены по КМОП технологии. Ведомые устройства обычно построены на КМОП транзисторах. В режиме ожидания все выходные транзисторы закрыты. На шине присутствует напряжение логической единицы. Информация по шине передается при помощи отрицательных импульсов. Любое устройство, подключенное к шине, как ведущее, так и ведомое, может создавать отрицательные импульсы и тем самым передавать информацию. Однако ведомое устройство начинает процесс передачи только под управлением ведущего.

В составе ведомого устройства имеется источник тока, показанный на рисунке 7 двумя пересекающимися окружностями. Этот источник создает внутреннюю утечку на входе 1-Wireинтерфейса. Смысл этой утечки – создать нулевой уровень сигнала на внутренних элементах ведомого устройства при его отключении от шины 1-Wire.Когда соединение будет восстановлено, внутренняя логика ведомой микросхемы обнаруживает перепад напряжения с нуля на единицу. Сразу после получения такого сигнала ведомая микросхема должна выдать на шину 1-Wire сигнал присутствия.


Рисунок 7 – Электрическая схема 1-Wireинтерфейса

Каждое из подключенных устройств (ведущее и ведомое) должно содержать специальное управляющее устройство, реализующее протокол шины 1-Wire. Именно протокол определяет все правила передачи информации.

Протокол 1-Wire имеет несколько разных уровней. Самый низкий уровень описывает, каким образом передаются отдельные биты. При этом предусмотрен двусторонний обмен информацией. Все операции на шине производятся исключительно под управлением Masterустройства. Оно может выполнять операции двух видов: записывать информацию в Slave устройство и считывать информацию из него. Информация передается побайтно, в последовательном виде, бит за битом, начиная с младшего бита. В обоих случаях Masterустройство вырабатывает на шине тактовые импульсы. Для этого оно периодически «подсаживает» шину при помощи своего 1-Wireинтерфейса. Полезная информация передается путем изменения длительности этих импульсов.

При записи информации длительностью импульсов управляет Masterустройство. В режиме чтения Masterустройство начинает формирование импульса, но Slave устройство может продлевать длительность любого импульса, «подсаживая» в свою очередь сигнал на линии в нужный момент. На рисунке 8 изображены две временные диаграммы. Верхняя диаграмма иллюстрирует режим записи двух разных битов информации, а нижняя – режим чтения. Участки диаграммы, где линия «отпущена» и уровень сигнала на линии определяется резистором RH , изображены на диаграмме при помощи тонких линий. Участки, где один из элементов сети «подсаживает» линию, изображены при помощи толстых линий.

Рассмотрим, как происходит запись бита. В исходном состоянии все Slave устройства, подключенные к шине, находятся в режиме ожидания. Линия «отпущена». То есть выходные транзисторы всех элементов шины закрыты, и напряжение на шине определяется резистором нагрузки RH . Для того, чтобы записать данные в одно из Slave устройств, Master начинает формировать отрицательные синхроимпульсы (верхняя диаграмма на рисунке 8). На каждый передаваемый бит формируется один импульс. Импульсы передаются путем «подсаживания» линии до нуля. Для передачи каждого бита выделяется промежуток времени стандартной длительности. Этот промежуток получил название «слот» (Slot). Как видно из рисунка 8, величина слота для передачи одного бита информации (Tx) должна лежать в пределах от 60 до 120 мкс.


Рисунок 8 – Временная диаграмма процесса записи и чтения одного бита

Если значение передаваемого бита равно 0, то Master вырабатывает «длинный» импульс. Его длина равна длительности слота. Для передачи «единичного» бита Master вырабатывает «короткий» импульс, который, по сути, является чистым синхроимпульсом (1 мкс). Оставшаяся часть сигнала должна быть заполнена единичным сигналом. Между двумя слотами должен быть небольшой промежуток, во время которого сигнал на шине тоже равен единице. Slave устройство в этом режиме лишь принимает сигнал. Для этого оно постоянно находится в режиме ожидания. Обнаружив начало синхроимпульса, Slave устройство начинает процесс приема информации. Передний фронт этого импульса служит Slave устройству началом отсчета. Выдержав паузу, равную длительности синхроимпульса, Slave устройство считывает уровень сигнала на линии. Если в этот момент времени уровень сигнала на линии равен нулю, значит и передаваемый бит равен нулю. Если же сигнал будет равен единице, то бит равен единице. Протокол шины 1-Wire жестко определяет длительность слота. Интервал между слотами в свою очередь имеет ограничение только на минимальное значение – 1мкс. Максимальное значение этого интервала неограниченно. С помощью этого интервала может легко регулироваться скорость передачи данных от своего максимального значения (16,3 Кбит/с) практически до нуля.

Отличие процесса чтения бита (нижняя диаграмма на рисунке 8) от записи состоит в том, что Master вырабатывает только синхроимпульсы (короткой длительности). Обнаружив синхроимпульс, Slave устройство должно удлинить или не удлинять этот синхроимпульс в пределах слота. Если очередной считываемый бит равен нулю, то синхроимпульс удлиняется Slave устройством, если же он равен единице, то удлинения не происходит. На рисунке 8 участки временной диаграммы, где линию «подсаживает» Master устройство, изображены толстой сплошной линией. Участки, которые «подсаживает» Slave устройство изображены прерывистой сплошной линией. Master устройство считывает эту информацию, контролируя уровень сигнала внутри слота сразу после синхроимпульса.

Для надежной работы однопроводного интерфейса необходимо, чтобы в процессе передачи информации всеми элементами сети строго соблюдались временные параметры. При этом более жесткие требования предъявляются к Master устройству, так как в его роли выступает микроконтроллер, способный с высокой точностью отрабатывать любые временные интервалы. При записи ведомое устройство (в нашем случае датчик температур), обнаружив на шине передний фронт синхроимпульса, должно сформировать задержку минимум в 15 мкс и затем произвести проверку сигнала на шине. Допустимый разброс времени задержки лежит в пределах от 15 до 60 мкс. Этот диапазон показан на рисунке 8 в виде области, обозначенной как «Зона проверки уровня Slave». В режиме чтения бита Master вырабатывает только синхроимпульсы, длительность которых равна 1 мкс. Если читаемый бит равен нулю, Slave устройство продлевает длительность синхроимпульса. Минимальная длительность продленного импульса составляет 15 мкс. Для этого временного интервала тоже допускается довольно значительный разброс: длительность удлиненного импульса может вырасти еще на 45 мкс. Если читаемый бит равен единице, удлинения синхроимпульса не происходит. Таким образом, для того, чтобы правильно оценить значение читаемого бита, Master устройство должно прочитать уровень сигнала на шине сразу после окончания синхроимпульса, но не позднее, чем через 15 мкс. Зона проверки для Master устройства в режиме чтения значительно уже аналогичной зоны для Slave устройства в режиме записи.

Ряд отдельных бит при чтении или записи формируется в байты. Байты передаются младшим битом вперед. Первые восемь битов – это первый байт. Следующие восемь – второй байт, и так далее. Начало всей этой цепочки определяется сигналом сброса. Импульс сброса – это сверхдлинный отрицательный импульс на шине 1-Wire, вырабатываемый ведущим устройством. Временная диаграмма, иллюстрирующая процесс формирования импульса сброса, приведена на рисунке 9. С импульсом сброса тесно связан еще один служебный сигнал – сигнал присутствия на шине. Сигнал присутствия вырабатывает каждое Slave устройство сразу после окончания действия импульса сброса. Master устройство должно проконтролировать наличие этого импульса. Если импульса нет, значит на линии нет ни одного Slave устройства.


Рисунок 9 - Временная диаграмма процесса начального сброса

Кроме инициации импульсов присутствия импульс сброса переводит в исходное состояние всю систему. Любые незаконченные процессы на линии моментально завершаются, и отсчет битов начинается с начала. Длительность импульса сброса должна быть не менее 480 мкс. Процесс передачи информации по линии может начинаться не раньше, чем через 480 мкс после окончания действия импульса сброса (рисунок 9). В этом временном интервале и ожидается появление сигнала присутствия. Для этого после окончания импульса сброса Master «отпускает» линию и ждет сигнала от Slave устройства. Slave устройство, обнаружив импульс сброса, выдерживает паузу в 15..60 мкс, а затем «подсаживает» линию. Длительность импульса присутствия составляет 60..240 мкс. Ведущее устройство проверяет наличие нулевого уровня на линии в середине этого интервала. Если сигнал обнаружен, то это значит, что на линии имеется нормально работающее Slave устройство и Masterможет продолжать работу в сети. Если сигнал не обнаружится, микроконтроллер перейдет к обработке этой ситуации.