Lankide:Maialenacedo/Proba orria

Wikipedia, Entziklopedia askea
Artikulu hau, osorik edo zatiren batean, gaztelaniazko wikipediako «Bus CAN» artikulutik itzulia izan da. Jatorrizko artikulu hori GFDL edo CC-BY-SA 3.0 lizentzien pean dago. Egileen zerrenda ikusteko, bisita ezazu jatorrizko artikuluaren historia orria.


CAN (ingelesezko siglak: Controller Area Network) komunikazio-protokolo bat da Robert Bosch GmbH enpresa alemaniarrak garatutakoa, bus-topologia batean oinarritzen dena ingurune banatuetan mezuak transmititzeko. Gainera, irtenbide bat eskaintzen dio PUZ (prozesatzeko unitate zentralak) anitzen arteko komunikazioaren kudeaketari.

CAN komunikazio-protokoloak onura hauek dakartza:

  • Interferentziekiko immunitate handia eskaintzen du, autodiagnostikorako eta datu-erroreak konpontzeko trebetasuna.
  • Komunikazio-protokolo normalizatua da, eta, beraz, erraztu egiten da fabrikatzaile desberdinen azpisistemak sare komun edo bus baten gainean komunikatzea.
  • Prozesadore anfitrioiak (host) periferiko adimendun baten esku uzten du komunikazioen karga; beraz, prozesadore anfitrioiak denbora gehiago du bere zereginak gauzatzeko.
  • Sare multiplexatua denez, kableatua nabarmen murrizten du eta puntutik punturako konexioak ezabatzen ditu.

CAN protokoloaren historia eta bilakaera[aldatu | aldatu iturburu kodea]

CAN protokoloaren garapena 1983an hasi zen Robert Bosch GmbH enpresan (normalean Bosch bezala ezagutzen dena). Protokoloa 1986an kaleratu zen ofizialki, Detroiteko Automobilgintza Ingeniarien Elkartearen (SAE) kongresuan. Lehen CAN kontrolatzaileak 1987an iritsi ziren merkatura Intel eta Philipsen eskutik.[1]

Ondoren, CAN zehaztapenaren hainbat bertsio argitaratu zituen Boschek, eta azkena CAN 2.0 zehaztapena izan zen, 1991n argitaratua. Zehaztapen horrek bi zati ditu: A zatia formatu estandarrerako eta B zatia formatu hedaturako. Formatu estandarra erabiltzen duen CAN gailu batek 11 biteko identifikatzaileak erabiltzen ditu eta CAN 2.0A gailu gisa adierazten da. Formatu hedatua erabiltzen duen CAN gailu batek 29 biteko identifikatzaileak erabiltzen ditu eta CAN 2.0B gailu gisa adierazten da. CAN 2.0A/B estandarrak eta CANekin lotutako erreferentziazko beste dokumentu batzuk Bosch-en bidez doan eskuratzekoak dira.

1993an CAN busaren ISO 11898 estandarra argitaratu zen, eta une horretatik aurrera Normalizaziorako Nazioarteko Erakundearen estandarra izan da. Gaur egun, arau hauek estandarizatzen dute CAN busa:

  • ISO 11898-1:2015, Part 1: Data link layer and physical signalling.
  • ISO 11898-2:2016, Part 2: High-speed medium access unit.
  • ISO 11898-3:2006. Part 3: Low-speed, fault-tolerant, medium-dependent interface. Estandar hori 2015ean berrikusi eta berretsi da.
  • ISO 11898-4:2004, Part 4: Time-triggered communication. Estandar hori 2013an berrikusi eta berretsi da.
  • ISO 11898-5:2007, Part 5: High-speed medium access unit with low power mode.
  • ISO 11898-6:2013, Part 6: High-speed medium access unit with selective wake-up functionality.
  • ISO 16845:2016, Conformance test plan.

2011n, Bosch, automobil-fabrikatzaileekin eta CAN buseko beste aditu batzuekin lankidetzan, CANen hurrengo belaunaldia garatzen hasi zen: CAN FD protokoloa (flexible data rate). CAN FD atzerantz bateragarria da, hau da, CAN FD kontrolatzaile bat gai da CAN klasikoaren (edo CAN 2.0ren) mezu bat ulertzeko.[2][3]

CANen ezaugarri nagusiak[aldatu | aldatu iturburu kodea]

