You are on page 1of 72

Universidad Tcnica Federico Santa Mara

Departamento de Electrnica

Tcnicas de Diseo con Microcontrolador


MSP430

Memoria presentada por Jaime A. Ziga Camiruaga

Para optar al ttulo de

Ingeniero Civil Electrnico

Mencin Computadores

Profesor Gua: Sr. Leopoldo Silva B.

Diciembre de 2003
Resumen

En el trabajo se realiza una introduccin a la familia de


microcontroladores MSP430 de Texas Instruments, analizando sus
caractersticas ms avanzadas y su interconexin con diversos perifricos
disponibles en la tarjeta de desarrollo EasyWeb de Olimex, tales como
memoria eeprom serial, mdulo de cristal lquido alfanumrico, puerto serial
RS232, y controlador ethernet.

El trabajo est orientado a los sistemas digitales y principalmente a la


programacin de microcontroladores. Se da una visin prctica del diseo
con microcontroladores, para lo cual si bien existe abundante
documentacin disponible, sta se encuentra dispersa y en algunos casos es
demasiado extensa. Esto representa un problema cuando no se tiene
demasiado tiempo para comenzar a trabajar. Por ello es de gran ayuda contar
con una gua que sirva de introduccin al tema del diseo con
microcontrolador. Para concretar esta gua se trabaj en laboratorio con la
tarjeta de desarrollo apoyado por los manuales y hojas de caractersticas de
cada componente en particular, as como bsqueda de informacin en
Internet.

ii
ndice de contenido

Resumen............................................................................................... ii

ndice de contenido ............................................................................. iii

ndice de figuras ................................................................................... v

ndice de tablas .................................................................................. vii

Prefacio ............................................................................................. viii

Introduccin ........................................................................................ ix

Captulo 1 El microcontrolador MSP430 ............................................... 1

1.1 Introduccin ....................................................................................... 1

1.2 Mapa de memoria e interrupciones ..................................................... 2

1.3 Los puertos de entrada y salida digital ................................................ 4

1.4 El mdulo de reloj............................................................................... 6

1.5 El multiplicador por hardware ............................................................ 8

1.6 Modos de bajo consumo...................................................................... 9

1.7 Los temporizadores............................................................................. 9

1.7.1 El temporizador watchdog ............................................................ 9

1.7.2 Los Temporizadores A y B........................................................... 10

1.7.3 El comparador analgico y los conversores anlogo a digital ....... 14

Captulo 2 La tarjeta de desarrollo EasyWeb II .................................... 19

2.1 Descripcin del circuito .................................................................... 19

iii
Captulo 3 Introduccin a protocolos de comunicacin entre
dispositivos ........................................................................................ 29

3.1 El protocolo IC y la memoria EEPROM serial 24LC515..................... 30

3.2 Los dispositivos iButton de Dallas Semiconductors y el protocolo


propietario 1-Wire................................................................................... 36

3.3 Control de un mdulo de cristal lquido alfanumrico ....................... 42

3.4 Utilizacin del protocolo TCP/IP en sistemas embebidos ................... 47

3.4.1 El hardware para sistemas embebidos con conexin ethernet ..... 47

3.4.2 El software del microcontrolador................................................. 51

Conclusiones ...................................................................................... 59

Referencias......................................................................................... 60

Anexo ................................................................................................. 62

iv
ndice de figuras

Figura 1-1 Designacin de patillas del microcontrolador .............................. 5

Figura 1-2 Mdulo de reloj........................................................................... 7

Figura 1-3 Diagrama del multiplicador por hardware ................................... 8

Figura 1-4 Modos del temporizador A como temporizador/contador. ......... 11

Figura 1-5 Modos del temporizador B como temporizador/contador .......... 12

Figura 1-6 Salidas del temporizador A en modo contador continuo ........... 13

Figura 1-7 Efecto del filtro pasabajos en la salida ..................................... 14

Figura 1-8 Diagrama del comparador analgico ........................................ 15

Figura 1-9 Diagrama del conversor anlogo a digital ................................. 16

Figura 1-10 Tiempos de muestreo y conversin......................................... 17

Figura 2-1 Tarjeta de desarrollo ................................................................ 19

Figura 2-2 Esquema de conexiones del microcontrolador .......................... 20

Figura 2-3 Diagrama de fuente de alimentacin ........................................ 21

Figura 2-4 Conexin de pulsadores........................................................... 22

Figura 2-5 Esquema de optoacoplador ...................................................... 22

Figura 2-6 Conexin de optoacopladores................................................... 23

Figura 2-7 Conexin de rels .................................................................... 23

Figura 2-8 Conexin a la memoria Flash................................................... 24

Figura 2-9 Conexin del display de cristal lquido ..................................... 24

Figura 2-10 Conexin del puerto serial ..................................................... 25

Figura 2-11 Conexiones de cable serial ..................................................... 25

Figura 2-12 Esquema de conectores ......................................................... 26

Figura 2-13 Conexin del controlador ethernet ......................................... 27

v
Figura 2-14 Programador y emulador ....................................................... 28

Figura 2-15 Esquemtico del programador ............................................... 28

Figura 3-1 Comunicacin IC .................................................................... 31

Figura 3-2 Byte de control ........................................................................ 32

Figura 3-3 Direccionamiento de la memoria .............................................. 32

Figura 3-4 Escritura de un byte................................................................ 33

Figura 3-5 Escritura de una pgina de hasta 64 bytes .............................. 33

Figura 3-6 Diagrama de flujo de fin de escritura ....................................... 34

Figura 3-7 Lectura de posicin aleatoria ................................................... 35

Figura 3-8 Lectura de posiciones sucesivas............................................... 35

Figura 3-9 Lectura de direccin actual...................................................... 35

Figura 3-10 Esquema elctrico de iButton ................................................ 36

Figura 3-11 Apariencia de un dispositivo iButton...................................... 37

Figura 3-12 Pulso de reset y presencia...................................................... 38

Figura 3-13 Escritura en dispositivos iButton ........................................... 38

Figura 3-14 Lectura desde dispositivos iButton......................................... 39

Figura 3-15 Generacin de reset y estado de dispositivo............................ 39

Figura 3-16 Lectura de un bit desde dispositivo iButton ........................... 40

Figura 3-17 Escritura de un bit en dispositivo iButton.............................. 40

Figura 3-18 Modelo ISO/OSI versus modelo Internet ................................ 47

Figura 3-19 Diagrama esquemtico del CS8900A...................................... 49

Figura 3-20 Interconexin microcontrolador a controlador ethernet .......... 49

Figura 3-21 Captura de paquetes arp y echo............................................. 53

Figura 3-22 Transaccin http ................................................................... 54

Figura 3-23 Diagrama de programa de usuario usando DoNetworkStuff() . 57

vi
ndice de tablas

Tabla 1-1 Mapa de memoria del MPS430 ..................................................... 2

Tabla 1-2 Vector de interrupciones .............................................................. 4

Tabla 1-3 Modos del contador .................................................................... 11

Tabla 1-4 Modos de operacin del conversor anlogo a digital .................... 17

Tabla 3-1 Funcin de pines del mdulo de cristal lquido ........................... 42

Tabla 3-2 Comandos del mdulo de cristal lquido ..................................... 43

Tabla 3-3 Caracteres disponibles en el mdulo de cristal lquido ................ 46

vii
Prefacio

El presente trabajo se encuentra estructurado en tres captulos que


introducen los conceptos bsicos sobre el trabajo con el microcontrolador
MSP430 y la utilizacin de los perifricos disponibles en la tarjeta de
desarrollo Easyweb.

El primer captulo proporciona una visin general sobre los distintos


componentes del microcontrolador y de sus diversas capacidades.

El segundo captulo trata sobre el diseo de la tarjeta de desarrollo a


utilizar, describiendo el circuito y justificando la eleccin de los componentes
que lo constituyen. En este captulo slo se tratan aspectos de hardware por
lo que es casi independiente del primer captulo.

El tercer captulo contiene mltiples referencias a los dos captulos


anteriores por lo que se recomienda su lectura posterior a los dos primeros.
En l se describen tcnicas de comunicacin entre perifricos, bsicamente
los disponibles en la tarjeta de desarrollo, se describe tanto los
requerimientos de hardware como de software para su interconexin.

viii
Introduccin

Al disear sistemas basados en un microcontrolador habitualmente es


necesario interconectar diversos componentes, por lo que es necesario
conocer las tcnicas utilizadas, los protocolos y estndares utilizados por los
distintos fabricantes y por las instituciones que rigen a la industria. Adems
el conocer distintas tcnicas le da al diseador herramientas adicionales al
momento de definir su estrategia o enfrentarse con nuevos procedimientos
que aparezcan en el futuro, o que pertenezcan al rea de trabajo en que se
desarrolla.

La variedad de protocolos y tcnicas de comunicacin entre perifricos


se pueden dividir entre seriales y paralelos, a su vez los seriales se dividen en
sincrnicos y asincrnicos. La diferencia entre stos radica en la presencia o
no de una seal de reloj en las lneas de comunicacin. En el mbito de la
comunicacin entre circuitos integrados dentro de la misma placa de circuito
impreso o a muy corta distancia, algunos centmetros o metros, la mayor
cantidad de protocolos que se encuentran son seriales debido a la poca
cantidad de lneas de comunicacin que se requieren.

De igual forma es necesario que el diseador conozca las ltimas


tcnicas de trabajo con microcontroladores, como emuladores en lnea,
interfaces para seales analgicas, ahorro de energa en sistemas porttiles,
y otros.

Un buen representante de los microcontroladores modernos es la


familia de microcontroladores MSP430 de Texas Instruments. Estos
microcontroladores de 16 bits son dispositivos de muy bajo consumo de
energa (desde pocos A hasta algunos mA), dependiendo del modo de bajo
consumo que el diseador elija, adems cuentan con conversores anlogo a
digital y comparadores para seales analgicas. El trabajo con este
microcontrolador se facilita por su capacidad de utilizar un emulador en
lnea con una interfaz JTAG, esto permite descargar cdigo a su memoria
Flash, leer y escribir el estado de la memoria RAM y sus registros, y ejecutar
el cdigo paso a paso desde una interfaz grfica. El estndar JTAG de IEEE
se encuentra presente en cada vez ms dispositivos, por lo que resulta
conveniente conocerlo. Otra ventaja de este microcontrolador es que debido a
su amplia utilizacin existen variadas herramientas de software para trabajar
con l, algunas incluso de libre distribucin como el GNU C Compiler portado
a la arquitectura.

A medida que se expande el uso de Internet y de las redes de


