Está en la página 1de 7

1

Comunicacin I^2C y 1 wire


Arias #oasa Buis "oe Buis4o41oEF1G1otmail!com '"IH)$:I&A& &) BA: /')$IA: A$7A&A: ):0) )J#)":I(" BA#AC'"DA ,a

Resumen Aqu se explicara una breve introduccin de la comunicacin I^2C y 1 wire, que se utiliza para las comunicaciones entre di erentes aparatos electrnicos, a las mismos que son muy utilizados en la industria actual ndice de Trminos
Comunicacin I^2C y 1 wire

II! A.

7A$C% #)($IC%

Comunicacin - Bus I2C

Definicin Abreviatura de Inter<IC =inter inte,rated circuits>, un tipo de bus dise-ado por 01ilips :emiconductors a principios de los ?2s, que se utiliza para conectar circuitos inte,rados =ICs>! )l I2C es un bus con m.ltiples maestros, lo que si,ni ica que se pueden conectar varios c1ips al mismo bus y que todos ellos pueden actuar como maestro, slo con iniciar la trans erencia de datos! )ste bus se utiliza en muc1os dispositivos, en especial en equipos de vdeo como monitores de computadora, televisores y videocaseteras! @1A! Descripcin de las seales

Abstract Here is a brief introduction explaining the I ^ 2C communication and one wire, used for communications between different electronic devices, the same that are widely used in industry today I!I"#$%&'CCI(" )l bus I2C, un est*ndar que acilita la comunicacin entre microcontroladores, memorias y otros dispositivos con cierto nivel de +inteli,encia+, slo requiere de dos lneas de se-al y un com.n o masa! /ue dise-ado a este e ecto por 01ilips y permite el intercambio de in ormacin entre muc1os dispositivos a una velocidad aceptable, de unos 122 3bits por se,undo, aunque 1ay casos especiales en los que el relo4 lle,a 1asta los 5,6 78z! 9ire es un protocolo de comunicaciones en serie dise-ado por &allas :emiconductor! )st* basado en un bus, un maestro y varios esclavos de una sola lnea de datos en la que se alimentan! )n principio los dispositivos de este tipo se alimentan con corrientes parasitas, aunque necesitan re erencia a tierra!
;

:CB =:ystem ClocC> es la lnea de los pulsos de relo4 que sincronizan el sistema! :&A =:ystem &ata> es la lnea por la que se mueven los datos entre los dispositivos! D"& =7asa> com.n de la interconexin entre todos los dispositivos +en,anc1ados+ al bus!

Bas lneas :&A y :CB son del tipo drena4e abierto, es decir, un estado similar al de colector abierto, pero asociadas a un transistor de e ecto de campo =o /)#>! :e deben polarizar en estado alto =conectando a la alimentacin por medio de resistores +pull<up+> lo que de ine una estructura de bus que permite conectar en paralelo m.ltiples entradas y salidas!

condicin se presenta cuando un dispositivo maestro pone en estado ba4o la lnea de datos =:&A>, pero de4ando en alto la lnea de relo4 =:CB>! )l primer byte que se transmite lue,o de la condicin de inicio contiene siete bits que componen la direccin del dispositivo que se desea seleccionar, y un octavo bit que corresponde a la operacin que se quiere realizar con Ll =lectura o escritura>! :i el dispositivo cuya direccin corresponde a la que se indica en los siete bits =A2<AN> est* presente en el bus, Lste contesta con un bit en ba4o, ubicado inmediatamente lue,o del octavo bit que 1a enviado el dispositivo maestro! )ste bit de reconocimiento =AC3> en ba4o le indica al dispositivo maestro que el esclavo reconoce la solicitud y est* en condiciones de comunicarse! Aqu la comunicacin se establece en irme y comienza el intercambio de in ormacin entre los dispositivos! @1A!

