Система связи на лазерных указках

6 Ноябрь 2008

Часть 1. Цифровая часть приемопередатчика.

После долгих экспериментов я пришел к выводу, что простой и надежный приемник для RS232 сделать трудно. Для RS232 надо мастерить что-то вроде схемы “привязки к уровню черного (или белого?)” - как в телевидении. Простыми средствами мне это сделать не удалось. Поэтому было принято решение перейти к импульсно-кодовому представлению сигналов RS232 и передаче информации импульсами. Такая система давно разработана и называется IRDA. Однако по условию задачи связь должна быть через ком-порт. Где-то в и-нете я видел микросхемы (буржуйские , разумеется) которые подключаются прямо к ком-порту, а на выходе у них импульсная последовательность или даже просто оптический сигнал. И приемник встроен в ту же микросхему. Мне эта штука не понравилась по двум причинам :
относительная дороговизна и жесткая привязка к фиксированной скорости ком-порта. Т.е. если вы (или какая-то умная программа) решили перенастроить порт на другую скорость - вам надо менять тактовую частоту на входе микросхемы.

По всем эти причинам я решил смастерить что-то похожее на IRDA, но более простое и независимое от скорости работы порта. Вот что получилось.

Стандарт FIRDA.

Каждый фронт в сигнале RS232 кодируется коротким однополярным импульсом, который передается по оптическому каналу. Hа приемнике эти импульсы поступают на вход триггера, работающего в счетном режиме. Hа выходе триггера получаем (в идеале) сигнал RS232. В принципе, это все. У это чудесного по своей простоте алгоритма есть только один существенный недостаток, который заключается в том, что при пропуске хотя бы одного импульса, на выходе триггера начинает появляться инверсия сигнала RS232. Конечно, можно сказать, что при потере стартового фронта в RS232 (или первого импульса в пачке IRDA) тоже произойдет сбой синхронизации, который при плотном потоке информации может быть ликвидирован не скоро. Однако, в предлагаемой системе потеря любого (а не только первого) импульса приводит к неприятностям. Грубо говоря, помехоустойчивость FIRDA раз в 8-10 хуже IRDA или RS232. В принципе , это было бы не так страшно (считаем, что ошибки появляются достаточно редко), если бы с течением времени FIRDA выходил на нормальный режим работы, как это происходит с его именитыми прототипами. Однако, если не предусмотреть специальных мер, FIRDA так и будет гнать
инвертированный поток, пока не произойдет еще одного сбоя ;)) Именно длительная инверсная работа мне казалась главным недостатком FIRDA и я дополнил его маленькой добавкой, которая в последствии меня самого удивила своей эффективностью и практически решила все проблемы. Добавка очень простая: если в течении некоторого времени (ну например 0.1 сек) на выходе триггера присутствует “1″ , то следует принудительно перевести его в нулевое состояние (считаем, что в паузах передачи на выходе RS232 - ноль). Теперь для полного счастья надо дергать готовность ком-порта передатчика один
раз в 10 сек, прерывая передачу на 0.1 сек , с тем чтобы триггер приемника установился в исходное состояние. Очевидно, в данном примере потери в скорости передачи - 1процент. Вот теперь, действительно все.

Как показала практика, дергать готовность ком-порта передатчика не надо. Многочисленные эксперименты показали, что при реальной работе через ком возникает множество естественных пауз различной длительности. (были проверены несколько сетевых игрушек, сеть между двумя Вин98,
терминалки с разными протоколами. Действительно плотный поток оказался только у терминалок, работающих через Z-модем). В моей версии линка время принудительной установки триггера выбрано около 5 миллисекунд. Такие паузы встречаются очень часто. Правда, это ограничивает снизу
используемые скорости передачи (в моем случае - не меньше 2400). Зато никаких проблем ни с каким софтом я не имел во всем диапазоне скоростей 2400..115200.

