Смекни!
smekni.com

Обработка сигналов на основе MCS-51 (стр. 4 из 4)

На такую сеть возлагаются обычно простые функции передачи сообщений за гарантированное время. Протяжность линий связи обычно не превышает десятков метров, размер сообщения – нескольких десятков байтов, а время доставки сообщений – в границах от 0.01 до 1 с. Типичными есть два режима информационного обмена в сети: широковещательный, если сообщение, которое присылается, назначается для всего остатка подсистем (микроконтроллеров сети), и абонентский, если сообщение назначается лишь одному МК. Обычно первым способом передаются разные информационные параметры, которые используются многими подсистемами. Это разрешает уменьшить загрузки сети за счет изъятия многочисленных передач одного и того же сообщения разным адресатам. Вторым способом обычно передаются команды управления от центрального устройства к исполнительным средствам или сообщения экстренного характера.

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

В сетях с единым моноканалом все МК связаны между собой одной общей (распределительной) линией связи (рис. 1). В линиях передачи данных обычно используется коаксиальный кабель или витая пара с резисторами согласования на их концах.

Известны разные методы доступа к распределительной линии (протоколы), которые разрешают осуществлять обмен данными между многими МК сети, то есть обеспечивать разделение канала связи между многими подсистемами.

Рассмотрим интервально-маркерный метод доступа к распределительному моноканалу, который разрешает устранить конфликты в канале и достаточно полно использовать пропускную способность канала. Суть метода состоит в следующем:

1. При нулевой загрузке в канале периодически появляется маркер, который генерируется одним из МК сети. Маркер содержит номер ведущего МК. Главное назначение ведущего – поддерживать синхронизм в сети за счет периодической выдачи маркера в канал.

2. Период генерации маркера состоит из определенного числа «окон», число которых равное числу МК в сети. Каждое окно имеет свой номер и принадлежит одной из подсистем.

3. В процессе захвата канала МК, которое желает выдать свой пакет (сообщение), должен дождаться появления маркера и отсчитать от него свое окно.

Если при этом его не опередят другие МК, то, дождавшись своего окна, подсистема может, не опасаясь конфликтов, начать передачу данных (рис. 14а).

4. После выдачи сообщения МК генерирует свой маркер и становится новым ведущим. Старый ведущий микросети, распознав, что моноканал захвачен, освобождается от этой роли.

5. Отсчет момента времени от маркера своего окна проводится по такому правилу. Продолжительность окна принимается равной времени передачи одного байта данных. Если ведущий имел номер l, то первое окно будет принадлежать МК с номером l+1, потом МК с номером l+2 и т.д. Время ожидания своего окна (Т) можно определить как T=t X, где t – время передачи одного байта, то есть продолжительность окна. Число Х определяется следующим образом:

где k – номер МК, который пробует захватить канал, k = 0¸(n-1); l – номер ведущего, l = 0¸(n-1); n – число МК в сети.

6. Если самый ведущему необходимо выдать сообщение, то он может захватить канал во время своего окна, то есть вместо генерации очередного маркера начать передавать свое сообщение.

Выдав маркер, ведущий МК запускает таймер на время t×(n-1), а если за это время ни единый МК не захватит канал, то весь цикл повторяется еще раз и т.д.

8. Любой МК принимает все байты, которые передаются по каналу. Для контроля пропадания маркера любой МК после приема каждого байта запускает таймер на задержку t×(n+1). Таким образом, пропадание маркера (а значит, и режима синхронизма микросети) фиксируется, если за время t×(n+1), не было передано ни одного сообщения.

9. При выявлении пропадания маркера для восстановления синхронизма в микросети любой МК выполняет следующие простые действия: выдерживает паузу продолжительностью t×(i+1), где i собственный номер МК; если во время паузы снова не было принято ни одной информации, то данный МК становится ведущей и генерирует новый маркер.

Этой процедурой обеспечивается автоматическое восстановление работы микросети при отказе МК, которое есть в данный момент ведущим.

10. При интервально-маркерном методе удается избегнуть любых конфликтов в сети по следующим причинам:

- контроль пропадания маркера осуществляется постоянно всеми МК и он полностью синхронный, так как счетчики паузы корригируются приблизительно одновременно при приеме каждого байта. Все МК обнаружат пропадание маркера одновременно;

- одновременно начинается отсчет паузы t×(i+1) всеми МК;

- микроконтроллер с меньшим номером первым генерирует маркер и восстановит синхронизм в микросети.

Последовательный порт MCS-51 допускает передачу 9-битных кодов. Используя это, можно легко ввести признак маркера таким образом, что байт маркера будет отличаться от любого информационного байта. На рис. 2б изображена структура маркера; старший бит определяет признак маркера (для маркера – 1). Бит 7 используется для простейшего контроля за паритетом. Семибитное поле адреса разрешает иметь в системе до 127 подсистем с номерами от 0 до 126. Адреса 127 зарезервированная для широковещательной передачи.

Рекомендованный формат сообщения представленный на рис. 14в и предусматривает такие поля: А0, – адреса получателя; АВ – адреса отправителя; L – длина поля данных (0–255); CRC – байт контрольной суммы.

Можно определить четыре состояния, в которых будет находиться любой МК микросети.

Приемник (R). В этом состоянии МК прослушивает канал, принимает сообщение и выбирает из них необходимую ему информацию.

Передатчик (W). В этом состоянии МК, захватив канал, передает свое сообщение.

Ведущий (Н). МК – ведущий и поддерживает синхронизм в сети.

Специальное состояние (RM). МК реализует процедуру восстановления синхронизма в сети.

Граф состояний МК микросети представленный на рис 3.

Запрос на передачу сообщения формируется в МК прикладной программой управления объектом и обозначенный RQ. Задержки, которые реализуются таймером, имеют такое содержание:

ТМ1 – контроль исчезновения маркера, задержка равная t×(n+1).

TМ2 – ожидание своего окна (t×х);

ТМЗ – ожидание окончания периода сети (t×п);

TМ4 – пауза перед выдачей маркера при восстановлении синхронизма, задержка равная t×(i+1).

Для реализации подсистемы необходимы следующие ресурсы: УАПП, таймер, два уровня прерываний. Этими ресурсами владеет MCS51, что разрешает вести передачу и прием данных со скоростью до 375 кбит/с. Время передачи одного байта, обрамленного стартовыми и стоповыми битами (плюс 9-й разряд), составляет 58,7 мкс. Пропускная способность микросети при этом равна приблизительно 17 кбайт/с.

Микроконтроллер, который работает в составе распределенной системы управления на основе локальной микросети, должен, кроме прикладной программы управления, иметь еще программные средства доступа к моноканалу. Таким образом, МК должен работать в двухпрограммном режиме с распределением всех ресурсов между этими двумя сопрограммами. Понятно, что при этом должен быть реализован механизм взаимодействия между сетевой и прикладной программами. Чаще всего этот механизм реализуется путем присвоения сетевой программе более высокого приоритета.