/i,ura 1! &escrpcion de las se-ales

)l dia,rama es su icientemente auto explicativo! Bas dos lneas del bus est*n en un nivel l,ico alto cuando est*n inactivas! )n principio, el n.mero de dispositivos que se puede conectar al bus no tiene lmites, aunque 1ay que observar que la capacidad m*xima sumada de todos los dispositivos no supere los 622 p/! )l valor de los resistores de polarizacin no es muy crtico, y puede ir desde 13? =1!?22 o1ms> a 6K3 =6K!222 o1ms>! 'n valor menor de resistencia incrementa el consumo de los inte,rados pero disminuye la sensibilidad al ruido y me4ora el tiempo de los lancos de subida y ba4ada de las se-ales! Bos valores m*s comunes en uso son entre 13? y 123!

/i,ura 2! :ecuencia de inicio

Protocolo de comunicacin del bus I2C 8abiendo varios dispositivos conectados sobre el bus, es l,ico que para establecer una comunicacin a travLs de Ll se deba respetar un protocolo! &i,amos, en primer lu,ar, lo m*s importanteM existen dispositivos maestros y dispositivos esclavos! :lo los dispositivos maestros pueden iniciar una comunicacin! Ba condicin inicial, de bus libre, es cuando ambas se-ales est*n en estado l,ico alto! )n este estado cualquier dispositivo maestro puede ocuparlo, estableciendo la condicin de inicio =start>! )sta
/i,ura 5! Oits de las se-ales

Lectura/escritura (R/W) /ue puesto en esta comunicacin a nivel l,ico ba4o =escritura>, el dispositivo maestro enva datos al dispositivo esclavo! )sto se mantiene mientras contin.e recibiendo se-ales de reconocimiento, y el

contacto concluye cuando se 1ayan transmitido todos los datos! @1A! )n el caso contrario, cuando el bit de lecturaPescritura estaba a nivel l,ico alto =lectura>, el dispositivo maestro ,enera pulsos de relo4 para que el dispositivo esclavo pueda enviar los datos! Bue,o de cada byte recibido el dispositivo maestro =quien est* recibiendo los datos> ,enera un pulso de reconocimiento! )l dispositivo maestro puede de4ar libre el bus ,enerando una condicin de parada =o detencinQ stop en in,lLs>! :i se desea se,uir transmitiendo, el dispositivo maestro puede ,enerar otra condicin de inicio en lu,ar de una condicin de parada! )sta nueva condicin de inicio se denomina +inicio reiterado+ y se puede emplear para direccionar un dispositivo esclavo di erente o para alterar el estado del bit de lecturaPescritura! @1A!

/i,ura 6! :ecuencia de parada

Definicin de trminos

7aestro =7aster>M &ispositivo que determina los tiempos y la direccin del tr* ico en el bus! )s el .nico que aplica los pulsos de relo4 en la lnea :CB! Cuando se conectan varios dispositivos maestros a un mismo bus la con i,uracin obtenida se denomina +multi<maestro+! )sclavo =:lave>M #odo dispositivo conectado al bus que no tiene la capacidad de ,enerar pulsos de relo4! Bos dispositivos esclavos reciben se-ales de comando y de relo4 ,enerados desde el maestro! Ous libre =Ous /ree>M )stado en el que

ambas lneas =:&A y :CB> est*n inactivas, presentando un estado l,ico alto! )s el .nico momento en que un dispositivo maestro puede comenzar a 1acer uso del bus! Comienzo =:tart>M :e produce cuando un dispositivo maestro ocupa el bus, ,enerando la condicin! Ba lnea de datos =:&A> toma un estado ba4o mientras que la lnea de relo4 =:CB> permanece alta! 0arada =:top>M 'n dispositivo maestro puede ,enerar esta condicin, de4ando libre el bus! Ba lnea de datos y la de relo4 toman un estado l,ico alto! &ato v*lido =Halid &ata>M :ituacin presente cuando un dato presente en la lnea :&A es estable al tiempo que la lnea :CB est* a nivel l,ico alto! /ormato de &atos =&ata /ormat>M Ba transmisin de un dato a travLs de este bus consiste de ? bits de dato =1 byte>! A cada byte transmitido al bus le si,ue un noveno pulso de relo4 durante el cual el dispositivo receptor del byte debe ,enerar un pulso de reconocimiento! $econocimiento =AcCnowled,e>M )l pulso de reconocimiento, conocido como AC3 =del in,lLs AcCnowled,e>, se lo,ra colocando la lnea de datos a un nivel l,ico ba4o durante el transcurso del noveno pulso de relo4! &ireccin =Address>M #odo dispositivo dise-ado para uncionar en este bus posee su propia y .nica direccin de acceso, preestablecida por el abricante! 8ay dispositivos que permiten de inir externamente parte de la direccin de acceso, lo que 1abilita que se pueda conectar en un mismo bus un con4unto de dispositivos del mismo tipo, sin problemas de identi icacin! Ba direccin 22 es la denominada +de acceso ,eneral+Q a Lsta responden todos los dispositivos conectados al bus! BecturaP)scritura =Oit $P9>M Cada dispositivo tiene una direccin de K bits! )l

