Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

CAN interfejs na fizickom nivou

[es] :: Elektronika :: Mikrokontroleri :: CAN interfejs na fizickom nivou

Strane: 1 2

[ Pregleda: 4745 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon CAN interfejs na fizickom nivou21.01.2009. u 11:50 - pre 186 meseci
Potreban mi je CAN interfejs, dakle samo na fizickom nivou, koji moze da drajvuje CAN magistralu sa naponom od 24V. Nasao sam jedan kod Freescale ali se on vise ne proizvodi. Svi drugi koje sam mogao da pronadjem generisu napon signala od 5V i imaju 8 pina sto je super. Nasao sam i vise kontrolera za CAN koji se preko SPI vezuju sa MCU i medju njim ima onih koji daju signal od 24V na CAN liniji, ali mi to ne treba.

Komunikaciju treba da ostvarim u uslovima jakih industrijskih smetnji, a kupac ne zeli sirmovan kabl vec hoce da to budu obicne zice (pristaje da budu upredene) koje ionako koristi u instalaciji. Sve zice idu kroz jednu kanalnicu duzine par desetina metara i vecina njih su energetski vodovi na 24V ili 220VAC koji ukljucuju i iskljucuju razne uredjaje.

Ako je neko nasao nesto sto bi mi odgovaralo bio bih mu zahvalan.

Pozdrav.
 
Odgovor na temu

branko_g
Merna tehnika i elektronika

Član broj: 159227
Poruke: 756
*.static-fiber.styrion.net.



+9 Profil

icon Re: CAN interfejs na fizickom nivou21.01.2009. u 15:15 - pre 186 meseci
Citat:
Komunikaciju treba da ostvarim u uslovima jakih industrijskih smetnji, a kupac ne zeli sirmovan kabl vec hoce da to budu obicne zice (pristaje da budu upredene) koje ionako koristi u instalaciji. Sve zice idu kroz jednu kanalnicu duzine par desetina metara i vecina njih su energetski vodovi na 24V ili 220VAC koji ukljucuju i iskljucuju razne uredjaje.


To sigurno i sam znaš, ali da odgovorim onima koji se interesuju za temu:
To se tako ne radi, po pravilu bi trebalo da kabel koji služi za komunikaciju bude:

1) Odvojen od energetskih kablova, barem time što bi se kablovski kanal podelio na dva dela,
jedan deo za energetske kablove, drugi za komunikaciju(CAN, RS485, LIN, Ethernet..)

2) Kabel bi trebao da bude širmovan(masa samo na jednom kraju širma!), i da ima definisanu impedansu
i da je na početku i kraju terminiran otpornicima vrednosti te impedanse.

3) Topologija mora biti linearna, sa eventualnim izvodima sa strane koji ne bi trebali biti veći od 0,5-1metar.


Moraš da ga ubediš da se to tako radi i da je to industrijski standard, sve ostalo je fuš.

Uostalom ne verujem da je varijanta transivera za 24V otpornija na smetnje od one za 5V-3,3V.
Tipični transiver kao PCA82C250 ili MCP2551 ili TJA1050 mogu na strani busa da podnesu napone i preko 30V,
bitno je koliko je potiskivanje zajedničkih smetnji i u kom opsegu ulaznog napona. Pogledaj neki Datasheet
 
Odgovor na temu

mradomir
mradomir
Novi Sad

Član broj: 123964
Poruke: 169
82.117.202.*



+28 Profil

icon Re: CAN interfejs na fizickom nivou21.01.2009. u 16:50 - pre 186 meseci
MCP2551 može da radi na 24V, ali mislim da ćeš sa povećanjem napona
malo šta dobiti. Pokušaj da staviš što manji terminator - otpornik.
Za pomenuti driver on može da bude minimum 45 oma, znači po 90 oma
na jednu i drugu stranu, to bi trebalo da pokupi dosta smetnji.
Inače i ja moram da uradim nešto slično, pa me baš zanima kako ćeš
sve to završiti.
 
