Você está na página 1de 54

BRUNO SILVRIO CRIPPA

IMPLEMENTAO DE UM
CONTROLADOR PID DIGITAL COM
ACESSO REMOTO UTILIZANDO
TECNOLOGIA ETHERNET





Trabalho de Concluso de Curso apresentado
Escola de Engenharia de So Carlos, da
Universidade de So Paulo



Curso de Engenharia Eltrica com nfase em
Eletrnica



ORIENTADOR: Prof. Dr. Evandro Luis Linhari Rodrigues






So Carlos
2009















AUTORIZO A REPRODUO E DIVULGAO TOTAL OU PARCIAL DESTE
TRABALHO, POR QUALQUER MEIO CONVENCIONAL OU ELETRNICO,
PARA FINS DE ESTUDO E PESQUISA, DESDE QUE CITADA A FONTE.














Ficha catalogrfica preparada pela Seo de Tratamento
da Informao do Servio de Biblioteca EESC/USP





C931i


















Crippa, Bruno Silvrio
Implementao de um controlador PID digital com acesso
remoto utilizando tecnologia ethernet / Bruno Silvrio
Crippa ; orientador: Evandro Lus Linhari Rodrigues. -
So Carlos, 2009.


Trabalho de Concluso de Curso (Graduao em Engenharia
Eltrica com nfase em Eletrnica) Escola de Engenharia
de So Carlos da Universidade de So Paulo, 2009.


1. Controle de Processos. 2. PID. 3. Ethernet. 4.
TCP/IP. 5. MSP430. 6. Redes de computadores. I. Ttulo.

































Aos meus amigos, verdadeiros irmos, que
sempre partilharam da alegria presente nos
momentos de comemorao, ofereceram-me
apoio para enfrentar ocasies difceis e
colaboraram para que eu pudesse alcanar
meus objetivos e sonhos.


Agradecimentos



Ao amigo Vincius Seraguci, pela valiosa ajuda durante o desenvolvimento do projeto.

Aos professores que me ajudaram a crescer como profissional e como ser humano durante
toda minha graduao.

Ao apoio de minha famlia durante todos esses anos.

Resumo


O presente trabalho aborda o desenvolvimento de um controlador PID digital,
projetado de forma a permitir que o usurio faa os ajustes dos parmetros do controlador,
possibilitando assim o controle de um sistema dinmico genrico. Em paralelo ao projeto do
controlador foi desenvolvido um sistema de telemetria, de forma que o usurio possa
acessar o dispositivo remotamente. Esse sistema consiste da implementao de uma pilha
TCP/IP, utilizando Ethernet como protocolo da camada 2 do modelo OSI, de forma que o
dispositivo possa ser acessado atravs de uma rede de computadores, tornando possvel
inclusive o acesso ao mesmo atravs da Internet. Como plataforma para o projeto foi
utilizada a placa de desenvolvimento Easyweb2 da Olimex. Esta plataforma de
desenvolvimento conta com um microcontrolador MSP430F149 e com um controlador
Ethernet. A plataforma de desenvolvimento tambm disponibiliza outras funcionalidades
teis ao projeto, como memrias externas e dispositivos utilizados para realizar a interface
com o usurio.

Palavras-Chave: Controle de processos; PID; Ethernet; TCP/IP; MSP430; Redes de
computadores.


Abstract


This work discusses the development of a digital PID controller, designed to allow
the user to adjust the controller parameters, therefore enabling the control of a generic
dynamic system. Parallel to the controller design it was developed a telemetry system, so the
user can remotely access the device. This system consists of a TCP/IP stack, using Ethernet
as the protocol of the OSI model layer 2, so the device can be accessed through a computer
network, also enabling Internet access. The Olimex Easyweb2 development board was used
as a development platform for the project. This development board has a MSP430F149
microcontroller and an Ethernet controller. The development platform also offers others
useful functionalities to the project, as external memories and devices used as user interface.

Keywords: Process control; PID; Ethernet; TCP/IP; MSP430; Computer Networks.

Lista de Figuras



Figura 1 Resposta de um sistema para vrios valores de P
B
............................................ 18
Figura 2 Extrapolao do erro pela ao derivativa .......................................................... 19
Figura 3 Camadas do Modelo ISO OSI ............................................................................. 21
Figura 4 Camadas do Modelo TCP/IP ............................................................................... 23
Figura 5 Formato do frame Ethernet: (a) DIX, (b) 802.3 .................................................... 24
Figura 6 Funcionamento do CSMA/CD ............................................................................. 25
Figura 7 Plataforma de desenvolvimento MSP430-Easyweb2 .......................................... 27
Figura 8 - Arquitetura do MSP430F149................................................................................ 28
Figura 9 - Pinagem do MSP430F149 ................................................................................... 29
Figura 10 Ambiente de desenvolvimento IAR ................................................................... 30
Figura 11 Conexo entre o MSP430 e o controlador CS8900 ........................................... 31
Figura 12 Conversor digital-analgico ............................................................................... 34
Figura 13 Layout da pgina web ....................................................................................... 39
Figura 14 - Comunicao I
2
C ............................................................................................... 40
Figura 15 - Formato dos dados para gravao de um byte no 24LC515 .............................. 40
Figura 16 Display LCD exibindo o valor da varivel de processo ...................................... 41
Figura 17 Funcionamento da interface com o usurio ....................................................... 42
Figura 18 Circuito RC utilizado nos testes do controlador ................................................. 45
Figura 19 - Sistema dinmico utilizado nos testes................................................................ 45
Figura 20 Sada do controlador aps reajuste do set point ............................................... 46

Lista de Tabelas



Tabela 1 Principais mtodos do HTTP .............................................................................. 26
Tabela 2 Mdulos do software de comunicao ............................................................... 35
Tabela 3 Lista de APIs da pilha TCP/IP ............................................................................ 37


Lista de Abreviaes e Siglas


ARP Adress Resolution Protocol
ARPANET Advanced Research Projects Agency Network
ASCII American Standard Code for Information Interchange
API Application Programming Interface
CSMA/CD Carrier Sense Multiple Access with Collision Detection
CRC Cyclic Redundancy Check
EEPROM Electrically-Erasable Programmable Read-Only Memory
HTML Hypertext Markup Language
HTTP Hypertext Transfer Protocol
IEEE Institute of Electrical and Electronics Engineers
I
2
C Inter Integrated Circuit
IHM Interface Homem-Mquina
ISO International Standards Organization
IETF Internet Engineering Task Force
IP Internet Protocol
JTAG Joint Test Action Group
LCD Liquid Crystal Display
LAN Local Area Network
MAC Media Access Control
OSI Open Systems Interconnection
PoE Power over Ethernet
PV Process Variable
PWM Pulse Width Modulation
QoS Quality of Service
RAM Random Access Memory
RISC Reduced Instruction Set Computer
RFC Request for Comments
SSH Secure Shell
SP Set Point
SMTP Simple Mail Transfer Protocol
TCP Transmition Control Protocol
URI Uniform Resource Identifier
UDP User Datagram Protocol
Sumrio


1 Introduo ................................................................................................................... 15
1.1 Objetivos................................................................................................................ 15
1.2 Organizao .......................................................................................................... 16
2 Embasamento Terico ............................................................................................... 17
2.1 Controladores PID ................................................................................................. 17
2.1.1 Controlador Proporcional (P) .......................................................................... 17
2.1.2 Controlador Proporcional-Integral (PI) ............................................................ 18
2.1.3 Controlador Proporcional-Derivativo (PD) ....................................................... 19
2.2 Redes Ethernet e o Modelo TCP/IP ....................................................................... 20
2.2.1 Modelo de referncia OSI ............................................................................... 20
2.2.2 Modelo de referncia TCP/IP .......................................................................... 22
2.2.3 Ethernet .......................................................................................................... 24
2.2.4 Protocolo de Transferncia de Hipertexto (HTTP) .......................................... 26
3 Material e Mtodo ....................................................................................................... 27
3.1 Plataforma de desenvolvimento ............................................................................. 27
3.1.1 Controlador Ethernet CS8900 ......................................................................... 28
3.2 MSP430F149 ......................................................................................................... 28
3.3 Ambiente de desenvolvimento ............................................................................... 30
3.4 Interface entre o MSP430F149 e o controlador Ethernet ....................................... 31
3.5 Entrada e sada analgicas.................................................................................... 32
3.5.1 Entrada do controlador ................................................................................... 32
3.5.2 Sada do controlador ...................................................................................... 33
3.6 Descrio Geral do Software ................................................................................. 34
3.7 Pilha TCP/IP e servidor HTTP ............................................................................... 35
3.7.1 Mdulo Ethernet ............................................................................................. 35
3.7.2 Pilha TCP/IP ................................................................................................... 36
3.7.3 Camada de aplicao ..................................................................................... 37
3.8 Memria EEPROM externa e protocolo I
2
C ........................................................... 39
3.9 Interface com o usurio ......................................................................................... 40