octavo bit =el menos si,ni icativo> que se enva durante la operacin de direccionamiento, completando el byte, indica el tipo de operacin a realizar! :i este bit es alto el dispositivo maestro lee in ormacin proveniente de un dispositivo esclavo! :i este bit es ba4o, el dispositivo maestro escribe in ormacin en un dispositivo esclavo!

Protocolo de pro"ramacin para el bus I2C Bo primero que ocurre en un bus I2C es que el dispositivo maestro enva una secuencia de inicio! )sto alerta a los dispositivos esclavos, poniLndolos a la espera de una transaccin! Sstos quedan atentos para ver si se trata de una solicitud para ellos! A continuacin el dispositivo maestro enva la direccin de dispositivo! )l dispositivo esclavo que posee esa direccin continuar* con la transaccin, y los otros i,norar*n el resto de los intercambios, esperando la prxima secuencia de inicio! 8abiendo direccionado ya el dispositivo esclavo, lo que debe 1acer a1ora el maestro es enviar la ubicacin interna o n.mero de re,istro desde el que desea leer o al que va a escribir! Ba cantidad depende, obviamente, de quL dispositivo es y de cu*ntos re,istros internos posee! Al,unos dispositivos muy simples no tienen nin,uno, pero la mayora s los poseen! :i,uiendo con el e4emplo del C70:25, Lste posee 1N ubicaciones internas, numeradas desde el 2 al 1T! %tro dispositivo, el medidor ultrasnico de distancia :$/2?, tiene 5N re,istros! 'na vez que el maestro 1a enviado la direccin del dispositivo en el bus I2C y la direccin del re,istro interno del dispositivo, puede enviar a1ora el byte o bytes de datos! )l dispositivo maestro puede se,uir enviando bytes al esclavo, que normalmente ser*n puestos en re,istros con direcciones sucesivas, ya que el esclavo incrementa autom*ticamente la direccin del re,istro interno despuLs de recibir cada byte! Cuando el maestro 1a terminado de escribir datos en el esclavo, enva una secuencia de parada que concluye la transaccin!

Direccionamiento de dispositi!os en el bus I2C Bo m*s com.n en los dispositivos para el bus I2C es que utilicen direcciones de K bits, aunque existen dispositivos de 12 bits! )ste .ltimo caso es raro! 'na direccin de K bits implica que se pueden poner 1asta 12? dispositivos sobre un bus I2C, ya que un n.mero de K bits puede ir desde 2 a 12K! Cuando se envan las direcciones de K bit, de cualquier modo la transmisin es de ? bits! )l bit extra se utiliza para in ormarle al dispositivo esclavo si el dispositivo maestro va a escribir o va a leer datos desde Ll! :i el bit de lecturaPescritura =$P9> es cero, el dispositivo maestro est* escribiendo en el esclavo! :i el bit es 1 el maestro est* leyendo desde el esclavo! Ba direccin de K bit se coloca en los K bist m*s si,ni icativos del byte y el bit de lecturaPescritura es el bit menos si,ni icativo! )l 1ec1o de colocar la direccin de K bits en los K bits m*s si,ni icativos del byte produce con usiones entre quienes comienzan a traba4ar con este bus! :i, por e4emplo, se desea escribir en la direccin 21 =1exadecimal>, en realidad se debe enviar un 62, que es un 21 desplazado un bit 1acia arriba! #ambiLn se pueden tomar las direcciones del bus I2C como direcciones de ? bit, en las que las pares son de slo escritura y las impares son de slo lectura! 0ara dar un e4emplo, el inte,rado de br.4ula ma,nLtica C70:25 es i4ado en *brica en la direccin 2xC2 =RC2>! Ba direccin 2xC2 se utiliza para escribir en Ll y la direccin 2xC1 es para leer de Ll! @1A!

