32
Introducción al bus CAN Sistemas Embebidos

Introdución a CAN BUS

Embed Size (px)

Citation preview

Page 1: Introdución a CAN BUS

IntroducciónalbusCAN

SistemasEmbebidos

Page 2: Introdución a CAN BUS

RazonesdelCAN

•  Anteelincrementodelnumerodedisposi:voselectrónicosenlosautomóviles,lasnecesiadadesdecableadoysucomplejidadaumentarón.

•  Prontoseviólaposibilidaddeconectartodoslosdisposi:vosaunbusquedebíadeserfiable,robusto,altainmunidadalruido,etc.

•  Ademá,elbusdebíapoderpermi:raltasvelocidadesdetransmisiónenentornosdificilesporlatemperatura,vibraciones,interferencias,etc.

•  Ademásdelautomóvil,encuentragranu:lidadcomobusdecampoendiversasaplicacionesindustriales.

Page 3: Introdución a CAN BUS

Historia•  CAN(“ControllerAreaNetwork),busseriepatentadoporla

compañiaRobertBosch(1982).•  Inicialmentesepensóenelcomobusdecampo,perodonde

realmenteencontróu:lidadfuéenelsectordelautomóvil,parainterconectarelbusdeconfor,seguridad,etc.

•  ElMercedesClaseEfueelprimercocheenincorporarelbusCAN,10añosdespués(1992).

•  Fuédiseñadoparapermi:rlacomunicaciónfiableentrecentralitaselectrónicasbasadasenmicoprocesador,ECUs(“ElectronicControlUnit”)yreducircableado.

•  EnEuropasehaconver:doenunestándar“defacto”,concarácterinternacionalydocumentadopornormasISO(ISO‐11898).

•  Ventajas:reduccióndecostes,mejoraflexibilidad

Page 4: Introdución a CAN BUS

•  ElbusCANesunprotocoloserieasíncronodel:poCSMA/CD(“CarrierSenseMul:pleAccesswithCollisionDetec:on”).

•  Elbusesunmediocompar:do(mul:plexado).•  Setratadeunprotocolo“Mul:cast”,esdecir,todoelmundopuedehablar(deunoenuno)yescuchar.

•  “CSMA”:cadanododelareddebemonitorizarelbusysidetectaquenohayac:vidad,puedeenviarunmensaje.

•  “CD”:si2nodosdelaredcomienzanatransmi:runmensaje,ambosdetectanlacolisión.Unmétododearbitraciónbasadoenprioridadesresuelveelconflicto.

Page 5: Introdución a CAN BUS

•  Seu:lizaunpardecablestrenzados(busdiferencial)paraconseguiraltainmunidadalasinterferenciaselectromagné:cas(EMIs).Enalgunoscasospuedeirapantallado.

•  Laimpedanciacaracteris:cadeestalineaesdelordende120Ωporloqueseepleanimpedancias(resistencias)deestevalorparaenambosextremosdelbusparaevitarondasreflejadasyqueelbusseconviertaenunaantena.

•  Longitudmáximade1000m(a40Kbps).•  Velocidadmáximade1Mbps(conunalongitudde40m)•  Enloscochesseu:lizaa125kbit/sya500kbit/s.

Page 6: Introdución a CAN BUS

ModelodecapasenelbusCAN

Page 7: Introdución a CAN BUS

Modelodecapas•  Capadeenlacededatos

–  Controldeenlacelógico(LLC)•  Seencargadelosfiltrosdelosmensajes•  Proporcionaserviciosdurantelatransferenciadedatosydurantelape:cióndedatos

remotos•  DecidequemensajesrecibidosdeMACseaceptan•  Proporcionamediosparaelrestablecimientoyparano:ficarlasobrecargadelbus

–  Controldeaccesoalmedio(MAC)•  RepresentaelnúcleodelprotocoloCAN•  PresentalosmensajesrecibidosalasubcapaLLCyaceptalosmensajesparaser

transmi:dosadichasubcapa•  Esresponsabledelatramademensajes,arbitraje,reconocimiento,deteccióndeerrory

señalización•  Enestasubcapasedecidequesielbusestálibreparacomenzarunanuevatransmisióno

silarecepciónacabadecomenzar

•  CapaFísica–  Definequeseñalessetransmiten.Trataladescripcióndelbitdecronometraje,

lacodificacióndebitylasincronización

Page 8: Introdución a CAN BUS

PropiedadesdelCAN

•  Priorizacióndelmensaje•  Garanjadelos:emposderetardo•  Flexibilidaddelaconfiguración•  Recepciónmúl:plecon:emposdesincronización•  Robustezensistemasdeampliosdatos•  Mul:maestro•  Deteccióndeerroryseñalización•  Retransmisiónautomá:cademensajescorruptostan

