Você está na página 1de 53

Diego Liberalquino

Desenvolvimento de Plataforma de Comunicao


GSM/GPRS para Sistemas Embarcados
Recife - PE, Brasil
29/11/2010
Diego Liberalquino
Desenvolvimento de Plataforma de Comunicao
GSM/GPRS para Sistemas Embarcados
Monograa apresentada para obteno do Grau
de Bacharel em Engenharia da Computao
pela Universidade de Pernambuco.
Orientador:
Srgio Campello Oliveira
ENGENHARIA DA COMPUTAO
ESCOLA POLITCNICA DE PERNAMBUCO
UNIVERSIDADE DE PERNAMBUCO
Recife - PE, Brasil
29/11/2010
Resumo
Sistemas embarcados so empregados usualmente em aplicaes de telemetria e monitora-
mento. Esses dispositivos, muitas vezes, precisam utilizar comunicao sem o para enviar ou
receber comandos a umoutro dispositivo que se localiza a quilmetros de distncia. Redes GSM
podem ser de grande valor nessas circunstncias, uma vez que esto disponveis em muitos lu-
gares. Este trabalho prope o projeto de uma plataforma de comunicao para transmisso e
recepo de dados atravs da especicao GSM.
Abstract
Embedded systems are often employed in telemetry and monitoring applications. These
devices, many times, need to use wireless communication to send or receive commands to
another device which may be located kilometers away. GSM networks can be of great value
under these circunstances, because they are available in many places. This work proposes
the design of a communication platform for data transmission and reception through the GSM
specication.
Agradecimentos
Muitas pessoas contriburam para o meu crescimento durante os tempos em que eu passei
na academia. A lista grande, mas de grande signicncia. Neste espao, tentarei brevemente
retribuir com palavras a contribuio que me foi dada por elas.
Primeiramente, agradeo a meus pais e minha famlia pelo afeto, refgio e apoio. Sem
vocs, eu no teria chegado onde estou.
Agradeo tambm a meus companheiros de time em muitos projetos de faculdade, espe-
cialmente Jefferson Silva de Amorim, Pricles Miranda, Pedro Corra, com quem estive mais
presente e meus colegas de inciao cientca Leandro Honorato e Ismael Mascarenhas. Vocs
me mostraram a verdadeira essncia da cooperao e amizade.
Agradeo ao meu irmo, Gabriel Liberalquino, meu principal conselheiro em assuntos de
eletrnica, e, provavelmente, a pessoa em que compartilhei mais momentos nesta vida.
Por m, agradeo a minha musa inspiradora, bela, inteligente e paciente. Pollyana Maciel
me fez encontrar o caminho do amor, carinho e dedicao.
Lista de Figuras
2.1 Estrutura de uma rede GSM (HEINE, 1999) . . . . . . . . . . . . . . . . . . p. 13
2.2 Modelo cliente-servidor de uma rede GPRS (SEURRE et al., 2003) . . . . . p. 16
2.3 Arquitetura de uma rede GPRS (SEURRE et al., 2003) . . . . . . . . . . . . p. 17
2.4 Arquitetura de rede SMS (BODIC, 2005) . . . . . . . . . . . . . . . . . . . p. 20
2.5 Diagrama de blocos do PIC18F4550 (MICROCHIP, 2007) . . . . . . . . . . p. 22
3.1 Diagrama eltrico da plataforma de comunicao . . . . . . . . . . . . . . . p. 28
3.2 Interface de gravao e reset . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29
3.3 Circuito de interface para USB . . . . . . . . . . . . . . . . . . . . . . . . . p. 30
3.4 Circuito regulador de tenso . . . . . . . . . . . . . . . . . . . . . . . . . . p. 31
3.5 Pinagem do Nokia 2720 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 33
3.6 Esquema para converso de nveis de tenso (MBus) . . . . . . . . . . . . . p. 34
3.7 Esquema para converso de nveis de tenso (FBus) . . . . . . . . . . . . . . p. 34
5.1 Imagem da placa de circuito impresso . . . . . . . . . . . . . . . . . . . . . p. 47
5.2 Conexo de linhas de transmisso do aparelho celular (Nokia 2720) . . . . . p. 48
Lista de Tabelas
2.1 Lista de comandos AT para operaes com SMS (MULTITECHSYSTEMS,
2003) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24
4.1 Conguraes do oscilador . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 38
4.2 Camadas de rmware da plataforma . . . . . . . . . . . . . . . . . . . . . . p. 38
Sumrio
1 Introduo p. 9
1.1 Estrutura do Documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11
2 Tecnologias de software e hardware p. 12
2.1 GSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 12
2.1.1 Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14
2.1.2 GPRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15
2.1.3 SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
2.2 PIC 18F4550 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
2.3 Protocolos de troca de mensagens . . . . . . . . . . . . . . . . . . . . . . . p. 21
2.3.1 Comandos AT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 23
2.3.2 Nokia MBus e FBus . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24
2.3.3 Codicao de contedo . . . . . . . . . . . . . . . . . . . . . . . . p. 25
3 Projeto de Hardware p. 27
3.1 Projeto de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
3.2 Modem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 31
4 Projeto de Firmware p. 36
4.1 Congurao do microcontrolador . . . . . . . . . . . . . . . . . . . . . . . p. 36
4.2 Organizao da biblioteca . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 38
4.3 Descrio de funes e caractersticas da biblioteca . . . . . . . . . . . . . . p. 40
4.3.1 API para SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 40
4.3.2 Funes de utilidade . . . . . . . . . . . . . . . . . . . . . . . . . p. 44
5 Resultados e testes p. 46
5.1 Hardware confeccionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 46
5.2 Testes realizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 48
6 Concluso p. 50
Referncias Bibliogrcas p. 52
9
1 Introduo
Sistemas embarcados possuem diversas aplicaes, de controle de mquinas
a automao residencial. Muitos deles possuem capacidade de transmitir dados
para outros dispositivos, seja outros sistemas embarcados, mquinas industriais
ou computadores. A tecnologia utilizada depende do problema a ser resolvido,
da disponibilidade do canal, do consumo de energia e do custo de implemen-
tao, manuteno e uso.
O problema descrito a seguir ilustra como a comunicao atravs da rede
GSM pode ser til como alternativa de comunicao em um projeto de sistemas
embarcados.
Em um trabalho de pesquisa para a foi desenvolvido um sistema de moni-
toramento para cadeias de isoladores de alta tenso da Companhia Hidro-eltrica
do So Francisco (CHESF) (OLIVEIRA; FONTANA, 2009). Essas instalaes
as quais muitas vezes se localizam em locais afastados de regies metropoli-
tanas costumam sofrer com o acmulo de poluio e substncias slidas, que,
depositadas na superfcie dos isoladores e com o aumento da humidade, podem
aumentar e causar descargas parciais cujo grau e gravidade podem aumentar e
causar descargas completas conhecidas como ashover. Para realizar a medio
da quantidade de resduos, foi desenvolvido um sensor tico que verica a pre-
sena de regies condutoras nas superfcies dos isoladores atravs da deteco
de correntes de fuga, cujas formas de onda possuem correlao com a quanti-
dade de poluentes acumulados. O sensor conectado a um microcontrolador
10
que armazena dados coletados de pulsos de corrente de fuga em memria no
voltil. O artefato construdo pode ser acoplado s torres de transmisso com
pouca diculdade, e reduz os custos associados inspeo.
O dispositivo construdo possui algumas limitaes. Os dados obtidos da
corrente de fuga so armazenados em memria, ela pode funcionar ativamente
por cerca de dois meses, e a coleta dos dados realizada atravs de transmisso
serial RS-232, entre plataforma e computador (OLIVEIRA; FONTANA, 2009).
O sensor precisa ser retirado manualmente por uma equipe para que seja feita
a anlise dos dados coletados. Esse processo poderia ser automatizado caso
zesse uso de comunicao sem o, que enviaria mensagens para os postos
centrais da CHESF. Por esse propsito, foi proposta a utilizao de vrios pro-
tocolos de comunicao sem o (GSM, Satlite e Bluetooth), de acordo com
custo e disponibilidade de cada tecnologia.
A importncia da rede GSM como meio de comunicao para o projeto
mencionado se deve s limitaes dos outros modelos: satlite e bluetooth. A
transmisso via satlite capaz de alcanar grandes distncias, porm lenta e
cara. J o protocolo bluetooth tem custo mnimo e seu funcionamento simples,
mas incapaz de alcanar grandes distncias. Por isso GSM um meio termo
entre as duas, mas til para evitar os custos da transmisso via satlite quando
terminais bluetooth no se encontram em lugares prximos.
Este trabalho prope a elaborao de uma plataforma de software e hard-
ware que possibilite que a comunicao seja realizada atravs das redes GSM,
atravs de mensagens SMS ou conexo GPRS. A plataforma poderia funcionar
independentemente, ou operar atravs de comandos de um outro sistema embar-
cado, e poderia ser usada para mais de um propsito, seja em aplicaes comer-
ciais como no caso da CHESF ou para ensino em um contexto acadmico.
Por isso tambm objetivo a utilizao de ferramentas de baixo custo e com-
ponentes disponveis no mercado local, alm da elaborao de software e hard-
11
ware sob licena que possibilite a modicao e distribuio do cdigo fonte
e esquema de hardware por qualquer pessoa ou empresa, com apenas algumas
poucas restries legais.
Umcelular de modelo Nokia 2720 foi utilizado para acessar a rede GSM/GPRS.
Porm, por falta de documentao e equipamentos para conect-lo plataforma
proposta, no foi possvel realizar o acesso rede, como era esperado. pos-
svel demonstrar a capacidade de enviar e receber SMS atravs de um aplicativo
para computador pessoal, mas esta soluo ainda no foi adequada com sucesso
plataforma.
1.1 Estrutura do Documento
O texto ser dividido em cinco captulos, incluindo esta introduo. A de-
scrio de cada captulo est disposta a seguir:
Captulo 2 - Reviso bibliogrca: Neste captulo faremos uma reviso
dos conceitos, tecnologias e ferramentas utilizadas para a elaborao e
construo do dispositivo embarcado.
Captulo 3 - Projeto de Hardware: O hardware da plataforma, seu n-
cleo, perifricos e conexes externas sero abordados.
Captulo 4 - Projeto de Firmware: A congurao do rmware, sua ar-
quitetura e bibliotecas sero discutidos.
Captulo 5 - Resultados e Testes: O design nal da plataforma ser
ilustrado. Teremos algumas consideraes sobre as funcionalidades do
hardware e testes realizados.
Captulo 6 - Concluso: Aqui sero realizadas algumas consideraes
nais a respeito dos resultados obtidos e sobre como esse trabalho pode
ser extendido em outras pesquisas.
12
2 Tecnologias de software e hardware
Antes de apresentar detalhes do contedo que ser discutido nos captulos
seguintes, faremos uma reviso breve dos assuntos que sero abordados neste
projeto. Primeiramente sero apresentadas as caractersticas de uma rede GSM,
seguida de informaes sobre o microcontrolador empregado no projeto do
hardware da plataforma, as ferramentas utilizadas para o desenvolvimento do
rmware, e, nalmente, consideraes sobre o modem GSM utilizado.
2.1 GSM
GSM (Global System for Mobile Communications) um protocolo de co-
municao para dispositivos sem o elaborado em 1982, destinado a homo-
geneizar as tecnologias de comunicao usadas nos pases europeus que ante-
riormente eram puramente nacionais e por isso, caras. Em 1992, no entanto, a
tecnologia que j estava em operao em algumas partes da Europa e Estados
Unidos despertou interesse internacional (HEINE, 1999).
A arquitetura de uma rede GSM utiliza uma estrutura celular, onde cada
clula em cujo centro localiza-se uma estao base utiliza uma faixa de
frequncia de maneira que clulas vizinhas no utilizem a mesma faixa, como
pode ser ilustrado pela gura 2.1. O alcance de cada estao base o menor
possvel, para que frequncias escarsas sejamreusadas mais vezes. Vale lembrar
que as faixas de frequncia em que estaes mveis operam sofrem bastante
13
Figura 2.1: Estrutura de uma rede GSM (HEINE, 1999)
com atenuao por serem, geralmente, emissores de baixa potncia. Por isso
distncias entre estao base e mvel de at 5 km so admitidas.
A estrutura celular tambm possui suas desvantagens. Um grande nmero
de clulas signica um grande custo de infra-estrutura. Quando uma estao
mvel se desloca, ela pode sair das fronteiras de uma clula para outra, e por
isso, se faz necessria uma outra chamada para a nova estao base, um pro-
cesso conhecido como handover. preciso manter a localizao aproximada
de cada estao mvel dentro de uma clula, para que seja possvel entregar
uma chamada realizada por outro dispositivo. Por causa dos problema de han-
dover e localizao, a sinalizao controle de emisso e recepo sinais para
que a comunicao seja estabelecida se torna bastante complexa, com um
volume de dados a ser analisado e, consequentemente, uma carga muito grande
para ser processada por um nico computador central.
14
2.1.1 Terminologia
A seguir est uma lista de termos e denies utilizados pela especicao
GSM que so relevantes para este trabalho:
Mobile Station (MS) ou Estao Mvel: Terminais de uma rede GSM,
dispositivos portteis que realizam chamadas dentro de uma clula.
Base Station Subsystem(BSS) ou Subsistema de Estao Base: Geren-
ciamas operaes de rdio, e provemconectividade entre estaes mveis
e a rede GSM. De fato, a BSS dividida entre outros dois mdulos, Base
Transceiver Station (BTS), que prov uma interface no ar e se encarrega
das tarefas de rdio e Base Station Controller (BSC) que contecta vrios
BTS e exerce funes de controle.
Subscriber Identity Module (SIM): Fornecem informaes de identi-
cao e provedor de servio para estaes mveis. Tambm servem como
bancos de dados, onde guardam dados de chamada e nmero de diretrio.
Fisicamente, so representados por um chip (SIM card), que pode ser
acoplado a um aparelho mvel.
Subscribers ou Assinantes: So os clientes virtuais de operadoras das re-
des GSM. Cada assinante identicado por um SIM. Embora um cliente
fsico possa ter vrios SIM cards, diferentes SIM cards representam assi-
nantes diferentes.
Ainda existem outros termos bastantes comuns na literatura GSM. O Mo-
bile Service Switching Center (MSC) conecta vrios BSC, e se encarrega de
encaminhar as chamadas oriundas de dentro e fora de seu segmento de rede.
J o Home Location Register (HLR) age como um repositrio, que armazena
e administra dados de assinantes da rede GSM. O Equipment Identity Register
(EIR) mantm registro dos dispositivos mveis e no dos SIM, para entre outros
15
propsitos, prevenir furtos de equipamentos e rastrear criminosos. Todos esses
ns da rede citados, juntos, formam uma Public Land Mobile Network (PLMN).
2.1.2 GPRS
GPRS uma sigla que signica General Packet Radio Service. Seu propsito
facilitar a interconexo entre redes mveis e redes de comutao de pacotes,
e, principalmente, prover acesso internet (SEURRE et al., 2003). Esta tec-
nologia abriu espao para uma gama de novos servios, entre eles Multimedia
Messaging Services (MMS) e servios de ao a distncia, como sistemas de
vigilncia e monitoramento eletrnico (o tipo de aplicao proposto por este
trabalho).
Os tipos de trfego que mais se beneciam de GPRS so:
Transmisso no frequentes, como servios de mensagem (SMS e MMS).
Frequncia de pequenos blocos de dados, com uma taxa inferior ou igual
a 500 bytes por minuto, tais como um browser de internet.
Baixa frequncia de grandes blocos de dados, com poucas transaes por
hora.
Taxa de transmisso assncrona entre downlink e uplink (referentes ao en-
vio e recebimento de mensagens), usados em browsers.
Diferentemente do conceito de chamada usado na telefonia, redes GPRS
utilizam o modelo cliente-servidor existente em redes de computadores (gura
2.2). O dispositivo pode ser congurado como um cliente que faz requisies
a um servidor, que pode estar localizado dentro de uma intranet ou internet.
No entanto existe uma congurao menos comum, onde o mvel pode aceitar
requisies como uma aplicao vertical para monitoramento por telemetria.
16
Figura 2.2: Modelo cliente-servidor de uma rede GPRS (SEURRE et al., 2003)
Nesse caso, o dispositivo precisa ser congurado para processar uma requisio
e respond-la ao seu recipiente.
A arquitetura de uma rede GPRS reusa muitos dos conceitos usados em
GSM, como BSS, MSC e HLR, mas introduz novos ns, o Gateway GPRS Sup-
port Node (GGSN) e Serving GPRS Support Node (SGSN), que juntos formam
o ncleo de uma rede GPRS. Com esses novos elementos, a estrutura lgica da
rede GPRS (gura 2.3) est disposta da maneira descrita a seguir:
SGSN (Serving GPRS Support Node): O n da rede que serve uma estao
mvel. Entrega pacotes para esta e comunica ao HLR para obter o perl
do assinante, mantendo um registro dos canais atribudos a cada estao
mvel para propsitos de roteamento. O SGSN conectado a um ou vrios
BSS.
GGSN (Gateway GPRS Support Node): Responsvel pela conexo com
redes de comutao de pacotes externas (como a internet). e estabelece
comunicao com o SGSN atravs de uma rede IP de backbone (n central
que conecta outras redes IP menores).
HLR(Home Location Register): Atua como banco de dados, armazenando
dados de assinantes e informao de roteamento.
MSC (Mobile Services Switching Center): Gerencia as camadas de origem
e destino de usurios GSM e gerencia mobilidade. Pode encaminhar pagi-
17
Figura 2.3: Arquitetura de uma rede GPRS (SEURRE et al., 2003)
nao de redes comutadas por circuito de MSs para SGSN. No est dire-
tamente envolvida na comunicao GPRS.
EIR (Equipment identity register): Banco de dados que mantm registros
das identidades de terminais da rede GPRS.
TE (Terminal Equipment): Terminal da rede GPRS (um telefone celular,
por exemplo).
Os termos Um, Gf, Gs, Gb, Gp, Gn, Gd, Gr, Gc e Gi representam inter-
faces entre dois equipamentos, que podem ser compostas de hardware, soft-
ware, protocolos ou outros mecanismos para que seja possvel encaminhar uma
mensagem de um n para outro. Um, por exemplo, representa a interface de ar
entre um telefone celular e a estao base.
18
2.1.3 SMS
Um dos servios disponveis para redes GSM conhecido como SMS (Sim-
ple Message Service) e permite a troca de mensagens de texto entre assinates.
SMS usado no somente com ns de comunicao entre usurios, mas usados
por aplicaes comerciais para distribuio de contedo (promoes, avisos,
notcias, etc), mesmo aplicaes mais complexas, tais como monitoramento
remoto e localizao. Uma de suas principais vantagens a sua disponibili-
dade na maioria dos dispositivos mveis, dos mais antigos aos mais recentes e
mesmo alguns terminais fora de uma rede GSM (computadores, telex) podem
ser usurios do servio. Existem duas extenses para SMS: EMS (Enhanced
Messaging Service) e MMS (Multimedia Messaging Service), que permitem
a troca de tipos de mensagem mais sosticados, como textos com animao e
multimdia, respectivamente (BODIC, 2005).
O SMS introduz novos elementos na arquitetura da rede(GSM):
Short Message Entity (SME): Terminais da rede que enviam ou recebem
SMS, sejamdispositivos mveis ou terminais externos (servidores de inter-
net, por exemplo). Um SME pode ser um servidor que faz a conexo entre
o SMSC diretamente ou atravs de um gateway, e por isso, recebe a de-
nominao ESME. Umexemplo de SME umproxy/servidor WAP(Wireless
Application Protocol). Na terminologia SMS, um SME que envia uma
mensagem um originador, enquanto aquele que recebe a mensagem um
recipiente
SMS Center (SMSC): O SMSC responsvel por receber e encaminhar
mensagens de SME para SME, ou armazen-las quando o recipiente no
est disponvel. OSMSCpode fazer parte da rede GSMou estar localizado
fora dela. Um nico SMSC poderia atender servios de todas as operado-
ras, contudo, geralmente cada uma costuma manter o seu SMSC, fazendo
19
acordos para que mensagens sejam trocadas entre redes diferentes.
Email Gateway: Prov interoperabilidade entre o servio de email (Inter-
net) e SMS (GSM), convertendo mensagens de um formato para outro e
encaminhando-as de uma rede para outra.
A especicao SMS separa o processo de comunicao em quatro nveis
de abstrao, ou camadas, como ser descrito a seguir (gura 2.4).
A primeira camada, Short Message Application Layer (SM-AL), consiste
em softwares que enviam, recebem e interpretam o contedo das mensagens. J
a segunda camada, Short Message Transfer Layer (SM-TL), acrescenta cabeal-
hos que permitem a entrega de uma mensagem SMS, tais como comprimento,
remetente e receptor. O cabealho e o contedo so representados por uma se-
quncia de octetos, chamados de Transfer Protocol Data Unit (TPDU). Assim,
como a camada de transporte do protocolo TCP/IP, a SM-TL usa mecanismos
de controle para garantir a entrega de mensagens do SME de origem ao SME
de destino. As duas camadas anteriores so de maior importantncia para o
desenvolvimento de aplicaes que operam sobre SMS.
Tambm merecem ser mencionadas as terceira e quarta camadas, Short Mes-
sage Relay layer (SM-RL) e Short Message Link Layer (SM-LL). Elas se en-
carregam, respectivamente, de informaes utilizadas pelos mecanismos para
transporte de mensagem atravs dos ns da rede SMS SMEs, SMSCs etc e
da codicao das TPDU para a transmisso no meio fsico (BODIC, 2005). Na
camada SM-RL, dois ns da rede SMS merecem ser mencionados: SMS Gate-
way MSC (SMS-GMSC) e SMS InterWorking MSC (SMS-IWMSC). Oprimeiro
recebe a mensagem de um SMSC , interroga o HLR a respeito do caminho a
ser tomado, e entrega a rede recipiente. O segundo n realiza o trabalho in-
verso, onde recebe uma mensagem da rede GSM/GPRS e a encaminha para um
SMSC.
20
Figura 2.4: Arquitetura de rede SMS (BODIC, 2005)
2.2 PIC 18F4550
Computadores, em uma organizao simplista e geral, so compostos de
um ou mais processadores, memria principal e dispositivos de entrada e sada.
Dessa forma, eles podem gerenciar uma grande gama de dispositivos, modi-
cando os algoritmos lgicos que determinam sua operao o software , sem
precisar, necessariamente, modicar o processador, o grande responsvel pela
administrao de recursos da mquina. Sistemas embarcados no so difer-
entes, mas ao invs de usarem um computador de organizao complexa, uti-
lizam chips de propsito geral, com vrios dispositivos processador, memria
principal e memria externa, e diversos mdulos de entrada e sada embu-
tidos em uma nica pastilha de silcio. Esses chips so chamados de micro-
controladores, e so empregados para controle de outros perifricos, tais como
sensores trmicos e motores de passo.
O microcontrolador usado neste trabalho pertence famlia PIC18, fabri-
cado pela empresa Microchip, mais especicamente o modelo PIC18F4550.
Possui as seguintes caractersticas (MICROCHIP, 2007):
Baseado na arquitetura Harvard combarramentos separados para memria
de instruo e dados, pipeline de dois ciclos, um ciclo de leitura (fetch) e
outro de execuo (execute).
21
A palavra de instruo tem tamanho de 16 bits, enquanto a palavra de
dados, 8 bits. Pode enderear at 16K palavras de instruo, e 2K palavras
de dados. Memria de dados dividida em bancos
Vrios perifricos (USB, UART, MSSP, SPP, etc).
Vrias entradas e sadas analgicas.
Interrupes externas e internas, timer, CCP e PWM
O modelo PIC18F4550 (gura 2.5)possui uma srie de vantagens em re-
lao a outros similares. um dos poucos controladores da famlia PIC18 que
possuem capacidade de realizar comunicao atravs de USB (Universal Serial
Bus), possui vrias instrues que facilitam o uso de linguagens de programao
de alto nvel (C, BASIC). A grande quantidade de perifricos disponveis no
chip um dos diferenciais de microntroladores PIC, por reduzir a necessidade
de uso de vrios componentes externos para fornecer ao sistema embarcado a
funcionalidade de cada tecnologia.
Existem muitos termos usados no modelo PIC18F4550 que no sero expli-
cados neste texto. Para mais detalhes, seu datasheet deve ser consultado (MI-
CROCHIP, 2007).
2.3 Protocolos de troca de mensagens
Para que sistemas embarcados adquiram acesso rede GSM, possvel uti-
lizar um modem que se encarregue dos detalhes mais complicados da comuni-
cao. Para que seja possvel a troca de mensagens entre esses dois dispositivos,
comum que estes utilizem uma conexo serial, baseada no padro RS232. O
corpo da mensagem enviada utiliza uma gramtica que dena quais partes de
uma mensagem conter comandos, dados, endereos etc, para que, assim, as
22
Figura 2.5: Diagrama de blocos do PIC18F4550 (MICROCHIP, 2007)
23
funcionalidades do modem estejam disponveis de modo transparente para o
ncleo do sistema embarcado.
Neste trabalho sero abordados dois tipos de protocolos de troca de men-
sagens: comandos AT e pacotes FBus.
2.3.1 Comandos AT
Muitos modens so operados por computadores e outros sistemas embar-
cados atravs de uma interface serial e um conjunto de comandos conheci-
dos como Comandos AT. O corpo desses comandos constitudo de apenas
uma string de texto (geralmente ASCII ou outra codicao), iniciados pelo
cabealho AT+, seguidos por um comando e alguns parmetros. Todo co-
mando AT enviado como uma requisio, que tratado e devolvida uma
resposta no mesmo formato ao emissor, com alguma mensagem de conr-
mao ou dados. Esse comportamento similar ao encontrado em arquiteturas
cliente-servidor, e de fato, modens sempre dependem de um host que gerencie
sua operao em alguma aplicao especca.
Comandos AT permitem quatro tipos de operao (HOME, 2010):
Test: Verica se determinado comando suportado pelo dispositivo.
Set: Modica conguraes no modem para determinadas tarefas.
Read: Verica conguraes de determinada operao no modem.
Execution: Realiza uma ao ou retira informaes de status sobre a exe-
cuo do modem ou dispositivo mvel.
O padro GSM dene um conjunto de comandos AT que seja comum a to-
dos os dispositivos que se conectem rede celular, independente de fabricantes.
A lista bastante extensa, mas, na tabela 2.1, sero exibidos alguns comandos
24
para envio de SMS, acompanhado de uma breve descrio (MULTITECHSYS-
TEMS, 2003).
Tabela 2.1: Lista de comandos AT para operaes com SMS (MULTITECHSYSTEMS, 2003)
+CMGS Envia mensagem SMS
+CMGL Lista mensagens armazenadas na memria
+CMGR L mensagens armazenadas
+CMGL Lista mensagens armazenadas na memria
+CMGF Dene modo de operao do modem (Texto ou PDU)
+CSCA Gerencia nmero de SMSC
2.3.2 Nokia MBus e FBus
MBUS e FBUS so um protocolos de comunicao proprietrios da Nokia
que permitem a operao de dispositivos celulares a partir de comandos envia-
dos por uma interface serial (UART). Esses protocolos esto presentes em qual-
quer celular Nokia, e utiliza um conjunto de comandos para enviar mensagens
SMS, upload de arquivos para memria interna, congurao de chamadas, en-
tre outros.
O primeiro utiliza um canal de comunicao half-duplex, taxa de transmis-
so de 9600bps, 8 bits de dados, paridade mpar, um bit de parada. As linhas
DTR (Data Terminal Ready) e RTS (ready to send) precisam estar em nvel
lgico 0. Quanto ao protocolo FBUS, a comunicao serial realizada atravs
de uma interface full-duplex, com taxas de transmisso de 115200 bps, 8 bits
de dados, nenhum bit de paridade e um bit de parada. Os sinal DTR e RTS pre-
cisam estar em nvel lgico 1 e 0, respectivamente. Os canais de entrada e sada
do celular operam a 3.3V, uma vez que so voltados para o menor consumo de
energia.
25
A Mensagem a ser transmitida agrupada em um quadro de vrios octetos.
O primeiro octeto possui valor 0x1E, e representa o frame id da mensagem.
A seguir, o segundo octeto contm o endereo do celular e o terceiro, o en-
dereo de origem (no nosso caso o endereo do microcontrolador). Os quarto
e quinto octetos representam o comprimento da mensagem, onde o quarto o
byte mais signicativo e o quinto o menos signicativo. O corpo da mensagem
est localizado nos prximos octetos e, obrigatoriamente, precisa ter o mesmo
comprimento (em bytes) que o valor descrito nos duas posies anteriores. Fi-
nalmente, os dois ltimo octetos so o checksum da mensagem, o primeiro byte
obtido a partir da operao XOR de todos os bytes mpares do quadro, en-
quanto o ltimo, de todos os bytes pares.
Aps a recepo do quadro pelo aparelho celular, este transmite dois quadros
como resposta. O primeiro representa um ACK (de Acknowledgement ou con-
rmao) e o segundo quadro representa a resposta requisio realizada an-
teriormente. Enquanto o microcontrolador no responder a mensagem com um
outro ACK, o celular reenviar os quadros trs vezes mais, at desistir.
2.3.3 Codicao de contedo
Aparelhos mveis muitas vezes no suportam o padro de codicao es-
tabelecido pelo padro ASCII. Utilizam o alfabeto de smbolos denido na es-
pecicao GSM e, por isso, deve ser realizada a converso das mensagens
no entanto, caracteres de A a Z e numerais (0 a 9) no necessitam de converso.
Caracteres em ambas especicaes possuem tamanho de 7 bits, e por isso pre-
cisam ser agrupadas em octetos. Este procedimento padro em dispositivos
celulares, principalmente ao usar protocolos que no suportam o modo texto
(como o caso de FBUS, ou de modens que operam somente em modo PDU).
O agrupamento realizado preenchendo os bits vazios esquerda com os bits
direita do prximo caractere. O exemplo a seguir ilustra como a menssagem
26
hello agrupada (exemplo retirado de EMBEDTRONICS (2010)).
h e l l o (smbolos)
68 65 6C 6C 6F (hexadecimal)
1101000 1100101 1101100 1101100 1101111 (binrio)
Agora vamos mostrar a mesma mensagem ao contrrio, para facilitar a compreenso do exemplo:
o l l e h (smbolos)
6F 6C 6C 65 68 (hexadecimal)
1101111 1101100 1101100 1100101 1101000 (binrio)
Agora o agrupamento ser realizado:
06 FD 9B 32 E8 (hexadecimal)
110 11111101 10011011 00110010 11101000 (binrio)
Logo, aps o agrupamento a mensagem hello (em hexadecimal) ser: E8 32 9B FD 06.
A Nokia no disponibiliza a documentao de seu protocolo de transmisso.
No entanto, a partir de experimentao, grande parte dos comandos foram doc-
umentados (em cdigo fonte) atravs do projeto Gnokii, que tambm disponibi-
liza um programa e informaes de hardware (GNOKII, 2010).
27
3 Projeto de Hardware
Neste captulo sero discutidos detalhes do projeto de hardware, do modem
utilizado, e do rmware presente no sistema embarcado. Na primeira seo
sero expostas as funcionalidades do hardware e seu propsito, para em seguida
explicar mais detalhadamente suas particularidades. Na segunda seo sero
expostas as caractersticas do modem utilizado e como foi realizada a interface
entre este e sistema embarcado.
3.1 Projeto de Hardware
Para demonstrar a capacidade de comunicao atravs de GSM/GPRS, este
trabalho prope a construo de uma plataforma de desenvolvimento que tenha
as seguintes caractersticas:
Interface de gravao e debug para ICD3 da microchip.
Dispositivos de entrada e sada para facilitar o teste de funcionalidades do
rmware.
Conexo combarramento USB, para facilitar comunicao entre plataforma
e computador.
Barramento serial para comunicao com dispositivos seriais externos uti-
lizando UART.
Interface para comunicao com dispositivos embarcados externos.
28
Figura 3.1: Diagrama eltrico da plataforma de comunicao
Capacidade de operar sozinha atravs de uma fonte de at 9V, conexo
USB, serial ou sistema embarcado externo.
No ncleo da plataforma, ser usado o microcontrolador PIC18F4550, como
foi mencionado no captulo anterior. O diagrama eltrico do circuito mostra o
acoplamento do microcontrolador a cada uma de suas interfaces (LCD, USB,
ICSP etc), como est descrito na gura 3.1. Seus vrios mdulos sero descritos
mais detalhadamente nas prximas sees.
Para acelerar o desenvolvimento da plataforma, foi utilizado um esquema de
gravao in-circuit para que o rmware do controlador pudesse ser atualizado
rapidamente. Ao pino vpp/mclr, que usado para aplicar a tenso de gravao
no controlador, foi construdo um circuito de reset ativado por um boto que
ca ativo com nvel lgico 0 (ver gura 3.2), mas foi incluso um capacitor para
evitar a queda de tenso muito brusca.
29
Figura 3.2: Interface de gravao e reset
Foram inclusos botes, LEDs e um display LCD ao circuito. Seu propsito
facilitar o teste de funcionalidades da plataforma, uma vez que h poucas
maneiras ecientes de descobrir problemas no rmware quando este est em
execuo.
O circuito inclui uma interface USB (gura 3.3) para trs propsitos:
Permitir a transmisso de comandos do computador para a interface serial
(modem).
Ler, escrever e alterar memria do microcontrolador, incluindo memria
ash e registradores que controlam dispositivos de entrada e sada. A inter-
face USB pode ser mais um instrumento til para a depurao do rmware
e armazenar dados que foram armazenados durante sua execuo.
Realizar atualizaes de rmware e incluso de novas funcionalidades sem
necessidade da interface de gravao. Essa caracterstica muito til
quando precisa-se adicionar ou corrigir uma funcionalidade do rmware
quando o gravador icd3 no est disponvel.
Adicionalmente, o USB pode alimentar o circuito caso a fonte no esteja
presente. O chaveamento do circuito bastante simples, realizado por um diodo
comum.
30
Figura 3.3: Circuito de interface para USB
O clock do microcontrolador precisa ser ajustado para que o USB possa
funcionar. Por isso foi escolhido um oscilador de 20 MHz acoplado a dois ca-
pacitores de 15 pF. Isso fornece ao microcontrolador um clock inicial de 20
MHz. O PIC permite duas conguraes para o uso de USB, full-speed e low-
speed. Neste projeto ser usada a comunicao full-speed, para que a taxa de
transmisso disponvel entre computador e microcontrolador seja capaz de al-
canar os maiores valores possveis (caso seja necessrio). Mais detalhes sero
expostos sobre a congurao USB ser explicado mais adiante.
O conector serial est ligado ao mdulo UART do controlador. Utiliza qua-
tro linhas, alimentao, terra, transmisso (TX) e recepo (RX). J que vrios
modens diferem quanto ao nvel de tenso utilizado durante a sua operao
(alguns operam a 3.3 V, outros a 5 V, etc), pode ser necessrio o uso de um
adaptador para realizar algum ajuste, mas caso no seja necessrio, pode ser
ligado diretamente ao conector.
A plataforma construda no possui mdulo de comunicao com outros
sensores, e, por isso, ela necessita de um meio para trocar dados com outros
sistemas embarcados. Logo, est a disposio um conector que est ligado a
10 linhas de transmisso, sendo que oito delas esto conectadas ao mdulo SPP
(Streaming Parallel Port), e outras duas a mdulos sensveis a interrupes ex-
ternas. O uso dessas interrupes pode ser til para sinalizar a comunicao
entre os dois dispositivos, e servir como canais de controle para o uso das lin-
has SPP. No entanto, no necessrio o uso das 10 linhas de comunicao, nem
31
Figura 3.4: Circuito regulador de tenso
o mdulo SPP para realizar a comunicao entre os dois dispositivos: os detal-
hes de como a troca de dados ser realizada depender da implementao do
rmware nos dois sistemas.
Assim como no caso da comunicao serial, o conector para comunicao
externa pode depender de um adaptador, para que seja possvel converter os
nveis de tenso das linhas de transmisso. Por isso, o conector inclui duas
linhas ligadas, a primeira ligada ao terra e outra ligada alimentao do circuito.
A plataforma tambm pode ser alimentada atravs de uma fonte de 12 V
comum, embora tenses mais fracas forneam a potncia suciente. Como o
PIC funciona com nveis de alimentao muito mais baixos pode operar a 5V
ou em aplicaes em que se requere preservao da bateria, 3V a sada de
tenso da fonte pode ser danosa para os componentes internos. Logo, se faz
necessrio o emprego de um regulador de tenso (7805) para limitar a corrente
de entrada. O circuito pode ser encontrado na gura 3.4
3.2 Modem
Para a transmisso das mensangens atravs da rede GPRS, necessrio usar
um instrumento que realize a conexo entre a estao base e estao mvel.
Esse dispositivo deve cuidar dos detalhes de sinalizao e chamada para que a
aplicao desenvolvida trate apenas de detalhes da transferncia dos dados. Por
isso, nosso projeto far emprego de um modem, que se encarregar dos detalhes
32
de comunicao para este circuito.
Como um dos objetivos deste trabalho construir uma plataforma de comu-
nicao GPRS atravs de equipamentos que podem ser encontrados facilmente
no mercado local, fez-se uso de um dos modens mais comuns: telefones celu-
lares. Muitos desses telefones possuem capacidade de se comunicar com a rede
GSM, e at fornecem meios para efetuar a conexo com outros dispositivos
como por exemplo, a presena de uma linha de dados para para comunicao
com computadores pessoais atravs da porta USB. Alm disso, podem operar
por muitas horas, com o uso moderado de seus recursos.
Todos os aparelhos celulares fabricados pela Nokia possuem capacidade
para transmitir dados atravs de FBUS ou outros protocolos (comandos AT).
Neste trabalho, optou-se pelo uso do modelo Nokia 2720, pois este suporta os
protocolos WAP e GPRS, embora, para o uso exclusivo de SMS, modelos mais
econmicos seriam sucientes.
Para enviar dados pelo celular, necessrio o uso de alguma interface entre
ambos, e para tal, alguns pinos podem ser encontrados na parte posterior do
celular, abaixo da bateria e prximo ao local onde armazenado o SIM card. A
gura 3.5 mostra a relao de pinos que podem ser usados para a comunicao
com esta plataforma.
Os pinos Rx e Tx so os dois canais unidirecionais utilizados para comuni-
cao atravs de FBus, enquanto o pino MBus bidirecional e utilizado para o
protocolo de mesmo nome. preciso cuidado ao converter a tenso do celular
para o sistema embarcado, j que este pode operar a uma tenso superior a 3.3
V.
Atravs de medio nos canais de transmisso, foi possvel comprovar que
o sinal em nvel lgico alto sem o uso de divisores de tenso possui valor de
aproximadamente 2.75 V. Segundo experimentos disponibilizados na internet,
33
Figura 3.5: Pinagem do Nokia 2720
a faixa de tenso aceitvel para nvel lgico de 2 a 2.8 V, o que comprova a
medio.
No dispositivo embarcado, a tenso em nvel lgico alto das linhas Tx varia
entre 3.7 e 4.3. preciso reduzir a tenso para evitar danos no telefone. Os
dois esquemas (guras 3.6 e 3.7) mostram maneiras simples de fazer a regu-
lagem, onde Tx e Rx se referem as linhas do dispositivo embarcado (no celular,
a congurao inversa).
As relaes
R2
R1
e
R4
R3
devem ser proporcionais a 1.8. Poderia-se usar uma
dupla de resistores de 180 e 100 , para no limitar severamente a corrente
eltrica. O diodo schottky no esquema do MBus (gura 3.7) empregado como
reticador, mas, diferentemente dos diodos tradicionais, no acarreta em uma
queda de tenso muito severa (de 0.15 at 0.46 V, comparados faixa de 0.6
a 1.4 V, referentes a diodos de silcio ou germnio mais comuns) e atua mais
rapidamente. O Buffer 74HC541 empregado para elevar o nvel de tenso
para a recepo no microcontrolador.
34
Figura 3.6: Esquema para converso de nveis de tenso (MBus)
Figura 3.7: Esquema para converso de nveis de tenso (FBus)
35
O celular no depende de alimentao externa. Sua alimentao provida
por sua bateria de on ltio original.
36
4 Projeto de Firmware
Oncleo de sistema embarcado ummicrocontrolador, que possui a respon-
sabilidade de gerenciar quando um comando acionado, ou quais parmetros
sero passados para os perifricos ligados as suas unidades de entrada e sada,
quais unidades sero acionadas. O rmware um programa escrito que pode
ser escrito em linguagem de programao ou de montagem contm a lgica
de controle e execuo de suas atividades, e est armazenado na memria de
programa (no voltil, e lida durante a inicializao do mesmo). A lgica do
rmware pode ser dividida em vrias unidades lgicas (funes), que por sua
vez compem o conjunto de funcionalidades de um determinado mdulo (bib-
lioteca).
Uma das responsabilidades deste trabalho a elaborao de uma biblioteca
de funes que pode auxiliar programadores da plataforma a acessar as fun-
cionalidades da rede GSM/GPRS sem precisar conhecer detalhes especcos
dos protocolos de transmisso de dados. Nesta seo, veremos que funcionali-
dades esto disponveis e qual a lgica relacionada a suas mensagens.
4.1 Congurao do microcontrolador
O projeto do cdigo fonte baseado na linguagem C, segundo a especi-
cao do compilador PICC da empresa CCS (Custom Computer Services). Este
compilador no open source, mas possui uma biblioteca extensa que reduz a
37
complexidade do desenvolvimento do rmware (como manipulao automtica
de acesso a bancos de memria). O CCS possui tambm uma srie de mdu-
los que se encarregam de perifricos como USB, UART, e virtual UART (porta
serial implementada puramente em software). O compilador SDCC (Simple
Device C Compiler), apesar de ser open source, ainda no possui uma verso
estvel.
Na primeira seo deste trabalho mencionamos a interface de gravao ICSP,
que permite a gravao de um novo conjunto de instrues no microcontrolador
sem que esse fosse removido da placa de circuito impresso que constitui a nossa
plataforma. no cdigo fonte do rmware que armazenamos os parmetros de
congurao do controlador: mdulos utilizados entre as unidades de entrada e
sada, conguraes de clock e timer, proteo de cdigo, opes de reset, etc.
Como o PIC18F4550 utilizado faz uso de duas unidades de comunicao
serial (RS 232 e USB) necessrio a congurao de um clock alto para evitar
buffer overruns (esgotamento de espao lgico que armazena as mensagens que
chegam ao controlador, oriundas do modem ou computador, neste caso) em
quaisquer desses mdulos de transmisso de dados. O oscilador congurado
em modo HSPLL, que emprega cristais externos de alta frequncia acoplados
a um multiplicador de clock (PLL Phase Locked Loop) e a um divisor de
clock. Os bits PLLDIV2 do registrador PLL e CPUDIV1 do divisor de clock
do processador, quando em nvel lgico alto, acoplados a um cristal de 20 MHz
produzem um clock de 48 MHz para o microcontrolador.
O mdulo de USB possui tambm um clock, que derivado da frequncia de
oscilao do processador. O modo full-speed requere obtido atravs da diviso
do clock do processador (48 MHz). A tabela 4.1 mostra outras conguraes de
clock relativas ao PIC18F4550, para um oscilador de 20 MHz (MICROCHIP,
2007).
A frequncia do microcontrolador destacada em negrito contm a nica con-
38
Tabela 4.1: Conguraes do oscilador
Modo de Clock Diviso do Clock Frequncia do microcontrolador
HS, EC, ECIO
None (00) 20 MHz
2 (01) 10 MHz
3 (10) 6.67 MHz
4 (11) 5 MHz
HSPLL, ECPLL, ECPIO
2 (00) 48 MHz
3 (01) 32 MHz
4 (10) 24 MHz
6 (11) 5 MHz
gurao possvel para que o mdulo USB funcione no modo half-speed.
A porta serial precisa ser congurada com uma taxa de transmisso de 9600
bps, 8 bits de dados e um bit de parada. O modo FBus no utiliza paridade,
enquanto no MBus a paridade mpar. A taxa de transmisso de 115200 bps
valor mximo para para a congurao do FBus muito elevada para o micro-
controlador, e provoca um mal funcionamento, em virtude de buffer overruns.
possvel congurar o controlador para ignorar esses erros. No entanto, para
evitar transtornos, mais seguro reduzir a taxa de transmisso para valores mais
baixos, ou utilizar estritamente a linhas de transmisso para MBus (cuja taxa de
transmisso 9600 bps em congurao padro).
4.2 Organizao da biblioteca
Podemos denir a arquitetura do rmware em trs camadas, como descrito
na tabela 4.2.
Tabela 4.2: Camadas de rmware da plataforma
Aplicao
Transmisso
Sinalizao
A primeira camada, aplicao contm a lgica de controle do rmware.
Esta camada usa as funes denidas na camada de transmisso para enviar e
receber mensagens atravs da rede GSM. Acamada de aplicao conta comout-
39
ras funes utilitrias, como manipulao de perifricos de E/S (botes, LCD e
LEDs).
A segunda camada, ou camada de transmisso possui diretivas para o en-
capsulamento de mensagens para o terminal serial (UART). Nesta camada, est
presente a lgica de encapsulamento de contedo (como converso de ASCII
para PDU) e cabealhos da mensagem do protocolo GSM, para que possa ser
transferida pelo protocolo de transmisso adequado (F/MBus ou comando AT,
no caso de mensagens SMS). No entanto, todo o procedimento de encapsula-
mento deve ser transparente para a camada anterior.
Enquanto a camada anterior se encarrega do encapsulamento de contedo
e cabealho, a camada de sinalizao tem como papel realizar requisies e
interpretar respostas. Diferentemente da camada anterior, a sinalizao no se
preocupa com o contedo das mensagens, mas de encaminhar a mensagem ao
seu destino destino. No processo de sinalizao, o controlador se encarrega das
seguintes tarefas:
Ler e escrever informaes de sinalizao da mensagem(cabealhos F/MBus),
denir as conguraes para o modem, antes que a mensagem a seja envi-
ada (comandos AT).
Vericar a presena de erros na mensagem atravs de checksum (F/MBus),
ou formatao da string (comandos AT).
Vericar e responder mensagens de conrmao enviadas pelo modem
(F/MBus).
Habilitar ou Desabilitar interrupes do microcontrolador.
Enviar, receber vetores de dados atravs da porta serial.
40
4.3 Descrio de funes e caractersticas da biblioteca
As camadas de transmisso e sinalizao so representada por uma API
(Application Programming Interface) um conjunto de funes e estruturas
de dados que fornecem uma interface para algum tipo de funcionalidade. Esto
tambm presentes na API interfaces para operao de perifricos da plataforma.
4.3.1 API para SMS
A seguir sero descritas um conjunto de variveis, funes e estruturas de
dados importantes para a camada de transmisso, em formato de lista, que in-
clui informaes sobre a assinatura da funo, estrutura ou varivel relacionada,
uma descrio de seus parmetros e a descrio de seu uso. Se as assinaturas
das funes comearem com o prexo at_, esto restritas ao envio de coman-
dos AT. Caso o prexo seja fb_, so mensagens que podem ser transmitidas
atravs dos protocolos FBus e MBus da nokia.
Houve problemas na confeco do hardware, por isso as funes relativas a
FBus no foram testadas, e aquelas referentes a comandos AT foram testadas
fora do ambiente da plataforma.
int PDU_SMSC:
Descrio:
Varivel global que guarda o nmero do SMSC (agrupado em octetos) us-
ado para transmisses SMS. Durante a inicializao da plataforma, esse
nmero precisa ser ativado para que seja possvel a transmisso de men-
sagens SMS.
void set_smsc(char* smsc_string)
Parmetros:
41
smsc_string string em formato ASCII que representa o SMSC correspon-
dente
Descrio:
Congura a varivel global PDU_SMSC para o nmero do smsc passado
como parmetro. Realiza a converso da string para o formato PDU.
int at_send_sms(char* message, char* number):
Descrio:
Transmite a mensagem para o nmero solicitado atravs de comandos AT
para o modem. Retorna 0 em caso de sucesso.
int at_stored_sms():
Descrio:
Retorna o valor que representa a quantidade de mensagens armazenadas
no SIM card.
int at_read_sms( int index ):
Parmetros:
index valor do ndice da mensagem armazenada no SIM card
Descrio:
Armazena na varivel global MESSAGE, a mensagem de posio index da
memria do SIM card. Retorna 0 tenha sucesso.
void fb_send_sms(char* message, char* number):
Parmetros:
message string de mensagem (em ASCII)
number string correspondente ao nmero do telefone chamado (emASCII).
Descrio:
42
Envia a mensagem em formato legvel para o protocolo Nokia F/MBus, de
forma similar funo at_send_message.
int fb_read_sms()
Descrio:
Essa funo deve chamada durante a recepo de dados pela interface se-
rial. Armazena a mensagem recebida na varivel global MESSAGE. Re-
torna 0 caso tenha sucesso.
struct sms_t decode_sms()
Descrio:
Converte a mensagem armazenada em MESSAGE para uma struct sms_t
struct sms_t
Descrio:
Estrutura que representa o corpo de uma mensagem sms. Os membros
m_number, m_time e m_message, representam o nmero do destinatrio,
a hora em que a mensagem foi recebida, e a mensagem em si, todos em
formato PDU.
int8 MESSAGE[BUFSIZE]
Descrio:
Buffer para recepo de mensagens SMS. BUFSIZE ummacro comvalor
padro 30.
int pdu_to_ascii(int8* pdu, int8* ascii, int pdu_size, int ascii_size)
Parmetros:
pdu array de octetos em formato pdu.
ascii array de caracteres ascii vazio.
pdu_size tamanho do array pdu.
43
ascii_size tamanho do array ascii.
Descrio:
Converte valores de um array de pdu para uma string ascii. O tamanho do
array em ascii deve ser maior que o de pdu em uma proporo de 8 para
7, arredondado para baixo, ou acarretar em erro. Retorna 0 em caso de
sucesso.
As funes a seguir se referem ao processo de sinalizao da mensagem
atravs da interface rs232:
int at_cong_sms( int mode )
Parmetros:
mode O valor 0 congura o modem para usar o modo PDU. O valor 1,
para modo texto.
Descrio:
Congura o modem para operar em modo PDU ou texto. chamada em
at_sms_send() e, neste caso, est congurado para operar em modo pdu
por padro.
int at_send_command( char* pdu, int length, char* command, char* re-
sponse)
Parmetros:
pdu array de octetos em formato PDU.
length comprimento do array de PDU.
command comando at em formato ASCII
response resposta obtida do comando enviado, em pdu.
Descrio:
44
Realiza a converso do pdu em string ASCII (por exemplo se o valor 0xAF,
converte para dois caracteres, A e F em ASCII), cria o corpo da men-
sagem, por exemplo AT+CMGS=14<CR>000103...<Ctrl-z> e envia o co-
mando atravs do modem. O corpo da resposta passada para a varivel
response, aps a extrao dos cabealhos do comando AT.
char get_ascii_char ( char ch, int part )
Parmetros:
ch octeto em pdu.
part 0 representa a parte baixa do octeto e 1 a parte alta.
Descrio
Funo auxiliar que converte pores do octeto em ASCII.
int fb_decode_msg ( char* message )
Parmetros
message A mensagem que ser extrada da serial.
Descrio:
Essa funo invocada todas as vezes que recebe uma resposta atravs
da porta serial. Por padro, retorna 0 quando o tipo da mensagem for um
SMS. A string message ser extrada da poro de contedo da mensagem
fbus. Essa funo realiza o checksum da mensagem recebida.
4.3.2 Funes de utilidade
Estas funes so usadas para manipulao de perifricos da plataforma.
Por restries de tempo do projeto, os mdulos da API para escrita no monitor
LCD no foram criados. No h mdulo para comunicao com dispositivos
externos, j que a comunicao com outros dispositivos pode ter caractersticas
bastante divergentes do que foi proposto neste projeto.
45
void LED_X_ON(), LED_X_OFF()
Descrio:
Essas funes so macros para operao dos LEDs. X um nmero que
vai de 1 a 3.
int BTN_X_PRESSED()
Descrio:
Macros que vericam se botes esto pressionados. Como na funo an-
terior, X varia de 1 a 3.
int usb_msg_receive( char* message, int length )
Parmetros:
message buffer para por o contedo extrado da porta usb
length comprimento mximo do buffer.
Descrio:
Verica se usb foi enumerado e copia os dados obtidos da porta USB para
message. Realiza a vericao de comprimento do buffer, para evitar que
seu tamanho seja excedido. Retorna a quantidade de bytes lidos ou -1 caso
tenha acontecido algum erro.
int usb_msg_send( char* message, int length )
Parmetros:
message buffer para por o contedo a ser enviado atravs da porta usb
length comprimento mximo do buffer.
Descrio:
Faz o processo inverso da funo anterior, enviando ao invs de receber.
46
5 Resultados e testes
Neste captulo discutiremos sobre os resultados que foram alcanados com
este trabalho, com imagens do hardware construdo. A ltima seo inclui al-
guns testes realizados com a plataforma.
5.1 Hardware confeccionado
A plataforma foi construda sob a forma de uma placa de circuito impresso,
utilizando o mtodo de transferncia trmica. Foram usados os seguintes com-
ponentes:
Monitor LCD 16x2
Conector USB tipo B
Conector RJ-12
Quatro chaves tcteis.
Conector P4
Oscilador cermico de 20MHz.
13 Resistores comuns, sendo seis de 470 , trs de 1 K, dois de 15 ,
um de 10 K e um de 47 .
6 capacitores cermicos, sendo dois de 100 nF, dois de 15 pF, um de 220
nF e um de 330 nF.
47
Figura 5.1: Imagem da placa de circuito impresso
1 capacitor eletroltico de 1 F.
4 LEDs comuns
Regulador de tenso 7805
2 diodos 1N4007
3 barras de pino
A gura 5.1 mostra uma imagem da placa confeccionada.
As linhas de transmisso MBus, Tx, Rx e GNDdo nokia 2720 foramacopladas
a um conector molex. Foi possvel conservar a bateria de on-ltio no aparelho,
removendo a necessidade de usar um circuito de alimentao para o telefone. A
gura 5.2 ilustra a conexo realizada.
48
Figura 5.2: Conexo de linhas de transmisso do aparelho celular (Nokia 2720)
No foi possvel realizar a interface entre celular e plataforma, pois houve
vrias diculdades. Apesar do nvel de tenso ter sido convertido para um valor
aceitvel, no houve resposta do celular na linha de recepo do microcontro-
lador. Uma hiptese que justique este comportamento a possibilidade de
que a requisio realizada no estivesse sendo decodicada corretamente e, por
isso, no houvera resposta. Segundo Gnokii (2010), possvel haver variaes
no cabealho da mensagem FBus de acordo com o modelo de celular Nokia uti-
lizado. No h documentao, seja por parte da Nokia ou Gnokii, que justique
essa armao, contudo.
5.2 Testes realizados
Foram feitos testes para saber que funcionalidades da plataforma estavam
operacionais. Os testes realizados foram:
Piscar LEDs, para testar a operao desses mdulos.
49
Acender LEDs pressionando botes, para testar o funcionamento dos ter-
minais de entrada.
Acender e apagar LED atravs de comandos pela porta USB, para testar
envio.
Receber string de porta USB para testar a recepo.
Atravs de computador foi escrito um software que realiza o envio e recebi-
mento de SMS atravs de funes similares s encontradas na biblioteca. Como
as tarefas de envio e recepo de SMS eram simples, no houve problemas du-
rante a operao.
50
6 Concluso
Este trabalho props a construo de uma plataforma que pudesse ser us-
ada para enviar dados atravs da rede GSM. Foi realizado projeto de software
e hardware a partir de componentes encontrados facilmente no mercado local.
Alguns testes foram realizados para vericar o funcionamento dos mdulos de
hardware. A comunicao pela plataforma atravs da rede GSM no foi real-
izada com sucesso, embora tenha sido demonstrado em software para PC que
atravs de comandos AT e um modem possvel enviar e receber mensagens
SMS.
Houve vrias diculdades no projeto da plataforma. Um primeiro prottipo
possua vrios erros, alguns de projeto e outros do processo de fabricao. O
hardware da plataforma foi construdo em sua segunda tentativa.
Um dos desaos do projeto foi utilizar um celular como modem para acessar
a rede GPRS. Como no havia cabos para a conexo entre celular e plataforma,
foi necessria a criao de uma interface eltrica para operao atravs da porta
serial. Embora houvesse uma documentao no-ocial na internet de como
proceder na criao da interface, havia vrias lacunas na literatura encontrada,
especialmente quanto s capacidades do dispositivo celular utilizado no pro-
jeto. Esse fato mostra que o uso de modens externos voltados para aplicaes
GSM/GPRS ainda so a melhor alternativa, mesmo pela diculdade de encontr-
los no mercado local ou a preos acessveis.
Para dar continuidade ao desenvolvimento da plataforma proposta e fazer
51
com que ela atinja a meta proposta inicialmente, necessrio investir esforo
na integrao da plataforma com algum modem externo. Se essa meta for al-
canada, teremos a disposio da academia e mercado um poderoso artefato,
para uso em aplicaes de telemetria e monitoramento.
52
Referncias Bibliogrcas
BODIC, Gwenal Le. Mobile Messaging Technologies and Services. 2nd. ed.
[S.l.]: John Wiley & Sons, Ltd, 2005.
GNOKII. gnokii. 2010. URL: http://www.gnokii.org/. Visitado em: 20/11/2010.
HEINE, Gunnar. GSM Networks: Protocols, Terminology and Implementation.
1st. ed. [S.l.]: Artech House, 1999.
HOME, Developers. AT Command Operations: Test, Read, Set and Exe-
cution. 2010. URL: http://www.developershome.com/sms/atCommandOp.asp.
Visitado em: 20/11/2010.
MICROCHIP. PIC18F2455/2550/4455/4550 Datasheet: 28/40/44-Pin, High
Performance, Enhanced Flash, USB Microcontrollers with nanoWatt Technol-
ogy. [S.l.], 2007. 428 p.
MULTITECHSYSTEMS. AT Commands: GSM Reference Guide. [S.l.], 2003.
244 p.
OLIVEIRA, Sergio Campello; FONTANA, Eduardo. Optical detection of par-
tial discharges on insulator strings of high voltage transmission lines. IEEE
Transactions on Instrumental and Measurement, v. 58, p. 23282334, 2009.
SEURRE, Emmanuel; SAVELLI, Patrick; PIETRI, Pierre-Jean. GPRS for Mo-
bile Internet. 1st. ed. [S.l.]: Artech House, 2003.