Добавил:
інстаграм _roman.kob, курсові роботи з тєрєхова в.в. для КІ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сютик.docx
Скачиваний:
11
Добавлен:
31.05.2020
Размер:
2.3 Mб
Скачать

2.3 Розробка електричної принципової схеми

Принцип роботи: відповідна частина являє собою набір опорів різних номіналів. Виміряємо їх. Знаючи їх номінали і розпаювання відповідної частини, ми можемо точно з'ясувати, як кроссірованний кабель. Нижче представлена схема пристрою (всі ілюстрації клікабельні). Конкретні номінали опорів обрані швидше з урахуванням наявності в магазині, ніж усвідомлено, хоча вийшов шматочок ряду Фібоначчі.

Рис.2.2 Схема тестера

Рис.2.3 Схема вілповідної частини

Серцем схеми є мікроконтролер ATMega16. Чому саме він? Суперечка «AVR vs PIC» є типовий холівар, тому скажу просто: моїм свавіллям нехай буде AVR. А з усієї їх лінійки Mega16 найдешевший кристал, що має на борту АЦП на 8 каналів. Ускладнювати схему комутаторами аналогових сигналів мені відверто не хотілося. Важливий плюс: цю модель можна купити навіть в моєму замкадье, де на все місто один магазин електронних комплектуючих з цінами по 150-500% від Москви.

Порт A мікроконтролера - це входи АЦП, на порту B у нас ISP і пара службових функцій, порт C використовуємо для формування тестових сигналів, ну а порт D - для спілкування з користувачем за допомогою HD44780-сумісного дисплея.

Маємо схему від батарейки типу «Крона», через стабілізатор LP2950, ​​DA1 за схемою. Чому не ШІМ, а звичайний лінійний стабілізатор, нехай і low-dropout? Струм споживання невеликий, на одній батарейці я провів все тестування і налагодження схеми, запустив вже пару реальних об'єктів по півсотні портів - поки не розрядилася. А ось високочастотні перешкоди, які є супутник будь-якого Шиман, можуть знизити точність роботи АЦП. Ускладнювати схему, знову ж таки, не хочеться. Чому саме LP2950? Він був в магазині.

Вхідні ланцюги захистимо за допомогою супресорів VD1.1 - VD1.8, я взяв 1,5КЕ6,8СА. Від потрапляння в 220В вони, звичайно, не врятують, а от 60В з якою-небудь телефонної лінії погасити цілком зможуть.

Ланцюжок VD2 - R4 служить для виявлення розряду батареї. На стабілітроні падає 5,1В, Таким чином, коли напруга батареї впаде нижче 6В, на PB2 з'явиться лог. 0. Тут по уму потрібен б тригер Шмітта, але не знайшлося.

Інформацію виводимо за допомогою HD44780-сумісного дисплея, мені попався WH-1604A-YYH-CT #. Схема підключення типова і пояснень не потребує. Варто сказати тільки про номінал опору R5, що задає яскравість підсвічування. Чим більше номінал, тим довше буде жити батарейка - вся інша схема споживає менше 5 мА, основний споживач саме підсвічування дисплея. Але якщо перестаратися, в темряві нічого не побачиш на екрані. Я зупинився на 100 Ом.

2.4 Розробка алгоритму роботи пристрою

Етап 1. Початкові перевірки

перевіримо, чи не підключено до лінії якесь активне обладнання. Всі керуючі лінії (порт C, нагадаю) переводимо в Hi-Z стан, вимірюємо напруга на всіх лініях. Вони повинні бути близьконульових. В іншому випадку ми розуміємо, що з іншого боку проводу підключено що завгодно, але не наша відповідна частина, і далі продовжувати сенсу не має. Зате має сенс повідомити користувачеві, що «на лінії є напруга!».

перевіримо рівень сигналу на PB2. Якщо там 0, то батарея розряджена. Повідомимо про неполадку користувачеві, якщо все ОК - йдемо далі.

Етап 2. Перевірка цілісності ліній і наявності коротких замикань

Для кожної з 8 ліній проробляємо наступне. Подаємо на неї +5 з порту C, зберігаючи всі інші лінії порту в високоімпедансних стані, і вимірюємо напруга на інших лініях. Якщо на всіх лініях близьконульових значення - досліджувана лінія обірвана. Якщо ж на якийсь із ліній теж з'явилося +5 - це КЗ. У нормі ми побачимо якісь проміжні значення.

Етап 3. З'ясування схеми кроссіровкі

Ось і підібралися до найцікавішого. Відсіявши все свідомо несправні лінії (перебиті і закорочені дроти), приступимо до вимірювання опорів залишилися ліній (нехай їх кількість N, 0 <= N <= 8). Введемо позначення:

Rxy - опір між лініями x і y.

Rx - номінал опору, підключеного до лінії x.

Ясно, що Rxy = Rx + Ry

