Table of Contents

Andrei Florian BOJIN - UTP Tester

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul presupune conceperea unui gadget care sa permita aflarea tipului unui cablu UTP ( straight, crossover, rollover, defect), cat si a lungimii acestuia.

Am ales acest proiect deoarece mi s-a parut ca ar fi unul din proiectele cele mai practice, care sa fie utilizat destul de des in viata de zi cu zi, in domenii cum ar fi retelistica sau protocoalele de comunicatie.

Descriere generală

Schema bloc

Modulele proiectului:

- PORT A: Portul RJ45 al Senderului si 8 LED-uri pentru evidentierea semnalelor trimise pe cele 8 fire care alcatuiesc cablul UTP

- PORT B: 4 LEDuri pentru evidentierea tipului cablului UTP: Straight, Crossover, Rollover, Defect

- PORT C: Afisajul LCD

- PORT D: Portul RJ45 al Receiverului si 8 LED-uri pentru evidentierea semnalelor trimise pe cele 8 fire care alcatuiesc cablul UTP

Hardware Design

<WRAP column 50%>

Lista de piese

Componenta Valoare Cantitate
LED 3 mm 20
Rezistenta 1 Kohm 20
Afisaj LCD 2×16 caractere 1
Conector ethernet RJ45 - 2
Cablu de legatura 2 m 1
Banda(panglica) conductoare 2 m 1
Bareta tata 36 pini 2
Bareta mama 10 pini 6
Despartitor metalic - 2
Surub de plastic - 4

</WRAP>

Schema electrica

Software Design

Mediul de dezvoltare folosit este Programmer's Notepad iar compilatorul folosit este AVR-gcc. Pentru incarcarea programului pe microcontroller am folosit Bootloader-ul folosit si la laborator.

Am folosit libraria LCD folosita si la laborator unde am remapat pinii pentru convenienta proiectului meu.

Implementarea presupune parcurgerea celor 8 pini corespunzatori celor 8 fire care compun un cablu si trimiterea de semnale pe fiecare, construind un vector cu ordinea in care se primesc semnalele pe pinii receiverului. Acest vector se compara mai departe cu 3 vectori folositi ca referinta:

int straight[8] = {1, 2, 3, 4, 5, 6, 7, 8};

int cross[8] = {3, 6, 1, 4, 5, 2, 7, 8};

int roll[8] = {8, 7, 6, 5, 4, 3, 2, 1};

in urma caruia se identifica tipul cablului si se aprinde unul din cele 4 LEDuri corespunzatoare.

Din pacate, calculul lungimii cablului nu mi-a iesit. Voi explica in amanunt insa, cum as fi procedat sa calculez aceasta lungime, macar teoretic.

Am gasit doua metode:

I. Se bazeaza pe faptul ca fiecare cablu UTP are o constanta de tipul delay al semnalului pe distanta de 1m. Pe wikipedia aceasta are valoarea de 4.80-5.30 ns/m.

Rationamentul din spate este ca se determina delay-ul pe intreg cablul si se imparte la aceasta constanta, rezultand lungimea cablului. Problema este ca, pentru a calcula delay-ul pe intreg cablul este nevoie de un timer de ordinul nanosecundelor, dar microcontrollerul nostru, cu o frecventa de 16MHz, are o rezolutie de calcul de ordinul a 62,5 ns. Deci pentru un delay constant de 10 ori mai mic ca aceasta rezolutie (4.80-5.30 ns/m), daca cablul in cauza nu este mai mare de 10 metri, lungimea acestuia nu va putea fi calculata.

Trebuie ori un microcontroller cu o frecventa mai mare, ori un cablu de cel putin 10m, si atunci fiind dispus la erori destul de mari.

II. O a doua metoda s-ar baza pe formula de calcul a rezistentei cablului:

Ar fi de ajuns sa se aplice aceasta formula pe unul din cele 8 fire ale cablului UTP, evitand astfel eroarea de aproximare a suprafetei sectiunii prin cablu. Rezistivitatea ar putea fi considerata cea a cuprului: 1.68 x 10^-8, singura necunoscuta fiind rezistenta pentru a calcula lungimea cablului. Pentru a afla rezistenta, m-am gandit ca cel mai bine ar trebui folosit un divizor de tensiune, una din rezistente fiind cea a cablului, iar cealalta avand o valoare apropiata pentru a nu o neglija pe cea a cablului in raportul rezistentelor. Tensiunea nominala ar fi cea de 5V, iar cea din dreptul uneia din rezistente ar putea fi masurata prin intermediul portului ADC de pe microcontroller. Problema mea era ca acest port era portul A, folosit deja pentru a trimite semnale receiverului, iar o remapare a porturilor ar duce la alterarea designului.

Rezultate Obţinute

<WRAP column 37%>

Cu exceptia faptului ca nu l-am reusit sa-l fac sa calculeze si lungimea cablului, testerul a iesit exact cum mi-am propus. In momentul in care se cupleaza capetele cablului, se trimit semnale de la sender la receiver si se aprind ledurile secvential (albastre pentru Sender, verzi pentru Receiver). Dupa analizarea si compararea rezultatelor, la LCD se afiseaza tipul cablului si se aprinde unul din cele 4 leduri corespunzatoare tipului cablului.

</WRAP>

<WRAP column 20%>

Placa de baza

</WRAP>

<WRAP column 20%>

Placa proiectului

</WRAP>

<WRAP column 20%>

Spatele placii proiectului

</WRAP>

<WRAP column 20%>

Magistrale si conectori

</WRAP>

Concluzii

Mi-a facut foarte mare placere tot procesul de planificare, aranjare si lipire a componentelor pe placa, pentru un aspect atat estetic, profesionist cat si eficient.

Nimic nu se compara cu senzatia pe care o simti atunci cand vezi ca toate eforturile depuse au dat roade si gadgetul prinde viata. Apreciez de asemenea faptul ca proiectul poate fi refolosit pentru programarea altor task-uri, oferindu-i astfel o flexibilitate binevenita ca bonus. Sunt multumit ca nu va fi uitat undeva intr-un sertar, ci va putea fi (re)folosit in viata reala.

Dupa atatea materii teoretice, este binevenita o latura mai practica, pentru a aprecia intradevar aplicatiile notiunilor invatate.

Download

Arhiva cu sursa: proiect_pm_bojin_andrei_333ca.zip

Schema electrica: schemapm-baf.sch

Bibliografie/Resurse

M-am inspirat din proiectele asemanatoare ale colegilor din anii trecuti, atat in modul de conexiune al componentelor electrice, cat si al codului folosit.

De asemenea, alte resurse:

Informatii generale cabluri UTP

Datasheetul microcontrollerului

Datasheetul LCD-ului

Metoda de calcul a lungimii cablului