universidad católica boliviana “san pablo” ingeniería

43
Ing. Jhon Abel Ordoñez Ingali Universidad Católica Boliviana “San Pablo” Ingeniería Mecatrónica

Upload: others

Post on 13-Jul-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Universidad Católica Boliviana “San Pablo” Ingeniería

Ing. Jhon Abel Ordoñez Ingali

Universidad Católica Boliviana “San Pablo”

Ingeniería Mecatrónica

Page 2: Universidad Católica Boliviana “San Pablo” Ingeniería

El propósito básico es permitirle al MCU comunicarse con otrasunidades, como otros MCUs, periféricos o un PC. Laimplementación de estas interfaces puede tomar muchas formas,pero básicamente, las interfaces puden ser categorizadas segúnsus propiedades: Estos pueden ser serial o parallel,synchronous o asynchronous. Puede usar bus o point-to-pointcommunication, ser full dúplex o half dúplex y puede estarbasado en el principiomaster-slave.

Page 3: Universidad Católica Boliviana “San Pablo” Ingeniería

Una interfaz serial envía datos secuencialmente, un bit a la vez.Claramente, este método require solo una linea de datos, eseficiente en recursos. Sin embargo en rendimiento (throughput),es decir el número de bits de datos enviados por Segundo, eslento.

Una interfaz paralela, por otro lado usa varias lineas de datospara transferir mas de un bit a las vez. Anchos de palabracomumente usados son 4 y 8 bits. Estas interfaces puedenencontrarse en LCD displays.

Page 4: Universidad Católica Boliviana “San Pablo” Ingeniería

Una interfaz serial envía datos secuencialmente, un bit a la vez.Claramente, este método require solo una linea de datos, eseficiente en recursos. Sin embargo en rendimiento (throughput),es decir el número de bits de datos enviados por Segundo, eslento.

Una interfaz paralela, por otro lado usa varias lineas de datospara transferir mas de un bit a las vez. Anchos de palabracomumente usados son 4 y 8 bits. Estas interfaces puedenencontrarse en LCD displays.

Page 5: Universidad Católica Boliviana “San Pablo” Ingeniería

El sincronismo de comunicación se refiere al relacionamientoentre el clock receptor y clock transmisor. En un synchronousinterface, el clock receptor es vinculado al clock transmisor.Esto puede hacerse empleando una linea de clock adicional quemaneja las unidades de recepción y transmisión; o utilizando unformato de datos que permite al receptor reconstruir la señal dereloj. La ventaja de este método es que el receptor no necesitagenerar su propio clock y por to tanto menos susceptible aerrores de sincronización.

Page 6: Universidad Católica Boliviana “San Pablo” Ingeniería

En un Asynchronous interface, los clocks del receptor ytransmisor no son conectados. En cambio el receptor debeconocer el tiempo de transmisión por adelantado y debe fijar suclock de recepción a la misma frecuencia que la del transmisor.El receptor debe emplear oversampling para sincronizar altransmisor. La comunicación tambien requieren bit especiales destart y stop para permitir al receptor para reconocer el inicio deun bloque de datos. Asynchronous es por lo tanto mas tento quesynchronous

Page 7: Universidad Católica Boliviana “San Pablo” Ingeniería

En una topología bus, mas de dos dispositivos puden serconectados al medio de comunicación. Tales estructuras decomunicación son tambien conocidos como Multi-dropnetworks. Se require algún ordenamiento de direccionamientopara seleccionar un dispositivo en particular. Alternativamentelas conecciones point-to-point son diseñados solo paracomunicar 2 dispositivos y por lo tanto no se requiredireccionamiento.

Page 8: Universidad Católica Boliviana “San Pablo” Ingeniería

En la mayoría de casos, la comunicación de datos entre elcontrolador y sus periférico es bidireccional. Para coneccionespunto a punto y algunos buses, la pregunta es si dos dispositivospueden transmitir o no al mismo tiempo.

