Программируемый канальный адаптер (ПКА) представляет собой автономную периферийную микроЭВМ, которая выполняет сопряжение с каналами передачи данных центральных приемо-передающих станций (ЦППС) в сети передачи оперативных данных. Необходимость применения ПКА при построении ЦППС обусловлена, во-первых, объединением в интегральную сеть телеинформационных систем и комплексов с разными протоколами обмена и, во-вторых, потребностью в большой производительности, которая обеспечивается многопроцессорной структурой.
Требование совместимости ЦППС с различными телеинформационными системами имеет два аспекта — программный и аппаратный. Объединение сетей с различными протоколами достигается путем программной реализации требуемого протокола в канальном адаптере. При внедрении ЦППС на диспетчерском пункте, где имеется система сбора оперативной информации, необходимо обеспечить поэтапный ввод новой системы в эксплуатацию. В этом случае в течение определенного времени (0,5—2 года) обе системы сосуществуют и должны принимать информацию от существующих передатчиков через одни и те же каналы передачи данных, т. е. входы ПКА внедряемой ЦППС должны подключаться к выходам модемов параллельно входам существующих устройств ТМ. Характеристики входных узлов ПКА, определяемые требованием аппаратной совместимости с приемниками существующих устройств телемеханики, рассмотрены ниже.
Известен ряд зарубежных и отечественных ПКА для различных микроЭВМ, в частности SBC 544 (INTEL, США), DIM 2002 (Мусrоn, Норвегия), V 6216 (VIDEOTON, ВНР), СМ-1800.8527 (Минприбор СССР),
ПКА системы АИСТ (Минпромсвязи СССР). Последние три типа основаны на микропроцессоре КР580ВМ80А (аналог INTEL 8080) и близки друг к другу по структуре и основным характеристикам. Они предусматривают реализацию как асинхронных, так и синхронных протоколов обмена информацией при использовании асинхронных модемов и поэтому содержат узлы побитной синхронизации. Они содержат также узлы коммутации резервных каналов, что является характерным требованием для телеинформационных систем, применяемых в энергетике. Режим работы по каналам — дуплексный, полудуплексный или симплексный. Число каналов — четыре, что определяется исходя из соображений конструктивной реализуемости, схемной экономичности, производительности процессора ПКА, гибкости и удобства ПКА в эксплуатации.
Межпроцессорный обмен в ЦППСПо общей структуре ЦППС представляет собой многопроцессорную микроЭВМ с разделением функций между центральным и периферийными процессорами, расположенными в ПКА. Функцией ПКА является реализация обмена информацией по каналу связи: установление связи, синхронизация сообщений, кодирование и декодирование, опрос периферийных станций в многоточечной структуре, переспросы забракованной информации, контроль состояния канала связи, коммутация резервных каналов и т. д. Каждый ПКА может быть запрограммирован для работы по своему протоколу, однако принятая информация предъявляется центральному процессору в едином формате и с единым способом адресации для всех направлений приема информации независимо от протокола.
Центральный процессор сортирует принятую информацию и образует соответствующие массивы, которые затем использует для обработки и выдачи на устройства отображения, а также в мини-ЭВМ ОИК. Центральный процессор производит также подготовку информации для ее передачи по различным направлениям, в том числе для ретрансляции на вышестоящий уровень. Собственно передачу осуществляют ПКА в соответствии с протоколом, причем ряд служебных сообщений передается ПКА самостоятельно; квитанции, переспросы забракованной информации, маркер и т. п. Другие виды служебных сообщений, например запросы различных типов информации, формируются центральным процессором и выдаются ПКА для кодирования и передачи.
Организация обмена информацией между центральным и периферийным процессорами может осуществляться различными способами. Использование специальных регистров с двусторонним доступом не нашло применения при построении ПКА, так как приводит к довольно громоздким аппаратным решениям и, главное, очень сильно сужает возможности межпроцессорного обмена. Наиболее универсальным способом обмена является обмен через общее поле оперативной памяти путем прямого доступа (ПДП).
Процесс обмена может инициироваться путем взаимных прерываний от одного процессора к другому. Однако использование этого метода целесообразно лишь в тех случаях, когда обмен информацией в сети происходит нерегулярно, в виде отдельных сеансов со значительными перерывами. В сети передачи оперативных данных такой режим практически не используется, каналы связи являются некоммутируемыми и ЦППС постоянно осуществляет связь по всем каналам. Центральному процессору предъявляются каждое принятое слово или сравнительно короткие блоки. В этом случае необходимость обмена информацией между процессорами целесообразнее задавать не с помощью прерываний, а путем периодического сканирования содержимого специально выделенных ячеек памяти. Такое решение требует меньших аппаратных затрат и исключает расход времени центрального процессора на многократную обработку прерываний от всех ПКА в ЦППС.
Общее поле памяти, через которое обмениваются центральный и периферийный процессоры, может располагаться как в модулях памяти, присоединенных к общей магистрали (далее эта память будет называться памятью ЦП), так и в индивидуальной памяти ПКА. Эти два способа существенно отличаются аппаратными и программными решениями. Для универсальности в некоторых ПКА аппаратно реализуются обе указанные возможности, однако в ряде случаев имеются ограничения в их использовании. Например, ПКА СМ-1800.8527 может получить ПДП к памяти ЦП только тогда, когда он расположен в базовой ЭВМ СМ-1803, но не в блоке расширения. При наличии взаимного ПДП центрального и периферийного процессоров и при некорректном одновременном использовании обеих этих возможностей может возникнуть ситуация ’’клинча”, когда каждый процессор ожидает освобождения шин другим процессором. Эту ситуацию можно исключить либо чисто программным путем, либо использованием аппаратных особенностей конкретного типа ПКА.
С точки зрения построения программного обеспечения вариант ПДП со стороны ПКА к памяти ЦП, очевидно, более универсален и богат возможностями. Однако у этого варианта имеются также и недостатки. Так, ошибка одного из ПКА (аппаратная или программная) может вызвать не обнаруживаемые искажения информации, относящейся к другим ПКА или к другим функциям, или же трудно диагностируемые искажения в работе системных и прикладных программ. Ряд локальных повреждений ПКА могут именно в результате ложного ПДП к памяти ЦП приводить к неработоспособности всей ЦППС. Таким образом, вариант ПДП со стороны центрального процессора к индивидуальной памяти ПКА обладает большей живучестью и более удобен в отладке и при поиске неисправностей благодаря локализации ошибок.
Структурная схема программируемого канального адаптераСтруктурную схему ПКА рассмотрим на примере четырехканального модуля СМ-1800.8527 (рис. 5.11). Другие канальные адаптеры, применяемые в ЦППС, имеют близкую структуру, а их различия определяются в основном конструктивными и схемными Особенностями соответствующих микроЭВМ.
Модуль конструктивно состоит из двух блоков элементов (ТЭЗ). Первый представляет собой периферийную одноплатную микроЭВМ на основе микропроцессора КР580ВМ80А. Для размещения программ использована микросхема ППЗУ К573 РФ5 емкостью 2 Кбайт с ультрафиолетовым стиранием, устанавливаемая в специальный разъем. В качестве ОЗУ применены две микросхемы КМ132РУ8Б с организацией 1 К х 4. По отношению к интерфейсу И41 ПКА может выступать как ЗАДАТЧИК и как ИСПОЛНИТЕЛЬ. В первом случае реализуется ПДП со стороны адаптера к памяти ЦП, во втором — ПДП со стороны ЦП к внутренней магистрали ПКА. Соответствующие логические узлы управляют шинными драйверами, которые связывают внутреннюю магистраль ПКА с шинами управления, данных и адресов интерфейса И41.
Рис. 5.11. Структурная схема программируемого канального адаптера
Кроме того, функцией исполнителя является прием специальных команд, с помощью которых ЦП может селективно управлять процессором выбранного ПКА. Предусмотрено выполнение следующих команд: сброс, остановка, пуск.
В качестве элементов последовательного интерфейса, осуществляющих последовательно-параллельное преобразование, применены микросхемы КР580ВВ51А, которые являются универсальными синхронноасинхронными приемопередатчиками (УСАПП). Их возможности позволяют осуществить программную реализацию практически любого протокола, используемого в настоящее время в промышленной телемеханике. С помощью УСАПП возможна также реализация байт — ориентированных протоколов для передачи блоков информации, например протокола BSC. Бит-ориентированные протоколы, в частности протокол HDLC (Х.25 МККТТ), непосредственно микросхемой КР580ВВ51А не реализуются и требуют программного выполнения ряда процедур, в том числе процедуры бит-стаффинга.
Узел таймера в ПКА выполнен на базе трех микросхем КР580ВИ53, которые обеспечивают независимые тактовые сигналы передачи и приема для четырех каналов, а также сигнал периодического прерывания к процессору ПКА. Прием и передача могут осуществляться при скорости до 2400 Бод в синхронном режиме и до 9600 Бод в асинхронном режиме.
Второй блок элементов, входящий в состав ПКА, содержит для каждого из четырех каналов совершенно одинаковые линейные узлы. Линейный узел содержит входные и выходные усилители, коммутатор резервных каналов приема и передачи, синхронизатор принимаемых данных.
Синхронизатор имеет типовую структуру и содержит детектор фронта, делитель частоты, фазовый дискриминатор и схему управления делителем. На вход делителя подается от таймера опорная частота, которая должна быть в 64 раза больше номинальной скорости передачи. На каждом фронте принимаемого сигнала производится фазовая автоподстройка путем коррекции фазы делителя на 1/64. Таким образом, при приеме меандра данный синхронизатор способен скомпенсировать расхождение тактовых частот примерно до 1,6%, а если в принимаемой информации имеется в среднем один фронт на байт, то допустимое расхождение тактовых частот составляет 0,2%.
Рис. 5.12. Схема резервирования каналов связи
При приеме информации от передающих устройств телемеханики старых типов с низкой стабильностью тактовой частоты функция побитной синхронизации реализуется программным путем. При этом скорость передачи информации должна быть не выше 200 Бод, что определяется производительностью процессора ПКА. Дополнительной функцией синхронизатора, примененного в ПКА, является так называемая фазовая защита. При нормальных условиях приема фронты фиксируются вблизи номинального положения, в то время как значительное отклонение фронта (более чем на + 25% длительности элементарной посылки) свидетельствует о большом искажении сигнала в канале связи либо о неправильной работе синхронизатора. В этом случае процессору ПКА передается специальный сигнал о низкой достоверности принимаемой информации.
Как уже указывалось, ПКА должен обладать аппаратной совместимостью с существующими техническими средствами сбора телеинформации. Это реализуется входными усилителями линейных узлов, которые имеют высокоомный дифференциальный вход, работающий при синфазном сигнале до 10 В. Передатчик обычно не нужно включить одновременно с существующим передающим устройством телемеханики. Поэтому специфические требования к выходным усилителям не предъявляются и они реализованы стандартным образом на микросхемах К170АП2.
Особенностью построения сети передачи оперативных данных в энергетике является требование высокой живучести. Для его выполнения используется резервирование ЦППС и каналов передачи данных. Схема резервирования приведена на рис. 5.12. Для упрощения показано только одно направление передачи информации. При приеме резервирование реализуется путем подачи сигнала от обоих модемов на входы ПКА в обе взаимно резервирующие ЦППС. С выходов усилителей данного канала ПКА сигнал R X D поступает на вход УСАПП и к синхронизатору через селектор, который представляет собой простейшую схему И—ИЛИ.
На передающей стороне резервирование выполняется путем присоединения входов модемов к выходным усилителям через переключающие контакты реле, расположенных в ПКА. Эта схема обеспечивает как независимую работу по двум каналам связи, так и использование обоих каналов одной ЦППС, причем благодаря контактной коммутации даже тогда, когда резервная ЦППС выключена. Реле коммутации канала передачи и селектор канала приема управляются командами процессора ПКА. Физически для этого использованы вспомогательные выходные цепи УСАПП, поскольку в ПКА не используется их стандартная функция — обмен служебными сигналами с модемом согласно рекомендациям стыка С2. Это связано с тем, что сеть передачи оперативных данных, для которой предназначены ПКА, является некоммутируемой сетью с непрерывно работающими каналами.
Особенности программирования ПКАПри разработке программного обеспечения ЦППС с ПКА следует учитывать, с одной стороны, общие требования, связанные с многопроцессорной структурой, и, с другой стороны, специфические характеристики конкретной схемы ПКА.
Внутреннее адресное пространство периферийной микроЭВМ ПКА обычно существенно меньше, чем позволяет микропроцессор. Распространенные в отечественной практике ПКА имеют внутреннее адресное пространство 4 Кбайт: 2 Кбайт — ППЗУ, 1 Кбайт — ОЗУ и 1 Кбайт — зона адресации УСАПП и таймеров. Их присоединение как ячеек памяти, а не как УВВ, выполнено для упрощения программ, в которых с помощью регистровой косвенной адресации одинаковые операции производятся над однотипными элементами. Когда процессор ПКА обращается к адресам свыше внутреннего пространства, выполняется прямой доступ к памяти ЦП, если эта функция предусмотрена. При этом ПДП реализуется аппаратно без каких-либо специальных операций в программе.
При обращении ЦП к внутренней магистрали ПКА имеются различные варианты адресации. В микроЭВМ РПТ, где применяются ПКА V 6216, ЦП имеет доступ к 256 байтам ОЗУ каждого ПКА и каждый ПКА занимает соответствующую зону в общем адресном пространстве. Обращение выполняется всегда с предварительной остановкой процессора ПКА. При применении ПКА СМ-1800.8527 обеспечивается доступ со стороны ЦП ко всем 4 Кбайт внутреннего адресного пространства. Это существенно расширяет возможности межпроцессорного взаимодействия, а также резко упрощает тестирование и поиск неисправностей. Обращение может выполняться как с предварительной остановкой процессора ПКА, так и без нее.
В адресном пространстве ЦП ПКА этого типа не занимают индивидуальных зон. Для обращения со стороны ЦП к внутренней магистрали любого ПКА используется одна зона размером 4 Кбайт, общая для всех ПКА. Адрес этой зоны задается программно. Перед выполнением операций ПДП ЦП должен выдать специальную команду, в которой сообщается, к которому ПКА будет производиться ПДП. Такой способ организации ПДП со стороны ЦП к нескольким ПКА предъявляет специальные требования к программному обеспечению, если ПДП используют две или более программы с различными приоритетами.
В этом случае если более приоритетная программа прерывает выполнение другой программы, то при возврате к продолжению последней должен быть специальными командами восстановлен номер того ПКА, к которому должно выполняться обращение в прерванной программе. Указанные операции могут быть предусмотрены непосредственно в соответствующих прикладных программах, однако целесообразнее включить в состав общего программного обеспечения специальный драйвер управления режимами ПКА, который выполнял бы и эту функцию.
В многопроцессорной системе возникает целый ряд вопросов разрешения конфликтов между процессорами. Основные функции ПДП реализуются соответствующими схемами арбитража на общей магистрали микроЭВМ и на внутренней магистрали ПКА. При наличии взаимного ПДП от ЦП к ПКА и обратно и некорректном одновременном использовании обеих этих возможностей может возникнуть упоминавшаяся выше ситуация ’’клинча”, когда каждый процессор ожидает освобождения шин другим процессором. Эту ситуацию можно исключить чисто программным путем, используя специальные ячейки-указатели используемого в данный момент вида ПДП. Другой способ заключается в том, что ЦП перед обращением к памяти ПКА останавливает периферийный процессор, а завершив обмен, разрешает ему продолжать работу.
Еще одна возможность конфликта возникает в том случае, когда оба процессора выполняют операцию записи в одну и ту же ячейку, в особенности когда производится модификация отдельных бит в байте. При этом может реализоваться такая последовательность событий: сначала оба процессора в какой-то очередности прочитывают информацию из ячейки, затем оба выполняют предусмотренные их программами преобразования этого байта и, наконец, процессоры записывают в ячейку результаты этих преобразований. В этом случае актуальна только последняя запись, а результат, записанный первым, теряется.
Аналогичная ситуация возникает и в однопроцессорных мультизадачных системах, но там конфликт устраняется путем запрета прерывания. Запрет ПДП в многопроцессорных системах выполняется не всегда, так как требует дополнительных аппаратных и программных затрат. Поэтому необходимо принимать программные меры для устранения конфликтов указанного типа. Такой мерой является, например, разделение ячеек, чтобы центральный процессор и процессор КА вели запись только в ’’свои” ячейки, а на чтение ограничения не накладываются. Если необходимо, чтобы некоторый признак управлялся обоими процессорами, то значение этого признака должно определяться суммой по модулю 2 определенных битов из разделенных ячеек. При этом каждый процессор может установить требуемое значение данного признака, прочитывая обе ячейки и осуществляя запись только в выделенную для него ячейку.