Odgovor na temu

mradomir
mradomir
Novi Sad

Član broj: 123964
Poruke: 169
82.117.202.*



+28 Profil

icon Re: CAN interfejs na fizickom nivou21.01.2009. u 17:18 - pre 186 meseci
Da pojasnim prethodnu poruku.
Treba uzeti u obzir princip rada CAN magistrale.
Ako na TXD imamo 0, CANH se drajvuje prema
Vdd, a CANL prema Vss ili ti GND.
U tom trenutku razlika napona je približno Vdd,
pa na RXD imamo 0, jel.

U suprotnom slučaju, ako nam je TXD=1, i CANH
i CANL su otkačeni, te je razlika napona 0V.
U ovom momentu na smetnje utiču jedino otpornici
za terminaciju, odnosno napon napajanja nema uticaja.
Što su otpornici manji, to su smetnje manje.

Ako sam negde pogrešio slobodno me ispravite,
trenutno sam i ja u procesu proučavanja CAN-a.

Evo i sličica da bi bilo jasnije:
Prikačeni fajlovi
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
87.116.130.*



+7 Profil

icon Re: CAN interfejs na fizickom nivou21.01.2009. u 18:19 - pre 186 meseci
Ceo dan sam gledao razne Datasheet-ove. Ali imam posla sa masincima koji prodaju komandni orman, motore i ostalu mehaniku, a kupac (koji je jos i manje obrazovan) sve to sa nekim majstorom povezuje. Sumnjam da mnogi od njih i neznaju za sirmovan kabl. Ranije verzije tog uredjaja nisu imale nikakvu komunikaciju i kupci su navikli na obicne zice, znaju gde da ih kupe i sada je sirmovan kabl za njih potpuna nepoznanica, zbog cega imaju otpor da kupuju ovu verziju sa serijskom komunikacijom. Do sada sam radio sa RS485 i sirmovanim kablom i prodato je oko 30-tak uredjaja, ali kada ne bi bilo otpora od musterija prema sirmovanom kablu mislim da bi prodaja isla lakse.

Nasao sam LT1796 za koji stoji da je maksimalni napon napajanja 44V, ali sve karakteristike su date za 5V, osim za struju kratkog spoja. Danas sam malo blje pogledao njegov opis, i stoji da moze da radi sa 44V ali samo ako nije zatvoren karakteristicnom impedansom jer bi struja bila toliko velika da bi se iskljucio. Ako se zatvori karakteristicnom impedansom, radni napon ne moze biti mnogo veci od 5V jer bi kolo mnogo disipiralo i opet bi se zbog pregravanja iskljucilo. U opisu stoji: "High output current drive allows the use of inexpensive PVC cable with impedance as low as 72Ω". Imunost na sumove zavisi od histerezisa na prijemu. U opisu nije data zavisnost histerezisa od napona napajanja vec stoji da je 70mV na 5V.

E sad, razmisljam da odustanem od CAN formata podataka, vec da zamenim RS485 drajver CAN drajverom. Bodova brzina je mala 9600 pa je za jedan bit stabilan nivo oko 100us. Ako bi koristio CAN, cak i na frekvenciji od 10KHz, on za svaki bit ima 10 perioda, jer se svaki bit sinhronise a vrednost bita je validana posle 7-e periode. Iz ovoga zakljucujem (mozda i gresim) da ce SCI na 9600 boda biti pouzdanija od CAN formata podataka. Osim toga za ovako malu brzinu oblik signala ne zavisi od toga kojom je impedansom zatvoren kabl. Vrsio sam merenja na duzini od 60m i nisam video nikakve promene u obliku signala kada sam menjao zavrsnu impedansu od 50 oma do 1koma.

Inace CAN protokal mi nije neophodan jer se komunikacija odvija po sistemu master - slave.

Sta mislite?