En una conexión full-duplex,ambos lados pueden transmitir almismo tiempo, obviamente esto requiere al menos 2 hilos, unopara cada nodo para evitar colisiones y permitir el maximorendimiento. En half duplex communication, solo un nodotransmite por vez. Esto ahorra en hilos ya que require un hilo encomunicaciones seriales.

Page 9: Universidad Católica Boliviana “San Pablo” Ingeniería

Otra importante característica es si hay un nodo que inicializa latransmisión o cualquier nodo pude iniciar una transmisión. Inmaster-slave, solo el maestro inicializa la transmisión. ELesclavo solo puede por el maestro para permitirles acceso almedio de comunicación. Naturalmente tal sistema requiere de untipo de arbitración para manejar el acceso concurrente para elmedio.

Page 10: Universidad Católica Boliviana “San Pablo” Ingeniería

En la capa física, es importante notar si la interfaz decomunicación es single-ended o diferencial. En single endedlos niveles de los voltajes de todos los hilos son respecto aground. En consecuencia el transmisor y receptor comparten elmismo ground, lo cual puede ser un problemas si los nodos estánmuy lejos. Adicionalmente a los largo del camino se puedencausar picos de voltaje y por lo tanto los niveles cambian

Page 11: Universidad Católica Boliviana “San Pablo” Ingeniería

En interfaces diferenciales, por otro lado usa 2 hilos paratransmitir una señal. Aquí la diferencia de voltaje entre los 2 hilosllevan la señal. Por supuesto, las conexiones diferencialesrequieren 2 hilos, pero no necesitan un groundcomún.Adicionalmente el ruido afectaría a ambos hilos, pero ladiferencia sería la misma. En consecuencia, las interfacesdiferenciales permiten transmisiones mas largas que single-ended.

Page 12: Universidad Católica Boliviana “San Pablo” Ingeniería

La Serial Commmunication Interface(SCI) provee una interfacede comunicación asíncrona(Universal Asynchronous ReceiverTransmitter,UART). El modulo UART utiliza 2 hilos, unotransmite(TXD) y otro recibe(RXD), para full o half dúplex.

Page 13: Universidad Católica Boliviana “San Pablo” Ingeniería

La figura muestra la estructura interna de un UART. Basicamente, elmódulo consiste de un registro de transmisión y recepción pararetener el dato. La transmisión y recepción en cada nodo esmanejado por un generador local de clock.

Page 14: Universidad Católica Boliviana “San Pablo” Ingeniería

UART no es un protocolo propiamente dicho, pero un modulo puedeser usado para comunicación serial asíncrona, por lo tanto UARTdentro de un microcontrolador la aplicación para controlar muchode su comportamiento. Los parámetros incluyen:

▪Numero de Data bits: Dependiendo de UART, el numero de databits puede ser escogido dentro de amplio rango, Atmega usa de 5a 9 bits.

Page 15: Universidad Católica Boliviana “San Pablo” Ingeniería

▪Parity bit: Uno puede seleccionar si quiere usar bit de paridad. Sise usa se debe especificar si par o impar. Si la paridad es par, elbit de paridad es 0 si el numero de 1s a lo largo del dato es par, enparidad impar es lo contrario.

▪ Stop bits: El usuario generalmente puede seleccionar si deberíahaber 1 o 2 bits.

▪Baud Rate: Puedes seleccionar el baud rate(velocidad detransmisión dado por bits por segundo). Los posibles baud rateestán en el rango de 9600 a 115200

Page 16: Universidad Católica Boliviana “San Pablo” Ingeniería

La nomenclatura usada para describir el dato de formato esD{E|O|N}S, donde D es el numero de data bits y S es elnumero de stop bits. E|O|N indica even parity, odd parity yno parity respectivamente. Por ejemplo para data format de 8bits de datos, paridad par y un bit de stop es identificadocomo 8E1. Note que no hay necesidad de especificar elnumero de bits de inicio, ya que siempre es 1.

Page 17: Universidad Católica Boliviana “San Pablo” Ingeniería

