IntroducciónalbusCAN
SistemasEmbebidos
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.
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
• 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.
• Seu:lizaunpardecablestrenzados(busdiferencial)paraconseguiraltainmunidadalasinterferenciaselectromagné:cas(EMIs).Enalgunoscasospuedeirapantallado.
• Laimpedanciacaracteris:cadeestalineaesdelordende120Ωporloqueseepleanimpedancias(resistencias)deestevalorparaenambosextremosdelbusparaevitarondasreflejadasyqueelbusseconviertaenunaantena.
• Longitudmáximade1000m(a40Kbps).• Velocidadmáximade1Mbps(conunalongitudde40m)• Enloscochesseu:lizaa125kbit/sya500kbit/s.
ModelodecapasenelbusCAN
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
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.
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
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
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
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
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
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.
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
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
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
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.
TramasCAN(III)
Tramadedatosestandar
TramasCAN(IV)
Tramadedatosextendida
TramasCAN(V)
TramaRemota
TramasCAN(VI)
Tramadeerror
TramasCAN(VII)
Tramaoverload
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.
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.
Implementacióndelsistema
ControladorMCP2510
Caracteris:casMCP2510
• MotordeprotocoloCAN
• Controllógico• ProtocoloSPI• Pinesdeinterrupción(uno
gerenal+dosdelosregistrosreceptores(opcional)
• Pinesdeiniciodetransmisióninmediata(opcional)
Velocidaddetransmisiónversusdistanciadelcable
Carácterís:caseléctricasISO11898‐2
Aspectodelbus Aspectodecadanodo
‐Elcabledebeterminarseenambosextremosporlaimpedanciadecargade120Ohm‐ElcontroladorCANseconectaconelTransceivervíaserie.
Nivelesdetensiónnominales
‐ElnododetectaunacondiciónrecesivadelbuscuandoelvoltajedeCAN_HnoesmásaltoqueelvoltajedeCAN_Lmas0.5V‐SielvoltajedeCAN_Hesalmenos0.9VmasaltoqueCAN_L,sedetectaráunacondicióndominante‐ElvoltajenominalenelestadodominanteesCAN_H=3.5VyCAN_L=1.5V
ProtecciónfrenteainterferenciasElectromagné:cas,EMI Asignacióndepines
Debidoalanaturalezadiferencialdelatransmisión,laseñalCANespocosensiblealasinterferenciaselectromagné:cas,debidoaqueambaslíneassonafectadasporigual,yelamplificadordiferencialdelreceptorlascancela(Rechazoenmodocomún)
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