AX elektronika d.o.o.
Avtor: Jurij Mikeln
E-pošta: stik@svet-el.si
2018_268_48
Morda bo kdo od bralcev rekel, da dandanašnji pa Ethernet kablov ne uporabljamo več. Morda res, saj je veliko enostavneje zagotoviti WiFi povezavo preko usmerjevalnika in našo napravo brezžično povezati na omrežje. Morda res – morda pa včasih ni možno uporabiti WiFi povezave zaradi fizikalnih lastnosti stavbe – ali pa namenoma potrebujemo prav žično Ethernet povezavo zato, da nepridipravom preprečimo priklop na naše omrežje.
Ta vsebina je samo za naročnike
Kakor koli že, v tokratnem članku vam bomo predstavili enostavno napravo, s katero bomo lahko ugotovili, ali je naša Ethernet povezava dobra in ali so Ethernet konektorji pravilno narejeni.
Namreč ni hujšega od tega, da vam omrežje ne deluje samo zato, ker samo en konektor nima dobrega stika – ali pa je celo napačno povezan. Zato je potrebno uporabiti napravo, ki se imenuje LAN tester – in takšno napravo si bomo naredili kar sami.
Kaj potrebujemo
Za izdelavo LAN testerja potrebujemo sledeče:
- 1 x Perforirano razvojno ploščo,
- 1 x Arduino Uno ali Arduino NANO oziroma katerega imate pri roki
- 2 x RJ45 8P8C Ethernet konektorje
- 9 x LEDic
- 9 x upor 220 Ohmov
- 9 x dioda 1N4148
- 1 x SDPD stikalo
- 1 x 555 Timer IC
- 1 x 4017 Dekadni števec Counter
- 1 x upor 10k
- 1 x upor 150k resistor
- 1 x kondezator 4,7 µF
- 1 x baterijo 18650 ali podobno
- 1 x ohišje 18650 baterije ali podobno
- 1 x TP4056 modul za polnjenje baterije
- nekaj žic za izdelavo priključnih kablov in
- spajkalno opremo.
Princip delovanja
Omrežni kabel je sestavljen iz 4 prepletenih parov žic,ki tvorijo LAN kabel, včasih pa je temu dodan tudi oklop.
Teh 8 (9) žic je potrebno testirati eno za drugo, sicer medsebojnih stikov ne bi mogli zaznati. V tem projektu bomo testirali samo 8 žic, vendar bi z malo modifikacij lahko testirali tudi 9 žic.
Zaporedno testiranje se izvaja avtomatično s pomočjo multivibratorja (NE555) in premikajočega registra (CD4017). V principu vezje predstavlja bežečo luč, ki vklaplja LEDice eno za drugo, med vezjem in LEDicami pa je Ethernet kabel. Če eden od kablov ni povezan oziroma je prekinjen, ta LEDica ne bo zasvetila. Če sta v stiku dva kabla bosta zasvetili dve LEDici. In če so žice zamenjane med seboj se bodo tudi LEDice prižigale v tem zaporedju.
NE555 v tem vezju deluje kot multivibrator s frekvenco približno 1 Hz. NE555 daje takt pomikalnemu registru CD4017. Namesto NE555 bi lahko uporabili tudi Arduino, ki bi generiral takt 1 Hz tako, da bi uporabili »Blink« primer iz Arduino knjižnice.
CD4017 je pomikalni register, ki logično 1 pomika od enih do drugih vrat.
Taktne impulze vežemo na vhod CD4017 (priključek št. 14) in vsakič, ko bo CD4017 prejel impulz, bo premaknil logično 1 za eno mesto naprej. CD4017 lahko šteje do 10, v našem primeru bo štel do 8, kar pomeni, da bo izhod št. 9 povezan na Reset vezja, kot je to prikazano na sliki 5.
Sestavljanje naprave
Vezje sestavimo na prototipni plošči, kamor najprej prispajkamo upore, nato podnožja za obe integrirani vezji, ter nato kondenzator. Izhode iz CD4017 vežemo tako, kot je prikazano na sliki 6.
Opazili boste, da so konci kabla spojeni skupaj, saj je le tako možno testirati posamezno žico/povezavo kabla.
Opis delovanja je predstavljen na sliki 7.
Poglejmo, kako naprava deluje. Predvidimo, da je izhod 1 na logični 1, vsi ostali priključki pa na logični 0. Tok bo tekel preko LED1 in zaporednega upora. Paralelno vezana dioda nima vpliva, pač pa ga ima sosednja dioda, preko katere steče tok.
Verzija z Arduino
Avtor naprave [1] je Arduino uporabil zgolj kot generator takta, kar je skoraj »žalitev« za tako zmogljivo vezje, kot je Arduino, ki lahko poleg generiranja takta počne še marsikaj. Zato je smiselno, da Arduino malce bolj zaposlimo. Avtor naprave [2] je Arduino uporabil namesto obeh integriranih vezij, kar je edino smiselno.
Vezavo LAN testerja z Arduino vidimo na sliki 8.
Na sliki 8 vidimo, da Arduino zdaj opravlja nalogo tako generatorja takta NE555 kot tudi pomikalnega registra CD4017. Izhodi Arduino so vezani na LEDice, ki so tokrat malce drugače vezane. Arduino pa opravlja isto nalogo, to je generira logično enico in jo premika od enega izhoda do drugega in naprej.
Avtor je podal tudi kodo za to vezje
//#define VERBOSE char straight[8]={2,3,4,5,6,7,8,9}; char cross[8]={4,7,2,5,6,3,8,9}; void setup(){ pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(12, INPUT); // Straight (normal) cable or cross cable pinMode(13, OUTPUT); // Control LED #ifdefVERBOSE Serial.begin(9600); #endif } void loop(){ if(digitalRead(12)== LOW){ // Cross cable #ifdefVERBOSE Serial.println("Cross cable"); #endif for(char n =0;n <8;n++){ #ifdefVERBOSE Serial.print(n+1, DEC); Serial.print(": line "); Serial.print(cross[n]-1, DEC); Serial.print("(pin "); Serial.print(cross[n], DEC); Serial.println(")"); #endif PulseOut(cross[n],1000); PulseOut(13,50); } }else{ // Straight (normal) cable #ifdefVERBOSE Serial.println("Straight cable"); #endif for(char n =0;n <8;n++){ #ifdefVERBOSE Serial.print(n+1, DEC); Serial.print(": line "); Serial.print(straight[n]-1, DEC); Serial.print("(pin "); Serial.print(straight[n], DEC); Serial.println(")"); #endif PulseOut(straight[n],1000); PulseOut(13,50); } } } void PulseOut(char pin,int ms) { digitalWrite(pin, HIGH); delay(ms); digitalWrite(pin, LOW); }
Seveda pa smo tudi v uredništvu revije Svet elektronike pripravili svoje vezje in Bascom-AVR programsko kodo. Vezje je podobno prvi verziji predstavljene v tem članku.
Vezje je sestavljeno iz dela, kjer so LEDice in dveh povezovalnih kablov. Povezovalni kabel (na sliki 9 zgoraj) je sestavljen iz dvojne ženske letvice s štirimi kontakti na eni strani, na drugi strani pa je Ethernet konektor. Za normalno delo bomo potrebovali dva takšna kabla: enega bomo vtaknili v MiniPin (MikroPin ali MegaPin) razvojno ploščo v PortB, drugega pa v diodno vezje.
Bascom-AVR program, ki teče v našem razvojnem vezju, je sprva bil precej enostaven:
Config PortB = Output PortB = 254 '&B00000001 Do Wait 1 Rotate PortB , Right Loop
Pri testiranju pa smo ugotovili, da v primeru zamenjanih priključkov ne vemo dobro, kje se nahaja kateri priključek. Zato smo program spremenili tako, da na priključku 1 LEDica utripne 1x, na priključku 2 LEDica utripne 2x in tako naprej do 8. priključka, kjer LEDica utripne 8x in zadnji utrip sveti še malce dalj, da zanesljivo vemo, da je to konec sekvence.
Izboljšan program sedaj izgleda takole:
Do Restore Dta1 For I = 1 To 8 Read P For J = 1 To I PortB = 0 Waitms 200 PortB = P Waitms 200 Next Wait 1 Next Wait 1 Loop Dta1: Data &B00000001 , &B00000010 , &B00000100 , &B00001000 , &B00010000 , &B00100000 ,˝&B01000000 , &B10000000
Program bo tekel na večini AVR mikrokontrolerjev. Pomembno je, da ima izbrani AVR mikrokontroler vseh 8 izhodov prostih.
Testiranje Ethernet povezave
Sprogramiran mikrokontroler vtaknemo v našo razvojno ploščo, na PortB vtaknemo žensko letvico, ki je preko kratkega Ethernet kabla spojena na Ethernet konektor. Ta konektor vtaknemo v Ethernet vtičnico naše mreže. Na drugi strani mreže, ki jo testiramo, pa vtaknemo drugi Ethernet konektor, ki ga povežemo z diodnim vezjem. Če je z mrežo vse OK, bodo vse LEDice svetile razen ene. Ena ugasnjena LEDica bo »potovala« in tako bomo z lahkoto ugotovili, ali je z mrežo vse OK. To velja za prvi program, pri drugem programu pa bomo lahko opazovali utripanje LEDic od prve do osme.
Zaključek
Kot omenjeno, je včasih potrebno potegniti Ethernet kable za omrežno povezavo. Pri tem so razni konektorji v tej mreži lahko velik problem in ko mreža ne deluje, moramo na nek način ugotoviti, kje je prekinjena. In v ta namen nam bo odlično služila predstavljena naprava. Naredite jo lahko tako, da uporabite dve integrirani vezju NE555 in CD4017, Arduino, MiniPin s sprogramiranim mikrokontrolerjem ali zgolj AVR mikrokontroler, ki se ga priklopi na ustrezno 5V napajanje in poveže PortB na povezovalni Ethernet konektor.
Seveda se takšen preizkuševalnik Ethernet povezav ne more primerjati s komercialnimi preizkuševalniki, ki na LCD zaslonu tudi izpišejo, kako so dejansko povezane Ethernet žice med sabo. Morda pa bo takšen napreden preizkuševalnik kateremu od naših bralcev predstavljal izziv, da ga naredi.
Vira:
- https://www.hackster.io/tarantula3/diy-lan-cable-tester-with-or-without-arduino-3c41d7
- https://variecose.wordpress.com/2012/04/15/ethernet-lan-rj45-cable-tester-with-arduino/