Вы находитесь на странице: 1из 58

www.mecatronicadegaragem.blogspot.com.

br

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE


CENTRO DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA DA COMPUTAO E AUTOMAO

DESENVOLVIMENTO DE UM SISTEMA
DE TELEMETRIA REMOTA

Victor Hugo Freitas de Oliveira

Orientador: Prof. Dr. Andrs Ortiz Salazar

Natal, Junho de 2009

www.mecatronicadegaragem.blogspot.com.br

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE


CENTRO DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA DA COMPUTAO E AUTOMAO

DESENVOLVIMENTO DE UM SISTEMA
DE TELEMETRIA REMOTA
Trabalho de Concluso de Curso,
submetido
Engenharia

ao
de

Departamento
Computao

de
e

Automao do Centro de Tecnologia


da

Universidade

Federal

do

Rio

Grande do Norte, como parte dos


requisitos necessrios para obteno
do grau de Graduado.

Autor: Victor Hugo Freitas de Oliveira


Orientador: Prof. Dr. Andrs Ortiz Salazar

Natal, Junho de 2009

www.mecatronicadegaragem.blogspot.com.br

Agradecimentos
Aos meus pais, por terem me dado oportunidade de uma boa educao.
Aos meus amigos, por me apoiarem ao longo dessa jornada.
Ao prof. Andrs Ortiz Salazar, pela ajuda ao longo de todo o curso, sendo um grande
responsvel pela minha formao acadmica e profissional.
Ao prof. Andr Laurindo Maitelli e a toda equipe do Laboratrio de Automao em
Petrleo LAUT, pela oportunidade de trabalho em um ambiente de muito
profissionalismo, mas ao mesmo tempo de companheirismo, resultando em uma
aprendizagem contnua.
Aos demais professores do Departamento de Engenharia de Computao e Automao,
pela dedicao ao nosso aprendizado.

www.mecatronicadegaragem.blogspot.com.br

Resumo
Este trabalho aborda o desenvolvimento de um sistema de telemetria remota. Ele
capaz de se comunicar, atravs do protocolo de redes industriais Modbus, com um
dispositivo que realiza medies quaisquer. Essa comunicao realizada para a
obteno dos dados de um determinado instante. O sistema capaz de armazenar
temporariamente esses dados e envi-los para um servidor, atravs de uma conexo
Internet.
O servidor recebe essas informaes e as armazena em um banco de dados.
Ento, permite que softwares clientes realizem a visualizao desses dados, de acordo
com sua prpria interface.

www.mecatronicadegaragem.blogspot.com.br

Sumrio
1.
2.

Introduo................................................................................................................. 8
Fundamentao terica ........................................................................................... 10
2.1.
Microcontrolador PIC..................................................................................... 10
2.1.1. Arquitetura.................................................................................................... 10
2.1.2. Hardwares incorporados ............................................................................... 13
2.1.3. Interrupes .................................................................................................. 14
2.2.
Rede GSM ...................................................................................................... 15
2.2.1. Estao Mvel (MS)..................................................................................... 16
2.2.2. Sistema de estao base (BSS) ..................................................................... 17
2.2.3. Sistema de comutao de rede (NSS)........................................................... 18
2.3.
Tecnologia GPRS ........................................................................................... 20
2.3.1.
Arquitetura GPRS................................................................................... 21
2.3.2.
Protocolos da rede GPRS ....................................................................... 24
2.3.3.
Tarifao................................................................................................. 25
3. Softwares e hardwares utilizados ........................................................................... 26
3.1.
PIC18F2525.................................................................................................... 26
3.2.
Modem GSM .................................................................................................. 28
3.3.
Compilador CCS ............................................................................................ 30
3.4.
Gravador PicBurner........................................................................................ 31
3.5.
Relgio de Tempo Real - DS1307.................................................................. 32
3.6.
Biblioteca LibModbus .................................................................................... 33
3.7.
PostgreSQL..................................................................................................... 34
3.7.1.
libpq........................................................................................................ 35
4. Desenvolvimento .................................................................................................... 36
4.1.
Descrio do projeto....................................................................................... 36
4.2.
Mdulo Embarcado ........................................................................................ 38
4.2.1.
Algoritmo do microcontrolador PIC18F2525 ........................................ 41
4.3.
Mdulo Servidor............................................................................................. 49
4.3.1. Cliente exemplo............................................................................................ 53
5. Concluso ............................................................................................................... 55
6. Referncias ............................................................................................................. 57

www.mecatronicadegaragem.blogspot.com.br

Lista de figuras
Figura 2.1 Arquitetura da rede GSM ........................................................................... 16
Figura 2.2 Formato do IMEI ....................................................................................... 19
Figura 2.3 Evoluo do sistema de telefonia mvel celular ........................................ 21
Figura 2.4 Arquitetura GPRS ...................................................................................... 22
Figura 2.5 Camadas de protocolo da rede GSM.......................................................... 24
Figura 3.1 Gravador PicBurner USB........................................................................... 31
Figura 3.2 Diagrama de blocos do DS1307................................................................. 32
Figura 4.1 Esquema do circuito eletrnico.................................................................. 38
Figura 4.2 Foto do Mdulo Embarcado....................................................................... 39
Figura 4.3 Ligao entre DS1307 e o PIC18F2525 .................................................... 40
Figura 4.4 Fluxograma da funo main() .................................................................... 42
Figura 4.5 Fluxograma da interrupo da USART...................................................... 44
Figura 4.6 Fluxograma da funo trata_rtc() ........................................................... 45
Figura 4.7 Fluxograma da funo processamento()................................................. 46
Figura 4.8 Fluxograma da funo captura_dados() ................................................. 47
Figura 4.9 Fluxograma da funo conecta() ............................................................ 47
Figura 4.10 Fluxograma da funo envia().............................................................. 48
Figura 4.11 Fluxograma da funo envia_dado() .................................................... 49
Figura 4.12 Fluxograma da thread main()................................................................... 51
Figura 4.13 Fluxograma da thread servidor() ............................................................. 52
Figura 4.14 Fluxograma da thread cliente()................................................................ 52
Figura 4.15 Tela de login do software cliente-exemplo .............................................. 53
Figura 4.16 Tela principal do software cliente-exemplo............................................. 54
Figura 4.17 Tela da ao Ver Dados da UTR .......................................................... 54

www.mecatronicadegaragem.blogspot.com.br

Lista de tabelas
Tabela 2.1 Modificaes da rede GSM para se adequar tecnologia GPRS.............. 21
Tabela 3.1 Especificaes tcnicas do PIC18F2525 ................................................... 27
Tabela 3.2 Principais comandos/respostas AT utilizados no projeto .......................... 28
Tabela 3.3 Parmetros de especificao do cristal ...................................................... 33

www.mecatronicadegaragem.blogspot.com.br

1. Introduo
Hoje em dia, o mercado mundial encontra-se bastante acirrado, com elevados
nveis de concorrncia e diversas empresas buscando apenas um pequeno detalhe que a
diferencie das demais, a fim de obter maior xito (lucro) que suas concorrentes. Pode-se
dizer que as principais buscas das empresas se resumem em trs categorias: reduo de
custos, maior confiabilidade de seus produtos e uma maior segurana (para seus clientes
e funcionrios).
Com o avano da tecnologia, uma das formas para acentuar essas caractersticas
o emprego da automao. Para o trabalho em questo, muito importante o avano
significativo das tecnologias de transmisso sem fio, mais especificamente o avano dos
sistemas de telefonia mvel, e a expanso da Internet, na qual ela a protagonista de
uma convergncia tecnolgica, aonde os mais diversos dispositivos eletrnicos possuem
a capacidade de estabelecer comunicao com a mesma.
neste cenrio tecnolgico que este trabalho apresenta um sistema de telemetria
remota, capaz de automatizar processos que necessitem enviar informaes de
monitorao de um dispositivo, no qual o mesmo no se encontra conectado a nenhuma
rede local. O foco principal do trabalho so os sistemas de medio de gua/luz e a
monitorao de tubulaes de gs, seja para fins fiscais ou no.
O sistema proposto neste trabalho composto por dois principais mdulos:
Mdulo Embarcado e o Mdulo Servidor. O Mdulo Embarcado tem como funo
capturar as informaes do dispositivo, armazen-las temporariamente e envi-las ao
Mdulo Servidor. Este ltimo deve ser capaz de receber essas informaes e armazenlas em um banco de dados. Alm disso, deve permitir que programas clientes se
conectem ao Mdulo Servidor e visualizem as informaes contidas no banco de dados,
de forma intuitiva e adaptvel.
O captulo 2 deste trabalho apresenta os principais conceitos tericos necessrios
para o desenvolvimento do projeto exposto. Aborda as principais caractersticas dos
microcontroladores da famlia PIC, detalhando sua arquitetura, os principais hardwares
incorporados internamente em seus chips e as principais interrupes.
Ainda no captulo 2, so descritas as caractersticas da rede GSM, explicando a
sua arquitetura e seus principais componentes, servindo como base para o estudo da
tecnologia GPRS, a qual ferramenta indispensvel no projeto proposto. Sobre o
GPRS, so mostradas as alteraes ocorridas da rede GSM padro, falando sobre cada
8

www.mecatronicadegaragem.blogspot.com.br

mudana e novos componentes, alm dos principais protocolos existentes em uma rede
GPRS.
O captulo 3 aborda os softwares e hardwares utilizados para o desenvolvimento
do projeto. Em cada tpico mostrado apenas as principais caractersticas do
determinado produto, enfatizando as funcionalidades exploradas pelo projeto. Os itens
abordados so: PIC18F2525, Modem GSM, compilador CCS, gravador PicBurner,
DS1307, LibModbus e PostgreSQL.
O captulo 4 apresenta o desenvolvimento do projeto, dando uma explicao
mais detalhada sobre o funcionamento geral do sistema. Depois, mostra como foram
desenvolvidos os Mdulos integrantes e os algoritmos que o compem.
O captulo 5 apresenta as concluses finais do projeto, alm de indicar os
detalhes que faltam para tornar o projeto um produto comercial. Tambm so
apresentadas algumas melhorias que podem ser desenvolvidas para tornar o projeto
ainda mais atrativo.

www.mecatronicadegaragem.blogspot.com.br

2. Fundamentao terica
2.1. Microcontrolador PIC
O PIC pertence a uma famlia de microcontroladores de arquitetura Harvard
produzido pela Microchip Technology, derivado do PIC1640, originalmente
desenvolvido pela General Instruments Microelectronics Division. O nome PIC
inicialmente se referia a Peripheral Interface Controller (Controlador de Interfaces
Perifricas) [13].
Essa famlia de microcontroladores bastante popular entre profissionais da rea
de eletrnica, assim como com hobbystas, devido a seu baixo custo; grande
disponibilidade no mercado nacional; extenso material para consulta, como livros
especializados, artigos em revistas especializadas, fruns e sites dedicados na internet;
disponibilidade de ferramentas de desenvolvimento de baixo custo e at mesmo grtis; e
possibilidade de programao (e re-programao com a memria flash) pela porta serial
e, ultimamente, j so encontrados hardwares que realizam a programao do PIC pela
porta USB.