CAN ekoizle/kontsumitzaile ereduan oinarritzen da; hau da, kontzeptu edo datuak komunikatzeko paradigma bat da, ekoizle baten eta kontsumitzaile baten edo gehiagoren arteko harremana deskribatzen duena. CAN mezuetara bideratutako protokolo bat da, hau da, trukatuko den informazioa mezuetan deskonposatzen da, eta mezu horiei identifikatzaile bat esleitzen zaie eta trametan kapsulatzen dira transmititzeko. Mezu bakoitzak identifikatzaile bakar bat du sarearen barruan, zeinarekin nodoek mezu hori onartzea edo ez onartzea erabakitzen duten. Ezaugarri nagusien artean honako hauek daude:

  • Mezuen lehentasuna.
  • Latentzia-denboren ziurtasuna.
  • Malgutasuna konfigurazioan.
  • Multidifusio bidezko harrera (multicast), denboren sinkronizazioarekin.
  • Sistema sendoa.
  • Nagusi anitzeko sistema.
  • Erroreak hautematea eta seinaleztapena.
  • Trama okerren birtransmisio automatikoa.
  • Sareko nodoen aldi baterako erroreak eta akats iraunkorrak bereiztea, eta nodo akastunen deskonexio autonomoa egitea.

CAN hasieran automobiletan aplikatzeko garatu zen eta, beraz, protokoloaren plataforma automobilgintzaren arloan dauden beharren emaitza da.

CAN bus motak[aldatu | aldatu iturburu kodea]

CAN busen zehaztapena ISO 11898 estandarren multzoan jasota dago. Zehaztapen horrek sistemen interkonexiorako OSI ereduaren lehenengo bi geruzak definitzen ditu, geruza fisikoa eta datuen lotura-geruza. Estandar horietan oinarrituta, CAN busak bi motatan sailka daitezke.

  • Abiadura handiko CAN (gehienez 1 Mbit/s).
  • Abiadura txikiko CAN hutsegite-toleratzailea (gehienez 125 kbit/s).

Abiadura handiko CAN[aldatu | aldatu iturburu kodea]

ISO 11898-2, abiadura handiko CAN ere deitua, mutur bakoitzean amaitutako bus lineal bakarra erabiltzen du, 120 Ω-eko erresistentziekin. Garrantzitsua da amaiera-erresistentzien balioa busaren inpedantzia bereizgarriarekin bat etortzea (120 Ω), linean komunikazioa nahas dezaketen islapenak saihesteko. Konfigurazio horrekin, busaren abiadura gehienez 1 Mbit/s-koa da.

Abiadura handiko CAN busa. ISO 11898-2

Abiadura txikiko CAN hutsegite-toleratzailea[aldatu | aldatu iturburu kodea]

ISO 11898-3, abiadura txikiko CAN hutsegite-toleratzailea ere deitua, bus lineal bat, izarreko bus bat edo bus lineal baten bidez konektatutako izar-busak erabil ditzake. Busa amaiera totaleko erresistentziaren frakzio batek amaitzen du nodo bakoitzean. Guztizko amaiera-erresistentziak 100 Ω inguruko balioa izan beharko luke, baina ez 100 Ω-tik beherakoa. Estandar honek 125 kbit/s-rainoko abiadurak ahalbidetzen ditu.

Abiadura txikiko CAN hutsegite-toleratzailea. ISO 11898-3

CAN FD (flexible data-rate)[aldatu | aldatu iturburu kodea]

2011n, Bosch CANaren bilakaera lantzen hasi zen. 2012an CAN FD 1.0 merkaturatu zuen, arbitrajearen ondoren transferentzia-tasa handitzea eskaintzen duena. Oraingoz (2015), CAN FDren datuen lotura-geruza bakarrik definitu da. Maiztasuna 8rekin biderkatu daiteke, eta trama bakoitzeko gehieneko byte-kopurua handitu egiten da, eta posible da denbora berean datu-kopuru handiagoa transmititzea. Zehaztapena ISO/DIS 11898-1: 2015 arauaren zirriborroan jasota dago.[3]

Geruza fisikoa[aldatu | aldatu iturburu kodea]

Bus tentsio-mailak[aldatu | aldatu iturburu kodea]

CAN busaren tentsio-mailak

CAN bus batean seinaleak bi kable gurutzaturiko bidez transmititzen dira. Kable horien seinaleei CAN_H (CAN high) eta CAN_L (CAN low) deitzen zaie. Busak bi egoera ditu definituta: egoera menderatzailea eta egoera atzerakorra. Atzerakako egoeran, busaren bi kableak tentsio-maila berean daude (common-mode voltage), eta egoera menderatzailean, berriz, CAN_H-ren eta CAN_L-ren arteko potentzial-diferentzia gutxienez 1,5 V-koa da. Seinaleak tentsio diferentzial moduan transmititzeak interferentzia elektromagnetikoen aurrean babesa ematen du.