computadores toma cada vez ms fuerza la idea de tener dispositivos
conectados a la red para controlarlos o monitorearlos en forma remota desde
cualquier lugar con acceso a Internet. Algo que puede parecer algo oscuro y
ix
complicado en un principio se logra comprender cuando se trabaja con los
protocolos involucrados, al mismo tiempo se logra experiencia en un campo
de rpido crecimiento. El hardware utilizado para ello es bastante simple si
se utiliza un microcontrolador moderno. Despus que el diseador ha
comprobado sus ideas, en un ambiente de desarrollo, puede implementar lo
aprendido en sus futuros proyectos, ya que el costo que involucra conectar
un dispositivo a la red es menor en comparacin al resto del sistema, al
mismo tiempo la capacidad de procesamiento del microcontrolador es
suficiente para manejar la conexin de red y preocuparse de las otras tareas
que requiera el sistema sin mayor penalizacin en el rendimiento.

Debido a que los circuitos integrados de cierta complejidad tienden a


venir en encapsulados de montaje superficial se dificulta trabajar con ellos
en etapas de prototipos. Por esta razn las tarjetas de desarrollo de propsito
general proporcionan al diseador una herramienta que ahorra un tiempo
considerable a la hora de desarrollar un sistema microcontrolado. Una vez
que el software se encuentra funcionando correctamente se puede proceder a
la fabricacin del hardware del prototipo para su depuracin final. Una vez
ms en esta etapa del trabajo los nuevos microcontroladores que permiten
programacin y depuracin una vez montados en el circuito final facilitan en
gran medida la actualizacin o correccin del software, proporcionando una
herramienta invaluable al programador.

x
Captulo 1
El microcontrolador MSP430

1.1 Introduccin

El MSP430 de Texas Instruments es un microcontrolador con un


conjunto reducido de instrucciones (RISC) de 16 bits diseado especialmente
para aplicaciones que requieran un muy bajo consumo de energa, tales
como dispositivos porttiles. Adems mezcla seales analgicas y digitales en
un solo circuito, lo que simplifica el diseo del hardware, y reduce el costo,
debido a que no es necesario instalar conversores anlogo a digital por
separado. Por el hecho de trabajar con palabras de 16 bits es especialmente
indicado para ser programado en lenguajes de alto nivel, por ejemplo C o C++
para sistemas embebidos, generando un cdigo compacto y de rpida
ejecucin.

La principal fuente de informacin acerca de este dispositivo son: la


gua del usuario del MSP430[1] y las hojas de datos del dispositivo en
particular, en este caso del MSP430F149[2]. Su arquitectura corresponde a
un modelo Von-Neumann en el que tanto la memoria RAM y ROM comparten
un solo mapa de memoria de hasta 64KB. Posee un sistema de reloj
particularmente flexible que posee 3 osciladores independientes, pensados
para ahorrar energa. Adems incorpora una serie de perifricos mapeados a
memoria, tales como: 3 temporizadores, 8 canales de conversores anlogo a
digital, dos puertos seriales sincrnicos o asincrnicos de comunicacin, un
mdulo de multiplicacin por hardware, un comparador de niveles
analgicos, un mdulo controlador de memoria Flash que permite que el
dispositivo se reprograme a si mismo, o guarde informacin en un espacio de
memoria no voltil.

A continuacin se detallarn los aspectos ms relevantes de este


microcontrolador, especficamente del dispositivo MSP430F149, ya que con l
se realizar el trabajo posterior. En adelante se har referencia a los nombres
de los registros como figuran en los archivos de definiciones del compilador
de C (ver anexo), todos los compiladores utilizan la misma definicin
entregada por Texas Instruments, de forma de obtener mayor compatibilidad
entre ellos; en lugar de la direccin que ocupan en memoria. Cabe recordar
que los registros de funciones especiales y generales son de 16 bits, y las
direcciones de acceso a perifricos pueden ser de 8 16 bits dependiendo del
perifrico en cuestin

1
1.2 Mapa de memoria e interrupciones

EL microcontrolador MSP430 cuenta con un direccionamiento de


memoria de 16 bits por lo que se encuentra limitado a 64 KB de memoria
total. El mapa se divide en RAM: registros de funciones especiales, acceso a
perifricos de 8 bits, de 16 bits y 2 KB de memoria de uso general, ROM:
memoria del cargador de software, y FLASH: memoria no voltil de
informacin de usuario, 60 KB de memoria de cdigo y el vector de
interrupciones:

Tabla 1-1 Mapa de memoria del MPS430


Tipo de memoria Uso Direccin
FLASH Tamao 60KB
Vector de interrupciones FFE0-FFFF
Cdigo 1100-FFFF
Memoria de informacin Tamao 256 bytes
1000-10FF
ROM Cargador de software Tamao 1KB
0C00-0FFF
RAM RAM de uso general Tamao 2KB
0200-09FF
Perifricos 16 bits 0100-01FF
Perifricos 8 bits 0010-00FF
Registros especiales 0000-000F

La grabacin en la memoria Flash se puede hacer por bits, bytes o


palabras. La diferencia entre el sector de cdigo y el sector de memoria de
informacin es que el primero se puede borrar en bloques de 512 bytes, en
tanto el segundo se puede borrar en bloques de 128 bytes (2 bloques en
total), lo que lo hace ms indicado para almacenar informacin de usuario,
pero ello no impide que se pueda utilizar la seccin de cdigo no utilizada
para almacenar informacin.

El cargador de software[3] es un programa precargado en el


microcontrolador que permite descargar cdigo a la memoria FLASH y/o
RAM mediante una conexin serial. Para utilizarlo se indica a la CPU que se
reinicie y comience la ejecucin en la direccin de memoria correspondiente
al cargador de software (Bootstrap Loader), esto se consigue aplicando una
secuencia especial en los pines RESET y TEST. A continuacin se utiliza el
puerto serial para acceder a la memoria, ya sea para escribir o leer su

2
contenido. La forma sugerida por Texas Instruments para realizar la
conexin al puerto serial de un computador es utilizar los pines DTR y RTS
del puerto para manejar los pines RESET y TEST del microcontrolador y
proporcionar la secuencia necesaria, mientras los pines RX y TX se utilizan
para la comunicacin. Por supuesto se deben conectar mediante un
cambiador de niveles para adaptar la interfaz RS232 a los niveles de tensin
que utiliza el microcontrolador. Los comandos estn descritos en la literatura
proporcionada por TEXAS[3].

Las interrupciones en el microcontrolador pueden ser de tres tipos, de


reset, enmascarables y no enmascarables. La diferencia entre estas ltimas
es que las enmascarables se pueden habilitar o deshabilitar individualmente
o mediante el flag de habilitacin general de interrupciones, en tanto las no
enmascarables slo se pueden habilitar o deshabilitar individualmente, el
flag de habilitacin general no afecta su comportamiento. El vector de
interrupciones del microcontrolador cuenta con 16 direcciones, algunas de
las cuales tienen mltiples fuentes de interrupcin, por ejemplo, cualquiera
de los 8 bits de los puertos 1 2 puede generar una interrupcin, la rutina
de atencin de interrupciones debe verificar el estado de los 8 flags del
registro de interrupciones del puerto para saber en cual pin se gener la
condicin de interrupcin.

En la Tabla 1-2 se puede ver el vector de interrupciones del


microcontrolador MSP430F149.

3
Tabla 1-2 Vector de interrupciones
Fuente de i nterupci on Fl ags afectado Ti po de interrupci n Di reccin Pri ori dad
Encendido WDT IFG Reset 0FFFEh 15, mayor
Reset externo KEYV
Watchdog
Memoria Flash
NMI NMIIFG (No)enmascarable 0FFFCh 14
Falla del oscilador OFIFG (No)enmascarable
Violacin de acceso a Flash ACCVIFG (No)enmascarable
T imer_B7 T BCCR0 CCIFG Enmascarable 0FFFAh 13
T imer_B7 T BCCR1 al 6 CCIFGs, Enmascarable 0FFF8h 12
T BIFG
Comparador_A CAIFG Enmascarable 0FFF6h 11
Watchdog timer WDT IFG Enmascarable 0FFF4h 10
USART 0 recepcin URXIFG0 Enmascarable 0FFF2h 9
USART 0 transmisin UT XIFG0 Enmascarable 0FFF0h 8
ADC12 ADC12IFG Enmascarable 0FFEEh 7
T imer_A3 T ACCR0 CCIFG Enmascarable 0FFECh 6
T imer_A3 T ACCR1 CCIFG, Enmascarable 0FFEAh 5
T ACCR2 CCIFG,
T AIFG
I/O puerto 1 P 1IFG.0 al P 1IFG.7 Enmascarable 0FFE8h 4
USART 1 recepcin URXIFG1 Enmascarable 0FFE6h 3
USART 1 transmisin UT XIFG1 Enmascarable 0FFE4h 2
I/O puerto 2 P 2IFG.0 al P 2IFG.7 Enmascarable 0FFE2h 1
0FFE0h 0, menor

1.3 Los puertos de entrada y salida digital

El microcontrolador MSP430F149 tiene 6 puertos de 8 bits de entrada


y salida, cuyos terminales se encuentran multiplexados con otros perifricos
como se puede ver en la Figura 1-1 [1].

4
Figura 1-1 Designacin de patillas del microcontrolador

Cada bit del puerto se puede manejar en forma independiente. El


control y acceso a los puertos se realiza mediante 4 registros por cada uno de
los n puertos, los que almacenan los datos de entrada (PnIN), de salida
(PnOUT), la direccin de entrada o salida (PnDIR) y la funcin como puerto
de entrada y salida o como el perifrico correspondiente (PnSEL). Cuando un
bit se ocupa para controlar un perifrico no se configura automticamente
como de entrada o salida, sino que es trabajo del programador seleccionar el
sentido correcto.

Los dos primeros puertos tienen capacidad de generar interrupciones


en cada uno de sus 8 bits. El registro de habilitacin de interrupciones (PnIE)
define que patilla del puerto genera interrupciones, el registro de seleccin de
canto (PnIES) selecciona la transicin que generar interrupciones (canto de
bajada o de subida), y el registro que contiene los flags de interrupcin
(PnIFG) indica qu patilla gener la interrupcin. Cada puerto lleva a un solo
vector de interrupciones por lo que la rutina de atencin de interrupciones
debe verificar el estado del registro PnIFG para saber qu patilla del
microcontrolador gener la interrupcin.

5
1.4 El mdulo de reloj

El mdulo de reloj del microcontrolador tiene tres fuentes de seal de


reloj para alimentar otras tres seales que sincronizan la CPU y los
perifricos

Las fuentes de reloj son las siguientes:

Un reloj que puede funcionar con cristales o resonadores


cermicos de baja frecuencia o de alta frecuencia (LFXTCLK). El
modo se selecciona por software.

Un reloj de alta frecuencia que ocupa cristales o resonadores


cermicos de alta frecuencia (XT2CLK).

Un oscilador interno de caractersticas RC controlado


digitalmente mediante registros de control (DCOCLK).

Con estas fuentes el mdulo de reloj genera las siguientes tres seales:

Reloj maestro (MCLK): que alimenta la CPU y el sistema y se