Заміряючи опору між лініями, ми отримуємо систему лінійних рівнянь. Порівнявши отримані значення R1 ... RN з еталонними, ми з'ясуємо схему кроссіровкі.

Опір обчислити нескладно. Подамо на лінію X високий рівень, на лінію Y - низький, а інші лінії порту C залишимо в Hi-Z. У ланцюзі (див. Рис. 3) падіння напруги на відомому нам опорі, утвореному паралельним включенням R1.Y і R2.Y за схемою становить U1, а на невідомому Rxy падає (U2 - U1). Значить, Rxy = (R1 || R2) * (U2 - U1) / U1.

Рис.2.4 Принцип зміни опору

Якщо N <3 - ми безсилі. Ми можемо зробити все одне вимірювання опору між ними, в той час, як маємо 2 невідомих - опір, підключений до кожної з них. Система, в якій число рівнянь менше числа невідомих, має безліч рішень. Доведеться показати користувачеві знаки питання на цих лініях - вони начебто справні, але з'ясувати схему кроссіровкі можливим не уявляється.

При N = 3 у нас є лише один можливий варіант. Вимірявши всі доступні опору R12, R13, R23, ми отримаємо систему:

R1 + R2 = R12

R1 + R3 = R13

R2 + R3 = R23

Легко показати, що:

R1 = 1/2 * (R12 + R13 - R23)

R2 = R12 - R1

R3 = R13 - R1.

При великих значеннях N ми можемо складати систему рівнянь безліччю способів, проводячи заміри різних опорів Rxy. На перший погляд, різниці, як вибирати, які опору виміряти, немає. Однак, диявол живе в дрібницях. На прикладі N = 8 поясню, що я маю на увазі. У першій реалізації алгоритму я робив вимірювання так:

R1 + R2 = R12

R1 + R3 = R13

...

R1 + R8 = R18

R2 + R3 = R23

Склавши два перших рівняння і віднявши останнє, отримаємо те ж саме 2R1 = R12 + R13 - R23, а всі інші опору знайдемо з рівнянь 1 - 7, де R1 вже відомо.

Проблема криється в тому, що при деяких видах кроссіровкі значення R1 виявлялося велике (15 кОм і вище), а похибка вимірювання опору з його збільшенням зростає. У підсумку, виходило так, що малі щодо R1 опору номіналом 1-2 кОм вимірювалися з похибкою в 70-80%! Очевидно, що для забезпечення гарної точності нам варто скласти систему так, щоб на місці R1 виявилася інша невідома, мінімальна з усіх. Для цього нам доведеться виконати всі можливі вимірювання (добре, що їх не так багато, в гіршому випадку 28). Фактично, ми отримали матрицю 8 х 8, симетричну відносно головної діагоналі (ясно, що Rxy = Ryx). Виберемо з усіх результатів мінімальний, нехай це Rij = Ri + Rj. У рядку i знайдемо Rik, таке, що Rik> Rij, але менше інших елементів рядка. отримаємо:

Ri + Rj = Rij

Ri + Rk = Rik

Rj + Rk = Rjk

Вирішуємо і знаходимо серед Ri, Rj, Rk найменше (припустимо, їм виявилося Ri). залишилися невідомі Rx знаходимо з Rx = Rix - Ri.

Етап 4. Визначення точки обриву, якщо така є

Розумні і дорогі залізяки вимірюють відстань до точки обриву за допомогою TDR. Складно, дорого, круто. У нас можливості куди скромніше, та й не так вже й часто потрібне знання положення обриву до сантиметрів - зазвичай розуміння в стилі «прямо біля мене», «на тому кінці», «посередині, де недавно стінку довбали» більш ніж достатньо. Так що - вимір ємності кабелю.

Переводимо всі лінії порту C, крім тієї, яка підключена в тій жилі, де є обрив, в Hi-Z. Подаємо на жилу +5, заряджаючи її. Виміряємо напругу на ній, це буде наше початкове U0. Переводимо всі лінії в Hi-Z. Починається розряд кабелю через резистор R2.X опором 1 МОм. Зачекавши 1 мс, вимірюємо напруга на цій лінії U.

Не можна забувати, що ланцюга на платі, роз'єм і т.д. теж мають свою ємність, так що пристрій потрібно відкалібрувати на парі шматків кабелю різної довжини. У мене вийшло при нульовій довжині 1710 пФ, і ємність кабелю 35 пФ / м. Практика використання показала, що навіть якщо і бреше воно, то не сильно, відсотків на 10. Ситуація виду «де ж недотиснути контакт, в шафі на патч-панелі або в розетці? » вирішується миттєво.

Користуюся. Задоволений. Бажають повторити мій шлях можуть ось тут знайти архів з друкованою платою в форматі DipTrace, схемою в форматі sPlan, прошивкою МК, а ще файл з прикладом командного рядка для avreal, в якому можна подивитися fuse-біти.