2.1.1. Arquitetura
A arquitetura do PIC tipicamente minimalista. Suas principais caractersticas
so:

Memria de dados independente da memria de programa (arquitetura Harvard);

Um pequeno nmero de instrues de tamanhos fixos;

A maioria das instrues so executadas em um nico ciclo (4 perodos de


clock), com espera de um ciclo nas instrues de desvio;

Um nico acumulador (W);

Toda a memria de dados funciona como registradores para fonte ou destino de


funes matemticas e outros tipos;

Uma pilha implementada em hardware para armazenas os endereos de retornos


(usados nas chamadas de funes);

Memria de dados mapeia os registradores da CPU, das Portas de I/O e dos


perifricos;
Diferente da maioria das CPUs existentes, no h distino entre memria e

registradores, pois a memria RAM realiza os servios da memria e dos registradores.


10

www.mecatronicadegaragem.blogspot.com.br

Assim, a memria RAM usualmente chamada como o registrador de arquivos ou


apenas os registradores.

Espao de dados - RAM


Os PICs possuem um grupo de registradores que funcionam como memria de
uso geral. Registradores especiais para controlar os hardwares embutidos no
microcontrolador tambm so mapeados no espao de dados. O endereamento da
memria depende da srie do dispositivo, mas todas as sries possuem mais de um
banco de memria, o que facilita o endereamento de toda a memria.

Memria de programa
Todos os PICs possuem a arquitetura Harvard, ento a memria de dados e a
memria de programa so separadas. A memria de programa geralmente so
implementadas em EPROM, ROM ou flash ROM. Em geral, os dispositivos de
memria externa no so endereados diretamente devido a falta de uma interface
prpria para este fim. A exceo so alguns microcontroladores da srie 18F.

Tamanho da palavra
O tamanho da palavra dos PICs uma fonte de muita confuso. Todos os PICs
(exceto os dsPICs) trabalham com dados de 8 bits (1 byte), ento eles deveriam ser
chamados de microcontroladores de 8 bits. Mas ao contrrio da maioria das CPUs, os
PICs usam a arquitetura Harvard, ento o tamanho da instruo pode ser diferente do
tamanho do dado. Na verdade, famlias diferentes de PICs usam instrues de
tamanhos diferentes, o que torna um desafio comparar o tamanho do cdigo de um PIC
com outros microcontroladores. Por exemplo, digamos que um microcontrolador tenha
6144 bytes de memria de programa para um PIC de 12 bits, isso resulta em 4096
palavras ou instrues; para um PIC de 16 bits, resulta em 3072 palavras.

Pilha
Os microcontroladores da Microchip Technology possuem um hardware
chamado pilha, o qual usado para salvar endereos de retorno quando uma funo
chamada e no uso de desvios. Essa pilha no era acessada por software, at a criao da
srie 18F, o que resultou em um dispositivo mais amigvel para os compiladores de
linguagens de alto nvel.
11

www.mecatronicadegaragem.blogspot.com.br

Conjunto de instrues
Os PICs usam um conjunto de instrues RISC, as quais variam de 35
instrues para os PICs das sries 12 e 16 at cerca de 80 instrues para os da srie
18. O conjunto de instrues inclui instrues que realizam uma variedade de operaes
entre o acumulador e uma constante ou entre o acumulador e um endereo de memria,
bem como possibilita a incluso de cdigos condicionais, simplesmente pulando o
cdigo ou realizando chamadas de funes, sempre retornando aps a execuo.
Algumas operaes, como ativao e teste de bits, podem ser realizadas em
qualquer registrador, mas operaes aritmticas com dois operandos sempre envolvem o
acumulador W (por exemplo, a operao soma s pode ser realizada entre um
registrador e o acumulador). O mesmo ocorre na atribuio de uma constante a um
registrador. Para realizar uma cpia entre dois registradores, apenas a srie 18 permite
que seja realizada diretamente, nas sries mais antigas necessria a copia intermediria
para o acumulador W.
A arquitetura do PIC no possui suporte de hardware para realizar
automaticamente a cpia do estado do processador quando ocorre uma interrupo. A
srie 18 aprimorou esta situao, implementando registradores sombra, o qual salva as
informaes contidas nos principais registradores (especialmente os propsito
especfico) quando ocorre uma interrupo.
Em geral, as instrues do PIC se enquadram em uma das categorias abaixo:
1. Operaes com o acumulador W e uma constante. O resultado sempre
armazenado no prprio acumulador;
2. Operaes com o acumulador W e um registrador indexado. O resultado pode
ser salvo no acumulador ou no registrador informado;
3. Operaes com bits. Elas recebem como parmetro o nmero do registrador e o
nmero do bit que se deseja operar. As aes permitidas so: ativar, desativar e
testar se o bit est ativado ou no, aps o teste realizado (ou no) um desvio;
4. Transferncia de controle. So as operaes call (chamada de funo) e
goto;
5. Algumas operaes com nenhum operando, como return, que retorna de uma
funo, e sleep, que coloca o microcontrolador em um estado de baixo
consumo.

12

www.mecatronicadegaragem.blogspot.com.br

2.1.2. Hardwares incorporados


Os microcontroladores da famlia PIC possuem em seu chip vrios mdulos de
hardware j incorporados. Os principais so:

Osciladores internos (geradores de clock);

Timers de 8/16/32 bits;

Memria EEPROM interna;

Interface serial sncrona e assncrona (USART);

Comunicao serial por MSSP, que pode funcionar com os protocolos: IC e


SPI;

Mdulos Captura/Compara e PWM (CCP);

Conversores analgico/digital;

Suporte para a interface USB;

Suporte para a interface Ethernet;

Suporte para a interface CAN;

Transmissores de rdio-frequncia integrados (PIC16F639 e rfPIC)

USART Universal Synchronous Asynchronous Receiver Transmitter


A USART, tambm conhecida como SCI (Serial Communications Interface
Interface de comunicao serial), um mdulo responsvel pela comunicao serial
entre perifricos (inclusive entre outro microcontrolador) [14]. Ela pode ser configurada
como um sistema assncrono full-duplex, o qual pode se comunicar com dispositivos
como terminais CRT e computadores de forma geral. Tambm pode ser configurada
para operar como um sistema sncrono half-duplex, se comunicando com dispositivos
conversores Analgico/Digital ou Digital/Analgico, memrias EEPROM seriais e etc.
No modo half-duplex, a USART pode operar como mestre ou como escravo.

Protocolo IC
Com o intuito de aumentar a eficincia do hardware e diminuir a complexidade
dos circuitos eletrnicos, a Philips desenvolveu, em meados de 1996, o protocolo de
comunicao serial IC. Algumas de suas principais vantagens so [15]:

Organizao funcional em blocos, resultando em um simples diagrama


esquemtico;

13

www.mecatronicadegaragem.blogspot.com.br

Endereamento e protocolo de transferncia de dados totalmente definidos via


software;

Incluso e excluso de dispositivos em um barramento sem afetar o seu


funcionamento;

Bibliotecas

disponveis

pela

comunidade

do

protocolo

facilitam

desenvolvimento de aplicaes utilizando o IC;


O barramento IC possui duas linhas de comunicao: a SDA (Serial Data),
responsvel pela transmisso dos dados; e a SCL (Serial Clock), responsvel pela
transmisso do sinal de clock. Ambas as linhas so bi-direcionais e so conectadas ao
positivo do circuito atravs de um resitor de pull-up. A taxa de transferncia mxima do
barramento de 100kbits/s no modo padro, chegando at a 400kbits/s no modo rpido.
Todo dispositivo possui um endereo nico no barramento e qualquer
dispositivo conectado pode operar como transmissor ou receptor. O nmero de
interfaces conectadas ao barramento depende apenas da capacitncia mxima do
barramento, que de 400pF.
Para a comunicao ser realizada com sucesso, necessrio que a linha SDA
permanea estvel durante todo o perodo em que o clock esteja no nvel lgico alto.
Quando o clock estiver em nvel lgico baixo, permitido realizar mudanas na linha
SDA. O procedimento para a realizao da comunicao entre dispositivos detalhado
a seguir:
1. O dispositivo master ajusta a condio inicial;
2. O dispositivo master envia 7 bits de endereamento, caso seja utilizado o modo
padro. Para o modo estendido so usados 10 bits;
3. O dispositivo master envia o bit de RW ;
4. O dispositivo slave envia o sinal de reconhecimento (ACK);
5. Um dispositivo envia dados em forma de pacotes de 8 bits, que so respondidos
por um sinal de reconhecimento do dispositivo destinatrio;
6. O dispositivo master encerra a comunicao.

2.1.3. Interrupes
Uma funcionalidade muito importante dos microcontroladores da famlia PIC
a existncias das interrupes. Elas permitem que seja executado um trecho especfico
de cdigo toda vez que uma determinada ao ocorrer ou que determinada condio seja
determinada. Aps a execuo do cdigo informado, a CPU retorna a execuo da
14

www.mecatronicadegaragem.blogspot.com.br

tarefa que ora realizava. Nas sries 12 e 16, no realizada a cpia do contedo de
nenhum registrador (exceto o registrador PC Program Counter, necessrio para o
retorno da execuo do programa executado) [14], portanto, ela deve ser realizada via
software. Na srie 18 realizada a cpia do acumulador W e do registrador de STATUS
[1], caso essa funcionalidade no seja desejada possvel desativ-la.
As principais interrupes e suas explicaes so dadas a seguir:

Interrupo externa  Ocorre na alterao do pino RB0, de acordo com a borda


de sensibilidade configurada, que pode ser na alterao de nvel lgico baixo
para alto ou o contrrio. Alguns PICs possuem mais de um pino para
interrupo externa, obedecendo a seqncia RB1 e RB2;

Overflow dos timers  Ocorre quando um timer estoura a sua capacidade de

contagem. Por exemplo, o timer0 possui 8 bits, ento quando ele alcanar o
valor de 255, no prximo incremento, ocorrer um estouro de sua capacidade e a
interrupo ir ser disparada (caso a mesma esteja ativada);

Alterao do PORTB  Ocorre aps uma alterao em qualquer dos pinos RB7
a RB4;

USART  De acordo com sua configurao, ocorre quando um dado for


recebido ou enviado pela porta serial;

Converso

A/D

finalizada

Ocorre

sempre

que

uma

converso

Analgico/Digital finalizada;

Escrita na EEPROM finalizada  Ocorre no momento em que uma escrita na


memria de dados EEPROM concluda;

SSP  Ocorre aps um recebimento ou envio de dados nas portas destinadas a


esse tipo de comunicao. Pode ser utilizada tanto no modo IC como no modo
SPI.

2.2. Rede GSM


A rede GSM Global System for Mbile communications teve como objetivo
criar um padro de telefonia celular mais abrangente possvel, portanto, ela utilizou de
interfaces abertas e padronizadas, permitindo a combinao de componentes de diversos
fabricantes, resultando em uma arquitetura flexvel e bastante competitiva
comercialmente.

15

www.mecatronicadegaragem.blogspot.com.br

Sua arquitetura dividida em quatro grupos, que formam a PLMN (Public Land
Mbile Network rede mvel pblica terrestre). A Figura 2.1 [16] apresenta a