Цифровая часть передатчика системы связи на лазерных указках
Описание принципиальной схемы.
Сигнал Тх с выхода ком-порта через ограничивающий резистор R1 поступает на схему выделения фронтов, собранную на элементаж DD1.1, DD1.2. Hа выводе 4 элемента DD1.2 присутствуют импульсы длительностью около 1 микросекунды. ВременнЫе параметры этих импульсов не достаточно стабильны, поэтому в схему включен генератор нормированных по длительности импульсов, собранный на
триггере Т2. Он формирует импульсы длительностью около 3-4 микросекунд. При необходимости длительность подстраивается резистором R3. Для тех, кому важна стабильность/надежность/дальность работы линка и допустима максимальная скорость работы 57600 , я бы посоветовал удвоить номинал С2 и тем самым увеличить длительность нормированного импульса до 8 миллисекунд.
Можно использовать специальный переключатель максимальных скоростей 115200-57600, подключающий дополнительную емкость С2. (длина проводников до переключателя должна быть минимальна.) Схема цифровой части приемника содержит триггер Т1 с элементами R4,R5,C3,V2,
задающими максимальную длительность единицы на выходе триггера. При указанных на схеме номиналах, она равна примерно 5 миллисекундам. Если кто-то собирается работать только с большими скоростями, имеет смысл уменьшить это время путем уменьшения С3. Hа элементах DD1.3, DD1.4 собран
выходной усилитель, сигнал с которого поступает на вход Rx ком-порта. Это на всякий случай. У меня все прекрасно работало на перепутанном мотке проводов длинной 20 метров, когда я брал неусиленный сигнал (через резистор 1К) прямо с вывода 1 триггера Т1.

Теперь несколько слов о настройке схемы.
К счастью, цифровая часть приемопередатчика является совершенно самостоятельной и самодостаточной схемой, допускающей полную настройку и отладку без всяких лазеров и аналоговой части.

Порядок настройки.
Создайте файл килобайт на 300, содержащий один символ (мне понравился Y). Создайте батник, который засылает этот файл в ком-порт, а потом вызывает сам себя ;-) Запустите его. Проконтролируйте длительности и формы импульсов в передатчике.(лучше это делать на максимальной скорости, поскольку импульсы короткие). Закройте батник. Замкните выход передачика на вход приемника, а выход приемника подайте на вход Rx того же самого ком-порта. Войдите в любую терминальную программу ( я пользовался DN-ской терминалкой) Попробуйте понажимать на клавиши.
Вы должны увидеть нажимаемые символы на экране. Если этого не происходит, попробуйте просто замкнуть Rx и Tx и добиться описанного эффекта настройкой терминальной программы, после чего снова попытайтесь сделать то же самое через приемопередатчик. И наконец, последнее, самое важное испытание. Тут потребуется уже два компьютера. Соедините их ком-порты тремя проводами по классической схеме. Запустите какой-нибудь софт,использующий этот линк. Убедитесь, что все работает. Теперь попробуйте в разрыв одного сигнального провода вставить цифровой приемопередатчик. Попробуйте поработать с этим же софтом через эту железку и убедитесь, что FIRDA вас вполне устраивает ;-))) , поимитируйте помехи в передаче доступными вам способами. После этого можно переходить к постройке аналоговой части линка.

Часть2. Передатчик.

Особых пояснений, как мне кажется, он не требует. Лазерный диод является коллекторной нагрузкой первого транзистора.Резистор в его эмиттерной цепи ограничивает ток через этот транзистор и создает условия для работы второго транзистора, который является фактически (совместно с R1) управляемым делителем входного напряжения. Второй транзистор управляется фототоком диода, встроенного в лазер для организации схемы ограничения температурного дрейфа его параметров. С увеличением светового потока увеличивается базовый ток второго транзистора, и он шунтирует входной сигнал на уровне, безопасном для лазера. Подстроечный резистор R3 предназначен для регулировки допустимого уровня излучения лазера.Hоминалы схемы подобраны так, что при комнатной температуре можно уменьшить его сопротивление до нуля и это не приводит к фатальным последствиям для  лазерного диода (по крайней мере у меня проблем не было).

Аналоговая часть передатчика системы связи на лазерных указках

Hастройка передатчика сводится к измерению амплитуды сигнала на резисторе R2 (при подключенной и работающей цифровой части) и установление подстроечным резистором амплитуды импульсов, соответствующей импульсному току 30-35 ма (при комнатной температуре).(Речь идет о 5-и милливаттных указках).