#scritura en un dispositi!o escla!o 1! )nviar una secuencia de inicio 2! )nviar la direccin de dispositivo con el bit de lecturaPescritura en ba4o 5! )nviar el n.mero de re,istro interno en el que se desea escribir 6! )nviar el byte de dato T! @%pcionalmente, enviar m*s bytes de datoA N! )nviar la secuencia de parada Como e4emplo, veamos un :$/2?, que tiene una direccin de bus i4ada en *brica de 2x)2! 0ara comenzar una medicin de distancia con el :$/2? se debe escribir 2xT1 en el re,istro de comando, ubicado en la direccin interna 2x22! Ba secuencia es la que si,ueM 1! )nviar una secuencia de inicio 2! )nviar 2x)2 =Ba direccin de dispositivo del :$/2? con el bit de lecturaPescritura en ba4o> 5! )nviar 2x22 =direccin interna del re,istro de comando> 6! )nviar 2xT1 =el comando para comenzar la medicin del :$/2?> T! )nviar la secuencia de parada

Holviendo al e4emplo del mdulo de br.4ula C70:25, veamos cmo se lee el re,istro de *n,uloM 1! )nviar una secuencia de inicio 2! )nviar 2xC2 =Ba direccin de dispositivo del C70:25 con el bit de lecturaPescritura en ba4o> 5! )nviar 2x21 =direccin interna del re,istro de *n,ulo en valor 2<2TT> 6! )nviar una secuencia de inicio =inicio reiterado> T! )nviar 2xC1 =Ba direccin de dispositivo del C70:25 con el bit de lecturaPescritura en alto> N! Beer un byte de dato desde el C70:25 K! )nviar la secuencia de parada

/i,ura T! Bectura de un dispositivo esclavo

B. PROTOCOLO DE TRA !"ICIO #$IRE &allas :emiconductor 1a desarrollado una poderosa tecnolo,a llamada 1<9ire, la cual, utiliza un slo conductor m*s su conexin a tierra para e ectuar las comunicaciones y la transmisin de ener,a entre un dispositivo maestro y m.ltiples esclavos

Lectura desde un dispositi!o escla!o )sta operacin es al,o m*s complicada, pero no demasiado! Antes de leer datos desde el dispositivo esclavo, primero se le debe in ormar desde cu*l de sus direcciones internas se va a leer! &e manera que una lectura desde un dispositivo esclavo en realidad comienza con una operacin de escritura en Ll! )s i,ual a cuando se desea escribir en LlM :e enva la secuencia de inicio, la direccin de dispositivo con el bit de lecturaPescritura en ba4o y el re,istro interno desde el que se desea leer! A1ora se enva otra secuencia de inicio nuevamente con la direccin de dispositivo, pero esta vez con el bit de lecturaPescritura en alto! Bue,o se leen todos los bytes necesarios y se termina la transaccin con una secuencia de parada!

/i,ura N! 0rotocolo de transmisin

'na red de dispositivos 1<9ire est* con ormada por un maestro y uno o m*s esclavos que poseen un

.nico pin de datos de tipo UopendrainV, al que se conecta una resistencia de U0ull 'pV anclada a WTH&C =nominal>! 'na de las caractersticas de la tecnolo,a 1<9ire, es que cada dispositivo esclavo tiene una .nica e irrepetible identi icacin ,rabada en su memoria $%7 al momento de su abricacin! @2A!

