Сброс и обнаружение присутствия на линии

В предыдущем разделе мы узнали, как происходит чтение и запись отдельных битов. Возникает вопрос, как происходит их разделение па байты. Байты формируются путем подсчета битов. Байты пере­даются младшим битом вперед. Первые восемь битов — это первый байт. Следующие восемь битов — второй байт. И гак далее. Начало же всей этой цепочки определяется сигналом сброса. Любой цикл обмена данными в сети MicroLAN начинается с импульса сброса. Импульс сброса — это сверхдлинный отрицательный импульс на шине I-Wirc. вырабатываемый ведущим устройством.

Временная диаграмма, иллюстрирующая процесс формирования импульса сброса, приведена па рис. 4.15. С импульсом сброса тесно связан еще один служебный сигнал — сигнал присутствия на шипе. Сигнал присутствия вырабатывает каждое Slave уст­ройство сразу после окончания действия импульса сброса. Master устройство должно проконтролировать наличие этого импульса. Если импульса присутствия нет, то это значит, что на линии нет ни одного Slave устройства.

Кроме инициации импульсов присутствия импульс сброса пере­водит в исходное состояние всю систему. Любые незаконченные процессы на линии моментально завершаются, и отсчет битов начинается сначала. Временные характеристики сигнала сброса и сигнала присутствия на линии приведены на рис. 4.15. Длитель­ность импульса сброса должна быть не менее 4S0 мкс. Процесс передачи информации но линии может начинаться не раньше, чем через 480 мкс после окончания действия импульса сброса. В этом временном интервале и ожидается появление сигнала присутствия. Для этого после окончания импульса сброса Master «отпускает» линию и ждет сигнала от Slave устройств.

Каждое Slave устройство, обнаружив импульс сброса, выдерживает паузу в 15...60 мкс. а затем «подсаживает» линию. Длительность импульса присутствия составляет 60...240 мкс. Сигналы присутст­вия от всех Slave устройств сливаются в один общий импульс. Ведущее устройство проверяет наличие нулевого уровня на линии в средние того интервала. Если сигнал обнаружен, то это зна­чит. что на линии имеется хотя бы одно нормально работаю:

Slave устройство и Мастер может продолжать работу в сети. Если сигнал не обнаружится, то микропроцессор перейдет к обработке этой ситуации. Обычно в этом случае он выдает сигнал ошибки (зуммер, светодиод, надпись на дисплее и т.д.).

clip_image002

Итак, мы познакомились с самым низким уровнем протокола 1-Wire, и знаем, как передается информация на уровне отдель­ных битов. Теперь перейдем к следующему уровню. Этот уровень определяет, каким же образом Master устройство управляет на­правлением передачи информации по шине, и как передается информация па уровне байтов. Для этого в сети MicroLAN су­ществует такое понятие, как команды. Master посылает команды. • зее Slave устройства их выполняют. Любая операция в сети MicroLAN начинается с команды. Команда представляет собой один байт информации.

Каждая команда имеет свой собственный код. Для того, чтобы по­нять. как работает механизм передачи команд, рассмотрим, как вы­полняется команда «Чтение ПЗУ» (Read ROM). Под ПЗУ понимается епециальная область памяти микросхемы, где при помощи лазера записан ее индивидуальный код (ID-код). Команда «Чтение ПЗУ» позволяет микроконтроллеру (Master устройству) прочитать этот код. На рис. 4.16 приведена временная диаграмма сигнала, возникающего на линии l-Wire в процессе выполнения команды «Чтение ПЗУ» (для удобства восприятия все импульсы внутри пакетов условно показаны одной длительности). Следует заметить, что команда «Чтение ПЗУ», в отличие от всех остальных команд, может корректно выполняться только в том случае, когда на шине имеется одно Master и одно Slave устройство. Почему это так. мы узнаем позже.

clip_image004

Выполнение команды начинается с импульса сброса. Затем Slave устройство вырабатывает, a Master проверяет сигнал присутствия на линии. Если сигнал на месте. Master выдаст на линию код команды «Чтение ПЗУ» (ЗЗН). Код выдается в режиме записи. Получив это! код, Slave микросхема переключается в режим выдачи информации. В этом режиме Master читает из Slave микросхемы 64 бита (8 байт), составляющие се ID код. Последние восемь битов 1Г) кода- это контрольная сумма. Она вычисляется по специальному алгоритму из его первых 56 битов. Микропроцессор проверяет контрольную сумму и в случае несоответствия повторяет процедуру «Чтение ПЗУ».

Команда «Чтение ПЗУ» далеко не единственная в протоколе 1- Wire шины. Существует целая система команд, позволяющая гибко управлять процессами обмена информации по шине. Настало время перейти к подробному изучению всех этих команд.

Литература:
Ан П., А64 Сопряжение ПК с внешними устройствами: Пер. с англ. - М.: ДМК Пресс, 2001. - 320 c.: ил.

Предлагаю ознакомиться с аналогичными статьями: