обозначают единицей, если пакет прошел через ретранслятор, и ноль, если нет.
Установление бита ретранслятора необходимо для того, чтобы ретрансляторы, находящиеся в зоне радиовидимости друг друга, следовали очередности передачи пакетов через себя и выполняли эту процедуру строго в порядке, указанном отправителем пакета.
Управляющее поле. В нем содержится информация о типе кадра, которая используется для определения назначения сообщения. Все кадры пакета можно разделить на три основных типа: I - информационные кадры, содержащие символьную либо цифровую информацию; S - служебные, подтверждающие, что кадр принят, или содержащие запрос на выдачу очередного информационного кадра; U - ненумерованные кадры - запрос на соединение-разъединение. К этому типу относят и сигналы маяков.
Кроме того, в этом поле записан номер отправляемого кадра или, при подтверждении о получении сообщения, номер следующего кадра, который готов принимать TNC корреспондента. Подобная нумерация введена потому, что через канал может подряд передаваться несколько кадров - от одного до семи, и она может помочь разобраться при сбоях. Если произойдет ошибка в каком-либо из кадров, то контроллер получателя сообщит контроллеру отправителя о том, что он готов к приему того номера кадра, который еще не принят или был принят с ошибкой. Например, если одна станция отправила другой подряд четыре пакета и при приеме третьего пакета произошла ошибка, то контроллер получателя в переводе с машинного на человеческий язык сообщит отправителю: "готов к приему третьего пакета".
Информационное поле. На нем размещается полезная информация объемом до 256 байт, представленная в кодах и которая при приеме корреспондентами отображается на экране дисплея ЭВМ любительских станций.
Иногда первый бит информационного поля выступает в качестве самостоятельного подполя - идентификатора протокола. Это происходит в случае использования третьего, сетевого уровня при прохождении пакете через NET/ ROM.
Контрольное поле служит для проверки правильности радиообмена. Оно представляет собой шестнадцатиразрядное число, которое подсчитывается с помощью полинома ХI6+ +XI5+X2+1 в соответствии с алгоритмом, приведенным в рекомендациях ISO 3309 (HDLC) - International Orqa-nization Standartization, Hiqht - Level Data Link Control Procedures.
TNC отправителя просчитывает контрольную сумму no всему кадру и помещает ее в конец кадра. На приемном конце по тому же алгоритму она просчитывается вновь и сверяется с суммой, помещенной в конце кадра. Если эти два числа совпадают, то кадр считается принятым верно.
Существует несколько способов подсчета контрольной суммы: аппаратный и программный. При аппаратном способе кадр проходит через некоторое устройство (сумматор), и в результате в его регистре оказывается записанным некоторое число, которое и является контрольной суммой. Второй способ - подсчет с помощью специальной программы. При этом кадр сначала полиостью принимается в оперативную память, а затем производится подсчет. Первый способ реализует высокое быстродействие, но требует дополнительных аппаратных средств. Второй способ обладает более низким быстродействием, но дополнительных аппаратных затрат не требует.
Напомним, как должна выглядеть структура станции пакетной связи, чтобы реализовать протокол АХ.25. Из схемы (рис. 3) видно, что в состав станции входят компьютер, TNC, приемопередатчик и антенно-фидерное устройство.
Компьютер может быть использован практически любой.
Одним непременным условием при выборе компьютера для пакетной связи является наличие в нем последовательного канала обмена, работающего по стандарту стыка С2 (RS232). Как известно, в "Радио-86РК" такой канал отсутствует, поэтому RA3AU разработал специальную программу "Терминал", имитирующую этот канал.
При работе на станции пакетной связи оператор набирает информацию на клавиатуре, а получает ответы в виде символов на экране монитора. Информация, передаваемая оператором, может быть либо командой для TNC, либо текстом, предназначенным для корреспондента.
После нажатия на клавишу компьютер определяет код, соответствующий этой клавише, и посылает его по последовательному каналу. Обмен по этому каналу происходит побайтно. Вид передаваемого байта приведен на рис. 4. Некоторые параметры, которые характеризуют передаваемый байт, могут быть различными, но необходимо, чтобы параметры, установленные в TNC и в компьютере, совпадали. Их характеризуют следующие параметры; длина информационного слова (7 или 8 бит), наличие проверки на четность или нечетность, стартовый бит (один), столовый бит (один, полтора или два), скорость обмена (50, 75, 150, 300, 1200, 2400, 4800 или 9600 бит/с).
Уровни напряжений, используемых в данном интерфейсе: единица - от+3 до +12 В, ноль - от -3 до -12 В. Информация в направлении от компьютера передается по линии TXD, а в обратном направлении по линии RXD, кроме того, существуют еще две дополнительные линии CTS и RTS, по которым подается сигнал о готовности компьютера или TNC к приему очередного байта. Прежде чем передать байт по линии TXD, компьютер проверяет линию CTS. Если на ней уровень сигнала характеризует готовность TNC к приему байта, то компьютер посылает его, если нет, ожидает изменения уровня. Аналогичную процедуру производит TNC с использованием линии RXD для передачи информационного байта и линии RTS для проверки готовности.
Последовательность нескольких байт, поступивших в TNC, может быть либо командой, либо информацией, предназначенной для отправления по радиоканалу. В первом случае команда декодируется и исполняется, во втором - формируется кадр в соответствии с протоколом АХ.25 и переводится из стандартного кода в код NRZ-1 (поп return to zeroinverted). В этом стандарте предусмотрено, что перепад физического уровня сигнала происходит в том случае, если в последовательности передаваемых бит встречается 0. Временная диаграмма, поясняющая этот процесс, приведена на рис. 5, где показана исходная посылка - и она же в виде кода NRZ-1.
Обычно модем конструктивно выполняется в одном корпусе с TNC. Его цифровую часть, как правило, называют ассемблером-дизассемблером кадров. Ассемблер-дизассемблер кадров и модем связаны между собой четырьмя линиями: TXD-для передачи кадров в коде NRZ-1, RXD- приема кадров в коде NRZ-1, РТТ - для включения модулятора и DCD, по которой подается сигнал с демодулятора о занятости канала.
Модем представляет собой совокупность двух устройств: модулятора и демодулятора. Перед отправлением пакета ассемблер-дизассемблер кадров включает модем с помощью сигнала на линии РТТ и по линии TXD посылает кадр в коде NRZ-1. Модулятор производит заполнение полученной последовательности двумя звуковыми частотами. Единица соответствует частоте F1, а нуль - частоте F2. Сигнал, промодулированный звуковой частотой, по линии MlС поступает на микрофонный вход передатчика.
При приеме кадров последовательность импульсов, заполненных звуковой частотой, с выхода приемопередатчика по линии EAR поступает на вход демодулятора. Демодулятор производит обратный процесс: из последовательности импульсов звуковой частоты выделяет огибающую, которая и представляет собой кадр в виде кода NRZ-1. Этот кадр поступает в ассемблер-дизассемблер пакетов. Одновременно с появлением в канале сигнала, промодулированного одной из частот F1 или F2, срабатывает специальный детектор, вырабатывающий на выходе сигнал, свидетельствующий о занятости канала.
Сигнал РТТ, кроме включения модулятора, выполняет еще одну функцию - управляет транзисторным ключом, который переключает приемопередатчик с приема на передачу.
В радиолюбительской пакетной связи используются два типа модемов: для коротких и ультракоротких волн. На KB используется однополосная модуляция, а скорость передачи по радиоканалу 300 бит/с, при этом разнос звуковых частот, соответствующих нулю и единице, должен составлять 200 Гц. Частота модуляции может быть различной. Однако удобства отсчета рабочей частоты радиостанции в Европе приняли стандарт, по которому установлено, что нулю соответствует 1850 Гц, а единице-1650 Гц.
На ультракоротких волнах работают на скорости передачи 1200 бит/с при разносе частот 1000 Гц. Так как на УКВ используется, как правило, частотная модуляция, то частоты должны быть строго фиксированы. Принято, что нулю соответствуют 1200, а единице - 2200 Гц.
Любительская станция пакетной связи в классическом виде состоит из 3 частей: радиостанции, компьютера, и контроллера пакетной связи (TNC - Terminal Node Controller). Что такое радиостанция, из чего она состоит и как работает радиолюбителю, надеюсь, объяснять не надо. Компьютер является средством ввода-вывода буквенно-цифровой информации: с клавиатуры информация поступает на передачу, а принятая информация выводится на экран монитора. Желательно, чтобы Вы освоили компьютер, на котором будете работать, хотя бы на самом простейшем уровне. TNC служит "посредником" между радиостанцией и компьютером. Это не просто модем, превращающий "нули" и "единицы", понятные компьютеру, в звуковые последовательности сигналов, понятные радиостанции. TNC обрабатывает эти последовательности сигналов по специальному алгоритму (протокол АХ-25), упаковывает их в пакеты, посылает их и контролирует, правильно ли они приняты, а так же принимает и расшифровывает пакеты, сообщает о правильности приема. Кроме того, TNC выполняет множество других функций, имеет свою систему команд, словом, это настоящий компьютер. Компьютер удобнее тем, что позволяет записывать в память принятую информацию и просматривать ее много раз, не запрашивая ее повторно из эфира. Аналогично, передаваемую информацию Вы можете подготовить, отредактировать заранее, и затем быстро передать ее корреспонденту в автоматическом режиме. Таким образом, Вы не будете надолго занимать радиоканал и заставлять ждать Вашего корреспондента. В качестве интерфейса (стандарта общения) используется обычно последовательный асинхронный RS-232С (в наших ГОСТах он называется "Стык С-2"). Пример того, как выглядит сигнал этого интерфейса, приведен на стр.35 "КВ-журнала" N 1 за 1992 г. Логической "1" соответсвует уровень напряжения -12 В, (на самом деле, он может быть от -8 до -12), логическому "0" соответствует +12В (от 8 до 12В). Длительности сигналов определяются скоростью передачи, измеряемой в бодах (бит в секунду). Если, например, используется скорость 1200 бод, то длительность импульса, соответствующего одному биту, будет равна 1:1200=0,000833 сек, или 833 мксек. Цоколевка стандартных 9-и 25-контактного разъемов RS-232 приведена в таблице.
Контакты: Наименование : Направление
9 25 : сигнала :
- 1 : GND Корпус :
3 2 : TxD Передать данные (Transmit Data) : Выход
2 3 : RxD Принять данные (Receive Data) : Вход
7 4 : RTS Запрос на передачу (Request to Send) : Выход
8 5 : CTS Готовность к передаче (Clear to Send) : Вход
6 6 : DSR Готовность компьютера (Dataset ready) : Вход
5 7 : SG Сигнальное заземление (Signal Ground) :
1 8 : DCD Контроль приема (Carrier Detect) : Вход
4 20 : DTR Терминал готов (Data Term Ready) : Выход
9 22 : RI Кольцевой индикатор (Ring Indicator) : Вход
-------------------------------------------------------------------------
Назначение сигналов TDX, RXD, SG понятно из названия. Сигналы
RTS, CTS, DTR, DSR, DCD позволяют упорядочить общение между двумя компьютерными устройствами. Если, например, одно из устройств медленно "думает", или кроме общения с другим выполняет еще какую-нибудь работу, то оно может не успеть принять часть информации по линии RXD. С помощью вышеназванных сигналов можно установить один из протоколов "запрос-разрешение" (его обычно называют HandShake, в данном случае - Hard Handshake - аппаратный протокол). Для соединения компьютерных устройств (например, TNC и терминала) с использованием Hard HandShake нужно использовать схему соединения, приведенную на рисунке.
GND--------------------GND
SG -------------------- SG
TxD--------------------RxD
RxD--------------------TxD
CTS--------------------RTS
RTS--------------------CTS
DSR--------------------DTR
DTR--------------------DSR
Можно использовать и программный протокол - Soft HandShake, если Ваш терминал умеет работать с ним. В этом случае сигналы "запрос-раз решение" передаются ввиде специальных управляющих ASCII - кодов (обыч но - $11 и $13) по линиям RXD и TXD, а схема соединения упрощается (рис. 2).
SG -------------------- SG
TxD--------------------RxD
RxD--------------------TxD
CTS-----RTS
RTS--- L--CTS
DSR-- ---DTR
DTR--+ +--DSR
DCD--- L--DCD
Учтите, что с кабелем рис.1 можно использовать как аппаратный,
так и программный протокол, а с кабелем рис.2 - только программный. Кроме правильного соединения разъемов, нужно еще установить одинаковые параметры обмена между TNC и терминалом: скорость (обычно 300, 1200, 2400, 4800, 9600 бод, реже 19200), длина "слова" (7 или 8 бит), четность (четный бит - Even, нечетный - Odd, никакой - None, всегда 1 - Mark, всегда 0 - Space) и число стоповых бит (может быть 1, 1.5, 2). Установка этих параметров в терминалах может производиться переключателями, перемычками, программно. В TNC, описанном в "KВ-журнале" N 1,2-3 за 1993 г., скорость 300 или 1200 бод устанавливается перемычками 6 или 5 соответственно, другие скорости можно установить в соответствии с табл.1 (в описании TNC). Длина слова, четность и число стоповых бит устанавливаются программно: заводская установка (default) - 7 бит, Е (четный), 1 стоповой бит (часто это записывается так: 7Е1). В других типах TNC скорость устанавливается переключателями (перемычками) или программно, остальные параметры, как правило, программно. Во многих современных моделях есть автоматическая настройка на нужную скорость обмена: TNC анализирует скорость принимаемых от терминала символов и настраивается на эту же скорость обмена. Обычно подбор начинается с 1200 бод, позтому рекомендую начать с установки в терминале 1200 бoд, 7Е1, либо 7N1. Все вышеописанное справедливо и при подключении TNC к компьютеру, разница лишь в том, что компьютер нужно перевести в режим терминала с помощью какой-либо программы. Для большинства типов компьютеров такие программы существуют, каждая "работает" по своему, общее у них то, что они переводят компьютер в терминальный режим, поэтому и называются терминальными программами. Для "Радио-86РК" очень удобную программу создал Г.Иванов (RA3AU), она описана в журнале "Радио" N 5, 1989 г., стр.45. Там же описаны особенности подключения к "Радио-86РК". Одна из терминальных программ и способ доработки компьютеров типа "ZX-Spectrum" описана в журнале "Радиолюбитель" N 4, 1993 г., стр.36. Для компьютеров типа IBM PC существует великое множество терминальных программ, например, PROCOMM, PCPLUS, COMIT, TELIX, MTE, KERMIT и т.д. Любую из них можно использовать. Существуют и специальные радиолюбительские программы для пакетной связи, например, LAN-LINK, YAPP, PK232COM, PAK-COMM, PC-Pakratt, SP, GP и т.д. Часто TNC зарубежного производства продается вместе с дискетой, на которой записана терминальная программа. В любом случае Вы должны сначала установить параметры терминала (или компьютера в режиме терминала) и правильно соединить разъемы, лишь после этого можно ожидать, что TNC и терминал поймут друг друга. И TNC и терминал могут выйти из строя, если Вы будете подключать и отключать разъемы при включенном питании, поэтому рекомендуется сначала подсоединить разъемы, затем включить терминал (или компьютер), установить параметры обмена (если это делается программно), затем включать питание TNC. Если все исправно и установлено правильно, Вы увидите , как на экране будет появляться заставка, подобная той, что приведена на стр.36 "КВжурнала" N 2-3 за 1993 г. Это означает, что терминал понимает то, что ему сообщает TNC. Следующие 5 абзацев Вы можете пропустить. Если же на экране появляется абракадабра или вообще ничего не появляется - не пугайтесь, возможно, параметры обмена данными у терминала и у TNC не совпадают. TNC с автонастройкой ждет определенный символ от терминала (например, * или <Enter>, лучше посмотреть в инструкции). При каждом нажатии на клавишу с этим символом на экране может появляться очередная абракадабра, при этом светодиоды на лицевой панели TNC переключаются. При очередном нажатии Вы увидите, как на экране начнет появляться заставка, что означает завершение автонастройки. Если появляется нечто похожее на заставку, но все слито в одну строку, или какая-либо новая строчка начинается не от левого края экрана, а сразу под последним символом предыдущей, либо часть букв явно не та, причины, скорее всего, в несовпадении четности терминала и TNC. При неправильно установленных параметрах HandShake на экране могут появляться куски нормального текста, оборванные случайным образом, либо экран будет пуст. В первом случае попробуйте поменять тип обмена (SoftHard), во втором - вообще отключить HandShake терминала, если это возможно. Единого рецепта для разных типов терминалов и компьютеров не существует, проще всего в случае отсутствия символов на терминале попытаться найти причину, наблюдая сигналы RS-232 на осциллографе (в крайнем случае, можно попробовать найти причину даже тестером). Подсоедините щуп осциллографа к сигналу TXD от TNC к терминалу и включите питание TNC. Если Вы увидите последовательность импульсов, а затем постоянный уровень (от -8 до -12 В для RS-232, +5 В для ТТЛ), значит TNC передает символы на терминал. По длительности символов можно оценить скорость передачи. Если импульсов нет - значит либо TNC неисправен, либо он ждет разрешения на передачу, либо цоколевка разъема не совпадает со стандартной, и Вы наблюдаете совсем другой сигнал. Последнее иногда встречается в разных моделях TNC, особенно самодельных. Разрешение на передачу данных должно поступать на TNC от терминала: сигнал RTS, DTR либо их комбинация должны соответствовать логической "1" (напомню, что для интерфейса RS-232 это соответствует отрицательному напряжению от -8 до -12 В). Проверьте их, если Вы используете кабель, сделанный по рис.1. Если же используется кабель рис.2, то при правильной распайке контактов и исправном TNC Вы обязательно увидите импульсы на линии TxD, так как TNC сам себе разрешает передачу, используя свои сигналы RTS и DTR, которые через перемычки на разъеме попадают на входы CTS и DSR соответственно. Все вышеописанное справедливо и для терминала. Точно также Вы можете наблюдать прохождение сигналов от терминала к TNC, нажимая на любую клавишу клавиатуры. В терминалах, у которых отсутствуют маленькие буквы, а иногда и в других типах терминалов, в простейших компьютерах ("Радио-86РК") вместо маленьких латинских букв в заставке появляются русские буквы. Это не неисправность, а недостаток терминала, который легко обойти, "заставив" TNC все сообщения выдавать только заглавными буквами. "Львовскому" TNC нужно дать команду: LCOK OFF <Enter>. (Ввод каждой команды происходит только после нажатия <Enter> или <BK>). В других типах TNC могут быть другие команды. Добившись появления на экране "правильного" текста при включении TNC, проверьте теперь, понимает ли TNC то, что Вы печатаете на клавиатуре. При нажатии на клавишу <Enter> (или <BK>) на зкране должна появляться подсказка Cmd:, обозначающая готовность TNC к приему следующей команды. При нажатии на любую символьную клавишу соответствующий символ должен печататься на экране. Если этого не происходит - попробуйте дать команду TNC на включение ЭХО: ECHO ON. В ответ на эту команду на экране может появиться надпись ECHO WAS OFF (ЭХО было выключено). Если это сообщение не появилось и символы не отображаются на экране при нажатии на клавиши - вернитесь на 4 абзаца назад и по аналогии попробуйте найти причину, почему TNC не понимает то, что ему передает терминал. Если при однократном нажатии на клавишу на экране появляются сразу 2 соответствующих символа - значит ЭХО включено и в TNC и в терминале. Лучше выключить ЭХО в терминале, но если это сложно, можно выключить его и в TNC командой ECHO OFF. Возможен случай, когда буквы на экране печатаются, а TNC не понимает команд и не реагирует на них. Выключите питание TNC и попробуйте нажимать на клавиши. Если соответствующие символы появляются на экране, значит в терминале установлен режим "ЭХО включено". Надо выключить ЭХО и продолжить исследования, вернувшись на 2 абзаца назад. Достигнув полного взаимопонимания между терминалом и TNC, можно приступать к знакомству с командами TNC и установке параметров. Наберите DISPLAY (в некоторых типах TNC - DISPLAY Z), нажмите <Enter>, и Вы увидите на экране столбец команд с параметрами, расположенных в алфавитном порядке. На первый взгляд, их кажется очень много и разобраться во всех невозможно. (Кстати, если появятся разрывы и пропадание кусков таблицы - вернитесь назад и прочтите все, что касается HandShake. Если в терминале используется только аппаратный HandShake (например, "Радио-86РК"), в TNC надо установить такой же тип обмена командой XFLOW OFF). На самом деле, не нужно изучать все команды сразу. (Полное описание всех команд планируется дать в следующих номерах). Заводские установки (default) вполне годятся для начала работы пакетом, а то, что Вам потребуется в первую очередь, будет описано ниже. Кстати, с несколькими командами (LCOK, ECHO, DISPLAY, XFLOW) мы уже познакомились. Большинство команд являются командами-модификаторами параметров TNC. Если Вы выдаете команду без какого-либо параметра, TNC сообщает Вам, какой параметр установлен для этой команды. Наберите, например, MYCALL, и TNC выдает на экран: MYCALL NOCALL или какой-либо другой позывной, записанный в его памяти. Чтобы установить или поменять какой-либо параметр, нужно после команды через пробел написать этот параметр, например, MYCALL RW3DR. TNC может ответить: MYCALL WAS NOCALL (мой позывной был NOCALL). Писать всю команду целиком не обязательно, TNC понимает ее по первым символам. Например, Вместо MYCALL достаточно набрать MY. В дальнейшем обязательные для ввода символы команды и параметры будут написаны заглавными буквами, а необязательные - строчными: например, MYcall, Echo OFf и т.д. Если Вы неправильно напишите команду или параметр - TNC может сообщить, как надо писать, либо выдаст какое-либо сообщение, например, ?EH (что?), Value out of range (параметр за границами возможного), ?bad (неправильно), ?not enough (недостаточно) и т.д. Полный список ответов TNC с расшифровкой будет дан позже.