inverso evitando que el condensador se descar,ue! Ba car,a almacenada en el condensador alimentar* al circuito esclavo! X Bas redes de dispositivos 1<9ire pueden tener *cilmente una lon,itud desde 222m y contener unos 122 dispositivos! X #odas las tensiones mayores que 2,2 Holtios son consideradas un 1 l,ico mientras que como un 2 l,ico se interpreta cualquier volta4e menor o i,ual a 2,? H! X Ba trans erencia de in ormacin es a 1N!53bps en modo U:tandardV y 1asta a 1623bps en modo UoverdriveV! @2A

/i,ura K! $ed de didpositivos

)l O': 1<9ire, permite realizar una comunicacin serial asincrnica entre un dispositivo maestro y uno o varios dispositivos esclavos, utilizando un .nico pin de )P: del microcontrolador! 0odemos se-alar al,unas caractersticas de Lste busM X 'tiliza niveles de alimentacin C7%:P##B con un ran,o de operacin que abarca desde 2!?H 1asta NH! X #anto el maestro como los esclavos transmiten in ormacin de orma bidireccional, pero, slo en una direccin a la vez, de Lsta manera la comunicacin es realizada en orma U1al duplexV! X #oda la in ormacin es leda o escrita comenzando por el bit menos si,ni icativo =B:O>! X "o se requiere del uso de una se-al de relo4, ya que, cada dispositivo 1<9ire posee un oscilador interno que se sincroniza con el del maestro cada vez que en la lnea de datos aparezca un lanco de ba4ada! X Ba alimentacin de los esclavos se puede 1acer utilizando el volta4e propio del O':! 0ara ello, cada circuito esclavo posee un recti icador de media onda y un condensador, durante los perodos en los cuales no se e ect.a nin,una comunicacin, la lnea de datos se encuentra en estado alto debido a la resistencia de U0ull 'pVQ en esa condicin, el diodo entra en conduccin y car,a al condensador! Cuando el volta4e de la red cae por deba4o de la tensin del condensador, el diodo se polariza en

Iniciali$acin #odas las comunicaciones en el bus 1< 9ire comienzan con una secuencia de un pulso de $eset y 0resencia! )l pulso de reset provee una orma limpia de iniciar las comunicaciones, ya que, con Ll se sincronizan todos los dispositivos esclavos presentes en el bus! 'n $eset es un pulso que ,enera el maestro al colocar la lnea de datos en estado l,ico ba4o por unos 6?2Ys, /i,ura 5, y lue,o de 1T a N2Ys los esclavos responder*n poniendo en ba4o la linea durante N2 a 262Ys

/i,ura K! Inicializacion de los datos

Comandos % funcin 'na vez que el microcontrolador recibe el pulso de presencia de los dispositivos esclavos, se puede enviar un comando de $%7! Bos comandos de $%7 son comunes a todos los dispositivos 1<9ire y se relacionan con la b.squeda, lectura y utilizacin de la direccin de N6 bits que identi ica a esclavos!

Ba #abla 1, muestra los comandos de $%7 utilizados con los dispositivos 1<9ire @2A!

R#,#R#)CI-+

@1A! 1ttpMPProbots< ar,entina!com!arPComunicacionEbusI2C!1tm , 11 noviembre del 2215


#abla 1! Codi,os

@2A! 1ttpMPPes!scribd!comPdocP26621F1?Pprotocolo <1<wireZdownload, 11 noviembre del 2215

&ransferencia de datos Ba lectura y escritura de datos en el bus 1<9ire se 1ace por medio de U:lotsV, la ,eneracin de estos es responsabilidad del maestro! Cuando el maestro lee in ormacin del bus, debe orzar la lnea de datos 1a estado ba4o durante al menos 1 Ys y esperar unos 1T Ys para entonces leer el estado de la misma! )l estado l,ico de la lnea en ese momento, estar* determinado por el dispositivo esclavo! 7uestra el proceso de lectura de un U:lotV tpico @2A

/i,ura ?! #rna erencia de datos

III'

C()CL*CI()#+

)n la comunicacin I^2 C todos pueden actuar como maestros que a comparacin de la comunicacin 1 wire solo existe un maestro que aria como servidos mientras que los dem*s son esclavos 'na de las caractersticas de la tecnolo,a 1< 9ire, es que cada dispositivo esclavo tiene una .nica e irrepetible identi icacin ,rabada

También podría gustarte