DATATRANSMISSION

Los datos son transmitidos usando la encodificación NonReturn to Zero(NRZ), eso es, 1 corresponde por ejemplo a maspositivo voltaje y 0 corresponde al mas negativo(positive logic)o viceversa (negative logic). Ya que la comunicación esasíncrona, los datos deben ser envuelto por un frame queconsiste en al menos 1 bit de inicio y 1 bit de stop

Page 18: Universidad Católica Boliviana “San Pablo” Ingeniería

DATATRANSMISSION

En el estado de incatividad, la línea es alta. Un frame comienzacon un start bit, el cual causa que la línea baje. Este cambio deflanco de las señales indica al receptor que una nuevatransmisión comenzó. Luego del start bit, los datos sontransmitidos , comenzando con el LSB. El numero de bits dedatos es configurable y debe ser configurado con el mismovalor al transmisor y receptor. Luego de los datos, puede estarseguido por bit de paridad. El frame finaliza con 1 o 2 bits destop. Los bits de stop corresponde a un estado alto.

Page 19: Universidad Católica Boliviana “San Pablo” Ingeniería

Synchronization and Error Recognition

Ya que la comunicación es asíncrona, los clock del transmisiory receptor son completamente independientes uno del otro.Con la selección del baud rate, el receptor conoce el bit rate,pero no conoce cueando el bit comienza y por lo tanto necesitasincronizar con el falling edge del start bit.

Para conseguir la sincronización inicial al transmisor , elreceptor usa oversampling , eso es que la línea RXD esmuestreada s veces por bit. Un número tipo de s es 16. Cuandoel receptor detecta el falling edge, esto asume que es el inicodel bit de start y comienza a contar las muestras

Page 20: Universidad Católica Boliviana “San Pablo” Ingeniería

Synchronization and Error Recognition

Idealmente, todos las s muestras del bit de inicio deberían ser cero.Sin embargo para ser resistente al ruido, UART solamente usaalgunas de las muestras para determinar el valor del bit. Porejemplo el Atmega usa S=16 y usa las muestras 8,9,10 y unamayoría determina el estado de la línea. Si dos o mas muestras sonaltas, el start bit es descartado como un pico de la línea, en otrocaso es reconocido como el inicio de la comunicación.

Page 21: Universidad Católica Boliviana “San Pablo” Ingeniería

Synchronization and Error Recognition

Todos los bits subsecuentes del paquete son nuevmantemuestreados s veces y usa la misma técnica para determinar elvalor. Los bits de datos son colocados dentro de un shift register delreceptor y que son generalmente copiados en un buffer register alfinal de la recepción. EL buffer register libera al shift register parala siguiente recepción de datos. La transmisión concluye con losbits de stop.

Existen algunos errores que pudiesen ocurrir : primero que todos,pueden haber sido error debido al ruido en los cables. Si elpaquete incluye un bit de paridad, single bit errors pueden serdetectados y anunciados al usuario. Los bits de datos son auncopiados en el buffer register, pero un parity error es colocado enel status register del UART

Page 22: Universidad Católica Boliviana “San Pablo” Ingeniería

Synchronization and Error Recognition

Secundariamente, puede ocurrir que los baud rates del transmisory receptor diverjan demasiado, asi que gradualmente se pierde lasincronización durante la transmisión. Esto puede detectarse en elbit de parada donde el UART espera leer leer un nivel alto. Si el bitde stop no fue reconocido se anuncia el frame error . Pero desdeluego pude existir muchas causas, como que el clock sea lento.

Finalmente aunque UART generalmente usa un buffer register paradar a la aplicación mas tiempo para leer el dato entrante, y asi unasegunda transmisión puede comenzar antes que los datos desdeque el primero fue procesado, pude ocurrir que una terceratransmisión comience antes que los datos del primer mensaje fueraleído. EN tal caso ocurre un data overrun y el dato en el shiftregister se pierde

Page 23: Universidad Católica Boliviana “San Pablo” Ingeniería