Pozdrav.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: CAN interfejs na fizickom nivou21.01.2009. u 18:30 - pre 186 meseci
Koliko sam ja shvatio tebi treba "CAN Transceiver", pa probaj pod tim nazivom da ga trazis na google.

Npr.
http://ww1.microchip.com/downloads/en/DeviceDoc/21667d.pdf
• Suitable for 12V and 24V systems
 
Odgovor na temu

mradomir
mradomir
Novi Sad

Član broj: 123964
Poruke: 169
82.117.202.*



+28 Profil

icon Re: CAN interfejs na fizickom nivou21.01.2009. u 19:10 - pre 186 meseci
Citat:
Osim toga za ovako malu brzinu oblik signala ne zavisi od toga kojom je impedansom zatvoren kabl. Vrsio sam merenja na duzini od 60m i nisam video nikakve promene u obliku signala kada sam menjao zavrsnu impedansu od 50 oma do 1koma.


Da neće se menjati oblik signala, ali uticaj smetnji će biti daleko manji sa 50 oma.

 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: CAN interfejs na fizickom nivou21.01.2009. u 19:48 - pre 186 meseci
Citat:
Iz ovoga zakljucujem (mozda i gresim) da ce SCI na 9600 boda biti pouzdanija od CAN formata podataka.


CAN interface je namjenjen za automobile(provobitno) i industrijsko okruzenje, sto znaci za okolinu sa smetnjama. Bez obzira na trajanje bitova i njihov fizicki oblik na prenosnim linijama, kod CAN-a postoji i posebno kodiranje poruka koje omogucuje detekciju i korekciju gresaka (to su tzv. error detection i error correction layeri), To je ugradjeno u CAN controler tako da korisnik to ne vidi "direktno". Odnosno, podaci se ne prenose u sirovom obliku nego u kodiranom. Zbog toga je statisticki gledano broj gresaka koje CAN ne detektuje/popravi izuzetno mali (otprilike, prije ti automobil ode na otpad od starotsti nego sto se desi 1 pogresna poruka na CAN-u u njemu, mozes sigurno da nadjes na internetu "error rate" ako te zanima).
Nisam siguran da li SCI ima error correction ili bar error detection layer, ali mislim da nema. Tako da sto se tice ovog industrijskog okruzenja, ja bih se svakako odlucio za CAN.

Citat:

# Error detection on CAN is extremely thorough.
Global errors which occur at all nodes are 100% detectable.
For local errors (i.e. errors which may appear at only some nodes) the CRC check alone has the following error detection capabilities:
# Up to 5 single bit errors are 100% detectable, even if the errors are distributed randomly within the code word
# All single bit errors are detected if their total number within the code word is odd
The residual (undetected) error probability of the CRC check alone is 3 x 10 to the power -5.

In conjunction with all the other error checking mechanisms, a more realistic value is 10 to the power -11.


... jer CAN ima ne samo CRC, vec 5 mehanizama detekcije gresaka, 3 na nivou poruka i 2 na nivou bitova.

[Ovu poruku je menjao Odin D. dana 21.01.2009. u 21:15 GMT+1]
 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.rs
Via: [es] mailing liste



+8 Profil

icon Re: CAN interfejs na fizickom nivou21.01.2009. u 22:20 - pre 186 meseci
@korak
Pa pazi, na fizickom nivou ni CAN ni RS485 se ne razlikuju. I jedan i drugi imaju diferencijalni ulaz, i upravo to je ono sto ih cini imunijim na smetnje. Ali CAN na visim nivoima ima dodatnu vrednost - korekciju gresaka.

Pretpostavljam da mikrokontroleri sa kojima radis vec imaju integrisan CAN protokol. Za RS485 morao bi sam pisati algoritam za detekciju i korekciju gresaka. Nije da je tesko, ali sa CAN je sve prepusteno hardveru.