Для надежности можно уточнить эти цифры для конкретной указки путем измерения тока через нее при свежезаряженных аккумуляторах (до разборки). Эту величину можно в дальнейшем принять за номинальный импульсный ток через указку. Если в схеме используется R4 (у меня его нет), и часть тока всегда течет через этот резистор, на соответствующую величину надо уменьшить выставляемый ток через R2, так что бы суммарный импульсный ток оказался в указанных выше пределах.

При изменении тепературы параметры излучения, конечно, будут плавать, но разброс значений будет существенно снижен за счет отрицательной обратной связи по световому потоку через фотодиод и второй транзистор. Резистором R4 можно выставить начальный уровень тока через лазер в отсутствие сигнала. Считается, что это повышает живучесть лазерного диода. С1 с этой же целью сглаживает переходные процессы при включении/выключении лазера. К питанию особых требований нет, можно взять +5В из компьютера. В заключение пару слов о разборке указки и ее цоколевке.

Могу рассказать только о своей паре указок. Hасколько это типично - не знаю. Сначала я делал надпил корпуса надфилем по периметру указки на уровне кнопки включения указки. Часть с батарейками отламывается. Становится видна маленькая печатная платка , на которой крепится кнопка. Платка припаяна прямо к выводам лазерного диода. Иголкой измерил глубину до втулки, в которую запресован собственно лазер. Сделал второй надрез, стараясь попасть на уровень втулки, в результате чего получил обрубок указки с полностью сохраненной оптической частью, а с другой (обрубленной )стороны торчали три вывода с платкой, которую я отпаял. Итак, остались три вывода, торчащие из обрезанной части указки. Они расположены треугольником. Один из них соединен с корпусом лазерного диода. Это общий вывод лазерного диода и фотодиода. Предположим, что этот вывод соответствует верхнему углу треугольника. Тогда справа внизу будет расположен вывод фотодиода, а слева внизу - вывод лазерного диода. Перед разборкой полезно провести исследование расходимости луча лазера без оптической системы. Это вам понадобится при оценке чувствительности вашего приемника и дальности работы вашего линка. Для этого надо осторожно вывернуть оптическую систему из передней части указки и замерить диаметр пятна, который получается на расстоянии от указки в интервале 5-25 см.

Теперь можно переходить к построению самой важной части линка - аналоговой части приемника.

Часть3. Приемник. Аналоговая часть.

Этот блок требует наибольшей аккуратности и, я бы сказал схемотехнической культуры при построении и наладке. Питание лучше брать не из компьютера, а от отдельного стабилизированного блока питания. Длина проводников должна быть минимальна. Фильтрующие питание конденсаторы C1,C2.C4,C5 д.б. расположены максимально близко к выводам операционного усилителя. Особенно важно близкое расположение к ОУ элементов входной цепи С3,VD1,R4. Желательно компактное расположение и экранирование всей конструкции. При грамотной схемотехнике у вас не должно быть никаких проблем с настройкой. У меня на столе не было выполнено ни одно из перечисленных выше требований и тем не менее все успешно работает. Так что есть надежда, что если сделать все правильно,то у вас тоже будет работать ;-)))

Аналоговая часть приемника системы связи на лазерных указках

Пару слов о самой схеме. Она предельно проста. Cоблюдайте полярность фотодиода! Резистор R4 влияет на амплитуду сигнала с фододиода и на его форму/частотные характеристики. Чем меньше номинал резистора, тем меньше сигнал с фотодиода и тем лучше его форма. У меня получались вполне приличные результаты при увеличении резистора до 4.7 К. Однако спешить с его увеличением я бы не советовал. И вообще, первое, что вы должны добится - это работа приемника на какой-нибудь умеренной скорости , ну например 57600. Это лучше делать в следующем порядке.

Итак, после десятой проверки монтажа выводим сопротивление подстроечника R1 в ноль и включаем питание. Подключаем к ком-порту собранный передатчик (цифровую и аналоговую части), запускаем батник (предварительно установив скорость работы порта 57600), позволяющий наблюдать непрерывную картинку передачи одного байта (о нем шла речь в первой части трилогии), располагаем лазер со снятой оптической системой в двух-трех сантиметрах от фотодиода, подключаем лограф к выходу приемника и начинаем медленно увеличивать сопротивление R1.