interligao desses grupos, os quais so descritos a seguir:

Figura 2.1 Arquitetura da rede GSM

Estao mvel (MS Mobile Station)  responsvel pela conexo do


assinante rede GSM. considerado um MS qualquer dispositivo de
comunicao de dados, voz e imagem.

Sistema de estao base (BSS Base Station System)  responsvel pelas


conexes de radiofreqncia da MS para o sistema de comutao;

Sistema de comutao de rede (NSS Network Switching System)  Realiza o


processamento das informaes atravs de interfaces e protocolos e o
gerenciamento do banco de dados. Assim, possvel conectar a rede GSM
rede pblica (RTPC Rede Telefnica Pblica Comutada);

Sistema de operao e manuteno (OMS Operations and Maintenance


System)  Realiza a administrao, operao e manuteno dos grupos

componentes.

2.2.1. Estao Mvel (MS)


A estao mvel constituda pelo equipamento mvel (ME Mobile
Equipment) e pelo mdulo de identidade do assinante (SIM Subscriber Identity
Module). O equipamento mvel responsvel pela interligao entre o assinante e

rede GSM. Ele possui uma identificao chamada identidade internacional do

16

www.mecatronicadegaragem.blogspot.com.br

equipamento mvel (IMEI International Mbile Equipment Identity). Os nmeros


IMEIs so armazenados no registro de identidade de equipamento, abordado nas
prximas sees.
O processamento e a tarifao das chamadas so realizados a partir das
informaes contidas no carto SIM e no no MS. Portanto, para obter uma linha
habilitada em um MS, necessrio adquirir um carto SIM com uma operadora de
telefonia celular, o qual poder ser usado em qualquer regio que possua um terminal
GSM compatvel com o sistema da operadora.

2.2.2. Sistema de estao base (BSS)


O sistema de estao base (BSS Base Station System) responsvel pela
conexo entre a MS e a central de comutao celular (MSC Mobile Services Centre).
Ele constitudo por trs elementos, so eles:

Estao transceptora base (BTS Base Transceiver Station);

Controlador de estao base (BSC Base Station Controller);

Transcodificador (XCDR Transcoder).

Estao transceptora base (BTS)


A BTS prov as conexes na interface area com a MS. Ela basicamente
composta por um hardware de radiofreqncia e de antenas. A BTS sempre est
interligada a BSC, e ambos realizam as funes de gerncia dos canais de trfego e
controle na interface area.

Controlador de estao base (BSC)


O BSC responsvel por controlar um grupo de BTSs. Todas as operaes de
uma BTS so comandadas pelo seu respectivo BSC. Atravs de uma matriz de
comutao digital, as BSCs conectam os canais de RF com os circuitos terrestres
provenientes da central de comutao celular. Com essa tcnica, o BSC capaz de
realizar handovers entre os canais de RF independente da MSC, o que otimiza o trfego
na interface area e reduz o trabalho da MSC.

Transcodificador (XCDR)

17

www.mecatronicadegaragem.blogspot.com.br

O transcodificador o elemento encarregado de converter os sinais de voz


provenientes da MSC no padro especificado pelas normas GSM, utilizado na
transmisso sobre a interface area.

2.2.3. Sistema de comutao de rede (NSS)


O sistema de comutao de rede (NSS Network Switching System)
responsvel pelas funes de comutao, controle e gerenciamento da mobilidade e da
base de dados dos assinantes em uma rede GSM. Seus principais componentes so:

Central de comutao mvel (MSC Mobile services Switching Centre);

Registro de localizao local (HLR Home Location Register);

Registro de localizao de visitante (VLR Visitor Location Register);

Centro de autenticao (AuC Authentication Centre);

Registro de identidade de equipamento (EIR Equipment Identity Register);

Funo de interfuncionamento (IWF InterWorking Function);

Supressor de eco (EC Echo Canceler).

Central de comutao mvel (MSC)


A MSC o corao do sistema de comutao de rede. Ela a encarregada de
conectar e desconectar chamadas, promover handover entre BSSs e MSCs;
supervisionar, manter e operar as bases de dados; gerenciar as interfaces entre a rede
GSM e outras redes, como a RTCP e a Rede Digital de Servios Integrados (RDSI); e
tarifar os servios.
Para realizar todas essas funes, a MSC precisa estar conectada aos bancos de
dados que possuem essas informaes. Dois componentes possuem grande parte dessas
informaes: o HLR e o VLR.

Registro de localizao local (HLR)


O HLR administra, altera e atualiza a base de dados dos assinantes locais. Esses
dados so acessados remotamente pelo MSC e pelo VLR. Os principais dados
armazenados pelo HLR so:

Identidade internacional do assinante (IMSI International Mbile Subscriber


Identity);

Localizao corrente do assinante no VLR;

18

www.mecatronicadegaragem.blogspot.com.br

Servios suplementares associados ao assinante;

Estado do assinante;

Chave de autenticao.

Registro de localizao de visitante (VLR)


Pode acontecer de um assinante passar para outra PLMN que no a sua de
origem, o que bvio em se tratando de sistemas de comunicao mveis. Para se
realizar a comunicao com esse usurio visitante, existe o VLR. Ele guarda uma cpia
dos principais dados do assinante, contidos no seu HLR de origem. Essas informaes
so:

Estado da estao mvel (livre/ocupado/no responde);

Identidade de rea de localizao (LAI Location rea Identity);

Identidade temporria do assinante mvel (TMSI Temporary Mobile


Subscriber Identity);

Nmero da estao mvel visitante (MSRN Mobile Station Roaming Number).

Centro de autenticao (AuC)


Normalmente instalado no mesmo hardware do HLR, o AuC tem as funes de
autenticar e criptografar as mensagens, impedindo ataques rede, principalmente a
clonagem de MS. Esses processos so executados simultaneamente no AuC e na MS.

Registro de identidade do equipamento (EIR)


O registro de identidade de equipamento contm a base de dados centralizada
dos nmeros de identidade internacional do equipamento mvel (IMEI). A Figura 2.2
apresenta o formato do IMEI e a seguir so dadas explicaes sobre cada campo.

Figura 2.2 Formato do IMEI

Type Approval Code (TAC)  6 dgitos que representam o cdigo de aprovao

do ME;
19

www.mecatronicadegaragem.blogspot.com.br

Final Assembly Code (FAC)  2 dgitos que identificam o local de manufatura

ou montagem final do ME;

Serial Number (SNR)  6 dgitos que identificam o nmero de srie para cada

TAC e FAC de uma ME;

Software Version Number (SVN)  2 dgitos decimais que identificam o

nmero da verso de software instalado no ME

Funo de interfuncionamento (IWF)


O IWF responsvel por realizar o interfaceamento entre a rede GSM com
outras redes de dados, como a internet, por exemplo. sua funo adaptar a taxa de
dados e converter os protocolos quando necessrio. Essas atividades so realizadas por
um conjunto de MODEMs.

Supressor de eco (EC)


O supressor de eco responsvel por eliminar o efeito de eco presente nas
conexes entre a MSC e a RTPC. Esse efeito pode ocorrer por diversos fatores, alguns
dos principais so: atraso de propagao na interface area; atraso de propagao devido
ao processo de transcodificao; e gerao de eco na bobina hbrida.

2.3. Tecnologia GPRS


Com a evoluo da comunicao sem fio e a tendncia de convergncia das
tecnologias, com a crescente expanso da internet, criou-se uma necessidade da
utilizao de novos servios pelos usurios dos telefones mveis celulares. Os
principais servios demandados pela sociedade moderna podem ser classificados nos
seguintes grupos:

Comunicao  Acesso a internet, e-mail e fax;

Servios de entretenimento  Jogos em modo multi-jogador, aonde necessria


a utilizao de uma rede de dados;

Comrcio eletrnico  venda de ingressos, acesso a bancas, compras pela


celular (acessando a web), informaes sobre promoes, recebimento de
passagens areas e etc.
Com base nessa tendncia, o sistema de telefonia mvel celular sofreu vrias

evolues. Atualmente se encontra implantada os sistemas de 3 gerao, e j ocorrem

20

www.mecatronicadegaragem.blogspot.com.br

estudos para uma nova expanso, resultando em uma 4 gerao. A Figura 2.3 apresenta
essa evoluo.

Figura 2.3 Evoluo do sistema de telefonia mvel celular

Nessa seo ser abordada a tecnologia GPRS (sistema 2,5G), por ainda possuir
uma abrangncia maior que as novas tecnologias, mas ao mesmo tempo ser compatvel
com possveis atualizaes (a 3G adotada pelas operadoras no Brasil totalmente
compatvel com a tecnologia GPRS).

2.3.1. Arquitetura GPRS


A arquitetura GPRS utiliza a mesma infra-estrutura bsica utilizadas nas redes
GSM comuns, realizando a incluso de novos elementos de rede e interfaces e
modificando alguns componentes j existentes. Essas alteraes tornam possvel a
transmisso de dados a uma taxa de 9,6 a 171 kbits/s (valor terico). A Figura 2.4
apresenta a arquitetura com suas modificaes.
As principais modificaes so indicadas na Tabela 2.1.
Tabela 2.1 Modificaes da rede GSM para se adequar tecnologia GPRS

Elemento de rede

Modificao ou atualizao da arquitetura GSM

Estao mvel (MS)

necessrio uma nova MS, que permanece compatvel com


todos os servios existentes anteriormente.

Estao transceptora

Necessrio uma atualizao de software nas BTSs existentes.

21

www.mecatronicadegaragem.blogspot.com.br

base (BTS)
Controlador de estao Atualizao de software e instalao de hardware novo,
base (BSC)

chamado unidade de controle de pacote PCU (Packet


Control Unit), que direciona o trfego de dados para a rede

GPRS.
SGSN e GGSN

Novos elementos de rede, chamados servidor do n de


suporte GPRS (SGSN - Serving GPRS Support Node) e
Gateway do n de suporte GPRS (GGSN Gateway GPRS
Support Node)

VLR, HLR, AuC, EIR


e todos elementos de

Atualizao do software para fornecer as funes oferecidas


pelo GPRS

base de dados

Figura 2.4 Arquitetura GPRS

A seguir sero descritos os novos elementos e servios oferecidos pela


introduo da tecnologia GPRS.

22

www.mecatronicadegaragem.blogspot.com.br

Unidade de controle de pacote (PCU)


Todos os BSCs exigem a instalao de um PCU para se integrarem rede
GPRS. Os PCUs organizam os dados vindos da BSC em pacotes e transportam-no at o
servidor do n de suporte GPRS (SGSN). O trfego de voz continua sendo tratado como
nas redes GSM comuns, ou seja, do BSS at a MSC.

Servidor do n de suporte GPRS (SGSN)


O SGSN pode ser visto como uma MSC de comutao de pacotes, ou seja, ele
responsvel por prov o ponto de acesso das MSs rede GPRS. Note que ele o SGSN
trata apenas o trfego de dados, permanecendo o tratamento do trfego de voz
inalterado. As principais funes do SGSN so:

Deteco de novos usurios GPRS na rea de servio;

Registro de novos usurios;

Criptografia dos dados;

Manuteno dos registros de localizao dos usurios na rea de servio;