@Odin D
Postoji i novija verzija datasheeta 21667e
The MCP2551 provides differential transmit and receive capability for the CAN protocol controller and is fully compatible with the ISO-11898 standard, including 24V requirements.

Nazalost, iako je kompatibilan sa 24V, Vdd za MCP2551 ne sme preci 7V (preporuceno 4,5 do 5,5V), pa to nije ono sto bi korak zeleo.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: CAN interfejs na fizickom nivou21.01.2009. u 23:49 - pre 186 meseci
Ja mislim da napon napajanja cipa (elektronike) nema veze sa onim 12/24 V. To se odnosi na okruzenje u kojem cip radi i na moguce smetnje i probleme koje mu mogu uzrokovati ti naponi. Auto elektrika radi na 12V, kamioni i industrija na 24V. 12/24 znaci da se cip moze koristiti u oba okruzenja. Pretpostavljam da to izmedju ostalog i znaci da cip nece crci ako se uslijed bilo cega desi da greskom na CANH i CANL dodju ti naponi 12/24 V.
I to takodje ne znaci da ce diferencijalni napon svakog bita prilikom slanja biti +-12/24 V i da cip u automobilu treba spojiti npr. na napajanje od 12V, a u kamionu ili u industrijskom postrojenju na 24V.npr. Napon izmedju CANH i CANL moze da ide i do 40-tak volti, a da on ispravno radi, ali to je margina smetnji, a sam cip nikad nece generisati toliki napon izmedju CANH i CANL. Ne znam da li to ima neke veze, ali 40-tak V je jedan od probojnih napona BJT tranzistora, pa je pretpostavljam to zbog ona dva sto se nalaze na tim linijama (vidi se na blok semi u @mradomirovoj poruci).

Znaci cip treba spojiti na napajanje od tih 4-5 V kako stoji u datasheetu, linije terminisati tim otporima (i kondenzatorima, zavisi od konfiguracije) i to je to. Ne spaja se cip na napajanje od 12/24 V niti putuje tolika razlika potencijala kroz linije veze, osim u slucaju velikih EM smetnji.




 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.rs
Via: [es] mailing liste



+8 Profil

icon Re: CAN interfejs na fizickom nivou22.01.2009. u 08:28 - pre 186 meseci
Izgleda da si u pravu (ko bi sad jos i standarde proucavao), ali sudeci po prvom korakovom postu, upravo je drajvovanje vecim naponom ono sto bi zeleo.

Ukoliko nista drugo ne pomogne, ne ginu mu diskretno realizovani predajni drajveri.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: CAN interfejs na fizickom nivou22.01.2009. u 11:28 - pre 186 meseci
Pa jeste, on je napisao da bi drajvovao magistralu sa 24V, ali meni se onda namecu druga pitanja:

1- jedini razlog zasto bi se to radilo je da vec postoje neke druge jedinice koje tako komuniciraju preko te magistrale, ali u tom slucaju ako to nije CAN onda ne vredi ni CAN umetati tu, jer se njegov format podataka razlikuje od ostalih i napravice se haos na toj magistrali?!

2- ako su te ostale jediniece ipak spojene preko CAN, onda nema potrebe da to bude 24V, zasto se ne bi koristili standardni nivoi?

3- narucilac posla tako zahtjeva sto znaci da nema pojma o cemu prica. U tom slucaju ja bi napravio kako "bog zapovijeda" (dakle po standardu) i ubacio neku bezveze plocicu da tu stoji (npr. od pokvarene video igrice iz 70-tih godina) i rekao naruciocu posla da to transformise naponeske nivoe na 24V, tako da i on moze mirno da spava.

Uvijek postoji taj problem sa naruciocima posla koji vole da pametuju na tudj racun. U tom slucaju obicno pomaze sledeca recenica: "U redu, ja cu napraviti tacno onako kako Vi kazete, ali u tom slucaju odgovornost za ispravno funkcionisanje je na Vama. Ja ne mogu da garantujem za odluke koje ste Vi donijeli i ako ja budem morao da dolazim da popravljam nesto sto ne radi kao posljedica Vasih odluka - naplaticu."
Onda se obicno sloze da se to uradi kako treba.

