Диспетчеры периферийных станций Диспетчер станции CI LAN "SISNET"

|

С целью разработки CI LAN "SISNET" (Small Information Service NET) являлось создание малых распределенных систем, состоящих из РС и нескольких

clip_image002

контроллеров, и при этом обеспечение минимальных аппаратных затрат на ее создание. Топология этой сети отличается от стандартной топологии CI LAN, изображенной на рис.15. В описываемой сети отсутствует диспетчер РС, и сетевая среда (ТМ) непосредственно подключается к интерфейсу RS-232C персонального компьютера. Это накладывает ограничение и на количество станций (не более 16), и на общую длину сетевой среды (до 20 м). Второй особенностью этой сети является то, что диспетчер этой станции не содержит специализированных микросхем драйверов RS-232C (например, MAX485 или аналогичных). В качестве сетевой среды используются стандартные 9-проводные компьютерные кабели длиной 1 или 1,2 м, снабженные двумя одинаковыми разъемами DB9. диспетчер станции CI LAN "SISNET" представлен на рис.18 . На схеме показан только один сетевой разъем Х1.

На самом деле каждый контроллер имеет по два разъема, соединенных параллельно. Наращивание сетевой среды осуществляется последовательным соединением контроллеров.

В описываемой сети используется шесть интерфейсных линий RS-232C: линия TxD используется для передачи данных от станции к РС; линия RxD используется для приема данных от станции к РС; линия RTS используется как источник положительного напряжения для питания входной части MGT; линия DTR используется для генерации сигнала сброса (RST) всех контролеров сети, а также для создания через резистор R1 и диод VD1 отрицательного напряжения на конденсаторе С1; на линии R1 генерируется сигнал занятости сети Busy; линия Gnd - общий провод сетевой среды.

clip_image004

На рис. 19 показана схема диспетчера станции CI LAN на базе интерфейса RS-485. Эта схема аналогична выходной части схемы, приведенной на рис.16. Она используется во многих сетях на базе интерфейса RS-485, в том числе CI LAN "MISNET" (Middle Information NET), целью разработки которой являлось создание средних (до 32 станций) и больших (до 128 станций) CI LAN.

Приведенная схема имеет защиту входных цепей, аналогичную показанной на рис.16. Во входные цепи введена перемычка JP1, которая устанавливается на самом последнем контроллере для согласования сети. Отключение выходов передатчиков сети осуществляется переводом вывода BUSY микроконтроллера в состояние L. При этом включается нижняя оптопара D3 и вывод DE приемопередатчика D1 переводится в состояние L, что, соответственно, переводит выходы передатчика высокоимпендансное состояние. L — "0" , H — "1"

Комбинированный диспетчер станции CI LAN

Схема более сложного комбинированного диспетчера контроллера приведена на рис. 19. Такой диспетчер может быть применен с CI LAN на базе интерфейса RS-485 для подключения к сети современных измерительных приборов и промышленного оборудования, оснащенных интерфейсом RS-232C. Другим вариантом использования приведенного диспетчера может быть создание многоуровневых сетей или сетей с комбинированным интерфейсом.

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

Выходной сигнал RxD от интерфейса RS-232C с вывода 12 микросхемы DI (драйвер RS-232C) поступает на первый вход элемента ИЛИ (D3.1), на второй вход которого поступает разрешающий сигнал приема 1232_On (активный L). Выход этого элемента ИЛИ соединен с одним из выходов элемента И (D4,1), на второй

clip_image006

вход которого поступает RxD сигнал с выхода 01 микросхемы D2 (драйвер RS-485). Этот выход может быть открыт при подаче на вход 02 микросхемы D2 разрешающего сигнала приема I485_On (активный L) или переведен в высокоимпедансное состояние. При этом через резистор R4 формируется Н уровень (разрешающий) на втором входе элемента И. Таким образом, при различных комбинациях управляющих сигналов микроконтроллера может быть открыт либо один из выходных каналов, либо оба сразу.

Выходной сигнал микроконтроллера TxD поступает на вход 04 микросхемы D2 и один из входов второго элемента ИЛИ (D3,2), на второй вход которого поступает разрешающий сигнал передачи О232_Оп (активный L), а выход соединен со входом 11 (TxD) микросхемы D1. на вход 03 микросхемы D3 поступает разрешающий сигнал передачи О485_Оп (активный L). Таким образом, оба передатчика могут открываться или закрываться в любых комбинациях.

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

Информация в CI LAN передается в виде фреймов (Frame) - определенной последовательности байтов команды (от РС) и ответа (от PS). Существует стандартный формат фреймов, описанный во многих документах для локальных сетей, позволяющий работать с фреймами произвольной длины. Однако этот формат в CI LAN используется достаточно редко из-за громоздкости его обработки, избыточности и снижения производительности CI LAN при его применении.

Формат фрейма команды приведен в табл.2.

clip_image008

Таблица 2. Формат фрейма команды

№ байта

Наименование

Значение

В0

Преамбула

10101010

В1

Адрес станции

Address

В2

Код команды

Command

В3

Младший байт данных

Low Data Byte

В4

Старший байт данных

High Data Byte

В5 Контрольная сумма X (B0.. .B4)

Первый байт (В0) - преамбула - байт синхронизации. Второй байт (В1) содержит адрес станции по которому персональный компьютер направляет команду. Код команды - код операции, которую должен выполнить адресуемый контроллер (станция). Далее следуют два байта данных. Если во фрейме конкретной команды данные не нужны, - соответствующие байты заменяются нулями.

