Файл: Учимся программировать микроконтроллеры Pic на языке PicBasicPro (В.В. Хилинский, 2007).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.06.2025
Просмотров: 1799
Скачиваний: 8
Приложение 1.
Однопроводный интерфейс или интерфейс “Micro-LAN”.
Семейство приборов, известное в настоящее время под общим названием
Button, было анонсировано компанией Dallas Semiconductor в 1991 г. под товарным знаком “Touch Memory”, что переводится примерно, как “прикоснись— память”. Это название достаточно полно соответствовало сути нового класса приборов, содержащих, как минимум, постоянную память (а во многих приборах еще и оперативную память и другие узлы), считывание которой возможно при кратковременном прикосновении прибора к специальному контактирующему устройству. Интерфейс, поддерживаемый этими приборами, первоначально получил название “1-Wire”, т. е. однопроводный, а позднее стал называться интерфейсом “Micro-LAN” (Miniature Local Area Network).
Можно назвать следующие привлекательные черты этой системы: 1) наличие большой номенклатуры взаимозаменяемых аппаратных средств (датчиков, аппаратных ключей, модулей памяти и т.д.); 2) наличие простого (дешевого) канала связи (однопроводный интерфейс); 3) возможность работы без внутреннего источника питания, только за счет энергии получаемой вместе с информационным сигналом; 4) гибкая топология сетей сбора информации; 5) возможность организации беспроводной сети на основе автономных энергонезависимых датчиков накопителей информации.
В основу работы сети Micro-LAN положена организация связи главного или ведущего микроконтроллера или микро ЭВМ с периферийными устройствами по однопроводной шине. Однопроводная шина представляет собой систему, состоящую из одного мастера шины и одного или нескольких ведомых (адресуемых ключей, датчиков и т.п.). Сеть Micro-LAN в общем случае строится по древовидной структуре (см. рис. 42). В корне такого дерева располагается ведущий, а на ветвях его находятся ведомые устройства. В узлах сочленения ветвей находятся адресуемые ключи. Для того чтобы получить информацию с определенного устройства ведущий вначале должен подключиться к соответствующему ключу, который после получения определенной команды подключит ведущего к ветви, на которой находится нужное устройство.
172
Рисунок 42. Древовидная структура сети Micro-LAN.
Однопроводная шина имеет по определению только один сигнальный провод и провод общей земли (см. рис. 43). Важно, чтобы любое подключенное к ней устройство имело возможность захватить эту шину в некоторый момент времени. Для этого каждое из подсоединенных устройств должно иметь либо выход с открытым коллектором либо выход с тремя состояниями.
Рисунок 43. Схема подключения абонентов к однопроводной сети.
Подобный однопроводный интерфейс уже реализован в большом числе микросхем. Все эти приборы многофункциональны и весьма полезны при разработке различных приложений. В частности, они обеспечивают возможность совместного использования однопроводной шины вместе с другими подобными приборами. В каждом таком приборе при его изготовлении лазером записывается индивидуальный идентификационный код. Почти все эти приборы (микросхемы) могут получать питание от центрального устройства по однопроводной шине. Наиболее известными у нас являются цифровые термометры DS1820 и DS18S20. Получить доступ к какому-либо устройству можно в такой последовательности:
173
•Произвести инициализацию
•Выполнить одну из команд функций ПЗУ
•Выполнить команду управления или чтения памяти.
Передача данных по однопроводной шине инициируется главным или ведущим устройством (обычно эта роль отводится основному микроконтроллеру). Перед первым обращением к периферийному устройству сначала происходит обмен сигналами Reset (Сброс) и Presence (Наличие или присутствие). Сигнал Reset формируется ведущим устройством путем перевода линии в низкий уровень на 480-960 мкс. В ответ на этот сигнал периферийное устройство генерирует ответный, устанавливая низкий уровень линии приблизительно на 100 мкс (от 60 до 240 мкс). Импульс присутствия указывает мастеру на то, что хотя бы одно из ведомых устройств присутствует в сети. После того как мастером был получен импульс присутствия, он может выдать в линию команду первой группы, позволяющей исследовать состав группы или если состав известен, обратиться к конкретному устройству. Команды эти однобайтовые и передаются побитно. Причем первым передается младший бит.
Посылки ведутся фиксированными временными интервалами – слотами. Если передается логическая единица то передающее устройство переводит шину на короткий промежуток времени в низкий уровень и возвращает шину вновь в высокое состояние на время слота. Если же необходимо передать логический ноль то передающее устройство переводит шину в низкое состояние и удерживает ее в таком состоянии в течении всего времени слота. Затем шина вновь возвращается в высокое состояние.
Сигналы однопроводной шины.
Для надежного функционирования однопроводной сети требуется строгое выполнение протокола обмена.
Протокол состоит из нескольких типов сигналов. Это импульс сброса, импульс присутствия и импульсы передаваемых данных – логический ноль и логическая единица. На рис. 44 приведена инициализирующая последовательность необходимая для начала любых обменов данными по шине.
Рисунок 44. Инициализирующая последовательность сигналов однопроводной сети.
Мастер шины выдает в шину импульс сброса (сигнал низкого уровня длительностью не менее 450 мкс и не более 960 мкс). Ведомое устройство,
174
обнаружив импульс сброса и выждав интервал времени (минимум 15 и максимум 60 мкс) выдает в линию импульс присутствия (сигнал низкого уровня длительностью не менее 60 мкс но не более 240 мкс). Затем начинается непосредственно обмен данными. Мастер выдает команды и в зависимости от команды начинает принимать информацию от периферийных устройств. Передача команд и прием информации происходит с использованием временных интервалов – слотов разделяющих соседние биты и слова. Каждый слот должен иметь длительность не менее 60 мкс. Одним временным слотом передается только один бит данных. Между соседними слотами должна присутствовать восстановительная пауза длительностью не менее 1 мкс. Ведомым устройствам допускается иметь существенные отличия от номинальных выдержек времени. Однако это требует более точного отсчета времени Мастером, чтобы гарантировать корректность связи с подчиненными, у которых различаются временные базисы. Таким образом, следует в точности выдерживать временные границы, рассматриваемые в следующих разделах.
Все сеансы передачи данных инициируются Мастером.
Основные сигналы шины.
Ведущий инициирует каждую связь на битном уровне. Это означает, что передача каждого бита, независимо от направления, должна быть инициирована ведущим. Это достигается установкой низкого уровня на шине, который синхронизирует логику всех остальных устройств. Существует 5 основных сигналов для связи по однопроводной шине: “Запись лог. 1”, “Запись лог. 0”, “Чтение” и рассмотренные нами “Сброс” и “Присутствие”.
Сигнал “Запись лог. 0”.
Сигнал “Запись лог. 0” показан на рисунке 50. Ведущий формирует низкий уровень в течение не менее 60 мкс, но не дольше 120 мкс.
Сигнал “Запись лог. 1”.
Сигнал “Запись лог. 1” показан на рисунке 45. Мастер устанавливает низкий уровень в течение 1…15 мкс. После этого, в течение оставшейся части временного слота он освобождает шину.
Рисунок 45. Диаграммы записи сигналов лог. 0 и лог. 1 в ведомое устройство.
175
Сигнал “Чтение”.
Если необходимо считать данные из ведомого устройства Мастер генерирует слоты чтения. Слот чтения инициируется сразу же, как только Мастер переводит шину из высокого состояния в низкое. Шина данных должна оставаться в низком состоянии как минимум 1 мкс. Данные от ведомого устройства будут истинными в течении 15 мкс после снижения уровня Мастером. Это значит, что Мастер после формирования слота чтения в течении 1 мкс должен освободить шину чтобы дать возможность ведомому устройству выставить на шине свои данные. Процесс “Чтение” показан на рисунке 46. Ведущий устанавливает низкий уровень в течение 1…15 мкс. После этого подчиненный удерживает шину в низком состоянии, если желает передать лог. 0. Если необходимо передать лог. 1, то он просто освобождает линию. Сканирование шины необходимо выполнять по истечении 15 мкс после установки низкого уровня на шине. Если смотреть со стороны ведущего, сигнал “Чтение” является, в сущности, сигналом «Запись лог. 1». Собственно внутреннее состояние подчиненного будет определять это сигнал «Запись лог. 1» или «Чтение».
Рисунок 46. Диаграммы считывания Мастером лог. 0 и лог. 1.
Команды функций ПЗУ.
Все команды функции ПЗУ имеют длину в 8 бит. Причем младший бит команды передается первым. Каждая ИС из семейства 1-Wire содержит ПЗУ, в котором хранится уникальный 64-разрядный идентификационный код (ИК). Данный код может использоваться для адресации или идентификации конкретной ИС на шине. Идентификатор состоит из трех частей: 8 бит кода семейства, 48 бит серийного номера и 8 бит CRC-кода, вычисленного от первых 56 бит. Имеется небольшой набор команд, который работает совместно с 64-разр. ИК. Эти команды называются команды функций ПЗУ. В таблице 2 приведен перечень четырех команду ПЗУ.
Таблица 33 – Команды ПЗУ
Команда |
Код |
Назначение |
|
READ ROM |
33H |
Чтение ПЗУ |
|
(ЧТЕНИЕ ПЗУ) |
(идентификация) |
||
SKIP ROM |
CCH |
Игнорирование ПЗУ (пропуск |
|
176 |
(ПРОПУСК ПЗУ) |
адресации) |
||
MATCH ROM |
Выбор ПЗУ (выбор |
||
(СОВПАДЕНИЕ |
55H |
||
ведомого) |
|||
ПЗУ) |
|||
SEARCH ROM |
Исследование ПЗУ |
||
F0H |
(получение |
||
(ПОИСК ПЗУ) |
идентификационных данных |
||
о всех устройствах на шине) |
Команда «Чтение ПЗУ».
Эта команда позволяет Мастеру шины прочитать 64 разрядный ИК ведомого устройства. Этот код состоит из 8 бит кода принадлежности к семейству однопроводных устройств, 48 битовый серийный номер и 8 битового циклического избыточного кода (ЦИК). Эту команду можно использовать если к ведущему подключено только одно ведомое устройство. Если же к шине подключено больше ведомых устройств, то в этом случае весьма вероятен конфликт данных.
Команда «Игнорирование ПЗУ».
Эта команда экономит время, когда к шине подключено только одно ведомое устройство и Мастер это знает. Она позволяет Мастеру обратиться к функциям памяти без предварительного генерирования 64 разрядного кода ведомого устройства. Если же на шине присутствует несколько ведомых устройств то этой командой можно передать общую для всех них команду.
Команда «Выбор ПЗУ»
Команда “Выбор ПЗУ” используется для адресации конкретного подчиненного устройства на шине. После выполнения команды “Совпадение ПЗУ” передается 64-разрядный ИК. По завершении, только тому подчиненному устройству, который принял свой ИК, разрешается отвечать после приема следующего импульса сброса.
Команда «Исследование ПЗУ».
Команда “Исследование ПЗУ” может использоваться, если идентификаторы подчиненных устройств неизвестны заранее. Это делает возможным обнаружить идентификаторы всех подчиненных устройств, подключенных к шине. Для этого, вначале передается команда “Пропуск ПЗУ”. Каждый ведомый размещает первый бит своего идентификатора на шине. Мастер считывает результат, как логическое «И» над всеми первыми битами идентификаторов всех ведомых устройств. Затем ведомые размещают на шине двоичное дополнение к первому биту своего идентификатора. Мастер считывает состояние шины, которое есть результат логического «И» над всеми дополнениями к первому биту идентификатора всех
177