[Ovu poruku je menjao Odin D. dana 22.01.2009. u 12:38 GMT+1]
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon Re: CAN interfejs na fizickom nivou22.01.2009. u 11:38 - pre 186 meseci
Vidim solidnu zainteresovanost za ovu temu, pa je zgodno da je rasvetlimo.
Dosta sam lutao po internetu interesujuci se za fizicki nivo CAN-a. Ima puno drajvera koji se napajaju sa oko 5V i mogu da generisu CANH i CANL prema masi napon samo do 5V, ali izlazi ne mogu biti unisteni ako na CAN liniju dodje i vise od 24V (kamioni), jer majstori obisno neoprezno brckaju po zicama. Ali, vec sam napisao LT1796 moze da se napaja naponom do 44V i da generise tolike napona na CAN liniji, ali ne moze da izdrzi struju koji treba da da na CANH i CANL ako se kabl zatvori karaktristicnom impedansom. Cak ni naponi ne mnogo veci od 5V mogu da dovedu do povecane disipacije i iskljucenja rada cipa zbog pregrevanja. Dakle nasao sam drahver koji mi odgovara, ali postoji problem disipacije.

Ako ste gledali kako salje CAN jedan bit onda ste uocili sledece: ako je na primer CAN 1Mbit/sec, jedan bit se prenese za 1us. Ali vreme od 1us je podeljeno na 10 faze od po 100ns. Prvo ide 1 faza log 0 za sinhronizaciju, pa paiza od 3 faze i u sledecih 6 se salje vrednost bita. Na mestu prijema se vrednost bita cita po okoncanju 7 faze. Za sinhronizaciju mogu da se koriste i dve faze na ustrb pauze. Cini mi se da ako bit koji se salje ima vrednost 1 da je u vreme pauze signal 0, a ako je vrednost bita koji se salje 0, onda je u pauzi vrednost 1 (za ovo nisam siguran ali mi je logicno). Dakle na CAN basu nije frekvncija 1/2 MHz vec 5MHz ili 2.5MHz ako je sinhronizacija za bit dve faze. Sobzirom da se svaki bit sinhronise, ne postoji ogranicenje u broju bitova koji se sukcesivno salju, niti postoji nagomilavanje greske kao kod SCI (od prvog pa do 8 bita).

Zakljucak: SCI 9600 boda je frekvencija od 4.8kHz, a CAN sa 9600bita/sec generise frekvenciju na liniji od 48kHz ili 24kHz. Jasno je da linija za CAN mora biti bolje podesena.

Svetlost (i el. mag. talas) predje za 1ns 30cm. Dakle ako se salje signal sa pocetka linije koja je dugacka 60m javice se refleksija sa kasnjenjem od 60x2/0.3
sto je 0.4us. Za SCI na 9600 boda trajanje 1 bita je 104us, pa deformacija od reflektovanog signala je zanemarljiva. Za CAN na 1Mb/s gde je jedna faza 100ns reflektovani signal je dramaticno stetan. Dakle reflektovani signal uvek postoji (sem ako je linija dobro zatvorena) pa su zato moja merenja za SCI na 9600 boda, kada sam na osciloskopu gledao signal "oka" sa 25us po podeljku nisam mogao (logicno) da vidim nikakav uticaj na oblik signala kada je kabl (od 60m) zatvoren razlicitim impedansama.

Inace komunikaciju moram da ostvarim u uslovima mnogo vecih smetnji od onih koji su u automobilu. Ves cam rekao da je protokol po principu master - slave sa kratkim porukama i da se stalno ponavljaju (oko 30 puta u sekundi). Nije kriticno ako se kod jedne poruke detektuje greska, jednostavno ona se nece prihvatiti, ali ce verovatno sledeca biti prihvacena.