Все контроллеры станций все время готовы принять команду. Как только фрейм принят, станции сравнивают адрес фрейма (В1) со своим уникальным адресом, который может быть задан с помощью модификаторов (перемычек или переключателей) или «зашит» в ROM микроконтроллера. Если адрес принятого фрейма не соответствует индивидуальному адресу станции, фрейм игнорируется, никакие действия не производятся, и станция ожидает приема следующего фрейма. Если же адрес фрейма совпал с индивидуальным адресом станции, станция рассчитывает контрольную сумму первых пяти байт и сравнивает с принятым байтом В5. Контрольная сумма обычно считается упрощенно, все байты суммируются, а переносы в старший байт обнуляются. Если контрольная сумма не совпала, фрейм игнорируется и ожидается прием нового фрейма, в противном случае анализируется код команды, выполняются предписанные ей действия, например запись байтов данных во внешние управляющие регистры, формируется фрейм ответа в соответствии с табл. 3, и производится попытка передачи фрейма ответа.

Формат фрейма ответа очень похож на формат фрейма команды, за исключением поля В2, в котором может содержатся код ошибки или статуса состояния контроллера.

Таблица 3. Формат фрейма ответа

№ байта

Наименование

Значение

В0

Преамбула

10101010

В1

Адрес станции

Address

В2

Код ошибки

Error Code

В3

Младший байт данных

Low Data Byte

В4

Старший байт данных

High Data Byte

В5 Контрольная сумма X (B0.. .B4)

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

CI LAN.

В CI LAN обычно используются 8-разрядные микроконтроллеры, которые работают с данными длиной в один байт. Передача двух байт данных оправдана, управление цифро-аналоговыми преобразователями (DAC - Digital-to-Analog Converter) с разрядностью более байта. Количество команд, выполняемых одним контроллером, редко превышает 16. в малых сетях количество станций меньше 16, следовательно, адрес занимает полубайт.

В зависимости от ориентации, загруженности сети (количества команд и станций) и аппаратной реализации станций, можно варьировать длину фреймов команды и ответа, что значительно упрощает программное обеспечение микроконтроллера станции. Но возможен и другой вариант - в сторону увеличения длины фрейма. Все зависит от конкретной ориентации сети и предъявляемых к ней требований.

Алгоритм работы РС сводится к подаче в заданные моменты времени определенных команд и реакции на получаемые данные.

В общем случае алгоритм работы станции представлен на рис.21.

Существует достаточно простая методика, позволяющая проанализировать предельную производительность CI LAN (т. е. максимально возможное количество циклов передачи/приема фреймов в секунду без учета аварийных ситуаций и сбоев).

Ниже приведена последовательность расчета.

1. Выбирается наиболее медленнодействующий контроллер станции (хотя обычно разработчики CI LAN стремятся использовать однотипные микроконтроллеры). Для примера возьмем микроконтроллер АТ89С51.

2. Выбирается тактовая частота микроконтроллера, например, 11,059 МГц, при этом период составляет 90,424 нс. Определяется длительность одного машинного цикла (в нашем примере равный 12 периодам тактовой частоты) - 1,085089 мкс.

3. Разрабатывается наиболее короткая и наиболее длинная команда контроллера.

4. Примерно полагается суммарное время, затрачиваемое РС на формирование фрейма команды и обработку ответного фрейма. Естественно, что есть время зависит от многих факторов (типа и частоты процессора, операционной системы, алгоритма задачи и количества фоновых задач).

5. Разрабатывается тестовая программа работы станции, включающая все вышеперечисленные программные блоки.

6. С помощью программного отладчика (например, HDC8051) определяются количество циклов и время выполнения каждого из блоков программы при заданной тактовой частоте контроллера при этом исключаются любые программные задержки, связанные, например, с ожиданием приема или передачи байта.

7. Определяется полный цикл обмена LAN

TC = TPC + TFrameGet + TMonitor + TCommand + TFrameSend + TT (1) где TPC

- суммарное время реакции РС, TR = F(S) - время приема одного фрейма от РС на скорости S; TFrameGet - время выполнения блоков приема фреймов команды; TMonitor - время выполнения блока монитора; TCommand = F(N) - время выполнения блока команды как функция от номера команды N и, соответственно, ее длины; TFrameSend - время выполнения блока передачи ответного фрейма; Ti- = F(S) - время передачи одного фрейма на скорости S.

8. С учетом того обстоятельства, что фреймы приема и передачи имеют одинаковую длину и передаются на одной скорости (TR = TT), формула (1) приобретает вид:

TC(S,N) = TPC + 2TR(S) + TFrameGet + TMonitor + TCommand(N) + TFrameSend (2)

9. Рассчитывается производительность LAN в зависимости от скорости передачи данных S и длительности команды N по формуле:

PMax(S,N) = 1/Tc(S,N) (3)

Под максимальной производительностью CI LAN понимается максимально возможное количество полных циклов обмена при выполнении наиболее короткой команды контроллера на максимальной скорости (при отсутствии сбоев, задержек синхронизации, повторов передач фреймов, искажений контрольных сумм, минимальном времени реакции РС и т.д.). Соответственно, под средней производительностью CI LAN понимается количество полных циклов обмена при выполнении команды средней длительности.

При расчетах использовался описанный выше формат фрейма, TPC принято равным 5 мкс. Естественно, что возможной производительности (примерно на 18­21%). Следует отметить, что при расчете максимально возможной производительности использовалась короткая команда записи байта в порт (TCommand = 6,5 мкс). При расчете минимально возможной производительности использовалась команда программной записи 16 бит по интерфейсу SPI (TCommand = 603 мкс). Приведенные расчеты позволяют достаточно оценить возможности проектируемой CI LAN.

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