puede generar a partir de la seal de baja frecuencia, la de alta
frecuencia o el oscilador digital; que pueden dividirse por un
factor de 1, 2, 4 u 8.

Reloj de sub sistema (SMCLK): que alimenta a los perifricos


seleccionados por software. Se puede generar a partir de la seal
de baja frecuencia, la de alta frecuencia o el oscilador digital; que
pueden dividirse por un factor de 1, 2, 4 u 8.

Reloj auxiliar (ACLK): que alimenta a los perifricos


seleccionados por software. Se genera a partir de la seal de baja
frecuencia dividida por un factor de 1, 2, 4 u 8.

Esta flexibilidad en el sistema de reloj est especialmente indicada


para ahorrar energa, ya que se puede ocupar un cristal de baja frecuencia,
por ejemplo 32 KHz, para los perifricos, mientras la CPU se opera mediante
el oscilador interno a una frecuencia que puede ir de los 800 KHz a los 8
MHz, dependiendo de la configuracin y caractersticas del dispositivo en
particular. Adems para contrarrestar el efecto de corrimiento de frecuencia
del oscilador interno se puede corregir peridicamente con la seal ms
estable proveniente del oscilador de baja frecuencia controlado por cristal.

6
El siguiente es un esquema del mdulo generador de reloj [1]:

Figura 1-2 Mdulo de reloj

7
1.5 El multiplicador por hardware

Algunos miembros de la familia de microcontroladores MSP430


cuentan con un mdulo de multiplicacin de 16 bits incorporado en su
hardware, de forma que puede realizar multiplicaciones en tiempos que van
desde un ciclo de reloj, dependiendo de la forma de direccionamiento de los
parmetros. En particular el MSP430F149 cuenta con este perifrico.

Puede realizar 4 tipos de operaciones: multiplicaciones con signo


(MPYS), sin signo (MPY), multiplicaciones acumuladas con signo (MACS) y
multiplicaciones acumuladas sin signo (MAC). El modo se selecciona al
escribir el primer operando (OP1) en un registro distinto para cada modo, la
multiplicacin se ejecuta al escribir el segundo operando (OP2). Dependiendo
del modo de direccionamiento del segundo operando el resultado puede estar
disponible al siguiente ciclo de mquina. El resultado se obtiene en tres
registros de 16 bits, uno almacena los 16 bits ms bajos del resultado
(RESLO). Los otros dos almacenan informacin que depende del tipo de
operacin (RESHI y SUMEXT). El diagrama se muestra en la Figura 1-3 [1].

Figura 1-3 Diagrama del multiplicador por hardware

8
1.6 Modos de bajo consumo

La familia de microcontroladores MSP430 tiene 5 modos de operacin,


uno activo (AM), y 4 de bajo consumo (LPMn) que se seleccionan escribiendo
ciertos bits del registro de estado (SR). La diferencia entre cada uno de los
modos es la cantidad de perifricos que quedan apagados, y el tiempo que le
lleva al microcontrolador retomar su operacin normal, que de todas formas
no excede los 6 S.

En cuanto al consumo el modo 3 en el que se detiene la CPU pero se


mantiene en funcin un reloj de baja frecuencia para mantener un reloj de
tiempo real, el consumo es de alrededor de 2 A. En el modo 4, en que se
detiene toda actividad pero se mantiene el estado de la memoria RAM el
consumo es de tan slo 0,2 A.

Para obtener el mejor rendimiento en sistemas porttiles el


microcontrolador es llevado al modo 3 y mediante interrupciones generadas
por uno de los temporizadores se activa momentneamente la CPU para
realizar las operaciones del programa, luego se vuelve a llevar al modo de
bajo consumo.

1.7 Los temporizadores

Existen tres temporizadores disponibles en el microcontrolador


MSP430F149, uno que realiza la funcin de perro guardin (watchdog). Un
temporizador/contador que cuenta con 3 registros de captura o comparacin
y otro que cuenta con 7 registros de captura o comparacin. Ms detalles a
continuacin:

1.7.1 El temporizador watchdog

La principal funcin del temporizador de watchdog es reiniciar el


procesador despus de una falla en el software o al no producirse un evento
esperado, al completarse un perodo de tiempo determinado (timeout).

Es decir, el programador selecciona un tiempo adecuado y dentro del


programa reinicia peridicamente el temporizador, cuando el software se
bloquee por alguna razn el procesador ser reiniciado por el temporizador
de watchdog al trmino del ciclo actual del temporizador.
9
Todo programa para este microcontrolador debe comenzar
configurando o desactivando el temporizador de watchdog, ya que el
microcontrolador se reinicia con esta funcin activada de forma
predeterminada.

Si no se utiliza como temporizador de watchdog el temporizador se


puede utilizar para generar intervalos de tiempo, por ejemplo para generar
interrupciones.

El perodo del temporizador se fija seleccionando la fuente de reloj que


puede ser el reloj auxiliar (ACLK) o el reloj de sub sistemas (SMCLK) y el
factor de divisin que puede ser 62, 512, 8192 32768. Los valores son
configurados mediante el registro de control del temporizador de watchdog
(WDTCTL).

1.7.2 Los Temporizadores A y B

Estos son temporizadores o contadores con registros de captura o


comparacin con la capacidad de generar mltiples salidas o interrupciones.

La principal diferencia entre los temporizadores A y B es que el


segundo tiene la posibilidad de seleccionar la longitud del registro
temporizador entre 8, 10, 12 16 bits, en tanto el primero tiene un registro
de longitud fija de 16 bits. Adems el temporizador B tiene 7 registros de
captura o comparacin, en tanto el A tiene slo 3.

Por cada uno de los registros de captura o comparacin se tiene una


etapa de salida. Adems los registros de captura o comparacin del
temporizador B pasan por un buffer adicional y se pueden agrupar.

En modo de temporizador las fuentes del reloj pueden ser las seales
ACLK, SMCLK o una seal externa a travs de los pines TACLK (TBCLK) o
INCLK. A su vez la fuente de reloj elegida puede ser dividida por un factor de
2, 4 u 8 mediante los bits IDx del registro de control TACTL (TBCTL). Puede
funcionar en uno de cuatro modos, seleccionado con los bits MCx

10
Tabla 1-3 Modos del contador

MCx Modo Descripcin

00 Detenido El temporizador est detenido

01 Arriba El temporizador cuenta desde cero hasta


TACCR0(TBCL0)

10 Continuo Cuenta desde cero hasta 0xFFFF para el


temporizador A o los bits indicados por TBCNTLx y
parte desde 0 nuevamente

11 Arriba y abajo Cuenta desde cero hasta 0xFFFF para el


temporizador A o los bits indicados por TBCNTLx y
hacia cero nuevamente

Para mayor claridad se muestran las siguientes figuras del manual del
usuario del microcontrolador.

Figura 1-4 Modos del temporizador A como temporizador/contador


(a) Modo hacia arriba, (b) modo continuo, (c) modo hacia arriba y abajo.

11
Figura 1-5 Modos del temporizador B como temporizador/contador
(a) Modo hacia arriba, (b) modo continuo, (c) modo hacia arriba y abajo.

En cada una de las situaciones anteriores se tiene la posibilidad de


generar interrupciones (sern tratadas ms adelante).

El modo de captura se utiliza para capturar eventos temporales, como


medidas de velocidad o tiempo. Primero el usuario selecciona la seal interna
o externa que provocar la captura y el canto de subida, bajada o ambos.
Cuando se produce la condicin seleccionada el valor actual del contador
TAR (TBR) se copia al registro de captura programado (3 mdulos para el
temporizador A y 7 mdulos para el B), al mismo tiempo al flag de
interrupcin del mdulo correspondiente se le escribe el valor uno,
producindose una interrupcin si est habilitada.

El modo de comparacin se utiliza para generar seales de modulacin


de ancho de pulso (PWM) o para generar interrupciones a intervalos
especficos. Cuando el valor del contador TAR (TBR) llega a TACCRx
(TBCCRx) se escribe un uno en el flag de interrupcin del temporizador y se
produce la salida segn se halla programado. En este punto los dos
temporizadores difieren levemente debido al doble buffer del temporizador B.
En el temporizador B se puede elegir el momento en que se actualizan los

12
latch de comparacin con el valor de los registros de comparacin, que son
los que el usuario manipula. Adems se puede agrupar varios latch para su
actualizacin simultnea. El momento se refiere al valor del contador TBR.

Los bloques de salida se ocupan en el modo de comparacin para


generar 7 tipos de salidas seleccionables por el usuario a travs de los 3 bits
OUTMODx de los registros de configuracin de los mdulos de salida
TACCTLx (TBCCTLx).

Como ejemplo se muestra en la figura 1.6 el temporizador B en modo


contador continuo y las salidas que se obtienen en cada uno de los 7 modos,
EQUx son seales internas.

Figura 1-6 Salidas del temporizador B en modo contador continuo

Asociado a cada uno de los temporizadores existen dos vectores de


interrupcin, el primero corresponde a interrupciones generadas por el flag
CCIFG de TACCR0 (TBCCR0), el segundo corresponde a interrupciones
generadas por los restantes flags CCIFG de los registros TACCRx (TBCCRx).

13
Los flags se activan en modo de captura cuando un valor es capturado
al registro correspondiente y en modo de comparacin el flag responde
cuando el valor del contador alcanza el valor del registro correspondiente.

Asociado al segundo vector de interrupcin existe un registro, TAIV


(TBIV), que indica el mdulo de captura o comparacin que gener la
interrupcin, cada uno escribe un valor en el registro que puede utilizarse en
instrucciones de salto para llegar a la rutina correspondiente.

1.7.3 El comparador analgico y los conversores anlogo a digital

El microcontrolador contiene un comparador de voltaje analgico, cuyo


esquema se muestra en la Figura 1-8, obtenido del manual del usuario del
microcontrolador.

Las dos entradas son seleccionables por el usuario entre seales


externas o niveles generados internamente en el procesador de 0.25Vcc,
0.5Vcc o el voltaje de umbral de un transistor de aproximadamente 0,55 V.

Cuando el valor del voltaje en el terminal + es mayor al del terminal


la seal de salida CAOUT va a estado alto. La salida puede o no ser filtrada
con un filtro pasabajos RC interno para aminorar las oscilaciones que se
producen cuando las seales son muy parecidas. La seal de salida est
conectada al primer bloque de captura del temporizador A para realizar
mediciones de tiempo, adems puede generar interrupciones con el flag
CAIFG en los cantos de subida o bajada de la seal CAOUT. El efecto de la
utilizacin del filtro se puede ver en la Figura 1-7.

Figura 1-7 Efecto del filtro pasabajos en la salida

14
Figura 1-8 Diagrama del comparador analgico

Una de las caractersticas distintivas de la familia de