Через некоторое время транзистор Т1 начнет приоткрываться, и на выходе приемника появится гребенка импульсов. Оптимальное значение сопротивления R1 определяется в ходе экспериментов визуально по форме и амплитуде импульсов на выходе приемника. При выключении передатчика амплитуда шумов на выходе приемника не должна превышать 1-2 вольта. Транзистор Т1 должен быть лишь слегка приоткрыт . Типичное значение напряжения на его коллекторной нагрузке- 1-2 вольта.

После достижения успеха на этом первом этапе можно двигаться дальше - постепенно раздвигать приемник и передатчик, находить их наилучшее взаимное положение и , подстраивая R1, получать гребенку импульсов амплитудой почти равной амплитуде питания +12В. Форма у них может быть не совсем прямоугольной, но амплитуда должна быть хорошей. При максимально возможной раздвижке передатчика и приемника надо определить диаметр расфокусированного пятна лазера. Этот диаметр даст вам представление о максимальной дальности, на которой будет работать ваш линк. У меня этот диаметр равнялся примерно 20 см, что примерно соответствует динамическому диапазону в 33 дБ. Как мне кажется, этого вполне должно хватить для уверенной связи на расстоянии 100 метров без применения входных линз или на расстоянии 200 метров, если использовать сведотдиод типа ФД320 в виде красной пластмассовой линзочки диаметром около сантиметра на прямоугольном основании. А при наличии входной оптики… Впрочем, при больших дальностях уже другие проблемы…

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

Я специально ничего не говорил о конструктивном оформлении приемника. Да, наверно полезно иметь какие-нибудь бленды на входных светодиодах. Вообще-то приемник весьма устойчив к засветкам разного рода. Обычная засветка лампочкой 60 ватт с расстояния 70 см под углом в 30 градусов никак не влияла на работу схемы. Конденсатор C3 очень хорошо “режет” все низкочастотные помехи.

Вот вроде и все. И вообще , автор не питает никаких иллюзий относительно завершенности и совершенства представленных схем. Я претендую лишь на то, что все это работает и удовлетворяет тем условиям, которые я когда-то здесь излагал. Весьма приветствуется доброжелательная критика и ценные советы, особенно если они проистекают из практической работы по усовершенствованию данной конструкции.

Автор: Sergey Kovalev, 2:5030/143.38@fidonet.

Скачать статью “Система связи на лазеpных указках”

Оптический линк 10/100 Мбит

6 Ноябрь 2008

Этот передатчик отличается крайней простотой и надежностью в работе на частотах вплоть до 200 МГц. Основная микросхема - AD9661 от Analog Devices, специально предназначенная для таких применений.

Схема рассчитана на лазерный диод с максимальным током до 120 мА, имеет фронты выходного сигнала менее 2 нс, питается от стабилизированного источника 8…12 В, потребляя не более 200 мА.

Управляющий сигнал может быть ТТЛ или КМОП с соответствующими требованиями к быстродействию.

Hоминалы резисторов R4, R5 задают максимальный выходной ток для данного лазерного диода, резистор R6 определяет коэффициент усиления цепи обратной связи, значение конденсатора C8 выбирается в зависимости от коэффициента усиления по таблице из технического описания на AD9661.

Цепочка C7, VD2, R2 обеспечивает блокировку лазерного диода на время переходных процессов при включении питания, диод VD1 защищает от переполюсовки напряжения питания.

При разводке печатной платы очень критичным является индуктивность проводника, по которому идет импульсный ток (120 мА с фронтами 1.5 нс) - от источника питания +5 В на анод лазерного диода, с катода на выходы OUT1…OUT4, через микросхему на выводы GND1…GND8, через конденсаторы C10…C13 на источник питания +5 В. Вся эта цепь должна быть выполнена максимально коротким и широким проводником, причем прямой и обратный пути тока должны быть в соседних слоях.

Автор: Alexey Vladimirov

Скачать статью “Оптолинк 10/100 Мбит. Передатчик. Описание”

Переключатель елочных гирлянд

6 Ноябрь 2008

Переключатель елочных гирлянд выполнен на основе PIC16C84.

Поддерживает четыре канала управления (используется фазовое управление мощными тиристорами с дублирование на контрольные светодиоды).

