Цифрова частина прийомопередатчика. Після довгих експериментів я прийшов до висновку, що простий і надійний приймач для 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 вас цілком влаштовує ;-))), поімітіруйте перешкоди в передачі доступними вам способами. Після цього можна переходити до будівництва аналогової частини лінка.
  Передавач. Особливих пояснень, як мені здається, він не вимагає. Лазерний діод є колекторної навантаженням першого транзистора. Резистор в його емітерний ланцюга обмежує струм через цей транзистор і створює умови для роботи другого транзистора, який є фактично (спільно з R1) керованим дільником вхідної напруги. Другий транзистор управляється фотоструму діода, вбудованого в лазер для організації схеми обмеження температурного дрейфу його параметрів. Зі збільшенням світлового потоку збільшується базовий струм другого транзистора, і він шунтується вхідний сигнал на рівні, безпечному для лазера. Підлаштування резистор R3 призначений для регулювання допустимого рівня випромінювання лазера.Hомінали схеми підібрані так, що при кімнатній температурі можна зменшити його опір до нуля і це не призводить до фатальних наслідків для лазерного діода (принаймні у мене проблем не було). Hастройка передавача зводиться до вимірювання амплітуди сигналу на резисторі R2 (при підключеній і працюючої цифрової частини) та встановлення підлаштування резистором амплітуди імпульсів, відповідної імпульсного току 30-35 ма (при кімнатній температурі). (Мова йде про 5-та мілліваттних указка). Для надійності можна уточнити ці цифри для конкретної указки шляхом вимірювання струму через неї при свежезаряженних акумулятор (До розбирання). Цю величину можна надалі взяти за номінальний імпульсний струм через указку. Якщо в схемі використовується R4 (у мене його немає), і частина струму завжди тече через цей резистор, на відповідну величину треба зменшити виставляється струм через R2, так що б сумарний імпульсний струм опинився в зазначених вище межах. При зміні тепература параметри випромінювання, звичайно, будуть плавати, але розкид значень буде істотно знижений за рахунок негативного зворотного зв'язку по світловому потоку через фотодіод і другий транзистор. Резистором R4 можна виставити початковий рівень струму через лазер у відсутність сигналу. Вважається, що це підвищує живучість лазерного діода. С1 з цією ж метою згладжує перехідні процеси при включенні / вимиканні лазера. До харчуванню особливих вимог немає, можна взяти +5 В з комп'ютера. На закінчення кілька слів про розбиранні указки та її цокольовка. Можу розповісти тільки про свою парі вказівок. Hасколько це типово – не знаю. Спочатку я робив напис корпусу надфілем по периметру указки на рівні кнопки включення указки. Частина з батарейками відламуються. Стає видно маленька друкована хустки, на якій кріпиться кнопка. Хустки припаяні прямо до висновків лазерного діода. Голкою виміряв глибину до втулки, в яку запресован власне лазер. Зробив другий надріз, намагаючись потрапити на рівень втулки, в результаті чого отримав обрубок указки з повністю збереженою оптичної частиною, а з іншого (обрубаною) сторони стирчали три висновки з хусткою, яку я отпаял. Отже, залишилися три висновки, які стирчать з обрізаним частини указки. Вони розташовані трикутником. Один з них з'єднаний з корпусом лазерного діода. Це загальний висновок лазерного діода і фотодіода. Припустимо, що цей висновок відповідає верхньому куті трикутника. Тоді справа внизу буде розташований висновок фотодіода, а ліворуч внизу – висновок лазерного діода. Перед розбиранням корисно провести дослідження розходження променя лазера без оптичної системи. Це вам знадобиться при оцінці чутливості вашого приймача і дальності роботи вашого лінка. Для цього треба обережно вивернути оптичну систему з передньої частини указки і заміряти діаметр плями, який виходить на відстані від указки в інтервалі 5-25 см. Тепер можна переходити до побудови найважливішій частині лінка – аналогової частини приймача.

 

Система зв'язку двох комп'ютерів Приймач. Аналогова частина. Цей блок вимагає найбільшою акуратності і, я б сказав схемотехнічне культури при побудові і налагоджування. Харчування краще брати не з комп'ютера, а від окремого стабілізованого блоку живлення. Довжина провідників повинна бути мінімальна. Фільтруючі харчування конденсатори 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 дуже добре "ріже" все низькочастотні перешкоди.

skov@gaap.spb.ru

Джерело – Сайт паяльником ( cxem.net ).