microcontroladores es la incorporacin de conversores anlogo a digital. El
MSP430F149 tiene un conversor de 12 bits con una tasa de muestreo de casi
200 mil muestras por segundo, el inicio de la conversin se puede realizar
por software o por seales provenientes de los temporizadores; el trmino de
la conversin puede generar interrupciones para alertar al procesador; la
referencia positiva se puede seleccionar entre una seal externa o interna fija
de 1.5 V 2.5 V; la referencia negativa se puede seleccionar entre una seal
externa o la tensin de tierra negativa.

El sistema tiene 8 canales configurables independientemente, adems


de 4 seales internas provenientes de un sensor de temperatura en el
procesador y los niveles de los voltajes de referencia. Tiene un buffer de 16
direcciones de memoria configurables para almacenar las muestras antes de
alertar al procesador. Tiene mltiples fuentes de interrupcin atendidas por
el mismo vector de interrupciones, pero diferenciables con el registro de
interrupcin que almacena un valor diferente para cada fuente. El diagrama
completo del mdulo conversor como aparece en el manual del usuario se
muestra en la Figura 1-9.

15
Figura 1-9 Diagrama del conversor anlogo a digital

El resultado de la conversin asume el valor de 0xFFF cuando la seal


de entrada (Vin) es igual o superior a VR+ y toma el valor de 0x000 cuando la
seal de entrada es igual o inferior a VR-. Para otros valores la frmula de
conversin es:

V in V R
N ADC = 4096
VR + VR

El reloj puede provenir de SMCLK, MCLK, ACLK, o de un reloj


generado internamente ADC12CLK que est en el rango de los 5 MHz,
cualquiera de las fuentes elegidas se puede dividir por un factor de 1 hasta 8.

16
La conversin se inicia en el canto de subida de la seal interna SHI,
que se selecciona entre: el bit ADC12SC controlado por software, o la etapa
de salida 1 del temporizador A, o la 0 o la 1 del temporizador B. Esta seal a
su vez controla la seal SAMPCON que sincroniza las etapas de muestreo y
retencin y la etapa de conversin que toma 13 ciclos del reloj ADC12CLK.
En la Figura 1-10 se ve un ciclo completo de muestreo y conversin.

Figura 1-10 Tiempos de muestreo y conversin

El conversor puede funcionar en uno de cuatro modos seleccionados


con los bits CONSEQx del registro de control ADC12CTL1, sus
caractersticas se resumen en la Tabla 1-4.

Tabla 1-4 Modos de operacin del conversor anlogo a digital

CONSEQx Modo Operacin

00 Un canal una Un canal se convierte una sola vez


conversin

01 Secuencia de Una secuencia de canales es


canales convertida una vez

10 Repetir un canal Un canal se convierte repetidas


veces

11 Repetir secuencia de Una secuencia de canales se repite


canales varias veces

17
Las 16 direcciones de memoria que almacenan los datos ADC12MEMx
se configuran con sus correspondientes 16 registros de control
ADC12MCTLx. Se puede configurar independientemente para cada una el
canal y la fuente para las referencias. Adems el bit EOS indica el fin de
secuencia cuando se selecciona una conversin secuencial. La conversin
comienza usando el registro de control seleccionado con los bits
CSTARTADDx del registro ADC12CTL1 y en caso de una conversin
secuencial contina con los registros de control restantes hasta encontrar el
bit EOS. Si no se utiliza una conversin secuencial el nico registro utilizado
es el indicado por CSTARTADDx.

El mdulo puede generar 18 condiciones de interrupcin: ADC12IFG0-


ADC12IFG15, que se activan cuando la correspondiente memoria es cargada
con un dato, ADC12OV activada cuando se sobrescribe una zona de
memoria, y ADC12TOV si se quiere iniciar una conversin antes del trmino
de la actual. Todas las interrupciones, si estn habilitadas, van al mismo
vector de interrupcin, la fuente especfica se distingue con el valor
almacenado en el registro ADC12IV, que puede utilizarse para saltar
rpidamente a la rutina de atencin que corresponda.

18
Captulo 2
La tarjeta de desarrollo EasyWeb II

Para el trabajo en el laboratorio se eligi la tarjeta de desarrollo


EasyWeb II fabricada por Olimex, ver Figura 2-1. Se escogi esta tarjeta
debido a la gran cantidad de perifricos incorporados en relacin al costo de
la misma. Otros fabricantes ofrecen tarjetas de similares caractersticas pero
a ms del doble del precio.

A grandes rasgos consiste de un microcontrolador MSP430F149, con


un cristal de 8 MHz, un controlador de red CS8900A de Cirrus Logic con los
componentes externos correspondientes, un cambiador de niveles RS232 con
su respectivo conector DB9 hembra, un display de cristal lquido
alfanumrico de 16x2 caracteres, cuatro pulsadores, cuatro entradas
optoacopladas, 2 salidas activadas por rel, un zumbador, una memoria
flash serial de 64 KB en la tarjeta, conector para dispositivos iButton de
Dallas Semiconductor, patilla de entrada del reloj del temporizador A
disponible en conector, conector para los conversores anlogo a digital del
microcontrolador, conector para los pines JTAG del microcontrolador.

Figura 2-1 Tarjeta de desarrollo

2.1 Descripcin del circuito

Los nombres de los buses de datos y su correspondiente patilla del


microcontrolador utilizados en la presente seccin se refieren al diagrama de
la Figura 2-2.
19
Figura 2-2 Esquema de conexiones del microcontrolador

La tarjeta se alimenta con una fuente de corriente continua de 12 V


que se conecta directamente a los rels y a los reguladores de voltaje de tres
terminales. Mediante un circuito LM317L se generan los 3,6 V que utiliza el
microcontrolador, la memoria serial, el cambiador de niveles RS232, los
optoacopladores y las resistencias de pull-up conectadas a los pulsadores.
Adems se generan 3,3 V, tambin con un circuito LM317 para el
controlador ethernet CS8900A. Con un regulador 78L05 se generan 5 V para
el display de cristal lquido. El esquemtico correspondiente a las fuentes de
tensin se muestra en la Figura 2-3.

20
Figura 2-3 Diagrama de fuente de alimentacin

Los cuatro pulsadores se conectan a los puertos de entrada y salida del


microcontrolador utilizando resistencias de pull up para mantener los niveles
lgicos estables [1] como se puede ver en la Figura 2-4.

21
Figura 2-4 Conexin de pulsadores

Debido a que el dispositivo acepta niveles de tensin de entrada hasta


el valor de VCC las entradas digitales se conectan al microcontrolador
mediante optoacopladores. Para ello se utiliza el circuito 4N37 de Fairchild
Semiconductor, ver Figura 2-5.

Figura 2-5 Esquema de optoacoplador

La entrada al optoacoplador se conecta mediante un led indicador y


una resistencia de limitacin de corriente de 330 , la hoja de caractersticas
del dispositivo indica 100 mA como nivel de corriente directa de forma segura
en el emisor [4], lo que indica que la tarjeta puede aceptar un nivel de
tensin de hasta 33 V de forma segura. El esquema se puede ver en Figura
2-6.

22
Figura 2-6 Conexin de optoacopladores

En la tarjeta se encuentran disponibles 2 salidas activadas con rel lo


que posibilita manejar cargas de hasta 10 A a 220 V. Como es usual se tiene
una conexin normalmente conectada y otra normalmente abierta. Para
activar los rels se utiliza un transistor a efecto de amplificar la corriente de
la salida del microcontrolador a un nivel suficiente para estimular los rels,
adems se cuenta con un led para indicar cuando el rel est activo, el
diagrama de conexin se muestra en la Figura 2-7

Figura 2-7 Conexin de rels

La memoria flash serial se conecta directamente a los pines del


microcontrolador. Debido a que este microcontrolador no cuenta con el
protocolo Inter Integrated Circuit (I2C), se debe programar por software y
utilizar pines de entrada y salida estndar para generar las seales
necesarias, que son una lnea de reloj (SCL) y otra de datos (SDA). Ver Figura
2-8.

23
Figura 2-8 Conexin a la memoria Flash

El mdulo de cristal lquido GDM1602K de Xiamen Ocular se conecta


directamente al microcontrolador por medio de un conector montado en la
placa de circuito. En este caso la comunicacin se realiza por medio de 6
pines. Cuatro de ellos llevan los datos de 8 bits, trasmitiendo los cuatro bits
altos del dato seguido de los 4 bits bajos, sincronizados mediante una seal
de control (E). El esquema se muestra en la Figura 2-9.

Figura 2-9 Conexin del display de cristal lquido

La comunicacin serial del microcontrolador con dispositivos que


siguen la norma RS232 se realiza con dos seales TX y RX conectadas
directamente a los pines del puerto serie universal 1 del microcontrolador,
los niveles de tensin se adaptan mediante el circuito integrado MAX3232
segn el esquema que se puede ver en la Figura 2-10. Utilizando
terminologa del protocolo RS232 la tarjeta est conectada como un Data
Communications Equipment (DCE), porque presenta un conector hembra y
el pin de transmisin es el 2 y el de recepcin es el 3.

24
Figura 2-10 Conexin del puerto serial

Para conectar a un PC se debe conectar un cable con un conector


hembra por un lado que se conecta al puerto serial del PC (Data
Communication Equipment, DCE), y un conector macho por el otro que se
conecta a la tarjeta. Las conexiones son del pin 2 de uno al pin 2 del otro y
del pin 3 de uno al pin 3 del otro, y el cable de tierra entre los pines 5 de
cada conector como se muestra en la Figura 2-11.

Figura 2-11 Conexiones de cable serial

En la tarjeta se encuentran disponibles dos conectores que permiten


acceso a las entradas de los conversores anlogo a digital del
microcontrolador. Adems se puede acceder a los pines de transmisin
serial, a los pines de comunicacin con la memoria flash, al pin de reset del
microcontrolador, al pin que lleva el reloj auxiliar generado por el mdulo de
reloj del microcontrolador en P2.0 y a los niveles de tensin generados por los
reguladores. Ver Figura 2-12

25
Figura 2-12 Esquema de conectores

El controlador ethernet CS8900A se conecta mediante un bus ISA


estndar, pero adems tiene la capacidad de utilizar un bus de datos de 8
bits, en el que se multiplexan los bytes altos y bajos de los datos de 16 bits
que ocupa el controlador. Esta caracterstica lo hace especialmente indicado
para utilizarse en sistemas embebidos, as se reduce el nmero de pines
dedicados a la interconexin a slo 14, que son: 8 para transmisin de datos,
4 para indicar la direccin de memoria para escritura o lectura (los restantes
16 se conectan directamente a tierra o VCC para configurar la direccin
base), y 2 para sealizacin de lectura y escritura. El controlador ethernet
maneja dos leds que indican enlace establecido y actividad en el enlace. La
conexin al medio ethernet se realiza mediante un transformador de
aislamiento y un conector RJ45 estndar. El diagrama se muestra en la
Figura 2-13.

26
Figura 2-13 Conexin del controlador ethernet

Por ltimo se encuentran en la placa de circuito un zumbador