CAN drajver moze da ima nizu impedansu na liniji pa racunam da ce manje skupljati smetnje. To je razlog zbog cega sam zainteresovan za fizicki nivo CAN komunikacije. Za konkretni uredjaj mi ostale prednosti CAN-a ne znace mnogo zbog same prirode komunikacije koju sam opisao. Za buduce aplikacije mozda.

Pozdrav svima.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: CAN interfejs na fizickom nivou22.01.2009. u 14:20 - pre 186 meseci
Citat:
Svetlost (i el. mag. talas) predje za 1ns 30cm. Dakle ako se salje signal sa pocetka linije koja je dugacka 60m javice se refleksija sa kasnjenjem od 60x2/0.3
sto je 0.4us. Za SCI na 9600 boda trajanje 1 bita je 104us, pa deformacija od reflektovanog signala je zanemarljiva. Za CAN na 1Mb/s gde je jedna faza 100ns reflektovani signal je dramaticno stetan. Dakle reflektovani signal uvek postoji (sem ako je linija dobro zatvorena) pa su zato moja merenja za SCI na 9600 boda, kada sam na osciloskopu gledao signal "oka" sa 25us po podeljku nisam mogao (logicno) da vidim nikakav uticaj na oblik signala kada je kabl (od 60m) zatvoren razlicitim impedansama.

Inace komunikaciju moram da ostvarim u uslovima mnogo vecih smetnji od onih koji su u automobilu. Ves cam rekao da je protokol po principu master - slave sa kratkim porukama i da se stalno ponavljaju (oko 30 puta u sekundi). Nije kriticno ako se kod jedne poruke detektuje greska, jednostavno ona se nece prihvatiti, ali ce verovatno sledeca biti prihvacena.


CAN interfejsi nisu bas tako tako elementarno izvedeni, kako se moze uciniti na prvi pogled, pa da se nije vodilo racuna o reflektovanim talasima. Kao sto je vec spomenuto u nekoj poruci iznad, presudnu ulogu igra CMRR, a ne razlika napona izmedju prenosnih linija, tj. koliko ce smetnje i refleksije da uticu na ono sta se nalazi na linijama nije jedino i iskljucivo odredjeno impedansama kojima su linije zatvorene, vec i onim sto je unutar cipa.
Sami sumovi koji su prisutni u automobilu nisu najveci izvor sumova u njemu vec okolina i razne okolnosti koje se automobilu nadju na putu (dalekovodi, tramvajske linije napajanja, staticki elektricitet, razni krsevi koji varnice oko njega, indukcija svega i svacega zbog kretanja itd...), tako da po mom misljenju mozes biti siguran da ce i u tvom okruzenju raditi kako treba i da ces sebi sigurno olaksati brigu ako to izvedes kako je vec predvidjeno, bez nekih dodatnih prepravki. Jer sve sto sad uradis kako je nestandardno, to ce se prolongirati dalje i u buducnosti opet tebi (ili nekom drugom) praviti problem.

CAN statistika kaze da jedna od 100 milijardi gresaka (ne normalnih poruka) nece biti detektovana. Ako bi svaka druga tvoja poruka bila pogresna, tj kad bi od tih 30 poruka u sekundi 15 bilo pokvareno smetnjama, provukla bi se jedna od njih neopazeno na svakih 211 godina.

Pozdrav.

 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon Re: CAN interfejs na fizickom nivou22.01.2009. u 15:26 - pre 186 meseci
Da, u pravu si, nisu u pitanju samo smetnje koje automobil proizvodi, to je ohrabrujuce.

Ali me interesuje kako cenis da SCI komunikaciju pustam kroz CAN drajver sto mi je najjednostavniije uzimajuci u obzir da sada imam RS485 na 9600 boda.

