Maycon Rodrigo Moreira
Projeto de Interface de Telefonia Analogica USBpara sistemas VoIP
Sao Jose – SC
Fevereiro/2015
Maycon Rodrigo Moreira
Projeto de Interface de Telefonia Analogica USBpara sistemas VoIP
Monografia apresentada a Coordenacao doCurso Superior de Tecnologia em Sistemasde Telecomunicacoes do Instituto Federal deSanta Catarina para a obtencao do diploma deTecnologo em Sistemas de Telecomunicacoes.
Orientador:
Prof. Roberto de Matos, M. Eng.
Co-orientador:
Prof. Marcelo Maia Sobral, Dr. Eng.
CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS DE TELECOMUNICACOES
INSTITUTO FEDERAL DE SANTA CATARINA
Sao Jose – SC
Fevereiro/2015
Monografia sob o tıtulo “Projeto de Interface de Telefonia Analogica USB para sistemas
VOIP”, defendida por Maycon Rodrigo Moreira e aprovada em 24 de fevereio de 2015, em Sao
Jose, Santa Catarina, pela banca examinadora assim constituıda:
Prof. Roberto de Matos, M. Eng.Orientador
Prof. Marcelo Maia Sobral, Dr.Coorientador
Prof. Eraldo Silveira e Silva, Dr.IFSC
Prof. Sandro Carlos Lima, M. Eng.IFSC
Olho por olho,
e o mundo acabara cego.
M. Gandhi
Agradecimentos
Aquela que tornou tudo isso possıvel, agraceco imensamente a minha mae. A toda minha
famılia, que nunca deixou qualquer dificulade me abalar. Agradeco tambem a paciente e sempre
presente minha namorada. Aos meus verdadeiros amigos, que impulsionaram essa tarefa da
forma mais prazerosa possıvel, muito obrigado. Imposıvel esquecer meu professor e orientador,
Roberto de Matos, que mostrou o caminho certo durante todo o trabalho, alem da confianca
depositada. Meus sinceros agradecimentos tambem ao meu professor Marcelo Maia Sobral,
que me fez crer neste projeto. Agradeco a todas as outras pessoas que nao foram citadas aqui.
Muito obrigado a todos.
Resumo
Atualmente, o uso da Internet para transmitir voz esta consolidado, seja nas comunicacoesutilizando puramente voz sobre o protocolo da Internet (VoIP) ou mascarado por sistemas quefazem a conversao entre a telefonia analogica e VoIP. No segundo cenario, um dos grandes ato-res sao os sistemas que fazem a integracao dos sistemas analogicos com as centrais telefonicasIP. Esses sistemas podem ser equipamentos proprietarios ou computadores, de capacidade com-putacional elevada, equipados de dispositivos com interfaces analogicas, os quais sao interli-gados via os complexos barramentos internos. Tudo isso sugere que esses equipamentos fi-quem dedicados a funcao de gateway de telefonia, atendendo de forma satisfatoria empresasde todos os portes. Entretanto, para uso domiciliar e em pequenos escritorios o custo parainstalacao de tais equipamentos pode ser proibitivo, nao permitindo que esse seguimento faca ouso dos diversos servicos implementados em software nas centrais telefonicas IP. Dessa forma,a implementacao de dispositivos que disponibilizem interfaces analogicas via o barramentoUSB, torna possıvel a implementacao de gateways telefonicos em sistemas compartilhados,como notebook pessoal, ou em sistemas de baixo poder computacional e custo reduzido, comopor exemplo, a placa Raspberry Pi1. A proposta deste trabalho e estudar os conceitos compu-tacionais e de telefonia necessarios para implementar um dispositivo com interface USB quepermita a integracao entre a rede comutada de telefonia brasileira e rede IP, de forma a permitirque mesmo sistemas simples, com uma porta USB disponıvel, sejam transformados em umacentral telefonica IP de pequeno porte.
1Raspberry Pi e um computador do tamanho de um cartao de credito. Todo o hardware e integrado numa unicaplaca com custo de US$35
Abstract
Currently, the use of the Internet to transmit voice is consolidated, either in communicationsusing purely voice over Internet protocol (VoIP) or masked by systems that make the conver-sion between analog and VoIP telephony. In the second scenario, the big actors are the systemsthat make the integration of analog systems to IP telephone exchanges. The systems may beproprietary equipment or computers, high computing power, equipped devices with analog in-terfaces, which are interconnected via the complex internal buses. All this suggests that thesedevices remain dedicated to the gateway function telephony, given satisfactorily companies ofall sizes. However, for home use and small office the cost for installation of such equipmentmay be prohibitive, not allowing that follow make use of the various services implemented insoftware in the IP telephone exchanges. Thus, the implementation of devices that provide ana-log interfaces via a USB bus, makes possible the implementation of telephone gateways sharedsystems such as notebook personal, or low computational power and low cost systems, such asplate Raspberry Pi. The purpose of this study is to assess computing and telephony conceptsnecessary to implement a device with USB interface allowing integration between the switchednetwork of brazilian and IP telephony network in order to allow both simple systems with anavailable USB port, be transformed into a small telephone exchange IP
Sumario
Lista de Figuras
Lista de Tabelas
1 Introducao p. 14
1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15
1.2 Organizacao do texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 16
2 Fundamentacao teorica p. 17
2.1 Conceitos de telefonia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 17
2.1.1 Sinalizacao acustica . . . . . . . . . . . . . . . . . . . . . . . . . . p. 17
2.1.2 Sinalizacao de discagem . . . . . . . . . . . . . . . . . . . . . . . . p. 18
2.1.3 Alimentacao do circuito . . . . . . . . . . . . . . . . . . . . . . . . p. 18
2.1.4 Interfaces FXO e FXS . . . . . . . . . . . . . . . . . . . . . . . . . p. 19
2.2 Digitalizacao da voz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
2.2.1 Processo de amostragem . . . . . . . . . . . . . . . . . . . . . . . . p. 20
2.2.2 Processo de quantizacao . . . . . . . . . . . . . . . . . . . . . . . . p. 21
2.2.3 Processo de codificacao . . . . . . . . . . . . . . . . . . . . . . . . p. 21
2.3 Rede de telefonia publica integrada a rede IP . . . . . . . . . . . . . . . . . p. 21
2.3.1 Gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22
2.3.2 Asterisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22
2.3.3 Digium Asterisk Hardware Device Interface - (DAHDI) . . . . . . . p. 23
2.4 Subscriber Line Interface Circuit - (SLIC) . . . . . . . . . . . . . . . . . . . p. 24
2.4.1 SLIC Microsemi . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24
2.4.2 SLIC Silicon Labs . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 25
2.5 Interface Universal Serial Bus . . . . . . . . . . . . . . . . . . . . . . . . . p. 26
2.5.1 Metodos de transferencias . . . . . . . . . . . . . . . . . . . . . . . p. 26
2.5.2 Metodo Isochronous . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29
2.6 Conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29
3 Estudo dos componentes e kits de desenvolvimento p. 30
3.1 Estrutura do SLIC si32179 . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30
3.1.1 SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 33
3.1.2 PCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 35
3.2 Kits de desenvolvimento si32179 . . . . . . . . . . . . . . . . . . . . . . . . p. 38
3.2.1 Estrutura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 38
3.2.2 Software utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 40
3.2.3 Proslic Application Programming Interface - (API) . . . . . . . . . . p. 42
3.3 Estrutura do LPC-1768 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 45
3.3.1 Cortex-M3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 46
3.3.2 Serial Peripheral Interface . . . . . . . . . . . . . . . . . . . . . . . p. 50
3.3.3 Interface USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 51
3.3.4 Outros perifericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 54
3.4 Kit de desenvolvimento LPC-1768 . . . . . . . . . . . . . . . . . . . . . . . p. 56
3.4.1 Estrutura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 57
3.4.2 Biblioteca NXP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 58
3.4.3 Projeto MBED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 60
3.4.4 Discussao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 62
3.5 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 63
4 Arquitetura e Projeto Logico p. 64
4.1 Arquitetura dos Sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 64
4.1.1 Sistema Basico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 64
4.1.2 Sistema de utilizacao de recursos externos . . . . . . . . . . . . . . . p. 65
4.1.3 Sistema de utilizacao de compartilhamento de recursos . . . . . . . . p. 65
4.2 Projeto Logico do Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . p. 66
4.2.1 Elaboracao do projeto logico . . . . . . . . . . . . . . . . . . . . . . p. 67
4.3 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 67
5 Experimento p. 69
5.1 Experimentos Primeira Etapa - Placa Filha no Modo Hospedeiro . . . . . . . p. 70
5.1.1 Experimento 1 - Utilizacao do software ProSLIC Voice GUI.3.4.0 . . p. 70
5.2 Experimentos Segunda Etapa - Placa Filha Modo Standalone . . . . . . . . . p. 73
5.2.1 Experimento 1 - Avaliacao da interface USB . . . . . . . . . . . . . p. 73
5.2.2 Experimento 2 - Avaliacao da interface SPI . . . . . . . . . . . . . . p. 74
5.2.3 Experimento 3 - Avaliacao do barramento PCM . . . . . . . . . . . . p. 78
5.3 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 82
6 Conclusoes p. 84
6.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 85
Referencias Bibliograficas p. 86
Anexo A -- Email Representante da Microsemi p. 88
Lista de Figuras
2.1 Exemplo de utilizacao da interface FXO (3CX, 2014). . . . . . . . . . . . . . p. 19
2.2 Exemplo de utilizacao da interface FXS (3CX, 2014). . . . . . . . . . . . . . p. 20
2.3 Processo de digitalizacao da voz (PINHEIRO, 2005). . . . . . . . . . . . . . p. 20
2.4 Interligacao entre PSTN e telefonia VoIP (LAMARAO; ALVAO, 2005). . . . p. 22
2.5 Arquitetura Asterisk (CUNHA et al., 2012). . . . . . . . . . . . . . . . . . . p. 23
2.6 Famılia de SLICs Microsemi (MICROSEMI, 2015). . . . . . . . . . . . . . . p. 25
2.7 Famılia de SLICs Silicon Laboratories (Figura cedida por cortesia pela Sili-
con Labs www.silabs.com). . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 26
2.8 Arquitetura logica da conexao USB (SASAKI; CAIXETA, 2006). . . . . . . p. 27
3.1 Diagrama de blocos do si32919 e interligacao por metodo capacitivo com o
CI si32919 (Figura cedida por cortesia pela Silicon Labs www.silabs.com). . p. 31
3.2 Escrita no registrador com dado de 8 bits (Figura cedida por cortesia pela
Silicon Labs www.silabs.com). . . . . . . . . . . . . . . . . . . . . . . . . . p. 34
3.3 leitura no registrador com dado de 8 bits (Figura cedida por cortesia pela
Silicon Labs www.silabs.com). . . . . . . . . . . . . . . . . . . . . . . . . . p. 34
3.4 Escrita na RAM com dado de 16 bits (Figura cedida por cortesia pela Silicon
Labs www.silabs.com). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 34
3.5 Leitura na RAM com dado de 16 bits (Figura cedida por cortesia pela Silicon
Labs www.silabs.com). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 35
3.6 Exemplo dos sinais PCLK, FSYNC, DRXa e DTXa de um timeslot, utili-
zando o modo Short FSYNC (Figura cedida por cortesia pela Silicon Labs
www.silabs.com) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 37
3.7 Exemplo dos sinais PCLK, FSYNC, DRXa e DTXa de um timeslot, utili-
zando o modo Long FSYNC (Figura cedida por cortesia pela Silicon Labs
www.silabs.com) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 37
3.8 Kit de desenvolvimento da Silicon Laboratories VMB2 REV 2.0. . . . . . . . p. 39
3.9 Kit de desenvolvimento da Silicon Laboratories Si32179BFB11SL0EVB. . . p. 40
3.10 Software ProSLIC Voice GUI.3.4.0. . . . . . . . . . . . . . . . . . . . . . . p. 41
3.11 Software Proslic api config tool. . . . . . . . . . . . . . . . . . . . . . . . . p. 43
3.12 Arquitetura Proslic API (Figura cedida por cortesia pela Silicon Labs www.silabs.com). p. 43
3.13 Arquitetura Proslic API (Figura cedida por cortesia pela Silicon Labs www.silabs.com). p. 44
3.14 Estrutura basica da CMSIS (MIYADAIRA, 2012). . . . . . . . . . . . . . . . p. 47
3.15 Diagrama de bloco do ARM Cortex-M3 (NXP, 2015a). . . . . . . . . . . . . p. 48
3.16 Mapa de memoria do processador ARM Cortex-M3 (MIYADAIRA, 2012). . p. 49
3.17 Barramento SPI (MIYADAIRA, 2012). . . . . . . . . . . . . . . . . . . . . p. 50
3.18 Transferencia de um dado de 8 bits (MIYADAIRA, 2012). . . . . . . . . . . p. 52
3.19 Barramento USB para o modo device (NXP, 2015b). . . . . . . . . . . . . . p. 53
3.20 Kit de desenvolvimento MBED LPC-1768 (NXP, 2015a). . . . . . . . . . . . p. 57
3.21 Ambiente MBED, tela principal. . . . . . . . . . . . . . . . . . . . . . . . . p. 61
3.22 Ambiente de escolha da plataforma. . . . . . . . . . . . . . . . . . . . . . . p. 62
4.1 Arquitetura sistema Basico. . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 64
4.2 Arquitetura do sistema de utilizacao de recursos externos. . . . . . . . . . . . p. 65
4.3 Arquitetura sistema de utilizacao de compartilhamento de recursos. . . . . . . p. 66
4.4 Diagrama do sistema proposto pelo projeto. . . . . . . . . . . . . . . . . . . p. 67
4.5 Projeto logico do dispositivo de telefonia. . . . . . . . . . . . . . . . . . . . p. 67
5.1 Configuracao fısica do cenario para o experimento da placa filha no modo
hospedeiro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 70
5.2 Reproducao de um segundo de audio enviado via USB. . . . . . . . . . . . . p. 74
5.3 Sinais SCLK (canal 1) e SS (canal 2). . . . . . . . . . . . . . . . . . . . . . p. 75
5.4 Escrita REG 14. Sinais SCLK (canal 1) e MOSI (canal 2). . . . . . . . . . . p. 75
5.5 Escrita REG 14. Sinais SCLK (canal 1) e MOSI (canal 2) ampliados. . . . . . p. 75
5.6 Escrita REG 14. Sinais SCLK (canal 1) e MISO (canal 2). . . . . . . . . . . p. 76
5.7 Leitura REG 3. Sinais SCLK (canal 1) e MOSI (canal 2). . . . . . . . . . . . p. 76
5.8 Leitura REG 3. Sinais SCLK (canal 1) e MOSI (canal 2) ampliados. . . . . . p. 77
5.9 Leitura REG 3. Sinais SCLK (canal 1) e MISO(canal 2). . . . . . . . . . . . p. 77
5.10 Leitura REG 3. Sinais SCLK (canal 1) e MISO (canal 2) ampliados. . . . . . p. 77
5.11 Configuracao fısica do cenario para a avaliacao do barramento PCM. . . . . . p. 79
5.12 Sinais PCLK (canal 1) e FSYNC (canal 2). . . . . . . . . . . . . . . . . . . p. 80
5.13 Sinais PCLK (canal 1) e FSYNC (canal 2), ampliados. . . . . . . . . . . . . p. 80
5.14 Fluxograma de avaliacao para o barramento PCM. . . . . . . . . . . . . . . . p. 81
5.15 Sinai PCLK (canal 1) e sinal FSYNC (canal 2) com 16KHz. . . . . . . . . . p. 82
A.1 Contato representante da Microsemi. . . . . . . . . . . . . . . . . . . . . . . p. 89
Lista de Tabelas
2.1 Conjunto de frequencias DTMF. . . . . . . . . . . . . . . . . . . . . . . . . p. 18
3.1 Byte CONTROL (Tabela cedida por cortesia pela Silicon Labs www.silabs.com). p. 34
3.2 Registrador MSTRSTAT (Tabela cedida por cortesia pela Silicon Labs www.silabs.com). p. 36
14
1 Introducao
Varios servicos hoje fazem uso da rede de computadores, tais como os de seguranca eletronica
e controle de acesso. Com a telefonia nao e diferente. Usar a internet para efetuar chamadas
locais ou chamadas de longa distancia e uma realidade. O que torna isso possıvel e o uso do
VoIP. Esse acronimo ja e de uso cotidiano, assim como o termo telefonia IP. VoIP e o acronimo
em ingles para Voice Over Internet Protocol (voz sobre o protocolo internet), tecnologia que usa
a rede mundial de computadores (comutacao de pacotes) para transmitir voz. Essa tecnologia
foi desenvolvida ao longo da decada de 1990, nascendo de duas vertentes: a digitalizacao do
trafego entre as centrais telefonicas e para a comunicacao de voz pela Internet, possibilitando
custos menores em ligacoes de longa distancia.
Entretanto, a Rede Publica de Telefonia Comutada (PSTN, do ingles Public Switched Te-
lephone Network) ainda tem um papel muito forte nas comunicacoes de voz. Dessa forma, e
necessario o uso de equipamentos para integracao entre os sistemas VoIP e a telefonia con-
vencional (ARAUJO; BRAGA, 2009). O responsavel por essa integracao e o gateway que
executa a conversao de mıdia em tempo real (sinal analogico para sinal digital) e a conversao de
sinalizacao para as chamadas telefonicas que entram e saem da rede VoIP (LAMARAO; AL-
VAO, 2005). Para tal integracao os gateways devem prover interfaces padronizadas FXO (do
ingles Foreign Exchange Office) e FXS (do ingles Foreign Exchange Station).
FXS e FXO sao interfaces utilizadas nos sistemas telefonios analogicos. Mais detalhada-
mente, a FXS e a interface que fornece os padroes eletricos e logicos de uma linha telefonica,
responsavel por alimentar o circuito, verificar a ocupacao do sistema, interpretar os dıgitos pro-
vidos pelo telefone e gerar corrente de toque para o sistema. Ja a FXO e a interface que recebe
a linha analogica. Essa interface e responsavel por inserir uma carga (resistencia eletrica) na via
de transmissao (um par de fios), a fim de circular corrente no circuito e informar ao terminal re-
moto que foi solicitada a ocupacao dele. A interface FXO tambem e responsavel por interpretar
a corrente de toque que o sistema remoto envia, com o objetivo de indicar que uma ligacao esta
sendo solicitada.
1.1 Objetivos 15
Uma opcao muito comum para a criacao de gateways VoIP e o uso de software de codigo
livre, como por exemplo, o Asterisk (CUNHA et al., 2012), que implementa os recursos en-
contrados em uma central telefonica convencional, utilizando a arquitetura de um computador
pessoal (PC), sem a necessidade de grandes sistemas proprietarios. Entretanto, para habilitar
a funcionalidade de gateway e necessario o uso de placas providas com portas FXO e FXS, as
quais normalmente utilizam os barramentos internos do PC por possuırem varias portas e ter
seu foco no mercado corporativo.
Essa mistura de software livre, uso da arquitetura estabelecida do PC e diminuicao dos altos
custos de telefonia fizeram o mercado corporativo impulsionar comercialmente a evolucao da
telefonia IP. Essa evolucao tornou as centrais telefonicas em software com servicos modulares,
escalaveis e altamente atrativos, inclusive para uso no seguimento residencial e de pequenos es-
critorios (SOHO, do ingles Small Office and Home office ). Entretanto o hardware ainda e muito
focado para solucoes corporativas, o que encarece e dificulta as solucoes nesse seguimento de
mercado. Dessa forma, um dispositivo que contenha interfaces FXS e FXO e integre a central
telefonica/gateway implementada em software via USB, viabilizaria o uso de solucoes VoIP nas
residencias e pequenos escritorios.
Considerando complexo e extenso o estudo, projeto e implementacao do hardware, firmware
e drivers para uma interface de telefonia analogica USB, provida de uma FXO e uma FXS,
decidiu-se limitar o trabalho sem fugir do contexto discutido. O trabalho atual almeja servir
de base para guiar uma futura implementacao completa e compreende o estudo e avaliacao dos
componentes comerciais e suas placas de desenvolvimento, uma proposta de projeto logico de
hardware e implementacoes de experimentos que validam o projeto proposto.
1.1 Objetivos
O objetivo deste trabalho e o estudo dos componentes comerciais no intuito de projetar
uma interface de telefonia USB com um par de portas analogicas, uma FXO e uma FXS, para
integracao futura com uma central telefonica/gateway VoIP implementada em software.
Como objetivos especıficos define-se:
- Estudo e selecao de componentes comerciais para as interfaces analogicas;
- Estudo e avaliacao das placas de desenvolvimento;
- Projeto logico de hardware;
1.2 Organizacao do texto 16
- Implementacao de blocos de firmware para validar o projeto logico.
1.2 Organizacao do texto
O texto esta organizado da seguinte forma: no capıtulo 2 e apresentada a fundamentacao
teorica do trabalho. Esse capıtulo traz os conceitos necessarios para o desenvolvimento de sis-
temas de telefonia analogica/digital. Em seguida, e feita uma abordagem sobre dispositivos
comerciais que implementam interfaces FXS e FXO. O capıtulo 3 abordara o estudo de dispo-
sitivos especıficos, como o circuito integrado si32179 e o LPC-1768, como forma de avaliar
se suas caracterısticas atendem as necessidades de desenvolvimento de um dispositivo de tele-
fonia. Ainda nesse capıtulo, serao avaliadas as placas usadas nos testes e o desenvolvimento
para o projeto. O capıtulo 4 apresenta a descricao do projeto do sistema. Esse capıtulo visa
demonstrar a arquitetura geral do sistema, alguns cenarios de uso e o projeto logico do sistema
proposto. No capıtulo 5 serao descritos os experimentos feitos com os componentes para averi-
guar a possibilidade de sua utilizacao na proposta. Ao final do capıtulo apresenta-se uma analise
de viabilidade para utilizacao dos componentes para o sistema proposto. Por fim, no capıtulo 6
sao apresentadas as conclusoes e possibilidades de trabalhos futuros.
17
2 Fundamentacao teorica
O escopo deste capıtulo e a apresentacao das tecnicas utilizadas para a criacao da inter-
face de telefonia. Assim, passa-se a discorrer sobre os fundamentos teoricos necessarios para
alcancar os objetivos.
2.1 Conceitos de telefonia
Para que um sistema opere conforme as necessidades dos usuarios, e necessario que sejam
estabelecidos padroes de comunicacao, implementacao e operacao. No ambito da telefonia
brasileira, os padroes sao definidos pela Agencia Nacional de Telecomunicacoes (ANATEL).
Para a operacao basica do sistema telefonico, e tomado como exemplos a sinalizacao acustica,
a sinalizacao de discagem e a alimentacao do circuito.
2.1.1 Sinalizacao acustica
A sinalizacao acustica adotada no Brasil e especificada pela pratica Telebras STP 210-110-
704 [Tel96a]. Em relacao a sinalizacao acustica, valem as seguintes definicoes e caracterısticas
(JESZENSKY, 2004):
• Tom de discar (TD) e o sinal enviado ao terminal chamador apos a ocupacao do circuito
de linha associado, para que seja iniciada a marcacao dos algarismos do telefone do as-
sinante chamado ou o acesso a programacao de um servico suplementar. A frequencia
utilizada deve ser de (425 ± 25) Hz. O regime de emissao do tom de discar deve ser
contınuo.
• Tom de ocupado (TO) e o sinal enviado ao terminal chamador indicando que o terminal
chamado esta na condicao de ocupado. O sinal deve ser enviado diretamente pelo circuito
de linha do assinante. A frequencia utilizada deve ser (425 ± 25) Hz. O TO deve ser um
2.1 Conceitos de telefonia 18
sinal com a seguinte cadencia: perıodo de tom de 250 ms ± 10%; perıodo de silencio de
250 ms ± 10 %.
• Corrente de toque (CT) e o sinal enviado ao aparelho telefonico do assinante chamado,
indicando que ha uma ligacao dirigida a ele. A frequencia utilizada e de (25 ± 2,5) Hz. A
forma de onda desse sinal deve ser senoidal, tolerando-se uma distorcao de ate 15% para
geradores dinamicos e ate 10% pra geradores estaticos, medida na saıda do equipamento
gerador de CT. A cadencia da corrente de toque deve ser: perıodo de toque de 1.000 ms
± 10%; perıodo de silencio de 4.000 ms ± 10%. A CT deve ser interrompida tao logo
o assinante chamado atenda, de forma que ele nao ouca atraves da capsula receptora.
Tolera-se um atraso maximo de 300 ms em relacao ao instante de atendimento. A tensao
do sinal, sem carga, em regime de emissao contınua, na saıda do respectivo gerador, deve
ser de (80 ± 10) Vrms, sobreposta a um potencial de (-48 ± 4) Vdc.
2.1.2 Sinalizacao de discagem
Os sistemas publicos de telefonia fazem uso de um esquema de sinalizacao denominado
dual tone multi frequency (DTMF). Esses sinais sao utilizados para codificar os dıgitos de dis-
cagem de um aparelho telefonico em sinais analogicos, de forma que possam ser transmitidos
por meio de uma rede de telefonia ate uma central, onde os sinais sao decodificados e trata-
dos. O sistema DTMF utiliza oito frequencias diferentes, as quais sao combinadas e transmi-
tidas em pares, podendo assim representar dezesseis numeros, sımbolos ou letras distintas. As
frequencias DTMF sao mostradas na tabela 2.1.
Tabela 2.1: Conjunto de frequencias DTMF.
Hz 1.209 1.336 1.477 1.633697 1 2 3 A770 4 5 6 B852 7 8 9 C941 * 0 # D
2.1.3 Alimentacao do circuito
O fornecimento de energia para o circuito telefonico e proveniente do sistema de comutacao
da operadora que fornece o link. O nıvel deve ser medido em regime de emissao contınua nos
pontos indicados com tensao nominal de alimentacao de -48 VCC, em quaisquer condicoes de
trafego a que se submeta a central (ANATEL, 1996).
2.1 Conceitos de telefonia 19
2.1.4 Interfaces FXO e FXS
Foreign Exchange Office (FXO) e uma interface que recebe sinalizacao da operadora (STFC)
ou de uma central telefonica PABX. E o plugue do aparelho telefonico que deve ser conectado
a interface Foreign Exchange Station (FXS) para funcionar. Portanto, todo telefone ou fax a
possui. A interface FXS, tal como um plugue femea, e a que permite o acesso do telefone a
rede da operadora de telefonia. As interfaces FXO e FXS sao compostas por dois fios (o par
telefonico ou par metalico ou, ainda, linha telefonica) e conectores, usualmente no padrao RJ-
11. Essa linha segue, atraves de um cabo telefonico ou outro tipo de meio de transmissao, ate
a central telefonica, responsavel por enviar os tons (linha, ocupado etc.), energizar o aparelho
telefonico, reconhecer os dıgitos discados e enviar e receber a voz e demais sons compreendidos
pelo espectro sonoro entre 300 Hz a 3.400 Hz (CUNHA et al., 2012).
FXO
A interface FXO foi projetada para receber um ramal de um PABX externo. Opera como
um aparelho telefonico analogico quando uma ligacao chega a ele, oriunda da rede VoIP. E
capaz de reagir a correntes de toque e reconhecer chamadas originadas do PABX (GALRAO,
2007). A figura 2.1 ilustra um exemplo de utilizacao da porta FXO.
Figura 2.1: Exemplo de utilizacao da interface FXO (3CX, 2014).
FXS
Ja a interface FXS foi projetada para ser diretamente ligada a um aparelho telefonico
analogico e, entao, a qualquer posicao de tronco analogico de um PABX. Opera como uma
central telefonica, fornecendo alimentacao, tons e reconhecendo discagens DTMF. Gera toque
2.2 Digitalizacao da voz 20
de campainha quando uma ligacao vinda da rede chega a ele (GALRAO, 2007). A figura 2.2
ilustra um exemplo de utilizacao da porta FXS.
Figura 2.2: Exemplo de utilizacao da interface FXS (3CX, 2014).
2.2 Digitalizacao da voz
A digitalizacao da voz foi projetada pelo Bell System na decada de 50. O projeto original da
digitalizacao da voz foi o empacotamento de dois ou mais canais de audio para ser transmitido
em um par de fios (PINHEIRO, 2005). O processo de digitalizacao da voz e ilustrado na figura
2.3. A conversao de voz analogica para sinal digital passa por tres passos:
• Processo de amostragem;
• Processo de quantizacao; e
• Processo de codificacao.
Figura 2.3: Processo de digitalizacao da voz (PINHEIRO, 2005).
2.2.1 Processo de amostragem
A amostragem do sinal e feita por intervalos de tempos periodicos. Quanto maior a quanti-
dade de amostras, mais fiel sera a reproducao do sinal na decodificacao. Por outro lado, a maior
2.3 Rede de telefonia publica integrada a rede IP 21
quantidade de amostras exigira uma maior largura de banda para transmissao do sinal codifi-
cado. Para chegar a uma quantidade de amostras que nao degradasse a qualidade da voz e nem
usasse muita largura de banda, foi usado o Teorema de Nyquist. O referido teorema especifica
que, para que um sinal arbitrario transmitido seja reconstruıdo pelo receptor, e necessario que a
quantidade de amostras por segundo seja o dobro da maior frequencia do sinal transmitido.
Apesar de a voz humana ter o espectro de frequencia de 20 Hz a 20 KHz, para uma boa
reproducao em canais telefonicos foi admitida uma faixa de 300 a 3.400 Hz. Arredondando
para cima, a maior frequencia do sinal de voz para canal telefonico entao e de 4.000 Hz. A
saıda da amostragem e um sinal modulado em amplitude de sinal.
2.2.2 Processo de quantizacao
E a classificacao das amplitudes das amostras em uma escala de valores para que eles sejam
transmitidos. Ha duas formas de fazer a quantizacao. A primeira e a forma linear, em que toda
a escala tem valores e tamanhos iguais. A outra maneira e a forma logarıtmica, em que a escala
tem valores diferentes, comportando-se de forma semelhante ao ouvido humano.
2.2.3 Processo de codificacao
E a transformacao dos valores decimais criados pela quantizacao em valores binarios para
serem transmitidos em um canal digital.
2.3 Rede de telefonia publica integrada a rede IP
Apesar de a PSTN estabelecer chamadas de voz entre dois terminais de forma eficiente, ha
uma grande demanda por novas funcionalidades e de menor custo. Isso esta levando inumeras
empresas a mudarem seus sistemas de telefonia tradicionais para uma tecnologia baseada em
comutacao de pacotes, o VoIP (CUNHA et al., 2012). Com a intervencao do VoIP e possıvel, em
residencias, escritorios ou pequenas empresas, fazer uso de novas facilidades. Pode-se imaginar
equipamentos interagindo com atuais e estaticos PABXs disponibilizando servicos que estes
nao agregavam. Chamadas telefonicas de longa distancia feitas a custo de chamadas locais,
utilizacao remota (acesso a distancia) das linhas telefonicas da PSTN e facil implementacao de
correio de voz sao exemplos dessa integracao.
Um equipamento crucial para que tal integracao ocorra e o gateway. Este equipamento
comumente utiliza o software livre Asterisk. Um exemplo de como a rede PSTN e a telefonia
2.3 Rede de telefonia publica integrada a rede IP 22
IP encontram-se atualmente pode ser visto na figura 2.4.
Figura 2.4: Interligacao entre PSTN e telefonia VoIP (LAMARAO; ALVAO, 2005).
2.3.1 Gateway
Gateway (GW) e a funcionalidade responsavel pela interoperabilidade entre a rede VoIP e
a rede de telefonia publica. Para que o gateway execute sua funcao, ele necessita de interfaces
que tratem toda a sinalizacao da PSTN e tambem a digitalizacao da voz. Quando implementado
em um Personal Computer (PC), geralmente sao utilizadas interfaces FXO, FXS, E1 ou T1 em
placas com interface Peripheral Component Interconnect (PCI) para integracao com a rede de
telefonia tradicional. O Asterisk e um software muito requisitado para implementar a funcao de
gateway (CUNHA et al., 2012).
2.3.2 Asterisk
Asterisk e um software livre que disponibiliza o servico de um PABX completo utilizando
tecnologia VoIP. Inicialmente ele foi desenvolvido pela empresa Digium, mas atualmente e
mantido por meio de contribuicoes de desenvolvedores e usuarios espalhados pelo mundo. O
Asterisk permite a utilizacao de todas as funcoes das centrais telefonicas convencionais, como
2.3 Rede de telefonia publica integrada a rede IP 23
unidades de resposta automatica (URAs), correio de voz, conferencia, distribuicao automatica
de chamadas, entre outras. A arquitetura do Asterisk e apresentada na figura 2.5, que exem-
plifica algumas aplicacoes disponibilizadas ao usuario. Os canais consistem em modulos de
interfaces de comunicacao logica (CUNHA et al., 2012).
Figura 2.5: Arquitetura Asterisk (CUNHA et al., 2012).
2.3.3 Digium Asterisk Hardware Device Interface - (DAHDI)
O Asterisk Hardware Device Interface (DAHDI) e um driver utilizado para controlar, ori-
ginalmente, as placas de interface da Digium (CUNHA et al., 2012). A conexao estabelecida
por meio do DAHDI e denominada Span e utiliza o protocolo TDM over Ethernet) (TDMoE)
para realizar transferencia de dados (CUNHA et al., 2012). O DAHDI e tanto um pacote de
modulos para o kernel (drivers) quanto um middleware que faz a comunicacao do channel dri-
ver do Asterisk com os drivers das placas de hardware. Portanto, ao instalar o pacote DAHDI,
sao instalados todos os modulos das placas compatıveis com essa arquitetura e um processo
(middleware) que faz a comunicacao dos componentes. Resumindo, o DAHDI e responsavel
por toda a comunicacao entre a aplicacao (channel driver) e o hardware de telefonia (interface
FXO e FXS).
2.4 Subscriber Line Interface Circuit - (SLIC) 24
2.4 Subscriber Line Interface Circuit - (SLIC)
Subscriber Line Interface Circuit (SLIC) e uma interface que fornece um circuito integrado
especialista em tratar os sinais de telefonia. E uma denominacao comercial e muito utilizado no
projeto de sistema telefonicos. O circuito e responsavel por fazer a conversao AD/DA seguindo
padroes de codificacao ITU. O SLIC possui integrado a ele um processador digital de sinais
(DSP), que apos converter o sinal analogico para digital, manipula e trata essas informacoes
para serem disponibilizadas a um hardware externo. Esse processo permite que as amostras dos
sinais sejam manipuladas para serem utilizadas em aplicacoes especıficas.
Sao funcoes basicas de um SLIC:
• Fazer a conversao analogica/digital da voz;
• Gerar corrente DC para o circuito (FXS);
• Gerar corrente de toque ring (FXS);
• Gerar tons de progressao de chamadas (FXS);
• Gerar impedancia para sinalizacao de ocupacao do circuito (FXO);
• Interpretar corrente de toque (FXO); e
• Gerar DTMF para sinalizacao do numero de destino (FXO).
No mercado podemos encontrar alguns fabricantes para esse tipo de dispositivo, com vari-
adas funcoes e desempenhos, as quais devem ser observadas para cada tipo de aplicacao. Dois
fabricantes que se destacam nesse tipo de tecnologia, a Silicon Laboratories 1 e a Microsemi 2.
2.4.1 SLIC Microsemi
O VE8911 e um SLIC altamente integrado e de baixo custo, com uma interface FXS e uma
interface FXO. E uma solucao otimizada para gateways VoIP residenciais, tais como modems
DSL com interface de telefone, set-top boxes e adaptadores de terminal analogico. No lado
digital, o chipset VE8911 fornece uma interface padrao MPI e uma interface PCM para um
processador VoIP.
1http://www.silabs.com/2http://www.microsemi.com
2.4 Subscriber Line Interface Circuit - (SLIC) 25
O VE8911, juntamente com a VoicePath API-II (VP API-II), oferece aos desenvolvedores
de softwares recursos de programacao e controle do hardware. O codigo VP API-II-C e usado
como abstracao dos dispositivos para o aplicativo, proporcionando funcoes para controlar, su-
pervisionar e testar um conjunto de linhas de assinantes.
O bloco de funcoes do VE8911 pode ser vista na figura 2.6
Figura 2.6: Famılia de SLICs Microsemi (MICROSEMI, 2015).
2.4.2 SLIC Silicon Labs
A Silicon Laboratories possui a famılia de SLICs de baixo custo, denominada ProSLIC
si3217x. Essa famılia oferece uma completa interface de telefonia analogica, ideal para empre-
sas, escritorios e aplicacoes em centrais. A ProSLIC si3217x pode ser facilmente configurada
com requisitos especıficos de cada paıs, tais como impedancia AC, frequencia, cadencia e de
formato de onda do ring, usando um design de hardware unico.
Todos os parametros do SLIC sao configuraveis usando registradores de configuracao acessıveis
por barramento serial digital. API Silicon Labs acelera e simplifica o desenvolvimento do soft-
ware de controle com um conjunto de funcoes prontas e comuns a toda famılia ProSLIC.
Alguns dispositivos da famılia podem suportar uma interface FXS e uma interface FXO
integrada. O diagrama de blocos da famılia ProSLIC si3217x pode ser vista na figura 2.7.
2.5 Interface Universal Serial Bus 26
Figura 2.7: Famılia de SLICs Silicon Laboratories (Figura cedida por cortesia pela SiliconLabs www.silabs.com).
2.5 Interface Universal Serial Bus
O padrao Universal Serial Bus (USB) foi desenvolvido sob a optica do conceito plug and
play (expressao inglesa para ligue e divirta-se), que permite a conexao de perifericos sem a
necessidade de desligar o computador. Alem disso, a USB facilitou a implementacao de novos
dispositivos, minimizando o trabalho em relacao ao suporte por parte dos sistemas operacio-
nais (OLIVEIRA; ZANATTA; SANTOS, 2007). A primeira versao foi a 1.0, com velocidade
de 1,5 Mbps (low-speed). Logo em seguida foi concebida a versao 1.1, com velocidade que
varia de 1,5 Mbps a 12 Mbps. Essa versao e conhecida como full-speed. No final de 2000
foi lancada a versao 2.0 (high-speed), compatıvel com as versoes anteriores, mas com alguns
aperfeicoamentos que vao desde a topologia a velocidade de trafego de dados, chegando ao
extremo de 480 Mbps, equivalente a cerca de 60 MBps (60 milhoes de bytes por segundo)
(OLIVEIRA; ZANATTA; SANTOS, 2007).
Segundo a estrutura criada para o padrao USB, um dispositivo host consome ou cria dados
para aplicacoes distintas (SASAKI; CAIXETA, 2006). Todos os dispositivos USB tem de ter
o mesmo padrao para fazer a traducao dos dados consumidos. Como e possıvel uma grande
variedade de aplicacoes, foi preciso ter uma estrutura logica bem definida para os dados criados
ou consumidos. Na figura 2.8, temos um exemplo da arquitetura logica da conexao USB.
2.5.1 Metodos de transferencias
O padrao USB e um barramento compartilhado e que pode ser utilizado, simultaneamente,
por varios dispositivos. O driver cliente comunica ao driver USB que deseja efetuar uma trans-
ferencia do/para o seu dispositivo correspondente. Algumas dessas transferencias consistem em
2.5 Interface Universal Serial Bus 27
Figura 2.8: Arquitetura logica da conexao USB (SASAKI; CAIXETA, 2006).
2.5 Interface Universal Serial Bus 28
blocos maiores de dados, os quais precisam ser quebrados em varias transacoes. A transferencia
de dados e feita em intervalos regulares denominados frames. Um frame e composto de uma
ou mais transacoes que devem ser executadas dentro de 1 ms (ZUQUIM, 2007). Abaixo, sao
mostrados os metodos de transferencias.
• Control - Metodo de transferencia utilizado pelo host para fazer requisicoes ao dispo-
sitivo. E nesse tipo de transferencia que e feita a leitura dos descritores, por exemplo.
Nele acontece tambem a verificacao de erros. Transferencias do tipo Isochronous e Inter-
rupt tem uma maior prioridade em relacao as outras quando distribuıdas em um frame.
Transferencias do tipo Bulk so serao executadas quando houver disponibilidade de espaco
dentro de um frame (ZUQUIM, 2007).
• Bulk - Esse metodo de transferencia e utilizado para blocos maiores de dados, para o
qual a taxa de transferencia nao e fator relevante. O que e importante nesse tipo de
transferencia e o grau de correcao com o qual os dados chegarao ao destino, sendo in-
dispensavel a verificacao de erros. Possui um payload de dados de 8, 16, 32 ou 64 bytes
por frame. A largura de banda disponıvel para esse tipo de transferencia varia de acordo
com a disponibilidade. Um bom exemplo de um dispositivo que utiliza esse tipo de trans-
ferencia sao as impressoras (ZUQUIM, 2007).
• Interrupt - O objetivo desse metodo de transferencia e verificar se algum dispositivo
necessita transferir algum dado para o host. Esse processo ocorre de tempos em tempos e
o intervalo e denominado Polling Interval. Dessa forma, o host “sonda”os devices e, caso
seja necessario, a transferencia e feita. Nesse metodo tambem e realizada a verificacao
de erros. Possui um payload de dados de 64 bytes/frame. Exemplo de dispositivos que
utilizam este tipo de transferencia sao o teclado e o mouse (ZUQUIM, 2007).
• Isochronous - Taxa de transmissao de dados constante. O foco desse metodo de trans-
ferencia e garantir a entrega dos dados dentro de um determinado tempo, sendo dis-
pensavel a verificacao de erros. Nao pode ocorrer distorcao no envio dos dados e o
sincronismo e o foco deste tipo de transferencia. Portanto, so e suportada por disposi-
tivos de alta velocidade (12 Mb/s). E unidirecional e possui um payload de dados de
1023 bytes/frame. Exemplos de dispositivos que utilizam esse tipo de transferencia sao
microfones e demais dispositivos de som de uma maneira geral (ZUQUIM, 2007).
2.6 Conclusoes 29
2.5.2 Metodo Isochronous
Para aplicacoes nas quais e necessario um fluxo constante de dados, seja vıdeo ou audio,
e interessante que nao haja retransmissao destes. Nas interfaces de hardware em que serao
implementadas as portas FXO e FXS, o metodo de transferencia utilizado e o Isochronous. Por
se tratar de um metodo de transferencia sem transacoes de pacotes de handshake, ele se torna o
metodo mais apropriado para a troca de streaming de audio, pois um dado atrasado e tao inutil
quanto dado nenhum nesse tipo de aplicacao, e para aplicacoes de streaming em tempo real,
retransmissoes nao sao aceitas.
2.6 Conclusoes
Neste capıtulo foram explorados conceitos e fundamentos, que servem de base para avaliar
os componentes e as tecnologias associadas ao desenvolvimento de um dispositivo de telefonia.
Em particular, um estudo sobre os conceitos de telefonia, a fim de avaliar possıveis disposi-
tivos especialistas nos padroes de telefonia utilizados no Brasil, de forma que esses atendam
aos requisitos necessarios. Apos os estudos sobre os conceitos de telefonia, uma pesquisa de
dispositivos comerciais se fez necessaria. Tal pesquisa teve foco em duas grandes fabricantes
de semicondutores nesse tipo dispositivo, a Silicon Laboratories e a Microsemi.
Outro estudo, porem mais brando, foi sobre a forma com que a rede PSTN interage com
a rede mundial de computadores. Esse estudo pode dar uma visao de como o dispositivo de
telefonia poderia servir as aplicacoes do gateway de telefonia, que no futuro podera ser utilizado
em uma solucao SOHO.
Tambem foi abordado alguns conceitos sobre a interface USB e seus metodos de trans-
ferencias. Sobre a interface USB, foi dado destaque ao metodo de transferencias isochronous
que, potencialmente, pode vir ser o metodo de transferencia mais apropriado.
No capıtulo seguinte serao apresentados os estudos efetuados nos kits e softwares escolhi-
dos, os quais serao utilizados para um futuro dispositivo de interface de telefonia.
30
3 Estudo dos componentes e kits dedesenvolvimento
O presente capıtulo tem a finalidade de apresentar os estudos realizados nos componentes
selecionados nesse trabalho para o projeto da interface de telefonia USB. Para um melhor en-
tendimento, primeiro foi abordado o SLIC si32179 da Silicon Laboratories, que implementa as
interfaces FXO e FXS, detalhando seu funcionamento e barramentos. Na sequencia, o capıtulo
incluı detalhes sobre os kits de desenvolvimento VMB2 REV 2.0 e Si32179BFB11SL0EVB e,
tambem, os softwares utilizados para explorar o seus funcionamentos. Essas ferramentas, for-
madas pelos kits e pacote de softwares, tem a finalidade de facilitar o estudo e desenvolvimento
do SLIC si32179, tornando mais agil o desenvolvimento de novos produtos.
O capıtulo aborda ainda o componente LPC-1768 da NXP, componente selecionado para
fazer o controle do SLIC e a interface USB com o sistema principal. Alem disso, os estudos
efetuados no kit de desenvolvimento para o LPC-1768 e relatado. Por fim, ha uma discussao
sobre os estudos dos dispositivos, kits e softwares selecionados, para compreensao dos motivos
que levaram a cada selecao.
3.1 Estrutura do SLIC si32179
O si32179 pertence a famıla si3217x de SLICs da fabricante Silicon Laboratories que im-
plementam uma interface FXS completa. Essa famılia traz uma solucao completa em acordo
com as especificacoes ITU e European Telecommunications Standards Institute (ETSI). Algu-
mas pecas da famılia de produtos tambem implementam a tecnologia de isolamento capacitivo
patenteado pela Silicon Laboratories para permitir a conexao perfeita com um circuito integrado
do lado da linha (Si3291x) para formar uma interface FXO. O si32179 fornece uma banda de
voz padrao de 200 Hz ate 3.4 KHz no codec de audio e, tambem, tem a opcao de uma banda de
voz entre 50 Hz ate 7 KHz.
Esses componentes atendem as necessidades de aplicacoes muito utilizadas nas telecomunicacoes,
3.1 Estrutura do SLIC si32179 31
dentre elas:
• Ideal para aplicacoes de curto e medio de prazo, incluindo voz sobre IP (VoIP);
• Gateways a cabo: Endereco MAC do Adaptador do Terminal (EMTA);
• Gateways DSL integrated access devices (IAD);
• FTTH optical network terminals (ONT);
• Terminal de voz WiMax;
• Wireless Fixed Terminals (WFT); e
• Adaptador de terminal analogico (ATA).
A figura 3.1 ilustra o diagrama de bloco dos circuitos si32179 e si32919. Nessa, tambem
pode ser vista a forma de interligacao capacitiva usada pela Silicon Laboratories.
Figura 3.1: Diagrama de blocos do si32919 e interligacao por metodo capacitivo com o CIsi32919 (Figura cedida por cortesia pela Silicon Labs www.silabs.com).
Caracterısticas do si32179
O sub-sistema FXS contem um processador DSP integrado que executa as seguintes funcoes
para o canal FXS:
• Caracterısticas de alimentacao DC (DC Feed Characteristics) - circuitos de alimentacao
de linha interno do SLIC, fornecem caracterısticas de alimentacao DC completamente
programaveis. Quando no estado ativo, o SLIC opera em uma das tres regioes de operacao
de alimentacao DC de linha: uma regiao de tensao constante, uma regiao de corrente
constante, ou uma regiao de resistencia. A regiao de tensao constante tem uma resistencia
baixa, tipicamente 160 Ω. A regiao de corrente constante aproxima resistencia infinita;
3.1 Estrutura do SLIC si32179 32
• Estados de operacao de avanco de linha (Linefeed Operating States) - a interface de
alimentacao de linha inclui oito diferentes estados de operacao de registo programavel;
• Monitoramento da tensao e corrente da linha (Line Voltage and Current Monitoring)
- o SLIC monitora continuamente o TIP, RING, tensoes de bateria e correntes atraves de
um ADC no chip e armazena os valores resultantes em locais individuais na RAM;
• Monitoramento de energia e deteccao de falhas de energia (Power Monitoring and
Power Fault Detection) - funcao de monitoramento do Si32179 utilizada para proteger
continuamente contra as condicoes em que ha energia excessiva. Se o Si3217x detecta
uma condicao de falha ou sobre carga, o dispositivo automaticamente esse se volta para
um estado aberto e gera uma interrupcao, indicando um alarme;
• Desligamento de sobrecarga termica (Thermal Overload Shutdown) - ao exceder atin-
gir uma temperatura de juncao, o dispositivo automaticamente e desativado. A tempera-
tura de juncao tıpica (TJmax) e de 145 graus celsius;
• Gerador de ring (Ringing Generation) - o si32179 prove um sinal de ring com formato
de onda senoidal ou trapezoidal, com um deslocamento (offset) DC. A frequencia, forma
de onda e cadencia sao totalmente programaveis;
• Inversao de polaridade (Polarity Reversal) - o SLIC pode monitorar o comportamento
da linha, caso haja alguma alteracao da polaridade ele pode informar sobre o progresso
da chamada;
• Gerador de tons (Tone Generators) - o Si32179 inclui dois geradores de som digitais
que permitem uma grande variedade de frequencia simples ou duplo tom e junto com
combinacoes de amplitude;
• Deteccao de DTMF (DTMF Detection) - no DTMF, dois tons gera um dıgito DTMF.
Um tom e escolhido a partir de quatro tons possıveis de uma linha, e um tom e escolhido
a partir de outros quatro tons possıveis de uma coluna. A soma destes tons constitui um
dos possıveis 16 dıgitos DTMF;
• Controle DC-DC (DC-DC Controller) - o si3217x integra um controlador de DC-DC,
que opera a partir de uma unica entrada DC positiva. O controlador gerencia dinami-
camente um circuito conversor DC-DC externo para gerar a tensao da bateria ideal para
cada estado de funcionamento; e
• Largura de banda do audio (Wideband Audio) - atraves de programacao e possıvel
fazer o si32179 operar em uma banda larga de audio (50 Hz–7 kHz) ou em uma bada
3.1 Estrutura do SLIC si32179 33
estreita (200 Hz–3.4 kHz). O SLIC ainda permite uma taxa de amostragem de 16 kHz
16-bit para uma maior qualidade de audio, mantendo a compatibilidade de audio padrao
de telefonia. As amostras de audio sao transmitidos e recebidos na interface PCM usando
dois quadros consecutivos de 8 kHz.
Para programar todas as caracterısticas (features), a Silicon Laboratories disponibiliza um
software para testes do dispositivo e outro software para desenvolvimento das aplicacoes ne-
cessarias. Dessa forma, o desenvolvimento tem uma velocidade melhorada e com maior confi-
abilidade, ja que podem ser feitos testes em todos os blocos logicos e comparar com o desen-
volvimento proprietario.
Principais barramentos
O SLIC si32179 possui uma interface PCM e uma interface SPI. A interface PCM im-
plementa um barramento de audio, que possibilita a transferencia das amostras de audio ja
codificadas entre o SLIC e o host. A interface de controle SPI (slave) permite a configuracao
do SLIC atraves de um dispositivo master. E por meio da interface SPI que o host inicializa e
programa as funcoes do SLIC para que esse opere conforme desejado.
3.1.1 SPI
O metodo SPI utilizado no SLIC si32179 e o metodo 3 (CPOL = 1 e CPHA = 1), por meio
do qual o primeiro bit de dado (bit 7) e encaminhado para o barramento na primeira borda do
sinal de clock e amostrado na borda de subida. Quando nao ha atividade no barramento, o
Master coloca o sinal SCLK em nıvel logico 1 (um).
Para transmitir ou receber dados do SLIC, seja da random access memory (RAM) ou do
registrador (REG), e preciso antes enviar uma palavra de controle (byte CONTROL). Sua funcao
e descrita na tabela 3.1. O documento AN340.pdf, que esta protegido sob NDA 1, traz todas as
informacoes sobre os metodos de escrita e leitura do SLIC.
Alem da palavra de controle, e preciso indicar qual endereco, da RAM ou REG, sera afe-
rido. Para isso, logo apos enviar a palavra de controle, 1 byte e enviado, informando qual
o endereco da memoria ou do registrador sera escolhido. Assim, sao disponibilizados 256
possıveis enderecos para cada operacao. Outro byte que se faz uso e o dado propriamente dito.
No entanto, e possıvel enviar 1 ou 2 bytes e isso e feito enviando uma sequencia de 2 bytes
1NDA (Non-Disclosure Agreement) e um acordo de nao divulgacao
3.1 Estrutura do SLIC si32179 34
Tabela 3.1: Byte CONTROL (Tabela cedida por cortesia pela Silicon Labs www.silabs.com).
7 BRDCST Este bit indica uma operacao em broadcast, ou seja, transmissao ourecepcao para todos os canais.
6 R/W Bit de leitura ou escrita: 0 = operacao de escrita; 1 = operacao de leitura.5 REG/RAM Bit de Acesso a RAM/REG: 0 = acesso a RAM; 1 = acesso ao REG.4:0 CID[4:0] Estes 5 bits indicam qual canal sera acessado.
apos ter sido enviada a palavra de endereco. As figuras 3.2, 3.3, 3.4 e 3.5 mostram exemplos de
operacoes utilizados pelo SLIC si32179:
Figura 3.2: Escrita no registrador com dado de 8 bits (Figura cedida por cortesia pela SiliconLabs www.silabs.com).
Figura 3.3: leitura no registrador com dado de 8 bits (Figura cedida por cortesia pela SiliconLabs www.silabs.com).
Figura 3.4: Escrita na RAM com dado de 16 bits (Figura cedida por cortesia pela Silicon Labswww.silabs.com).
3.1 Estrutura do SLIC si32179 35
Figura 3.5: Leitura na RAM com dado de 16 bits (Figura cedida por cortesia pela Silicon Labswww.silabs.com).
3.1.2 PCM
Pulse Code Modulation (PCM) e a tecnica de modulacao por codigo de pulso, por meio
da qual os sinais analogicos sao codificados em taxas de 64 Kbps (ARAUJO; BRAGA, 2009).
Comumente, para a transmissao dos codigos obtidos mediante essa tecnica (pedacos da voz), e
utilizada a tecnica de transmissao (Time Division Multiplex) (TDM), que e a multiplexacao dos
dados em perıodos de tempo, denominados timeslots. Essa tecnica e largamente utilizada no
sistema telefonico (ROSA; BONATELLI, 2008).
Em todo sistema telefonico digital que faz uso do TDM e preciso inserir, pelo menos, duas
fontes de sincronismo. Uma para ditar a taxa de transferencia do sistema e outra para marcar o
inıcio de cada timeslot. A interface PCM utilizada no si32179 prove os padroes que os disposi-
tivos de telefonia usam na industria. Esses padroes sao descritos no documento AN340.pdf. A
documentacao especifica como a transferencia de dados e controladas, utilizando entradas dos
sinais de sincronismo PCLK e FSYNC e os sinais de dados DRXa e DTXa. O SLIC si32179
pode assumir algumas variantes, tanto nas taxas de transferencias quanto na forma de marcacao
de cada timeslot.
Sinais PCLK e FSYNC
O sinal PCLK e utilizado para especificar a taxa de transferencia do barramento PCM.
O SLIC si32179 pode operar com taxas a partir de 512 KHz, podendo ser incrementado em
potencias de 2 ate o valor de 8.192 MHz. Com essas especificacoes, a interface PCM pode
assumir de 4 ate 128 timeslots com 8 bits cada (Documentacao cedida por cortesia pela Silicon
Labs www.silabs.com).
As definicoes para o sinal PCLK sao configuradas por intermedio do registrador REG 11
(PCMODE), que define qual o modo PCM sera utilizado, que sao tres:
3.1 Estrutura do SLIC si32179 36
• PCM utilizando a-law;
• PCM utilizando u-law; e
• PCM utilizando 16-bits linear.
Os registradores REG 12 e REG 15 (PCMTXHI/PCMTXLO e PCMRXHI/PCMRXLO) sao
responsaveis por determinar, para a interface FXS, em que posicao as amostras serao inseridas
no quadro PCM.
Para a interface FXO, e utilizado o registrador REG 33 para determinar qual modo PCM
(idem ao FXS). E para determinar em que posicao serao inseridas as amostras da interface FXO,
sao utilizados os registradores REG 34 e REG 37.
O sinal FSYNC atua sincronizado com o sinal PCLK, marcando o inıcio de cada quadro
no barramento PCM. Caso o sinal PCLK seja estipulado em 512 KHz, o sinal FSYNC pode
ser obtido por meio de 64 pulsos de PCLK. Como PCLK possui frequencia de 512 KHz, seu
perıodo e de 1,953125 us (1,953125 microsegundos). Por sua vez, como o FSYNC possui
frequencia de 8 KHz, seu perıodo e de 125 us (125 microsegundos). A quantidade de pulsos
pode ser mediante a equacao 3.1:
numeroPulsos =125×10−6
1,953125×10−6 => 64pulsos (3.1)
Para a avaliacao dos sinais PCLK e FSYNC, o REG 3 (MSTRSTAT) e responsavel por
indicar se os valores estao de acordo com a funcionalidade do SLIC. Segundo a documentacao
AN340.pdf, espera-se que contenha o valor 0x1F (0001 1111), o que indica que os valores
de PCLK e FSYNC gerados no barramento PCM estao corretos. Os bits do registrador estao
disponıveis na tabela 3.2 e devem ser observados os valores de D4 ate D0 (Documentacao
cedida por cortesia pela Silicon Labs www.silabs.com).
Tabela 3.2: Registrador MSTRSTAT (Tabela cedida por cortesia pela Silicon Labswww.silabs.com).
Bit D7 D6 D5 D4 D3 D2 D1 D0Nome PLL FAULT FS FAULT PCLK FAULT SRAN CLR PLL LOCK FS DETECT FS VALID PCLK VALIDTipo Sticky1 Sticky1 Sticky1 R R R R R
Sinais DRXa e DTXa
A transferencia das amostras de audio sao feitas pelos sinais DRXa e DTXa. Para receber
uma amostra de audio, e utilizado o sinal DRXa. Para se transmitir uma amostra de audio, e uti-
3.1 Estrutura do SLIC si32179 37
lizado o sinal DTXa. Esses dois sinais sao compartilhados entre a interface FXS e FXO, sendo
alocados em um determinado pulso no sinal PCLK, conforme configuracao dos registradores
REG 12 (PCMTXLO) e REG 13 (PCMTXHI) para a interface FXS e REG 34 e REG 37 para a
interface FXO.
As formas de onda dos sinais descritos podem ser observadas nas figuras 3.6 e 3.7. A figura
3.6 mostra o metodo com um pulso curto do sinal FSYNC e a figura 3.7 15 mostra o metodo
com um pulso longo do sinal FSYNC.
Figura 3.6: Exemplo dos sinais PCLK, FSYNC, DRXa e DTXa de um timeslot, utilizando omodo Short FSYNC (Figura cedida por cortesia pela Silicon Labs www.silabs.com)
Figura 3.7: Exemplo dos sinais PCLK, FSYNC, DRXa e DTXa de um timeslot, utilizando omodo Long FSYNC (Figura cedida por cortesia pela Silicon Labs www.silabs.com)
3.2 Kits de desenvolvimento si32179 38
3.2 Kits de desenvolvimento si32179
Para iniciar o desenvolvimento do dispositivo si32179 e se inteirar das funcoes que ele
implementa, a Silicon Laboratories fornece dois kits de desenvolvimento o VMB2 REV 2.0
e Si32179BFB11SL0EVB. Esses dois kits podem atuar de forma conjunta ou separada. O
VMB2 REV 2.0 e uma placa mae com conectores para o kit Si32179BFB11SL0EVB e uma
interface USB, a qual permite a conexao a um computador e controle total do componente
si32179 utilizando um software disponibilizado pela empresa. O kit VMB2 REV 2.0 ainda
pode ser utilizado como uma simples fonte de energia para kit Si32179BFB11SL0EVB, isso
permite que o controle do si32179 seja efetuado por um controlador externo ligado nas portas
SPI e PCM do SLIC.
3.2.1 Estrutura
Ambos os kits tem funcoes importantes para os testes, o desenvolvimento e diagnosticos do
projeto. Entender como sua estrutura funciona, proporciona um melhor resultado na evolucao
final, alem de acelerar o processo de desenvolvimento.
Kit VMB2 REV 2.0
O kit VMB2 REV 2.0 e uma placa mae que pode atuar em dois modos:
• Placa mae - esse modo permite que um segundo kit seja integrado a ele. Assim e possıvel
o acesso ao SLIC sem a necessidade de um hardware gernerico para efetuar o controle; e
• Fonte de energia - esse modo e uma alternativa para fornecer os nıveis DC a um kit que
sera controlado por um hardware e software de terceiros.
Sao partes integrantes do kit, como mostra a figura 3.8:
• Interface USB - essa interface implementa a comunicacao entre a unidade de controle e
o computador portador do software que faz seu gerenciamento;
• Conector DC - fornece os nıveis DC para o kit hospedeiro no modo placa mae e no modo
fonte de energia;
• Conector SPI - permite a conexao fısica do barramento SPI para o kit hospedeiro no
modo placa mae;
3.2 Kits de desenvolvimento si32179 39
• Conector PCM - permite a conexao fısica do barramento PCM para o kit hospedeiro no
modo placa mae;
• Unidade de controle - responsavel pela comunicacao entre a interface USB e o compu-
tador portador do software que faz seu gerenciamento. Essa unidade faz uma interface
entre o software de desenvolvimento e os barramentos do kit que e hospedado por ele no
modo placa mae; e
• Conector fonte - conexao de entrada de nıvel DC 12 V 2A, que gera os nıveis de
alimentacao para o kit.
Figura 3.8: Kit de desenvolvimento da Silicon Laboratories VMB2 REV 2.0.
Kit Si32179BFB11SL0EVB
O kit Si32179BFB11SL0EVB e responsavel pela implementacao do circuito de telefonia, e
nele que esta disponıvel o SLIC si32179 e o circuito integrado si32919. Esse kit permite efetuar
a conexao de um hardware externo e controlar o si32179 por um software proprietario, isso o
torna o mais importante entre os kits. Ele dispoe de todas as conexoes fısicas para se ter acesso
aos barramentos do si32179, o que tambem torna facil a analise dos sinais individualmente.
O kit Si32179BFB11SL0EVB pode atuar em dois modos:
• Modo hospedeiro - esse modo permite kit VMB2 REV 2.0 faca o controle de suas
funcoes.
3.2 Kits de desenvolvimento si32179 40
• Modo Standalone - esse modo permite que o kit seja controlado por um hardware e um
software de terceiros.
Sao partes integrantes do kit, como mostra a figura 3.9:
• Conectores RJ-11 - fornece conexao fısica para a rede PSTN e terminal telefonico;
• Conector DC - recebe os nıveis DC fornecidos pela placa mae ou outra fonte quando
controlado por um hardware externo;
• Conector SPI - fornece conexao fısica do barramento SPI para o kit quando no modo
placa mae e/ou quando controlado por um hardware externo;
• Conector PCM - fornece conexao fısica do barramento PCM para o kit quando no modo
placa mae e/ou quando controlado por um hardware externo;
• Si32179 - SLIC responsavel pelas implementacoes de telefonia (interface FXS e interface
FXO);
• Si32919 - circuito integrado auxiliar para a implementacao da interface FXO;
• Pontas de prova - fornece conexoes de facil acesso a todos os sinais do barramento SPI,
barramento PCM, nıveis DC e conectores RJ-11.
Figura 3.9: Kit de desenvolvimento da Silicon Laboratories Si32179BFB11SL0EVB.
3.2.2 Software utilizados
Para auxiliar o desenvolvimento de sistemas que utilizam o si32179, a Silicon Laboratories
fornece junto aos kits dois softwares: O ProSLIC Voice GUI.3.4.0 e o Proslic api config tool.
3.2 Kits de desenvolvimento si32179 41
Cada um deles possui funcoes especıficas e sao exclusivos para o sistema operacional Win-
dows. Alem desses dois softwares de aplicacao, ha tambem o software driver CP210x, que e
responsavel por fazer a comunicacao do kit VMB2 REV 2.0 com computador, controlando a
interface USB que acompanha o kit VMB2 REV 2.0.
ProSLIC Voice GUI.3.4.0
O software ProSLIC Voice GUI.3.4.0 e parte integrante da plataforma de desenvolvimento
da Silicon Laboratories, sua finalidade e controlar o kit VMB2 REV 2.0 atraves de uma porta se-
rial emulada via USB. Com o software e possıvel ter acessos a todos os registradores e memorias
RAM do si32179. Tudo atraves de uma interface grafica amigavel, como pode ser observado
na figura 3.10.
Figura 3.10: Software ProSLIC Voice GUI.3.4.0.
Um script (Si32179FB.txt) de inicializacao correspondente ao SLIC utilizado e fornecido
junto ao software, ele torna possıvel uma facil inicializacao com algumas configuracoes ja de-
finidas. Apos a inicializacao a partir do script, o sistema permite uma sequencia de testes de
todas as features do si32179. Outra utilizacao do software e verificar se o kit esta operando
dentro das condicoes normais, alem de efetuar testes mais especıficos como:
• Checar circuito de ring;
• Gerar tons DTMF;
3.2 Kits de desenvolvimento si32179 42
• Identificar tons DTMF gerados a partir de um terminal;
• Medicoes de pulso;
• Geracao de sinais Frequency-shift keying (FSK);
• Configuracao do canal PCM;
• Alimentacao DC;
• Efetuar diagnosticos do sistema; e
• Ferramentas para manipulacao do audio.
A interface grafica traz na primeira tela, de forma organizada, os mnemonicos de todos os
registradores e memoria RAM, cada qual, com os respectivos valores tornando facil a compre-
ensao, em tempo real, do que ocorre no si32179 para cada acao tomada.
Proslic api config tool
Para o desenvolvimento de um projeto ter uma velocidade maior, o Proslic api config tool
pode atuar como acelerador. Ele permite, de forma organizada, configurar os valores iniciais
dos registradores e memoria RAM para aplicar ao SLIC.
Todas as caracterısticas do SLIC estao disponıveis em uma tela, como se fossem checklist,
onde cada configuracao e feita passo-a-passo, como pode ser observada na figura 3.11.
Apos editar os valores de cada item para uma aplicacao proprietaria, o Proslic api config tool
disponibiliza uma funcao capaz de gerar o codigo fonte para ser utilizado em um determi-
nado projeto. Os codigos fontes gerados sao na linguagem C e seguem a nomenclatura No-
meSclic constants.c, NomeSclic constants.h, vdaa constants.c, vdaa constants.h. Para ter uma
maior efecacia na utilizacao do Proslic api config tool, recomenda-se o estudo da Proslic Ap-
plication Programming Interface (API), ja que essa descreve como os blocos funcionais do
si32179 devem ser construıdos.
3.2.3 Proslic Application Programming Interface - (API)
Assim como outros grandes fabricantes de semicondutores, a Silicon Laboratories fornece
uma API de desenvolvimento para ser aplicada aos projetos de seus chips. A Proslic API e
um conjunto de padroes estabelecidos pela Silicon Laboratories, que estrutura a utilizacao das
caracterısticas do si32179 para o desenvolvimento de um software que ira controla-lo.
3.2 Kits de desenvolvimento si32179 43
Figura 3.11: Software Proslic api config tool.
A ideia da API definir uma camada de interface abstrata entre o codigo aplicativo do usuario
e os drivers de dispositivo especıfico ProSLIC, proporcionando ao usuario acesso total aos re-
cursos do dispositivo ProSLIC usando uma estrutura padrao. A figura 3.12 ilustra o modelo de
arquitetura da Proslic API.
Figura 3.12: Arquitetura Proslic API (Figura cedida por cortesia pela Silicon Labswww.silabs.com).
O fluxo de controle da estrutura Proslic API pode ser observada na figura 3.13, que traz um
exemplo da rotina de troca do estado do ring.
3.2 Kits de desenvolvimento si32179 44
Figura 3.13: Arquitetura Proslic API (Figura cedida por cortesia pela Silicon Labswww.silabs.com).
ProSLIC API - Software de configuracao
A API ProSLIC utiliza as suas proprias estruturas de dados para manter a ligacao entre o
hardware do sistema e os drivers de dispositivo ProSLIC. Tres tipos de estrutura de dados deve
ser criado e inicializado para fornecer os drivers ProSLIC com essa ligacao hardware:
• Interface objeto de controle ProSLIC (controlInterfaceType):
– Fornece ponteiro void (vazio) para o controle do objeto;
– Fornece ponteiros de funcao aos recursos do sistema (reset, timers, SPI); e
– Uma instancia por interface de controle (ou seja, por chip select).
• Interface objeto do dispositivo ProSLIC (proslicDeviceType):
– Fornece ponteiro controle para interface objeto do dispositivo ProSLIC;
– Itens de informacoes especıficas do dispositivo ProSLIC (tipo, revisao); e
– Uma instancia fısica por dispositivo.
• Interface objeto do canal ProSLIC (proslicChanType):
– Fornece ponteiro para a interface objeto do canal ProSLIC;
– Armazena opcoes de status do canal (enable, error, BOM options); e
– Uma instancia por canal criado.
3.3 Estrutura do LPC-1768 45
ProSLIC - inicializacao do dispositivo
A ProSLIC API fornece chamadas de funcoes para realizar uma inicializacao basica do
dispositivo ProSLIC.
O driver inicia o dispositivo ProSLIC, executa todas as calibracoes obrigatorias, e imple-
menta todas as personalizacoes feitas e os parametros gerais de configuracoes.
ProSLIC - configuracao do dispositivo
O dispositivo ProSLIC pode ser configurado para atender os requisitos de concepcao do
utilizador apos que sua inicializacao se complete.
A API ProSLIC fornece chamadas de funcao para carregar “presets”do usuario, que sao
gerados usando a ferramenta de configuracao API ProSLIC.
A API ProSLIC permite funcoes que podem ser chamadas a qualquer momento apos a
inicializacao do dispositivo, dessa forma ela permite que, dinamicamente, o dispositivo possa
atender as necessidades de aplicacao.
ProSLIC - controle do dispositivo
Uma vasta biblioteca de funcoes de controle sao definidos na API ProSLIC para simplificar
o controle de aplicacao do dispositivo ProSLIC conjunto de recursos ricos. Esta biblioteca
permite ao usuario implementar funcoes de telefonia padrao com pouca sobrecarga do software
pelo desenvolvedor.
Alem dessas especificacoes citadas, a Proslic API tambem descreve como o software Pros-
lic api config tool pode ser melhor aproveitado
3.3 Estrutura do LPC-1768
O LPC-1768 e um microcontrolador de 32 bits fabricado pela NXP, baseado na tecnologia
Reduced Instruction Set Computer (RISC), que surgiu com a uniao de forcas da Acorn Cumpu-
ter Groupe, VLSI Technology Inc. e a Apple Computer onde deu origem a ARM Ltd. Dessa
uniao criou-se a arquitetura Acorn RISC Machine, mais tarde batizada de Advanced RISC Ma-
chine (ARM-TM) (MIYADAIRA, 2012). A tecnologia ARM e utilizada em uma grande va-
riedade de aplicacoes, como telefones celulares, roteadores, sistemas de trava para veıculos,
3.3 Estrutura do LPC-1768 46
aparelhos MP3, cameras, driver de HD, TV digital e varios outros equipamentos.
Microcontroladores com tecnologia ARM, possuem um nucleo com processadores da famılia
Cortex-A (A5, A7, A8, A9 e A15), que e a famılia aplicacao, famılia Cortex-M (M0, M0+, M1,
M3 e M4), que e a famılia microcontrolador, e a famılia Cortex-R (R4 e R5), que e a famılia
tempo real (MIYADAIRA, 2012). O LPC-1768 e baseado nos processadores Cortex-M3 e as
principais caracterısticas desses processadores sao:
• Enderecamento de memoria fixo de 4 GB;
• Bit-banding;
• Arquitetura Load/Store (carga/armazenamento);
• Conjunto de instrucoes Thumb-TM2;
• Pipeline de tres estagios e uma unidade de pre-busca (prefetch);
• Multiplicador de 32 bits x 32 bits;
• SysTick timer;
• Non-Maskable Interrupt (NMI);
• Nested Vectored Interrupt Controller (NVIC);
• Memory Protection Unit; e
• Modos de operacao do processador. Thread mode ou Handler mode
O LPC-1768 e constituıdo de uma CPU com frequencia maxima de 100 MHz de operacao.
Ainda dispoe de uma memoria flash com 512 KB e uma Static Random Access Memory (SRAM)
de 64 KB. Ao todo sao 70 pinos de entrada/saıda para uso em aplicacoes gerais e interfaces de
controle e transferencia como Ethernet, USB, SPI, PWM, entre outras.
3.3.1 Cortex-M3
De maneira geral, ARM Cortex-M3 e um microprocessador de 32 bits, que oferece alto
desempenho com um baixo consumo de energia. O ARM Cortex-M3 oferece muitos recur-
sos, incluindo um conjunto de instrucoes Thumb-2, estado automatico para salvar e restaurar
interrupcoes, controlador de interrupcao totalmente integrado com controlador de interrupcao
de wake-up, e varios barramentos centrais com acessos simultaneos.
3.3 Estrutura do LPC-1768 47
No ARM Cortex-M3 e empregada tecnicas de canalizacao de modo que todas as partes dos
sistemas de processamento e de memoria pode operar continuamente. Normalmente, quando
uma instrucao esta sendo executado, o seu sucessor esta sendo decodificado, e uma terceira
instrucao esta sendo obtido a partir da memoria.
Organizacao do nucleo
Pensando em simplificar a portabilidade/reaproveitamento de codigo entre processadores
da serie Cortex-M, a empresa ARM Ltd. estabeleceu uma camada de software padronizada, de-
nominada Cortex Microcontroller Software Interface Standard (CMSIS) visıvel na figura 3.14.
Figura 3.14: Estrutura basica da CMSIS (MIYADAIRA, 2012).
A CMSIS pode ser dividida nas seguintes camadas:
• Camada de acesso aos perifericos do processador;
• Camada de acesso aos perifericos do microcontrolador; e
• Camada de acesso middleware.
O nucleo do Cortex-M3 traz um barramento Multi-layer AHB Matrix e um Advanced
Peripheral Bus. O AHB-Matrix constitui em um barramento de alto desempenho entre as
memorias SRAM e FLASH e a CPU. Ja o APB, faz o barramento dos perifericos com o AHB-
Matrix e, apesar do APB ser um barramento de 32 bits, permite que alguns perifericos atuem
com menos de 32 bits, dependendo da necessidade de cada periferico, por exemplo, o periferico
DAC, que atua com 10 bits, os dois barramentos sao ilustrados na figura 3.15.
3.3 Estrutura do LPC-1768 48
Figura 3.15: Diagrama de bloco do ARM Cortex-M3 (NXP, 2015a).
Organizacao da memoria
Os processadores ARM Cortex-M3 possuem um espaco de enderecamento de memoria fixo
de 4 GB (MIYADAIRA, 2012), conforme ilustado na figura 3.16.
O mapeamento de memoria esta dividido em sete regioes, sendo:
• Codigo (Code): Regiao da memoria onde o programa e normalmente armazenado, contem
512 MB;
• SRAM (SRAM): Regiao da memoria onde os dados volateis sao armazenados. Esta
regiao suporta o bit-banding (tecnica que permite ao processador acessar um bit direta-
mente), contem 512 MB;
• Periferico (Peripheral): Regiao da memoria onde os registros dos perifericos do micro-
controlador estao localizados. Esta regiao suporta o bit-banding, contem 512 MB;
• RAM externa (External RAM): Regiao da memoria dedicada ao acesso da memoria
RAM externa, contem 1 GB;
• Dispositivo externo (External Device): Regiao da memoria dedicada ao acesso de dis-
positivos externos, contem 1 GB;
• Barramento de periferico particular (PPB - Private Peripheral Bus): Regiao da memoria
que contempla o barramento PPB, contem 1 MB; e
3.3 Estrutura do LPC-1768 49
Figura 3.16: Mapa de memoria do processador ARM Cortex-M3 (MIYADAIRA, 2012).
• Sistema (System): Regiao da memoria especıfica para aplicacoes do fabricante, contem
511 MB.
O LPC-1768 e capaz de manipular dados de 8 bits (byte), 16 bits (half-word) e 32 bits
(word), ja que tem uma visao da memoria como um conjunto linear de bytes numerados de
forma ascendente (MIYADAIRA, 2012).
Conjunto de instrucoes
A tecnologia Thumb-2 possui novas instrucoes de 32 bits e, ao mesmo tempo integra a
antiga tecnologia Thumb. O uso dessa tecnologia torna desnecessario o uso do interworking,
pois permite num so modo instrucoes de 16 bits e 32 bits, tornando possıvel gerar codigos sem
alterar a performance (MIYADAIRA, 2012). O interworking e uma tecnica que subdivide o
codigo entre ARM e Thumb, para se obter uma alta densidade de codigo sem comprometer a
performance. Por sua vez, Thumb e um subconjunto de instrucoes ARM de 32 bits compri-
midas em 16 bits, e depois que essas instrucoes entram em execucao sao descomprimidas em
instrucoes ARM.
3.3 Estrutura do LPC-1768 50
3.3.2 Serial Peripheral Interface
O LPC-1768, traz uma interface Serial Peripheral Interface (SPI) nativa. Essa interface e
massivamente utilizada nos estudos para o desenvolvimento do dispositivo de telefonia, por isso
ela tem destaque dentre as outras.
A SPI, interface desenvolvida pela Motorola, e um sistema serial sıncrono que utiliza uma
alta taxa de transferencia e barramento full-duplex. Nessa interface, o barramento suporta um
dispositivo Master ativo, que pode ser empregado por um microcontrolador ou um microproces-
sador. Alem do Master, o barramento pode assumir varios Slaves, que sao perifericos em geral.
O barramento e composto por quatro linhas de comunicacao (MIYADAIRA, 2012), sendo elas:
• SCLK: Slave - entrada de sinal de clock; Master - saıda de sinal de clock;
• MOSI: Slave - entrada de dados; Master - saıda de dados;
• MISO: Master - entrada de dados; Slave - saıda de dados;
• SS: Slave - entrada de selecao do periferico; Master - saıda de selecao de periferico.
Figura 3.17: Barramento SPI (MIYADAIRA, 2012).
Essa interface e amplamente utilizada em uma infinidade de perifericos, sendo aplicada
em conversores A/D e D/A, memorias, expansores de pinos I/O, Real Time Clock’s (RTC),
gravadores e reprodutores de som, entre outros.
3.3 Estrutura do LPC-1768 51
Princıpio de funcionamento
Uma comunicacao e estabelecida na interface SPI quando o dispositivo Master forca o sinal
de entrada SS de um determinado Slave para o nıvel logico 0 (nıvel logico baixo).
Assim que o sinal SS de um Slave vai para nıvel logico 0, os dados armazenados nos shift
registers (registradores de deslocamento) sao transferidos entre eles bit a bit a cada pulso de
clock aplicado no sinal SCLK. A transmissao ocorre do bit MSB para o LSB.
Assim que o ultimo bit de dado e transferido, o dispositivo Master pode realizar uma nova
transmissao. Caso nao se queria transmitir mais dados, o Master deve forcar o pino SS para o
nıvel logico 1 (nıvel logico alto) (MIYADAIRA, 2012).
A figura 3.18 mostra um exemplo de como os registradores shift registers operam e como
ocorre a transferencia de dados.
Tipos de conexoes
O barramento SPI suporta quatro tipos de conexoes diferentes. Uma vez escolhido o metodo
pelo Master, todos os outros dispositivos (Slaves), devem utilizar o mesmo metodo. Dois bits
sao responsaveis pela escolha do metodo:
• Clock Polarity (CPOL): define a configuracao da polaridade; e
• Clock Phase (CPHA): define a configuracao da fase.
3.3.3 Interface USB
O controlador USB do LPC-1768 suporta uma interface 2.0 full-speed com os modos de-
vice, host e On-The-Go (OTG), com controlador DMA e PHY dedicado no chip para o device,
host e as funcoes OTG. Esse controlador de dispositivo permite uma comunicacao numa taxa de
12 Mbit/s de dados com um controlador USB host. O controlador consiste de uma interface de
registro, um engine (motor) de interface serial, memoria buffer de endpoint, e um controlador
de DMA.
O engine de interface serial decodifica o fluxo de dados USB e grava dados para o buffer
de endpoint apropriado. O status de uma condicao de transferencia USB ou de erro concluıda e
indicado atraves dos registos de estado. Uma interrupcao tambem e gerada caso seja habilitado.
Assim que ativado, o controlador de DMA transfere dados entre o buffer de endpoint e SRAM.
3.3 Estrutura do LPC-1768 52
Figura 3.18: Transferencia de um dado de 8 bits (MIYADAIRA, 2012).
3.3 Estrutura do LPC-1768 53
Features
Sao caracterısticas da interface USB do LPC-1768:
• Totalmente compatıvel com a especificacao USB 2.0 full speed;
• Suporta 32 (16 logicas) endpoints fısicos com um 4 kB de buffer endpoint/RAM;
• Suporta endpoints com os metodos Control, Bulk, Interrupt e Isochronous;
• Realizacao escalavel de endpoints em tempo real;
• Selecao de tamanho maximo do pacote do endpoint (ate especificacao maxima USB) por
software em tempo real;
• Suporta recursos SoftConnect e GoodLink;
• Enquanto USB esta no modo de suspensao, permite entrar no modo baixo consumo e ser
ativado sobre qualquer atividade na USB;
• Permite a comutacao dinamica entre o slave controlado pela CPU e os modos DMA; e
• permite a implementacao debuffer duplo para endpoints bulk e isochronous.
Sugestao de implementacao para a interface USB
A NXP sugere um circuito para aplicacoes onde sera implementa uma interface USB device,
conforme ilustrado na figura 3.19. Esse barramento so se aplica nos casos onde o cabo do host
(PC, por exemplo) fornece a energia para o circuito.
Figura 3.19: Barramento USB para o modo device (NXP, 2015b).
3.3 Estrutura do LPC-1768 54
3.3.4 Outros perifericos
Alem dos perifericos destacados nas sessoes 3.3.2 e 3.3.3, o microcontrolador LPC-1768
dispoe de outras possıveis interfaces que poderiam ser aplicadas a esse projeto. Elas poderiam
flexibilizar o desenvolvimento, tornando possıvel a utilizacao de outros dispositivos comerci-
ais alem do si32179 e, tambem, facilitar o desenvolvimento de alguns barramentos para esse
projeto, como e o caso da interface Pulse Width Modulation (PWM). Alguns perifericos que
podemos citar:
• Inter-Integrated Circuit (I2C);
• Pulse Width Modulation (PWM); e
• Ethernet.
Inter-Integrated Circuit (I2C)
O LCP-1768 possui 3 interfaces I2C. Essa e uma interface serial sıncrona que suporta
multiplos master, desenvolvida pela Philips Semiconductors para simplificar a troca de informacoes
entre circuitos integrados, ja que possui em seu barramento, apenas duas linhas de comunicacao,
uma de dados bidirecional (SDA) e outra para o sinal de clock (SCL).
Cada dispositivo e reconhecido por um endereco unico e pode operar tanto como um dis-
positivo so de receptor (por exemplo, um controlador de LCD) ou um transmissor com a capa-
cidade de receber e enviar as informacoes (como memoria).
Caracterısticas da interface I2C do LPC-1768:
• Suporta taxas de ate 1 Mbit/s no fast mode;
• Facil configuracao para o master mode, slave mode e/ou master mode/slave mode;
• Transferencia bidirecional de dados entre master e slave;
• Barramento multi master (nenhum master central);
• Sincronizacao do clock serial permite que dispositivos com diferentes taxas de bits se
comuniquem atraves do mesmo barramento de dados;
• Sincronizacao do clock serial pode ser usado como um mecanismo de handshake para
suspender e retomar a transferencia de dados; e
• O barramento I2C pode ser utilizada para fins de teste e de diagnostico.
3.3 Estrutura do LPC-1768 55
Pulse Width Modulation (PWM)
PWM e a tecnica de modulacao por largura de pulsos em que se aplica o controle de
potencia entregue em uma determinada carga. O princıpio de seu funcionamento e chavear
a tensao de alimentacao entre dois estados, ligado e desligado, durante um perıodo de tempo
previamente configurado.
O sinal PWM pode ser utilizado em uma infinidade de aplicacoes, como controle de lumi-
nosidade, controlar a temperatura de uma determinada resistencia para se atingir o aquecimento
desejado, geracao de audio e controlar a velocidade de motores.
O microcontrolador LPC-1768, possui um modulo PWM, com sete registros de comparacao,
capaz de gerar ate seis sinais PWM controlados por uma unica borda ou tres sinais controlados
por duas bordas. Um exemplo de aplicacao para esse projeto, e a implementacao dos sinais para
o barramento PCM que contempla o SLIC si32179 visto na sessao 3.1.2.
Ethernet
O bloco Ethernet contem uma featured Ethernet completa de 10 Mbit/s ou 100 Mbit/s pro-
jetada para fornecer desempenho otimizado atraves do uso da aceleracao de hardware DMA.
As features incluem um conjunto generoso de registros de controle para operacao half ou full
duplex, controle de fluxo, quadros de controle, aceleracao de hardware para transmissao de
repeticao, receber a filtragem de pacotes e wake-up sobre a atividade LAN (WoL).
O bloco Ethernet e a CPU compartilham o ARM Cortex-M3 D-code e o barramento do
sistema atraves da matriz multicamadas AHB, assim os dados Ethernet podem acessar varios
blocos SRAM do chip, controle e informacoes de status.
Caracterısticas da interface Ethernet do LPC-1768:
• Suporte aos padroes Ethernet:
– Camada fısica com 10 Mbit/s ou 100 Mbit/s, incluindo 10 Base-T, 100 Base-TX,
100 Base-FX e 100 Base-T4;
– Completamente compatıvel com o padrao IEEE 802.3;
– Completamente compatıvel com controle de fluxo 802.3x full duplex;
– Transmissao e recepcao flexıvel de opcoes de frame; e
– Suporte a frames para Virtual Local Area Network (VLAN).
3.4 Kit de desenvolvimento LPC-1768 56
• Gerenciamento da memoria:
– Buffers independentes de transmissao e recepcao para compartilhar o mapeamento
de memoria SRAM; e
– Trafego de memoria otimizada por buffering and pre-fetching.
• Caracterısticas reforcadas do Ethernet:
– Filtro recepcao;
– Suporte a quadros multicast e broadcast para transmissao e recepcao;
– Quadro com Frame Check Sequence (FCS) opcional com insercao automatica de
Cyclic Redundancy Check (CRC) para transmissao;
– Preenchimento automatico de quadro de transmissao opcional;
– Modo de recepcao promıscua;
– Colisao automatica back-off e estrutura de retransmissao; e
– Inclui gerenciamento de energia por troca de clock; e
– O suporte ao WOL com o gerenciamento de energia permite que o sistema seja
ativado remotamente: usando os filtros de recepcao ou um filtro de deteccao de
magic frame.
Com o uso de uma interface Ethernet, pode-se obter diagnosticos do LPC-1768 e do si32179
remotamente. Com o auxılio do protocolo Simple Network Management Protocol (SNMP), o
sistema pode ser monitorado e ate poder ter algumas configuracoes modificadas em tempo de
execucao. Isso possibilita a manutencao, gerenciamento e coletas de diagnosticos de forma
mais simples e organizada de varios dispositivos simultaneamente.
3.4 Kit de desenvolvimento LPC-1768
A NXP junto com o um projeto denominado MBED fornecem kits de desenvolvimento com
a arquitetura Cortex-M, com varios modelos de microcontroladores. Em particular, para esse
projeto foi estudado o kit MBED LPC-1768. Esse kit e de facil acesso, sem a necessidade de
efetuar acordos de uso e restricoes de documentacao. Um dos pontos fortes para uso desse Kit
e que existe varios exemplos de codigos disponibilizados em uma comunidade on-line mantida
pelo projeto MBED.
3.4 Kit de desenvolvimento LPC-1768 57
Um recurso interessante do Kit e a possibilidade de utilizar sua interface de integracao
com o computador. Esse recurso permite a facil gravacao do firmware, sem a necessidade de
nenhum gravador especial ou interface Joint Test Action Group (JTAG). Quando plugado em
uma interface USB, esse torna uma unidade de disco removıvel como um pendrive. Basta entao
copiar o firmware gerado pela plataforma MBED (arquivo .bin) para a sua unidade de disco
removıvel. Podemos visualizar o Kit na figura 3.20.
Figura 3.20: Kit de desenvolvimento MBED LPC-1768 (NXP, 2015a).
3.4.1 Estrutura
O objetivo nessa sessao e relatar algumas caracterısticas do Kit de desenvolvimento. Quais
os principais componentes, seu sistema de funcionamento, tambem e feito uma visao geral de
quais sistemas fazem suporte para ele. Com isso, teremos ciencia da melhor forma de utiliza-lo.
Componentes
O Kit MBED LPC-1768 esta munido de um microcontrolador LPC-1768 ARM Cortex-M3,
com uma serie de perifericos e facilidades de desenvolvimento.
Ele traz um conector USB tipo B femea e 40 pinos mapeados para variadas aplicacoes.
Esses compatıveis com todos os codigos disponıveis na plataforma de desenvolvimento MBED,
podendo migrar de um kit para outro com facilidade (inclusive para outro fabricante que nao
seja a NXP).
Alem dos 40 pinos o kit contempla 5 LEDs, um para indicar o funcionamento desse e outros
quatro para uso de aplicacoes gerais.
3.4 Kit de desenvolvimento LPC-1768 58
Ele contem um controlador (mbed interface) responsavel pelo gerenciamento do kit que
faz a interface entre o microcontrolador LPC-1768 ARM Cortex-M3 e a interface USB. Esse
controlador e responsavel pelo gerenciamento da unidade de disco removıvel e tambem e res-
ponsavel por aplicar o firmware para a memoria flash do LCP-1768.
Funcionamento
Para que o firmware fique atuante no microcontrolador LPC-1768 ARM Cortex-M3 e pre-
ciso pressionar um botao do tipo push button disponıvel na parte superior e centralizada do
kit. Apos pressionar o botao, o microcontrolador responsavel pelo gerenciamento do kit ve-
rifica o primeiro arquivo binario disponıvel (considera-se a ordem alfanumerica) na unidade
removıvel e o envia para a memoria flash do LPC-1768. Uma vez pressionado o botao, entrara
em producao. Essa caracterıstica o torna muito atrativo, ja que em pouco tempo podemos ter
um firmware funcional, basta apenas pressionar um botao.
Como a comunicacao do kit e feita puramente sobre a interface USB com o sistema de
desenvolvimento, sem a necessidade de uma interface especializada como uma interface JTAG,
podemos fazer uso de variados sistemas operacionais. O desenvolvimento poder ser inicializado
em qualquer plataforma Windows que de suporte a interface USB, passar com plena compatibi-
lidade por um sistema Mc-OS e, por fim, terminar o desenvolvimento em sistemas operacionais
Linux. Ainda podemos facilmente utilizar Tablets que deem suporte a uma interface USB host.
O que permite o desenvolvimento ate mesmo em uma praca no centro da cidade.
Alimentacao
Apesar do kit dispor de entradas especificas de alimentacao DC (GND e VIN), ele faz
uso da alimentacao disponıvel na propria interface USB. Assim o kit dispensa o uso de fontes
especıficas e externas.
3.4.2 Biblioteca NXP
Para o desenvolvimento de aplicacoes utilizando o LPC-1768, a NXP disponibiliza uma
biblioteca de desenvolvimento. Uma das caracterısticas da biblioteca NXP e o uso de codigo
aberto projetado para rodar em todos os microcontroladores USB LPC da NXP. Ela e oferecida
gratuitamente a todos os clientes NXP. A biblioteca NXP dispoe das seguintes features:
• Controladores suportados:
3.4 Kit de desenvolvimento LPC-1768 59
– Full speed, controlador no modo device (buffers dedicados);
– Full speed, controlador no modo device e no modo host (buffers compartilhados); e
– High speed, controlador no modo device e no modo host.
• Tipos de padroes de transferencia:
– Control;
– Bulk;
– Interrupt; e
– Isochronous.
• Ferramentas suportadas:
– Keil uVision 4; e
– LPCXpresso 4.
• Placas suportadas
– LPCXpresso LPC11U14, LPC176x e placa base Rev B;
– Hitex LPC1850/4350 Evaluation Board (rev A4);
– NGX LPC4330-Xplorer;
– Element 14 LPC4350 Gaming Board; e
– Embedded Artists.
• Exemplos incluıdos
– Dispositivos e hosts de audio;
– Teclados;
– Dispositivos de armazenamento;
– Dispositivos de apontadores (mouse;
– Dispositivos VCOM; e
– A biblioteca nao possui suporte a hub.
• ROM drivers
– HS: LPC1800, LPC4300; e
– FS: LPC11U00, LPC1300.
3.4 Kit de desenvolvimento LPC-1768 60
Para o desenvolvimento de um projeto usando a biblioteca NXP, e necessario ter um Am-
biente de Desenvolvimento Integrado (IDE, do ingles Integrated Development Environmen)
especıfica. O desenvolvimento fica restrito a um ambiente de trabalho com a necessidade de
efetuar backups em varios locais (para garantir a integridade dos dados). Caso haja a neces-
sidade de migrar de ambiente de trabalho e necessario que o projeto seja migrado de alguma
forma, ou via armazenamento portatil ou por meio de downloads.
Para a gravacao do firmware na memoria do microcontrolador ha a necessidade de gravador
especial ou interface Joint Test Action Group (JTAG). O qual faz a conexao para o acesso a
memoria flash do microcontrolador, e assim por o firmware em producao.
Apesar de completa a biblioteca e complexa e densa. O uso da biblioteca requer um estudo
aprofundado de baixo nıvel, o que torna o desenvolvimento demorado. O simples fato de pre-
cisar estudar como configurar as funcoes de cada pino, seja de entrada ou saıda de uso geral ou
de uma caracterıstica mais especıfica como uma interface SPI, torna o processo moroso.
3.4.3 Projeto MBED
MBED e uma plataforma de desenvolvimento (FrameWork) em nuvem e foi iniciada por
dois funcionarios da ARM. A plataforma foi inspirada e desenvolvida para trabalhar com micro-
controladores Advanced RISC Machine (ARM) de varios fabricantes como NXP, SMT, Nordic,
entre outros 2. Sua interface oferece um excelente ambiente de trabalho, amigavel e confiavel,
e oferece um editor de texto preparado para a linguagem C e C++, ja com compilador, tudo isso
on-line e sem custos.
Para poder utilizar o FrameWork e preciso criar uma conta disponıvel em sua pagina 3.
Todo o acesso aos servicos e oferecido gratuitamente, bastando fazer o ingresso em seu portal.
A partir do ingresso, o usuario podera escolher o kit de desenvolvimento e criar um projeto para
iniciar a programar. Alem do ambiente de trabalho, e oferecida e mantida uma comunidade com
varios exemplos de aplicacoes para todos os kits disponıveis. A plataforma pode ser observada
na figura 3.21, que traz a tela principal.
Flexibilidade
A plataforma, por ser apoiada em um sistema computacional em nuvem, proporciona uma
poderosa flexibilidade. Qualquer sistema operacional que possua navegacao na internet e um
2https://developer.mbed.org/platforms/3https://developer.mbed.org
3.4 Kit de desenvolvimento LPC-1768 61
Figura 3.21: Ambiente MBED, tela principal.
potencial sistema para poder utilizar o MBED, sem a necessidade de instalacao de pacotes
extras. O usuario pode iniciar seu projeto em um sistema Linux e termina-lo projeto em um
sistema Windows, sem que precise instalar ou migrar qualquer codigo fonte.
Tambem e possıvel migrar para um hardware diferente, caso o mercado ofereca um outro
por um valor mais acessıvel. Para migrar de uma plataforma para outra, o FrameWork dispoe
de acesso facil a migracao. A figura 3.22 ilustra como se pode alternar facilmente entre plata-
formas.
Programacao facilitada
O projeto MBED prove classes em linguagem C++ que permitem criar objetos especıficos
para as variadas aplicacoes que os kits dispoe. Essas classes fazem uma abstracao ao acesso de
baixo nıvel. A implementacao de uma interface SPI, por exemplo, pode ser feita totalmente em
alto nıvel, ficando para as classes disponıveis no projeto MBED, a responsabilidade de fazer as
configuracoes dos registradores competentes para cada aplicacao.
Nao se preocupar com detalhes de baixo nıvel em um microcontrolador, pode acelerar o
desenvolvimento de uma aplicacao, ja que o estudo de bibliotecas especıficas sao densas e,
muitas vezes complexas, com poucos exemplos e suportes para o desenvolvedor.
3.4 Kit de desenvolvimento LPC-1768 62
Figura 3.22: Ambiente de escolha da plataforma.
Confiabilidade
Por se tratar de uma plataforma computacional em nuvem, nao ha a necessidade de salvar
projetos em disco local. Todos os projetos ficam disponıveis em um ambiente virtual. Caso
ocorra algum sinistro no ambiente de trabalho, todo o projeto pode ser rapidamente acessado
em outra maquina de trabalho ıntegra, sem que seja preciso instalar qualquer ferramenta de
desenvolvimento ou backup.
3.4.4 Discussao
Apos os estudos dos componentes e das ferramentas de desenvolvimento, se fez necessario
uma discussao sobre esses.
SLIC Microsemi versus SLIC Silicon Laboratories
Ja no primeiro momento, tomou-se de partida os estudos da famılia de SLICS da Silicon
Laboratories, especificamente o si32179. Isso devido a uma pequena pesquisa de mercado.
Em um primeiro contato via e-mail com um representante da Microsemi (ANEXO A) foi de-
clarado que o SLIC VE8911 contemplado com a porta FXO tem problemas. O representante
confirmou que houveram varios relatos de problemas em campo. Dessa forma, a decisao mais
conservadora foi optar pelo si32179 da Silicon Laboratories.
3.5 Conclusao 63
Biblioteca NXP versus Projeto MBED
Mesmo sendo uma biblioteca completa, a biblioteca NXP deixou de ser uma opcao apos o
estudo do projeto MBED. Para se conseguir um resultado eficaz com a biblioteca NXP, seria
necessario investir muitas horas de estudo em relacao ao projeto MBED. O projeto MBED
se mostrou uma opcao simples e com todos os recursos necessarios as implementacoes desse
projeto.
Alem da vantagem de ser uma coletanea facil e completa para a implementacao do dis-
positivo de telefonia, o projeto MBED pode ser utilizado com kits que dispensam o uso de
interfaces JTAG, o que torna mais pratico o desenvolvimento. Alem disso, a migracao para um
dispositivo suportado pelo MBED e muito simples, desde que o hardware suporte os requisitos
da aplicacao e aplicacao utilize somente as abstracoes providas pelo framework. Por exemplo,
para migrar do LPC-1768 (Cortex-M3) para o LPC11U24 (Cortex-M0) e necessario poucos cli-
ques no ambiente de desenvolvimento e a aplicacao e compilada para o novo controlador. Como
o LPC11U24 suporta USB Isochronous, um dos requisitos de hardware mais complexos, e SPI,
ele se tornaria um forte candidato para ser o componente utilizado na producao, apos uma fase
de otimizacao do sistema, na procura por corte de custos.
3.5 Conclusao
Nesse capıtulo se efetuou um estudo especıfico sobre quais componentes e kits serao uti-
lizados para contemplar uma futura interface de telefonia. O objetivo era conhecer o funcio-
namento e caracterısticas sobre os dois principais componentes, que sao o SLIC si32179 e o
microcontrolador LPC1768.
Alem de conhecer os dispositivos, o capıtulo tinha o escopo de avaliar o ambiente de de-
senvolvimento fornecido pela Silicon Laboratories, a fim de poder iniciar os estudos praticos
com o SLIC.
Tambem foi feita uma discussao sobre a possibilidade de se utilizar a biblioteca NXP ou o
Projeto MBED. Atraves dessa discussao, pode-se perceber que o uso do Projeto MBED seria
uma alternativa atrativa, devido sua caracterıstica de abstracao de acesso aos recursos de baixo
nıvel do microcontrolador.
Com esses estudos, pode-se concluir o que e necessario para se por em pratica a implementacao
dos blocos logicos do firmware e a arquitetura do projeto logico. Este vem na sequencia, no
proximo capıtulo.
64
4 Arquitetura e Projeto Logico
Esse capıtulo destina-se a demonstrar possıveis arquiteturas de sistemas que podem ser
implementados com o dispositivo de telefonia, alem do projeto logico de hardware.
4.1 Arquitetura dos Sistemas
O Projeto de Interface de Telefonia Analogica USB para sistemas VoIP foi pensado para
atender pequenos sistemas de integracao da rede de telefonia publica com a rede IP. Mesmo
que seja um equipamento pequeno, o projeto pode atender e abranger variadas situacoes de uso,
potencializando o uso de sistemas telefonicos analogicos e dando mais liberdade para novas
aplicacoes.
4.1.1 Sistema Basico
A arquitetura do “Sistema Basico” pode ser observado na figura 4.1. Nessa arquitetura e
apresentada uma forma simplificada de uso, essa e a forma mais basica de aproveitamento do
sistema. O aproveitamento dessa arquitetura e apenas por funcoes locais, como fazer uso do
correio de voz da central telefonica IP, unidade de resposta audıvel (URA), agenda, gravacao
de ligacoes, tarifacao, etc. Mesmo que sejam funcoes simples, temos nessa arquitetura uma
potencial forma de utilizacao.
Figura 4.1: Arquitetura sistema Basico.
4.1 Arquitetura dos Sistemas 65
4.1.2 Sistema de utilizacao de recursos externos
Uma outra arquitetura que pode ser observada e a “Sistema de utilizacao de recursos ex-
ternos”, conforme pode ser vista na figura 4.2. Alem de contemplar o mesmo proposito que a
arquitetura “Sistema Basico”, e possıvel incrementar o uso do sistema. Todas as funcoes agora
podem ser usufruıdas externo ao ambiente local.
Um usuario com acesso a internet, pode obter os recursos do seu sistema telefonico remo-
tamente. Assim duas novas funcoes foram inseridas ao sistema:
• Funcao 1: - mesmo que fora de sua residencia a linha telefonica esta disponıvel para
efetuar ou receber ligacoes, visto que a interface FXO integra a PSTN a rede IP.
• Funcao 2: - tambem e possıvel efetuar uma ligacao para o terminal telefonico ligado a
interface FXS, o que caracteriza uma ligacao gratuita.
O que, do ponto de vista economico, torna o sistema muito atrativo com essas duas novas
funcoes. Alem de poder atender ligacoes destinadas a sua residencia em qualquer local que haja
acesso a internet.
Figura 4.2: Arquitetura do sistema de utilizacao de recursos externos.
.
4.1.3 Sistema de utilizacao de compartilhamento de recursos
A arquitetura “Sistema de utilizacao de compartilhamento de recursos” vem a ser o sistema
mais completo, conforme ilustra a figura 4.3. Nesse tipo de sistema pode-se operar com todas
as facilidades dos sistemas anteriores.
4.2 Projeto Logico do Hardware 66
O que diferencia nessa arquitetura e o atributo de poder compartilhar recursos. Com uma
integracao entre varias centrais telefonicas IP utilizando a internet, os recursos do sistema te-
lefonico podem ser compartilhados, um vez que as interfaces de telefonia nas extremidades dao
subsıdios ao acesso a PSTN. Para que o compartilhamento ocorra, e preciso que um agente
faca o controle dos acessos e gerenciamento dos recursos. O atual trabalho permite que essa
integracao seja feita com maior facilidade, agilidade e com reducoes de custos, pois o projeto e
caracterizado pelo seu sistema simples, barato, no nıvel de usuario e de facil instalacao.
Figura 4.3: Arquitetura sistema de utilizacao de compartilhamento de recursos.
4.2 Projeto Logico do Hardware
Nessa etapa foram definidos os componentes do sistema levando em consideracao os requi-
sitos da plataforma proposta. A parte circulada na figura 4.4 demonstra, de maneira simplifi-
cada, um diagrama do sistema proposta pelo projeto. O SLIC faz a interface com a PSTN e com
o aparelho telefonico ao sistema. O microcontrolador controla a inicializacao e configuracao do
SLIC, cria uma interface de controle (ex.: sinalizacao da interfaces) e uma interface de dados
(voz digitalizada) via USB para inteiracao com o driver. O driver, por sua vez, disponibiliza a
interface para acesso e controle da central telefonica implementada em espaco de usuario. No
caso do Asterisk, por exemplo, o modulo DAHDI controlaria o hardware via USB para integrar
as portas analogicas com os servicos da central telefonica IP.
A implementacao do sistema completo e bastante complexo, envolvendo varias areas do
conhecimento, como por exemplo, projeto e implementacao de hardware, firmware e driver.
Alem da modificacao da aplicacao que implementa a central telefonica IP. Dessa forma, esse
trabalho se limitou em aprofundar o estudo do SLIC e de um microcontrolador capaz de executar
as tarefas ja comentadas.
4.3 Conclusao 67
Figura 4.4: Diagrama do sistema proposto pelo projeto.
4.2.1 Elaboracao do projeto logico
Para uma visao mais abstrata do hardware (SLIC + Microcontrolador) foi gerado um di-
agrama de blocos, conforme visto na figura 4.5. A funcao do diagrama e ser utilizada como
referencia para saber quais sao os componentes necessarios para a implementacao do circuito
e, tambem, para a geracao futura de um esquematico e layout para fabricacao de uma placa
de circuito impresso. O diagrama logico tambem serviu de referencia para orientar as ligacoes
fısicas entre as placas de desenvolvimento utilizadas durante os experimentos.
Figura 4.5: Projeto logico do dispositivo de telefonia.
4.3 Conclusao
Com esse capıtulo, pode-se ter uma visao geral de como o dispositivo serviria a possıveis
cenarios, sugerindo algumas solucoes de uso em um sistema SOHO. Esses cenarios ilustram
4.3 Conclusao 68
o problema proposto dando origem ao diagrama do sistema proposto pelo projeto, culminando
em um projeto logico do hardware. Esse, por sua vez, pode ser utilizado como referencia para
uma futura prototipagem de uma placa de circuito impresso, pelo qual se pode obter um produto
comercial.
69
5 Experimento
Este capıtulo descreve quais os procedimentos efetuados para avaliar o hardware e o soft-
ware proposto para o sistema de telefonia. O objetivo e verificar se o microcontrolador LPC-
1768 e o SLIC si32179 atendem as necessidades de implementacao para controle do dispositivo
de telefonia.
Na primeira etapa foram feitos testes com o kit VMB2 REV 2.0 no modo placa mae, hos-
pedando o kit Si32179BFB11SL0EVB (placa filha) e utilizando o software ProSLIC Voice
GUI.3.4.0 para controlar os kits. Os kits VMB2 REV 2.0 e Si32179BFB11SL0EVB e o soft-
ware ProSLIC Voice GUI.3.4.0 foram estudados na sessao 3.2. Esse primeiro passo submeteu
o si32179 a testes de inicializacao e testes funcionais, utilizando a ferramenta que o fabricante
recomenda para inıcio dos estudos. Com esse procedimento e possıvel avaliar se todos os com-
ponentes estao operando sem problemas, para entao utilizar o hardware e firmware propostos
para o sistema de telefonia.
A segunda etapa dos experimentos foi utilizar o microcontrolador LCP-1768 Cortex-M3 e
o firmware desenvolvido na plataforma MBED para controlar o si32179 que esta disponıvel no
kit Si32179BFB11SL0EVB. Nessa etapa o kit VMB2 REV 2.0 ficou como elemento passivo,
ou seja, ele operou no modo fonte de energia. Com isso, todos os recursos do si32179 foram
controlados diretamente pelo microcontrolador LCP-1768 Cortex-M3, dando acesso total para
o firmware aos registradores e memoria RAM do SLIC. O objetivo da segunda etapa era testar
os blocos funcionais separadamente. Portanto, houve um experimento para avaliar a interface
USB, um outro experimento para avaliar a interface SPI e, por ultimo, um experimento para
avaliar o barramento PCM.
5.1 Experimentos Primeira Etapa - Placa Filha no Modo Hospedeiro 70
5.1 Experimentos Primeira Etapa - Placa Filha no Modo Hos-pedeiro
Nessa primeira parte do experimento o intuito foi utilizar todas as ferramentas (kits e softwa-
res) disponibilizadas pela Silicon Laboratories. Esse experimento e de muita importancia para
o desenvolvimento, pois avalia a integridade dos componentes e traz exemplos de como eles se
comportam com uma solucao de testes inteiramente do fabricante.
5.1.1 Experimento 1 - Utilizacao do software ProSLIC Voice GUI.3.4.0
A figura 5.1 ilustra o cenario utilizado nesse teste. Essa facilita a compreensao sobre o
experimento efetuado.
Figura 5.1: Configuracao fısica do cenario para o experimento da placa filha no modohospedeiro.
Objetivo do Experimento: O escopo desse experimento e verificar se a placa filha esta
operando dentro das condicoes normais, alem de obter exemplos do funcionamento esperado do
componente si32179. Para efetuar os testes, foi utilizado o software ProSLIC Voice GUI.3.4.0,
que a Silicon Laboratories fornece sob NDA.
Procedimento: Em um ambiente Windows, foi instalado o software ProSLIC Voice GUI.3.4.0.
Ao conectar a interface USB do kit VMB2 REV 2.0, foi solicitado instalar o driver da unidade
controladora, para que o software ProSLIC Voice GUI.3.4.0 pudesse acessar as funcionalidades
do kit. Apos a instalacao do driver os testes evoluıram da seguinte forma:
• Inicializacao do si32179: O processo de inicializacao do SLIC foi carregar um script
5.1 Experimentos Primeira Etapa - Placa Filha no Modo Hospedeiro 71
fornecido pela Silicon Laboratories. O script trata-se do arquivo “Si32179FB.txt”, o qual
contem uma lista de valores pre-definidos pelo fabricante para aferir cada endereco de
registrador e memoria RAM responsaveis por inicializar o componente. Alem dos valores
a serem carregados, o script possui rotinas para que cada valor seja inserido nos tempos
corretos. Apos a carga desse arquivo pelo software ProSLIC Voice GUI.3.4.0, um upload
e feito para o si32179. A interface indica se esse procedimento foi efetuado com sucesso
ou nao. Com o script carregado, o kit possibilitou ao software efetuar o uso das funcoes
do SLIC.
• Verificar valores dos enderecos dos registradores e enderecos da memoria RAM:
Com o sistema operando, foi utilizado a funcao Continous Read do ProSLIC Voice
GUI.3.4.0. Para utilizar essa funcao foi preciso pressionar o botao Read All, assim te-
mos os valores de todos os registradores e enderecos da memoria RAM em tempo real.
• Testes de ocupacao do circuito : O teste de ocupacao do circuito foi efetuado com um
terminal telefonico conectado ao RJ-11 (conector J1) correspondente a interface FXS.
Retirando o terminal de seu repouso foi observado as alteracoes dos registradores:
– SPEEDUP (REG 33): - valor alterado de 10 para 0;
– LCRRTP (REG 34): - valor alterado de 0 para 2;
– BATSEL (REG 37): - valor alterado de 12 para 10; e
– PDN STAT (REG 99): - valor alterado de 5 para 4.
• Geracao de ring: A ferramenta ProSLIC Tools do software ProSLIC Voice GUI.3.4.0
tornou possıvel configurar as caracterısticas do formato de onda do sinal de ring e as
cadencias utilizadas. Apos a configuracao foi utilizado a opcao Linefeed Status, que
dispoe de um botao para ativar o ring previamente configurado;
• Geracao do tom (discagem, chamada): Na ferramenta ProSLIC Tools foi utilizado a
opcao Tone Generator. Essa opcao possibilita a configuracao de dois osciladores, nesses
foi possıvel configurar as frequencias, cadencias desejadas e amplitude do sinal. Para o
teste, foi configurado os valores:
– Oscilador 1 - amplitude -18 dBm, frequencia 425 Hz, sinal presente 1 s e sinal
ausente 4 s; e
– Oscilador 2 - amplitude -18 dBm, frequencia 0 Hz, sinal presente 0 s e sinal ausente
0 s.
5.1 Experimentos Primeira Etapa - Placa Filha no Modo Hospedeiro 72
Esses valores simularam um tom de chamada no padrao brasileiro e, em seguida, foi
efetuado um teste para simular o tom de discagem para o padrao brasileiro, para o qual
foi utilizado os seguintes valores:
– Oscilador 1 - amplitude -18 dBm, frequencia 425 Hz, sinal presente 1 s e sinal
ausente 1 s; e
– Oscilador 2 - amplitude -18 dBm, frequencia 0 Hz, sinal presente 0 s e sinal ausente
0 s.
Com um terminal telefonico conectado ao RJ-11 (conector J1), foi possıvel ouvir todos
os sinais, e com o auxılio de um osciloscopio foi aferido os valores nominais.
• Coleta do DTMF gerado por um terminal telefonico: Para esse teste tambem foi utili-
zado um terminal telefonico conectado ao RJ-11 (conector J1). Foram testados todos os
valores DTMFs disponıveis no teclado desse terminal e verificado o comportamento do
registrador TONDTMF (REG 60), os quais seguem:
– Tecla 1: - alterado de 0 para 31 - tecla em repouso, valor e alterado para 1;
– Tecla 2: - alterado de 1 para 32 - tecla em repouso, valor e alterado para 2;
– Tecla 3: - alterado de 2 para 33 - tecla em repouso, valor e alterado para 3;
– Tecla 4: - alterado de 3 para 34 - tecla em repouso, valor e alterado para 4;
– Tecla 5: - alterado de 4 para 35 - tecla em repouso, valor e alterado para 5;
– Tecla 6: - alterado de 5 para 36 - tecla em repouso, valor e alterado para 6;
– Tecla 7: - alterado de 6 para 37 - tecla em repouso, valor e alterado para 7;
– Tecla 8: - alterado de 7 para 38 - tecla em repouso, valor e alterado para 8;
– Tecla 9: - alterado de 8 para 39 - tecla em repouso, valor e alterado para 9;
– Tecla 0: - alterado de 9 para 3A - tecla em repouso, valor e alterado para A;
– Tecla *: - alterado de A para 3B - tecla em repouso, valor e alterado para B; e
– Tecla #: - alterado de B para 3C - tecla em repouso, valor e alterado para C.
Durante todos os testes, foram coletados os principais sinais (PCLK FSYNC, RESET, SCLK,
MOSI, MISO, SS e INT) do kit com o auxılio de um osciloscopio. O objetivo era comparar o
formato de onda dos sinais originados pelo sistema de desenvolvimento da Silicon Laboratories,
com os que o hardware e o firmware externo produziram.
5.2 Experimentos Segunda Etapa - Placa Filha Modo Standalone 73
Analise dos resultados: De acordo com a documentacao fornecida pela Silicon Labora-
tories e com os padroes estabelecidos na telefonia brasileira, todos os resultados saıram como
o esperado. Essa bateria de testes serviu para conhecer melhor as placas de desenvolvimento
e componentes, alem de validar se todos os elementos, que implementam o dispositivo de te-
lefonia, estavam ıntegros. Para efetuar o experimento e avaliar todos os resultados foi preciso
o estudo sobre os kits de desenvolvimento e a documentacao auxiliar para o uso do software
ProSLIC Voice GUI.3.4.0.
5.2 Experimentos Segunda Etapa - Placa Filha Modo Stan-dalone
Esta sessao apresenta as avaliacoes de cada bloco funcional de interface, como por exemplo,
interface USB, interface SPI e barramento PCM. O objetivo foi verificar o comportamento de
cada um dos blocos utilizando os componentes e placas de desenvolvimento estudados. Nesta
etapa a placa filha com o SLIC foi controlada pelo firmware desenvolvido na plataforma MBED.
5.2.1 Experimento 1 - Avaliacao da interface USB
Objetivo do Experimento: Para esse experimento foi reservada o objetivo de avaliar se a
implementacao da interface USB no modo Isochronous, desenvolvida pelo projeto MBED, foi
bem sucedida e se atende os requisitos necessarios. O desejado nesse experimento e conseguir
transmitir amostras de audio para um driver 1 de som no Windows e reproduzı-las com o auxılio
do software livre Audacity 2.
Procedimento: Para validar se o microcontrolador conseguiu implementar um USB device
no modo Isochronous, foi criado um vetor de inteiros no firmware com 8.000 amostras de 8 bits
cada, o que equivale a um segundo de audio. As amostras foram obtidas a partir do software
matematico Matlab lendo um arquivo de audio. Como essas amostras possuıam os valores em
nıveis nao codificados, foi feita uma multiplicacao de cada amostra pelo valor 127, criando,
assim, valores de uma codificacao PCM linear. Para a estrutura desse bloco logico, nao faz
diferenca se o dado e de um codec utilizando PCM linear ou PCM-A, pois o que se pretendia
avaliar era possibilidade de se manipular e enviar cada amostra separada umas das outras, ja
que e dessa forma que o SLIC fornece as amostras de audio.
Mediante o metodo write((uint8 t *)buf), que esta disponıvel na classe USBAudio fornecida
1http://developer.mbed.org/handbook/USBAudio2http://audacity.sourceforge.net/
5.2 Experimentos Segunda Etapa - Placa Filha Modo Standalone 74
pela plataforma MBED, pode-se enviar, a partir do microcontrolador, amostras de audio para o
computador. Ja com o metodo read((uint8 t *)buf) e possıvel receber amostras do computador
para o microcontrolador, fazendo as duas vias de audio (DRXa e DTXa) entre o SLIC e o
computador. O driver utilizado para fazer os testes e disponibilizado pela MBED, e as amostras
do audio sao visıveis na figura 5.2.
Figura 5.2: Reproducao de um segundo de audio enviado via USB.
Analise dos resultados: Apos coletar as amostras com o auxılio do Audacity, foi possıvel
reproduzı-las e analisar se o audio havia sido transferido corretamente. As amostras de audio
contidas no Audacity nos revelaram que a transferencia ocorreu com sucesso. O que sugere ser
viavel o uso da classe USBAudio para a transferencia no modo Isochronous.
5.2.2 Experimento 2 - Avaliacao da interface SPI
Objetivo do Experimento: Esse experimento tem o objetivo de avaliar a comunicacao SPI
entre o microcontrolador LPC-1768 e o SLIC si32179. Com uma rotina de leitura e escrita inse-
rido em determinado registrador um valor conhecido e depois efetuar leitura para ser comparado
ao dado inicial.
Procedimento: Utilizando a classe SPI do projeto MBED e da Proslic API, foi implemen-
tado um driver SPI no LPC-1768 compatıvel com a interface SPI do si32179. A frequencia
utilizada no barramento foi de 186 KHz, o que nos da uma taxa de transferencia de 186 Kbps.
Outras taxas tambem foram testadas como 512 KHz (512 Kbps) e 1 MHz (1 Mbps), obtendo-se
o mesmo resultado.
A figura 5.3 ilustra a captura dos sinais SCLK (canal 1) e SS (canal 2) com o auxılio do
osciloscopio.
No teste de escrita foi utilizado o endereco 14 do registrador com o dado 0x40 (decimal 64,
binario 0100-0000). A coleta do sinal MOSI e ilustrada na figura 5.4, onde os valores foram
5.2 Experimentos Segunda Etapa - Placa Filha Modo Standalone 75
Figura 5.3: Sinais SCLK (canal 1) e SS (canal 2).
transferidos corretamente. Para a melhor visualizacao, foi feita uma ampliacao do sinal MOSI
na figura 5.5.
Figura 5.4: Escrita REG 14. Sinais SCLK (canal 1) e MOSI (canal 2).
Figura 5.5: Escrita REG 14. Sinais SCLK (canal 1) e MOSI (canal 2) ampliados.
Para ajudar a entender a escrita no SLIC, foi realizado tambem a coleta do sinal MISO.
Porem, como a operacao e de escrita, o sinal MISO nao tem nenhuma perturbacao, ou seja,
nenhuma alteracao e percebida no byte de controle, no byte de endereco e no byte de dados,
pois o SLIC recebeu no sinal MOSI uma operacao de escrita. Isso e percebido na figura 5.6.
5.2 Experimentos Segunda Etapa - Placa Filha Modo Standalone 76
Figura 5.6: Escrita REG 14. Sinais SCLK (canal 1) e MISO (canal 2).
Foi feito tambem um teste de leitura com o REG 3 (registrador responsavel pela avaliacao
dos sinais PCLK e FSYNC, que sao sinais do barramento PCM). Sendo esse um registrador
somente de leitura. Foi obtida uma amostra do sinal MOSI, por meio do qual foi enviado o byte
de leitura 0x60, seguido do byte de endereco 3. Como a operacao e de leitura, o byte de dado
nao e relevante. A figura 5.7 mostra o sinal MOSI na operacao de leitura e a figura 5.8 ilustra a
ampliacao do sinal para facilitar a avaliacao.
Figura 5.7: Leitura REG 3. Sinais SCLK (canal 1) e MOSI (canal 2).
A operacao de leitura e o unico momento em que o sinal MISO e aferido e apenas o byte de
dado e avaliado, tornando os outros dois bytes antecedentes do sinal MISO obsoletos. A figura
5.9 apresenta o sinal MISO coletado, pelo qual se constata o valor 0x1F (decimal 31, binario
0001-1111). Uma ampliacao do sinal tambem pode ser visualizada na figura 5.10.
Ainda foi realizada a leitura do registrador 14 e obteve-se o mesmo valor enviado na
operacao de escrita (valor 0x40), o que nos mostra que o barramento SPI esta operando nas
condicoes desejadas. Os testes foram feitos varias vezes, por longos perıodos e sempre foram
5.2 Experimentos Segunda Etapa - Placa Filha Modo Standalone 77
Figura 5.8: Leitura REG 3. Sinais SCLK (canal 1) e MOSI (canal 2) ampliados.
Figura 5.9: Leitura REG 3. Sinais SCLK (canal 1) e MISO(canal 2).
Figura 5.10: Leitura REG 3. Sinais SCLK (canal 1) e MISO (canal 2) ampliados.
5.2 Experimentos Segunda Etapa - Placa Filha Modo Standalone 78
alcancados os mesmos resultados. Isso indica que a interface SPI implementada a partir da
plataforma MBED e confiavel para ser usada na interface com o SLIC.
Analise dos resultados: As analises dos sinais feitas no procedimento 5.1.1 foram com-
paradas com os dados coletados nesse experimento. Como a sessao 5.1.1 e totalmente baseada
na solucao do fabricante (hardware e software) e os sinais comparados tiveram o mesmo for-
mato, pode-se afirmar que o experimento obteve exito. Como o que se esperava era ter uma
comunicacao segura e confiavel entre os componentes envolvidos, os testes mostraram que a
implementacao do barramento SPI pode ser utilizada sem problemas. Depois de ter uma inter-
face de comunicacao confiavel, foi possıvel extrair a coleta do REG 3 (MSTRSTAT) para dar
subsıdios aos testes seguintes.
5.2.3 Experimento 3 - Avaliacao do barramento PCM
O cenario para o experimento de avaliacao do barramento PCM pode ser visualizado na
figura 5.11. Essa facilita a compreensao sobre o experimento efetuado.
Objetivo do Experimento: O escopo desse experimento e verificar se os sinais PCLK e
FSYNC gerados pelo LPC-1768 foram validados pelo SLIC si32179. Como trata-se de sinais
que estabelecem sincronismo para circuito, esses sinais sao a todo tempo verificados si32179. O
diagnostico desses sinais e disponibilizado pelo si32179 no REG 3 (MSTRSTAT), o significado
de cada valor e obtido na documentacao fornecida pela Silicon Laboratories (Documentacao
cedida por cortesia pela Silicon Labs www.silabs.com).
O experimento foi dividido em dois estagios:
• Estagio 1: Valor de FSYNC nominal - sinal FSYNC com frequencia de 8 KHz (64
perıodos de PCLK); e
• Estagio 2: Valor de FSYNC arbitrario - sinal FSYNC com frequencia de 16 KHz (32
perıodos de PCLK)
O que se espera na primeira parte e obter o valor do REG 3 com dados que indiquem o pleno
funcionamento do barramento PCM. No entanto, para a segunda parte, o que se espera e obter
valores que indiquem algum problema no barramento PCM, ja que foi usado um valor fora
dos padroes do dispositivo. Assim e possıvel confirmar se o barramento foi implementado
corretamente.
Procedimento Estagio 1: No barramento PCM foram avaliados os sinais PCLK e FSYNC
5.2 Experimentos Segunda Etapa - Placa Filha Modo Standalone 79
Figura 5.11: Configuracao fısica do cenario para a avaliacao do barramento PCM.
5.2 Experimentos Segunda Etapa - Placa Filha Modo Standalone 80
(figura 5.12). Para uma melhor visualizacao do sinal PCLK, a figura 5.13 traz uma ampliacao
deste.
Esses sinais foram construıdos a partir das ferramentas disponıveis no MBED. O sinal utili-
zado no PCLK foi de 512 KHz, resultando em 4 timeslots. O sinal FSYNC foi obtido por meio
da formula 3.1, na qual cada 64 pulsos do sinal PCLK constituem um perıodo do sinal FSYNC.
Para um sinal com formato de onda de 8 KHz, com 50% de nıvel logico alto e 50% de nıvel
logico baixo, e preciso dividir os 64 pulsos por 2, e isso nos da 32 pulsos em nıvel logico alto
e 32 pulsos em nıvel logico baixo. Foi utilizado um sinal de interrupcao para contar 32 bordas
de subida do sinal PCLK para manter o sinal FSYNC em nıvel logico alto e 32 em nıvel logico
baixo. Como e possıvel contar cada nıvel de subida do sinal PCLK, tambem e possıvel saber o
inıcio e fim de cada timeslot para aferir os sinais DRXa e DTXa.
Figura 5.12: Sinais PCLK (canal 1) e FSYNC (canal 2).
Figura 5.13: Sinais PCLK (canal 1) e FSYNC (canal 2), ampliados.
Em todos os testes foi avaliado o valor do registrador 3 (MSTRSTAT), que e responsavel
por nos informar o comportamento dos sinais PCLK e FSYNC. Enquanto se operou dentro
5.2 Experimentos Segunda Etapa - Placa Filha Modo Standalone 81
das frequencias nominais descritas na documentacao do si32179 (Documentacao cedida por
cortesia pela Silicon Labs www.silabs.com), o valor do registrador 3 sempre foi 0x1F (0001
1111), o que informa o correto funcionamento do barramento.
Nesse estagio o teste permaneceu por um perıodo de 24h, em que um contador de erros era
incrementado a cada vez em que o valor de MSTRSTAT era diferente de 0x1F. Durante todo
esse perıodo, nenhum incremento foi efetuado, permanecendo as 24h com o sincronismo sem
erros. Para uma melhor compreensao um fluxograma foi gerado, como visto na figura 5.14.
Para ter uma avaliacao sem precipitacoes, um atraso de 200 ms e empregado no processo, antes
que se faca as medicoes do REG 3. Isso devido ao tempo que o DSP do SLIC necessita para
inicializar o sistema Phase Lock Loop (PLL).
Figura 5.14: Fluxograma de avaliacao para o barramento PCM.
Procedimento Estagio 2: Tambem foram efetuados testes com valores fora das frequencias
nominais da documentacao do si32179 (Documentacao cedida por cortesia pela Silicon Labs
www.silabs.com) para os sinais PCLK e FSYN, como mostra a figura 5.15, que traz o valor de
FSYNC com 16 KHz, que e o dobro da frequencia nominal (8 KHz). Nesse caso, o valor aferido
do registrador 3 foi 0x1C (0001 1100). Segundo a documentacao do si32179 (Documentacao
cedida por cortesia pela Silicon Labs www.silabs.com), quando o D1 esta com o valor 0, in-
forma que o valor de FSYNC nao esta operando em 20% dos 8 KHz previstos. Ao tornar o
5.3 Conclusao 82
sinal FSYNC em 8 KHz, o valor do registrador retorna instantaneamente para 0x1F.
Figura 5.15: Sinai PCLK (canal 1) e sinal FSYNC (canal 2) com 16KHz.
Analise dos resultados: Um dos fatores mais preocupantes para o desenvolvimento do
sistema de telefonia era a geracao dos sinais competentes ao sincronismo do sistema. Esse
experimento, contemplados pelos estagios um e dois, comprovaram que foi possıvel ter um
barramento PCM adequado gerado pelo microcontrolador LPC-1768, uma vez que, quando
operado dentro dos padroes o valor do REG 3 sempre trouxe o valor que indica operacao normal.
Porem quando se alterou o valor de FSYNC, o REG 3 indicou uma anomalia especıfica no
barramento PCM.
5.3 Conclusao
Nesse capıtulo foram feitos alguns experimentos para avaliar os kits disponıveis pela Silicon
Laboratories e, tambem, o kit disponıvel pela NXP Semiconductors com o objetivo de avaliar
a eficacia para a aplicacao desejada. Com os experimentos aqui descritos, foi possıvel verificar
um excelente desempenho dos kits, sobretudo o MBED LPC-1768, que implementou toda as
funcoes, tornando possıvel o controle do si32179.
A utilizacao da interface USB teve um desempenho motivador, ja que trata-se de um padrao
complexo de comunicacao, mas que com a abstracao da classe USBAudio foi implementada
com exito. Um dos pontos interessantes foi a utilizacao do driver SPI, que teve uma alteracao
significante no padrao trazido pela classe SPI disponıvel no projeto MBED e que atendeu aos
requisitos do SLIC si32179.
Outro fator importante e ressaltar a solucao empregada para gerar os sinais do barramento
PCM. As abstracao de TIMER, capazes de operar o LPC-1768 como contadores e tempori-
5.3 Conclusao 83
zadores, do projeto MBED nao foram satisfatorias para gerar o sinal desejado. Devido essa
deficiencia uma solucao alternativa foi adotada. Tal solucao foi empregar o uso da interface
PWM abstraıda por uma classe MBED, e assim gerar os trens de pulsos do sinal PCLK. Essa
solucao se adaptou muito bem ao caso e nao feriu a camada de abstracao criada pelo MBED,
uma vez que nao foi necessario programar o periferico do microcontrolador diretamente.
84
6 Conclusoes
O objetivo desse trabalho foi o estudo e avaliacao dos componentes comerciais e seus kits
de desenvolvimento para servir de base e guiar um futuro desenvolvimento de um dispositivo
que implemente uma interface USB para um par de portas analogicas FXO e FXS. A transicao
entre a teoria de telefonia vista no curso e a escolha de circuitos integrados comercias, com
padronizacoes estabelecidas pelo mercado, para de fato implementar um sistema real foi bas-
tante grande.
Apos os estudos e a selecao teorica dos componentes, houve um esforco significativo para
conseguir as plataforma de desenvolvimento e realizar os testes a fim de validar todos os blocos
logicos da interface, garantindo que o caminho de dados estabelecido no projeto logico proposto
funcionaria adequadamente. Inclusive a comunicacao no modo USB Isochronous, difıcil de
encontrar em algumas famılias de microcontroladores, obteve sucesso ao transmitir e receber
streams de audio. Entretanto, ainda nao ha garantia que o LPC-1768 conseguira lidar com todos
os fluxos de dados necessarios no nucleo da aplicacao final, uma vez que nao houve tempo
habil para os testes. De qualquer forma, a especificacao de desempenho do microcontrolador
apresenta um cenario bastante favoravel.
Os benefıcios do uso do MBED foram muitos. Ter uma plataforma de desenvolvimento
em nuvem, trouxe muita flexibilidade para os estudos. Mesmo em dispositivos do tipo tablets
foi possıvel produzir conteudos para o desenvolvimento do dispositivo ja que nao ha a neces-
sidade de uma IDE, o que torna muito versatil esse tipo de plataforma. Alem da facilidade
de nao necessitar da instalacao de ambiente de desenvolvimento integrado, o projeto MBED
traz classes poderosas que abstraem a configuracao de modulos para ativar ou desativar funcoes
do CMSIS, o qual e responsavel pela configuracao basica do sistema, assim como o NVIC,
que e responsavel pelo controle de interrupcoes. Dessa forma, aumentando a velocidade de
desenvolvimento e portabilidade do codigo gerado.
Ao final, e importante salientar que os progressos alcancados por esse trabalho certamente
subsidiarao a continuacao e ampliacao do presente estudo a fim de alcancar o objetivo maior,
6.1 Trabalhos Futuros 85
que seria ter um produto de telefonia desenvolvido no IFSC com hardware e software totalmente
abertos.
6.1 Trabalhos Futuros
Varias frentes de trabalho se abriram ao final. A sequencia mais direta e o aprofundamento
do estudo da API de desenvolvimento da Silicon Laboratories, a fim de dominar a sequencia
de inicializacao do SLIC. Dessa forma havera a possibilidade de operar todos os blocos logicos
servindo a estrutura do projeto.
Outra oportunidade para trabalhos futuros e, apos a inicializacao do SLIC, testar os metodos
que a API de desenvolvimento oferece, a fim de analisar os dıgitos das interfaces FXS, efe-
tuar a ocupacao do circuito FXO, enviar o sinal de campainha na interface FXS, dentre outras
aplicacoes basicas do SLIC.
Tambem podera ser proposta o desenvolvimento de um driver especıfico para o host USB,
com o intuito de fornecer ao DHADI as informacoes necessarias para o Asterisk.
86
Referencias Bibliograficas
3CX. O que significam os termos FXS e FXO? 2014. http://www.3cx.com.br/voip-sip/fxs-fxo/. Acessado em 20 de Junho de 2014.
ANATEL. Especificacoes de sinalizacao acustica para a rede nacional de telefonia. 1996.http://sistemas.anatel.gov.br/PraticasTelebras/00118.pdf. Acessado em 19 deJunho de 2014.
ARAUJO, F. P.; BRAGA, M. C. D. C. CONVERGENCIA E INTEROPERABILIDADE ENTREA REDE DE TELEFONIA FIXA COMUTADA E A REDE IP. 2009. http://bdm.bce.unb.br/bitstream/10483/1422/1/2009_MariaCeciliaBraga_FelipeAraujo.pdf. Acessadoem 16 de Junho de 2014.
CUNHA, M. A. P. et al. Uma arquitetura modular de hardware e software para PABX VoIPbaseado em Asterisk. 2012. http://sbrt.org.br/sbrt2012/publicacoes/99608_1.pdf.Acessado em 16 de Junho de 2014.
GALRAO, R. M. VOZ SOBRE IP UTILIZANDO PROTOCOLO SIP: VANTAGENS,COMPATIBILIDADE S E DOIS EXEMPLOS DE APLICACAO. 2007. http://www2.ele.ufes.br/~projgrad/documentos/PG2006_2/ronnymaltagalrao.pdf. Acessado em 19de Junho de 2014.
JESZENSKY, P. J. E. Sistemas Telefonicos. [S.l.]: Manole Ltda, 2004.
LAMARAO, F. M.; ALVAO, J. N. S. VoIP – Solucoes de Voz Sobre IP. 2005. http://www3.iesam-pa.edu.br/ojs/index.php/computacao/article/view/31/28.Acessado em 16 de Junho de 2014.
MICROSEMI. Products. 2015. http://www.microsemi.com/products/
voice-line-circuits/ve890/ve8911. Acessado em 19 de Janeiro de 2015.
MIYADAIRA, A. N. MICROCONTROLADORES ARM TM Cortex TM - M3. [S.l.]: Telo andMiyadaira Editora Ltda.,, 2012.
NXP. Cortex-M3 based microcontrollers with Ethernet, USB, CAN and 12-bit ADC. 2015.http://www.nxp.com/documents/leaflet/75016676.pdf. Acessado em 19 de Janeiro de2015.
NXP. Datasheet LPC1769/68/67/66/65/64/63. 2015. http://www.nxp.com/documents/data_sheet/LPC1769_68_67_66_65_64_63.pdf?&cid=Brand_nxpdatafeed-web_
third_party-11_01_13. Acessado em 19 de Janeiro de 2015.
OLIVEIRA, D. B. S. de; ZANATTA, M. P. de B. F.; SANTOS, R. A. TRABA-LHO DE GRADUACAO REDES DE SENSORES E ATUADORES WIRELESS PARAAUTOMACAO PREDIAL. 2007. http://lara.unb.br/~adolfo/tg/TG07%20Daniel%
Referencias Bibliograficas 87
20B.S.%20Oliveira%20-%20Marcio%20P.B.F.%20Zanatta%20e%20Rodrigo%20A.
%20Santos.pdf. Acessado em 19 de Junho de 2014.
PINHEIRO, B. D. O. VOZ SOBRE IP UTILIZANDO ASTERISK. 2005. https://www.ginux.ufla.br/files/mono-BrunoPinheiro.pdf. Acessado em 18 de Junho de2014.
ROSA, A. A. da; BONATELLI, F. L. REDUCAO DE CUSTOS DE TELEFONIA TDMATRAVES DO USO DE REDES CONVERGENTES (VOIP). 2008. http://http://busca.unisul.br/pdf/95528_Alexandre.pdf. Acessado em 19 de Janeiro de 2015.
SASAKI, M. G.; CAIXETA, O. V. DESENVOLVIMENTO DE UMA INTERFACE USBPARA AQUISICAO DE DADOS DE UM ARRANJO DE MICROFONES: APLICACAO EMPROTESE AUDITIVA. 2006. http://bdm.bce.unb.br/bitstream/10483/853/1/2006_MarcelloSasaki_OtavioCaixeta.pdf. Acessado em 19 de Junho de 2014.
ZUQUIM, A. L. de A. P. Um agente embutido para conversao de uma interface serial emUSB. 2007. http://homepages.dcc.ufmg.br/~ana/rt01.pdf. Acessado em 19 de Junhode 2014.
88
ANEXO A -- Email Representante da Microsemi
Anexo A -- Email Representante da Microsemi 89
Figura A.1: Contato representante da Microsemi.