Gerenciamento da mobilidade;

Compresso dos cabealhos de dados dos protocolos TCP/IP;

Tarifao das transaes na rede local;

Comunicao com o HLR, para obter dados dos usurios GPRS.

Gateway do n de suporte (GGSN)


O GGSN prov as interfaces de conexo com as redes de pacotes externas, como
IP. Todos os pacotes transferidos entre uma rede externa e o GPRS passam pelo GGSN.
Suas principais funes so:

Manter informaes de roteamento para entregar as unidades de protocolo de


dados (PDU Protocol Data Unit) ao SGSN que serve uma determinada MS;

Mapeamento dos endereos de rede e assinante, atravs do protocolo DHCP;

Tarifar as transaes efetuadas nas redes externas.

Nome do ponto de acesso (APN Access Point Name)


Em suma, APNs so endereos IP associados a cada interface externa que
conecta a rede GPRS ao GGSN. So usados para definir quais servio podem ser
acessados por um certo usurio. Consiste de:

23

www.mecatronicadegaragem.blogspot.com.br

Identificador de rede APN (Network ID): identifica o GGSN e o n externo ou


servio ao qual o usurio deseja se conectar;

Identificador da operadora APN (Operator ID): campo opcional que identifica


em qual rede backbone GPRS o GGSN est localizado.

2.3.2. Protocolos da rede GPRS


A Figura 2.5 apresenta as camadas de protocolos da rede GPRS. importante
destacar que, a partir do nvel de rede, so usados os protocolos da Internet, como IP,
TCP, UDP e etc. A seguir ser dada uma descrio dos principais protocolos da rede
GPRS.

Figura 2.5 Camadas de protocolo da rede GSM

Camada SNDCP
A camada de protocolo de convergncia dependente da sub-rede (SNDCP
SubNetwork Dependent Convergence Protocol) responsvel pela interface das

camadas de protocolo GPRS entre os elementos de rede MS e SGSN, visando o suporte


dos protocolos IP, PPP e X-25. Adicionalmente, o SNDCP realiza a compresso de
dados e cabealho, aumento a eficincia do canal. A compresso de cabealho
realizada apenas ao protocolo TCP, no sendo aplicada ao UDP.
Outra funo de grande importncia a segmentao e remontagem das
unidades de protocolo de dados (PDU Protocol Data Unit).

24

www.mecatronicadegaragem.blogspot.com.br

Camada LLC
A camada do protocolo de controle de enlace lgico (LLC Logical Link
Control) encarregada de prov o enlace lgico entre a MS e o SGSN. Suas principais

funes so:

Encapsular dados da camada SNDCP em unidades tratadas pelo LLC;

Entregar os dados da camada RLC SNDCP na ordem certa;

Se encarregar da criptografia;

Controlar o fluxo de dados;

Controlar a seqncia de pacotes;

Detectar e corrigir erros.

Camadas RLC/MAC
A camada de protocolo de controle de rdio (RLC Radio Link Control)
segmenta os quadros LLC em blocos RLC, associando um nmero de seqncia por
bloco (BSN - Block Sequence Number).
A camada de protocolo de acesso ao meio (MAC - Medium Access Control)
trata os diferentes canais lgicos a serem compartilhados por vrias MSs. Sua principal
funo definir como deve ser feito o acesso ao meio, o que corresponde funo da
camada de enlace do modelo OSI. Prov tambm mecanismos que evitam colises de
dados por pacotes no enlace reverso, o que acontece quando vrias MSs enviam pacotes
para uma mesma BTS.

2.3.3. Tarifao
Cabe aos elementos de rede SGSN e GGSN a funo de coletar as informaes
de tarifao de cada MS. O SGSN coleta as informaes referentes utilizao da rede
de rdio (RF), enquanto o GGSN coleta as informaes referentes utilizao dos
recursos de uma rede externa de dados (tipicamente, a Internet).
As principais informaes coletadas pelo SGSN so:

Volume do trfego (quantidade de bytes transferidos) de dados originados e


concludos pela MS;

Utilizao dos recursos GPRS gerais. Representa a utilizao de outros recursos


relacionados rede GPRS, como por exemplo, gerenciamento de mobilidade;
25

www.mecatronicadegaragem.blogspot.com.br

Localizao da MS durante a utilizao dos servios da rede GPRS, se local ou


visitada;
As principais informaes coletadas pelo GGSN so:

Volume do trfego (quantidade de bytes transferidos) de dados originado e


terminado pela MS em uma rede externa de dados;

Utilizao dos endereos do protocolo de dados por pacotes: representa o tempo


de utilizao dos endereos do protocolo de dados por pacotes pela MS.

3. Softwares e hardwares utilizados


3.1. PIC18F2525
O PIC18F2525 um microcontrolador da Microchip da famlia 18F, que
possuem como caractersticas gerais o alto desempenho computacional, preos
acessveis, alta resistncia e extensa memria Flash [1]. Ele um microcontrolador de 8
bits de dados e16 bits de instruo, possui 28 pinos, podendo utilizar at 25 pinos para
funes diversas de entrada e sada (caso seja utilizado um oscilador interno). Algumas
caractersticas especficas do modelo 18F2525 so:

Possui 3 modos de funcionamento: Execuo (CPU e perifricos ativados),