Pozdrav.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: CAN interfejs na fizickom nivou22.01.2009. u 16:46 - pre 186 meseci
Pa mozes ti pustiti SCI kroz CAN interfejs, ali na toj duzini i u tom okruzenju moras biti spreman na smetnje i greske u prenosu. Ne znam tacno koji SCI mislis da propustis, ali ako on vec u sebi nema ugradjenu detekciju (i eventualno korekciju) gresaka onda moras ti to sve implementirati na tebi dostupnom nivou, a to je program mikrokontrolera, ili ako uC dalje prosledjuje to npr. na neki PC, onda moze i tamo da se provjerava da li je primljena poruka ispravna ili ne. Ali, ti detalji zavise vec od strukture, namjene i zahtjeva za pouzdanoscu citavog tog postrojenja.
Detekcija gresaka se ne obavlja u CAN interfejsu nego u CAN controleru (poseban cip, ili implementiran u uC-u). Tako da time sto bi propustio SCI kroz CAN interfejs nista ne bi dobio sto se tice pouzdanosti, osim ako sam fizicki oblik signala kod CAN-a i karakteristike interfejsa ne garantuju neku vecu otpornost na elektricne smetnje u toku prenosa poruke.

Ja se licno ne bih oslonio na "parity bit" kao jedinu zastitu od gresaka na vezi, cak ni za najbezazleniju industrijsku aplikaciju.

RS485 je samo "fizicki layer" za prenos podataka, tj. samo transmisiona linija za prenos elektricnih signala na odredjeni nacin, a ne citav protokol (u to spada jos i sta ti signali znace, a RS485 nema pojma sta znace ti bitovi koje on prenosi). Na njemu su npr. implementirani i Profibus i SCSI. Ako nemas vec ugradjen odgovarajuci protokol u svom uC-u ili ako ne koristis poseban cip za to, onda ti sve te vislje nivoe ( "layere") svoje komunikacije moras sam implementirati u softveru, sto cesto nije bas trivijalno. Ako ti je RS485 half-duplex (jedna upredena parica) onda moras da vodis racuna kad ko smije da emituje poruke na liniju (jer je RS485 interfejs takav da na njemu ne smije doci do sudaranja) tako da ti svejedno moras da se odlucis koji protokol ces da saljes preko postojeceg RS485 i kako ces regulisati sve te zahtjeve. I tako svejedno ces morati kupiti neke cipove za taj neki izabrani protokol (jer bilo bi suludo implementirati to rucno u softveru uC-a i to na svakom cvoru koji je nakacen na tu liniju).

Po mom misljenju najbolje je da uzmes CAN controler (ako nije vec integrisan u uC) i interfejs (Transciever) i mirno spavas. Na jednoj strani samo upises sta hoces da posaljes, na drugoj strani primis poruku sa vjerovatnocom od (ErrorTransmitRate * 10EXP-11) da je to nedetektovana greska. Tesko da mozes bolje od toga za toliko malo posla koliko je potrebno za implementaciju toga i koliko to malo sve kosta.

E sad, ako je to sve vec ranije radilo OK na RS485 i sa SCI protokolom bez detekcija/korekcija greski, onda tu izgleda i nema toliko smetnji koliko se cini, pa ako u medjuvremenu nisu ubacene neke nove masina ili instalacije kao moguci izvori smetnji i nece ni biti ubacivano u buducnosti, onda mozes da uradis i tako kako si naumio. Ako je radilo do sad, sto ne bi i od sad?

Pozdrav.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon Re: CAN interfejs na fizickom nivou22.01.2009. u 17:41 - pre 186 meseci
Da pojasnim, proizvedeno je oko 50 uredjaja sa RS485 i oni prvi vec rade 2 god. bez problema Uredjaje proizvodim za poznatog kupca koji mi je i postavio tehnicke zahteve. E sad, neki drugi kupci koje smo kontaktirali, uvek postavljaju pitanje "a zasto poseban sirmovan kabl".

