Comunicación I2C

Embed Size (px)

Citation preview

  • 7/26/2019 Comunicacin I2C

    1/53

    InstitutoTecnolgico deDurangoProgramacin AvanzadaIngeniera Mecatrnica

    Trabajo: Comunicacin i2

    C y !"Catedr#tico:

    $ern#ndez Marines Mario %erardo

    Alumno:

    Miguel Alejandro Pulido Martnez

    &'(('!

    Victoria de Durango a 28 de Abril del 2016

  • 7/26/2019 Comunicacin I2C

    2/53

    Instituto Tecnolgico de Durango

    )ndice

    Comunicacin I2C.............................................................................3

    Introduccin***************************************************************************************************** '

    Descri+cin de las se,ales******************************************************************************* '

    De-nicin de t.rminos:************************************************************************************ "

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    3/53

    Instituto Tecnolgico de Durango

    /a comunicacin en m#s detalle**********************************************************************0

    Protocolo de +rogramacin +ara el bus I2C*****************************************************1

    Comunicacin 485..........................................................................10

    Introduccin*************************************************************************************************** &(

    Por 3u. usar este +rotocolo4************************************************************************ &(

    5u. es el +rotocolo 678!"4************************************************************************&&

    Comunicacin 678!" a cuatro 9ilos ;ull8du+leull Du+le

  • 7/26/2019 Comunicacin I2C

    4/53

    Instituto Tecnolgico de Durango

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    5/53

    Instituto Tecnolgico de Durango

    Comunicacin I2C

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    6/53

    Instituto Tecnolgico de Durango

    Introduccin

    ?l bus I2C@ un est#ndar 3ue ;acilita la comunicacin entre

    microcontroladores@ memorias y otros dis+ositivos con cierto nivel deinteligencia@ slo re3uiere de dos lneas de se,al y un comBn o masa*>ue dise,ado a este e;ecto +or P9ili+s y +ermite el intercambio dein;ormacin entre muc9os dis+ositivos a una velocidad ace+table@ deunos &(( bits +or segundo@ aun3ue 9ay casos es+eciales en los 3ue elreloj llega 9asta los '@ M$z*

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    7/53

    Instituto Tecnolgico de Durango

    /a metodologa de comunicacin de datos del bus I2C es en serie ysincrnica* na de las se,ales del bus marca el tiem+o +ulsos de reloj= yla otra se utiliza +ara intercambiar datos*

    Descripcin de las seales

    o SCL7ystem ClocE= es la lnea de los +ulsos de reloj 3uesincronizan el sistema*

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    8/53

    Instituto Tecnolgico de Durango

    o SD7ystem Data= es la lnea +or la 3ue se mueven losdatos entre los dis+ositivos*

    o !"DMasa= comBn de la interconeccin entre todos los

    dis+ositivos enganc9ados al bus*

    /as lneas SDy SCLson del ti+o drenaje abierto@ es decir@ un estadosimilar al de colector abierto@ +ero asociadas a un transistor de e;ecto decam+o o >?T=* 7e deben +olarizar en estado alto conectando a laalimentacin +or medio de resistores +ull8u+= lo 3ue de-ne una

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    9/53

    Instituto Tecnolgico de Durango

    estructura de bus 3ue +ermite conectar en +aralelo mBlti+les entradas ysalidas*

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    10/53

    Instituto Tecnolgico de Durango

    ?l diagrama es su-cientemente autoe

  • 7/26/2019 Comunicacin I2C

    11/53

    Instituto Tecnolgico de Durango

    $abiendo varios dis+ositivos conectados sobre el bus@ es lgico 3ue +araestablecer una comunicacin a trav.s de .l se deba res+etar un+rotocolo* Digamos@ en +rimer lugar@ lo m#s im+ortante: e

  • 7/26/2019 Comunicacin I2C

    12/53

    Instituto Tecnolgico de Durango

    ?l +rimer byte 3ue se transmite luego de la condicin de inicio contienesiete bits 3ue com+onen la direccin del dis+ositivo 3ue se deseaseleccionar@ y un octavo bit 3ue corres+onde a la o+eracin 3ue se

    3uiere realizar con .l lectura o escritura=*7i el dis+ositivo cuya direccin corres+onde a la 3ue se indica en lossiete bits A(8A0= est# +resente en el bus@ .ste contesta con un bit enbajo@ ubicado inmediatamente luego del octavo bit 3ue 9a enviado eldis+ositivo maestro* ?ste bit de reconocimiento AC= en bajo le indica aldis+ositivo maestro 3ue el esclavo reconoce la solicitud y est# en

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    13/53

    Instituto Tecnolgico de Durango

    condiciones de comunicarse* A3u la comunicacin se establece en -rmey comienza el intercambio de in;ormacin entre los dis+ositivos*

    7i el bit de lectura$escritura6GH= ;ue +uesto en esta comunicacin anivel lgico bajo escritura=@ el dis+ositivo maestro enva datos aldis+ositivo esclavo* ?sto se mantiene mientras continBe recibiendo

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    14/53

    Instituto Tecnolgico de Durango

    se,ales de reconocimiento@ y el contacto concluye cuando se 9ayantransmitido todos los datos*

    De%nicin de t&rminos'

    (aestroMaster=: Dis+ositivo 3ue determina los tiem+os y ladireccin del tr#-co en el bus* ?s el Bnico 3ue a+lica los +ulsos dereloj en la lnea 7C/* Cuando se conectan varios dis+ositivosmaestros a un mismo bus la con-guracin obtenida se denominamulti8maestro*

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    15/53

    Instituto Tecnolgico de Durango

    )scla#o7lave=: Todo dis+ositivo conectado al bus 3ue no tiene laca+acidad de generar +ulsos de reloj* /os dis+ositivos esclavosreciben se,ales de comando y de reloj generados desde el

    maestro* *us libreus >ree=: ?stado en el 3ue ambas lneas 7DA y 7C/=

    est#n inactivas@ +resentando un estado lgico alto* ?s el Bnicomomento en 3ue un dis+ositivo maestro +uede comenzar a 9aceruso del bus*

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    16/53

    Instituto Tecnolgico de Durango

    Comien+o7tart=: 7e +roduce cuando un dis+ositivo maestroocu+a el bus@ generando la condicin* /a lnea de datos 7DA=toma un estado bajo mientras 3ue la lnea de reloj 7C/=

    +ermanece alta* ,arada7to+=: n dis+ositivo maestro +uede generar esta

    condicin@ dejando libre el bus* /a lnea de datos y la de relojtoman un estado lgico alto*

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    17/53

    Instituto Tecnolgico de Durango

    Dato #-lidoJalid Data=: 7ituacin +resente cuando un dato+resente en la lnea 7DA es estable al tiem+o 3ue la lnea 7C/ est#a nivel lgico alto*

    ormato de DatosData >ormat=: /a transmisin de un dato atrav.s de este bus consiste de ! bits de dato & byte=* A cada bytetransmitido al bus le sigue un noveno +ulso de reloj durante el cualel dis+ositivo rece+tor del byte debe generar un +ulso dereconocimiento*

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    18/53

    Instituto Tecnolgico de Durango

    /econocimientoAcEnoKledge=: ?l +ulso de reconocimiento@conocido como AC del ingl.s AcEnoKledge=@ se logra colocandola lnea de datos a un nivel lgico bajo durante el transcurso del

    noveno +ulso de reloj* DireccinAddress=: Todo dis+ositivo dise,ado +ara ;uncionar en

    este bus +osee su +ro+ia y Bnica direccin de acceso@+reestablecida +or el ;abricante* $ay dis+ositivos 3ue +ermitende-nir e

  • 7/26/2019 Comunicacin I2C

    19/53

    Instituto Tecnolgico de Durango

    dis+ositivos del mismo ti+o@ sin +roblemas de identi-cacin* /adireccin (( es la denominada de acceso generalL a .stares+onden todos los dis+ositivos conectados al bus*

    Lectura$)scriturait 6GH=: Cada dis+ositivo tiene una direccinde 1 bits* ?l octavo bit el menos signi-cativo= 3ue se envadurante la o+eracin de direccionamiento@ com+letando el byte@indica el ti+o de o+eracin a realizar* 7i este bit es alto eldis+ositivo maestro lee in;ormacin +roveniente de un dis+ositivoesclavo* 7i este bit es bajo@ el dis+ositivo maestro escribein;ormacin en un dis+ositivo esclavo*

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    20/53

    Instituto Tecnolgico de Durango

    7i estamos 9ablando de comunicacin a dos 9ilos entremicrocontroladores PIC@ el maestro es el dis+ositivo 3ue general la se,al

    de reloj y da +rinci+io a la transmisin de datos@ +ero si alguno de ellostiene la ca+acidad de asumir el rol de maestro@ este +uede con-gurarsey as tener una red multimaestro*

    La comunicacin en m-s detalle

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    21/53

    Instituto Tecnolgico de Durango

    Cuando el dis+ositivo maestro 3uiere comunicarse con un esclavo@+roduce una secuencia de inicio en el bus* /a secuencia de inicio es unade las dos secuencias es+eciales 3ue se 9an de-nido en el bus I2CL la

    otra es la secuencia de +arada* /as secuencias de inicio y la de +aradason es+eciales +or3ue son los dos Bnicos casos en 3ue se +ermite 3ue lalnea de datos 7DA= cambie cuando la lnea de reloj 7C/= est# alta*Cuando se est#n transmitiendo datos@ la lnea 7DA debe +ermanecerestable@ y jam#s cambiar@ mientras la lnea 7C/ est# alta* /as secuenciasde inicio y de +arada se,alan el comienzo y el -nal de una transaccincon los dis+ositivos esclavos*

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    22/53

    Instituto Tecnolgico de Durango

    /os datos se trans-eren en secuencias de ! bits* ?stos bits se colocan enla lnea 7DA comenzando +or el bit de m#s +eso o m#s signi-cativo=*na vez +uesto un bit en 7DA@ se lleva la lnea 7C/ a alto* Debemos

    recordar 3ue el c9i+ no +uede llevar la lnea a un estado alto@ enrealidad@ lo 3ue 9ace es soltarla@ y el 3ue la +one en nivel lgico alto esel resistor de +olarizacin* Por cada ! bits 3ue se trans-eren@ eldis+ositivo 3ue recibe el dato enva de regreso un bit de reconocimiento@de modo 3ue en realidad +or cada byte de dato se +roducen +ulsossobre la lnea 7C/ es decir@ +ulsos de reloj +or cada ! bits de dato=* 7iel dis+ositivo 3ue recibe enva un bit de reconocimiento bajo@ indica 3ue

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    23/53

    Instituto Tecnolgico de Durango

    9a recibido el dato y 3ue est# listo +ara ace+tar otro byte* 7i retorna unalto@ lo 3ue indica es 3ue no +uede recibir m#s datos y el dis+ositivomaestro debera terminar la trans;erencia enviando una secuencia de

    +arada*

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    24/53

    Instituto Tecnolgico de Durango

    Cuando el maestro termina de enviar sus datos@ el esclavo enva unase,al de reconocimiento AC*

    ,rotocolo de proramacin para el bus I2C

    /o +rimero 3ue ocurre en un bus I2C es 3ue el dis+ositivo maestro envauna secuencia de inicio* ?sto alerta a los dis+ositivos esclavos@+oni.ndolos a la es+era de una transaccin* Nstos 3uedan atentos +araver si se trata de una solicitud +ara ellos* A continuacin el dis+ositivomaestro enva la direccin de dis+ositivo* ?l dis+ositivo esclavo 3ue+osee esa direccin continuar# con la transaccin@ y los otros ignorar#nel resto de los intercambios@ es+erando la +r

  • 7/26/2019 Comunicacin I2C

    25/53

    Instituto Tecnolgico de Durango

    $abiendo direccionado ya el dis+ositivo esclavo@ lo 3ue debe 9acera9ora el maestro es enviar la ubicacin interna o nBmero de registrodesde el 3ue desea leer o al 3ue va a escribir* /a cantidad de+ende@

    obviamente@ de 3u. dis+ositivo es y de cu#ntos registros internos +osee*Algunos dis+ositivos muy sim+les no tienen ninguno@ +ero la mayora slos +oseen*

    7iguiendo con el ejem+lo del CMP7('@ .ste +osee &0 ubicacionesinternas@ numeradas desde el ( al &"* Otro dis+ositivo@ el medidorultrasnico de distancia76>(!@ tiene '0 registros*

    Programacin avanzada

    http://robots-argentina.com.ar/Sensores_magnetismo.htm#CMPS03http://robots-argentina.com.ar/Sensores_rangers.htm#SRF08http://robots-argentina.com.ar/Sensores_magnetismo.htm#CMPS03http://robots-argentina.com.ar/Sensores_rangers.htm#SRF08
  • 7/26/2019 Comunicacin I2C

    26/53

    Instituto Tecnolgico de Durango

    na vez 3ue el maestro 9a enviado la direccin del dis+ositivo en el busI2C y la direccin del registro interno del dis+ositivo@ +uede enviar a9orael byte o bytes de datos* ?l dis+ositivo maestro +uede seguir enviando

    bytes al esclavo@ 3ue normalmente ser#n +uestos en registros condirecciones sucesivas@ ya 3ue el esclavo incrementa autom#ticamente ladireccin del registro interno des+u.s de recibir cada byte* Cuando elmaestro 9a terminado de escribir datos en el esclavo@ enva unasecuencia de +arada 3ue concluye la transaccin*

    ?scritura en un dis+ositivo esclavo:

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    27/53

    Instituto Tecnolgico de Durango

    &* ?nviar una secuencia de inicio2* ?nviar la direccin de dis+ositivo con el bit de lecturaGescritura en

    bajo'* ?nviar el nBmero de registro interno en el 3ue se desea escribir

    * ?nviar el byte de dato"* O+cionalmente@ enviar m#s bytes de datoQ0* ?nviar la secuencia de +arada

    Como ejem+lo@ veamos un 76>(!@ 3ue tiene una direccin de bus -jadaen ;#brica de (

  • 7/26/2019 Comunicacin I2C

    28/53

    Instituto Tecnolgico de Durango

    76>(! se debe escribir (

  • 7/26/2019 Comunicacin I2C

    29/53

    Instituto Tecnolgico de Durango

    ?sta o+eracin es algo m#s com+licada@ +ero no demasiado* Antes deleer datos desde el dis+ositivo esclavo@ +rimero se le debe in;ormardesde cu#l de sus direcciones internas se va a leer* De manera 3ue una

    lectura desde un dis+ositivo esclavo en realidad comienza con unao+eracin de escritura en .l* ?s igual a cuando se desea escribir en .l:7e enva la secuencia de inicio@ la direccin de dis+ositivo con el bit delecturaGescritura en bajo y el registro interno desde el 3ue se desea leer*A9ora se enva otra secuencia de inicio nuevamente con la direccin dedis+ositivo@ +ero esta vez con el bit de lecturaGescritura en alto* /uego se

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    30/53

    Instituto Tecnolgico de Durango

    leen todos los bytes necesarios y se termina la transaccin con unasecuencia de +arada*

    Jolviendo al ejem+lo del mdulo de brBjula CMP7('@ veamos cmo se

    lee el registro de #ngulo:

    &* ?nviar una secuencia de inicio2* ?nviar (

  • 7/26/2019 Comunicacin I2C

    31/53

    Instituto Tecnolgico de Durango

    * ?nviar una secuencia de inicio inicio reiterado="* ?nviar (

  • 7/26/2019 Comunicacin I2C

    32/53

    Instituto Tecnolgico de Durango

    /a secuencia se ver# as:

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    33/53

    Instituto Tecnolgico de Durango

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    34/53

    Instituto Tecnolgico de Durango

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    35/53

    Instituto Tecnolgico de Durango

    Comunicacin !"

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    36/53

    Instituto Tecnolgico de Durango

    Introduccin?st# de-nido como un sistema de bus di;erencial multi+unto@ es ideal+ara transmitir a altas velocidades sobre largas distancias '" MbitGs

    9asta &( metros y &(( EbitGs en &2(( metros= y a trav.s de canalesruidosos@ ya 3ue el +ar trenzado reduce los ruidos 3ue se inducen en lalnea de transmisin* ?l medio ;sico de transmisin es un +ar trenzado3ue admite '2@ &2! o 2" estaciones en & solo +ar@ con una longitudm#

  • 7/26/2019 Comunicacin I2C

    37/53

    Instituto Tecnolgico de Durango

    con una notable inmunidad al ruido@ siem+re 3ue el bus de comunicacinconserve las caractersticas de bus balanceado dando la +osibilidad deuna con-guracin multi+unto*

    ,or u& usar este protocolo

    7o+orta grandes distancias entre un dis+ositivo maestro y otrosdis+ositivos@ nosotros no lo 9emos com+robado +ero se dice 3ue so+orta9asta &((( metros & m=@ el sistema 3ue se usa +ara la medicin de

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    38/53

    Instituto Tecnolgico de Durango

    gas /P usando nuestras tarjetas@ usa solamente &2 metros de distanciaentre los dis+ositivos*

    sa solo dos cables +ara su cone

  • 7/26/2019 Comunicacin I2C

    39/53

    Instituto Tecnolgico de Durango

    S es 3ue@ +ara la a+licacin de los des+ac9adores de gas /P enautotan3ues@ se tena la necesidad de conectar un registro electrnico@con una tarjeta +ara abrir y cerrar las v#lvulas de gas@ as 3ue@ +or las

    ventajas mencionadas arriba@ se o+to +or comunicar los dis+ositivosusando la comunicacin serial@ a trav.s de una red de cone

  • 7/26/2019 Comunicacin I2C

    40/53

    Instituto Tecnolgico de Durango

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    41/53

    Instituto Tecnolgico de Durango

    u& es el protocolo /S485?s un +rotocolo de comunicacin serial@ 3u. a la ;ec9a es un est#ndar@es usado como sistema de intercone

  • 7/26/2019 Comunicacin I2C

    42/53

    Instituto Tecnolgico de Durango

    Comunicacin /S485 a cuatro 6ilos 7ullduple9:?n el artculo anterior se vio 3ue dos dis+ositivos +ueden comunicarseserialmente usando dos cables@ uno llamado rece+tor 6

  • 7/26/2019 Comunicacin I2C

    43/53

    Instituto Tecnolgico de Durango

    Observe la -gura@ el transce+tor se conecta a las terminales T< y 6< deun dis+ositivo serial@ +ara as tener lista la cone

  • 7/26/2019 Comunicacin I2C

    44/53

    Instituto Tecnolgico de Durango

    A9ora observe en la siguiente -gura@ la cone

  • 7/26/2019 Comunicacin I2C

    45/53

    Instituto Tecnolgico de Durango

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    46/53

    Instituto Tecnolgico de Durango

    ?se es el 9ardKare necesario +ara la comunicacin 67!" a 9ilos@ eltransmisor y rece+tor son totalmente inde+endientes@ en un instanteambos +ueden estar transmitiendo y recibiendo in;ormacin@ +or eso es

    llamado ;ull8du+le

  • 7/26/2019 Comunicacin I2C

    47/53

    Instituto Tecnolgico de Durango

    +ero nunca al mismo tiem+o* ?ste ti+o de cone

  • 7/26/2019 Comunicacin I2C

    48/53

    Instituto Tecnolgico de Durango

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    49/53

    Instituto Tecnolgico de Durango

    Como se mencion arriba@ la ventaja en modo 9al; dB+le

  • 7/26/2019 Comunicacin I2C

    50/53

    Instituto Tecnolgico de Durango

    in;ormacin@ se re3uieren de dos canales@ uno inde+endiente del otro@+ara +oder transmitir y recibir al mismo tiem+o la in;ormacin* ?lt.rmino >ull Du+le< se re-ere a 3ue un sistema +uede transmitir y recibir

    in;ormacin al simult#neamente* ajo este conce+to la inter;ase 678!"est# dise,ada +ara sistemas multi+unto@ esto signi-ca 3ue los enlaces+ueden llegar a tener m#s de un transmisor y rece+tor@ ya 3ue cadadireccin o sea Transmisin y 6ece+cin tienen su +ro+ia ruta* /asiguiente -gura muestra lo anteriormente dic9o*

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    51/53

    Instituto Tecnolgico de Durango

    ?n la siguiente -gura se muestra como es +osible utilizar lacomunicacin >ull Du+le< con mBlti+les nodos trasmisores y rece+tores*?n este arreglo del ti+o maestro G esclavo@ se +ondr# como ejem+lo 3ue

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    52/53

    Instituto Tecnolgico de Durango

    el nodo & es el maestro@ +or lo tanto tiene el control de la red y el asignael +ermiso +ara transmitir* n +ar de cables est#n conectados del nodotrasmisor Maestro a todos los controladores rece+tores esclavos* ?n el

    otro sentido@ un +ar de cables conectan a todos los esclavos al rece+tordel Maestro* Todos los esclavos deben leer lo 3ue el maestro enva@ +erosolo uno va a +oder res+onder y lo 9ace a trav.s de los cables o+uestos*

    Programacin avanzada

  • 7/26/2019 Comunicacin I2C

    53/53

    Instituto Tecnolgico de Durango