Post on 13-Apr-2018
transcript
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#SRF087/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