3.10 Controlador PID digital ........................................................................................... 43
4 Resultados .................................................................................................................. 45
5 Concluso ................................................................................................................... 49
Referncias Bibliogrficas ................................................................................................ 51
Apndice A Algoritmo do mdulo Ethernet .................................................................. 53
Apndice B Algoritmo da funo DoNetworkStuff() ..................................................... 54
15

1 Introduo


No ambiente industrial, onde necessria a implementao de um controle
automtico dos processos de produo, tornou-se popular a utilizao de controladores que
combinam a ao proporcional, a ao integral e a ao derivativa. O dispositivo que
combina essas caractersticas chamado de controlador PID. Esses controladores so
muitas vezes projetados para permitir sua aplicao no controle de um sistema dinmico
genrico, utilizando como sinais de entrada e de sada sinais padronizados de corrente
eltrica, tenso eltrica ou presso. Esses sinais podem ser analgicos, como um sinal de 4
a 20mA, ou digitais, como ocorre em equipamentos que utilizam um protocolo de redes
industriais (Modbus, Fieldbus Fondation, entre outros).
A fim de permitir o acesso aos sistemas de controle, permitindo monitorar e, se
possvel, modificar a varivel de processo (PV), a varivel manipulada (MV) e o set-point
(SP), foram desenvolvidos sistemas de telemetria. Esses sistemas baseiam-se no envio de
dados distncia, utilizando mdias como telefone, redes de computadores, fibras pticas e
comunicao wireless. O sistema apresentado utiliza-se do padro Ethernet, padronizado
pela norma IEEE (Institute of Electrical and Electronics Engineers) 802.3. O padro Ethernet
uma tecnologia de interconexo para redes locais, sendo altamente utilizado na camada
de enlace do protocolo da Internet. Sistemas de telemetria baseados em Ethernet tm como
vantagem a possibilidade de acesso s variveis de processo de qualquer lugar do globo,
bastando uma conexo Internet.
Neste trabalho sero apresentados os conceitos gerais acerca destas
tecnologias, alm do desenvolvimento prtico de um controlador PID digital com
acessibilidade atravs de uma rede Ethernet.


1.1 Objetivos

Este trabalho tem por objetivo o projeto de um sistema digital, agregando um
conjunto de elementos distintos constantes da grade do curso de Engenharia Eltrica em um
nico desenvolvimento.
Espera-se por objetivo final obter um controlador PID, que realiza a amostragem
e discretizao da varivel controlada atravs de um conversor analgico-digital, efetua os
clculos de um algoritmo de controle PID discreto e por fim retorna a ao de controle ao
processo controlado atravs de um conversor digital-analgico. Paralelamente a isso o
sistema dever implementar uma pilha TCP/IP (Transmition Control Protocol e Internet
16

Protocol), com um servidor HTTP (Hypertext Transfer Protocol) embarcado, possibilitando
ao usurio a visualizao da varivel de processo em uma pgina web.


1.2 Organizao

O presente trabalho est organizado da seguinte forma:

- O Captulo 2 apresenta uma explanao sucinta dos conceitos tericos necessrios para
o entendimento deste trabalho;
- O Captulo 3 contm a descrio dos materiais utilizados no desenvolvimento do projeto,
assim como da metodologia adotada durante o projeto;
- O Captulo 4 apresenta os resultados de testes realizados;
- O Captulo 5 apresenta as concluses relativas ao trabalho realizado neste projeto.
17

2 Embasamento Terico


2.1 Controladores PID

Uma forma de controlador amplamente utilizada no controle de processos
dinmicos em ambientes industriais o controlador de trs termos, ou controlador PID.
Segundo Dorf (2001) temos que um controlador desse tipo caracterizado por uma funo
de transferncia do tipo:
s K
s
K
K s G
D
I
P C
+ + = ) (
Onde K
P
a constante proporcional, K
I
a constante integral e K
D
a constante
derivativa. Assim temos um termo da funo de transferncia para cada uma das trs aes
do controlador.
A equao para a sada do controlador no domnio do tempo dada por:
t
t e
K t e K t e K t u
D I P
c
c
+ + =
}
) (
) ( ) ( ) (
Na literatura tambm comum encontrar referncia s constantes que
multiplicam a ao integral e a derivativa atravs de uma constante de tempo. Temos assim
os tempos T
I
e T
D
que so dados por:
I
P
I
K
K
T = e
P
D
D
K
K
T =
Dependendo do processo a ser controlado, pode no ser necessria a utilizao
de todos os trs termos do controlador. Neste caso obtm-se um dos trs tipos de
controladores a seguir.


2.1.1 Controlador Proporcional (P)

Muitos processos simples podem ser controlados com o uso da ao
proporcional apenas. Isto o equivalente a anular as aes integral e derivativa no
controlador PID. Assim temos:
) ( ) ( t e K t u
P
=
18

Em muitos controladores industriais especifica-se o valor percentual da banda
proporcional, ao invs de especificar o valor de K
P
. A banda proporcional definida para o
valor de e(t) tal que o valor da varivel manipulada (MV) do processo seja 100%, ou seja,
alcance a saturao. A relao entre a banda proporcional e a constante proporcional
dada por:
P
B
K
P
100
=
Onde P
B
a banda proporcional.
Portanto quanto maior o valor de K
P
menor a banda proporcional. A Figura 1
ilustra a ao da banda proporcional. Em (A) temos um sistema com uma grande banda
proporcional, acarretando em um alto erro de regime. Em (B) temos uma banda proporcional
de valor timo, com um pequeno erro de regime e sem oscilaes. Em (C) temos uma
banda proporcional muito pequena, provocando oscilaes no sistema.

Figura 1 Resposta de um sistema para vrios valores de P
B

Note que para sistemas de Tipo 0, isto , que em malha aberta seguem uma
entrada em degrau com erro finito, o erro em regime estacionrio nunca ser nulo quando
utilizada somente a ao proporcional.


2.1.2 Controlador Proporcional-Integral (PI)

Para corrigir o erro de sistemas do Tipo 0 quando operando em regime, torna-se
necessrio o uso da ao integral. Porm, se aplicada isoladamente, a ao integral tende a
piorar a estabilidade do sistema. Assim para evitar esse comportamento a ao integral
utilizada juntamente com a ao proporcional, formando o controlador PI. O sinal de controle
desse controlador dado por:
} }
+ =
|
|
.
|