prontocomoelbusestálibredenuevo.•  Dis:nciónentreerrorestemporalesyfallospermanentes

denodos,ydesconexiónautomá:cadenodosdefectuosos.

Page 9: Introdución a CAN BUS

Conceptosbásicos(I)•  Caracterís:casdelosMensajesCAN

–  Formatofijodemensajescondiferentelongitud(limitada)–  Cuandoelbusestálibrecualquierunidadpuedecomenzaratransmi:r

•  RutadelaInformación(unnodonou:lizatodalainformaciónprocesada)–  Flexibilidaddelsistema.Seañadennodossinrealizarcambioalguno–  Rutadelosmensajes

•  Elcontenidodeunmensajeseespecificaconuniden:ficador•  Eliden:ficadornoindicaeldes:no,sinodescribeelsignificadodelmensaje

–  Mul:cas:ng.Cualquiercan:daddenodospuederecibirelmismomensajesimultáneamente.

–  Robustezdelosdatos.Segaran:zaqueunmensajeseasimultáneamenteaceptadoporalgunodelosnodos(otodos).

•  Velocidaddetransmisión–  Puedeserdiferenteendis:ntossistemas.Enunsistemalavelocidaddebedeseruniforme

•  Prioridades–  Eliden:ficadordefinelaprioridaddelmensaje

•  Pe:cióndedatosremoto–  Seenvíaunatramaremotadepe:cióndetrama,secontestaconlatrama.–  Ambas:enenelmismoiden:ficador

Page 10: Introdución a CAN BUS

Conceptosbásicos(II)

•  Mul:maestro–  Sielbusestálibre,cualquiernodopuedecomenzaratransmi:r

unmensaje–  Cuandodosnodoscomienzanatransmi:rsimultáneamente

•  Elconflictodeaccesoalbusesresueltoporarbitrajeu:lizandoeliden:ficador

•  Elmecanismodearbitrajegaran:zaquenilainformaciónniel:emposepierdan

–  Cuandounatramadedatosyunatramaremotaseinicianalmismo:empoprevalecelaprimera

–  Duranteelarbitrajetodoslostransmisorescomparanelniveldelbittransmi:doconelniveldelbus•  Silosnivelessoniguales,launidadpuedeenviar•  Sisondis:ntos,launidadpierdeelarbitrajeydebere:rarsesinenviarotrobit

Page 11: Introdución a CAN BUS

Conceptosbásicos(III)•  Seguridad

–  EntodoslosnodosCANseimplementanmedidasespecialesparaladeteccióndeerrores,señalizaciónyauto‐chequeo

–  Deteccióndeerror•  Monitorización(comparacióndenivelesdebit)•  CRC•  BitStuffing•  Chequeodelatramademensaje

–  Señalizacióndeerrory:empoderestablecimiento•  Losmensajescorruptossonreconocidosporcualquiernodo•  Estosmensajesseabortanysetransfierenautomá:camente•  El:empoderestablecimientodesdeladeteccióndelerroresde31bits•  LosnodosCANdis:nguen•  Perturbacionescortas•  Fallospermanentes.Estosnodospordefectosedesconectan

Page 12: Introdución a CAN BUS

Conceptosbásicos(IV)

•  Conexiones–  No:enenlímiteteórico–  Enlaprác:caelnúmerototaldeunidadesestarálimitadoporel

:empoylascargaseléctricas•  Unúnicocanal

–  Elbussecomponedeunúnicocanaldetransmisión–  Laformadeimplementaciónnosefijaenlasespecificaciones

•  Únicohilo•  Doshilosdiferenciales•  Fibraóp:ca,etc.

•  ValoresdeBus(Dominanteorecesivo)•  Reconocimiento.Todoslosreceptorescompruebanlafiabilidaddel

mensaje•  Modosleep/wake‐up.Modoahorrodeconsumodepotencia

Page 13: Introdución a CAN BUS

ProtocoloCAN(I)•  EsunprotocoloCSMA/CD(CarrierSenseMul:pleAccess,withCollision

Detec:on).TécnicaparaMAC.•  ConCSMA,

–  Todonodoenlaredmonitoreaelbusporunperiododenoac:vidadantesdeintentarenviarunmensaje(CS)

–  Enunperiododenoac:vidad,todonododelbus:enelamismaoportunidaddetransmi:runmensaje(MA)