Baud Rate Generation

El baud rate es entregado de un sistema de reloj por medio de uncontador. Un baud rate register, es usado para generar un señal declock periódica. Para cambiar el baud rate será necesario unprescaler. En el receptor el mecanismo es el mismo, pero la señalde clock es tomada antes del prescaler. Asi el receptor muestrea sveces mas rápido que el bite rate.

No cualquier baud rate puede ser configurado, ya quedependiendo de la frecuencia del microcontrolador.

Page 24: Universidad Católica Boliviana “San Pablo” Ingeniería

Baud Rate Generation

La siguiente figura muestra un formato 3E1, usa las mustras 3,4,5por votación para s=6.

Page 25: Universidad Católica Boliviana “San Pablo” Ingeniería

RS232

UART por si mismo es solo una implementación de unprotocolo de comunicación serial asíncrona pero no defineningún característica física de la interfaz como los voltajes quese usan. En el microcontrolador, los bits son solo mapeados alcontrolador como 0 y 1. Con un adecuado dispositivoconversor de niveles lógicos, UART puede ser utilizado en uamplio rango de interfaces físicas. Uno de los mas comunes esel estándar RS232, el cual se encuentra en los PCs.

Page 26: Universidad Católica Boliviana “San Pablo” Ingeniería

RS232

RS232 es una conexión serial single ended destinado acomunicación punto a punto. Se define tipos de equipos decomunicación, especificaciones eléctricas, líneas de señal ytiempo. El standard RS232 provee 25 líneas, a pesar que lasPCs usan 9 de estas líneas(mejor conocidos como D-SUB9). Deestas 9 líneas solo 2(RXD Y TXD) son usadas por UART. Y un pinGND es necesario para ser single ended. El resto son líneas decontrol que son usadas con protocolos mas avanzados decomunicación

Page 27: Universidad Católica Boliviana “San Pablo” Ingeniería

RS232

RS232 define los voltajes de señal de 3-15V y deben resistir unmaximo de 25V. Las líneas de control usan positive logic y laslíneas de datos usan negative logic.

Ya que los MCUs no son capaces de manipular voltajes deRS232, se requiere un IC que convierta los niveles lógicos deGND y VCC a voltajes RS232. El IC mas usado es MAX232.

Page 28: Universidad Católica Boliviana “San Pablo” Ingeniería

RS422

Este estándar es diseñado también para comunicación punto apunto, sin embargo usa líneas diferenciales para latransmisión. Por lo tanto, no es necesario la línea común deGND. RS422 puede ser usado en vez de RS232 para extender elrango de transmisión de UART.Tambien es una mejor opciónen ambientes con ruido

Page 29: Universidad Católica Boliviana “San Pablo” Ingeniería

USART

El Universal Synchronous Asynchronous Receiver Transmitter(USART) extiende la funcionalidad de UART con un modulosíncrono. La interfaz USART posee por lo tando una terceralínea que lleva la señal de clock. La señal de clock es generadapor uno de los nodos y es usada tanto para trasmison yrecepción. En esta variación ya no es necesaria eloversampling. Para la modalidad asíncrona, el clock quedalibre y generalmente es usada para digital I/O.

Page 30: Universidad Católica Boliviana “San Pablo” Ingeniería

SPI Serial Peripheral Interface es una interfaz punto a puntosíncrona basado en el principio master-slave. Proveecomunicación full dúplex entre el maestro(usualmente el MCU)y uno o mas slaves(generalmente dispositivos periféricos),. Lainterfaz consiste de 4 líneas single ended :

▪MOSI:Master out, Slave in. Esta línea es usada por el maestropara transmitir datos al esclavo

▪MISO:Master in, Slave out. Esta línea es usada por el esclavopara transmitir datos al maestro

▪SCK: System Clock. Esta línea es usada por el master paratransmitir la señal de clock.

▪ -SS: Select Slave. Es usada por el maestro para seleccionar unesclavo

Page 31: Universidad Católica Boliviana “San Pablo” Ingeniería

