korak Nis
Član broj: 125522 Poruke: 622 *.dynamic.sbb.rs.
|
Zofr,
odgovori na pitanja:
1. Navescu rezultate proracuna za CNY17-4 (a moze i neki brzi kao 6N136) i otpornik od 200 oma. Za aproksimaciju zavisnosti napona na diodi, a time i na otporniku, zavisno od struje kroz diodu Id koristio sam Ebers-Molove jednacine, sa tom razlikom sto sam k*T/q (k Bolcmanova konstanta, T tempertura u kelvinovim stepenima i q naelektrisanje elektrona) koje iznosi oko 28mV zamenio sa 34mV kako bi dobio krivu koja se poklapa sa krivom datom za CNY17-4. Jednacina koja odredjuje struju kroz diodu je:
Id = 2.0e-16*exp(U/0.034)
a iz ovoga je napon:
U = 0.034*ln(Id/2.0e-16)
Konstanta 2.0e-16 je inverzna struja zasicenja PN spoja. Ako strujnom petljom tece struja I onda mora da je zadovoljena jednacina:
R*(I-Id) = 0.034*ln(Id/2.0e-16)
Ova jednacina ne moze da se resi po Id jer je transcedentna, ali moze numericki. Evo ti nekoliko vrednosti struje Id u zavisnosti od struje I:
I = 10mA Id = 14mA
I = 15mA Id = 9.2mA
I = 10mA Id = 4.4mA
I = 7mA Id = 1.5mA
I = 5mA Id = 75uA
I = 4mA Id = 0.5uA
I = 3mA Id = 2.2nA
Faktor Ic/Id za ovaj optokapler je oko 1.5, pa vidis da kada petljom tece struja od 5mA kroz kolektor-emitor tece samo 112uA. Ova struja na kolektorskom otporniku, koji je recimo 1k ce napraviti pad napona od 112mV sto je zanemarljivo. Kada ne bi bilo ovog otpornika (200 oma) struja kroz kolektor-emitor bi bila 7.5mA sto znaci da bi tranzistor opto kaplera bio u zasicenju. Ovo znaci da smetnja mora da proizvede u petlji struju vecu od 5mA da bi to proizvelo stetne posledice. Ja ne znam koja bi to smetnja mogla da izvede. Cak i u slucaju da je petlja zatvorena, tece 20mA, a smetnja proizvodi struju koja se suprotstavlja struji petlje, umanjujuci je na 15mA, tranzistor optokaplera ce i dalje biti zasicen ne reagujuci na smetnju.
2. Programiras SCI mikrokontrolera da radi u loop modu tako da kada ide TxD, to se uvodi u RxD i moze da se cita. Dakle, kada neki uredjaj zeli da komunicira, on ceka da linija bude slobodna. Mislim da svi MCU-ovi koji se spominju na ovom forumu imaju generisanje interrupt-a kada je linija slobodna. Tada uredjaj salje prvo svoju adresu i istovremeno cita to sto salje. Ako je procitana adresa ista kao sto je poslata, to znaci da se ni jedan drugi uredjaj nije zakacio na liniju, i moze da nastavi sa komuniciranjem. Ako procitana sopstvena adresa nije ista onda se uredjaj povlaci, jer to znaci da se neko drugi javio istoremeno.
Kod eterneta ova kolizija se resava tako sto se oba uredjaja povlace, i posle nekog vremena koje se generise kao slucajni broj uredjaji ponovo javljaju na liniju. Sada postoji verovatnoca da se ne jave istovremeno i komunikacija se ostvaruje.
Adresa uredjaja moze biti odredjena ne binarno vec brojem jedinica. Tako uredjaj broj 5 ima adresni bajt 00011111, a uredjaj 3 ima adrsni bajt 00000111. U slucaju kolizije (istovremeno javljanje na liniju) oba uredjaja ce procitati kao sopstvenu adresu 00000111, sto znaci da ce se uredjaj broj 5 povuci a uredjaj broj 3 ce nastaviti da komunicira. Slicno ovome je resena kolizija kod CAN komunikacije.
Ustvari cod CAN je malo drukcije. Ako je adresa uredjaja 12 = 1100 a drugog 6 = 0110, onda ce biti procitane sopstvene adrese kao 4 = 0100. Analiza procitane adrese ide sa desna u levo. Za uredjaj 12 vec je krajnji levi bit 0 umesto 1 i on se povlaci. Komunikaciju preuzima uredjaj kod koga se ne menja poslata adresa na log. 1 koja je krajnje levo. Da bi ovo funkcionisalo uredjaj koji se povlaci to radi ne kada procita celu adresu koju je poslao, vec odmah cim je prva 1 koju je poslao primljena kao 0. Na primer uredjaj 12 i uredjaj 2 :
12 salje 1
2 salje 0; 12 ustanovio da je njegov bit promenjen, i on se povlaci tako da ce uredjaj 2 procitati svoju adresu. Ovo nije moguce napraviti kod SCI, osim ako adrese nisu binarne, vec kako sam napred napisao.
Nadam se da je ovo dovoljno objasnjenje.
Pozdrav.
[Ovu poruku je menjao korak dana 05.08.2009. u 14:04 GMT+1]
|