•  ElCDseencargadeladetecciónantecolisiones(dosnodoscomienzanaretransmi:ralmismo:empo)–  CANparaevitarestou:lizaunmétododearbitraje–  Unnodoesperaconfirmaciónunacan:dadde:emporazonabledespuésde

transmi:r–  Hayquetenerencuentaelretardodepropagaciónyqueelnodoque

confirmadebecompe:rtambiénporconseguirelmediopararesponder.–  Sinollegarespuestaelnodosuponequesehaproducidounacolisióny

retransmite

Page 14: Introdución a CAN BUS

ProtocoloCAN(II)

•  ReglasparaCSMA/CD–  Elnodotransmitesielmedioestálibre,sinoseaplicalaregla2

–  Sielmedioseencuentraocupado,laestacióncon:núaescuchandohastaqueencuentralibreelbus,encuyocasotransmiteinmediatamente.

–  Sidetectaunacolisióndurantelatransmisión,losnodostrasmitenunaseñalparaasegurarsedequetodaslasestacionesconstatanlaproduccióndecolisiónycesandetransmi:r

–  Despuésdetransmi:rlaseñalseesperaunacan:dadde:empoaleatorio,trasloqueintentatransmi:rdenuevo.

Page 15: Introdución a CAN BUS

ProtocoloCAN(III)•  ElCANdebecumplirdospremisas

–  Necesitandefinirsedosestadoslógicos(dominante=0)–  Elnodoemisormonitorearelbusparaverelestadológico

•  Elestadodebitdominantesiempreganaráarbitrajesobreelrecesivo(elvalormásbajodelid.delmensajeeselmásprioritario)

•  Ejemplo–  Dosnodosintentantransmi:runmensajesimultáneamente–  Cadanodomonitorizaráelbusparaestarsegurodelbitqueestá

intentandoenviarenesemomento–  Elmensajedemenosprioridadintentaráenviarunbitrecesivoyel

estadoleídoenelbusserádominante.–  Elnodopierdeelarbitrajeydejadetransmi:r–  Elmensajedemásprioridadcon:nuaráhastaacabaryelnodoqueha

perdidointentarátransmi:rdenuevoenelsiguienteperiododenoac:vidad

Page 16: Introdución a CAN BUS

Resumendelprotocolo•  ElprotocoloCanestábasadoenmensajes(no:ene

direccionamientodenodoanodo).•  Lapriorizaciónyeldireccionamentoestacontenidoenlosdatos

transmi:dos•  Todoslosnodosdelsistemarecibentodalainformacióntransmi:da•  Cadanododecidesielmensajeotramadebeserdescartadoo

aceptado•  Unúnicomensajepuededes:narseparaunnodoenpar:cularo

paravarios•  Unnodo:enelahabilidaddepedirinformacióndeotrosnodos

(RemoteTransmitRequest)•  Puedenañadirsenodosadicionalessinnecesidaddecambios

Page 17: Introdución a CAN BUS

TramasCAN(I)•  ElprotocoloCANdefinecuatro:posdemensajes:

–  Tramasdedatos(DataFrame).Transmiteinformacióndeunnodoacualquieradelosrestantes

–  Tramaremota(RemoteFrame).EsunatramadedatosconelbitRTR=1–  Tramasdeerror.Generadaspornodosquedetectancualquieradelos

erroresdeprotocolodefinidosporCAN.–  Tramasdeoverload.Generadaspornodosquenecesitanmás:empopara

procesarlosmensajesyarecibidos•  Latramadedatosestáformadaporcamposqueproporcionan

informaciónadicionalsobrelosmensajesdefinidosenCAN–  Campodearbitraje–  Campodecontrol–  Campodedatos–  CampodedeCRC–  Finaldetrama

Page 18: Introdución a CAN BUS

TramasCAN(II)

•  Campodearbitraje.Seu:lizaparapriorizarlosmensajesenelbus.Formadopor12o32bits–  Tramaestándar:11bitsdeiden:ficaciónyunbitRTR–  Tramaextendida:29bitsdeiden:ficación,1bitparadefinirelmensajecomo

tramaextendida,unbitSRRnousado,unbitRTR•  Campodecontrol.Formadopor6bits.

–  ElbitIDE(oRB1enextendida)demayorpeso,significatramaextendida–  ElbitRB0esreservado–  Loscuatrodemenorpesodefinenlalongituddelosdatos(DLC).

•  Campodedatos.NºdebytesdeterminadoporDLC.LosRFno:enencampodedatos.

•  CampodeCRC.15bitsyundelimitadorCRC.U:lizadoporreceptoresparadeteccióndeerroresdetransmisión

•  Campodeconfirmación(ACK).Elnodoreceptorindicarecepcióncorrectadelmensaje,poniendounbitdominanteenelflagACKdelatrama.