Poruke su vrlo kratke, do 10 bajtova i koristim samo cek sumu za kontrolu ispravnosti primljenog bloka podataka. Naravno, cek suma moze da propusti i neispravan podatak a da to ne detektuje. Povecanje pouzdanosti se mozda dobija i time sto imam karakter za pocetak poruke i za kraj poruke, poruke su fiksne duzine, a salje se i adresa prijemnika. Pored dobre cek sume treba da su poklope i ova cetri dodatna uslova. Zatim svaki podatak je veci od 32 (0 je 32) sto zadovoljava priroda podataka koji se salju. Ne umem da procenim koliko sve ovo doprinosi povecanju pouzdanosti, ali do sada se nije desila ni jedna greska koju sam mogao da pripisem losem prenosu podataka.

Poznato mi je da se na visim nivoima detektuje pouzdano greska jer sam napravio skoro jedan uredjaj koji se vezuje USB-om na PC. Integrisani kontroler USB-a u MCU je zavrsavao sav posao i svi blokovi podataka su uve bili primljen ispravno i na strani PC-a i MCU-a.

CAN je jednostavniji od USB-a (barem se meni tako cini), imam MCU sa CAN-om, ali bi morao da menjam PCB uredjaja ako bi zeleo u potpunosti da primenim CAN. Zapravo vec razmisljam o novoj verziji uredjaja jer moram da ga inoviram i nekim novim funkcijama, pa bi mozda bilo zgodno da tada primenim CAN. A do tada bi pokusao da iskoristim samo fizicki nivo CAN-a.

Hvala na sugestijama.

Pozdrav.

 
Odgovor na temu

icobh
Igor Pejašinović
Network Admin
Navigo SC d.o.o.
Banja Luka

Član broj: 18738
Poruke: 1319
*.inecco.net.

Sajt: www.nsc.ba


+4 Profil

icon Re: CAN interfejs na fizickom nivou22.01.2009. u 17:53 - pre 186 meseci
Zar protokol preko CAN-a nije standardizovan? Kako ti možeš da ubacuješ dodatne bajtove u poruku?
I ♥ ♀

Ovaj post je zlata vrijedan!
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon Re: CAN interfejs na fizickom nivou22.01.2009. u 18:24 - pre 186 meseci
Ne pisem o CAN protokolu, vec o SCI sa CAN drajverom, dakle od CAN-a koristim samo fizicki nivo.

Pozdrav.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: CAN interfejs na fizickom nivou22.01.2009. u 19:08 - pre 186 meseci
Po mom razmisljanju ta dva karaktera sto oznacavaju pocetak i kraj poruke imaju uticaja samo na to da li je poruka pocela i zavrsila ispravno, ali nemaju uticaja na sam sadrzaj sredine poruke, kao npr. ako su adresa posiljaoca i primaoca na koverti u redu, to ne garantuje i da je sadrzaj koverte takodje u redu. Sve sto stiti sam sadrzaj poruke je i dalje samo CRC, a ako je stigla i ispravna adresa (koja je dio poruke), to pored ta dva karaktera dodatno povecava vjerovatnocu da je taj prenos protekao bez smetnji, ali koliko sve to u zbiru povecava mogucnost detekcije greske, ne bih znao, to bi trebalo racunati. Ali nije mnogo ni bitno ako to sve radi OK.

Mislim da mozes koristiti SCI sa CAN interfejsom, ali bih ipak preporucio da se obavi experiment i testiranje, da ne bi bilo po onoj: "papir sve trpi, a more proguta". Najvise tu mislim na priorite slanja poruka, kao i sta se desava kad dva ili vise uredjaja krenu istovremeno da salju poruku, ili kad neki od interfejsa crkne da li zablokira citavu magistralu i tako to. Ako su u tom pogledu dosadasnji interfejs i CAN interfejs kompatibilni onda valjda nema smetnji da se zamjene.

Pozdrav.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: CAN interfejs na fizickom nivou

Strane: 1 2

[ Pregleda: 4745 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.