Режим программирования - при включении питания удержать нажатой кнопку 4 и, одновременно, кнопки, определяющие установку спецрежимов:
1 - режим “резкого” включения/выключения, без плавной регулировки;
2 - резерв;
3 - режим управления тремя каналами, четвертый канал в некоторых режимах не использовать (типа “бегущих огней”).

При работе устройства кнопки 1 и 2 выбирают номер программы (номер программы отображается на индикаторах в двоичном коде), кнопка 3 переключает скорость работы (”быстро”, “медленно”, “нормально”), кнопка 4 включает последовательный перебор всех программ (отмена этого режима - нажатие кнопок 1 или 2).

Тактовая частота - 4.000 MHz.

Скачать файл xmas.obj

Автор статьи: Vladislav Baliasov.

Скачать статью “Переключатель елочных гирлянд на основе PIC16C84″

Разводка платы программатора Turbo

30 Октябрь 2008

Размер ~6*3.6 дюйма,
дорожки шириной от 0.012 дюйма,
слои - не отзеркалены (везде вид со стороны деталей).

Сверловка:
переходные отверстия 0.5 мм, по питанию - 0.7
под детали - 0.5, 0.7 и 1.1
общее количество переходов - 106,
остальных дырок - 486

Сетчатые полигоны - тестовые.
По плате разбросано 6 реперных дырок, для совмещения сторон.



Автор статьи: Jalil F. Gumerov, 2:5049/37@fidonet.

Скачать статью “Разводка платы программатора Turbo”

Схема программатора Turbo

30 Октябрь 2008

Рабочая схема платы программатора “Турбо”, версия 6.

Список деталей приведен в конце статьи.

Некоторые изменения от оригинала (добавленные детали имеют номера от 100):

1. счётчики к1561ие20 заменены на более доступные к561ие10.

2. вместо стабилизатора 32в из 50 вписан преобразователь напряжения по схеме, предложенной Балясовым.

3. введён третий (регулируемый) стабилизатор для питания программируемой м/сх. подозреваю, что софт не знает о возможности такой регулировки, поэтому вместо vt101,r107,r108 можно поставить переменный резистор.

4. изменена схема стабилизаторов, для облегчения режима работы кр142ен*. Выводы 6 и 9 м/сх кр142ен* подключены только для упрощения трассировки.

5. напряжение на выводах 1 и 14 lpt ограничено уровнем 5в, вместо 12.

6. 27c040 “условно” вставлена в панельку, для большей ясности.

7. светодиоды led1,led2 - индикация режимов.

Список деталей:

C3-C7,C9-C11,C14,C17 330p; C18 1n;  C16 22n;  C1,C21 2.2n; C2,C12,C15,C20,C22-C24,C102,C106 100n; C19,C101 150n; C8,C13 200mk;  C103,C104 100mk;  C107 4.7mk.

R1-R11,R17-R19,R23,R28,R31,R37,R38,R111,R116 10k; R12-R15,R20,R119 510;  R21,R22,R44,R107,R108 20k; R16 1M;  R24,R105 4.7k;  R25,R36,R106,R112 150; R26,R34,R109,R113 2k;  R27 1.6k;  R29,R110 2.4k; R30 3k;  R33 56k;  R35 5.6k;  R40,R43,R115 6.8; R45 6k;  R46 12k;  R47 2.6k;  R114 1.8k; R101,R103 470;  R102,R104,R117 1k;  R118 24;

VD1-VD7 kd521;  VD102 kc147;  VD103 kd212; VD104-VD106 27V в сумме; VT1-VT6 kt3107;  VT7 t3102;
VT8,VT105 kt815a;  VT10,VT106 kt815g; VT101 kt315;  VT107 kt361;

DA1 kr142en2;  DA2,DA3 kr142en1; DD1,DD3 555ir16;  DD2,DD4,DD5 k561ie10; DD7 k155lp9;  DD8 k555ir8;  DD9 k155ln2;

LED1 Power;  LED2 Prog; T1 Transformator: kernel B-16 (2000HM) wire d.25; 1-2 3w; 3-4 20w; 5-6 30w;

Автор статьи: Дж. Гумеров, 2:5049/37@fidonet.

Скачать статью “Схема программатора Turbo”