conectado directamente a dos pines del puerto 4 del microcontrolador, la
frecuencia del sonido se puede controlar por software. Adems los cuatro
pines del puerto JTAG se encuentran en un conector para facilitar su
interconexin con la herramienta de interfaz hacia el puerto paralelo del PC.
Esta herramienta es relativamente sencilla, su principal propsito es de
buffer y aislacin para los pines que se ocupan en la comunicacin serial,
adems tiene la posibilidad de ocupar las seales no utilizadas del puerto
paralelo del PC para generar 3,3 V que pueden alimentar un circuito
mientras se programa o emula, en el caso particular de la tarjeta EasyWeb II
es la tarjeta la que alimenta al programador, ya que no se podra obtener
suficiente corriente desde el puerto paralelo para alimentar al programador y
a la tarjeta. En la Figura 2-14 se ve la apariencia de la herramienta de
programacin y en la Figura 2-15 su diagrama esquemtico.

27
Figura 2-14 Programador y emulador

Figura 2-15 Esquemtico del programador

28
Captulo 3
Introduccin a protocolos de comunicacin entre
dispositivos

En el presente captulo se pretende introducir algunas formas y


protocolos de comunicacin entre dispositivos utilizados en sistemas con
microcontrolador.

Debido a la falta de un estndar para interconectar circuitos


integrados dentro de la misma placa de circuito o a cortas distancias,
algunos fabricantes han elaborado sistemas propietarios, lo que ha generado
una multiplicidad de protocolos incompatibles entre s, entre los ms
ampliamente utilizados se encuentran: SPI (Serial Peripheral Interface) de
Motorola, Microwire de National Semiconductor [5] e Inter Integrated Circuit
(I2C) de Philips. Adems existen muchos otros protocolos para aplicaciones
especficas, por ejemplo en la industria automotriz se han desarrollado una
gran cantidad de protocolos para comunicar dispositivos, solo por nombrar
algunos: Controller Area Network (CAN), ISO11783, Local Interconnect
Network (LIN), Media Oriented Systems Transport (MOST).

La mayora de ellos comparte dos caractersticas bsicas, la de operar


con los mismos niveles de voltaje que los dispositivos que interconectan, es
decir, no se necesitan cambiadores de nivel; y ser sincrnicos, lo que permite
una comunicacin confiable a pesar de las diferencias que puedan
producirse en los relojes de cada dispositivo, as un corrimiento en
frecuencia no producir errores en la transmisin o recepcin, debido a que
ambos dispositivos estn sincronizados con una seal de reloj nica para la
comunicacin.

A continuacin se detallarn las diferencias, entre Microwire, SPI e IC,


comparando sus ventajas y desventajas segn la aplicacin

Microwire y SPI son muy parecidos [6], ambos consisten en 3


terminales que llevan datos seriales de entrada, de salida y seal de reloj,
debido a esto son full duplex por naturaleza. Los dispositivos que
interconectan deben compartir los mismos niveles de tierra y VCC. Son tiles
en ambientes en los que existe un dispositivo maestro (el que genera la seal
de reloj) y uno o varios esclavos. Debido a que el protocolo no incluye
direccionamiento de dispositivos el maestro debe habilitar al dispositivo al
que se quiere comunicar a la vez que deshabilita a los dems, esto representa
una gran desventaja cuando existe ms de un esclavo ya que aumenta la
cantidad de pines necesarios en el microcontrolador (maestro) necesarios
para la comunicacin. Una de las ventajas de estos protocolos es que son
sensibles al canto de la seal, lo que la hace un poco ms inmune al ruido

29
que si fuera activada por nivel. La velocidad de transmisin es uno de los
puntos fuertes de estos protocolos, en sucesivas revisiones de ellos se ha ido
subiendo la velocidad mxima hasta los 3 Mbits/s para Microwire y 10
Mbits/s en el caso de los ltimos dispositivos SPI [6].

3.1 El protocolo IC y la memoria EEPROM serial 24LC515

IC [7] es un bus serial, half duplex de 2 cables bidireccionales: datos


(Serial Data, SDA) y seal de reloj (Serial Clock, SCL); puede interconectar
uno o varios maestros (el dispositivo que comienza la comunicacin y genera
la seal de reloj) con uno o varios esclavos (que son direccionados por el
maestro).

El protocolo incluye un campo de direccionamiento de 7 10 bits


segn el modo que se utilice, lo que permite tener varios dispositivos
conectados al mismo bus. Incluye la posibilidad de que exista ms de un
maestro en el bus mediante deteccin de colisiones y control de acceso al
bus. La tasa de transmisin es de 100 Kbits/s en el modo estndar, de 400
Kbits/s en el modo rpido, y recientemente el modo de alta velocidad
aument la tasa mxima de transmisin a 3,4 Mbits/s, pero actualmente
existen pocos dispositivos que soporten esta velocidad.

La comunicacin comienza con las dos lneas (SDA y SCL) en estado


alto. Luego el maestro sealiza el comienzo de la comunicacin escribiendo
un cero en la lnea de datos mientras la seal de reloj sigue en estado alto.

Enseguida enva los 7 bits de direccin del dispositivo esclavo con el


que se quiere comunicar, el formato de transmisin comienza con el bit ms
significativo primero y se enva en grupos de ocho bits. El octavo bit del
primer octeto enviado le indica al esclavo si se debe preparar para recibir o
enviar informacin, un uno indica recepcin por parte del maestro.

A continuacin el esclavo debe responder con un bit de reconocimiento


(ACK), tras lo cual comienza la comunicacin, transmitiendo un byte a la vez
y con el bit de ACK, un cero, por parte del dispositivo que recibe la
informacin.

Al finalizar la comunicacin el maestro debe generar la condicin de


trmino, que consiste en una transicin de 0 a 1 de la seal SDA mientras la
seal SCL est en 1. Se recuerda que este protocolo es sensible al nivel de la
seal por lo que la informacin en SDA debe ser estable mientras SCL se
encuentra en estado alto, con la nica excepcin de las condiciones de inicio

30
y fin de transmisin. Un ejemplo completo de una transferencia se puede ver
en la Figura 3-1.

Figura 3-1 Comunicacin IC

El protocolo permite a un dispositivo esclavo interrumpir la


transmisin cuando no es lo suficientemente rpido para procesar la
informacin que est recibiendo, esto lo logra escribiendo un cero en la lnea
de reloj (SCL) despus de generar un ACK al transmisor. Al detectar esta
condicin el transmisor censa la lnea de reloj hasta que el receptor devuelve
la lnea al estado alto. Adems el maestro tiene permitido disminuir la
frecuencia del reloj para hacer ms lenta la comunicacin.

En el caso de los modos rpidos y de alta velocidad, que pueden


utilizar un campo de direccionamiento de 10 bits, esta condicin se indica
mediante un patrn especial en el primer octeto de la direccin, junto con el
bit de lectura o escritura; y en el segundo byte se enva el resto de la
direccin. Las direcciones de los dispositivos esclavos son asignadas por un
comit, y el protocolo es licenciado por Philips Semiconductors a los
fabricantes que quieran incorporarlo a sus productos.

En algunos casos un dispositivo puede tener una parte de la direccin


fija y otra programable, con el objetivo de tener varios dispositivos iguales
conectados al mismo bus. Este es el caso de la memoria serial 24LC515 de
Microchip [8] incorporada en la tarjeta de desarrollo EasyWeb II. Est
preparada para funcionar en modo rpido, es decir, con una frecuencia de
reloj mxima de 400 KHz y tiene dos pines especiales para indicar la
direccin del dispositivo, por lo que se puede tener hasta cuatro de ellas
conectadas al mismo bus, con un total de 64KB por cuatro, es decir 256 KB
en total. Ajustndose al estndar IC el primer byte tiene la estructura que se
puede ver en la Figura 3-2.

31
Figura 3-2 Byte de control

Comienza con la condicin de Start del protocolo seguido de la


direccin del dispositivo que en este caso consiste de los bits 1010, seguido
de un bit que indica el bloque de 32 KB (alto o bajo) al que se desea acceder,
seguido de dos bits que sirven para direccionar hasta cuatro memorias
conectadas al mismo bus, el byte concluye con el bit de lectura o escritura.

El dispositivo esclavo que se est direccionando debe reesponder con el


bit de ACK en el noveno ciclo de reloj. A continuacin el dispositivo maestro
enva dos bytes con los 15 bits de la direccin de memoria que se quiere
acceder, estos 15 bits ms el bit indicador de bloque permiten direccionar los
64 KB de la memoria. En caso de existir ms de una memoria en el mismo
bus los bits A0 y A1 correctamente conectados en las memorias expanden la
cantidad mxima direccionable hasta 256 KB. La secuencia completa de
direccionamiento se puede ver en la Figura 3-3.

Figura 3-3 Direccionamiento de la memoria

Despus de cada byte el dispositivo esclavo responde con ACK. En el


caso de una escritura en memoria (el bit de R/W en cero), el maestro enva el
dato a escribir, y el esclavo responde con ACK, ver Figura 3-4, si no se desea
32
escribir ms datos el maestro genera la condicin de STOP tras lo cual el
24LC515 comienza el ciclo de escritura en el arreglo; en caso de que se desee
escribir una secuencia de datos se envan hasta 64 bytes en forma
secuencial, los que son almacenados por la memoria en un buffer interno, al
recibir la condicin de STOP por parte del maestro, la memoria comienza el
ciclo de escritura de los bytes desde el buffer hacia el arreglo, ver Figura 3-5.

Figura 3-4 Escritura de un byte

Figura 3-5 Escritura de una pgina de hasta 64 bytes

Mientras el dispositivo est ocupado realizando una operacin de


escritura no responder con ACK a un direccionamiento, condicin que le
sirve al maestro para saber cuando el dispositivo est listo para otra
operacin, el diagrama de flujo del proceso necesario se muestra en la Figura
3-6.

33
Envo de comando de
escritura

Envo condicin de
STOP para comenzar
ciclo de escritura

Enviar byte de control


con R/W en cero

Se
recibe No
ACK?

Si

Siguiente operacin

Figura 3-6 Diagrama de flujo de fin de escritura

El procedimiento para efectuar una lectura en la memoria es similar a


la escritura, pero se distinguen dos situaciones:

Si se desea acceder a una direccin aleatoria dentro de la memoria se


debe enviar primero en una operacin de escritura (R/W en 0) la direccin
especfica, tras lo cual se puede ejecutar una operacin de lectura (R/W en 1)
y el dispositivo enva el dato requerido; en respuesta el maestro puede
generar un ACK si se quiere leer posiciones sucesivas de memoria (ver Figura
3-8), u omitir el ACK y enviar una condicin de STOP para concluir la
transmisin (ver Figura 3-7). El circuito integrado contiene un puntero que
almacena la ltima direccin de memoria accesada, por lo que se puede
realizar operaciones de lectura de la direccin actual sin enviar una nueva
direccin (ver Figura 3-9), esta caracterstica permite realizar una lectura
secuencial de todo el bloque (32 KB) en forma sucesiva.