Page 19: Introdución a CAN BUS

TramasCAN(III)

Tramadedatosestandar

Page 20: Introdución a CAN BUS

TramasCAN(IV)

Tramadedatosextendida

Page 21: Introdución a CAN BUS

TramasCAN(V)

TramaRemota

Page 22: Introdución a CAN BUS

TramasCAN(VI)

Tramadeerror

Page 23: Introdución a CAN BUS

TramasCAN(VII)

Tramaoverload

Page 24: Introdución a CAN BUS

Deteccióndeerrores•  ErrorCRC.Sialmenosunnodonorecibecorrectamenteelmensaje,éste

generalatramadeerroryelmensajeesreenviado.•  ErrordeACK.ElnodotransmisorcompruebasielflagACK,enviadocomo

recesivo,con:eneunbitdominante.Estebitdominantereconoceráquealmenosunnodoharecibidocorrectamenteelmensaje.

•  Errordeforma.Sicualquiernododetectaunbitdominanteenunodeloscuatrosegmentosdelmensaje:Finaldetrama,espacioentretramas,delimitadorACKodelimitadorCRC,elprotocoloCANdefineestocomounaviolacióndelaforma.

•  Errordebit.Siuntrasmisorenvíaunbitdominanteydetectaunbitrecesivo(oviceversa)cuandomonitoreaelniveldelbusactualylocomparaconelbitenviado.SeexcluyeelbitACKyelarbitraje.

•  Errordestuff.Losnodosreceptoressesincronizanconlatransición.Sihaymásde5bitsdelamismapolaridad,CANponeunbitdepolaridadopuesta(stuffingbit).Sisedetectan6bitsconlamismapolaridadseproduceunerrordestuff.

Page 25: Introdución a CAN BUS

Estadosdeerror

•  Loserroresdetectadossehacenpúblicosatodoslosotrosnodosatravésdetramasdeerroroflagsdeerror•Latrasmisióndeunmensajeerróneoseabortaylatramaserepitecuandoelnodoganeelbusdenuevo.

•  Cadanodo:eneunodelostresestadosdeerror–  Errorac:vo.Unnodoesdeerrorac:vocuandoloscontadores

error<128.Nododeoperaciónnormal,permi:endoalnodotransmi:ryrecibir.

•  Errorpasivo.Unnodoseponeenerrorpasivocuandoloscontadoreserror>127.Elnodonoestápermi:doparatrasmi:rflagsdeerrorac:vo.–  Busoff.Unnodoentraenestadobus‐offcuandoelcontador

deerrordetrasmisiónesmayorde255.Elnodonopuedeenviarorecibirmensajes.

Page 26: Introdución a CAN BUS

Implementacióndelsistema

ControladorMCP2510

Page 27: Introdución a CAN BUS

Caracteris:casMCP2510

•  MotordeprotocoloCAN

•  Controllógico•  ProtocoloSPI•  Pinesdeinterrupción(uno

gerenal+dosdelosregistrosreceptores(opcional)

•  Pinesdeiniciodetransmisióninmediata(opcional)

Page 28: Introdución a CAN BUS

Velocidaddetransmisiónversusdistanciadelcable

Page 29: Introdución a CAN BUS

Carácterís:caseléctricasISO11898‐2

Aspectodelbus Aspectodecadanodo

‐Elcabledebeterminarseenambosextremosporlaimpedanciadecargade120Ohm‐ElcontroladorCANseconectaconelTransceivervíaserie.

Page 30: Introdución a CAN BUS

Nivelesdetensiónnominales

‐ElnododetectaunacondiciónrecesivadelbuscuandoelvoltajedeCAN_HnoesmásaltoqueelvoltajedeCAN_Lmas0.5V‐SielvoltajedeCAN_Hesalmenos0.9VmasaltoqueCAN_L,sedetectaráunacondicióndominante‐ElvoltajenominalenelestadodominanteesCAN_H=3.5VyCAN_L=1.5V

Page 31: Introdución a CAN BUS

ProtecciónfrenteainterferenciasElectromagné:cas,EMI Asignacióndepines

Debidoalanaturalezadiferencialdelatransmisión,laseñalCANespocosensiblealasinterferenciaselectromagné:cas,debidoaqueambaslíneassonafectadasporigual,yelamplificadordiferencialdelreceptorlascancela(Rechazoenmodocomún)

Page 32: Introdución a CAN BUS

Referencias

•  htp://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1469

•  htp://www.unitrain‐i.de/443/Courses/Courses_with_experiment_cards/Automo:ve_technology/CAN‐Bus.htm