Espera (CPU desativado e perifricos ativados) e Dormindo (CPU e perifricos
desativados;

Apresenta um baixo consumo de corrente, com valores tpicos de 11A, 2A e


100nA, nos modos Execuo, Espera e Dormindo, respectivamente;

Suporta uma velocidade de at 40 MHz, utilizando cristal externo;

Vrias configuraes de uso do oscilador interno;

Fonte de corrente de at 25mA;

Trs fontes de interrupo externa (pinos RB0, RB1 e RB2);

Suporte ao barramento I2C nos modos Mestre e Escravo;

Avanado mdulo USART:


o Suporta os padres RS232, RS485 e LIN/J2602 (padro de comunicao
muito usado na indstria automotiva);
o Ativao automtica do perifrico (caso se encontre no modo
Dormindo), ao receber o start bit;

26

www.mecatronicadegaragem.blogspot.com.br

o Deteco automtica da taxa de transmisso;

Suporta 100.000 ciclos de gravao na memria de programa - Flash;

Suporta 1.000.000 de ciclos de gravao na memria de dados EEPROM;

Interrupes com nveis de prioridade: caso ocorra uma interrupo durante o


tratamento de outra interrupo, a que tiver a prioridade mais alta ir ser
executada primeiro;

Possui quatro timers;


Alm das caractersticas citadas acima, interessante destacar algumas

especificaes tcnicas, elas so visualizadas na Tabela 3.1.


Tabela 3.1 Especificaes tcnicas do PIC18F2525

Especificaes

Valor

Memria de programa

49152 bytes

Memria de dados

3968 bytes

Memria de dados - EEPROM

1024 bytes

Fontes de interrupo

19

Entradas analgicas

Temperatura

ambiente

de

-40 C a +125C

funcionamento
Mxima corrente de sada no

300mA

pino de terra (VSS)


Mxima corrente de entrada no

250mA

pino de alimentao (VDD)


Mxima corrente fornecida para

25mA

qualquer pino de E/S


Mxima corrente requerida para

25mA

qualquer pino de E/S


Mxima corrente fornecida para

200mA

todos os pinos de E/S


Mxima corrente requerida para

200mA

todos os pinos de E/S

27

www.mecatronicadegaragem.blogspot.com.br

3.2. Modem GSM


O Modem GSM utilizado no projeto o modem iTech G24 Serial Data Modem,
fornecido pela empresa Informat Technology [17]. O equipamento nada mais do que o
encapsulamento do mdulo GSM G24 da Motorola [6]. Ele apresenta uma conexo para
antena externa, uma entrada DB9 para conexo serial, uma entrada mini-USB, uma
entrada para a fonte de alimentao e o suporte para o SIM Card.
Para o seu funcionamento necessrio o uso de um SIM Card, igual aos
utilizados nos telefones celulares atuais (GSM). O modem apresenta todas as
caractersticas de um celular comum, podendo realizar chamadas, enviar e receber SMS
e utilizar as conexes GPRS (foco principal do projeto). O motivo da no utilizao de
um celular comum que o mesmo no projetado para as condies adversas que um
projeto especfico possa apresentar.
Uma grande vantagem do mdulo G24 da Motorola que o mesmo possui a
implementao da pilha TCP/IP, o que torna bastante fcil o uso de conexes internet.
Ele dispe de 4 sockets internos que podem ser utilizados para as conexes TCP e as
portas no intervalo de 0 a 65535. Os comandos referentes pilha TCP/IP so iniciados
por AT+MIP.
As principais especificaes tcnicas do mdulo em questo so [6]:

Quad band (850, 900, 1800 e 1900 MHz);

Temperatura de operao: -20 a +60C;

Consumo de corrente: menor que 2,5mA;

Potncia do transmissor: 1 Watt (850/900 MHz) e 2 Watts (1800/1900 MHz);

Conexes: USB e RS232;

Velocidade de transmisso GPRS: at 85,6 Kbps;

SMS: modo texto e PDU;


O mdulo G24 suporta os comandos AT padres (GSM 07.05, GSM 07.07 e

GSM 07.10), alm dos comandos proprietrios, que em sua maioria so para acessar a
pilha TCP/IP. Os principais comandos/respostas utilizados no projeto [7] so mostrados
na Tabela 3.2.
Tabela 3.2 Principais comandos/respostas AT utilizados no projeto

Comando/Resposta

Observaes

AT

Comando bsico para testar a comunicao. Retorna OK


ou ERROR.

28

www.mecatronicadegaragem.blogspot.com.br

AT&K0

Desabilita o controle de fluxo da comunicao serial.

ATE0

Desabilita o eco da comunicao serial, ou seja, o


Modem no envia os dados recebidos pela interface serial.

AT+CMGF=1

Configura as mensagens SMS para o modo texto

AT+CNMI=3,2

Faz com que as mensagens SMS recebidas sejam


encaminhas para a interface serial. Aps cada SMS, espera
o comando AT+CNMA por 60 segundos, caso no receba,
retorna a configurao para o valor padro (armazena as
mensagens na memria, sem encaminhar para o terminal).

AT+CNMA

Indica o conhecimento de que foi recebida uma nova


mensagem. Faz com que o modem mantenha a sua
configurao das mensagens SMS.

+CMT: <end. ori>, <hora>,

Indica o recebimento de uma mensagem SMS. O

<CR><LF><texto>

parmetro end. ori indica a origem da mensagem, o


parmetro hora indica a hora da central de servios da
operadora, <CR><LF> indica uma nova linha e o
parmetro texto representa o contedo da mensagem.

AT+MIPCALL=1, <APN>

Realiza a conexo com a APN indicada no parmetro.

AT+MIPCALL=0

Caso o modem esteja conectado a alguma APN, realiza a


desconexo.

+MIPCALL: <parmetro>

Resposta referente a um comando AT+MIPCALL. Caso


uma conexo tenha sido estabelecida, parmetro indica o
endereo IP obtido. Caso tenha ocorrida uma desconexo
ou a tentativa de se conectar falhou, parmetro igual a 0.

AT+MIPOPEN=<sock>,

Abre uma conexo no socket sock, utilizando a porta de

<porta ori>,<ip>,<porta

origem porta ori, com o servidor de endereo igual a ip,

dest>,<prot>

pela porta de destino porta dest e utilizando o protocolo


especificado por prot, aonde 0 significa TCP e 1 significa
UDP.

AT+MIPSEND=<sock>,

Coloca os dados contidos no parmetro dado no buffer de

<dado>

envio do socket sock. O parmetro dado aceita dados no


cdigo ASCII e na sua representao hexadecimal.

AT+MIPPUSH=<sock>

Fora o envio imediato dos dados contidos no buffer do

29

www.mecatronicadegaragem.blogspot.com.br

socket sock
AT+MIPCLOSE=<sock>

Finaliza a conexo do socket sock, mas no desconecta o


Modem da APN.

+MIPRUDP: <ip ori>,

Informa que foi recebida uma mensagem UDP, do

<porta ori>, <sock>,

endereo ip ori, pela porta porta ori e com o contedo

<dado>

igual a dado.

3.3. Compilador CCS


O compilador CCS uma ferramenta muito utilizada pelos profissionais que
fazem uso dos microcontroladores da Microchip (PICs). Ele mantm uma grande
similaridade com o padro ANSI C e fornece bibliotecas prprias com um total de 307
[9] funes especficas para tornar possvel a utilizao das caractersticas fornecidas
pelos microcontroladores. Ainda fornece drivers que permitem a utilizao de diversos
componentes acessrios, como display LCD, teclado, grande nmero de memrias
EEPROM, cartes de memria MMC, sensores de temperatura, relgios de tempo real e
etc.
O projeto em questo faz uso de duas bibliotecas fornecidas pelo compilador:
modbus.c, que implementa todo o protocolo de comunicao Modbus (as principais

funes e os dois modos de funcionamento, mestre e escravo), utilizando pinos de E/S


do PIC para realizar a comunicao RS232; e ds1307.c, que fornece funes para a
configurao e a leitura dos dados desse circuito integrado, capaz de implementar um
relgio de tempo real.
Outras caractersticas do compilador podem ser citadas [9], so elas:

Tipo de varivel de 1 bit, o que permite a criao de cdigos mais eficientes;

Constantes salvas na memria de programa (mais abundante que a memria de


dados);

Permite strings de tamanho varivel;

Apresenta vrias opes de formatao para a funo printf(), tornando prtico


a exibio das variveis em algum determinado modelo (hexadecimal, decimal,
binrio, com N casas decimais e etc);

Permite o uso de mltiplas portas RS232 e I2C;

30

www.mecatronicadegaragem.blogspot.com.br

o Para isso, faz uso de uma implementao via software de transceptores


seriais;

Configura automaticamente a direo de cada pino (entrada ou sada) de acordo


com as funes utilizadas (input(), output_high(), output_low() e etc);

Permite o uso de funes assembly a qualquer momento.

3.4. Gravador PicBurner


Para inserir o arquivo gerado pelo compilador CCS (arquivo.hex) em um
microcontrolador necessrio um dispositivo de hardware especfico para esta
finalidade. Esse hardware chamado de gravador ou programador (o termo em ingls
programmer).

O gravador utilizado ao longo do projeto foi o PicBurner, o qual foi adquirido


em um site de compra e venda. Ele baseado no projeto Brenner8 [8], o qual um
gravador controlado por um microcontrolador em seu circuito. A sua principal
caracterstica ser um gravador USB, tornando possvel a gravao de
microcontroladores a partir de notebooks (os quais, em geral, no possuem portas
seriais). Outras caractersticas que podem ser citadas:

Grava PICs de 8, 14, 18, 28 e 40 pinos;

Grava dsPICs de 8, 18, 28 e 40 pinos;

Permite gravao In-Circuit.

No precisa de fonte de alimentao externa! Utiliza a propria alimentacao

Figura 3.1 Gravador PicBurner USB

31

www.mecatronicadegaragem.blogspot.com.br

A conexo do microcontrolador ao PicBurner feita atravs de um conector ZIF


(Zero Insertion Force Fora de Insero Nula), evitando que os pinos do
microcontrolador sejam danificados. A Figura 3.1 apresenta o gravador em questo.

3.5. Relgio de Tempo Real - DS1307


O circuito integrado DS1307 um relgio de tempo real que apresenta um
calendrio completo, alm de permitir a utilizao de 56 bytes de memria [2]. Ele
capaz de fornecer segundo, minuto, hora, dia, dia da semana, ms e ano. Os meses so
automaticamente ajustados para o seu correto nmero de dias, incluindo anos bissextos.
Permite a configurao da exibio da hora em formato de 12 (com indicao de AM e
PM) ou 24 horas. Seu encapsulamento bastante simples, apresentando apenas 8 pinos.
A Figura 3.2 apresenta o seu diagrama de blocos.

Figura 3.2 Diagrama de blocos do DS1307

O DS1307 necessita de uma bateria de 3V de backup conectada aos seus


terminais (pino 3) para um correto funcionamento. Quando a tenso de alimentao cai
abaixo de 1,25xVBAT (tenso da bateria), o circuito termina a operao que est sendo
realizado naquele momento e bloqueia novas requisies de escrita ou leitura, evitando
que dados invlidos sejam trafegados. Caso a tenso de alimentao se torne menor que
a tenso da bateria, o DS1307 muda para o modo de baixo consumo (menor que 500nA)

32

www.mecatronicadegaragem.blogspot.com.br

e passa a ser alimentado apenas pela bateria. No restabelecimento da tenso de


alimentao, o circuito passa a utiliz-la quando a mesma atingir uma valor maior que
VBAT + 0,2V e retorna a aceitar requisies de escrita e leitura quando a tenso de
alimentao atingir um valor maior que 1,25 x VBAT.
O dispositivo em questo faz uso de um cristal oscilador para o seu
funcionamento. O cristal deve ter uma freqncia igual a 32,768kHz e conectado nos
pinos 1 e 2. No necessrio o uso de capacitores de carga, mas o cristal deve obedecer
aos parmetros expostos na Tabela 3.3. A preciso obtida pelo circuito funo da
preciso do cristal e do casamento entre a carga capacitiva do circuito interno e a carga
capacitiva para o qual o cristal foi projetado, ou seja, depende da obedincia do cristal
aos parmetros da Tabela 3.3.
Tabela 3.3 Parmetros de especificao do cristal

Parmetro
Freqncia

Tpico

Mximo

32,768kHz

Resistncia srie
Capacitncia de carga

45k
12,5 pF

Ele utiliza o barramento I2C para realizar a transferncia dos dados, pinos 5
(SDA) e 6 (SCL). Alm disso, possui uma sada programvel (pino 7 SWQ/OUT). Essa
sada pode ser habilitada ou no, quando habilitada emite uma onda quadrada com uma
das quatro freqncias possveis (1 Hz, 4kHz, 8kHz e 32,768kHz). Essa configurao
feita habilitando os bits do registrador de controle do DS1307. O pino de sada
coletor-aberto, portanto, necessita a ligao de um resistor alimentao para um
correto funcionamento. A sada habilitada mesmo que o circuito se encontre
alimentado apenas com a bateria.

3.6. Biblioteca LibModbus


O projeto em questo considera como o dispositivo a ser monitorado um
equipamento industrial que permita a comunicao atravs do protocolo Modbus. Como
invivel a obteno de tal dispositivo para fins de desenvolvimento do projeto, fez-se
necessrio uma ferramenta que tornasse possvel a simulao de tal dispositivo. Para
tanto, foi utilizado a biblioteca LibModbus [10].
Ela implementa o protocolo Modbus utilizando a porta serial para a
comunicao. Ela utiliza o compilador GNU GCC para o seu funcionamento e faz uso
33

www.mecatronicadegaragem.blogspot.com.br

da biblioteca libpthread. A LibModbus permite a implementao de dispositivos


mestres e escravos, alm de apresentar algumas funes de configurao da porta serial.
Ela reconhece apenas as funes de escrita e leitura de registradores (funes 3, 4, 6 e
16), alm das funes de diagnstico (funo 7 retorna o status do software e funo 8
teste de linha). Mas para o projeto em questo as funes apresentadas atendem s
necessidades.
O software desenvolvido para simular o dispositivo industrial utiliza a
LibModbus para implementar um escravo Modbus. realizada a inicializao do mapa
de registradores com 3 variveis de 16 bits (presso, temperatura e alarmes) e 2
variveis de 32 bits (volume bruto e volume corrigido). Os valores so obtidos de
forma aleatria e a cada leitura so obtidos novos valores para as variveis. A biblioteca
em questo permite que seja configurada uma funo para ser executada toda vez que
um dado for recebido ou enviado, e dessa forma que obtido um novo valor para o
mapa de memria.

3.7. PostgreSQL
O projeto proposto necessita de uma base de dados, para tanto, foi escolhido
como o Sistema Gerenciados de Banco de Dados SGBD, o PostgreSQL. Ele possui
cdigo aberto e obedece ao paradigma objeto-relacional. Esta seo no ir explorar
toda a potencialidade do SGBD em questo, pois no estgio atual do projeto, o seu uso
foi bastante simplificado. Mas a opo pela escolha do PostgreSQL foi feita para que
seja possvel a utilizao futura de toda a sua potencialidade. Algumas de suas
principais caractersticas [11] so:

Grande confiabilidade e integridade dos dados;

Sua implementao da linguagem SQL fortemente baseada no padro ANSISQL 92/99;

Compatvel com inmeros sistemas operacionais (GNU/Linux, diversas


variaes de Unix e Windows);

Possui a maioria dos tipos de dados especificados no ISO SQL:1999;

Suporta o armazenamento de objetos binrios;


Algumas funcionalidades mais sofisticadas podem ser mencionadas, tais como:

Controle de concorrncia multiversionado;

Recuperao em um ponto no tempo;

34

www.mecatronicadegaragem.blogspot.com.br

Transaes agrupadas;

Cpias de segurana a quente;

Suporta conjuntos de caracteres internacionais;

Codificao de caracteres multibyte;

Sensibilidade a caixa (maiscula e minscula)


O PostgreSQL oferece ainda diversas bibliotecas que fazem a interface entre o

banco de dados e uma determinada linguagem de programao. Algumas das linguagens


suportadas nativamente so: C/C++, Java, Net, Perl, Python e Ruby. A linguagem
utilizada no projeto foi C/C++ e a biblioteca disponibilizada pelo PostgreSQL a libpq.

3.7.1. libpq
A biblioteca libpq a interface de programao para as aplicaes desenvolvidas
em C/C++ que desejam acessar as funes do PostgreSQL. Ela possui um conjunto de
funes que permitem que um programa cliente envie requisies para um servidor
PostgreSQL e receba os seus resultados. Os programas clientes que utilizam a libpq
devem incluir o arquivo de cabealho libpq-fe.h e utilizar a opo para realizar o link
com a biblioteca libpq.
A seguir ser dada uma breve descrio das principais funes desta biblioteca,
retirados de [12]:

PQconnectdb( char *conninfo )  Realiza a conexo com o servidor do banco


de dados de acordo com os parmetros especificados na varivel conninfo. Ela
retorna um ponteiro para a conexo (PGconn);

PQstatus(

PGconn *conn )  Indica o status da conexo passada como

parmetro;

PQexec( PGconn *conn, const char *command )  Executa o comando contido


na varivel command utilizando a conexo conn. A resposta retornada
como um ponto para uma varivel do tipo PGresult;

PQresultstatus( PGresult *res )  Indica o status da resposta passada como


parmetro;

PQclear( PGresult *res )  Limpa o contedo da varivel res;

PQfinish( PGconn *conn )  Finaliza a conexo conn;

PQnfields( PGresult *res )  Retorna o nmero de colunas (campos) contidos


na resposta de um comando SQL, armazenado em res;

35

www.mecatronicadegaragem.blogspot.com.br

PQntuples( PGresult *res )  Retorna o nmero de linhas (tupla) contidos na


resposta de um comando SQL, armazenado em res;

PQgetvalue( PGresult *res, int row_number, int column_number )  Obtm o


valor armazenado na linha e coluna indicados nos parmetros da funo. Retorna
como uma varivel do tipo char*.

4. Desenvolvimento
4.1. Descrio do projeto
O projeto consiste no desenvolvimento de uma Unidade de Telemetria Remota
UTR. Ela ser capaz de capturar dados de um dispositivo qualquer (na aplicao em
questo, est sendo considerado um dispositivo industrial) e transmitir esses dados para
um servidor, de forma totalmente remota. Para tanto, utilizado um Modem GSM
(descrito na seo anterior), o qual utiliza a internet para enviar os dados. O servidor
armazena esses dados em um banco de dados e os torna disponvel para consulta atravs
de um software cliente, que tem a opo de filtrar a visualizao desses dados da forma
mais conveniente.
A UTR composta por dois mdulos principais, referenciados ao longo do texto
como Mdulo Embarcado e Mdulo Servidor, nas prximas sees esses mdulos sero
mais detalhados, mas essa definio ir ajudar na explicao do funcionamento do
projeto, que ser dada a seguir.
O Mdulo Embarcado possui um relgio dedicado e uma configurao do
intervalo de tempo em que deve realizar leituras do dispositivo monitorado. Esse
intervalo pode ser alterado enviando um SMS para a UTR, o nmero telefnico
correspondente ao chip usado no Modem de cada UTR deve ser cadastrado no banco de
dados do Mdulo Servidor (o envio do SMS pode ser inserido ao Mdulo Servidor, mas
atualmente esta funo no est disponvel). Aps esse intervalo feita uma requisio
Modbus de leitura dos registradores desejados do dispositivo monitorado, os valores
desses registradores so armazenados no Mdulo Embarcado, alm disso,
acrescentada uma varivel que indica o nmero da mensagem e a marca de tempo em
que a leitura foi realizada.
As variveis so enviadas em uma nica mensagem para o Mdulo Servidor,
atravs do Modem GSM, o qual armazena no banco de dados os valores dos
registradores recebidos e envia uma resposta ao Mdulo Embarcado contendo o nmero
36

www.mecatronicadegaragem.blogspot.com.br

da mensagem recebida. Este ltimo compara o valor recebido com o nmero da


mensagem enviada, caso sejam iguais, ele considera o dado enviado e aguarda o tempo
configurado para uma nova leitura. Caso no seja igual ou o Mdulo Embarcado no
receba nenhuma confirmao em vinte segundos, realizada uma nova tentativa de
envio, at o limite de cinco tentativas. Se aps as cinco tentativas, o Mdulo Embarcado
no receber nenhuma confirmao, o mesmo aguarda o intervalo para uma nova leitura,
realiza esta leitura e a armazena em uma nova mensagem. Ento, envia novamente a
mensagem anterior, caso obtenha sucesso, envia imediatamente a ltima leitura. O
Mdulo Embarcado possui um buffer de at 100 mensagens.
O projeto proposto pode ser adaptado para atender diversas aplicaes comerciais e
industriais. A seguir so enumerados os principais tipos de aplicaes encontradas:
1. Monitorao de tubulaes de gs natural (temperatura, presso, volume e etc);
2. Sistemas de medio de gua/luz;
3. Substituir sistemas que utilizam como mtodo de transmisso rdios e que
apresentam baixa taxa de entrega.
Para o projeto em questo, foi adotado como exemplo um sistema de
monitorao de tubulaes de gs natural, com o intuito de ser realizada a cobrana
mensal do volume consumido por um determinado cliente.
As principais vantagens deste projeto so:

A reduo do custo, pois torna desnecessrio funcionrios dedicados a


realizarem as leituras dos dispositivos;

Uma maior segurana, j que muitas aplicaes industriais oferecem riscos


sade do ser humano;

Grande comodidade, as leituras so realizadas automaticamente e j so


armazenadas em banco de dados, aonde possvel gerar relatrios customizados
de acordo com a necessidade;

Flexibilidade, pois o horrio da leitura dos dispositivos pode ser facilmente


alterado de acordo com a necessidade;

Possui uma instalao relativamente simples;

Utiliza tecnologias que apresentam grande disponibilidade, como o protocolo


Modbus (padro de fato na rea industrial [21]) e o Modem GSM, que apresenta
uma grande rea de cobertura [22].

37

www.mecatronicadegaragem.blogspot.com.br

A seguir sero descritos em mais detalhes os principais componentes dos


Mdulos da UTR proposta.

4.2. Mdulo Embarcado


O Mdulo Embarcado tem como objetivo coletar as informaes do dispositivo,
armazen-las temporariamente e envi-las para o servidor. Alm disso, ele capaz de
reconhecer mensagens SMS recebidas pelo Modem e dessa forma feita a configurao
do intervalo de tempo entre as leituras do dispositivo. Outras configuraes podem ser
implementadas dessa mesma forma. Ele composto pelo circuito eletrnico e pelo
Modem GSM. Os principais componentes do circuito eletrnico so:

Microcontrolador PIC18F2525;

Relgio de tempo real - DS1307;

Conversor TTL/RS232 - MAX232;

Regulador de tenso 7805.


O esquema do circuito eletrnico pode ser visualizado na Figura 4.1. O prottipo

desse circuito pode ser observado na Figura 4.2, na qual apresenta o Mdulo Embarcado
por completo (circuito eletrnico e Modem GSM).

Figura 4.1 Esquema do circuito eletrnico

38

www.mecatronicadegaragem.blogspot.com.br

Figura 4.2 Foto do Mdulo Embarcado

O circuito eletrnico foi projetado para que fosse alimentado por uma tenso
contnua de 12V, quer seja advinda de um transformador de tenso alternada para
contnua, como tambm por uma bateria. Como o projeto voltado para aplicaes
industriais, muito importante maximizar o tempo de funcionamento do circuito
quando apenas uma bateria usada para aliment-lo. Nesse sentido, o circuito
apresentado na Figura 4.1 pode consumir apenas 0,72mA, caso o MAX232 seja
substitudo pelo MAX222. Isso resulta em mais de 2 anos e 6 meses de funcionamento
no caso de uso de uma bateria de 18Ah. Os consumos individuais so os seguintes:

PIC18F2525 em modo de operao  11A [1];

DS1307 em modo standby  200A [2];

MAX222 em modo shutdown  2A [4];

Modem GSM g24 em modo idle  500A [5].


A alimentao de 12V conectada entrada do CI7805, pino 1, o qual gera uma

tenso de 5V em seu terminal de sada, o qual utilizado para alimentar os demais


componentes do circuito eletrnico. Foi usado um capacitor cermico de 330nF na
entrada e um capacitor eletroltico de 100F na sada. O CI7805 gera uma tenso de
sada regulada [20], ou seja, ela fica estvel em 5V, independente de oscilaes na

39

www.mecatronicadegaragem.blogspot.com.br

tenso de entrada. A escolha de sua utilizao bvia, pois assim obtm-se uma tenso
para alimentar o restante do circuito bastante estvel e com o nvel lgico no padro
TTL.
O principal componente do circuito eletrnico o microcontrolador
PIC18F2525, o qual tem como funo gerenciar todas as atividades do Mdulo
Embarcado. Todos os dispositivos do circuito so conectados a ele, como pode ser
observado na Figura 4.1. Ele utiliza um cristal de 24MHz, logo, capaz de realizar 6
milhes de instrues por segundo, de acordo explicaes dadas em sees anteriores. O
pino de reset est atualmente desativado.
O DS1307 um CI que funciona como um relgio de tempo real, maiores
explicaes j foram fornecidas em sees anteriores. A sua ligao ao PIC18F2525
pode ser observada na Figura 4.3. Seus pinos SCL e SDA so conectados aos
respectivos pinos do PIC. Como o DS1307 utiliza o barramento I2C, so necessrios
resistores de pullup para o correto funcionamento da ligao [2]. Os resistores usados
foram de 4,7 k. O DS1307 configurado pelo PIC para emitir um sinal de sada (pino
SOUT) equivalente a um trem de pulsos de freqncia igual a 1Hz. Esse pino
conectado na porta RB2 do PIC, de forma que seja possvel a utilizao da interrupo
externa do microcontrolador a cada segundo. Como bateria do DS1307 est sendo
utilizado 2 pilhas alcalinas de 1,5V cada, conectadas em srie, resultando nos 3V
necessrios para um correto funcionamento do RTC. Nos pinos do clock externo est
conectado um cristal de 32,768kHz, de acordo com o especificado em [2].

Figura 4.3 Ligao entre DS1307 e o PIC18F2525

40

www.mecatronicadegaragem.blogspot.com.br

No circuito eletrnico existem trs conversores MAX232. As suas conexes de


capacitores e alimentao so como sugeridas em [3]. Um dos conversores utilizado
para a comunicao com o Modem GSM, aonde o PIC envia comandos para o Modem e
recebe as respostas, esse MAX232 est conectado USART de hardware do
PIC18F2525 (pinos RC6 e RC7), pois se faz necessria a utilizao da interrupo
serial. Outro MAX232 utilizado para a comunicao com o dispositivo que deseja-se
monitorar, no projeto em questo, um dispositivo industrial que oferece comunicao
atravs do protocolo ModBus via RS232. Ele conectado ao PIC nas portas RB0
(recepo) e RB3 (transmisso), assim, possvel utilizar a interrupo externa 0 para o
tratamento das mensagens recebidas. O ltimo MAX232 utilizado apenas para
imprimir dados de depurao para qualquer dispositivo que possa receber uma conexo
RS232. Nos inmeros testes realizados ao longo do projeto, foi utilizado um PC para
receber esses dados, tornando possvel uma fcil depurao do funcionamento do
projeto, viabilizando possveis solues de defeitos.

4.2.1. Algoritmo do microcontrolador PIC18F2525


Como dito anteriormente, o microcontrolador PIC 18F2525 o principal
componente do circuito eletrnico, ele responsvel pela execuo de todas as aes do
Mdulo Embarcado, aonde realizada a comunicao com o dispositivo monitorado e o
Modem GSM. Portanto, para uma completa compreenso do funcionamento do Mdulo
Embarcado necessrio conhecer em detalhes o algoritmo executado pelo PIC18F2525.
A seguir ser explicado todo esse algoritmo, utilizando fluxogramas para facilitar o
entendimento.
O fluxograma da funo principal mostrado na Figura 4.4. O cabealho contm
a definio do modelo do PIC utilizado, os drivers utilizados ao longo do cdigo
(modbus.c e ds1307.c), a freqncia do cristal escolhido (24MHz), configuraes do
driver Modbus (mestre ou escravo, endereo e etc) e a configurao das interfaces

RS232 utilizadas. Nesse ltimo, utilizado o conceito de streams, definida uma


stream para cada configurao e quando se deseja utilizar quela interface, basta se

referir stream configurada. So configuradas 3 interfaces RS232, todas com


velocidade igual a 9600bps, 8 bits de dados, sem paridade e 1 stop bit. A interface
padro do PIC18F2525, ou seja, a implementada via hardware, dedicado conexo
com o Modem GSM, pois ela possui um buffer interno de 3 caracteres, indispensveis
no tratamento das mensagens recebidas pelo Modem. J nas outras duas interfaces,
41

www.mecatronicadegaragem.blogspot.com.br

dedicadas conexo Modbus com o dispositivo e ao envio de mensagens de depurao


para um PC, so utilizadas interfaces via software, aonde o compilador simula o
funcionamento de uma USART, funcionando perfeitamente, apenas no possuindo o
buffer de 3 caracteres.

Figura 4.4 Fluxograma da funo main()

42

www.mecatronicadegaragem.blogspot.com.br

O programa possui um vetor de 100 posies para cada registrador de memria


lido do dispositivo monitorado (no caso do projeto atual, so 5 vetores, que armazenam
presso, temperatura, volume bruto, volume corrigido e alarmes). Alm delas, algumas
variveis valem a pena serem explicadas, so elas:

tempo_timeout  Armazena o tempo em que considerado um timeout, ou seja,


a operao alcanou o tempo limite de espera.

_tempo  Armazena o intervalo de tempo entre as leituras do dispositivo


monitorado. Ela do tipo TEMPO, uma enumerao definida no cdigo.

estado  Armazena o estado atual da execuo do cdigo. Ela importante para


no realizar comparaes desnecessrias ao longo do cdigo. Ela do tipo
ESTADO_PROGRAMA, uma enumerao definida no cdigo.

flag_rtc  Indica que ocorreu uma interrupo externa 2, ou seja, a sada do


DS1307 completou um novo perodo e como essa sada est configurada para ter
uma freqncia de 1Hz, significa que foi transcorrido 1 segundo. Ela
importante para a definio do momento em que uma nova leitura deve ocorrer.
A varivel do tipo int1, ou seja, possui apenas 1 bit.

flag_tempo  Indica que foi atingido o intervalo configurado entre as leituras


do dispositivo foi alcanado. Ento, so executados as aes necessrias para
realizao do objetivo do cdigo. Ela do tipo int1.

flag_ack_udp  Indica que foi recebida uma mensagem UDP pelo Modem e
que essa mensagem se refere resposta do Mdulo Servidor da ltima
mensagem enviada pelo Mdulo Embarcado. Essa varivel do tipo int1.

flag_ack_sms  Indica que foi iniciado o recebimento de uma mensagem SMS.


Ela ativada a partir do recebimento do texto +CMT:, que de acordo com as
sees anteriores, significa que a prxima linha recebida pelo Modem GSM
apresenta o contedo da mensagem SMS. Portanto, essa varivel importante
para alertar ao programa que est sendo executado no microcontrolador, que a
prxima linha deve ser interpretada como advinda de uma mensagem SMS. Esse
alerta indispensvel, pois o nico meio do Mdulo Servidor iniciar uma
comunicao com o Mdulo Embarcado atravs de SMS.

flag_timeout  Indica que o tempo limite de espera para a ao executada foi


alcanado. Ela do tipo int1.

43

www.mecatronicadegaragem.blogspot.com.br

flag_conectado  Indica que o Modem GSM se encontra conectado internet


atravs de uma conexo PPP com a operadora do carto SIM inserido.
A configurao do Modem realizada atravs de alguns comandos necessrios

para o correto funcionamento do mesmo. Eles definem que no esto sendo usados
pinos de controle na comunicao serial, que as mensagens SMS devem ser
encaminhadas para a sada RS232, garante que no existe nenhuma conexo internet e
desabilita o eco dos comandos enviados para o Modem. O timer0 configurado de
modo que possa monitorar corretamente o tempo passado desde sua habilitao at o
momento da interrupo.

Figura 4.5 Fluxograma da interrupo da USART

A Figura 4.5 ilustra o fluxograma da interrupo da USART, ou seja, essa


funo executada toda vez que algum caracter for recebido na interface serial padro.
Como esta interface est conectada ao Modem e o mesmo envia todos os dados
recebidos por sua porta serial, bem como as respostas aos comandos executados, a
funo ilustrada na Figura 4.5 permite o controle sobre tudo o que ocorre referente ao
Modem GSM. Ela basicamente armazena todos os caracteres recebidos no vetor msg,
at que um \n (cdigo correspondente ao ENTER) seja encontrado. Quando isso
ocorre, chamada a funo processamento() que ir analisar o contedo do vetor e,
de acordo com o estado do programa, ir realizar determinadas tarefas, o
funcionamento desta funo demonstrado no fluxograma da Figura 4.7. Alm de

44

www.mecatronicadegaragem.blogspot.com.br

executar a funo processamento(), definido que, no momento que chegar o


prximo caracter, o vetor msg ser reiniciado e o novo caracter ser inserido no incio
do vetor.
A Figura 4.6 apresenta o fluxograma da funo trata_rtc(). Ela responsvel
por obter os dados do CI DS1307, atravs de seu driver especfico, que fornece a data e
hora com uma preciso de tempo real. Com isso, possvel checar se o intervalo de
tempo configurado na varivel _tempo foi alcanado. Em caso positivo, a flag_tempo
ativada.

Figura 4.6 Fluxograma da funo trata_rtc()

A funo captura_dado() pode ser visualizada no fluxograma da Figura 4.8.


Ela responsvel por obter os dados do dispositivo monitorado, enviando comandos
Modbus para o mesmo, e criar uma mensagem contendo os valores lidos do dispositivo,

o nmero da mensagem (para ser possvel realizar o reconhecimento do envio) e a


marca da hora da leitura. Essa funo chamada pela funo main(). Outra funo
invocada pelo main() a conecta(), que ilustrada na Figura 4.9. Ela
responsvel por realizar a conexo do Modem GSM internet atravs da operadora do
carto SIM inserido, apenas aps essa conexo possvel enviar dados para o Mdulo
Servidor. A funo conecta() coloca o estado do programa para MIPCALL, o que
faz com que a funo processamento() procure por respostas do tipo
+MIPCALL:<endereo ip>, ento envia o comando de conexo para o Modem e
ativa a interrupo de timer0, para que possa ser monitorado o timeout. A funo fica
bloqueada, at que o timeout seja alcanado ou a funo processamento() identifique
que foi realizada uma conexo, o que ativa a flag_conectado. Caso no ocorra a
45

www.mecatronicadegaragem.blogspot.com.br

conexo, ser realizada uma nova tentativa, at o limite de 10, quando a leitura
armazenada no ser enviada at o prximo intervalo de tempo entre as leituras, e ento
as duas leituras tentaro ser enviadas.
A funo encarregada de realizar a comunicao do Mdulo Embarcado com o
Mdulo Servidor a envia(), que pode ser visualizada no fluxograma da Figura 4.10.
Ela utiliza conceitos semelhantes funo conecta(). Durante a sua execuo ela
realiza chamadas funo envia_dado(), que pode ser acompanhada pelo
fluxograma da Figura 4.11. Ao final da funo envia() fechada a conexo com a
operadora. Assim, um novo ciclo pode ser reiniciado e todo o processo descrito
realizado novamente.

Figura 4.7 Fluxograma da funo processamento()

46

www.mecatronicadegaragem.blogspot.com.br

Figura 4.8 Fluxograma da funo captura_dados()

Figura 4.9 Fluxograma da funo conecta()

47

www.mecatronicadegaragem.blogspot.com.br

Figura 4.10 Fluxograma da funo envia()

48

www.mecatronicadegaragem.blogspot.com.br

Figura 4.11 Fluxograma da funo envia_dado()

4.3. Mdulo Servidor


O Mdulo Servidor tem como funo receber os dados enviados pelo Mdulo
Embarcado e armazen-los em um banco de dados, de forma que seja possvel a
visualizao dessas informaes. Alm disso, ele permite que N clientes se conectem ao
servidor e obtenham acesso ao banco de dados. Para tanto, um cliente deve fornecer um
login e uma senha, que sero usados para se conectar base de dados, permitindo
apenas que clientes autorizados pelo administrador do sistema obtenham acesso ao
software servidor e sua base de dados (o administrador deve registrar manualmente
todos os clientes que podero obter acesso).
O software cliente pode ser desenvolvido em qualquer linguagem e sofrer
quaisquer modificaes ao longo do tempo, desde que mantenha o protocolo de
comunicao com o servidor. Assim, existe uma grande flexibilidade na forma em que
os dados podem ser visualizados, o que resulta em uma boa caracterstica do projeto
proposto. Nas prximas sees, ser citado o software cliente exemplo desenvolvido
utilizando a sute grfica QT.
O Mdulo Servidor composto por um computador (com uma configurao
simples) sempre conectado internet, com um nmero IP real e fixo e
preferencialmente conectado a qualquer firewall que permita trfego apenas nas portas
especficas do projeto. O outro componente do Mdulo Servidor um software,
referenciado ao longo do texto como software servidor. Ele possui trs threads de
execuo [19]. O seu funcionamento ser descrito a seguir.
49

www.mecatronicadegaragem.blogspot.com.br

O software servidor foi construdo utilizando apenas ferramentas livres, aonde


os principais componentes so o compilador GNU GCC e o Sistema Gerenciador de
Banco de Bados SGBD PostgreSQL. Essa caracterstica, alm de oferecer um
baixssimo custo de implantao, torna o sistema de fcil manuteno, pois ambos os
componentes possuem fortes comunidades de suporte.
A conexo entre o Mdulo Embarcado e o Mdulo Servidor efetuada pelo
protocolo UDP, embora parea mais adequado o conceito de transmisso confivel do
protocolo TCP [18]. Mas no foi possvel a utilizao do TCP, pois foram encontrados
problemas com o Modem GSM. Quando ocorria uma falha de transmisso, o Modem
GSM no era capaz de fechar a conexo j aberta e o socket se tornava inoperante.
Como o Modem GSM possui apenas quatro sockets [5], rapidamente o Mdulo
Embarcado no conseguia mais realizar nenhuma conexo com o Mdulo Servidor.
Ento, foi implementado um protocolo de confirmao de recebimento de mensagens,
aonde o Mdulo Embarcado envia o nmero da mensagem, junto com as informaes
do dispositivo. O Mdulo Servidor, ao receber uma mensagem, envia uma resposta ao
Mdulo Embarcado contendo apenas o nmero da mensagem recebida. O Mdulo
Embarcado recebe a mensagem e compara o nmero recebido com o nmero da
mensagem enviada, caso sejam iguais, considera a mensagem como enviada e apaga a
mesma de seu buffer. Caso a mensagem de confirmao no chegue at o Mdulo
Embarcado, o mesmo enviar a mesma mensagem novamente, at que a confirmao
seja recebida ou um nmero mximo de tentativas seja alcanado. Para evitar dados
duplicados na base de dados, o software servidor est programado para descartar as
mensagens que j foram recebidas.
O funcionamento do software servidor est descrito nos fluxogramas a seguir,
nos fluxogramas esto ocultados os procedimentos de checagem de erros e validaes
dos dados, com o intuito de simplific-los. A thread main() est ilustrada na Figura
4.12, ela executa o servidor que ir receber as conexes do Mdulo Embarcado e
armazenar os dados no banco de dados. A Figura 4.13 mostra o funcionamento da
thread servidor(), ela recebe conexes dos softwares clientes e realiza a sua

autenticao junto ao banco de dados, caso obtenha sucesso, inicia uma thread cliente()
para executar as aes daquele cliente e passa a aguardar novas conexes.
A thread cliente() est indicada na Figura 4.14, ela responsvel por realizar a
comunicao entre o software servidor e o software cliente. Com o intuito de permitir
uma grande compatibilidade com os clientes futuramente desenvolvidos, o protocolo de
50

www.mecatronicadegaragem.blogspot.com.br

comunicao entre o software servidor e o software cliente bastante simples. O


software servidor est programado para interpretar apenas comandos SQL e, ao receb-

los, tenta execut-los e retorna a resposta ao software cliente, cabendo ao mesmo todo o
processo de tratamento dos dados. Assim, possvel obter uma grande flexibilizao
dos clientes.

Figura 4.12 Fluxograma da thread main()

51

www.mecatronicadegaragem.blogspot.com.br

Figura 4.13 Fluxograma da thread servidor()

Figura 4.14 Fluxograma da thread cliente()

52

www.mecatronicadegaragem.blogspot.com.br

4.3.1. Cliente exemplo


Como dito na seo anterior, o software cliente pode sofrer modificaes a
qualquer momento e essa uma caracterstica desejada do projeto. Portanto, no ser
dada nfase ao funcionamento do software cliente, ele apenas obedece ao protocolo de
comunicao explicitado na Figura 4.13 e Figura 4.14. Ele foi desenvolvido apenas para
comprovar a funcionalidade do Mdulo Embarcado. Foi utilizada a sute grfica QT
para o seu desenvolvimento.
A tela de login do software cliente apresentada na Figura 4.15. A Figura 4.16
ilustra a sua tela principal, ela possui um menu principal e um menu de aes contendo
dois itens, apenas Ver Dados da UTR est disponvel atualmente. Alm disso, ela
apresenta uma tabela contendo todas as UTRs cadastradas e algumas informaes que
podem ser teis na identificao das mesmas. Clicando sobre uma UTR e pressionando
o boto Ver Dados da UTR a tela da Figura 4.17. Nessa tela possvel visualizar os
dados armazenados no banco de dados a partir de dois filtros, o nome da UTR e a
data/hora da leitura. Essa ltima opo permitido escolher se deseja visualizar os
dados que contenham data/hora maiores, iguais ou menores que o valor fornecido.

Figura 4.15 Tela de login do software cliente-exemplo

53

www.mecatronicadegaragem.blogspot.com.br

Figura 4.16 Tela principal do software cliente-exemplo

Figura 4.17 Tela da ao Ver Dados da UTR

54

www.mecatronicadegaragem.blogspot.com.br

5. Concluso
Ao longo do trabalho, foi apresentado um processo de automao simples e
prtico de um tipo de sistema bastante comum, mas que em muitos casos ainda
apresenta um funcionamento bastante artesanal, os sistemas de medio fiscal.
comum encontrarmos sistemas em que necessrio que um funcionrio v at o
equipamento medidor para coletar suas informaes. Essa situao se torna mais grave,
quando se tratam de sistemas que possuem equipamentos (clientes) muito distantes uns
dos outros.
O trabalho apresenta um sistema de telemetria remota, que permite que um
Mdulo Embarcado colete as informaes de um dispositivo e realize o envio para um
Mdulo Servidor, o qual armazena todas essas informaes em um banco de dados,
permitindo que programas clientes possam visualiz-los.
A implementao desse projeto apresenta algumas vantagens, que podem ser
resumidas em:

Garantia de que a medio ir ser realizada, independente da necessidade de um


funcionrio se deslocar at o ambiente onde o dispositivo se localiza. Essa
vantagem evita possveis atos de m f por parte do funcionrio, como no se
deslocar at o local, ou anotar medies que no condizem com a realidade;

Permite que os dispositivos medidos sejam inseridos em locais de acesso mais


restrito, impedindo possveis alteraes no mesmo por parte do cliente;

Pode apresentar maiores detalhes para o cliente, pois as medies podem ser
realizadas em vrios intervalos de tempo pr-definidos. Dessa forma possvel
demonstrar qual consumo dirio, ou por perodo do dia, resultando em uma
maior clareza para o consumidor;

A empresa passa a possuir um histrico dos clientes, pois todas as informaes


vo direto para um banco de dados, o qual permite um grande volume de dados;
Embora o trabalho descrito esteja totalmente funcional, o mesmo ainda necessita

da implementao de algumas funcionalidades e da definio de alguns parmetros,


bem como a realizao dos testes de campo. Na que diz respeito s funcionalidades,
necessrio a integrao do envio de SMS ao Mdulo Servidor, que pode ser realizada
utilizando um componente (de desenvolvimento prprio ou de terceiros) de software
que realize o acesso aos sites das operadoras de telefonia celular e efetue o envio
gratuito da mensagem, com formatos de texto padro e o nmero telefnico de acordo

55

www.mecatronicadegaragem.blogspot.com.br

com a UTR selecionada. Outra opo seria o uso de um servidor externo de SMS, o
qual cobraria uma taxa (cerca de R$ 0,15) por cada mensagem enviada, dessa forma, o
envio da SMS poderia ser feito de forma transparente ao usurio. Outra funcionalidade
pendente a realizao do ajuste do relgio de cada Mdulo Embarcado, o qual teria
que ser efetuado localmente.
No mbito das definies, necessrio medir com certo grau de preciso o
consumo de energia total do circuito, em diversos tipos de operao. Apenas com os
dados dessas medies possvel definir qual o tipo de alimentao do circuito
eletrnico, ou seja, se necessrio que o circuito seja alimentado por alguma rede
eltrica ou se apenas baterias de alta durabilidade suportam o funcionamento do circuito
por um tempo economicamente vivel.
So necessrios testes de campo para confirmar a disponibilidade e o
comportamento da rede GPRS nos locais a serem instalados os Mdulos Embarcados.
Alm disso, deve-se realizar o teste global do funcionamento do sistema.
Alm das atividades a serem realizadas antes de tornar o sistema totalmente
preparado para o funcionamento no campo, existem melhorias a serem feitas no projeto
que podem resultar em uma maior qualidade do mesmo. Pode ser aumentado o nmero
de aes realizadas pelo Mdulo Embarcado a partir de comandos do Mdulo Servidor,
realizados atravs de mensagens SMS, como por exemplo, a realizao e o envio
imediato de uma nova leitura. Outra modificao seria a adoo de algum protocolo de
segurana da Internet para a conexo entre os Mdulos, ou a utilizao de criptografia
de dados.

56

www.mecatronicadegaragem.blogspot.com.br

6. Referncias
[1]

Microchip.

Manual

do

PIC18F2525.

Disponvel

em:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2046.
Acesso em: 20/06/2009
[2]

Maxim.

Manual

do

DS1307.

Disponvel

em:

http://www.maxim-

ic.com/quick_view2.cfm/qv_pk/2688. Acesso em: 20/06/2009


[3]

Texas

Instruments.

Manual

do

Disponvel

MAX232.

em:

http://focus.ti.com/docs/prod/folders/print/max232.html. Acesso em: 20/06/2009


[4]

Texas

Instruments.

Manual

do

Disponvel

MAX222.

em:

http://focus.ti.com/lit/ds/slls590d/slls590d.pdf. Acesso em: 20/06/2009


[5] Informat Technology. Manual do Modem GSM g20/g24. Disponvel em:
http://www.grupoinformat.com.br/downloads.php?divisao=wireless.

Acesso

em:

20/06/2009
[6] Motorola. Motorola G24: Module Hardware Description. Disponvel em:
http://developer.motorola.com/products/wirelessmodules/g24/. Acesso em: 20/06/2009
[7] Motorola. Motorola G24: AT Commands Reference Manual. Disponvel em:
http://developer.motorola.com/products/wirelessmodules/g24/. Acesso em: 20/06/2009
[8] Bredendiek, Jrg. PIC-Brenner 8 Rev 5. Disponvel em:
http://www.sprut.de/electronic/pic/projekte/brenner8/index.htm. Acesso em: 21/06/2009
[9] Custom Computer Services, Inc. http://www.ccsinfo.com. Acesso em: 21/06/2009
[10] LibModbus. http://pes.free.fr. Acesso em: 21/06/2009
[11] Comunidade brasileira de PostgreSQL. http://www.postgresql.org.br. Acesso em:
21/06/2009
[12]

PostgreSQL

8.3.1

Documentation.

Disponvel

em:

http://www.postgresql.org/docs/. Acesso em: 21/06/2009


[13] 1977 Data Calatog Micro Electronics. General Instrument Corporation. Disponvel
em: http://www.rhoent.com/pic16xx.pdf. Acesso em: 22/06/2009
[14] Microchip. PICmicro Mid-Range MCU Family: Reference Manual.
Disponvel

em:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1956.
Acesso em: 22/06/2009

57

www.mecatronicadegaragem.blogspot.com.br

[15] Filho, R. P. Protocolo de Comunicao I2C. Artigo disponvel em:


http://www2.eletronica.org/artigos/eletronica-digital/protocolo-de-comunicacao-i2c/.
Acesso em: 22/06/2009
[16] Sverzut, J. U. Redes GSM, GPRS, EDGE e UMTS Evoluo a caminho da
quarta gerao. 2 Edio. So Paulo: Editora rica 2008.
[17] Informat Technology. http://www.informattechnology.com.br. Acesso em:
20/06/2009
[18] Tanenbaum, A. S. Redes de Computadores. 4 Edio. Rio de Janeiro: Editora
Campus 2003
[19] Tanenbaum, A. S. Sistemas Operacionais Modernos. 2 Edio. So Paulo:
Prentice Hall 2003
[20]

Texas

Instruments.

Manual

do

A7805.

Disponvel

em:

http://focus.ti.com/docs/prod/folders/print/ua7805.html. Acesso em: 23/06/2009


[21] Melo, W. Notas de aula Redes industriais: Aula 4. Disponvel em:
http://www.cefetrn.br/~walmy/RI_A4.pdf. Acesso em 23/06/2009
[22]

GSM

World.

Coverage

Maps.

Disponvel

em:

http://www.gsmworld.com/roaming/gsminfo/cou_br.shtml. Acesso em: 23/06/2009

58

Вам также может понравиться