34
Figura 3-7 Lectura de posicin aleatoria

Figura 3-8 Lectura de posiciones sucesivas

Figura 3-9 Lectura de direccin actual

El protocolo especifica que las seales SDA y SCL deben operarse con
conexiones de colector abierto para poder generar un wired AND en el bus,
en caso de que varios maestros quieran iniciar una comunicacin
simultneamente. El MSP430 es capaz de emular este tipo de conexin en
cualquiera de los pines de entrada y salida [9]. Esto se logra escribiendo un
cero en el registro de salida del puerto correspondiente y manejando el nivel
en la salida mediante el registro de direccin. Si se requiere un cero en la
salida, el pin se configura como salida, con lo que el valor de 0 escrito en el
registro se refleja en la salida. Si se quiere un 1 en la salida el pin se
configura como entrada, de esta forma la resistencia de pull up interna fija el
nivel en 1 de forma estable. La lectura se efecta siempre mediante el
registro de entrada del puerto.

35
3.2 Los dispositivos iButton de Dallas Semiconductors y el
protocolo propietario 1-Wire

Dallas Semiconductors desarroll una forma de interconectar


dispositivos, por ahora slo fabricados por ellos, pero con la posibilidad de
licenciar a otros fabricantes. La principal caracterstica de este protocolo es
que slo necesita 1 lnea de comunicacin, adems de una tierra comn, que
lleva los datos de la comunicacin y le provee energa al dispositivo. Adems
cada dispositivo tiene un cdigo de 64 bits propio, lo que permite tener varios
conectados al mismo bus y direccionarlos individualmente. Entre la gama de
dispositivos disponibles se encuentran conversores anlogo a digital,
sensores de temperatura, potencimetros digitales, memoria de variados
tipos, interruptores digitales, y otros. Con esto este protocolo no es ms que
otro protocolo de comunicacin serial ms, pero los circuitos pueden venir
tanto en encapsulados tpicos para circuito impreso como en la forma de
encapsulado iButton en que se obtienen caractersticas especiales.

Este encapsulado consiste en un montaje de dos piezas de acero


circulares de 16 mm de dimetro (ver Figura 3-11) que contienen en su
interior el circuito integrado y que adems de proteccin sirven para
comunicar la tierra y la lnea 1-Wire del dispositivo hacia el exterior como se
muestra en la Figura 3-10.

Figura 3-10 Esquema elctrico de iButton

36
Figura 3-11 Apariencia de un dispositivo iButton

Entre la gama de dispositivos disponibles existen algunos que slo


contienen su cdigo de identificacin, termmetros digitales, termmetros
con almacenamiento de las muestras tomadas a intervalos programables
(almacenadas en RAM y alimentada por batera de litio interna), memorias no
voltiles de variados tipos, relojes de tiempo real, memorias protegidas con
algoritmos de encriptacin de alto nivel, microcontroladores con mquina
virtual Java.

Adems existen puntas de prueba para conectarlos a


microcontroladores o computadores (con adaptadores para puerto serial,
paralelo o USB). La caracterstica de portabilidad de estos dispositivos y su
robusto encapsulado permite una gran variedad de aplicaciones, desde
control de acceso utilizando su cdigo de identificacin, almacenamiento de
informacin sensible, control in situ de la temperatura. Los que cuentan con
encriptacin de datos estn pensados para utilizarse como medio de pago
electrnico. El microcontrolador con mquina virtual Java ejecuta
aplicaciones principalmente orientadas a la encriptacin y certificacin (firma
electrnica, acreditacin de identidad en transacciones).

La interconexin con microcontroladores se realiza mediante una lnea


conectada a VCC a travs de una resistencia de Pull-up, en estado de reposo
el nivel de la lnea es alto, cuando el dispositivo iButton se pone en contacto
se carga un condensador interno, lo que le provee la energa necesaria para
su funcionamiento. Existen algunos que necesitan un nivel mayor de voltaje
para realizar algunas operaciones (conversin de temperatura, grabado de
memoria EEPROM), para ellos es necesario sacrificar una lnea de control en
el dispositivo maestro para manejar un transistor que conecta la lnea de
comunicacin directamente a VCC (saltando la resistencia de pull-up)
despus de dar la instruccin que requiere mayor voltaje.

El protocolo 1-Wire es half duplex y asincrnico por lo que las rutinas


para controlar los tiempos de duracin de cada pulso deben ser lo ms
precisas posibles y estar dentro de los rangos de cada dispositivo en
particular. La comunicacin comienza con el microcontrolador enviando un
pulso (cero) de reset en la lnea a lo que el dispositivo responde mediante un
37
pulso avisando su presencia como se muestra en la Figura 3-12, obtenida de
las hojas de caractersticas de un termmetro digital iButton.

Figura 3-12 Pulso de reset y presencia

La escritura se realiza en ranuras de tiempo que miden entre 60 y 120


S con un perodo mnimo de recuperacin de 1 S, el dispositivo iButton
muestrea la lnea aproximadamente en la mitad de la ranura. La escritura
comienza con el dispositivo maestro escribiendo un cero en la lnea, si se
quiere enviar un cero al dispositivo iButton se mantiene el cero durante todo
el perodo, si se quiere enviar un uno se sube la lnea despus 15 S. De las
hojas de caractersticas mencionadas se obtuvo la Figura 3-13.

Figura 3-13 Escritura en dispositivos iButton

La lectura tambin se realiza en ranuras de tiempo de entre 60 y 120


S con un perodo de recuperacin mnimo de 1 S. El dispositivo maestro
comienza enviando un pulso de 1 S y en seguida cede el control de la lnea
al dispositivo iButton, el que responde colocando un cero o un uno segn
corresponda, el maestro debe muestrear la lnea despus de 15 S del inicio
de la ranura de tiempo, en la figura 3-14 se muestra un esquema del
proceso.

38
Figura 3-14 Lectura desde dispositivos iButton

La mayor dificultad de implementar este protocolo en


microcontroladores radica en la generacin de los tiempos necesarios. Las
rutinas aunque simples dependern de factores como el reloj del
microcontrolador, posibles interrupciones, etc.

En forma general se puede resumir las operaciones en los siguientes


diagramas de flujo:

Escribir cero en la
lnea

Generar retardo de
480 S

Volver la lnea a
estado alto

Retardo de 70 S

Leer la lnea y determinar


presencia o ausencia de
dispositivo

Figura 3-15 Generacin de reset y estado de dispositivo

39
Escribir cero en la lnea para
comenzar la ranura de tiempo

Volver la lnea a estado alto

Retardo de 15 S desde el
comienzo de la ranura

Leer estado de la lnea, esperar


hasta el fin de la ranura de
tiempo y retornar estado

Figura 3-16 Lectura de un bit desde dispositivo iButton

Escribir cero en la lnea para


comenzar la ranura de tiempo

Se quiere Si Regresar la lnea a


escribir estado alto
un 1

No

Mantener en estado bajo

Mantener estado hasta el fin


de la ranura de tiempo

Regresar la lnea a estado alto

Figura 3-17 Escritura de un bit en dispositivo iButton

40
Cada dispositivo en particular tiene su repertorio de instrucciones, por
lo que la programacin de una aplicacin debe realizarse mediante sus hojas
de caractersticas. Existen algunas instrucciones compartidas como: leer el
cdigo identificatorio, o generar un CRC para comprobar los datos
transmitidos.

41
3.3 Control de un mdulo de cristal lquido alfanumrico

La comunicacin entre el microcontrolador y el display de cristal


lquido se realiza indirectamente a travs de un controlador montado en el
mdulo. Esta es una prctica habitual para liberar pines de conexin en el
microcontrolador y dejar el trabajo de desplegar la informacin y refrescar la
pantalla a un controlador especializado. En el caso del mdulo disponible en
la tarjeta de desarrollo el controlador es un KS0066U.

La interconexin se realiza mediante un bus paralelo que puede ser de


4 u 8 bit, ms 3 seales de control. Adems el mdulo ocupa otras tres
seales para llevar tierra, Vcc y el voltaje de control para el contraste. Sus
funciones se detallan en la Tabla 3-1.

Tabla 3-1 Funcin de pines del mdulo de cristal lquido

Nmero de pin Funcin

1 Tierra

2 VCC

3 Voltaje de control de contraste

4 R/S seleccin de instruccin o registro

5 R/W lectura escritura de registros

6 E sincronizacin en modo de 4 bits

7 - 14 D0-D7 4 u 8 bits de datos

En el caso de la tarjeta de desarrollo utilizada se utiliza la conexin con


un bus de 4 bits, se transmiten en forma serial los cuatro bits altos del dato
seguidos de los 4 bits bajos, sincronizados con la seal E, por simplicidad la
seal del mdulo R/W se encuentra cableada a tierra, de modo que slo es
posible realizar escrituras en los registros del controlador, la indicacin de si
el dato transmitido corresponde a un dato o una instruccin se expresa
mediante la seal R/S. As que la interconexin entre el microcontrolador y el
controlador del mdulo se realiza con 6 seales, conectadas directamente a
puertos del microcontrolador.

42
Los comandos se envan al controlador mediante una palabra de 8 bits,
las instrucciones disponibles (slo las que escriben registros en el
controlador) se resumen en la tabla

Tabla 3-2 Comandos del mdulo de cristal lquido


R/S R/W D7 D6 D5 D4 D3 D2 D1 D0 Descripcin

0 0 0 0 0 0 0 0 0 1 Borrar display

0 0 0 0 0 0 0 0 1 * Regresar cursor al comienzo

0 0 0 0 0 0 0 1 ID S Fijar direccin de movimiento cursor y


desplazar display

0 0 0 0 0 0 1 D C B Habilitar display, cursor e


intermitencia del cursor

0 0 0 0 0 1 SC RL * * Mover cursor/desplazar display

0 0 0 0 1 DL N F * * Fijar largo de la interfaz

0 0 0 1 A A A A A A Mover cursor en RAM

0 0 1 A A A A A A A Mover cursor a display

0 1 BF * * * * * * * Interrogar el bit de ocupado

1 0 D D D D D D D D Escribir carcter al display en


posicin actual

1 1 D D D D D D D D Leer carcter desde display en


posicin actual

La descripcin de cada bit es la siguiente:

Fijar direccin de movimiento del cursor:

I/D: Incrementa/decrementa la posicin del cursor en el display


despus de ecrbibir un byte

S: Desplaza el display despus de escribir un byte

Habilitar display/cursor:

D: Enciende el display

C: Enciende el cursor
43
B: Cursor parpadeante

Mover cursor, desplazar el display:

S/C: Activa desplazamiento del display

R/L: Direccin del desplazamiento (0 izquierda, 1 derecha)

Fijar largo de la interfaz:

DL: Fijar ancho del bus (0= 4 bits, 1=8 bits)

N: Nmero de lneas del display (0=1 lnea, 1=2 lneas)