\
|
+ = ) ( ) ( ) (
1
) ( ) ( t e K t e K t e
T
t e K t u
I P
I
P

19

O controlador PI apresenta a seguinte funo de transferncia:
|
|
|
.
|

\
|
+
=
s
T
s
K G
I
P PI
1

Percebe-se assim a influncia do parmetro T
I
no controlador. Quanto maior o
seu valor, ou quanto menor o valor de K
P
, o zero do controlador afasta-se da origem fazendo
com que a ao proporcional predomine. Com um valor muito grande de K
P
o zero do
controlador fica muito prximo da origem, podendo causar a instabilidade do sistema.


2.1.3 Controlador Proporcional-Derivativo (PD)

No controle de sistemas lineares possvel observar certa inrcia da resposta do
sistema com relao a uma entrada aplicada. A ao derivativa, combinada juntamente com
a ao proporcional, age antecipando a ao de controle afim que o processo reaja mais
rpido. Segundo Silva (2000) o sinal de controle de um controlador PD dado por:
t
t e
K t e K
dt
t de
T t e K t u
D P D P
c
c
+ =
|
.
|

\
|
+ =
) (
) (
) (
) ( ) (
possvel aproximar e(t+T
D
) por:
t
t e
T t e T t e
D D
c
c
+ ~ +
) (
) ( ) (
Assim tem-se que ) ( ) (
D P
T t e K t u + ~ , o que significa que o sinal de controle
proporcional ao erro T
D
unidades de tempo frente. Isso significa que feita uma predio
do erro extrapolando o valor da reta tangente curva do erro no instante t. Esse
comportamento est ilustrado na Figura 2.


Figura 2 Extrapolao do erro pela ao derivativa
20

Como a ao derivativa adiciona um zero ao sistema a sua resposta tende a ser
muito acentuada para componentes de alta freqncia, tornando o sistema sensvel a toda
uma classe de rudos. Deve-se, portanto, atenuar a ao derivativa em altas freqncias
atravs de um filtro passa-baixas.


2.2 Redes Ethernet e o Modelo TCP/IP

Para reduzir a complexidade de projeto de redes de comunicaes de
computadores utiliza-se uma organizao de rede em camadas. Dependendo da rede pode-
se variar o nmero de camadas, seus nomes e suas funes. Entretanto, segundo
Tanenbaum (2003), em qualquer rede o objetivo de uma camada prestar servios s
camadas superiores, isolando destas os detalhes da implementao destes servios.
A camada n de uma mquina comunica-se com a camada n de outra mquina.
As regras e convenes utilizadas nessa comunicao so conhecidas como protocolos. As
entidades que ocupam as mesmas camadas em mquinas diferentes, e que portanto
comunicam-se utilizando um protocolo, so chamadas de peers.
Existem diversos modelos de referncia para implementaes de redes
baseados em camadas. Os dois principais modelos de referncia so: o modelo de
referncia OSI e o modelo de referncia TCP/IP.


2.2.1 Modelo de referncia OSI

Embora os protocolos associados ao modelo OSI sejam raramente utilizados,
este ainda extremamente importante devido ao fato de o modelo por si s ser muito bem
estruturado, sendo ainda muito generalista. O modelo se baseia em uma proposta da ISO
(International Standards Organization) de gerar um modelo para padronizao dos
protocolos de rede. O modelo foi chamado de Modelo de Referncia ISO OSI. O modelo
ISO OSI especifica 7 camadas na implementao de uma rede.
No obstante importante salientar que o modelo OSI no uma arquitetura de
rede, uma vez que no especifica os servios e os protocolos exatos que devem ser usados
em cada camada. Ele apena informa o que cada camada deve fazer. A Figura 3 apresenta
as camadas do modelo OSI.
A camada inferior do modelo OSI a camada Fsica. Esta a camada que trata
da padronizao da transmisso de bits atravs de um canal de comunicao. A unidade de
informao com que ela trabalha , portanto, o bit. As questes mais comuns tratadas por
21

essa camada so as tenses utilizadas para representar um bit 0 e um bit 1, quanto a
transmisso de um bit deve durar, se a comunicao pode ou no ser feita nos dois sentidos
simultaneamente ou ainda quantos pinos ter o conector de rede e qual a finalidade de cada
pino. O projeto nesta camada trata basicamente de interfaces mecnicas, eltricas e do
meio fsico utilizado na transmisso dos dados.

Figura 3 Camadas do Modelo ISO OSI

A camada de Enlace de dados tem por principal funo tornar um canal de
transmisso bruta em um canal que parea livre de erros para a camada de rede. Esta
camada utiliza frames como unidade de informao. Assim o transmissor divide seus dados
em frames, que geralmente tm seu tamanho mximo em alguns milhares de bytes, e a
camada de enlace de dados transmitir estes frames sequencialmente. Esta camada
tambm tem por funo realizar um controle de fluxo, impedindo assim que um transmissor
muito rpido sobrecarregue um receptor muito lento em uma comunicao.
A principal funo da camada de rede determinar como pacotes de informao
sero roteados de modo a chegar a seu destino. Esta funo normalmente realizada
atravs da construo de uma tabela de roteamento, onde, atravs da troca de informaes
entre roteadores, cada um determina qual a melhor rota para que pacotes atinjam um
destino. Esta rota adicionada tabela de roteamento. Tambm cabe camada de rede
tratar de questes como o controle de congestionamentos e a garantia de um nvel de
qualidade de servio (QoS).
A camada de Transporte responsvel por fragmentar os dados recebidos das
camadas superiores em unidades menores, se necessrio, assegurando que todos os
fragmentos chegaro outra extremidade. Na camada de transporte ainda definido o tipo
22

de servio que ser disponibilizado s camadas superiores. O tipo de servio mais comum
um canal ponto a ponto de comunicao, livre de erros, que entrega os bytes na mesma
ordem que foram recebidos. Outro tipo de servio o envio de datagramas sem nenhuma
garantia de entrega, ou mesmo quanto ordem de entrega dos mesmos.
A camada de Sesso permite que usurios em diferentes mquinas estabeleam
sesses entre eles. Uma sesso oferece alguns servios como manter o controle de quem
deve transmitir a cada momento, impedir que duas partes tentem acessar a mesma funo
crtica ao mesmo tempo e realizar verificaes peridicas de transmisses longas,
permitindo assim que elas continuem do ponto onde estavam caso uma falha acontea.
A camada de Apresentao, diferentemente das camadas inferiores que tratam
basicamente da transmisso de informaes, est relacionada com a sintaxe e a semntica
das informaes transmitidas. Esta camada responsvel por viabilizar a comunicao
entre mquinas com diferentes tipos de codificao de dados.
Na camada de aplicao encontram-se os protocolos utilizados diretamente
pelos usurios. Nesta camada esto alocados os protocolos responsveis pela transferncia
de pginas da web, pela transferncia de arquivos, pela transmisso de notcias pela rede
ou ainda pela transmisso de mensagens de correio eletrnico.
As principais crticas feitas ao modelo ISO OSI devem-se ao fato de o mesmo
ser considerado demasiadamente complexo, sendo que duas de suas camadas (Sesso e
Apresentao) encontram-se praticamente vazias.


2.2.2 Modelo de referncia TCP/IP

O modelo de referncia TCP/IP surgiu a partir das primeiras arquiteturas
desenvolvidas para a conexo de redes distintas na ARPANET (Advanced Research
Projects Agency Network), precursora da atual Internet. O modelo recebe o nome de seus
dois principais protocolos: o IP (Internet Protocol) e o TCP (Transport Control Protocol). A
estrutura de camadas do modelo TCP/IP apresentada na Figura 4.
A camada de Acesso rede do modelo TCP/IP no muito bem definida no
modelo, que especifica somente que nela deve haver algum protocolo que permita a
transmisso de pacotes IP. Este protocolo no descrito e varia de rede para rede.
Justamente pela falta de especificao desta camada em projetos de redes feita a
correspondncia desta camada com as camadas 1 e 2 do modelo OSI.
A camada de Internet (Inter-redes) integra toda a arquitetura TCP/IP. Ela
implementa uma rede baseada em comutao de pacotes, que tem por funo garantir que
qualquer host presente em qualquer sub-rede possa injetar um pacote na rede e que esse
23

pacote trafegar atravs da rede at o seu destino. Esse modelo define um formato de
pacote padro e um protocolo para a camada o Internet Protocol definido na RFC
(Request for Comments) 791 da IETF (Internet Engineering Task Force). A funo desta
camada muito parecida com a funo da camada de rede do modelo OSI.

Figura 4 Camadas do Modelo TCP/IP

Acima da camada de Internet encontra-se a camada de Transporte. Esta
camada, assim como a camada de Transporte do modelo OSI, tem por objetivo permitir que
dois hosts estabeleam uma comunicao fim a fim. Nela esto definidos dois protocolos:
- O TCP (Transmition Control Protocol), que um protocolo orientado
conexes que permite a entrega confivel de seguimentos com
mecanismos de controle de fluxo. utilizado em aplicaes onde
necessria confiabilidade na transmisso de informaes;
- O UDP (User Datagram Protocol), que um protocolo sem conexes que
no realiza nenhum controle de fluxo, controle de erros ou retransmisso
aps o recebimento de um pacote com falhas. utilizado principalmente
em aplicaes de tempo real, nas quais mais importante conseguir um
atraso pequeno na transmisso dos datagramas que uma baixa taxa de
perda de datagramas.
No modelo TCP/IP a camada de Aplicao engloba as trs camadas de mais
alto nvel do modelo OSI. Nela esto alocados os protocolos utilizados por aplicaes
utilizadas pelo usurio, como protocolos de terminal virtual (TELNET e SSH Secure Shell),
24

protocolos de correio eletrnico (SMTP Simple Mail Transfer Protocol) e protocolos de
transferncia de pginas da Web (HTTP).
Nota-se que o modelo TCP/IP no um modelo muito abrangente, basicamente
servindo para descrever a pilha dos protocolos TCP/IP. Assim, apesar de seus protocolos
serem mais amplamente utilizados na Internet, o modelo OSI geralmente preferido para a
descrio de redes de computadores.


2.2.3 Ethernet

Ethernet uma famlia de protocolos de LAN (Local Area Network) que definem
a subcamada MAC (Media Access Control) e a camada fsica para redes locais de mltiplo
acesso. Estes protocolos foram definidos e padronizados como IEEE 802.3.
A Ethernet surgiu a partir de uma rede local de computadores desenvolvida por
Bob Metcalfe nos escritrios da Xerox no final da dcada de 1970. Essa rede baseava-se
em um cabo coaxial grosso, ao qual poderiam ser conectados at 256 computadores,
partilhando assim de um meio de comunicao multiponto. Devido ao sucesso da Ethernet
um consrcio composto pelas empresas DEC, Intel e Xerox desenvolveram o padro para
uma Ethernet de 10 Mbps chamado DIX. Esse padro foi base para a criao do padro
IEEE 802.3 no ano de 1983. Atualmente o IEEE 802.3 representa um conjunto de padres
que definem o formato de funcionamento de vrias tecnologias associadas Ethernet, como
redes FastEthernet, redes GigabitEthernet, PoE (Power over Ethernet), entre outros.
Nas primeiras verses da Ethernet a conexo dos usurios rede era realizada
atravs de um cabo coaxial literalmente compartilhado por todos os hosts, caracterizando
assim uma topologia fsica tipo barramento. Atualmente a conexo dos hosts feita
utilizando-se par tranado ou fibras pticas (como no caso de redes GigabitEthernet e
TenGigabitEthernet). A Figura 5 ilustra o formato do frame Ethernet, segundo definido pelos
padres DIX (a) e 802.3 (b). O endereo MAC possui 48 bits, sendo usualmente
representado atravs de notao hexadecimal, com seus algarismos separados em grupos
de dois ou de quatro, separados por dois pontos.


Figura 5 Formato do frame Ethernet: (a) DIX, (b) 802.3
25

A tecnologia que define como funciona a subcamada de acesso ao meio em
redes Ethernet o CSMA/CD (Carrier Sense Multiple Access with Collision Detection).
Neste protocolo os hosts verificam o canal antes de efetuar qualquer transmisso. Caso o
canal esteja ocupado, o host espera a liberao do canal para iniciar a transmisso de um
novo frame. O fluxograma da Figura 6 apresenta o funcionamento do CSMA/CD.

Camada de
nvel superior
requisita a
transmisso
O canal
est livre?
Inicia
transmisso
do frame
No
Sim
Houve
Coliso?
Aguarda pela
liberao do
canal
Encerra a
Transmisso
Aguarda um
tempo
aleatrio
No
Termina a
transmisso
do frame
Excedeu o
mximo de
tentativas?
Sim
Mensagem
de erro
camada
superior
No
Sim

Figura 6 Funcionamento do CSMA/CD


26

2.2.4 Protocolo de Transferncia de Hipertexto (HTTP)

O Protocolo de Transferncia de Hipertexto (Hypertext Transfer Protocol) um
protocolo da camada de aplicao dos modelos OSI e TCP/IP. Ele baseia-se em uma
relao cliente servidor e requer a utilizao de um protocolo de transporte orientado a
conexes, como o TCP. O HTTP pode ser utilizado para diversas aplicaes, porm o seu
uso mais importante se d pela transferncia de documentos HTML (Hypertext Markup
Language) entre servidores da Internet e usurios, formando a Web.
O protocolo funciona utilizando o princpio de pedido e resposta. O caso mais
simples acontece quando um cliente estabelece uma conexo com um servidor e requisita
um contedo referente a um URI (Uniform Resource Identifier) que especifica o caminho e o
nome do recurso. Normalmente isso feito na utilizao de um browser para navegar na
Internet. Os pedidos so enviados em strings de caracteres ASCII (American Standard Code
for Information Interchange) terminadas pelos caracteres de carriage return (CR) e line feed
(LF). A Tabela 1 lista os mtodos HTTP mais importantes.

Tabela 1 Principais mtodos do HTTP
Mtodo Descrio
GET
O cliente requisita um recurso de um servidor. Depois da requisio o
servidor envia um campo com um cabealho e o recurso requisitado ao
cliente.
HEAD
Parecido com o GET, mas apenas a informao de cabealho enviada
de volta ao cliente, no o recurso.
POST
Usado para enviar informao do cliente para o servidor, como quando do
preenchimento de um formulrio em uma pgina web.

A resposta do servidor contm algumas linhas de cabealho. Cada linha termina
com os caracteres CR e LF. A presena de um CR e de um LF na ltima linha do cabealho
indica o incio dos dados, que na maioria dos casos uma pgina HTML ou uma imagem.
Depois que o contedo transferido, a conexo normalmente encerrada. A descrio do
protocolo HTTP encontra-se na RFC 1945.

27

3 Material e Mtodo


3.1 Plataforma de desenvolvimento

Considerando as caractersticas deste projeto, sendo este um sistema digital
com necessidade de realizar temporizao, atender a eventos de interrupo e disponibilizar
uma interface com o mundo analgico, foi escolhida uma plataforma de desenvolvimento
baseada em um sistema microcontrolado. Como ponto inicial para o desenvolvimento do
projeto foi utilizada a plataforma de desenvolvimento MSP430-Easyweb2, comercializada
pela empresa blgara Olimex.


Figura 7 Plataforma de desenvolvimento MSP430-Easyweb2

Este ambiente de desenvolvimento conta com um microcontrolador
MSP430F149, fabricado pela Texas Instruments, como unidade central de processamento
do sistema. Dentre os dispositivos e funcionalidades teis ao projeto disponibilizadas pela
plataforma pode-se ressaltar:

- Um controlador Ethernet CS8900, alm de um conector RJ-45 para interface com a LAN;
- Quatro botes e um display de LCD (Liquid Crystal Display) de 16x2 caracteres para
realizar a interface com o usurio;
- Memria EEPROM (Electrically-Erasable Programmable Read-Only Memory) de 64kB;
- Interface JTAG (Joint Test Action Group) para emulao do sistema.
28

Alm destes, a placa de desenvolvimento conta com outros recursos que no
sero utilizados no projeto, como entradas optoacopladas, dois rels de sada, uma interface
RS-232, um buzzer, entre outros.


3.1.1 Controlador Ethernet CS8900

O CS8900 um controlador Ethernet de baixo custo que apresenta uma alta
integrao de componentes, dispensando o uso de muitos componentes externos. Este
controlador possui uma memria RAM (Random Access Memory) on-chip e implementa os
filtros de entrada e sada para uma conexo Ethernet 10Base-T. Assim o controlador
armazena os quadros recebidos e que sero transmitidos na memria interna do chip.
O chip contm ainda um sistema para tratar da subcamada MAC internamente,
segundo os padres Ethernet IEEE 802.3, que realiza funes como deteco de coliso,
gerao e deteco de prembulo e gerao e teste de CRC (Cyclic Redundancy Check).


3.2 MSP430F149

O sistema baseia-se num microcontrolador MSP430F149, da Texas Instruments,
para realizar as funes de processamento e controle do dispositivo, alm de realizar a
interface com o sistema de controle.


Figura 8 - Arquitetura do MSP430F149
29

O MSP430F149 contm uma CPU RISC (Reduced Instruction Set Computer) de
16 bits, perifricos e um sistema de clock flexvel. O controlador integra todos os seus
perifricos, seus 60KB de memria Flash interna e 4KB de memria RAM interna utilizando
uma arquitetura Von Neummman, atravs de barramentos de dados e de endereos para
acesso memria. A arquitetura do MSP430F149 est ilustrada na Figura 8.
O microcontrolador conta ainda com 2 timers/counters de 16 bits, um conversor
analgico-digital de 12 bits, sensor de temperatura interno, mdulos de Capture, Compare &
PWM (Pulse Width Modulation), Watchdog timer, entre outros.
O MSP430F149 disponibiliza 6 portas de entrada e sada para utilizao do
usurio, facilitando a interface com outros dispositivos do circuito. Cada porta conta com 8
interfaces de entrada/sada digital, que podem ainda multiplexar uma funo extra. Por
exemplo, a porta 6 contm 8 interfaces de entrada/sada digital, podendo ainda ser
configuradas individualmente como entradas do conversor analgico-digital. A seleo do
sentido da porta (se entrada ou sada) feita utilizando o registrador de controle PxDIR. O
registrador PxSEL estabelece se ser usada a funo extra de uma interface, ou se a
mesma ser usada como entrada/sada digital. A Figura 9 apresenta a pinagem do
MSP430F149, mostrando ainda as funes extras de cada pino.

Figura 9 - Pinagem do MSP430F149
30

Uma funcionalidade disponibilizada ainda pelos microcontroladores MSP430 a
possibilidade de emulao embarcada do programa. Atravs de uma interface JTAG
possvel monitorar a execuo do programa passo a passo, adicionar breakpoints para
observar pontos importantes do cdigo e o estado dos registradores em determinados
pontos do programa.


3.3 Ambiente de desenvolvimento

O ambiente de desenvolvimento utilizado no projeto foi o IAR 4.21 para MSP430.
Este ambiente de desenvolvimento combina um compilador para linguagem C, ferramentas
de controle de verso, simuladores de cdigo e emuladores. A funcionalidade de emulao
do cdigo extremamente til, pois permite monitorar passo a passo o funcionamento do
programa enquanto o mesmo executado no microcontrolador.
Todo o programa do projeto foi escrito em linguagem C, facilitando assim a
portabilidade do cdigo no caso de migrao para outras plataformas.
A Figura 10 exibe a interface do ambiente de desenvolvimento.


Figura 10 Ambiente de desenvolvimento IAR


31

3.4 Interface entre o MSP430F149 e o controlador Ethernet

Para transmisso dos pacotes recebidos pela rede o MSP430F149 est
interconectado com o controlador Ethernet segundo o esquema da Figura 11. A interligao
da placa segue o esquema indicado por Dannenberg (2004), utilizando o controlador
CS8900 em modo de espao de I/O. Neste modo o CS8900 acessado atravs de 8 portas
I/O de 16 bits, mapeadas no espao de memria do host.


Figura 11 Conexo entre o MSP430 e o controlador CS8900

A conexo fsica dos barramentos usados para acessar o CS8900 realizada
utilizando-se a Porta 5 do MSP430F149 como duto de dados e um barramento de
endereos de 4 bits. So necessrios tambm 2 sinais de IOR e IOW, ativos em nvel
baixo, para realizar as operaes de leitura e escrita, possibilitando assim a comunicao
com a rede.
32

3.5 Entrada e sada analgicas

Como os sistemas controlados em aplicaes reais so analgicos, preciso
criar a interface deste meio com o microcontrolador digital onde est localizada a lgica de
controle. Para isso necessrio tanto um meio de discretizar e amostrar a varivel de
controle, quanto um meio de converter os valores digitais da sada do controlador
novamente em nveis de tenso analgicos.
O controlador foi projetado para uso geral, e tanto sua entrada quando sua sada
consistem de um sinal de tenso normalizado na faixa de 0V a 3V. Cabe aplicao que se
utiliza do controlador realizar a converso de tenso para que valores na faixa de 0% a
100% sejam correspondentes a valores na faixa de 0V a 3V.


3.5.1 Entrada do controlador

Como descrito anteriormente, o MSP430F149 conta com um conversor
analgico-digital com 12 bits de resoluo. O conversor pode atingir taxas maiores que
200ks/s, o que o torna apropriado para aplicaes que necessitem converses freqentes e
rpidas, como o projeto deste trabalho. O conversor baseia-se num Registrador de
aproximaes sucessivas para discretizar o valor de tenso presente na entrada do mesmo.
O MSP430F149 disponibiliza oito canais independentes para converso
analgico-digital, sendo possvel configurar quais destes canais sero usados. Fisicamente,
as entradas analgicas do microcontrolador esto multiplexadas com a Porta 6, sendo
necessrio definir atravs do registrador P6SEL quais pinos sero usados como entrada
analgica e quais pinos sero usados como I/Os digitais. Neste projeto apenas o canal 7 do
conversor ser usado, sendo que os outros pinos da Porta 6 sero usados como sadas
digitais.
Por meio de registradores especficos do MSP430F149 possvel configurar o
conversor analgico digital para que o mesmo funcione da maneira desejada. Dentre as
configuraes disponveis esto o tempo de amostragem, o valor da tenso de referncia
utilizada, se o sinal convertido deve ter sua polaridade invertida e o canal do conversor
utilizado. Ainda atravs destes registradores feita a configurao relativa a interrupes
geradas no fim da converso, alm do controle de incio e fim de cada converso.
A funo responsvel por realizar uma converso analgico-digital no programa
do controlador GetAD7Val(). Ela retorna um valor do tipo inteiro, correspondente ao nvel
de tenso encontrado na entrada do conversor. Este valor varia numa escala de 0 a 4096,
assim para uma converso aproximada do valor nesta escala para uma escala de 0% a
33

100% basta dividir o resultado da converso por 41. As configuraes do conversor
analgico-digital so realizadas dentro da funo GetAD7Val() antes de cada converso.
Abaixo segue o cdigo da funo:



Na montagem do circuito foi adicionado um amplificador operacional com a
funo de isolador na entrada analgica do microcontrolador, de forma a isolar o circuito e
elevar a impedncia de entrada do mesmo, diminuindo assim possveis erros devidos
efeito de carregamento.


3.5.2 Sada do controlador

A ao de controle, calculada atravs do algoritmo do controlador PID digital,
deve ser transferida ao circuito para que seja obtido o comportamento desejado do mesmo.
Para tanto necessrio converter o valor digital calculado para a ao de controle num nvel
de tenso analgico, de forma que essa sada atue no sistema.
Foi utilizado um conversor digital-analgico para realizar a converso. Como a
verso do microcontrolador MSP430 utilizada no possui um conversor digital-analgico
integrado foi utilizado um circuito externo para realizar essa converso.
O conversor DAC0808, utilizado neste projeto, um conversor digital-analgico
baseado numa rede R-2R. Ele foi utilizado, pois, alm de ser facilmente encontrado no
mercado, sua entrada considerada em nvel lgico alto a partir de uma tenso de 2V.
Assim pode-se acoplar as sadas do microcontrolador diretamente neste conversor, sem
necessidade de realizar nenhuma converso no nvel de tenso gerado pelo mesmo em
suas sadas.
unsigned int GetAD7Val(void)
{

ADC12CTL0 = ADC12ON | SHT0_15 | REF2_5V | REFON; // ADC ligado
// (2,5 V) referencia
ADC12CTL1 = ADC12SSEL_2 | ADC12DIV_7 | CSTARTADD_0 | SHP;

ADC12MCTL0 = SREF_1 | INCH_7; // ref. int., canal 7

ADC12CTL0 |= ENC; // habilita conversao
ADC12CTL0 |= ADC12SC; // converte
while (ADC12CTL0 & ADC12SC); // espera o fim

ADC12CTL0 &= ~ENC; // desabilita a converso

return ADC12MEM0;
}

34

Um fator limitante encontrado na plataforma de desenvolvimento utilizada que
esta s permite acesso direto aos pinos da Porta 6 do microcontrolador. Como um dos pinos
dessa porta ser usado como entrada analgica, restam apenas sete pinos disponveis para
a sada digital. Portanto a converso ser feita com uma resoluo de 7 bits, sendo o bit
menos significativo do DAC0808 mantido sempre em nvel baixo.
Para manter o padro de tenso adotado na entrada do controlador, a sada
disponibilizar uma tenso variando na escala de 0V a 3V. Para realizar a converso e
adaptar o valor de tenso convertido para esta escala foi utilizado o circuito da Figura 12.


A1
5
A2
6
7
A3
8
A4
VCC
VREF+
VREF-
GND
16
15
14
13
A5
9
A6
10
11
A7
12
A8
IO
NC
Comp
VEE
12
1
10
9
D
o

M
S
P
4
3
0
D
A
C
0
8
0
8
LF351
-
+
2k2
10k
4k7
100n
+5V +15V
-15V

Figura 12 Conversor digital-analgico



3.6 Descrio geral do software

O software desenvolvido para a aplicao utiliza a pilha TCP/IP desenvolvida
apresentada em Dannenberg (2004). Utilizando a mesma como base para base da
comunicao com a rede, foram ainda adicionadas funes para gerar uma pgina da web
dinamicamente conforme o sistema monitorado. Foram ainda desenvolvidas funes para
implementar uma IHM (Interface Homem Mquina) na placa de desenvolvimento utilizando
os push-buttons e o display de LCD, de forma que o usurio possa alterar os parmetros do
35

controlador. Tambm foi implementada em software uma interface I
2
C (Inter Integrated
Circuit) para comunicao com a memria EEPROM externa. Todas estas funes, alm de
outras implementadas, sero tratadas no decorrer deste trabalho.


3.7 Pilha TCP/IP e servidor HTTP

O projeto utiliza-se da pilha TCP/IP desenvolvida por Dannenberg (2004), e
implementado ainda um servidor HTTP simples no programa. Segundo a lgica de diviso
do desenvolvimento de uma rede em camadas, o programa dividido em mdulos
separados, facilitando assim o projeto e a compreenso do sistema. A Tabela 2 apresenta
esses mdulos separadamente, apontando ainda em que camadas do modelo OSI est
localizado o mdulo em questo.

Tabela 2 Mdulos do software de comunicao
Mdulo Descrio
Aplicao
- Usa APIs (Application Programming Interface) da pilha TCP/IP,
tornando assim o processo de transmisso dos dados transparente
aplicao.
- Corresponde camada 7 do modelo OSI, ou a camada 4 do modelo
TCP/IP, e compreende ainda o servidor HTTP bsico constante do
programa.
Pilha TCP/IP
(tcpip.c e
tcpip.h)
- Implementa os protocolos TCP, IP, ICMP e ARP.
- Corresponde s camadas 3 e 4 do modelo OSI.
Mdulo
Ethernet
(cs8900.c e
cs8900.h)
- Driver para a utilizao do controlador Ethernet CS8900A.
- Possibilita configurao e controle do hardware empregado para
realizar a comunicao Ethernet, enquanto torna os detalhes dessa
comunicao transparentes para as camadas superiores.
- Corresponde camada 2 do modelo OSI.


3.7.1 Mdulo Ethernet

Primeiramente o controlador CS8900A deve ser configurado para que ocorra a
comunicao com a LAN. Essa configurao feita atravs da funo Init8900(). Esta
funo chamada quando da inicializao do dispositivo e envia uma seqncia padro de
bytes ao CS8900, configurando assim o mesmo para utilizao no sistema. O fluxograma do
Apndice A exibe o algoritmo de funcionamento do mdulo Ethernet.

36

3.7.2 Pilha TCP/IP

Neste mdulo implementada a pilha de protocolos TCP/IP, alm de outros
protocolos necessrios como ICMP e ARP (Address Resolution Protocol). Este mdulo
realiza as funes referentes s camadas 3 e 4 do modelo OSI no sistema, com seus
procedimentos definidos nos arquivos tcpip.c e tcpip.h, disponibilizando APIs para uso das
camadas superiores. As funes deste mdulo so uma implementao das RFCs 791, 792
e 793.
O mdulo rene um conjunto de funes para tratar os eventos que ocorrem na
rede. Basicamente estes eventos podem ser descritos como pertencentes a um dos
seguintes tipos:
- Chegada de um frame pela rede Ethernet.
- Chamada de alguma API pela camada de aplicao.
- Ocorrncia de time-out.
- Ocorrncia de um erro.
A funo DoNetworkStuff() realiza as funes bsicas do protocolo TCP. Ela
monitora um conjunto de flags armazenadas em variveis globais para determinar em que
estado da mquina de estados do protocolo TCP o programa se encontra. Por estar em
constante monitoramento destas variveis, ela deve ser chamada freqentemente dentro do
programa. Quanto mais chamadas a essa funo melhor o desempenho da rede.
No programa do controlador a funo DoNetworkStuff() chamada dentro do
loop principal do programa, garantindo uma boa performance do sistema quanto
conectividade pela rede. O algoritmo realizado nesta funo est disponvel no fluxograma
do Apndice B.
O mdulo TCP/IP utiliza o TimerA para realizar a temporizao descrita na RFC
793 que define o protocolo TCP. A RFC define um timer de 32 bits que incrementado a
cada 4s, aproximadamente, e usado para gerar o nmero sequncia inicial utilizado no
protocolo.
Este mdulo disponibiliza servios s camadas superiores atravs de algumas
APIs definidas no programa. Assim possvel desenvolver uma aplicao sem entrar em
detalhes do entendimento do funcionamento deste mdulo. A Tabela 3 exibe as APIs
disponibilizadas pelo mdulo.
Conforme descrito anteriormente, o programa utiliza algumas flags globais para
definir o estado em que se encontra o mdulo TCP/IP. Existem flags para indicar se o socket
est ativo, se o socket est conectado, se h dados para leitura no buffer de recepo, se o
buffer de transmisso est livre e indicando se houveram erros de transmisso.

37


Tabela 3 Lista de APIs da pilha TCP/IP
API Descrio
TCPLowLevelInit()
- Realiza as configuraes iniciais do controlador CS8900A,
das variveis da pilha TCP/IP e do TimerA.
TCPPassiveOpen()
- Quando esta funo chamada a pilha entra no modo
servidor, esperando que uma conexo seja estabelecida.
TCPActiveOpen()
- Esta API tenta estabelecer uma conexo com um servidor
TCP remoto.
TCPClose() - Esta API fecha uma conexo aberta.
TCPReleaseRxBuffer()
- Informa pilha que os dados do buffer de entrada esto
liberados e podem ser sobrescritos.
TCPTransmitTxBuffer()
- Transmite o contedo do buffer de sada atravs de uma
conexo TCP aberta.


3.7.3 Camada de aplicao

No projeto do controlador possvel que o usurio acesse os dados do processo
atravs de um navegador, visualizando uma pgina web. Para que o sistema se comunique
com o navegador um servidor HTTP simplificado foi desenvolvido.
O servidor simplesmente envia a uma pgina web, contida na constante
Webside[], para toda conexo fechada na porta 80. Foi ainda adicionado um tratamento
para o mtodo POST do protocolo HTTP, para que o usurio possa enviar dados ao
controlador.
A pgina web enviada pelo servidor para o navegador exibe o valor atual da
varivel de processo, alm de um grfico com o histrico dos valores desta varivel nos
ltimos 5s. importante observar que, enviando sempre uma constante como pgina web, o
usurio observar sempre uma pgina esttica em seu navegador. Porm o efeito esperado
que a pgina exiba o valor da varivel de processo no instante em que o usurio faz a
requisio. A funo InsertDinamicValues() modifica a pgina web antes que a mesma seja
38

enviada pela conexo TCP, inserindo valores numricos em alguns marcadores que
seguem o padro ADx%, presentes no cdigo HTML.
O usurio encontrar dois botes na pgina web. Um deles atualiza a pgina
para que sejam exibidos os valores atuais para a varivel de processo e seu histrico. O
outro permite que o usurio altere o valor do set point do controlador, enviando o valor
digitado pelo usurio em um campo para o sistema embarcado. Este valor deve ser escrito
com uma casa decimal, separada por um ponto da unidade.
Abaixo segue o cdigo HTML utilizado na pgina web, cuja aparncia pode ser
observada na Figura 13.


<html>
<head>
<title>Controlador PID Digital</title>
</head>

<body bgcolor="black" text="#000000">
<center><p><b><font color="#DFDFDF" align="center" size="7" face="Arial Black">Controlador PID
Digital</font></b></p>
<p><b><font color="0094D2" align="center" size="4">Bruno Silvrio Crippa</font></b></p>

<p><b><font color="0094D2" size="5" face="Arial Black">PV (%): AD7% </b></font></p>

<img src="http://chart.apis.google.com/chart?
cht=lc
&amp;chs=500x250
&amp;chd=t:ADA%,ADB%,ADC%,ADD%,ADE%,ADF%,ADG%,ADH%,ADI%,ADJ%
&amp;chco=0094D2
&amp;chm=B,0094D240,0,0,0
&amp;chxt=x,y
&amp;chxl=
0:|0|0.5|1.0|1.5|2.0|2.5|3.0|3.5|4.0|4.5|
1:|0|25|50|75|100
&amp;chf=bg,s,000000|c,s,000000
&amp;chxs=0,DFDFDF,10|1,DFDFDF,12
&amp;chls=3,1,0
&amp;chg=11.1,25,1,4">

<br><br>

<input type="button" value="Atualiza Valor" onClick="window.location='http://10.235.10.50'"
name="button">
<br>
</center>

<table border="0" width="45%">
<tr valign=top><td><font color="0094D2" size="4" face="Arial Black">Set Point <br> </td>
<td><FORM ACTION=FORM METHOD=GET>

<INPUT TYPE=TEXT NAME="SP" SIZE="8" MAXLENGHT="5" VALUE="0"> <br>
<INPUT TYPE=HIDDEN NAME="AX" VALUE="0"> <br>
<INPUT TYPE=SUBMIT VALUE="Envia">
<INPUT TYPE=RESET VALUE="Apaga">
</FORM></td></tr>
</table>

</body>
</html>
39


Figura 13 Layout da pgina web

Para gerar o grfico presente na pgina web foi utilizada uma API do Google que
retorna a imagem de um grfico baseado em parmetros enviados atravs de uma URL.
Assim o usurio deve possuir uma conexo com a Internet para que o grfico seja
corretamente visualizado.


3.8 Memria EEPROM externa e protocolo I
2
C

Para que os dados configurados pelo usurio no sejam perdidos quando ocorre
uma queda de energia no sistema, os mesmos devem ser gravados numa memria no
voltil. O ambiente de desenvolvimento disponibiliza uma memria EEPROM para estes
fins.
A comunicao entre o microcontrolador e a memria EEPROM 24LC515
presente no ambiente de desenvolvimento feita com o uso do protocolo I
2
C. Apesar deste
no apresentar complexidade na sua configurao, h muitos parmetros a serem
configurados e o mximo de ateno requerido para que erros simples no sejam
cometidos.
Por ser um meio de comunicao sncrona, fcil seu entendimento. O controle
feito apenas sobre duas vias de comunicao, o SDA e SCL. A primeira representa a via
onde os dados sero transportados e a segunda porta o sinal de clock responsvel por
controlar a transferncia de informaes entre os dispositivos.
40

Toda vez que a comunicao for feita h a necessidade de se enviar um sinal de
start sinalizando que esta est pronta para efetuar a transmisso. E assim como o inicio da
transmisso o seu encerramento deve ser indicado atravs de um sinal de stop. A Figura 14
ilustra os sinais SDA e SCL no barramento de comunicao I
2
C, inclusive os sinais de start e
stop de uma transmisso.


Figura 14 - Comunicao I
2
C

Por serem sinais muito utilizados foram criadas as funes SendStart() e
SendStop() para o envio dos sinais de start e stop no barramento I
2
C. Outra funo criada
para a configurao da memria envia um fluxo de 8 bits atravs do barramento I
2
C,
permitindo assim o envio de valores atravs do barramento, possibilitando a configurao,
envio de endereos e de dados para a memria externa. Ao final do envio de um byte a
memria exige que o dispositivo atuando como master no circuito gere um nono pulso de
clock para realizar a confirmao de que os dados foram enviados. Esta confirmao
acontece quando a memria abaixa o nvel de tenso do SDA durante o nono ciclo de clock
gerado pelo microcontrolador. Como exemplo, a Figura 15 Apresenta o formato da
transmisso para gravar um byte na memria.


Figura 15 - Formato dos dados para gravao de um byte no 24LC515


3.9 Interface com o usurio

O valor da varivel de processo pode ser visualizado atravs de uma pgina
web. Da mesma forma pode ser configurado o valor do set point do controlador. Porm
interessante que esses dados possam ser acessados atravs do prprio dispositivo.
41

A plataforma de desenvolvimento Easyweb2 disponibiliza um display LCD e
quatro botes. Estes foram utilizados para realizar a interface com o usurio. O programa
desenvolvido exibe o valor atual da varivel de processo na tela inicial do controlador,
conforme ilustrado na Figura 16.


Figura 16 Display LCD exibindo o valor da varivel de processo

A interface desenvolvida permite ainda a visualizao e ajuste do set point do
controlador, assim como das constantes proporcional, integral e derivativa do sistema de
controle. Estas ltimas esto disponveis para ajuste apenas atravs da interface do
dispositivo, pois so valores que depois de ajustados para a dinmica desejada do
processo, no necessitam ajustes adicionais. Assim no h necessidade de disponibilizar o
ajuste destas constantes atravs da pgina web.
Para alternar qual varivel a interface ir exibir ao usurio o boto B3 deve ser
pressionado. Assim que ligado, o dispositivo exibe o valor da varivel de processo (PV).
Este o nico valor que no pode ser variado, sendo lido atravs da entrada analgica do
sistema. Pressionando o boto B3 a interface passa a exibir o valor do set point do
controlador (SP), onde seu ajuste pode ser feito atravs dos botes B1 e B2. B1 decrementa
o valor da varivel em uma unidade, enquanto B2 incrementa o valor da varivel em uma
42

unidade. O ajuste das demais constantes (Kp, Ki e Kd) pode ser acessado pressionando o
boto B3 sucessivamente.
O funcionamento da interface descrito no diagrama da Figura 17.

Exibe
SP
Exibe
PV
Exibe
Kp
Decrementa
SP
Exibe
Ki
Exibe
Kd
Incrementa
SP
Incrementa
Kp
Incrementa
Ki
Incrementa
Kd
Decrementa
Kp
Decrementa
Ki
Decrementa
Kd
B1
B1
B1
B1
B2
B2
B2
B2
B3
B3
B3
B3
B3

Figura 17 Funcionamento da interface com o usurio

O boto B4 tem duas funes distintas. Primeiramente, se B4 mantido
pressionado enquanto o usurio estiver editando uma das variveis (pressionando B1 ou
B2) o valor da varivel incrementado em um dcimo de unidade (0,1). Lembrando que,
sem pressionar B4, os incrementos na varivel que est sendo editada sero unitrios.
43

A segunda funo do boto B4 ocorre quando a interface est exibindo o valor
da varivel de processo. Ao ser pressionado nesta situao as variveis SP, K
P
, K
I
e K
D
so
salvas na memria EEPROM. Assim o usurio pode salvar os ajustes realizados para que,
caso o sistema seja desligado, ele reinicie utilizando os parmetros salvos.
recomendado que, depois que algum ajuste seja feito a algum parmetro, o
usurio alterne a exibio do LCD at a tela que exibe a varivel de processo e pressione
B4 para salvar os ajustes realizados. Quando o valor do set point alterado utilizando a
interface da pgina web o mesmo salvo automaticamente na EEPROM.


3.10 Controlador PID digital

O controlador PID digital desenvolvido neste projeto utiliza a aproximao de
Tustin descrita em Silva (2000) para discretizar a equao geral do controlador PID. A
discretizao do controlador baseia-se em aproximaes numricas para as derivadas e
integrais presentes na implementao contnua do controlador.
Sendo e(n) o sinal de erro no tempo digital n, o termo proporcional do
controlador digital dado por:
) 1 ( ) ( = n e K n P
P

Sendo T
a
o tempo de amostragem do sistema, o termo integral ser dado por:
2
) 1 ( ) (
) 1 ( ) (
+
+ =
n e n e
T K n I n I
a I

Para o termo derivativo necessrio adicionar um plo ao sistema, de forma a
atenuar a influncia de freqncias altas no mesmo. Dessa maneira evita-se que o rudo
gere instabilidade do sistema. Sendo p o plo adicionado para filtrar altas freqncias,
temos que o termo derivativo do controlador ser:
( ) ) 1 ( ) (
) 2 (
2
) 1 (
2
2
) (
+
+
+

= n e n e
pT T
K
n D
pT
pT
n D
a a
D
a
a

No projeto foi utilizado um valor de 4000rad/s para o plo p.
Para garantir que a funo fosse realizada em intervalos regulares, foi utilizado o
TimerB do MSP430F149 para realizar a temporizao. No incio do programa os
registradores de controle do TimerB so ajustados para gerar uma interrupo a cada 1ms.
Quando ocorre a interrupo chamada a funo Controller(), que realiza os clculos da
ao de controle baseado no valor da entrada do sistema, atualizando assim o valor da
sada. Desta forma temos que a freqncia de amostragem do controlador projetado de
1kHz. Abaixo segue o cdigo da funo Controller().

44


void Controller(void)
{
float error;
unsigned char i;
TBCTL &= ~TBIFG;

processVariable = (GetAD7Val()/41) * 10;
error = (float) (setPoint - processVariable);
error /= 10;

proportional = (proportionalConst * previousError) / 10;
integral += integralConst * (error + previousError) * 0.00005;
derivative = previousDerivative/3 + (error - previousError) * derivativeConst * 33.33;

controllerOutput = (int) (proportional + integral + derivative);
previousError = error;
previousDerivative = derivative;

if (controllerOutput > 127)
P6OUT = 127;
else if (controllerOutput < 0)
P6OUT = 0;
else
P6OUT = controllerOutput;
}
45

4 Resultados


Para verificar as caractersticas dinmicas do controlador ele foi utilizado para
controlar um sistema dinmico dado. O sistema dinmico escolhido foi um circuito RC srie,
onde a varivel de processo a tenso no capacitor V
C
. O circuito est apresentado na
Figura 18.

Figura 18 Circuito RC utilizado nos testes do controlador

A funo de transferncia deste sistema de primeira ordem dada por:
RC
s
RC
s G
1
1
) (
+
=
Em sistemas deste tipo, o tempo de assentamento t
S
igual ao produto RC.
Para os valores adotados no circuito, temos um tempo de assentamento de,
aproximadamente 6,6s. O sistema formado mostrado na Figura 19.

Figura 19 - Sistema dinmico utilizado nos testes

46

Aps a insero do controlador na malha de controle foram feitos os ajustes das
constantes do PID para os seguintes valores:
- K
P
=5
- K
I
=0,6
- K
D
=0,1
Estes valores foram obtidos atravs da sintonia do controlador PID utilizando o
mtodo da sensibilidade limite modificado, descrito em Loureno (1996).
Aps estes ajustes a resposta do sistema foi monitorada. Foi testada a resposta
do sistema a um degrau de tenso de 1,5V. Para isto bastou ajustar o set point para o valor
nulo, esperar que o sistema entre em regime estacionrio, e ento mudar o valor do set
point para 50,0%. O tempo de assentamento t
S
, que em malha aberta sem ao de controle
6,6s, baixou para 1,7s com a implantao do sistema de controle. O erro mximo da
varivel de processo em torno do set point foi de 1%.
Este exemplo ilustra um tempo de assentamento caracterstico de processos
como o controle de temperatura de sistemas de mdia inrcia trmica, ou ainda os tempos
observados no controle de velocidade de alguns motores de corrente contnua.
Durante os testes foram analisados tambm o correto funcionamento do servidor
HTTP e da interface homem-mquina desenhados para o projeto. importante salientar que
a pilha TCP/IP implementada no sistema tem a limitao de aceitar apenas uma conexo
por vez. Assim torna-se impossvel que dois hosts faam a requisio da pgina web para o
controlador ao mesmo tempo. Para permitir mltiplos sockets deve ser usada outra pilha
TCP/IP no sistema. Exemplos de pilhas desenvolvidas para aplicaes embarcadas e que
permitem mltiplos sockets so as pilhas IP e Ethernut TCP/IP.


Figura 20 Sada do controlador aps reajuste do set point

47

A Figura 20 mostra uma situao em que o usurio baixa o set point do sistema
de 50% para 30%. Na figura ilustrado o grfico que apresenta o histrico da varivel de
processo na pgina web.
48


49

5 Concluses

Atravs do desenvolvimento do projeto do presente trabalho foi possvel integrar
uma variedade de tecnologias e conceitos, constantes das disciplinas da grade curricular do
curso de Engenharia Eltrica da Escola de Engenharia de So Carlos.
Verificou-se, principalmente, a viabilidade tcnica e usabilidade da
implementao de uma pilha de protocolos TCP/IP num sistema embarcado, possibilitando
o acesso remoto a dados deste sistema por meio de uma tecnologia extremamente
difundida e de baixo custo. No caso de microcontroladores da famlia MSP430 foi observado
que os recursos de hardware disponvel so suficientes para atender aos requisitos gerados
por uma implementao do protocolo TCP/IP e uma aplicao especfica do usurio.
Observa-se ainda que, para aplicaes especficas num hardware de poucos
recursos, uma implementao simplificada dos protocolos especificados pelas RFCs da
IETF pode atender s demandas especficas da situao. No projeto deste trabalho foi
implementado um servidor HTTP extremamente simplificado, mas que atendia perfeitamente
a demanda gerada pelo problema proposto.
Ainda com relao pilha TCP/IP, uma sugesto para trabalhos futuros o
incremento das funcionalidades da pilha TCP/IP descrita em Dannenberg (2004), de forma a
diminuir as limitaes das implementaes dos protocolos de camada 3 e camada 4
presentes neste trabalho. Aliado a esse desenvolvimento interessante observar se este
incremento de funcionalidades pode sobrecarregar um sistema de baixo poder de
processamento.
Observou-se ainda neste trabalho a funcionalidade dos controladores PID,
altamente utilizados em sistemas de automao industrial. Isso se deve ao fato, tambm
observado durante o projeto, destes controladores serem adequados para uma variedade de
sistemas dinmicos, apresentando robustez e principalmente facilidade de configurao.
Existem vrios mtodos que possibilitam o ajuste dessa classe de controladores de maneira
visual, sem a necessidade da realizao de clculos baseados na dinmica de cada sistema
que se deseja controlar. Isso possibilita um nmero maior de pessoas qualificadas para
projetar, operar e ajustar sistemas de controle de processos industriais baseados em
controladores PID.
Aps o projeto possvel realizar uma anlise da plataforma de desenvolvimento
Easyweb2, utilizada como base para os trabalhos realizados. Verifica-se a viabilidade
tcnica da utilizao de uma plataforma do tipo para o desenvolvimento de projetos de
sistemas digitais, uma vez que solues podem ser implementadas sem necessidade inicial
de um projeto de hardware. Isso poupa tempo no desenvolvimento, pois o projeto de
50

hardware pode ser realizado quando a soluo desenvolvida toma um formato mais slido,
evitando retrabalho.
Uma melhoria extremamente desejvel para o projeto do controlador presente
neste trabalho o aumento do nmero de bits utilizados na converso digital-analgica, na
sada do controlador. O aumento da resoluo do barramento de sada pode auxiliar a sanar
pequenas oscilaes observadas no sistema quando da realizao dos testes do
controlador projetado.
Uma sugesto de continuidade deste trabalho a adio de um algoritmo de
auto-tunning ao sistema, permitindo um ajuste timo das constantes do controlador,
facilitando a configurao do mesmo.

51

Referncias Bibliogrficas


BERNERS-LEE, T.; FIELDING, R.; FRYSTYK, H. RFC 1945 Hypertext Transfer Protocol --
HTTP/1.0. Maio, 1996. Disponvel em <http://www.faqs.org/rfcs/rfc1945.html>. Acesso em
25/10/2009.

DANNENBERG, A. MSP430 Internet Connectivity. Application Note. Fevereiro, 2004.

DORF, R.; BISHOP, R. Sistemas de Controle Moderno. Trad. de Bernardo S. da Silva F.
Rio de Janeiro, Ed. LTC, 2001.

BAZANELLA, A; SILVA, J. Ajuste de Controladores PID. Disponvel em
<http://www.ece.ufrgs.br/~jmgomes/pid/Apostila/apostila/>. Acesso em 07/09/2009

HORNIG, C. RFC 894: A Standard for the Transmission of IP Datagrams over Ethernet
Networks. Abril, 1984. Disponvel em <http://www.faqs.org/rfcs/rfc894.html>. Acesso em
23/10/2009.

LOURENO, J. Sintonia de Controladores PID. Escola Superior de Tecnologia de Setbal,
1996, 12p.

OGATA, K. Engenharia de Controle Moderno. Rio de Janeiro: Prentice Hall do Brasil, 1985.

POSTEL, J. RFC 791: Internet Protocol. Setembro, 1981. Disponvel em
<http://www.faqs.org/rfcs/rfc791.html>. Acesso em 23/10/2009.

POSTEL, J. RFC 792: Internet Control Message Protocol. Setembro, 1981. Disponvel em
<http://www.faqs.org/rfcs/rfc792.html>. Acesso em 23/10/2009.

POSTEL, J. RFC 793: Transport Control Protocol. Setembro, 1981. Disponvel em
<http://www.faqs.org/rfcs/rfc793.html>. Acesso em 23/10/2009.

SILVA, J. M. G. O Controlador PID. 2000. Disponvel em:
<http://www.ece.ufrgs.br/~jmgomes/pid/Apostila/apostila/node24.html>.
Acesso em 30/09/2009.

52

TANENBAUM, A. S. Redes de Computadores. Trad. de Vanderberg de Souza. 4 Edio.
Rio de Janeiro, Ed. Elsevier, 2003.

TEXAS INSTRUMENTS. MSP430x1xx Family: Users Guide. 432f. Dallas, 2005.

TEXAS INSTRUMENTS. MSP430x13x, MSP430x14x, MSP430x14x1 Mixed Signal
Microcontroller. Datasheet. Dallas, 2004.



53

Apndice A Algoritmo do mdulo Ethernet


54

Apndice B Algoritmo da funo DoNetworkStuff()