Tanto el maestro como el esclavo tienen un shift registerinterno, el cual es operado por SCK. En cada pulso de clock, elMSB del registro del maestro es desplazado sobre la líneaMOSI y desplazada en el registro del esclavo como LSB. Luegode 8 ciclos de reloj, el maestro y el esclavo han intercambiadotodos los 8 bits en sus registros.

Page 32: Universidad Católica Boliviana “San Pablo” Ingeniería

El maestro debe explícitamente direccionar el esclavoseteando SS(activo en bajo) como low. Por lo tanto podemosconectar 2 esclavos al SPI, si dejamos a uno de ellos reacionara SS directamente mientras el otro primero niega la línea.

Si el master es preparado para usar hasta mas de sus I/Os,entonces el numero de esclavos puede ser extendido a 2n paran líneas de direccionamiento con la ayuda de un decoderexterno.

Page 33: Universidad Católica Boliviana “San Pablo” Ingeniería

IIC inter-IC es un bus síncrono que opera como master-slave.Usa 2 hilos single ended SCL(Serial Clock Line) y SDA (SerialData Line) para comunicación half dúplex. El protocolo ha sidodesarrollado por Philips y es ampliamente usado paracomunicación entre 1 o mas controladores y dispositivosperiféricos.

Las especificaciones de protocolo distingue 3 modos de velocidad:standard Mode engloba velocidad es hasta 100kbits/s, fast modeextiende el rango a 400 kbits/s y high speed incrementa latransmisión a 3,4Mbits/s . Debido a las propiedades del protocolo,dispositivos fast y high speed pueden ser mezclados condispositivos de velocidad mas baja.

Page 34: Universidad Católica Boliviana “San Pablo” Ingeniería

El protocolo incluye mecanismos de arbitración y asi permitela coexistencia de varios maestros. El rol de maestronormalmente cae en el MCU, con todos los periféricos comoesclavos. En un sistema con varios microcontroladores, unopuede escoger cuales serán esclavos o maestro. La únicacondición es que al menos hay un maestro en el sistema.

Una de las principales ventajas del IIC es su fácilextensibilidad. Nuevos dispositivos pueden ser añadidos albus solo conectándolos. No existe un limite especifico sobre elnumero de dispositivos conectados al bus mientras lacapacitancia del bus no supere 400pF.

Page 35: Universidad Católica Boliviana “San Pablo” Ingeniería

El bus IIC soporta direcciones de 7 y 10 bits. En 7 bitaddressing todos los dispositivos en el bus son idendificadospor direcciones de 7 bits, parte de los cuales( por ejemplo los4 bits mas altos) son codificados por el fabricante. Los bitsrestantes puden ser programados por el diseñador del board.Las direcciones 0000XXX2 y 1111XXX2 son reservados, dejando112 direcciones potenciales. Para incrementar el numero dedispositivos direccionables, el protocolo fue extendido a 10bits. Se tuvo cuidado sin embargo para mantener lacompatibilidad con 7 bits, asi los dispositivos de 7 bits puedanseguir siendo usado. Nosotros son centraremos endireccionamiento de 7 bits

Page 36: Universidad Católica Boliviana “San Pablo” Ingeniería

DATATRANSMISSION

IIC es una bus single ended, los niveles de voltaje son definidos conrespecto a un ground común. El nivel bajo esta entre -0,5 a 0,3Vdd.El nivel alto esta dentro 0,7Vdd a Vdd+0,5. Un nivel bajo es 0 lógicoy un nivel alto es 1 lógico.

Ya que los hilos están conectado a un resistores pull-up(en el rangode 1-10K), el nivel alto nunca es manejado. En cambio, el transmisorsimplemente coloca en 3 estados su salida en pull up externamente.El protocolo depende de este comportamiento, asi si se quiereprogramar el protocolo manualmente(este procedimiento se llamabit-banging), no se debe manejar el nivel alto.

Page 37: Universidad Católica Boliviana “San Pablo” Ingeniería