F: Fuente para los caracteres (0=5x8, 1=5x11)

Interrogar flag de ocupado:

BF: En 1 cuando el controlador est ocupado

Mover el cursor en RAM/display:

A: Direccin de memoria

Leer, escribir dato al display:

D: Byte de informacin

44
Una de los problemas de no poder interrogar el flag de ocupado (porque
el pin de R/W est cableado a tierra) es que la operacin se torna ms lenta,
ya que hay que esperar un tiempo extra entre cada instruccin. De las hojas
de caractersticas del controlador se obtiene que las instrucciones de
borrado del display y regreso del cursor son las que ms tiempo toman: 1,5
mS; el resto de las instrucciones toman menos de 50 S. Pero el fabricante
de la tarjeta de desarrollo recomienda 100 mS y 10 mS respectivamente.

La utilizacin del mdulo de cristal lquido debe comenzar con la


inicializacin del controlador, en modo de 4 bits se requieren los siguientes
pasos:

1. Escribir 0x3 en los cuatro bits, enviar pulso a seal E y esperar.

2. Escribir 0x3 en los cuatro bits, enviar pulso a seal E y esperar.

3. Escribir 0x3 en los cuatro bits, enviar pulso a seal E y esperar.

4. Escribir 0x3 en los cuatro bits, enviar pulso a seal E

5. Escribir 0x2 en los cuatro bits para habilitar modo de 4 bits, enviar
pulso a seal E y esperar.

Despus se puede enviar las instrucciones pertinentes para activar y


borrar el display.

Los caracteres que se puede enviar al mdulo son un subconjunto del


cdigo ASCII, ver Tabla 3-3, adems se pueden definir smbolos nuevos
escribiendo en el rea de la memoria RAM correspondiente al generador de
caracteres.

45
Tabla 3-3 Caracteres disponibles en el mdulo de cristal lquido

46
3.4 Utilizacin del protocolo TCP/IP en sistemas embebidos

El poder utilizar un protocolo estndar como es TCP/IP, bien


documentado y con soporte en las ms diversas plataformas de hardware y
software, en sistemas embebidos manejados por microcontroladores cada vez
ms complejos y econmicos, abre un abanico de posibilidades para
cualquier diseador de sistemas electrnicos. Por ejemplo poder controlar o
monitorear un sistema desde cualquier navegador de Internet, desde
cualquier lugar en que se tenga acceso a Internet, o permitir que el mismo
sistema se comunique por e-mail para indicar algn suceso especial.

Los circuitos integrados disponibles permiten con un mnimo de


componentes y costo proveer esta capacidad a cualquier sistema, ya existen
microcontroladores que incorporan un puerto de red en el mismo circuito. Lo
que resta por definir al diseador es elegir entre utilizar un sistema operativo
de tiempo real para el microcontrolador y programar el protocolo y el driver
para el dispositivo de red o implementar las rutinas directamente en el
microcontrolador, la principal dificultad de esto radica en la generacin de
los eventos a intervalos de tiempo precisos y manejar varios procesos en
memoria.

Como referencia para el resto del captulo se muestra el modelo de


referencia Internet y su equivalencia con el modelo ISO/OSI.

Capa de aplicacin
Capa de presentacin
Capa de aplicacin
Capa de sesin
Capa de transporte
Capa de transporte
Capa de Internet
Capa de red
Capa de red
Capa de enlace de datos
Capa fsica

Figura 3-18 Modelo ISO/OSI versus modelo Internet

3.4.1 El hardware para sistemas embebidos con conexin ethernet

Haciendo referencia al modelo Internet se debe proveer la capa de red,


es decir, la capa fsica y de acceso al medio en el modelo ISO. Dentro de los
protocolos de esta capa se pueden mencionar PPP (poin to point protocol),
47
que se puede utilizar en comunicaciones telefnicas, utilizando un mdem
que se conecte al microcontrolador por medio de sus puertos seriales.

Otro protocolo ms interesante desde el punto de vista de la


conectividad es el protocolo ethernet. La forma ms fcil de conectar un
microcontrolador al medio es mediante un controlador dedicado que se
encargue de manejar la capa fsica y de acceso al medio, es decir que provea
la capa de red del modelo Internet.

De estos dispositivos los ms adecuados para interconectarse con un


microcontrolador, debido al nmero de pines requeridos para la
comunicacin son los que se comunican mediante un bus ISA estndar, y
especficamente aquellos que pueden utilizar un modo especial en que los
datos de 16 bits que utilizan se pueden transmitir mediante 8 bits
transmitiendo la mitad de la palabra en forma secuencial. Se puede
mencionar dos controladores ampliamente utilizados en sistemas con
microcontrolador: el RTL8139 de Realtek y el CS8900A de Cirrus Logic,
ambos comparten caractersticas similares en cuanto a conexiones,
requerimiento de componentes externos y registros internos de control,
diferencindose en el juego de instrucciones que proveen. Su interconexin al
medio ethernet se realiza mediante transformadores de aislacin y un
conector RJ45.

Tambin se puede agregar que existen mdulos que incorporan el


conector RJ45 con los transformadores de aislacin, por lo que el sistema
completo se puede reducir a slo 3 componentes principales: el
microcontrolador, el controlador ethernet y el mdulo RJ45, ms algunas
componentes externas. Debido a lo anterior el costo de agregar conectividad
a Internet a un sistema es bastante reducido.

En la tarjeta de desarrollo disponible se encuentra integrado un


controlador CS8900A de Cirrus Logic, su esquema se muestra en la Figura
3-19.

48
Figura 3-19 Diagrama esquemtico del CS8900A

Este circuito se encarga del acceso al medio ethernet en modo


10Base-T full duplex y se conecta directamente a los puertos de entrada y
salida digitales del microcontrolador. Adems contiene 4 KB de memoria
RAM que sirven de buffer para el almacenamiento temporal de paquetes
recibidos o enviados

La conexin al microcontrolador se realiza mediante 14 seales


conectadas a los puertos 3 y 5. Un esquema de la conexin se muestra en la
Figura 3-20.

8
D[7..0]
4
A[3..0]

MSP430F149 CS8900A
IOR

IOW

Figura 3-20 Interconexin microcontrolador a controlador ethernet

Una ventaja del CS8900A es que viene en versiones de 3 y 5 V por lo


que se puede utilizar sin problemas con la familia de microcontroladores
MSP430.
49
De las hojas de caractersticas del CS8900 se desprende que al utilizar
el dispositivo en modo de 8 bits, es decir, pensando en conectarlo con un
microcontrolador, las interrupciones no funcionan por lo que el software
debe interrogar a intervalos regulares al controlador para saber si hay
nuevos datos disponibles.

50
3.4.2 El software del microcontrolador

Dado que el controlador ethernet se encarga de la transmisin de los


paquetes en el medio, el microcontrolador debe formar las tramas ethernet,
es decir, incorporar la informacin sobre las direcciones fsicas de los
dispositivos, para ello debe implementar el protocolo de resolucin de
direcciones (ARP), debe programarse la comunicacin entre el
microcontrolador y el controlador a bajo nivel, adems se debe implementar
los protocolos de la capa de Internet y de transporte que requiera la
aplicacin.

Adems del protocolo Internet (IP) se podra implementar partes o


todas las funciones del protocolo de mensajes de Internet (ICMP) que
facilitaran la resolucin de problemas de conexin.

Acompaando a la tarjeta de desarrollo Easyweb se cuenta con el


cdigo fuente de un limitado stack de protocolos TCP/IP desarrollado por
Texas Instruments [11], que provee una interfaz de programacin para
desarrollar aplicaciones de red.

Especficamente los protocolos implementados son los siguientes:

Ethernet

El microcontrolador slo debe encargarse de formar las tramas


ethernet, es decir, incorporar en un paquete de hasta 1500 bytes informacin
sobre las direcciones fsicas de los controladores, generar cdigo de deteccin
de errores y empaquetar y desempaquetar informacin proveniente de la
capa de Internet. A su vez se comunica fsicamente con el controlador de red
por lo que debe programarse las funciones para configurar el controlador,
conocer la direccin a la que responde y los registros que se debe escribir. El
resto del protocolo ethernet: deteccin de colisin, acceso al medio, y otros
los realiza el controlador ethernet, as como la interfaz con el medio fsico.

Protocolo de resolucin de direcciones, ARP

El objetivo de este protocolo de la capa Internet es traducir direcciones


lgicas de Internet en direcciones fsicas de dispositivos de red conectados al
medio ethernet, para incorporar esta informacin en los paquetes ethernet.

51
Para ello el software utiliza dos mensajes: ARP Request para conocer la
direccin de otro dispositivo y ARP Reply para responder a los requerimientos
de otro dispositivo de red.

Protocolo Internet, IP

Este protocolo de la capa Internet se encarga de transmitir informacin


entre los protocolos de transporte y el de ethernet, contiene informacin
sobre la direccin lgica (direcciones IP) de los puntos de origen y destino,
adems se ocupa de fragmentar grandes flujos de datos en paquetes ms
pequeos que puedan ser transferidos por el protocolo ethernet. En este nivel
cada paquete es tratado como una unidad independiente, slo se asegura el
encabezado de informacin IP con un cdigo de verificacin de errores, pero
no se asegura que los datos sean transportados libres de errores o que
lleguen en el orden correcto si son fragmentados.

Protocolo de mensajes de control de Internet, ICMP

Este protocolo de capa Internet se utiliza para obtener informacin


acerca de la fiabilidad de la conexin, o de la causa de la falla de sta. En el
caso del stack TCP/IP disponible slo se responde al mensaje Echo Request,
al que se responde con un Echo Reply.

Protocolo de control de transmisin, TCP

Este es el nico protocolo de transporte disponible en el cdigo


disponible. Este protocolo provee un medio confiable de transmisin de
datos, se asegura la llegada de cada paquete y en el orden correcto, lo que se
logra asignando un nmero de secuencia a cada paquete y requiriendo que a
cada paquete transmitido el receptor responda con una seal de aceptacin.

Antes de comenzar la transmisin con este protocolo se debe realizar


una conexin entre el servidor el cliente mediante el intercambio de ciertos
paquetes en los que se acepta la conexin por parte del servidor y se
sincronizan los nmeros de secuencia de los paquetes que se envan
posteriormente.

52
Una buena herramienta para estudiar el comportamiento de los
dispositivos y protocolos de red son los analizadores de trfico. Los cuales
monitorean el trfico de red y descomponen los paquetes para obtener el
valor de los campos de los protocolos conocidos por ellos. Como ejemplo de
uno de ellos se muestra el resultado de una comunicacin entre un
computador con IP 192.168.0.1 y la tarjeta Easyweb con IP 192.168.0.30. En
este caso desde el computador se enva un paquete ARP Request, al que la
tarjeta contesta con ARP Reply, a continuacin se enva una peticin de
Echo, a la que la tarjeta contesta con un mensaje Echo Reply. En la Figura
3-21 se puede ver el resultado de la captura.

