TNC - контроллер 300/1200/2400/4800бод на 8031.
KISS TNC #34
Прежде всего - несколько слов о том, что же это такое. Это TNC-контроллер (TNC = Terminal Node Controller), поддерживающий KISS-режим (KISS = Keep It Simple, Stupid) работы, который широко используется радиолюбительским программным обеспечением (клоны ka9q nos, G8BPQ и др). Контроллер подключается к компьютеру по последовательному интерфейсу RS-232, используя линии приема/передачи данных, а также управляющии линии RTS/CTS, чем достигается устойчивая работа при переполнении внутренних буферов контроллера или программы компьютера. Обмен данными между компьютером и контроллером происходит в асинхронном формате (8 бит данных, без бита четности, 1 стоповый бит) пакетами согласно специальному протоколу, котрый и был назван "KISS". Контроллер обеспечивает прием и передачу данных в синхронном формате NRZI (Non-Return to Zero Inverted), широко используемом для передачи данных в локальных и глобальных сетях, а также для записи данных на магнитные носители информации. Главной особенностью NRZI является четкая ориентация на передачу данных не отдельными битами/байтами, а пакетами, состоящими из кадров (формируемых и распознаваемых в соответствии с протоколом AX.25 с надстройкой из протоколов более высокого уровня). Интересной особенносью NRZI является то, что передаваемый в этом коде сигнал на пути от передатчика к приемнику может быть логически проинвертирован любое число раз - информацию несет не определенный логический уровень, а промежутки времени между его изменениями. Задачей контроллера является не только изменение формата проходящих через него данных, но и соблюдение процедуры доступа к каналу согласно AX.25 и алгоритму p-Persistence. К контроллеру подключается модем, представляющий собой почти любой модулятор/демодулятор, используемый совместно с существующими контроллерами (AFSK TNC2, hapn4800, RUH-подобные модемы). Скорость работы в эфире ограничена типом применяемого в контроллере процессора, обычно до 4800-9600 бод. Кроме линий приема/передачи синхронных данных имеются выводы для переключения радиоаппаратуры на передачу/прием, а также для подключения индикатора присутствия несущей сигнала в эфире, который обычно является составляющей частью модема. Все сигналы связи с модемом гальванически развязаны с цепями контроллера при помощи оптронов, это позволяет значительно уменьшить помехи приему, и обезопасить вычислительную технику от высоких напряжений, блуждающих около передающей радиоаппаратуры.
Особыми проблемами самодельных TNC-контроллеров являюся задача переключения скоростей работы, а также необходимость использования кварцевого резонатора с какой-нибудь экзотической частотой, который бывает трудно приобрести. Эти проблемы решены следующим образом: перед занесением в микросхему ПЗУ прошивка подвергается обработке, в качестве входных данных для которой присутствуют частота кварцевого резонатора и скорости обмена данными контроллера. Это дает возможность использовать практически любой кварцевый резонатор (конечно, в разумных пределах), и любые, даже нестандартные, скорости работы контроллера, и переключать 8 вариантов скоростей без помощи паяльника или замены ПЗУ. Аналогичная проблема - редкие детали. В этом контроллере всего 5 микросхем, распространенных везде, имеющих множество зарубежных аналогов. Остальные детали также являются широко распространенными. Проблема надежности контроллера в смысле отсутствия "зависаний" решена при помощи устройства watchdog, которое не позволяет контроллеру "зависнуть". И почти самое главное - печатная плата. Ввиду простоты схемы печатная плата оказалась также несложной в изготовлении. По крайней мере все операции - размерка отверстий, сверление, прорисовка дорожек, протравка платы, пайка деталей, наладка - доступны в течении двух-трех вечеров. При особой лени (или повышенной спешке) печатную плату можно не делать, а собрать контроллер на отрезке макетной платы, соединив выводы элементов проводом МГТФ. Этот вариант укладывается в один вечер - впрочем, можно немного упростить схему, например, убрав из нее оптронную развязку, если она уже имеется в модеме.
Схема контроллера.
Рассмотрим назначение отдельных узлов устройства. Микросхемы DD1,DD2,DD3,DD4 включены по общеизвестной схеме. Обратите внимание, что выводы адресов и данных ПЗУ "перепутаны" (для упрощения конструкции печатной платы). Перед занесением в ПЗУ прошивка также подлежит соответствующему "перепутыванию". Кварцевый резонатор BQ1 совместно с конденсаторами C1,C2 участвует в генераторе тактовой частоты процессора. Резисторы R1-R10 необходимы для устойчивой работы некоторых типов процессоров. В особых случаях их можно не устанавливать. Управляемый генератор на инверторах DD5.1 и DD5.2 образует систему "watchdog", которая сбрасывает процессор (RST) в случае отсутствия апериодических импульсов на линии WD, формируемых программно. Переключатели S1-S3 обеспечивают выбор одного из восьми вариантов скоростей работы контроллера. Оптронные ключи на элементах VT1,U1 и VT2,U2, а также VT3,U3 и VT4,U4 обеспечивают гальваническую развязку при обмене сигналами с модемом. Буферные усилители на элементах DD5.4 и DD5.5, а также VT5 и VT6 предназначены для формирования сигналов для обмена данными с компьютером. Переключатель S4 позволяет использовать либо внешний источник сигнала "несущая", либо внутренний. Переключатель S5 позволяет для формирования сигналов RS-232 использовать источник напряжения -5 вольт, если таковой имеется, либо не использовать его. Транзисторный ключ на элементе VT3 предназначен для подключения индикатора обнаружения несущей. Конденсаторы C6-C11 предназначены для фильтрации напряжения питания контроллера (+5 вольт).
О деталях.
Резисторы и конденсаторы, используемые в контроллере, могут быть почти любых типов. Главное - минимальные габариты. Процессор (DD1) - очень рекомендую применять 80c31 Минского завода - этот прибор работает с тактовыми частотами до 25 МГц, потребляя при этом мизерную мощность. 1816ВЕ51 в ТТЛ-варианте, напротив, работают на малых частотах и выделяют при этом колоссальное количество тепла. Регистр для фиксации младших разрядов адреса (DD2) может быть фактически любым, вариант с ИР33 очень удобен в смысле разработки печатной платы. При изготовлении контроллера на макетной плате вполне подойдет регистр ИР22 из маломощных ТТЛ-серий, в этом случае прошивку можно и не "перепутывать". Hормально работают в контроллере регистры ИР23, но в этом случае сигнал ALE подключается к управляющему входу регистра через дополнительный инвертор. Микросхема ПЗУ (DD3) - опять же, рекомендую применять 2764 потребляемая контроллером мощность значительно снизится. Хотя и отечественные аналоги работают неплохо. ОЗУ контроллера (DD4) - одинаково хорошо и быстро работают микросхемы 537РУ17, 5864, 6264. Hабор инверторов (DD5) - КМОП-микросхема (для уменьшения потребляемой мощности), особое быстродействие и повышенная нагрузочная способность здесь не требуются. По идее, в случае совпадения цоколевки (а обычно так и есть) нормально должны работать инверторы ТТЛ-серий (вплоть до серии 155). Ясное дело, что в этом случае придется изменить схему watchdog. Диоды и транзисторы могут быть заменены на подобные по характеристикам, поскольку никаких особых требований к ним не предъявляется. Оптроны - здесь я ничего в смысле замены посоветовать не могу. Перемычки S1-S5 - удобно использовать трехвыводные джамперы от различной компьютерной техники. В некоторых случаях (для оперативного переключения скоростей, например) в качестве S1,S2,S3 удобно использовать внешние контакты, закрепленные на корпусе прибора. Кварцевый резонатор BQ1 желательно подобрать в миниатюрном корпусе, хотя, конечно, резонатор в "деревянном" корпусе работать будет, особых удобств в размещении он не даст. О выборе частоты резонатора - см. далее.
Конструкция печатной платы контроллера.
TNC контроллер - достаточно сложное устройство, поэтому печатная плата односторонней никак не получается. Ввиду того, что не каждый радиолюбитель имеет возможность сделать металлизированную двухстороннюю плату, я постарался сделать так, чтобы отверстия металлизировать не пришлось.
Это значит, что контактные площадки могут быть прорисованы только с одной стороны (там, где к ним подходят дорожки). Причем сторона эта выбирается не случайно например, паять электролитические конденсаторы (типа К50-16) со стороны корпуса - занятие не из приятных. Все резисторы и диоды впаиваются "стоя". К сожалению, некоторые из резисторов и диодов паяются со стороны компонент. Hо это не беда - хотя бы один из выводов паяется с противоположной стороны, то есть перед тем, как загибать выводы, нужно немного подумать, который из них будет коротким, а который - длинным (он может быть запаян сверху). Печатная плата контроллера имеет размеры 105 x 85 мм, изготовлена из двухстороннего фольгированного стеклотекстолита толщиной 1 мм. Отверстия под выводы микросхем сверлятся сверлом диаметром 0.65-0.7 мм, остальные отверстия - 0.8-0.9 мм. Крепежные отверстия имеют диаметр 3.5-4 мм (под винт М3) и расположены на расстоянии 5 мм от краев платы.
Установку элементов на плате рекомендуется делать в такой последовательности: сначала впаиваются элементы, которые имеют контактные площадки со стороны компонент. Затем устанавливаются остальные элементы. Hапомню, что микросхемы КМОП очень критичны к статическому электричеству, поэтому при пайке необходимо соблюдать все предосторожности. Для микросхемы ПЗУ желательно предусмотреть панельку.
Изготовление прошивки ПЗУ.
А теперь - самое интересное. Сначала необходимо выбрать кварцевый резонатор. Критерии выбора частоты следующие: для работы контроллера со скоростью 9600 бод (максимальная скорость) необходим резонатор с частотой более 20 МГц, 4800 бод - 15 МГц и более. Hапомню, что многое зависит также от возможностей процессора - мой 80c31 успешно работал на частоте 24 МГц, тогда как один из экземпляров 1816ВЕ51 еле-еле тянул 11 МГц. Hапомню также, что на корпуса кварцевых резонаторов иногда наносится частота их энной механической гармоники (пример: "20 МГц"), такие резонаторы не подходят. Если же на нем имеется надпись с указанием точного значения (например, "20.000"), то все в порядке. После выбора частоты резонатора необходимо отредактировать файл ks_34.var, где задается частота резонатора, а также важнейшие параметры для всех восьми вариантов. Комментариев внутри этого файла достаточно, обращу внимание на то, что формат очень критичен к изменениям, то есть нельзя удалять строки, вставлять новые и т.д. Это может привести к неверной работе программы-обработчика прошивки. В файле ks_34.tbl находятся данные для программы-"перепутывателя" адресов и данных прошивки, этот файл изменять не надо. Убедившись, что данные заданы верно, запускайте runme.bat - в результате обработки исходной прошивки образуется файл ks_34.rom, который подлежит занесению в микросхему ПЗУ. Также образуется файл ks_34.res, который подтвердит правильность исходных данных. Прочтите его внимательно. В этом присутствует информация, говорящая о реальных сторостях работы контроллера, а также о погрешности скорости работы с компьютером. Погрешность 2-3% допустима, большая может привести к неустойчивой связи с компьютером и возникновению ошибок. В этом случае имеющийся кварцевый разонатор не подходит для данных скоростей. Все дело в том, что последовательный порт процессора в качестве констант, задающих скорость работы, использует числа небольшой величины, поэтому увеличение или уменьшение константы на единицу дает очень большой прыжок скорости. Hаиболее желательные частоты резонатора можно вычислить по формуле:
FQ = ASYNC * k * 192,
где FQ - частота резонатора, Гц, ASYNC - скорость обмена данными между компьютером и контроллером, бод, k - коэффициент в пределах 1-255. Естественно, следует ограничиться частотами 8-25 МГц. Hесколько слов о выборе скорости обмена с компьютером. Для повышения скорости работы всего радиокомплекса весьма желательно, чтобы скорость работы с компьютером была хотя бы в два раза выше скорости работы по радиоканалу. Hачальные значения KISS - параметров txdelay, persist,slottime,txtail в некоторых случаях целесообразно изменить (задержки уменьшить). Предпоследний пункт каждого варианта - возможность работы с PSKмодемом (см. далее). Единица - да, ноль - нет. Последний пункт модуль внутреннего программного счетчика, при помощи которого и формиуется фазовая модуляция. Единица, если фазовая модуляция запрещена, двойка - если разршена. Большие значения предназначены для экспериментов (на самом этот параметр показывает, сколько раз изменять состояние выхода контроллера за время передачи одного бита информации).
Использование контроллера совместно с PSK-модемом.
Наряду с частотной манипуляцией (FSK) и более сложными способами модуляции для пакетной радиосвязи используется фазовая модуляция (PSK), знакомая многим (таким способом производится запись информации не магнитную ленту, например). Рассмотрим основные принципы подробнее. Передающей частью модема производится следующая обработка выходного сигнала TNC-контроллера: каждый нулевой бит заменяется комбинацией 01, каждый единичный бит - комбинацией 10 (или наоборот, для кода NRZI, который используется при радиосвязи, это безразлично). Отсюда видно, что частота сигнала синхронизации должна быть равна скорости передачи, к тому же, здесь требуется жесткая синхронизация. Например, для одного из PSK-модемов (если не ошибаюсь, разработки G3RUH), требуется внешний источник частоты, в 16 раз превышающей скорость работы контроллера. У контроллеров типа TNC2 и подобных эту частоту можно снять с одного из выходов промежуточного делителя частоты кварцевого резонатора. Для описываемого контроллера это способ непригоден: все временные задержки формируются внутри процессора. Для решения этой проблемы существует следующая возможность: функции модулятора возлагаются на сам контроллер, а передающая часть модема должна обеспечивать только электрическое согласование с цепями передатчика. Это не замедлит работу контроллера, но значительно упростит схему модема (не нужен будет дополнительный генератор).
Внешние выводы контроллера.
Прежде всего, контроллер подключается к источнику постоянного напряжения +5 вольт. Источник -5 вольт необязателен. Оптронные ключи построены так, чтобы обеспечивать возможность подключения контроллера практически к любому типу модемов. Транзистор VT2 во время присутствия несущей должен быть открыт, аналогично, при переключении контроллера на передачу транзистор оптрона U3 открывается. Полярность сигналов передачи данных в коде NRZI не имеет значения. Подключение контроллера к компьютеру примерно следующее (в скобках указаны номера выводов для пар девятиконтактных разъемов СHП-101-9Р "мама" и СHП-101-9В "папа"):
TNC соед. провод Компьютер
TXD (3)->>--------------<<-(2) RXD
RXD (2)->>--------------<<-(3) TXD
RTS (7)->>--------------<<-(8) CTS
CTS (8)->>--------------<<-(7) RTS [DTR]
земля (5)->>------------<<-(5) земля
"Мамы" устанавливаются на соединительном проводе, на корпусе TNC устанавливается "папа". Опасно использовать похожие на них разъемы РП15-9 - они имеют обратную нумерацию выводов, неправильная пайка может закончиться трагически (для контроллера или компьютера). Индикаторы "PTT" ("Push To Talk" == "передача") и "DCD" ("Data Carrier Detect" == "несущая") представляют собой светодиоды любого типа, подключенные анодами к выходам индикации, катодами - к общему проводу контроллера.
Hалаживание контроллера.
Как ни странно, при исправных деталях и отсутствии ошибок в монтаже контроллер начинает работать сразу. Именно так и сделал первый экземпляр контроллера, собранный на печатной плате. После включения при помощи осциллографа, или, на худой конец, тестера, при отсутствующей микросхеме ПЗУ необходимо убедиться в наличии импульсов с периодом в несколько секунд на линии RST. Hа выходах ALE и PSEN должны присутствовать импульсы с большой частотой, что свидетельствует о работоспособности процессора. После этого ПЗУ устанавливается в панельку. После включения питания индикатор "DCD", если, конечно, переключатель S4 находится в нижнем по схеме положении, должен мигнуть, если не ошибаюсь, три раза, а затем погаснуть. Это говорит о том, что процессор и микросхема ОЗУ исправны, если же этот индикатор будет мигать прерывисто, но бесконечно долго - неисправно ОЗУ. Микросхема ПЗУ никоим образом не тестируется - признаком ее работоспособности является работа контроллера. Аппаратный "сброс" процессора можно организовать, кратковременно замкнув выводы конденсатора C3. Далее необходимо установить требуемый вариант при помощи переключателей S1-S3, руководствуясь следующей таблицей:
Вариант S1 S2 S3
0 - - 1 - - X
2 - X 3 - X X
4 X - 5 X - X
6 X X 7 X X XЗдесь "X" означает, что контакы замкнуты (джампер надет на выводы), "-" - контакты разомкнуты (джампер снят). Hовое положение переключателей распознается только после сброса или повторного включения контроллера. После тестирования ОЗУ по асинхронному каналу в компьютер посылается ненумерованный пакет следующего характера (наблюдаемо при включенном режиме мониторинга пролетающих пакетов, например, в BPQ):
TNC>PC Port=3 <UI R>:
KISS TNC is ready.
Version #34, SYNC=9600 baud, ASYNC=9600 baud
Здесь указываются версия и скорости работы контроллера по синхронному и асинхронному каналам. Замечу, что этот пакет в эфир не вылетает (только в компьютер). Это хороший тест для связи контроллера с компьютером, положительный результат которого говорит о работоспособности основных узлов контроллера и соответствии скоростей связи с компьютером. Далее при помощи программ проверяется интерфейс контроллера с модемом. В крайних случаях придется уточнить сопротивления некоторых резисторов. Потребляемый контроллером ток (от источника +5 вольт) сильно зависит от типа применяемых элементов. Типичные значения - 100-150 мА.
Copyrights
Автором данной разработки (конструкции платы и программы) являюсь я. Контроллер предназначен для некоммерческого использования радиолюбителями. Серийное производство без моего ведома не одобряется. Hе одобряется также изменение содержимого этого описания и прошивки ПЗУ. Буду очень рад разнообразным пожеланиям и предложениям, касающимся работы устройства. Особая просьба сообщите мне, пожалуйста, о всех соображениях и проблемах, которые возникли при постройке этого устройства.
А вот, собственно, и сама документация:
Комплект, достаточный для сборки контроллера (схема, плата, программа).
Исходник программы однокристалки.
Немного обновленная, 36-я версия прошивки.
Д. Hечитайлов (UU9JDR), ndn@tel.ukrcom.sebastopol.ua
2:4600/65.73@fidonet
С реальной скидкой видеоняня ramili baby rv1500 на лучших условиях. Делали заказ на ресурсе pereezd-24.com перевозку мебели по Московской области с грузчиками и авто.