Kablea eta konektoreak[aldatu | aldatu iturburu kodea]

CAN bus baten nodoak konektatuta egon behar dira, 120 Ω-ko inpedantzia bereizgarriarekin pare bihurritu baten bidez, eta pantailatu edo pantailatu gabeko kablea izan daiteke. Kable gurutzatua kanpoko interferentzia elektromagnetikoen aurkako babesa ematen du.

CAN estandarrak ez du buserako inolako konektorerik zehazten eta, beraz, aplikazio bakoitzak konektore desberdina izan dezake.

Transmisio-linearen propietateek datuen banda-zabalera mugatzen dute.

Bit sinkronizazioa[aldatu | aldatu iturburu kodea]

CAN bus bateko nodo guztiek transferentzia-tasa nominal berarekin lan egin behar dute. CAN busak ez duenez erloju bereiziaren seinalerik erabiltzen, diferentzia bat dago nodo desberdinen transferentzia-tasa errealaren artean. Horregatik, beharrezkoa da nodoen arteko sinkronizazio-metodo bat.

CAN kontrolatzaileak atzerakorratik dominanterako busaren trantsizioa denbora-tarte jakin batean gertatzea espero du. Trantsizioa ez bada itxarondako tartean gertatzen, kontrolatzaileak birdoitu egingo du hurrengo bit horren iraupena. Doikuntza hori egiteko, bit bakoitza denbora-tartetan edo kuantu-denboratan zatitzen da, eta tarteak bit bakoitzeko lau segmentuei esleitzen zaizkie: sinkronizazioa, hedapena, 1. faseko segmentua eta 2. faseko segmentua.[4]

Bit CAN baten kuantifikazioaren adibidea

Datu-lotura geruza[aldatu | aldatu iturburu kodea]

Komunikabideetarako sarbidea (arbitrajea)[aldatu | aldatu iturburu kodea]

Arbitrajea trama edo mezu baten lehen bitetan gertatzen da, mezuaren identifikatzaile gisa ezagutzen dena transmititzen den bitartean. Arbitraje-prozesuaren amaieran nodo bakarra geratu behar da busaren kontrolarekin. Nodo batek arbitrajea galtzen duenean, bere tramaren transmisioa atzeratzen du, egungo trama amaitzen denean berriro saiatzeko. Identifikadore baxuagoa duen CAN trama batek lehentasun handiagoa du identifikadore altuagoa duen trama batek baino.

Trama motak[aldatu | aldatu iturburu kodea]

Lau CAN trama mota daude:

  • Datu trama (data frame)
  • Urruneko trama (remote frame)
  • Errore-trama (error frame)
  • Gainkarga trama (overload frame)

Datu trama[aldatu | aldatu iturburu kodea]

CAN datu-trama bat bi formatu hauetako batekoa izan daiteke:

  • Oinarrizko formatua: 11 biteko identifikatzailearekin.
  • Formatu hedatua: 29 biteko identifikatzailearekin.

Oinarrizko formatua[aldatu | aldatu iturburu kodea]

Formatu hedatua[aldatu | aldatu iturburu kodea]

Urruneko trama[aldatu | aldatu iturburu kodea]

  • Definizioa

Errore-trama[aldatu | aldatu iturburu kodea]

  • Definizioa

Gainkarga trama[aldatu | aldatu iturburu kodea]

  • Definizioa

Tramen tartea[aldatu | aldatu iturburu kodea]

  • Definizioa

Betegarri bitsak (bit stuffing)[aldatu | aldatu iturburu kodea]

  • Definizioa

CANen oinarritutako protokoloak[aldatu | aldatu iturburu kodea]

  • CAN oinarritutako protokoloen zerrenda

Erreferentziak[aldatu | aldatu iturburu kodea]

  1. «CAN in Automation (CiA): History of the CAN technology» www.can-cia.org (Noiz kontsultatua: 2022-11-29).
  2. «CAN in Automation (CiA): CAN knowledge» www.can-cia.org (Noiz kontsultatua: 2022-11-29).
  3. a b «CAN in Automation (CiA): CAN FD - The basic idea» www.can-cia.org (Noiz kontsultatua: 2022-11-29).
  4. (Ingelesez) AN1798: CAN Bit Timing Requirements. .

Ikus, gainera[aldatu | aldatu iturburu kodea]

Automobilerako komunikazio-protokoloak[aldatu | aldatu iturburu kodea]
Komunikazio-protokolo generikoak[aldatu | aldatu iturburu kodea]

Kanpo estekak[aldatu | aldatu iturburu kodea]