Figura 3-21 Captura de paquetes arp y echo

53
Del mismo modo se presentan las transacciones entre el mismo
computador y un servidor HTTP (Protocolo de transferencia de hipertexto)
implementado en la tarjeta de desarrollo, en la Figura 3-22.

Figura 3-22 Transaccin http

Interfaz de programacin de aplicaciones

El cdigo fuente que se suministra est contenido en dos archivos:


cs8900.c y tcpip.c. El primero se encarga de la comunicacin a travs de las
lneas fsicas de datos entre el microcontrolador y el controlador ethernet,
contiene funciones para inicializar el controlador (configurar modo de
transmisin y direccin MAC), escribir registros, copiar tramas ethernet
recibidas o para ser transmitidas entre la memoria principal y el buffer de
datos del controlador y otras. Estas funciones son utilizadas por el segundo
54
archivo, tcpip.c para encapsular ciertas tareas en funciones ms simples de
invocar, pero no son utilizadas directamente por el software del usuario.

El archivo tcpip.c provee la interfaz de programacin que el usuario


utiliza para crear sus aplicaciones, contiene las siguientes funciones:

void TCPLowLevelInit(void) Configura el controlador ethernet, as


como el Timer_A del microcontrolador para su uso por el stack TCP/IP.

void TCPPassiveOpen(void) Al invocar esta funcin se crea un socket


para recibir conexiones, en el puerto especificado por la variable
TCPLocalPort.

void TCPActiveOpen(void) Esta funcin intenta crear una conexin a


un servidor remoto con direccin indicada por el arreglo RemoteIP[4] y las
variables TCPLocalPort y TCPRemotePort.

void TCPClose(void) Cierra la conexin activa.

void TCPReleaseRxBuffer(void) Despus de leer el contenido del


buffer se invoca esta funcin para indicar al stack que puede sobrescribir
con nuevos datos.

void TCPTransmitTxBuffer(void) Esta funcin indica al stack que


enve la cantidad de datos indicados por la variable TCPTxDataCount desde
el buffer de transmisin, que previamente fue preparado por el software del
usuario.

Adems de estas 6 funciones, el estado del stack se almacena en un


registro de 8 bits que sirve para sincronizar el software del usuario con el
stack TCP/IP. El significado de los bits es el siguiente:

0. SOCK_ACTIVE Este flag permanece en uno mientras el stack est


intentando realizar una conexin, en este estado no se procesan nuevos
intentos por crear conexiones. Si el intento fracasa o se cierra la conexin el
flag vuelve a cero.

1. SOCK_CONNECTED Mientras este flag est en uno se puede transmitir


informacin a travs de la conexin establecida.

2. SOCK_DATA_AVAILABLE Con este flag el stack le indica al programa del


usuario que hay la cantidad de bytes indicados por la variable
TCPRxDataCount disponibles en el buffer de recepcin para ser ledos,
despus de leer su contenido el usuario debe informar al stack que puede
disponer del buffer para nuevos datos, invocando la funcin
TCPReleaseRxBuffer.

55
3. SOCK_TX_BUF_RELEASED Con este flag el stack le indica a la apliacin
del usuario que el buffer de transmisin est disponible para ser ocupado, y
que la variable TCPTxDataCount puede ser alterada.

4 7 SOCK_ERROR Estos cuatro bits se ocupan para informar situaciones


de error mientras se realiza una conexin o se transmiten datos. Se definen 6
cdigos de error:

SOCK_ERR_OK: Sin error.

SOCK_ERR_ARP_TIMEOUT: Sin respuesta a una peticin de


resolucin de direccin MAC.

SOCK_ERR_TCP_TIMEOUT: Sin respuesta a una peticin de


conexin a un servidor remoto.

SOCK_ERR_CONN_RESET: Conexin terminada por el servidor o


cliente remoto.

SOCK_ERR_REMOTE: Error en la transmisin de datos TCP.

SOCK_ERR_ETHERNET: Imposible transmitir datos TCP por el


medio ethernet, el controlador informa que no tiene espacio libre
para recibir informacin.

Dado que no existe un sistema operativo ejecutndose en el


procesador, el software del usuario debe impedir que existan condiciones de
bloqueo en el cdigo, ya que para el correcto funcionamiento del stack
TCP/IP debe llamarse a la funcin DoNetworkStuff() lo ms regular y
habitualmente como sea posible para que las distintas funciones del stack
puedan ser ejecutadas cuando sea necesario para procesar datos de entrada
o de salida o atender operaciones temporizadas. Un programa de usuario que
utilice el stack TCP/IP provisto debe tener la estructura mostrada en la
Figura 3-23.

56
DoNetworkStuff()

Abrir o cerrar conexin

Procesar datos de entrada o


de salida

Otras funciones de programa


de usuario

Terminar
No
programa?

Si

Finalizar

Figura 3-23 Diagrama de programa de usuario usando DoNetworkStuff()

Las principales limitaciones del stack TCP/IP proporcionado por Texas


Instruments se relacionan con la poca cantidad de memoria RAM del
procesador (2 KB), lo que impide tener ms que un buffer de entrada y dos de
salida, uno pequeo para informacin de paquetes (Ethernet, IP, ICMP, ARP)
y otro ms grande para transmisin de datos TCP. Esta limitacin hace
prohibitivo que el stack TCP/IP pueda manejar ms de una conexin
simultneamente o que pueda reordenar paquetes que lleguen en desorden.

La limitacin de una conexin simultnea se puede superar si el


software del usuario realiza y mantiene las conexiones el menor tiempo
57
posible, as para un sistema que quiera realizar otra conexin el retardo no
sera suficiente para producir una condicin de time out. Adems el sistema
est concebido para funcionar en sistemas embebidos, en los que las
aplicaciones usuales para un sistema de control o monitoreo a distancia no
requieren la transmisin de grandes volmenes de datos.

58
Conclusiones

La familia de microcontroladores MSP430 posee excelentes


caractersticas para ilustrar las tcnicas modernas de diseo con
microcontroladores. La facilidad para utilizar los perifricos incorporados al
programar en lenguaje C, que gracias a su arquitectura de 16 bits y la
calidad de los compiladores resulta en cdigo compacto y muy bien
optimizado. Todo lo anterior permite que el usuario domine o al menos
conozca las bases de las tcnicas en un corto perodo de tiempo, lo que en un
curso de introduccin a tcnicas de diseo resulta vital. De la misma forma
el contar con una tarjeta de desarrollo como la EasyWeb con una gran
cantidad de perifricos de variados tipos incorporados permite avanzar en la
enseanza sin perder tiempo en detalles de armado y con problemas de
conexionado. Al mismo tiempo esta tarjeta de desarrollo utiliza las ltimas
tcnicas de depuracin y programacin en lnea que cada vez incorporan ms
dispositivos. Todo lo anterior tiene por objeto motivar a los usuarios a
desarrollar aplicaciones cada vez ms complejas, por ejemplo incorporar
conectividad a redes ethernet y a Internet a un sistema basado en
microcontrolador. As el sistema formado por la tarjeta de desarrollo Easyweb
basada en microcontrolador de la familia MSP430, unido al software y
herramientas de programacin y depuracin se convierte en un medio
excelente para introducir conceptos de tcnicas avanzadas de diseo e
interconexin de perifricos.

59
Referencias

[1] MSP430x1xx Family Users Guide (SLAU049C), Revisin C,


Texas Instruments, 2003, disponible:
http://www.ti.com/msp430.

[2] Mixed Signal Microcontroller (SLAS272E), Revisin E, Texas


Instruments, 2003, disponible: http://www.ti.com/msp430.

[3] Features of the MSP430 Bootstrap Loader (SLAAA089A),


Revisin A, Texas Instruments, 2003, disponible:
http://www.ti.com/msp430.

[4] General Purpose 6-Pin Phototransistor Optocouplers, Fairchild


Semiconductor, 2003, disponible:
http://www.fairchildsemi.com/ds/4N/4N37-M.pdf.

[5] MICROWIRE Serial Interface, National Semiconductor, 1992,


disponible: http://www.national.com/an/AN/AN-452.pdf.

[6] Synchronous Microcontroller Communication Interfaces: SPI and


Microwire versus IC, Volker Soffel, Mayo 2003, disponible:
http://www.ucpros.com/work%20samples/Microcontroller%20C
ommunication%20Interfaces%201.htm.

[7] The IC-Bus Specification, Philips Semiconductors, 2000,


disponible:
http://www.semiconductors.philips.com/acrobat/literature/939
8/39340011.pdf

[8] 24xx515 5125K Bit IC CMOS Serial EEPROM, Microchip


Technology Inc., 2002, disponible:
http://www.microchip.com/download/lit/pline/memory/pnp/21
673b.pdf

[9] IC Interfacing of the MSP430 to a 24xx Series EEPROM


(SLAA115), Texas Instruments, 2000, disponible:
http://focus.ti.com/lit/an/slaa115/slaa115.pdf

[10] Using the Crystal 8900A in 8-Bit Mode (AN181), 2002, Cirrus
Logic, disponible:
http://www.cirrus.com/en/pubs/appNote/an181.pdf

60
[11] MSP430 Internet Connectivity (SLAA137), Texas Instruments,
2000, disponible:
http://focus.ti.com/lit/an/slaa137/slaa137.pdf

61
Anexo

Archivo de encabezado de lenguaje C conteniendo las direcciones de


memoria de los registros y posiciones de memoria de los perifricos del
microcontrolador MSP430F149 provisto por Texas Instruments

/********************************************************************
*
* Standard register and bit definitions for the Texas Instruments
* MSP430 microcontroller.
*
* This file supports assembler and C development for
* MSP430x14x devices.
*
* Texas Instruments, Version 1.7
*
********************************************************************/

/************************************************************
* STATUS REGISTER BITS
************************************************************/
#define C (0x0001)
#define Z (0x0002)
#define N (0x0004)
#define V (0x0100)
#define GIE (0x0008)
#define CPUOFF (0x0010)
#define OSCOFF (0x0020)
#define SCG0 (0x0040)
#define SCG1 (0x0080)

/* Low Power Modes coded with Bits 4-7 in SR */


#define LPM0 (CPUOFF)
#define LPM1 (SCG0+CPUOFF)
#define LPM2 (SCG1+CPUOFF)
#define LPM3 (SCG1+SCG0+CPUOFF)
#define LPM4 (SCG1+SCG0+OSCOFF+CPUOFF)

/************************************************************
* PERIPHERAL FILE MAP
************************************************************/
/************************************************************
* SPECIAL FUNCTION REGISTER ADDRESSES + CONTROL BITS
************************************************************/
#define IE1_ (0x0000) /* Interrupt Enable 1 */
sfrb IE1 = IE1_;
#define U0IE IE1 /* UART0 Interrupt Enable Register */
#define WDTIE (0x01)

62

You might also like