DATATRANSMISSION

Esta asimetría entre el nivel bajo y alto resulta en la línea teniendoun estado dominante y recesivo. Si un dispositivo tiene salida 0 y asicoloca la línea en 0, se mantiene bajo incluso si uno o masdispositivos tiene salida 1. Por lo tanto un 0 siempre gana aun 1(lowes dominante y high es recesivo). Este comportamiento es tambienllamado wired-AND (porque todos los transmisores deben ser 1para que la línea sea 1) y a veces wired-NOR. El paquete de IIC escomo sigue

Page 38: Universidad Católica Boliviana “San Pablo” Ingeniería

DATATRANSMISSION

En estado de inactividad SCL y SDA están en alto. La transmisión esinicializada por el maestro, quien activa la señal de reloj SCL ygenera la condición S en SDA, entonces el maestro coloca eladdress en el bus e indica si se trata de un acceso de lectura oacceso a escritura. Luego del bit R/W, el esclavo envía unacknowledge para indicar que ha reconocido su dirección.Dependiendo de la dirección del dato, tanto el maestro como elesclavo pueden transmitir una cantidad arbitraria de bytes dedatos. Par cada byte se necesita la señal de acknowledge(ACK)

Page 39: Universidad Católica Boliviana “San Pablo” Ingeniería

DATATRANSMISSION

Al final de la transmisión, el maestro puede generar una condiciónde STOP (P) para indicar que el bus está ahora libre o puedemantener el bus para seguir transmitiendo enviando repetidamentela condición de START (Sr), el cual finaliza la transmisión actual y almismo tiempo comienza una nueva.

Page 40: Universidad Católica Boliviana “San Pablo” Ingeniería

DATA TRANSMISSION-Start andrepeated start

La condición START (S) está caracterizadapor el falling edge en la línea SDA duranteel nivel alto de SCL. Es importante saberque solo las condiciones START y STOPcambian el nivel de SDA durante el estadoalto de SCL. Todo la transmisión de datosnormal incluyendo ACK cambian de nivelen el estado bajo de SCL. Repeated Start(Sr) es lo mismo que START

Page 41: Universidad Católica Boliviana “San Pablo” Ingeniería

DATATRANSMISSION-Address

Se envía primero el MSB. Al ser bits de dato normal, el nivel delSDA cambia durante la fase en bajo de SCL y es leído durante lafase alta

DATATRANSMISSION-Direction Control

Luego de los 7 bits de dirección, el maestro completa el byte conun octavo bit (R/W) que indica la dirección de la subsecuentetransmisión. Si R/W es alto, entonces el maestro quiere leer eldato del esclavo direccionado. Si el bit es low, el maestro intentaenviar datos al esclavo.

Cada transmisión en el bus es inicializado por el maestro, quienenvía la dirección del esclavo. Si R/W es alto, el escalvo envía suACK. Después de eso la dirección del dato cambia y el esclavocomienza la transmisión de datos.

Page 42: Universidad Católica Boliviana “San Pablo” Ingeniería

DATATRANSMISSION-Acknowlegdement

Después de 8 bits, el receptor envía un ACK(activo en bajo) paraindicar que ha recibido el dato. El ACK se activa en bajo sobre lalínea SDA. La única excepción es el ultimo ACK del maestro si elmaestro es el receptor: En este caso maestro no envía ACK, elSDA se mantiene en alto.

DATATRANSMISSION-Data

Los bits de datos son transmitidos como los otros bits , y cadabyte debe tener ACK. Los datos se transfieren primero por MSB.No existe limite de datos a ser transmitidos en un frame.

Page 43: Universidad Católica Boliviana “San Pablo” Ingeniería

DATATRANSMISSION-Stop

Es el reflejo de START, ahora SDA vade low a high.

La condición de STOP(P) estransmitido por el maestro si quiereneutralizar el bus. Tan pronto STOP hasido enviada, el bus esta en estado deocio y puede ser requerido porcualquier maestro.