You are on page 1of 178

UNIVERSIDADE DE BRASLIA

FACULDADE DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA MECNICA

UM PROJETO DE CONTROLE DE MOVIMENTAO


VEICULAR PROJETADO EM UM PROCESSADOR
EMBARCADO EM FPGA COM AMBIENTE DE
SIMULAO USANDO INSTRUMENTAO VIRTUAL

ANDERSON PEREIRA CORREIA

ORIENTADOR: CARLOS HUMBERTO LLANOS QUINTERO


CO-ORIENTADOR: SADEK CRISOSTOMO ABSI ALFARO

DISSERTAO DE MESTRADO EM SISTEMAS


MECATRNICOS

PUBLICAO:
BRASLIA: JUNHO - 2007

UNIVERSIDADE DE BRASLIA
FACULDADE DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA MECNICA

UM PROJETO DE CONTROLE DE MOVIMENTAO


VEICULAR PROJETADO EM UM PROCESSADOR
EMBARCADO EM FPGA COM AMBIENTE DE
SIMULAO USANDO INSTRUMENTAO VIRTUAL

ANDERSON PEREIRA CORREIA

DISSERTAO SUBMETIDA AO DEPARTAMENTO DE


ENGENHARIA MECNICA DA FACULDADE DE TECNOLOGIA
DA UNIVERSIDADE DE BRASLIA COMO PARTE DOS
REQUISTOS NECESSRIOS PARA A OBTENO DO GRAU DE
MESTRE EM SISTEMAS MECATRNICOS.

APROVADA POR:

_________________________________________________
Prof. Dr. Carlos Humberto Llanos Quintero (ENM-UnB)
(Orientador)

_________________________________________________
Prof. Dr. Ricardo Pezzuol Jacobi (CIC-UnB)
(Examinador Externo)

_________________________________________________
Prof. Dr. Liu Hsu (COPPE-UFRJ)
(Examinador Externo)
BRASLIA/DF,

2ii

FICHA CATALOGRFICA
CORREIA, ANDERSON PEREIRA
UM PROJETO DE CONTROLE DE MOVIMENTAO VEICULAR PROJETADO EM
UM PROCESSADOR EMBARCADO EM FPGA COM AMBIENTE DE SIMULAO
USANDO INSTRUMENTAO VIRTUAL [Distrito Federal] 2007.
xvii, 178p., 210 x 297 mm (ENM/FT/UnB, Mestre, Sistemas Mecatrnicos, 2007).
Dissertao de Mestrado Universidade de Braslia. Faculdade de Tecnologia.
Departamento de Engenharia Mecnica.
1.Automao Vecular

2.Computao Reconfigurvel

3.Processador Embarcados

4. Instrumentao Virtual

I. ENM/FT/UnB

II. Ttulo (srie)

REFERNCIA BIBLIOGRFICA
CORREIA., A. P. (2007). Processador Embarcado em Lgica Reconfigurvel para o
Controle de Movimentao de Veculo de Passeio. Dissertao de Mestrado em
Sistemas Mecatrnicos ENM.DM-14A/07, Departamento de Engenharia Mecnica,
Universidade de Braslia, Braslia, DF, 178p.
CESSO DE DIREITOS
AUTOR: Anderson Pereira Correia.
TTULO: Processador Embarcado em Lgica Reconfigurvel para o Controle de
Movimentao de Veculo de Passeio.
GRAU: Mestre

ANO: 2007

concedida Universidade de Braslia permisso para reproduzir cpias desta


dissertao de mestrado e para emprestar ou vender tais cpias somente para propsitos
acadmicos e cientficos. O autor reserva outros direitos de publicao e nenhuma parte
dessa dissertao de mestrado pode ser reproduzida sem autorizao por escrito do
autor.

____________________________
Anderson Pereira Correia
Campus Universitrio Darcy Ribeiro.
Asa Norte, Gleba A, Colina Bloco K, apt 205.

CEP: 70910-900 Braslia DF Brasil.

3iii

AGRADECIMENTOS
A Deus que em todos os momentos sempre esteve a me conduzir em caminhos de paz,
mesmo nos momentos mais difceis, nunca me abandonou cuidando dos menores
detalhes em minha existncia.
Aos meus pais Pedro e Lcia por me educar e me ensinar o caminho da verdade.
Aos meus irmos Peterson, Andresa e Ismael por serem pessoas com as quais aprendi
muitas coisas nos mais importantes instantes de minha vida. Ao meu mais novo irmo
Luiz Toledo por tudo quanto me ensinou e por sua amizade.
Ao professor Dr. Carlos Llanos por sua ajuda e orientao e sobre tudo sua pacincia.
Tambm a sua esposa Carmem por seu carinho, cuidado e os deliciosos quitutes.
Sinceros ao professor Jos Maurcio Motta que no momento crucial me apoiou a
continuar e chegar a concluso desta etapa.
A todo o corpo docente do Departamento de Engenharia Mecnica da Universidade de
Braslia em especial Marrocos por to grande ateno e dedicao, Professor Dr. Walter
Britto por seus concelhos e ao professor Dr. Sadek por sua confiana. Tambm a
professora Dr.Carla Maria Koike por sua dedicao, apoio e colaborao.
A todo o DPP da Universidade de Braslia em especial ao senhor Nonato por sua
ateno, confiana e apoio.
Finalmente a todos os colegas pela pacincia, ateno e grande ajuda.
Ao Centro Nacional de Pesquisa CNPq pela concesso da bolsa que foi fundamental
para a realizao deste trabalho.

4iv

DEDICATRIA
Dedicado
Primeiramente a Deus por minha existncia e por me capacitar a chegar at aqui aos que
me ajudaram a superar todas as dificuldades que surgiram durante toda essa trajetria.
Meus pais Pedro e Lcia por apoio, motivao e por suas oraes nos momentos mais
difceis.
Meus irmos Peterson, Andresa e Ismael por torcerem por meu sucesso e por me darem
sobrinhos e sobrinhas muito lindos.
A todos os amigos e colegas que contribuiram para a realizao desse sonho.

5v

RESUMO
Este trabalho descreve a implementao de uma plataforma baseada em arquitetura
reconfigurvel e conceitos de instrumentao virtual aplicados a implementao do
controle de um carro, que inclui tarefas de controle relacionado direo, cmbio,
acelerador, freio e embreagem. A novidade desta abordagem o uso de sistemas
reconfigurvel (para desenvolver o controlador do carro) e instrumentao virtual o que
permite desenvolver uma abstrao de alto-nvel em um ambiente de teste e simulao.
O sistema de controle do carro foi desenvolvido em um microprocessador com vrios
perifricos embarcados na FPGA (Field Programmable Gate Array). A comunicao
entre o sistema de controle baseado na FPGA para o carro realizada por um mdulo
eletrnico formado por blocos separados, e placas de circuito de potncia.

instrumentao virtual foi usada para implementar um ambiente com um alto-nvel de


abstrao para a simulao com a ferramenta LabVIEW que permite representar o
movimento do carro em tempo real. A comunicao entre o simulador e o controlador
realizada por uma interface serial na qual um protocolo RS-232 foi implementado. O
usurio pode enviar comandos ao sistema de controle por um teclado com uma interface
de PS2. Os comandos esto definidos com uma semntica e sintaxe especficas,
permitindo ao usurio executar vrias manobras com o carro. Esta abordagem abre uma
grande variedade de possibilidades para validar e simular solues para vrios
problemas em robotica e outras reas da mecatrnica. Os testes e validaes do sistema
foram realizados no ambiente de simulao e no carro real. Ento, esta abordagem
tornou possvel comparar os resultados de simulao com as variveis de acionamento
do carro real coletados em tempo real. Esta abordagem torna possvel testar e validar o
sistema de controle com baixo custo e maior segurana.

6vi

ABSTRACT
This work describes the implementation of a platform based on reconfigurable
architecture and concepts of virtual instrumentation applied to the implementation of a
cars control, which includes control tasks related to the steering wheel, gear, throttle,
brake and clutch. The novelty of this approach is the use of both reconfigurable systems
(for developing the cars controller) and virtual instrumentation issues for developing a
high-level abstraction testing and simulation environment. The car control system was
developed in a microcontroller with several peripherals embedded in a FPGA (Field
Programmable Gate Array). The communication between the FPGA-based control
system and the car is accomplished through an electronic module, which comprises
several insulating and power circuit boards. The virtual instrumentation approach was
used for implementing a high-level abstraction simulation environment in LabVIEW
tool, which allows representing the movement of the car in real time. The
communication between the simulator and the controller is accomplished through a
serial interface in which a RS-232 based protocol was implemented. The user can send
commands to the control system through a keyboard with a PS2 interface. The
commands were defined with a specific syntax and semantics, allowing the user to
execute several maneuvers with the car.

This approach opens a great variety of

possibilities to validate and simulate solutions for several problems in robotic and
mechatronic areas. The tests and initial overall system validation were accomplished in
both the simulator environment and in the real car. Therefore, this approach made
possible to compare the simulation results with the movement variables of the real car,
which were gathered in real time. This approach makes possible to test and to validate
the control system with low cost and more safety.

7vii

SUMRIO

FICHA CATALOGRFICA ..................................................................................iii


AGRADECIMENTOS............................................................................................. iv
DEDICATRIA ........................................................................................................ v
RESUMO .................................................................................................................. vi
ABSTRACT .............................................................................................................vii
SUMRIO...............................................................................................................viii
LISTA DE FIGURAS ............................................................................................xiii
LISTA DE TABELAS........................................................................................... xvii
LISTA DE SIMBOLOS, SIGLAS E ABREVIATURAS.................................. xviii
1

INTRODUO ...................................................................................................21
1.1 CARACTERIZAO DO PROBLEMA ...................................................23
1.1.1 Projeto SiAE................................................................................................23
1.2 MOTIVAO DESTE TRABALHO .........................................................27
1.3 OBJETIVOS GERAIS ..................................................................................28
1.3.1 Objetivos especficos.............................................................................28
1.4 JUSTIFICATIVA .........................................................................................29
1.5 METODOLOGIA.........................................................................................30
1.6 LIMITAES ..............................................................................................31
1.7 RESULTADOS ALCANSADOS .............................................................. 31
1.8 APRESENTAO DO TRABALHO ........................................................32

FUNDAMENTOS TECNOLGICOS ..............................................................34


2.1 ASPECTOS TECNOLGICOS APLICADOS A AUTOMAO
VEICULAR ...................................................................................................36
2.1.1 Aspectos Gerais das Tecnologias aplicadas a Sistemas de
Automao Veicular ................................................................................36
8
viii

2.1.2 Tecnologias aplicadas a Veculos de Passeio ......................................37


2.1.3 Conceitos em Tecnologia de Redes aplicados a Veculos ..................39
2.1.4 Sistemas Inteligentes para Controle Veicular....................................40
2.2 SISTEMA DE AUTOMAO VEICULAR .............................................42
2.2.1 Sistema de Apoio ao Motorista ...........................................................42
2.2.2 Sistemas Veiculares Robticos ...........................................................47
2.2.3 Analise dos Diferentes Sistemas de Automao Veicular ................48
2.3 INSTRUMENTAO VIRTUAL .............................................................50
2.4 HARDWARE RECONFIGURVEL E SEUS CONCEITOS ..................53
2.4.1 Aspectos da Reconfigurao ................................................................54
2.4.2 Funcionamento da FPGA ....................................................................56
2.4.3 Especificao Tcnica da Placa de Desenvolvimento ........................62
2.4.4 Processamento Embarcado .................................................................64
2.4.5 A Ferramenta EDK Embedded Development Kit ............................66
2.4.5.1 Aspectos da Ferramenta ..............................................................66
2.4.5.2 Microprocessador MicroBlaze ....................................................69
2.4.5.3 Arquivo de Configurao do Hardware ......................................71
2.4.5.4 Arquivos de Configurao do software .......................................72
2.4.5.5 Cdigo de Programao ...............................................................72
2.4.5.6 A Arquitetura de Memria ..........................................................72
2.4.5.7 Descrio das Interfaces de Sinais ..............................................73
2.5 CONCLUSES DO CAPTULO ...............................................................74
3

ARQUITETURA DO SISTEMA ......................................................................76


3.1 ARQUITETURA PROPOSTA NOS TRABALHOS ANTERIORES .....76
3.1.1 Arquitetura Proposta na Primeira fase do Projeto SiAE .................77
3.1.2 Arquitetura Proposta na Segunda fase do Projeto SiAE..................79

9ix

3.2 A NOVA PROPOSTA PARA O SISTEMA ..............................................81


3.2.1 Conceitos Envolvidos na Nova Proposta ...........................................81
3.2.2 A Arquitetura do Novo Sistema .........................................................82
3.3 CONCLUSES DO CAPTULO ..............................................................84
4

CONFIGURAO DO HARDWARE DE CONTROLE ...............................85


4.1 CONFIGURAES DO HARDWARE EMBARCADO ...........................85
4.1.1 Configurao da Arquitetura do Sistema Embarcado e seus
Perifricos ................................................................................................86
4.1.2 Configuraes dos Registradores .......................................................88
4.1.3 Descrio dos Mdulos Timers/PWM ..............................................89
4.1.4 Configurao dos Timers no Modo PWMs ....................................91
4.1.5 Insero do Mdulo Teclado no Sistema ...........................................93
4.2 ASPECTOS GERAIS DESENVOLVIMENTO DO SOFTWARE DOS
MDULOS DE CONTROLE .....................................................................95
4.2.1 Funes e Bibliotecas dos Perifricos utilizadas na Programao
dos Mdulos ............................................................................................97
4.2.2 Descrio das Variveis de Controle de Movimentao .................101
4.3 MDULO CONTROLADOR GERAL (carro.c) ................................... 102
4.4 MDULO CONTROLADOR DA DIREO (direo.c) ....................104
4.5 MDULO CONTROLADOR DO ACELERADOR (acelerador.c) ......105
4.6 MDULO CONTROLADOR DO FREIO (freio.c) ...............................106
4.7 MDULO CONTROLADOR EMBREAGEM (embreagem.c) ............107
4.8 MDULO CONTROLADOR CMBIO (cambio.c)...............................107
4.9 MDULO PROTOCOLO (protocolo.c) ................................................. 108
4.10 MDULO DE INTERFACE COM O USURIO (interface_usuario.c)110
4.11 RESULTADOS OBTIDOS COM O SISTEMA DE CONTROLE DE
MOVIMENTAO ...................................................................................113

10x

4.12 CONCLUSES DO CAPTULO .......................................................... 117


5

DESENVOLVIMENTO DO SISTEMA DE SIMULAO .........................119


5.1 A UTILIZAO DA INSTRUMENTAO VIRTUAL

PARA O

DESENVOLVIMENTO DO AMBIENTE DE SIMULAO ..............119


5.2 DISTRIBUIO DOS MDULO NO SISTEMA DE CONTROLE DE
MOVIMENTAO COM O SIMULADOR ......................................... 120
5.3 MDULOS DO SISTEMA DE SIMULAO ......................................123
5.3.1 Mdulo Serial..................................................................................... 123
5.3.2 Mdulo Trata Sinais ..........................................................................127
5.3.3 Mdulo Trajettia do Carro .............................................................132
5.4 RESULTADOS DO AMBIENTE DE SIMULAO ............................135
5.5 CONCLUSES DO CAPTULO .............................................................139
6

DESENVOLVIMENTO

DO

SISTEMA

DE

CONTROLE

DE

MOVIMENTAO DO VECULO DE TESTES ........................................140


6.1 DESENVOLVIMENTO

DAS

PLACAS

DE

INTERFACE

POTNCIA ................................................................................................140
6.1.1 Controle de Potncia de Acionamento dos Atuadores (Ponte H).. 141
6.1.2 Controle de Acionamento da Embreagem ..................................... 143
6.1.3 Conversor Analgico Digital (A/D) ................................................. 144
6.1.4 Interface de Sinais e Comando entre a FPGA e o Circuito dos
Atuadores ..............................................................................................146
6.2 RESULTADO

OBTIDOS

COM

CONTROLE

DE

MOVIMENTAO NO VECULO DE TESTES ..................................147


6.3 CONCLUSES DO CAPTULO ............................................................151
7

CONCLUSES E TRABALHOS FUTUROS...............................................152


7.1 CONSIDERAES GERAIS ..................................................................152
7.2 O CONTROLADOR DE MOVIMENTAO EM HARDWARE
RECONFIGURVEL ................................................................................152

11
xi

7.3 O SISTEMA DE SIMULAO ...............................................................153


7.4 INTEGRAO

DO

SISTEMA

DE

CONTROLE

DE

MOVIMENTAO NO VECULO DE TESTES ..................................154


7.5 SUGESTES PARA TRABALHOS FUTUROS ...................................155
7.5.1 Controle de trajetria ........................................................................156
7.5.2 Controle de navegao ......................................................................156
REFERNCIAS BIBLIOGRFICAS ..................................................................157
APNDICE ..............................................................................................................164
APNDICE A .................................................................................................165
APNDICE B..................................................................................................169
APNDICE C .................................................................................................171

12
xii

LISTA DE FIGURAS

Figura 1.1 Foto do veculo de testes do projeto SiAE ............................... 26


Figura 1.2 Foto do acionamento da direo............................................... 27
Figura 1.3 Foto do acionamento do acelerador.......................................... 27
Figura 1.4 Foto do acionamento do freio................................................... 28
Figura 1.5 Foto do acionamento do cmbio............................................... 28
Figura 1.6 Foto do sistema de acionamento da embreagem ...................... 29
Figura 2.1 Esquemtico de um veculo inteligente. ................................... 41
Figura 2.2 Estrutura da Arquitetura em Nveis de controle ...................... 43
Figura 2.3 Sistema de auxlio para estacionamento................................... 45
Figura 2.4 Sistema de identificao dos pontos cegos do veculo............. 46
Figura 2.5 Sistema de automao e pilotagem do veculo baseado em
pontos magnticos nas rodovias.................................................................... 48
Figura 2.6 Veculos de carga e descarga robotizados ................................ 49
Figura 2.7 Projeto Autonomes Fahren (Volkswagen) Rob motorista . 50
Figura 2.8 Painel Frontal do Labview........................................................ 54
Figura 2.9 Diagrama de Blocos do Labview.............................................. 54
Figura 2.10 Circuitos integrados Modificado ......................................... 55
Figura 2.11 Arquitetura interna de uma FPGA.......................................... 59
Figura 2.12 Arquitetura geral de roteamento de uma FPGA ..................... 60
Figura 2.13 Estrutura de um bloco lgico da FPGA Stratix II .................. 62
Figura 2.14 Grfico da evoluo das FPGAs .......................................... 62
Figura 2.15 Forma de onda de Makimoto, Modificado ............................ 63
Figura 2.16 Spartan 3 Starter kit board .................................................... 65
Figura 2.17 Diagrama em blocos Spartan 3 Starter board ....................... 65
Figura 2.18 Solues em hardware x software ........................................ 66
Figura 2.19 Configurao das entradas e sadas de dados no Microblaze 69
13
xiii

Figura 2.20 Ambiente de configurao do EDK ....................................... 70


Figura 2.21 Editor das especificaes do Microblaze .............................. 70
Figura 2.22 Diagrama de blocos Microblaze ............................................ 72
Figura 3.1 Diagrama de blocos da arquitetura .......................................... 80
Figura 3.2 Estrutura dos mdulos do sistema .......................................... 81
Figura 3.3 Arquitetura conceitual do mdulo de movimentao .............. 82
Figura 3.4 Arquitetura macro do sistema implementado .......................... 84
Figura 3.5 Arquitetura do sistema implementado, no carro de testes ....... 85
Figura 4.1 Tela de seleo do modelo da placa utilizada (Base System
Builder Wizard) ............................................................................................. 88
Figura 4.2 Diagrama do hardware configurado utilizando o Base System
Builder Wizard ............................................................................................ 89
Figura 4.3 Diagrama de blocos opb_timer ................................................ 92
Figura 4.4 Registrador TCSR0 de estado do opb_keyboard ......................... 96
Figura 4.5 Diagrama do Software do controlador de movimentao
(Carro de testes) .......................................................................................... 98
Figura 4.6 Diagrama do Software do controlador de movimentao
(Simulador) .................................................................................................. 98
Figura 4.7 Utilizao do xbasic_types.h................................................... 100
Figura 4.8 Varivel sinal_rdb .................................................................. 103
Figura 4.9 Variveis de controle dos atuadores ....................................... 104
Figura 4.10 Fluxograma mdulo carro.c ................................................. 105
Figura 4.11 Fluxo de execuo resumido Mdulo carro.c ................... 106
Figura 4.12 ngulo de posicionamento da roda do carro ....................... 106
Figura 4.13 Posies e eixos do cmbio .................................................. 109
Figura 4.14 Protocolo Envio das palavras pelo Microblaze ................. 111
Figura 4.15 Protocolo Recepo das palavras pelo Microblaze ........... 112
Figura 4.16 Ligaes das LUTs Microprocessador Microbleze ........ 116

14
xiv

Figura 4.17 Ligaes das LUTs Interface I/O .................................... 117


Figura 4.18 Ligaes das LUTs PS2 teclado ...................................... 117
Figura 4.19 Ligaes das LUTs Barramento dos Perifricos (OPB) . 118
Figura 4.20 rea de ocupao da FPGA Spartan 3 ................................ 118
Figura 5.1 Diagrama em blocos plataforma de simulao - Labview ..... 122
Figura 5.2 Diagrama dos mdulos do simulador e seus blocos .............. 123
Figura 5.3 Painel frontal do Mdulo de comunicao serial do Simulador
- Labview..................................................................................................... 125
Figura 5.4 Diagrama de blocos do Mdulo de comunicao serial do
Simulador - Labview ................................................................................. 126
Figura 5.5 Blocos de configurao da porta serial VI Serial ................ 127
Figura 5.6 Lao de repetio para o envio dos sinais VI Serial ........... 128
Figura 5.7 Lao de repetio para recepo dos sinais - VI Serial.......... 128
Figura 5.8 Painel frontal do Mdulo de Trata sinais do Simulador
Labview ....................................................................................................... 129
Figura 5.9 Bloco Acelerao VI Trata Sinais ....................................... 130
Figura 5.10 Bloco Freio VI Trata Sinais............................................... 131
Figura 5.11 Bloco Direo VI Trata Sinais........................................... 131
Figura 5.12 Bloco Cmbio VI Trata Sinais........................................... 132
Figura 5.13 Bloco Motor de passo Embreagem VI Trata Sinais .......... 132
Figura 5.14 Bloco Motor de Controle de Desacelerao e Acelerao
VI Trata Sinais ............................................................................................ 133
Figura 5.15 Variveis das equaes cinemticas .................................... 134
Figura 5.16 Painel Frontal VI Trajetria Carro..................................... 135
Figura 5.17 Diagrama de blocos com o lao de repetio da simulao de
movimentao do veculo- VI Trajetria Carro.......................................... 136
Figura 5.18 Grfico da resposta do sinal do Acelerador no Simulador... 137
Figura 5.19 Grfico da resposta do sinal da Direo no Simulador ........ 138
Figura 5.20 Grfico da resposta do sinal do Freio no Simulador ............ 138
15
xv

Figura 5.21 Grfico da resposta do sinal do Cmbio X no Simulador ..... 139


Figura 5.22 Grfico da resposta do sinal do Cmbio Y no Simulador ..... 139
Figura 5.23 Seqncia de movimentao do Veculo no Simulador ....... 140
Figura 6.1 Esquemtico do Circuito Ponte H .......................................... 144
Figura 6.2 Imagem da Placa Ponte H Circuito placa Ponte H ............. 144
Figura 6.3 Esquemtico Circuito de acionamento da eltro-vlvula......... 145
Figura 6.4 Imagem da Placa de Acionamento da eletro-vlvula ............. 145
Figura 6.5 Esquemtico do Circuito de acionamento Motor de Passo .... 146
Figura 6.6 Esquemtico do Circuito Regulador de Tenso 5V ............... 146
Figura 6.7 Esquemtico do Circuito Conversor dos sinais Analgico/
Digital ( A/D) ............................................................................................. 147
Figura 6.8 Imagem da Placa com o Circuito Analgico Digital (A/D ... 147
Figura 6.9 Opto-acoplagem do sinal fpga-out0 Placa de Inteface........ 148
Figura 6.10 Imagem da Placa com o Circuito de interface...................... 149
Figura 6.11 Sinal de posio da borboleta do acelerador Captura da
posio do atuador no Carro de testes real.................................................. 150
Figura 6.12 Sinal de posio da Direo Captura da posio do atuador
no Carro de testes real ................................................................................ 150
Figura 6.13 Sinal de posio do Freio Captura da posio do atuador no
Carro de testes real ..................................................................................... 151
Figura 6.14 Sinal de posio do Cmbio em X Captura da posio do
atuador no Carro de testes real ................................................................... 151
Figura 6.15 Sinal de posio do Cmbio em Y Captura da posio do
atuador no Carro de testes real ................................................................... 152
Figura 6.16 Seqncia de cenas do vdeo do teste de movimentao do
veculo de testes ......................................................................................... 153

16
xvi

LISTA DE TABELAS
Tabela 1 Principais Sistemas de Automao Vecular Implementados .... 51
Tabela 2 Softcores disponibilizados pelos fabricantes .............................. 67
Tabela 3 Opo de configurao das verses do Microblaze .................... 73
Tabela 4 Caractersticas dos barramentos OPB e LMB............................. 75
Tabela 5 Descrio dos bits do registrador TCSR ..................................... 94
Tabela 6 Descrio dos sinais do perifrico opb_keyboard....................... 96
Tabela 7 Descrio dos registradores opb_7segled ................................... 96
Tabela 8 Descrio da funo dos mdulos do software........................... 99
Tabela 9 Sintaxes dos comandos suportados ........................................... 114
Tabela 10 Descrio das linhas de comandos e suas aes .................... 114
Tabela 11 Descrio dos comandos manuais e suas aes ..................... 115
Tabela 12 Principais Sistemas de Automao Vecular Implementados
comparados ao sistema proposto neste trabalho ........................................ 154

17

LISTA DE SIMBOLOS, SIGLAS E ABREVIATURAS

ABS

Anti Block System Sistema anti bloqueio.

ASIC
Application Specific Integrated Circuit Circuitos integrados para
aplicaes especficas.
AHS

Automated Highway Systems Sistema de automao rodovirio.

BAS

Braking Assitant Assistente do freio.

CDC

Continuous Damping Control Controle continuo da suspenso.

CLB

Configurable Logics Block Blocos lgicos reconfigurveis.

CLP

Controlador Lgico Programvel.

CPLD
Complex Programmable Logic Device Dispositivo complexo de lgica
programavl.
DARPA
Defense Advanced Research Projects Agency Agencia da defesa em
projetos de pesquisa avanada.
DSP

Disigned System Processor Sistema projetado de processamento.

EDA

Eletronic Design Automation Eletrnica para projeto de automao.

EDK

Embedded Development Kit Kit de desenvolvimento embarcado.

EPROM
apagvel.

Erasable Programmable Only Memory Memria programvel

ESP

Eletronic Estability Program Programa eletnico de estabilidade

FLS

Fast Simplex Link Ligao rpida simpes.

FPGA

Field Programmable Gate Array.

FSM

Finite State Machine Maquina de estados finitos.

GUI

Graphical User Interface Interface Grfica do Utilizador.

HDL
Hardware.

Hardware Description Language Linguagem de descrio de

HF

Hardware Fixo.

HP

Hardware Programvel.

ILP

Instruction Level Parallelism Paralelismo no nvel de instruo.

INRIA
Intitut National de Recherche en Informatique et en Automatique
Instituto de pesquisas em informatica e automao.
I/O

Input/Output Entrada e sada

18
xviii

IOB

Input Output Block Bloco de entrada e sada

ISE

Integrated Software Environment.

LabVIEW

Laboratory Virtual Instruments Engineering Workbench

LMB

Local Memory Bus Memria local de barramento.

LUT

Lookup Table

MIMD
Multiple Instruction Stream Multiple Data Stream Fluxo mltiplo de
instruo e fluxo mltiplo de dados.
MPGA

Mask Programmable Gate Array

OPB

On-chip-Periferical Bus Barramento de perifrico dentro do chip.

PC

Personal Computer Computador pessoal.

PLA

Programmable logic Array

PLD

Programmable Logic Device Dispositivo lgico programvel.

PLP

Processor Level Parallelism Paralelismo no nvel do processador.

PWM

Pulse With Modulation Modulao por largura de pulso.

SiAE

Sistema Automtico de Estacionamento.

SIMD
Single Instruction Stream Multiple Data Stream Fluxo simples de
instruo e fluxo multiplo de dados.
RAM

Random Access Memory Memria de acesso

RISC

Reduced Instruction Set Computer

SiP

System in a Package

SoC

System-on-Chip

SRAM

Static Random Access Memory Memria esttica de acesso.

TCS

Traction Control System Sistema de Controle de Trao.

ULA

Unidade Lgica Aritimtica.

VHDL

Very Hight Description Language

VI

Virtual Intrumentation Instrumentao virtual.

VLSI

Very Large Scale Integration

XCL

Xilinx CacheLink

ngulo das rodas.

ngulo do vaculo em relao


ao eixo horizontal X no espao
xx
bidimensional.
x

Distncia do centro do carro at o eixo y.


19
xix

Distncia do centro do carro at o eixo x.

Distncia das lateral entra as rodas.

Velocidade do veculo.

20
xx

INTRODUO
Atualmente, os sistemas autnomos so utilizados em diversas reas em variadas
aplicaes valendo-se em muitos casos de tecnologias que utilizam microprocessadores,
que cada vez mais so exigidas a atender s crescentes necessidades de desempenho,
baixo custo e com tempo de ciclo de projeto cada vez menor. Um sistema autnomo
pode ser caracterizado por sua capacidade de execuo das tarefas para as quais foi
projetado, sem a interferncia de qualquer controle externo, (Tzuu-Hseng S., et al.,
2003) e (Baltes J. e Lin Y. Lin, 1999).
Os sistemas automatizados embarcados vm ganhando grande espao com o
avano da tecnologia, e variadas aplicaes vm sendo desenvolvidas em diversos
laboratrios acadmicos e de empresas, trabalhando em diferentes reas como:
automatizao de processos fabris, sistemas de auxlio ao motorista, navegao
robotizada em ambientes hostis, transporte de cargas, realizao de tarefas repetitivas.
Essas aplicaes, em particular o desenvolvimento de sistemas autnomos em
diferentes nveis, tm gerado desafios cada vez maiores para os profissionais que
trabalham no desenvolvimento de tecnologias aplicadas nessa rea. Para tanto, tcnicas
baseadas em modelos matemticos complexos como em (Yang E., et al., 2004),
aplicaes com redes neurais (Gu D. e Hu. H., 2002) e (Li, J. H. Lee e Li, P. M, 2005),
algoritmos genticos e lgica Fuzzy (Zhao Y. e Collins, Jr. E.G, 2005), entre outros so
utilizadas de diferentes formas para o desenvolvimento desses projetos.
Tcnicas cada vez mais elaboradas para o desenvolvimento de sistemas
automatizados, como as FPGAs Field Programmable Gate Arrays, esto sendo
usadas no desenvolvimento de sistemas de automao e controle (aplicando-se a
prototipao rpida de circuitos integrados). Isto permite tornar possvel alcanar
resultados de bom desempenho e custo (Dehon A., 2000).
A grande complexidade dos sistemas atuais de automao veicular envolvendo
dispositivos mecnicos, eletrnicos e sistemas computacionais estimulam a introduo
de novas metodologias de projeto. Um ponto importante que as metodologias de
desenvolvimento exigem um nvel de abstrao alto para elaborao, verificao e
validao do sistema proposto.

21

Este trabalho descreve a implementao de um Sistemas de Controle de


Movimentao Veicular baseado em tcnicas de arquitetura reconfigurvel e de
Instrumentao Virtual. Desta maneira foi definido um novo fluxo de projeto que
permite um nvel alto de abstrao para validao do sistema. Um ponto importante,
que o sistema a ser validado/simulado composto de um controlador (implementado em
arquiteturas reconfigurveis) e vrios outros elementos como atuadores, interfaces,
sensores, etc. Objetivando o desenvolvimento da base de controle de movimentao do
veculo para o projeto SiAE este sistema foi projetado e implementado aplicando-se
tcnicas que cada vez mais esto ganhando grande visibilidade no cenrio mundial.
As tcnicas de arquiteturas reconfigurveis foram aplicadas no projeto de um
microcontrolador embarcado em uma FPGA (Field Programmable Gate Array) com
diferentes mdulos responsveis por executar diferentes funes.
Por outro lado, os conceitos ligados a Instrumentao Virtual foram aplicados na
construo do ambiente de Simulao e Validao do Controle de movimentao do
veculo usando a ferramenta Labview (Regazzi R. D., et al., 2005).
A implementao do sistema de controle de movimentao foi desenvolvido em
etapas diferentes durante sua elaborao descrita neste trabalho. Inicialmente, foi
projetado o sistema de controle de movimentao, utilizando os conceitos de
processador embarcado em lgica reconfigurvel, para o controle dos atuadores
instalados no veculo de teste do projeto SiAE.

A segunda etapa consistiu no

desenvolvimento do ambiente de simulao o qual objetivou a validao e os testes do


sistema de controle. A terceira e ltima fase consistiu no projeto e desenvolvimento da
eletrnica para o acionamento e interface entre o controlador e os atuadores e
transdutores.
Assim como o desenvolvimento do trabalho foi marcado por suas diferentes
etapas, os resultados obtidos tambm foram distribudos mediante a cada uma destas
etapas alcanadas. Os resultados so apresentados no captulo 4, captulo 5 e captulo
6, onde cada uma das etapas citadas mostrada em detalhe.

22

1.1.

CARACTERIZAO DO PROBLEMA
A abordagem tratando do controle de veculos autnomos vem sendo largamente

pesquisada em diferentes nveis por todo o mundo.


A problemtica proposta consiste no projeto e desenvolvimento de um sistema
de controle de movimentao de um carro de passeio pequeno aplicando-se
processamento embarcado em lgica reconfigurvel no projeto do sistema. O sistema
possui uma arquitetura dividida em mdulos e blocos organizados de forma que cada
qual realiza tarefas especficas de forma ordenada.
O sistema proposto nesse trabalho parte do projeto SiAE (Sistema Automtico
de Estacionamento). A proposta do SiAE tornar um veculo capaz de realizar o
estacionamento de uma vaga paralela a sua direita. Na arquitetura do projeto SiAE este
trabalho contribui para a implementao do sistema de controle de movimentao do
veculo.

1.1.1. Projeto SiAE


O projeto SiAE teve incio em 1999 com forte apoio da FIAT na doao do
veculo de teste e financiamento da pesquisa. Desde seu incio este projeto despertou
grande interesse acadmico e comercial, pois se trata de uma inovao tecnolgica
ainda no dominada no mbito nacional e seu conceito arquitetnico contribui
significantemente com os sistemas existentes.
Desde o surgimento do projeto, seu objetivo principal o desenvolvimento de
um sistema de estacionamento automtico em uma vaga paralela.

Esse estudo est

inserido dentro do contexto de sistemas autnomos para o controle veicular j foi


desenvolvido em diferentes trabalhos (Han-Shue, et al, 1999), (Wada M., et al, 2003) e
(Shimazaki et al., 2004).
Esse projeto j passou por trs fases distintas. Na primeira fase foram definidas
quais as variveis que deveriam ser automatizadas, projetando-se os atuadores que
efetuariam o acionamento destas.

Na etapa seguinte, foi definida uma arquitetura

flexvel e distribuda para o controle das variveis automatizadas do veculo.

Na

terceira etapa e atual, foram projetados e embarcados os mdulos de controle de


movimentao em uma arquitetura reconfigurvel.

23

Com o controle de movimentao do veculo operante, as fases seguintes do


projeto objetivam um nvel de autonomia maior, o qual necessrio para efetuar o
estacionamento de forma autnoma.
As figura 1.1, abaixo, apresentam o veculo de teste onde a plataforma do
sistema de controle de movimentao do projeto SiAE foi desenvolvido.

Figura 1.1 Foto do veculo de testes do projeto SiAE (Bellardi, T., 2005).
A figura 1.1 mostra o veculo de teste no qual foi montada toda a plataforma de
automao. Este veculo um Palio com motorizao 1000 cm e injeo eletrnica de
combustvel, cmbio manual com seis marcha inclusive a r, sistema de direo,
acelerador e embreagem mecnicos.
Para a instalao dos dispositivos no veculo, foi necessrio desmontar partes
plsticas do acabamento do painel e o pra-choque dianteiro.

A instalao dos

dispositivos seguiu o conceito de modificar o mnimo possvel os dispositivos instalados


originalmente no veculo. Vale ressaltarmos que o objetivo do projeto a utilizao de
dispositivos de baixo custo buscando-se o desenvolvimento de um produto acessvel em
sua comercializao.
O trabalho de (Bellardi, T., 2005) concentrou-se na definio da arquitetura
flexvel para o controle de movimentao do veculo e a definio dos mdulos dessa
arquitetura. Tambm foram projetados, construdos os circuitos eletro-eletrnicos para
a primeira verso do software de controle da movimentao do veculo em um
microcontrolador 8055 da famlia do 8051.

24

Na figura 1.2, observa-se a instalao de um motor de corrente contnua para


atuar no sistema de direo do veculo.
Este atuador aciona a direo por meio de um redutor montado diretamente na
cremalheira.

Figura 1.2 Foto do acionamento da direo (Bellardi, T., 2005).


Para o acionamento da borboleta de acelerao foi instalado um motor de
corrente contnua de deslocamento linear, figura 1.3. Originalmente este motor
utilizado para efetuar o controle da marcha lenta do motor (Bellardi, T., 2005).

Figura 1.3 Foto do acionamento do acelerador (Bellardi, T., 2005).


No sistema de freio, foi instalado tambm um motor de corrente contnua, como
mostra a figura 1.4. Quando se necessita acionar o freio, o motor atua na direo horria
e quando necessrio desacion-lo, o motor gira no sentido anti-horrio.

25

Figura 1.4 Foto do acionamento do freio (Bellardi, T., 2005).


Para o acionamento do cmbio (figura 1.5), foram utilizados dois motores de
corrente contnua com reduo tipo coroa helicoidal e parafusos sem fim que atuam na
alavanca do cmbio por meio de barras flexveis.

Figura 1.5 Foto do acionamento do cmbio (Bellardi, T., 2005).


Na figura 1.6, para o acionamento da embreagem foi utilizado o sistema eletropneumtico Autonomy da FIAT. Este sistema atua diretamente no plat podendo
acopl-lo de duas formas: acionamento suave ou acionamento brusco.

26

Figura 1.6 Foto do sistema de acionamento da embreagem (Bellardi, T., 2005).


Uma vez que o controle de movimentao esteja operante as fases que se
seguem para que o projeto alcance o nvel de autonomia esto fundamentadas no
planejamento de trajetria e o controle de navegao bem com o sensoriamento.

1.2.

MOTIVAO DESTE TRABALHO


Atualmente, os sistemas autnomos veiculares ganham cada vez mais espao.

Fatores relacionados segurana, conforto e eficincia so os principais motivadores, os


quais tm despertado o interesse de montadoras e laboratrios de pesquisa a
redirecionarem suas pesquisas em sistemas autnomos.
Entretanto, grande parte desses sistemas so projetados em arquiteturas de
sistemas microprocessados com diferentes conceitos (Shimazaki et al., 2004), (Wada
M., 2003) e (Good et al., 1988). As aplicaes desenvolvidas em sua grande maioria
so desenvolvidas para carros com motores eltricos com diversos acessrios
automticos ou semi-automticos.
Os sistemas desenvolvidos e comercializados possuem grande nmero de
processadores espalhados por todo o veculo executando funes especficas. Outros
sistemas foram desenvolvidos sobre plataforma de veculos eltricos os quais possuem
inmeros fatores simplificadores (Consoni F., 2004).

27

O projeto em questo por sua vez pode ser definido como diferenciado das
aplicaes j desenvolvidas, pois possui premissas que estabelecem a utilizao de um
veculo com motorizao de 1000 cm3 com cmbio e direo mecnicos, visando a
obteno de um sistema de baixo custo flexvel o suficiente para adaptar-se a diferentes
modelos de carros realizando a tarefa de estacionamento.
Todo esse trabalho envolve um detalhado estudo para o desenvolvimento de um
sistema robusto, simples e barato que implique em modificaes mnimas no veculo.
Os sistemas j desenvolvidos utilizam sistemas sofisticados e complexos
instalados em veculos modernos que contam com inmeros dispositivos de controle j
instalados.

1.3.

OBJETIVOS GERAIS
Este trabalho tem como objetivo principal desenvolver um controlador de

movimentao para o veculo fazendo a leitura dos sinais dos sensores e acionando os
atuadores de acordo com as necessidades, seguindo as especificaes de arquitetura
flexvel em sistemas distribudos (Bellardi, T., 2005).
A abordagem aplicada para este propsito baseia-se no projeto e implementao
de um controlador de movimentao embarcado em lgica reconfigurvel propiciando,
nesta fase, a um veculo de passeio receber comandos para movimentar-se de forma
segura e controlada. Por outro lado, este trabalho tambm visa desenvolver uma
interface entre o controlador o operador para enviar os comandos para o ambiente de
teste e de simulaes.

1.3.1. Objetivos Especficos


Os objetivos especficos deste trabalho so:
1- Estudar, projetar, simular e implementar a programao dos mdulos e seus
respectivos blocos para o controle de movimentao em um microprocessador
embarcado em arquitetura reconfigurvel.
2- Projetar, testar e implementar os perifricos para o microprocessador embarcado em
lgica reconfigurvel e conectar ao barramento de comunicao.

28

3- Projetar um ambiente de simulao baseado em ferramentas de instrumentao


virtual para a validao do sistema de controle.
4- Definir e projetar uma comunicao entre o operador e o controlador de forma semiautomtica ou manual propiciando ao sistema receber comandos e executar as aes
necessrias para a movimentao do veculo.
5- Projetar e construir uma interface flexvel de monitorao e simulao do controle
de movimentao para teste e validao do sistema em condies normais de
operao.

1.4.

JUSTIFICATIVA
Na rea de veculos autnomos ou automao veicular, tem a cada dia

aumentada a importncia dos conceitos de segurana, conforto e eficincia. Visando


maximizar cada vez mais estes princpios, muito se tem investido em novas pesquisas
dentro dos conceitos de drive-by-wire, sistemas de apoio ao motorista e de automao
de tarefas repetitivas dando maior conforto e segurana.
Estudos mostram o aumento da utilizao de sistemas eletrnicos para o controle
e monitorao de diversos dispositivos, sistemas e at tarefas.
Os automveis representam os produtos que vm cada vez mais incorporando
equipamentos e dispositivos microeletrnicos, o que contribui para o aumento do
consumo de insumos, em especial semicondutores. Os equipamentos incorporados aos
automveis representam a eletrnica embarcada na forma de sensores, computadores de
bordo, circuitos eletrnicos, freios inteligentes, instrumentao, cmbios automticos e
entre outros (Consoni F., 2004).
Um exemplo importante o BMW srie 7, o qual possui 63 processadores
embarcados (BMW srie 7, 2005). Um ponto importante que a capacidade para
executar um projeto cresce mais lentamente se comparado com o aumento da
complexidade do mesmo. Este ponto se reflete em um aumento lento da produtividade
do ciclo de projeto de sistemas complexos (Harteinsten R., 2002).
O mercado tem respondido de forma positiva com o crescimento de unidades
produzidas e comercializadas.

29

Estima-se que nos prximos anos o aumento do consumo destas tecnologias e


novos conceitos em eletrnica embarcada nos veculos tragam maior segurana e
conforto ao motorista e aos ocupantes.
Torna-se cada vez maior o relacionamento de computadores e da indstria de
semicondutores com os automveis. Analistas estimam que em 2000 o contedo mdio
de silcio (que base para os semicondutores) em um carro era de 239 dlares, com
forte tendncia de crescimento da utilizao da eletrnica na indstria automotiva
(Amato N. J., 2004).
Esta modernizao est trazendo aos motoristas e passageiros diversos
benefcios como: maior segurana ao dirigir, apoio ao motorista em situaes de
emergncia, limitadores e controladores de velocidade e estabilidade do veculo e os
sistemas de ajuda no estacionamento dos veculos.
Em pases da Europa como a Alemanha, Frana e Itlia existem rodovias com
alto grau de automatizao atuando de forma inteligente, so as chamadas AHS
Automated Highway Systems.
Essas rodovias, por sua vez, so equipadas com diversos dispositivos que
auxiliam o motorista no controle e conduo do veculo, podendo estabelecer o controle
de velocidade eletronicamente, avisando o motorista das condies de alerta e
emergncia.

1.5.

METODOLOGIA DE PROJETO
A metodologia aplicada neste trabalho dedicou-se ao projeto de um sistema de

controle da movimentao para um veculo de passeio comum a partir dos conceitos da


arquitetura flexvel, modular e distribuda definida por (Bellardi, T., 2005). Esta
arquitetura dividida em mdulos a fim de propiciar futuras modificaes do sistema e
o acrscimo de outras funcionalidades.
O sistema de controle de movimentao foi subdividido em trs mdulos:
mdulo de controle de movimentao, mdulo de interface com o operador e o mdulo
de acionamento dos atuadores, sendo que todos eles sero detalhados posteriormente.

30

A sistemtica de controle de movimentao foi projetada usando as ferramentas


do EDK Embedded Development Kit, do fabricante Xilinx, para a configurao do
processador embarcado na FPGA Spartan-3 e o ISE Integrated Software Environment,
para a configurao do mdulo de comunicao do teclado em VHDL Very Hight
Description Language.

Na concepo do software desse controlador embarcado foi

aplicada uma metodologia distribuda concebida por (Bellardi T., 2005), onde cada
varivel de controle de movimentao do veculo controlada por um controlador local
que responde a um controle central.
Tambm neste trabalho foi abordada uma metodologia de teste e validao em
dois nveis. No primeiro nvel de validao foram realizados testes no ambiente de
simulao do controlador desenvolvido. No simulador foram utilizados conceitos de
instrumentao virtual no ambiente do Labview da National Instruments.
A presente metodologia de projeto, envolvendo Instrumentao Virtual e
Arquiteturas Reconfigurveis, mostra-se promissora devido grande flexibilidade das
tcnicas utilizadas. O projetista pode modelar diversas tcnicas de navegao e controle
para validar desempenho e viabilidade tcnica/econmica do projeto.

1.6.

LIMITAES
Este trabalho limita-se ao estudo, projeto, simulao, teste e implementao dos

mdulos e seus respectivos blocos para o controle de movimentao usando um


microprocessador embarcado em lgica reconfigurvel. Alm do anterior, o trabalho
inclui o projeto das placas de potncia e de uma interface de comandos do operador para
o sistema, bem como as modificaes necessrias nos atuadores e transdutores para o
bom funcionamento do sistema.

1.7.

RESULTADOS ALCANADOS
Abaixo destacam-se os principais resultados obtidos neste trabalho:

1) Um controlador implementado em um processador e seus perifricos


embarcados em uma FPGA. Neste trabalho so apresentados dados relativos
ocupao da FPGA e a utilizao dos recursos do kit de desenvolvimento
utilizado (ver captulo 4).

31

2) Um ambiente de simulao para a observao e validao do comportamento do


sistema veculo/controlador (ver figuras 3.4 e 3.5). So mostrados os resultados
pertinentes aos testes de acionamento dos atuadores separadamente e o controle
de movimentao no ambiente de simulao. (vide captulo 5).
3) O projeto de placas de potncia e placas de interfase FPGA/atuadores (ver
capitulo 6).
4) O projeto e implementao de uma placa de aquisio de sinais baseado em um
conversor analgico/digital (ver capitulo 6).

1.8.

APRESENTAO DO TRABALHO
Este documento est organizado de forma a proporcionar ao leitor uma

apresentao das tecnologias envolvidas neste trabalho relacionados ao projeto SiAE.


Para apresentar estas informaes de forma organizada e concisa, este trabalho foi
distribudo em sete captulos.
No primeiro captulo, apresentado ao leitor um panorama introdutrio ao
trabalho. Esta apresentao consiste na definio das especificaes e caractersticas do
problema a ser resolvido neste trabalho. Tambm apresentado o projeto SiAE, seus
objetivos e caractersticas, bem como os objetivos gerais e especficos deste trabalho
dentro do projeto e os objetivos especficos.

Nas sees seguintes, so apresentadas

ainda as justificativas deste trabalho, suas limitaes e a metodologia aplicada em sua


elaborao.
O segundo captulo dedica-se aos fundamentos tecnolgicos aplicados neste
trabalho. So apresentados os conceitos principais de computao reconfigurvel, suas
arquiteturas e funcionamento. Ainda neste tpico, o leitor encontra os conceitos de
instrumentao virtual e suas ferramentas. Tambm pode encontrar aqui os conceitos
principais de automao veicular e a tecnologia relacionada a esta rea.
J no terceiro apresentado ao leitor a arquitetura do sistema desenvolvido no
projeto SiAE, seu histrico e evoluo nas diferentes etapas de sua elaborao.
No quarto captulo, apresentado o desenvolvimento da configurao do
Hardware embarcado na FPGA bem como o se Software de controle, sendo apresentado
os resultados e os resultados alcanados.

32

O quinto captulo dedica-se apresentao do desenvolvimento do ambiente de


simulao, o funcionamento de seus mdulos e os resultados obtidos com o
desenvolvimento do ambiente de simulao.
O desenvolvimento do sistema de controle do veculo de testes est descrito no
sexto captulo. apresentado o projeto dos circuitos de todas as placas, sua funo e os
resultados dos testes de acionamento e movimentao com o veculo de testes.
No stimo e ltimo captulo o leitor encontra as concluses obtidas com a
elaborao implementao desse trabalho. Tambm so listados os futuros trabalhos
mediante o estado atual do projeto tendo em vista as inovaes tecnolgicas.
Por fim nos apndices o leitor encontra os desenhos das placas e dos PCB`s,
relatrio de utilizao dos recursos de hardware do sistema de controle embarcado, os
fluxogramas dos software de controle de cada um dos mdulos do controlador
embarcado em lgica reconfigurvel.

33

2. FUNDAMENTOS TECNOLGICOS
Este captulo apresenta a fundamentao terica dos conceitos e tecnologias
utilizados neste trabalho.
Inicialmente, descrevemos um breve histrico dos sistemas de automao
veicular, enfatizando a evoluo e a incorporao de sistemas automatizados. Tambm
so abordadas as principais tecnologias aplicadas a veculos de passeio a evoluo dos
sistemas e os conceitos que revolucionaram a forma de dirigir um veculo possibilitando
novos patamares de segurana, conforto e economia de combustvel.
As pesquisas em automao veicular abriram as portas para o surgimento de
sistemas que auxiliam o motorista na execuo de tarefas pr-estabelecidas e no
gerenciamento de funes especficas ou gerais como: manter a velocidade do veculo,
manter a distncia do veculo a sua frente, estacionamento automtico ou at mesmo o
controle de temperatura no interior do veculo.
Com o avano das tecnologias relacionadas aos veculos automatizados, novos
paradigmas na rea de sistemas veiculares robotizados surgiram. Estes sistema ganham
espao em aplicaes industriais (e.g. carga e descarda) e, adicionalmente, em
aplicaes urbanas objetivando cada vez mais isentar as pessoas de executarem tarefas
repetitivas e/ou desgastantes.
Por outro lado, os sistemas de automao vecular objetivam o aumento de
segurana, pois com o desenvolvimento desses sistemas no haveria mais excesso de
velocidade, ultrapassagens perigosas, motoristas dirigindo embriagados e os acidentes
causados por motoristas que dormem ao volante.
O desenvolvimento de sistemas veiculares robotizados cada vez mais avanados
necessitam de ciclos e sistemas de teste, simulao e validao ainda mais prximos da
realidade com a finalidade de exaurir a possibilidade de falhas. Com esse enfoque, os
novos projetos na rea de automao veicular tm utilizado variados recursos para os
testes de simulao e validao.

34

A instrumentao virtual, mais propriamente a ferramenta LabVIEW da


National Instruments, tem se mostrado atraente pois possibilita de forma visual a
implementao de simuladores eficiente para a execuo de testes preliminares para a
validao dos sistemas automatizados.
A instrumentao virtual, surgiu com o intuito de suprir as necessidades de
ferramentas de desenvolvimento de aplicaes acadmicas, mas atualmente com seu
desenvolvimento, muitos projetistas esto aplicando seus conceitos em pequenas
aplicaes de automao industrial.
Os recursos oferecidos por esta ferramenta so aplicados para teste, verificao,
automao e controle do sistema implementado por meio de modelos matemticos
tericos ou modelos realsticos comportamentais. Tambm se mostra muito eficiente no
desenvolvimento de aplicaes voltadas a interface de sistemas automatizados (e.g
sistemas de supervisrio).
Juntamente, com o desenvolvimento dos sistemas veiculares automatizados o
desenvolvimento de novas tecnologias de sistemas embarcados tem se mostrado
necessrio para dar suporte as necessidades cada vez mais pujantes. A quantidade de
eletrnica embarcada nos veculos, atualmente, j est na casa de centenas no caso de
veculos mais luxuosos.
Visando este crescimento as industrias de desenvolvimento de sistemas
eletrnicos para aplicaes veiculares est investindo na pesquisa de novas
metodologias para o controle dos sistemas veiculares embarcados. Nessa dinmica a
computao reconfigurvel vm se mostrando uma tecnologia interessante, pois sua
fundamentao est baseada em hardware no que tange a freqncia de funcionamento
e software no que diz respeito a flexibilidade. A reconfigurabilidade do hardware
materializada nas FPGAs tem se mostrado competitiva em termos de custo
propriamente do chip e do seu ciclo de projeto.
Nesse captulo so abordados os conceitos tecnolgicos aplicados no
desenvolvimento, teste e simulo do sistema de controle de movimentao de um
veculo de passeio movido a motor de combusto interna. Estes conceitos esto
relacionados com a aplicao de Sistemas Reconfigurveis e Instrumentao Virtual
para o projeto de Sistemas de Automao Veicular.

35

2.1.

ASPECTOS TECNOLGICOS APLICADOS A AUTOMAO


VEICULAR

Nesta seo so abordados os principais aspectos tecnolgicos aplicados a


automao veicular. Dentro dos conceitos relacionados a automao veicular so
descritas as tecnologias aplicadas aos veculos de passeio seus conceitos e o estado da
arte em sistemas inteligentes para o controle veicular.

2.1.1. Aspectos Gerais das Tecnologias Aplicadas a Sistemas de Automao


Veicular
A automao veicular, alm de proporcionar ao motorista segurana em
situaes criticas, pode tambm auxilia-lo dando-lhe informaes necessrias para que
possa executar manobras, ou mesmo automatizar alguma das tarefas relacionadas a
dirigibilidade. As indstrias automotivas tem investido nesta rea visando aumentar o
conforto, segurana, estabilidade e rendimento dos veculos, utilizando-se de sistemas
embarcados que controlam a ao de frenagem ABS Anti-lock-Breaking-System
(Kelber, 2003a), estabilidade do veculo ESP Eletronic Stability Program (Kelber,
2003a), controle da velocidade, controle da autonomia, controle do consumo mdio de
combustvel, controle de temperatura.
Com o aumento das necessidades de tornar os veculos mais inteligentes,
solues computacionais tornaram-se cada vez mais comuns.

Em diversos paises os

motoristas podem contar com computadores que possuem os mapas das ruas da cidade e
recebem informaes sobre as condies de trnsito escolhendo para o motorista o
melhor trajeto.
As tecnologias atualmente desenvolvidas apresentam em sua maioria um grande
conjunto de sensores, transdutores, atuadores, sistemas de comunicao modernos, que
possibilitam a estes veculos cada vez mais executar tarefas mais complexas de forma
segura.

Para dotar estes veculos de comportamentos inteligentes so incorporados

componentes de percepo garantindo maiores nveis de autonomia e robustez.


Cada vez mais os projetos de veculos inteligentes esto incorporando
tecnologias de desenvolvimento de robs autnomos, estudos da cinemtica (Dudek G.
and Jenkin M., 2000), comunicao, controle e inteligncia para execuo de tarefas.

36

A concepo de um veculo com graus de autonomia uma idia que vem sendo
explorada e estudada por todo o mundo.

A automao veicular, mesmo em seus

diferentes nveis, proporciona aos motoristas e ocupantes maior segurana em condies


adversas. Auxilia na conduo do veculo executando tarefas de forma automatizadas,
como por exemplo: manter o veculo na pista dentro da faixa correta, manter a distncia
dos veculos a sua frente, controlar a velocidade do veculo conforme o transito, achar o
caminho mais curto e seguro para se chegar ao destino e at estacionar o veculo
(Kelber C. R, et al., 2005).
Em 1997, o I.N.R.IA Institut National de Recherche en Informatique et en
Automatique apresentou ao pblico um veculo de fabricao em srie, chamado de
CyCab, com diversos modos de movimentao automatizados (Baille, Grard et all.,
1999). O CyCab j est sendo produzido pela empresa Robosoft, que j apresenta
inclusive outros modelos, com o RoBUCAB, o RobuRIDE e o RoBUCAR (Robosoft,
2003).
Em 2003, a Toyota lanou, no Japo, o Prius, um modelo de veculo com
capacidade de efetuar manobras de estacionamento autonomamente (Self-parking,
2003).
Em outubro de 2005, quatro veculos conseguiram completar o percurso da
competio promovida pelo DARPA Defense Advanced Research Projects Agency, o
DARPA Grad Chalenge Race.

132 milhas (aproximadamente 212 km) foram

percorridos pelo deserto de Nevada, nos Estados Unidos da Amrica, de maneira


completamente autnoma (CNN (a), 2005).

2.1.2. Tecnologias aplicadas a Veculos de Passeio


Historicamente, os conceitos tecnolgicos no universo automobilstico vm
evoluindo ao longo dos ltimos 100 anos.

Em 1894 Vacheron lana o primeiro

automvel com um volante, em 1895 Panhard fabrica o primeiro carro fechado, o


primeiro motor 4 cilindros em linha lanado em 1898, 1899 surge o cambio em H e
o acelerador no p. Em 1917 o primeiro veculo equipado com um velocmetro
produzido, o primeiro automvel totalmente fechado e fabricado em ao lanado em
1923.

37

Os conceitos tm evoludo trazendo consigo novas tecnologias que


revolucionam o mundo at os dias de hoje. Estudiosos afirmam que os carros no sero
mais somente um meio de transporte, mas uma extenso da casa e do escritrio. Foi
estipulado um prazo de cinco anos para que este conceito entre no mercado mundial.
A cada poca novas necessidades surgem e com elas novos conceitos
tecnolgicos.

Nas dcadas de 50 e 60, os fabricantes buscavam velocidade, com

motores cada vez mais potentes. Nos anos 70, foi a vez de reduzir o consumo de
combustvel, carros velozes, potentes e econmicos.
Em 1980 e 90, segurana foi colocada como meta em todo o mundo, trazendo
novos aprimoramentos como controles de freios anti-bloqueio, ABS, o drive-by-wire, e
o Air Bags (Kelber, 2003a).
Em 2000 os conceitos de conforto e acessibilidade a informao ganham
importncia. Utilizar a internet, digitar emails, obter ajuda de um computador de bordo
para chegar ao destino desejado so exemplos tpicos.
Com todos os avanos tecnolgicos para auxlio na dirigibilidade do veculo, o
crescimento de eletroeletrnicos embarcados tem sido exponencial com o surgimento de
conceitos como: break-by-wire, drive-by-wire e steer-by-wire (Kelber C. R, et al.,
2005).
O conceito drive-by-wire originrio da aviao onde foi desenvolvido o
conceito fly-by-wire utilizado pela primeira vez no avio modelo F-16 com a finalidade
de automatizar funes de controle de estabilidade o que segundo os engenheiros que
participaram deste projeto, seria humanamente impossvel pilotar esta aeronave por
causa de sua instabilidade. Nos veculos terrestres este conceito de controle por sinais
eletrnicos foi desenvolvido para auxiliar os pilotos dos carros da F-1 pois permite
administrar os dispositivos de controle (acelerador, freio, trao e direo) do veculo.
Juntamente com os sistemas de auxiliar ao motorista priorizando a segurana,
desempenho e reduo dos ndices de danos ambientais surgem tambm conceitos
denominados de Sistemas de Apoio ao Motorista.
Estes sistemas baseiam-se em informaes internas e externas por meio de
sensores e transdutores verificando o estado atual do veculo e intervindo quando e se
for necessrio. Alm deste, um sistema sofisticado de comunicao complementa a
interao da estrutura de controle como um todo (Kelber C. R, et al., 2005).
38

2.1.3. Conceitos em Tecnologias de Rede Aplicados a Veculos


Atualmente, a grande maioria dos veculos fabricados em todo o mundo j est
equipado com uma rede de comunicao entre mdulos diferentes, espalhados por todo
o veculo.

A necessidade de se projetar uma rede de comunicao entre os mdulos

eletroeletrnicos, delimitava algumas restries fsicas para a utilizao dos protocolos


existentes. Problemas com temperaturas, vibraes e interferncias prejudicavam
consideravelmente a utilizao de protocolos existentes, necessitando-se de um estudo
para o desenvolvimento de um protocolo que atendesse os parmetros de velocidade,
segurana e confiabilidade nas trocas de informao.
Vendo esta necessidade Robert Bosch desenvolveu um protocolo chamado CAN
Controller Area Network, de comunicao serial para a aplicao em tempo real
baseada na norma ISO 11898 e ISSO 11519-2, para a utilizao em redes de
comunicao serial em veculos, tendo recentemente evoludo para comunicar sensores
discretos. O CAN consiste basicamente de um padro de hardware com diferentes tipos
de frames, regras de transmisso de dados e regras para detectar e corrigir erros, sua
especificao define a camada fsica e o enlace do modelo de referncia OSI/ISSO.
A figura 2.1 mostra um esquemtico de um veculo inteligente tendo distribudos
os mdulos de comunicao, sensoriamento interno e externo, interface entre homem e
mquina e finalmente os sistemas mecatrnicos embarcados.

Figura 2.1 Esquemtico de um veculo inteligente. (Osrio F. S., 2004)


Todos estes avanos contriburam de forma significante para o aumento da segurana
nos veculos devido os novos padres e conceitos de segurana destes ltimos anos.

39

2.1.4. Sistemas Inteligentes Veiculares


Um ponto importante a introduco de sistemas inteligentes na industria
automobilistica. Neste caso, na literatura o termo Sistema Inteligente mais aplicado
na introduo de novas tecnologias (eletrnica embarcada, sistema microprocessados,
etc.) para viabilizar tcnicas que aumentem a segurana, conforto e aspectos ambientais.
Nas ltimas dcadas os veculos de passeio tm deixado de ser mquinas
essencialmente mecnicas e incorporado cada vez mais sistemas eletrnicos de controle
e acionamentos controlveis usando informaes desse sistema. A princpio foi uma
simples substituio do sistema de ignio com platinado pela Ignio Eletrnica. O
desenvolvimento dos sistemas de ignio eletrnica vem simultneos com os Sistemas
de Injeo Eletrnica.
Atualmente, veculos apresentados como carro conceito, dispem de sistemas
completos totalmente drive-by-wire. Exemplos destes so o Pivo, da Nissan (CNN (b),
2005) e o PM da Toyota (TOYOTA MOTOR, 2006).
Com o surgimento e a popularizao cada vez maior dos conceitos de sistemas
eletrnicos embarcados aplicados aos veculos de passeio, o mercado mundial responde
cada vez mais de forma positiva, dando suporte para o desenvolvimento de novas
tcnicas e a realizao de projetos e conceitos.
Com o crescimento das pesquisas na rea de aplicao e projetos de sistemas
surgem novas necessidades tecnolgicas para aumentar a segurana e o conforto do
motorista e ocupantes. Os projetos de sistemas inteligentes embarcados nos veculos
vem evoluindo contribuindo para o desenvolvimento de vrios ramos, tecnolgico,
acadmicos e de mercado .

Segundo (Kelber C. R, et all., 2005), um dos motivos

principais do surgimento de carros inteligentes propiciar ao motorista maior segurana


e conforto em condies adversas de guiagem.
Os conceitos mais aplicados nos sistemas inteligentes embarcados nos veculos
de passeio so:


ABS Anti-lock-Breaking-System;

BAS Breaking-Assistant;

ESP Electronic Stability Program;

40

TCS Traction Control System;

X-by-Wire;

Cruise Control;

Lane keeping Assistance;

Parking Assistance.

Estes sistemas foram desenvolvidos com o objetivo de proporcionar ao motorista


maior segurana em condies crticas ou auxiliado na execuo de tarefas relacionadas
a conduo do veculo. Cada dia os veculos inteligentes somam as novas tecnologias
formando assim uma plataforma embarcada mais complexa. Para gerenciar todos estes
sistemas esto sendo aplicados conceitos estruturais o que tem dado aos projetistas
destes sistemas novas direes para projetar sistemas modulares responsveis por
controlar aes do veculo.
A figura 2.2, apresenta uma pirmide que exemplifica os diferentes nveis de
controle e atribuies de acordo com as necessidades e complexidade das tarefas a
serem executadas em uma abordagem hierrquica.

Figura 2.2 Estrutura da Arquitetura em Nveis de controle (Kelber C. R, et al., 2005)


Acompanhando esta tendncia, esse trabalho possui uma arquitetura modular
onde cada um dos mdulos responsvel por aes sendo os mdulos subdivididos em
blocos formando uma arquitetura distribuda. Estas tecnologias tem apresentado bons
resultados, no projeto Autonomies Fahren, (Becker, 1998), (Simon, 1999), (Snitz,
1999), (Simon, 2000) e (Snitz, 2001).

41

2.2.

SISTEMAS DE AUTOMAO VEICULAR


Nesta seo so abordados os principais conceitos em sistemas de automao

veicular.

So apresentados o desenvolvimento e estado do sistemas de apoio ao

motorista, bem como, o desenvolvimento da tecnologia em sistemas veiculares


robticos. Ainda nesta seo descrita uma anlise comparativa em os principais
conceitos dos diferentes sistemas em automao veicular.
Nos ltimos anos as pesquisas focadas na rea de veculos inteligentes tm
gerado conceitos que esto revolucionando o mundo no que se diz respeito a transporte
pessoal. As linhas de pesquisas so as mais diversas possveis, mas em comum, focam
pontos como segurana, conforto, cuidados ambiental e adaptabilidade para diferentes
circunstancias (por exemplo, solues veiculares voltadas para deficientes). Por outro
lado, os novos desenvolvimentos buscam cada vez mais substituir as solues
mecnicas por solues eletromecnicas (Kelber, 2003a).
Nesta seo sero estudados os diferentes sistemas de automao veicular. Do
ponto de vista dos objetivos e das tcnicas aplicadas o sistemas de automao veicular
podem ser divididos em: (a) Sistemas de Apoio ao Motorista (vide seo 2.1.5) e (b)
Sistemas Veiculares Robticos (vide seo 2.1.6). No primeiro caso, as tcnicas tem
como objetivo auxiliar o motorista na execuo de tarefas determinadas melhorando o
desempenho do usurio e a segurana. No segundo caso, trata-se de resolver o
problema conhecido na literatura como Hands-free Vehicle Driving (Giove D., 2004).
No caso do sistema envolver todos os controles parciais do veiculo o termo usado na
literatura Automated Highway System (AHS) (Han_Shue, et al., 1999).

2.2.1. Sistemas de Apoio ao Motorista


Os sistemas de apoio ao motorista surgiram na dcada de 80 com o intuito de
proporcionar maior conforto e segurana ao motorista e os passageiros.

So

classificados em dois grandes grupos: sistemas passivos e sistemas ativos (Kelber C. R,


et al., 2005).
No sistema passivo a eletrnica identifica os sinais das variveis que indicam um
cenrio e alerta o motorista, que toma as devidas providncias com a finalidade de
contornar a situao.

42

J no caso do sistema ativo ele funciona como um co-piloto eletrnico e em


casos de situaes perigosas ele atua diretamente sobre as variveis para efetuar a
correo necessria para auxiliar o piloto a contornar o problema. O princpio deste
sistema nunca tira do motorista o controle do veculo, ou seja, mantm a
responsabilidade do condutor atuando como auxiliar em situaes de perigo.
Atualmente, no mercado possvel encontrar sistemas de apoio ao motorista
dentro da arquitetura passiva. Os principais so: auxlio a estacionamento em vaga
paralela, identificador de obstculos em pontos cegos do carro, aviso de abandono de
pista, sistema de auxlio na navegao e sistema de comunicao inter-veicular.
O auxilio de estacionamento em vaga paralela tem como princpio fundamental a
utilizao de uma cmera de vdeo instalada na traseira do veculo a qual gera imagens
num monitor instalado no painel do veculo.

O motorista pode ento visualizar estas

imagens e por meio as superposio de imagens pode manobrar o veculo at o ponto


ideal para estaciona-lo na vaga.
Na figura 2.3 possvel visualizar dois destes sistemas instalados em veculos
japoneses e europeus.

Figura 2.3 Sistema de auxlio para estacionamento. (Osrio F. S. e Heinen, F.; Fortes,
L., 2000)
A identificao de obstculos nos pontos cegos ao motorista tambm baseiam-se
nas imagens geradas por cmeras ou por scanners a sistemas laser instalados na lateral
do veculo.

Este tipo de sistema auxilia os motoristas de grandes caminhes a

executarem manobras de estacionamento (ou mesmo durante a conduo do veculo)


quanto a aproximao de outros veculos, pedestres ou obstculos.
mostra a aplicao em carros de passeio leves e veculos de grande porte.

43

Na figura 2.4

Figura 2.4 Sistema de identificao dos pontos cegos do veculo. (Osrio F. S. e


Heinen, F.; Fortes, L., 2000)
Os sistemas de identificao de obstculos como visto podem ser aplicados em
veculos de pequeno e grande porte. Um sistema muito til para a segurana dos
motoristas e passageiros em condies de pouca visibilidade ou de cochilo do motorista
o Sistema de Aviso do Abandono de Pista. Fontes de estudo das causas dos acidentes
apresentam um elevado nmero de acidentes causados por motivos relacionados a perda
de controle da direo do veculo pelo abandono da pista (Kelber, 2003a).
Outro sistema muito utilizado atualmente com a popularizao cada vez maior
dos GPS Global Positioning System, so os de navegao.

Baseados em mapas

digitais das regies estes sistemas funcionam como um guia instantneo para o
motorista auxiliando na definio das rotas a serem percorridas para alcanar seu
destino. Atualmente, muitos destes sistemas esto ligados a sistemas mais complexos,
o que possibilita ao motorista obter informaes das condies de trnsito, se o
combustvel que est no tanque suficiente para chegar at o destino, e oferece rotas
alternativas mais rpidas e seguras (Kelber, 2003a).
Os sistemas de comunicao inter-veicular surgiram a partir da evoluo dos
sistemas de comunicao e informao.

Estes foram desenvolvidos com o intuito de

informar o motorista a ocorrncia de acidentes, a aproximao do veculo de outro,


agindo no controle da velocidade e impedindo colises na traseira.

Tambm, quando

integrado com o sistema de navegao, permite que exista uma interao entre os
veculos prximos, tornando possvel um trafego de forma cooperativa e muito mais
seguro, minimizando os riscos de acidentes e engarrafamentos. Na Alemanha este
sistema tem sido utilizado nas rodovias de grande porte (Han-Shue, et al., 1999).

44

Nos sistemas ativos de apoio ao motorista o funcionamento pode ser chamado de


co-piloto auxiliando o motorista durante condies extremas.

Tais sistemas no

podem evitar a ocorrncia de um acidente por si s, mas podem reduzir os riscos dos
mesmos ocorrerem pois atuam de forma preventiva a situaes que podem oferecer
risco. Outra aplicao dos sistemas ativos a execuo de tarefas repetitivas como o
estacionamento em vagas paralelas.
O sistema de frenagem de emergncia baseia-se em informaes de sensores de
proximidade, radares para atuar o sistema de frenagem milisegundos antes de uma
coliso eminente, podendo minimizar a gravidade da coliso ou at mesmo evit-la.
Imediatamente enviado para o airbag um sinal para aciona-lo antes da coliso. O
principal desafio desse sistema identificar a eminncia de uma possvel coliso.
Os sistemas de estacionamento automtico tem sido muito aplicados, pois esta
uma tarefa que para muitos motoristas de grande dificuldade. Neste caso, sensores
de proximidade so instalados no veculo que identifica a vaga e executa as manobras
necessrias para estacionar o veculo na vaga, sem colidir com os outros automveis
estacionados, deixando o veculo prximo ao meio fio.
Para a realizao de tarefas autnomamente por veculo de forma ativa ou
passiva existe um sistema de processamento e controle interligando aos transdutores.
Estes sistemas possuem diferentes nveis de inteligncia embarcada at porque o que se
deseja obter um veculo de execute o controle de navegao de forma autnoma.
Desta forma necessrio chegar a um sistema de automao veicular complexo, com
diferentes nveis hierrquicos.
Em (Han-Shue, et al, 1999) apresentada uma proposta de automao veicular
baseada em pontos magnticos instalados nas rodovias.

Magnetrmetros foram

instalados na parte inferior do pra-choque dianteiro e traseiro do veculo, veja figura


2.5, os sinais dos transdutores so enviados ao controlador que realiza a ao na direo,
freio e acelerador.

45

Figura 2.5 Sistema de Automao de pilotagem do veculo baseados em pontos


magnticos nas rodovias. (Han-Shue, et al, 1999)
Os resultados apresentados mostram que o sistema robusto e seguro, mas
possui um alto custo de implementao dos pontos magnticos nos milhares de
quilmetros das rodovias.
A proposta apresentada por (Shimazaki, 2004) consiste em um assistente para
estacionamento. classificado como um sistema passivo onde seu funcionamento est
baseado em ajudar o motorista na tarefa de estacionamento por meio de linhas sobre
postas nas imagens obtidas por uma cmera instalada na traseira do veculo. Sistema
similar ao mostrado na figura 2.3.
A proposta do sistema de apoio ao motorista se mostra segura e de baixo custo
mas sua robustez comprometida quando a iluminao do ambiente baixa e tambm
depende da habilidade do motorista em executar as manobras.
O sistema proposto por (Wada M., 2003) faz uma comparao entre os sistemas
de assistncia ao motorista e os sistemas automatizados de estacionamento. O sistema
de estacionamento proposto nesse trabalho possui alto nvel de sofisticao pois capaz
de auxiliar o motorista na tarefa do estacionamento em diferentes posies do veculo,
vaga paralela direita, vaga paralela a esquerda, garagem.
Na proposta de Wada, destaca-se a interface do sistema com o motorista.
sistema se mostra robusto, seguro, mas complexo.

Necessita de capacidade de

processamento alta bem como armazenamento de informaes.

So aplicados

paralelamente tcnicas de posicionamento global por meio de GPS, encoders para


identificar o seu deslocamento, e transdutores para captarem o ngulo das rodas.

46

2.2.2. Sistemas Veiculares Robticos


A robtica uma rea que tem se desenvolvido rapidamente nos ltimos anos.
Inicialmente os autmatos tidos como verdadeiras obras de arte eram responsveis por
executarem tarefas repetitivas. A gerao seguinte de sistemas robotizados foram os
manipuladores robticos de base fixa que so largamente utilizados nas indstrias (e.g.
indstria automotiva).
Recentemente surgiram os robs mveis destacando-se por sua mobilidade
guiada, semi-autnoma ou totalmente autnoma.

A tecnologia dos robs mveis

tornou-se grande foco de pesquisa sendo difundida em diferentes reas e em diversas


aplicaes (e.g. explorao de ambiente hostil). Pesquisas tambm tem se intensificado
na aplicao dos conceitos da robtica mvel em veculos de passeio.
Dentre os projetos que tem se destacado esto os participantes do Grand DARPA
Challenge 2004 Autonomous Ground Vehicles, este evento vem ocorrendo
anualmente e tem como objetivo vencer uma distncia de 300 quilmetros de forma
completamente autnoma, a equipe vencedora recebe um prmio de 1 milho de
dlares.
O setor de carga, descarga e transporte tem se destacado nos investimentos de
apoio ao motorista.

Projetos de carregadeiras, empilhadeiras autnomas foram

desenvolvidos pelas empresas FOX GmbH e Goetting KG (ver figura 2.6).

Figura 2.6 Veculos de carga e descarda robotizados (Goetting, et al, 2001)


Outro projeto na rea de sistemas veiculares robotizados foi realizado na
Alemanha pela Volkswagen e consistiu no projeto de um rob (ver figura 2.7) capaz de
executar a tarefa de dirigir um veculo por meio de um complexo sistema de
sensoriamento do estado do veculo bem como analise de imagens capturadas por um
sistema de viso computacional dedicado.

47

Figura 2.7 Projeto Autonomes Fahren (Volkswagen) Rob motorista (Osrio F. S.,
2004)
Os sistemas veculares robotizados tem mostrado sua eficincia no que tange o
aumento de segurana e conforto mas tem gerado o conflito de poder ir a qualquer lugar
a qualquer hora de forma livre. A evoluo dos sistemas veiculares robticos vem
trazendo um aumento significativo das tecnologias embarcadas nos veculos. O nmero
de componentes eletrnicos vem aumentando expressivamente bem como o nmero de
microcontroladores e sensores (Osrio F. S., 2004).

2.2.3. Analise dos Diferentes Sistemas de Automao Veicular


A tabela 2.1 mostra uma comparao entre os sistemas de automao veicular
estudados neste trabalho.

Para analis-los foram compar-los aspectos de

implementao, caractersticas do controle, flexibilidade do sistema implementado,


arquitetura entre outros.
Em (Good et al, 1988), foi proposto um retrofit num veculo de passeio com a
finalidade de que o mesmo efetuasse manobras de estacionamento de forma automtica.
O sistema composto por um circuito hidrulico que comandado por um controlador.
Esse sistema atua sobre o ngulo da direo do veculo e classificado como assistente
passivo pois auxilia na execuo da tarefa de estacionamento quando acionado.
A proposta de (Steven E. S. Charles A., 1991) aplica conceitos de AVC
Automatic Vehicle Control na implementao de PATH Program on Advanced
Technology for Highway. O princpio bsico do sistema consiste no controle da direo
e velocidade do veculo em sistemas rodovirios automatizados.

48

Tabela 1 Principais Sistemas de Automao Vecular Implementados

Caractersticas

Steven E.
Good et S. Charles Han-Shue,
al, 1988 (*) A. (1991) et all, 1999

Shimazaki
et al., 2004 Tanaka et
al, 2006 (*)
(*)

sim

Pontos
magnticos
instalados na
rodovia

no

No

Controle
eletrnico

no

sim

no

no

No

No

no

sim

sim

no

No

Controle
eletrnico

sim

Controla a
velocidade
pela leitura
dos pontos
magnticos
da rodovia

no

No

Controle
eletrnico

Sim

Display
mostra a
imagem das
cmeras e o
estado do
veculo

Controle da Direo

Controle
hidrulico

Controle da
Embreagem
Controle do Freio

Controle do Acelerador

Wada M,
2003

no

IHM

no

no

Display de
dados

Display para
ngulo da
direo;
Freio;
Acelerador.

Arquitetura Modular

no

sim

no

sim

Sim

Sim

Motorizao

Motor a
combusto
interna

Motor a
combusto
interna

Motor a
combusto
interna

Adaptvel a
qualquer tipo

Motor a
combusto
interna

Motor de
combusto
interna

Cmbio automtico

no

no

No
informado

Adaptvel a
qualquer tipo

Adaptvel a
qualquer tipo

Sim

Conceitos drive-bywire

sim

no

no

sim

No

Sim

Microcontrola
dor

Computador
embarcado
no veculo

Computador
embarcado
no portamalas do
veculo

Computador
embarcado
no portamalas do
veculo

Computador
embarcado
no veculo

Computador
ECU

ngulo das
rodas, giro
das rodas

Presena de
obstculos,
captura de
imagens,
ngulo da
direo

Controlador

Sensoriamento

Ultra-som

ngulo das
rodas; giro
das rodas

Magnetrmet
ros

ngulo das
rodas; giro
das rodas;
GPS

Unidade de controle

no

No

no

no

No

Sim

Flexibilidade

Somente do
software

Somente
software

Somente do
software

Somente do
software

Somente de
software

Somente de
software

Tipo de Sistema

Passivo

Ativo

Ativo

Passivo

Passivo

Passivo

(*) Patentes registradas no banco de patentes dos Estados Unidos da Amrica.

J em (Han-Shue, et all, 1999), a proposta apresentada um sistema ativo que


combina os conceitos de AHS Automated Highway System, com a utilizao de pontos
magnticos distribudos na pista para guiar o veculo.
49

O sistema controla a direo do veculo bem como sua velocidade durante o


trajeto.
Wada M, 2003, apresenta um sistema de assistente para estacionamento que
combina sinais de posicionamento global e hodometria para a definio da posio do
veculo. O sistema proposto passivo, o prprio condutor do veculo executa as tarefas
com a ajuda do sistema que indica se o ngulo das rodas est correto e a distncia do
veculo em relao aos obstculos.
Em (Tanaka et al., 2006) o sistema proposto utiliza tcnicas avanadas de
assistncia para o estacionamento de veculos.

A tecnologia aplicada consiste na

sobreposio das imagens num display para o clculo das variveis importantes para o
estacionamento do veculo em vagas paralelas ou garagens.

2.3.

INSTRUMENTAO VIRTUAL
Nessa seo so apresentados os principais conceitos em instrumentao virtual

e suas particularidades.
A instrumentao virtual pode ser entendida como sendo uma soluo de
medio e automao baseada em computador pessoal, sendo personalizada pelo
usurio (Regazzi R. D., et al., 2005).
O Labview Laboratory Virtual Instruments Engineering Workbench (Regazzi
R. D., et al., 2005) o ambiente desenvolvido pela National Instruments que utiliza a
linguagem G, projetada para o desenvolvimento de aplicativos como tantas outras
linguagens, por exemplo: C, Basic e Delphi.
Embora todas estas sejam direcionadas a objetos (com compiladores que
simplificam o processo de programao atravs de interfaces amigveis com comandos
e funes pr-definidas) existe uma diferena importante entre elas e a linguagem G.
Ela foi desenvolvida pela National Instruments e possu o padro G (Grfico). Sua
principal caracterstica sua forma de programao que altamente produtiva na
construo de sistemas voltados para aquisio de dados, instrumentao, controle e
outras aplicaes.

50

A filosofia dos sistemas de programao, normalmente, fundamentada no uso


de linguagem texto com abreviaes de palavras da lngua inglesa para criar linhas de
comandos que, quando processados, geram cdigos de programao interpretados ou
compilados.
A linguagem G por sua vez, permite que o programador utilize uma interface
grfica para a criao dos cdigos de programao em blocos. Isto facilita o processo de
aprendizagem permitindo que pessoas mesmo com pouco treinamento sejam capazes de
realizar tarefas que em outras linguagens demandariam maior esforo e muito mais
tempo (National I., 2007).
Os recursos de depurao do Labview auxiliam o programador a identificar as
causas de diversos tipos de problemas na elaborao da programao. Isto permite ao
projetista utilizar pontos de parada e animao na execuo para visualizar a passagem
dos dados atravs dos blocos. O anterior possibilita verificar os valores das variveis
pontualmente, facilitando o aprendizado e a visualizao de possveis problemas.
Os recursos de depurao do Labview auxiliam o programador a identificar as
causas dos erros na compilao. Assim como o Delphi e o Visual Basic so sistemas de
programao e desenvolvimento de aplicaes de uso geral, o Labview possui diversas
bibliotecas de funes e sub-rotinas para a execuo de tarefas, principalmente
relacionadas rea de simulao, automao e instrumentao.
Os programas em G so chamados de VI Virtual Instruments, so formados
por uma interface interativa com o usurio e um diagrama de fluxo de dados onde se
encontra o cdigo fonte.
De forma mais especfica, a programao grfica estruturada da seguinte
forma: O Painel Frontal permite que o usurio digite os valores de entrada e observe os
valores de sada processados pelos blocos.

Sendo anlogo a um instrumento de

medio, as entradas so chamadas de controle e as sadas de indicadores. O projetista


pode utilizar uma gama de indicadores e controladores sendo estes referenciados por
uma varivel que auxilia na localizao durante o processo de programao (veja figura
2.8).

51

Figura 2.8 Painel Frontal do Labview


O diagrama de blocos o local onde fica o cdigo fonte da aplicao e cada
painel frontal acompanhado de um diagrama de blocos. O projetista pode construir
novos blocos utilizando os recursos do Labview. Os componentes do diagrama de
blocos representam os ns onde as informaes transitam seguindo a lgica do
projetista. Neste caso, pode ser utilizada estruturas como: ciclos, laos de interaes
looping, for loop, while loop, case, obedecendo a um fluxo de dados como num
fluxograma (veja figura 2.9).

Figura 2.9 Diagrama de Blocos do Labview


Os recursos de depurao do Labview auxiliam o programador a identificar as
causas de diversos tipos de problemas por meio de uma janela que descreve qual o erro
e onde se localiza. Outra funo til durante o projeto das aplicaes no ambiente do
Labview o Help Context ajuda contextualizada que mostra ao programador quais
so as entradas e sadas de cada uma das ferramentas.

52

2.4.

HADWARE RECONFIGURVEL E SEUS CONCEITOS


Nesta seo so abordados os principais conceitos relacionados a computao

reconfigurvel como: o funcionamento das FPGAs, especificaes do kit de


desenvolvimento utilizado neste trabalho, conceitos de sistemas embarcados e a
ferramenta de desenvolvimento para embarcar microprocessadores e perifricos nas
FPGAs das famlias superiores a Spartan-3.
Uma das motivaes deste trabalho a avaliao do uso de dispositivos
reconfigurveis com microprocessadores embarcados na rea de automao veicular.
Dada a evoluo destes sistemas possibilidade de se implementar algoritmos
diretamente em hardware, embarcar microprocessadores ou implementar sistemas
hbridos os quais podem ser compostos de perifricos desenvolvidos diretamente em
hardware e ligados ao barramento interno.
A

flexibilidade

encontrada

nos

dispositivos

baseados

em

hardware

reconfigurvel fornece uma alternativa para a implementao de variadas tcnicas de


controle para os veculos. Desde a introduo do primeiro microprocessador comercial,
o Intel 4004, no final do ano 1971, os sistemas digitais tm evoludo de forma
considervel.

Este pequeno microprocessador, introduzido pela Intel Corporation,

integrava 2300 transistores em uma nica pastilha de silcio cujo custo inicial oscilava
por volta de duzentos dlares americanos.
A complexidade dos microprocessadores, medida segundo o nmero de
transistores dentro do chip, dobrada a cada 18 meses desde a apario do 4004
(Moore, 1997). Com a evoluo da tecnologia os circuitos integrados, atualmente
integram 20 milhes de transistores por centmetro cbico (cm), podendo atingir 100
milhes at 2012 (Brown e Vranesic, 2000). Uma classificao dos circuitos integrados
que permitem a implementao de uma lgica digital mostrada na figura 2.10 abaixo.

Figura 2.10 Circuitos integrados Modificado (Brown e Vranesic, 2000)


53

Circuitos integrados tradicionais, TTL e CMOS, executam lgicas padro


realizando operaes pr-definidas pelo fabricante. Isso faz o usurio, dependendo da
aplicao, conectar diversos tipos de circuitos para executar uma lgica especfica
ocasionando perda de eficincia, aumento de rea e alto consumo de energia.
J os circuitos integrados como os PLD Programmable Logic Device e FPGA
possuem operaes lgicas internas definidas pelo usurio, enquanto os circuitos como:
ASIC Application Specific Integrated Circuits e VLSI Very Large Scale Integration
permitem ao usurio projetar a lgica sendo essa implementada pelo fabricante
especializado. Este o caso dos microprocessadores e das memrias RAM Random
Access Memory utilizadas nos computadores pessoais, o custo elevado e a
funcionalidade fixa, no sendo possvel a realizao de atualizaes ou modificaes
na lgica a ser executada.

2.4.1. Aspectos da Reconfigurao


As arquiteturas reconfigurveis podem ser definidas como aquelas onde se
podem aplicar os conceitos de reconfigurabilidade, citados na seo 2.4. So
arquiteturas onde os componentes lgicos bsicos que o constituem podem ser
facilmente reconfigurados pela interligao de blocos lgicos.

Estes componentes

lgicos bsicos, geralmente so as unidades de processamento, unidades funcionais de


processamento, armazenamento, comunicao, entradas ou sadas de dados.
Uma arquitetura reconfigurvel possui muito das caractersticas dos sistemas
computacionais tradicionais, ver seo 2.4.1, mas a organizao e implementao
ocorrem de maneira muito diferente.
Segundo (Yabarrena J. M. S., 2006), ao invs do processamento de uma funo
ocorrer por meio de um conjunto de instrues executadas seqencialmente ao longo do
tempo, como em um processador, as arquiteturas reconfigurveis geralmente processam
a funo por meio de unidades configuradas em blocos lgicos bsicos, como ocorre nas
FPGAs, fato este que caracteriza uma computao paralela, envolvendo diferentes
unidades funcionais com as quais obtem-se resultados intermedirios.
O espectro atual dos sistemas reconfigurveis muito amplo e diversificado,
com destaque para os seguintes tipos: co-processadores reconfigurveis, processadores
reconfigurveis, computadores reconfigurveis, sistemas embarcados reconfigurveis e
54

sistemas

hbridos,

compostos

de mdulos reconfigurveis

e mdulos

no-

reconfigurveis. Uma anlise da utilizao e da evoluo desses sistemas nos indica


uma tendncia de crescimento na amplitude e na complexidade desse espectro de
sistemas computacionais reconfigurveis e de arquiteturas reconfigurveis.
Dentro da rea de arquiteturas reconfigurveis existem alguns possveis
problemas importantes que pode-se indicar e tentar analisar futuramente. Estes
problemas esto relacionados principalmente com gargalos de desempenho, modos e
mtodos de programao das aplicaes, modos de reconfigurao, complexidade e
tempo de reconfigurao, desempenho das arquiteturas, flexibilidade das arquiteturas,
adequao ou inadequao das arquiteturas aos problemas e principalmente com os
modos eficientes de implementao dos conceitos de arquiteturas e computao
reconfigurveis.
Os sistemas reconfigurveis so plataformas que permitem que o projetista
realize modificaes na aplicao.

Desta forma, o sistema reconfigurvel passa a

trabalhar com uma arquitetura projetada exclusivamente para esta aplicao, o que faz
com que a eficincia seja maior do que as encontradas em sistemas de uso geral. Isto
ocorre porque o Hardware projetado para executar os algoritmos necessrios para
aquela aplicao especificamente.
A tecnologia de computao reconfigurvel dada por meio das especificaes:


granularidade : fina, mdia e alta ou grossa;

topologia dos blocos construtivos bsicos reconfigurveis: arranjo


unidimencional, arranjo bi-dimensional, pipeline, crossbar;

programabilidade: nica, mltipla;

reconfigurao: esttica, dinmica, parcial, total, local, remota, normal,


rpida;

aspectos de implementao: blocos de interligao reconfigurveis, tipo


de rota, topologia interligao e roteabilidade;

modelo de computao: mono-processador, multi-processador, SIMD,


MIMD, pipeline, VLIW;

modelo de implementao de soluo: reconfigurvel, mista, fixa,


programvel;
55

propsito: geral ou especfico.

Devemos nos lembrar que nas arquiteturas dos sistemas computacionais


reconfigurveis a maioria dos conceitos e nveis de abstrao arquiteturais tradicionais
(no-reconfigurveis)

como:

algoritmos,

linguagens,

compiladores,

sistemas

operacionais, arquiteturas, micro arquiteturas podem continuar existindo.


Deste modo, os conceitos e conhecimentos de arquitetura de computadores
tradicionais tambm so muito importantes. Entre os diversos conceitos comuns aos
sistemas computacionais tradicionais e os reconfigurveis, onde pode-se destacar os
seguintes tipos: paralelismo no nvel de bits; paralelismo no nvel de instrues ILP
Instruction Level Parallelism como o pipeline, paralelismo no nvel de processadores
PLP Processor Level Parallelism, SIMD Single Instruction Stream Multiple Data
Stream muito utilizado nos laos de repetio e MIMD Multiple Instruction Stream
Multiple Data Stream muito usado dentro da e/ou entre as aplicaes ou processos
(Patterson D. A.; Hennessy J. L., 2000).

2.4.2. Funcionamento da FPGA


Existem diversos dispositivos programveis em diferentes classes configurveis
com capacidade de funcionar com funes lgicas como: EPROM Erasable
Programmble Only Memory, PLA Programmable Logic Array, PAL Programmable
Array Logic. Devido as necessidades mercadolgicas de se projetar funes cada vez
mais complexas, surgiram os dispositivos conhecidos como CPLDs Complex
Programmable Logic Devices, e outros tipos de dispositivos programveis como o
MPGA Mask Programmable Gate Array, e o FPGA Field Programmable Gate
Array.
O FPGA um hardware programvel, ou seja, o projetista pode alterar a sua
configurao sem desmont-la do circuito ou retira-la do local instalado.

Sua

arquitetura estrutural formada por uma matriz de blocos lgicos reconfigurveis. Um


conjunto de Slaces quando configurado e interligado executa operaes computacionais.
Para tal o projetista realiza a descrio do hardware a ser configurado, logo aps esta
descrio compilada e obtem-se um arquivo de bits chamado de bitstream dos
dispositivos configurados.

56

Figura 2.11 Arquitetura interna de uma FPGA (Compton, K.; Hauck, 2002)
De modo geral as FPGAs possui uma arquitetura interna, como mostrado na figura
2.11, composta por uma matriz de blocos lgicos configurveis chamados CLB
(Configurable Logics Block) envoltos por uma rede de conexes programveis.
Na periferia do circuito esto os blocos de entrada e sada I/O Blocks, que
tambm so programveis. A arquitetura dos CLB pode variar de acordo com a famlia
e fabricante, mas geralmente so formadas de pontos de entrada ligadas a blocos de
funes puramente combinacionais chamados de LUT Look-up table, multiplexadores
e registradores que geralmente so flip-flops.
Uma FPGA pode ter seu comportamento redefinido de tal forma que sistemas
completamente diferentes podem ser implementados na mesma pastilha. As FPGAs
com granulidade mais fina permitem que o circuito seja definido no nvel de portas
lgicas, trabalhando-se em operaes com at um bit de largura.

Nas FPGA de

granulidade grossa no necessrio informar detalhes no nvel de portas lgicas, mas as


operaes em nvel de palavras que variam na medida em que varia a granularidade.
Atualmente, est rea apresenta-se como uma tecnologia extremamente
interessante em aplicaes industriais e acadmicas. Sendo inmeras as aplicaes de
computao reconfigurvel em telefones celulares, controladores de dispositivos
presentes em veculos terrestres, aeronaves, Hardware de alto desempenho para
diversas aplicaes, robtica mvel.
O arquivo contendo o bit stream o responsvel por determinar a funo que o
hardware ir desempenhar a partir do momento que o mesmo configurado ou
reconfigurado.

57

No momento da configurao, so especificadas, alm da funo que cada


elemento reconfigurvel ir desempenhar, as portas de entrada ou de sada de cada
elemento reconfigurvel da matriz. Desta forma, esta configurao das portas gera um
outro tipo de configurao que a configurao do roteamento dos dados.
Este roteamento de grande importncia para o desempenho e utilizao do
dispositivo reconfigurvel, pois quanto melhor o roteamento, melhor a utilizao da
rea do dispositivo reconfigurvel e melhor o desempenho conseguido na execuo das
funes configuradas no dispositivo.

essa configurao do roteamento que vai

influenciar o tempo que o dispositivo vai levar para responder a um sinal numa entrada
e gerar uma sada. nessa fase de roteamento, onde questes como: interferncia de
sinais, quando a integridade de um barramento pode ser comprometido devido
freqncia que o dispositivo esteja utilizando ser alta e interferir nos valores dos bits
que trafegam por esse caminho.
Uma FPGA possui uma arquitetura interna como mostrado na figura 2.4,
composta de uma matriz com milhares e em alguns casos milhes de blocos lgicos
configurveis CLB Configurable Logic Block, cercado por uma rede de interconexes
programveis distribuda por todo o chip formando uma rede de interconexes
configurveis. Existem os blocos de entrada e sada IOB Input Output Block, que
tambm so programveis, e que servem como interface do dispositivo.
A arquitetura com que a FPGA roteada podendo ser entendida como sendo a
maneira como os comutadores programveis e os segmentos de trilha so posicionados
de forma a permitir a interconexo dos blocos lgicos uns com os outros.

Figura 2.12 Arquitetura geral de roteamento de uma FPGA (Compton, K.; Hauck,
2002)
58

Esta pode ser descrita a partir de um modelo geral como mostra a figura 2.12.
Para melhor entendermos este modelo so necessrios alguns conceitos:
a)

pinos: so as entradas e sadas dos blocos lgicos, sendo importante

ressaltar que so para ligao interna do FPGA, no podendo ser confundidos com os
pinos externos do encapsulamento que so ligados aos blocos de I/O;
b)

conexo: so as ligaes eltricas entre um pino e um segmento de trilha,

onde as conexes so realizadas pelos blocos de conexo.


c)

blocos de conexo: so responsveis por ligar eletricamente um pino e

um segmento de trilha, estes dispositivos possuem tecnologia de programao.


d)

segmento de trilhas: So os fios entre os blocos de comutao.

e)

trilhas: So seqncias de segmentos direcionados, estendidos por todo o

canal de roteamento compostos por segmentos de tamanho varivel.


f)

blocos de comutao: So utilizados para a conexo de dois segmentos

de trilha e tambm possuem tecnologia de programao.


g)

canal de roteamento: a rea entre duas linhas e colunas de blocos

lgicos, sendo o canal formado por muitas trilhas paralelas.


Internamente, as FPGAs contm cpias do mesmo elemento lgico (LB) bsico
organizados matricialmente. Cada bloco lgico possui um nmero pequeno de entradas
e uma sada. Dentro dele so encontradas pequenas clulas formadas por um ou dois
flip-flops onde possvel armazenar valores de 0 ou 1. Os tipos de blocos lgicos
mais comumente encontrados so baseados em LUT LookUp Table, que por meio do
controle de um grupo de multiplexadores e portas permite o fluxo de dados desde as
clulas armazenamento at a sada do bloco lgico na funo lgica desejada (Compton,
K.; e Hauck, 2002).

59

(b)

(a)

Figura 2.13 Estrutura de um bloco lgico da FPGA Stratix II


(a) Bloco lgico Altera StratixII, (b) LUT de duas entradas e uma sada
O arranjo de clulas dentro da LUT utilizado para armazenar a tabela verdade
da funo lgica a ser programada. A figura 2.13a mostra a estrutura de um bloco lgico
da FPGA Stratix II da Altera, a figura 2.13b mostra um exemplo de LUT de duas
entradas e uma sada.
Para realizar operaes mais complexas, os elementos lgicos podem ser
conectados uns com os outros por meio de chaves de interconexes programveis. As
FPGAs de ltima gerao possuem canais de roteamento em planos diferentes, em
outras FPGAs utilizam-se trs planos (3D) o que permite um roteamento mais eficiente,
tempos de programao menores entre os elementos lgicos e diminuio do consumo
de potncia (Mingjie et al., 2006).
A capacidade das FPGAs definida pelo nmero de elementos lgicos ou LUTs.
No grfico da figura 2.14, vemos que a evoluo desta tecnologia, em termos de
capacidade e desempenho tem crescido de forma considervel nos ltimos 8 anos
(Taghavi et al., 2004).

(a)

(b)

Figura 2.14 Grfico da evoluo das FPGAs (Taghavi et al., 2004):


(a) Evoluo em nmero de Gates; (b) Aumento da freqncia do relgio.

60

O mercado de fabricao das FPGAs atualmente liderado por duas empresas:


Altera Corporation e Xilinx Corporation, embora outros fabricantes tambm atuem
neste mercado, sendo a contribuio destes muito pequena. O campo de atuao das
FPGA grande e tem crescido cada vez mais, encontrando-se aplicaes industriais,
automotivas, telecomunicaes, processamento de imagens, dispositivos mdicos, entre
outros produtos de consumo (Taghavi et al., 2004). Uma aplicao em particular das
FPGAs a possibilidade de reconfigurao dinmica, o que visa aplicaes
revolucionrias num futuro prximo em aplicaes gerais (Harteinsten, 2002).
No contexto deste trabalho, foram realizadas implementaes numa FPGA da
Xilinx da famlia Spartan-3, pois suas caractersticas de desempenho, capacidade e o seu
custo so adequadas e atendem os requisitos da aplicao em questo. As placas de
desenvolvimento baseadas na Spartan-3 (Digilent, 2006) possuem alm do custo baixo,
timos recursos para interface (PS2, porta serial).
Em termos gerais, as aplicaes no mercado dos semicondutores mantm uma
tendncia regular mudando o foco quando as novas tecnologias aparecem no mercado.
Esta avaliao foi introduzida por Tsugio Makimoto em 1989 e est apresentada na
figura 2.13 (Makimoto, 2002).

NORMALIZAO

hardwired

Programao estruturada
Uc
Memrias

TTL

1957

1967

Algoritmo fixo
Hardware fixo

LSI
MSI

1977

FPGAs

1987

ASICs

Algoritmo varivel
Hardware fixo

1997

2007

RECONFIGURABILIDADE
Algoritmo varivel
Hardware varivel

ESTABELECIMENTO

Figura 2.15 Forma de onda de Makimoto, Modificado (Makimoto, 2002)


Atualmente, as tendncias tecnolgicas preparam uma nova mudana.

Porm,

alguns estudos afirmam que no haver uma prxima transio e sim um


estabelecimento lento e prolongado que considera tecnologias avanadas na rea de
Sistemas Embarcados e Computao Reconfigurvel (M. Herz et al., 2002).

61

2.4.3. Especificaes Tcnicas da Placa de Desenvolvimento


A placa de desenvolvimento Spartan-3 (utilizada neste trabalho) fabricada pela
Xilinx em conjunto com a Digilent, fornece uma plataforma para o desenho e aplicao
de diversos propsitos em hardware. Dispositivo FPGA XC3S200 com 200.000 gates
em um encapsulamento BGA Ball Grid Array de 256 pinos, da famlia Spartan-3.
Suas principais caractersticas so citadas abaixo:


4.320 Elementos lgicos, 300 clulas lgicas equivalentes;

20 blocos de memria de 18Kb (216Kb);

20 multiplicadores em hardware 18x18 bits;

2 Mbit de memria flash (XCF02S);

1 Mbyte de memria SRAM Static Random Acesses Memory;

01 Porta DB9 de comunicao RS-232;

4 Digital Clock Managers que fornecem flexibilidade e controle;

01 porta PS/2 para controle e leitura do mouse ou teclado.

01 porta JTAG para configurao e compilao da FPGA;

08 chaves tipo slide-switches;

04 displays de 7 segmentos ;

08 Led individuais;

04 botes tipo bush-button;

03 portas de expanso com 40 pinos cada.

Na figura 2.16 apresentada um foto ilustrativa da placa de desenvolvimento


Spartan-3 utilizada neste trabalho.

62

PORTA DE
EXPANSO A

CABO JTAG

PORTA DE
EXPANSO B
Chip FPGA

PORTA
VGA
PORTA DE
EXPANSO C

ALIMENTAO
DA PLACA 5 Volts
PORTA
Serial DB9

LEDs 7
SEGMENT
PORTA

LEDs

BOTES

CHAVES

Figura 2.16 Spartan-3 Starter kit board (Digilent, 2002)


Na figura 2.17 apresentada um desenho esquemtico dos recursos da placa de
desenvolvimento Spartan-3, citados anteriormente na descrio dos recursos da placa de
desenvolvimento.

Figura 2.17 Diagrama em blocos Spartan-3 Starter kit board


Nesta figura possvel observar que todos os dispositivos esto ligados ao chip
XC3C200 que recebe e envia os sinais, fazendo o controle dos dispositivos que
estiverem ligados aos conectores de expanso A, B e C.

63

2.4.4. Processamento Embarcado


O processamento embarcado est presente nos mais variados produtos,
equipamentos e aplicaes. Desde brinquedos de criana, celulares, automveis e at em
satlites.
O mercado e os centros de pesquisas observando padres cada vez mais
rigorosos tm intensificado os trabalhos de pesquisa nas arquiteturas dos sistemas
projetados, os materiais e a estrutura de hardware e software.
Nem sempre o melhor projeto em termos de velocidade de processamento
baseado somente em uma estrutura do tipo data flow ou signal flow, conhecidos
tambm como data stream, ou seja, quando o hardware pr-definido com dados ou
sinais passando por uma estrutura de processamento sem a necessidade de manipulao
externa.

Figura 2.18 Soluo em Hardware x Software (Willians R., 2006)


Nota-se na figura 2.18 que a soluo em hardware mais rpida executando o
processamento em 2 ciclos de relgio, o que a soluo em software leva 12 ciclos de
relgio para executar.

Porm as aplicaes em hardware nem sempre podem ser

implementadas facilmente fazendo com que as solues utilize a integrao de um


processador, realizando a execuo de instrues paralelamente a um hardware para
execuo de uma ou mais tarefas de forma dedicada.

64

Os projetos realizados em hardware com vrios perifricos, com processador ou


no, foi denominado de SoC System on chip, ou no caso das arquiteturas
reprogramveis denominou-se SoPC System on programmable chip.
Diversos fabricantes de FPGA tem trabalhado para disponibilizar no mercado de
processadores implementveis em FPGAs.

Esses processadores por sua vez, so

chamados de soft-processors e configurados como os soft-cores, sendo disponibilizados


por seus fabricantes. Desta maneira, so classificados como

IPs (Intelectual

Properties).
A tabela 2 mostra os soft-cores disponibilizados no mercado pelos principais
fabricantes de FPGA .
Alguns fabricantes como, por exemplo, a Xilinx alm dos soft-processors
fornecidos disponibilizam tambm um hard-core do processador power PC 405 para a
famlia Virtex 4 e at 2 cores para a Virtex II Pro.
Tabela 2 Soft-cores disponibilizados pelos fabricantes
Microprocessador
Microcontrolador Fabricante
Nios II

Altera

Microblaze

Xilinx

Picoblaze - 8 bits
8051 High-speed 8 bits RISC
Microcontroller
(R80515)
TMS32025 DSP
Processor (C32025)

Xilinx

Famlias que suportam


Stratix, Cyclone, Stratix II, Stratix III
Virtex-5 LX, Virtex-5 FX, Virtex-5 SX, Virtex-4
FX, Virtex-4 LX, Virtex-4 SX, Virtex-II Pro,
Virtex-II, Virtex-E, Spartan-3E, Spartan-3,
Spartan-IIE, Spartan-II
Virtex-4, Virtex-II Pro, Virtex-II, Spartan-3

CAST, Inc

Virtex-II Pro, Virtex-II, Spartan-3, Spartan-IIE


, Stratix II, Cyclone, Stratix, Excalibur, APEX
20KE, APEX 20KC, ACEX 1K, FLEX 10KE

CAST, Inc

Virtex-II Pro, Virtex-II, Spartan-3, Spartan-IIE

C68000
Microprocessor

CAST, Inc

PIC1655x Fast RISC


Microcontroller

Digital Core
Design

Stratix II, Cyclone, Stratix, APEX II, APEX


20KE, APEX 20KC, FLEX 10KE, Virtex-II
Pro, Virtex-II, Virtex-E, Virtex, Spartan-3,
Spartan-IIE
Virtex-4 FX, Virtex-4 LX, Virtex-4 SX, Virtex-II
Pro, Spartan-3L, Spartan-3E, Spartan-3,
Spartan-IIE

O processador, power PC 405, fica embutido diretamente dentro da FPGA da


Xilinx atingindo uma performance de at 700 DMIPs 450 Mhz na virtex 4. Alm dos
processadores os fabricantes tambm disponibilizam os cores de vrios perifricos
como: Timer, UART, SPI, barramentos, controladores de memria, Ethernet, para o
projeto e desenvolvimento de SoCs.

65

Para a integrao dos cores os fabricantes disponibilizam suas ferramentas. A


Altera oferece o Quartus II em forma de ambiente para o projeto e integrao dos cores
chamado de SoPC Builder.

J a Xilinx utiliza a ferramenta EDK Embedded

Development Kit para o projeto e desenvolvimento dos sistemas em lgica


reconfigurvel.
Estas ferramentas so interfaces GUI Graphical User Interface onde o
projetista no necessita de conhecimentos das linguagens de descrio de hardware
VHDL Very High Description Language e Verilog. necessrio somente saber
instanciar e conectar tais perifricos, utilizando as ferramentas de desenvolvimento e
programar as funes do processador.

2.4.5. A Ferramenta EDK Embedded Development Kit


Nesta seo so mostrados as principais caractersticas da ferramenta da Xilinx
EDK, utilizada neste trabalho.

2.4.5.1.Aspectos da Ferramenta
A utilizao dos recursos dos hardwares reconfigurveis, mais propriamente as
FPGAs, por algum tempo estava restrito aos projetistas que trabalhavam com
linguagens prprias para a descrio de hardwares como VHDL e Verilog.

ferramenta EDK Embedded Development Kit disponibiliza a estes usurios a


possibilidade de utilizar seus recursos sem a necessidade de qualquer conhecimento em
linguagens de descrio de hardware. Para tal esta ferramenta auxilia o projetista a
construir e configurar um microcontrolador ou um conjunto de microcontroladores
Microblaze e seus perifricos.
O EDK gera arquivos com descries do sistema que so utilizados para gerar os
desenhos aps a etapa de snteses. Est composto por vrios recursos para configurar o
hardware e o projeto de diversos perifricos especficos. A configurao do Microblaze
requer trabalhar com vrios arquivos diferentes.

Basicamente, para projetar o

Microblaze necessrio trabalhar com trs tipos de arquivos diferentes: arquivos de


configurao de hardware, arquivos de descrio de software e os perifricos.

66

Para configurar um microprocessador de acordo com as necessidades o projetista


pode utilizar o auxiliador que vai solicitando ao projetista as informaes de
configurao desejadas e ao final entrega o hardware configurado e pronto para ser
programado e utilizado.

Mas tambm possibilita ao projetista realizar todas as

configuraes do sistema de forma manual.


Na figura 2.19, pode-se observar uma das telas do auxiliador de configurao do
Microblaze.

Figura 2.19 Configurao das entradas e sadas de dados no Microblaze


Nesta tela apresentada na figura 2.19, o projetista pode selecionar os perifricos
das entradas e sadas do microcontrolador, como: a interface RS-232, os LEDs 8 bits,
Display de 7 segmentos.
Aps realizar as configuraes o projetista j possui um hardware pronto para
ser programado. Na parte esquerda da tela da figura 2.21, o usurio pode visualizar e
editar os perifricos que foram configurados na aba system onde ficam todas as
informaes do hardware, figura 2.20a. A programao por sua vez, pode ser acessada,
editada e configurada na aba applications onde o projetista pode visualizar editar e
compilar o software de programao do microprocessador, veja figura 2.20b.

67

(a)

(b)

Figura 2.20 Ambiente de configurao do EDK Configurao de software


Na figura 2.21, pode-se observar o ambiente para de adicionar e editar a
especificao do hardware, suas ligaes, suas portas, endereos, perifricos e
parmetros.

Figura 2.21 Editor das especificaes do Microblaze


Na aba mostrada da figura 2.21, pode-se acessar as configuraes das
concesses com o barramento, os endereos, as portas e os parmetros.

68

2.4.5.2.Microprocessador MicroBlaze
A crescente utilizao dos sistemas embarcados tem proporcionado uma
evoluo desta metodologia. Conceitos de processamento em lgica reconfigurvel
esto conquistando grande espao nas aplicaes em pesquisas e mercadolgicas e
apresentam bons resultados.
Diferentes ferramentas EDA Electronic Design Automation, foram usadas para
sntese das configuraes na FPGA, sendo descritos comumente em VHDL.

As

FPGAs so aplicadas na implementao tipos diferentes de algoritmos, sendo muito


atraente por causa do crescimento do seu uso como hardware de uso especfico no lugar
de ASIC e processadores de aplicaes gerais.
O mdulo de controle foi projetado na ferramenta de EDK, (EDK MicroBlaze
tutorial, 2005) na qual o processador de Microblaze o centro do sistema (veja captulo
4). Este processador tem uma arquitetura RISC Reduced Instruction Set Computer,
com 32 bits registradores de uso geral, uma Unidade de Lgica de Aritmtica (ULA),
uma unidade de troca, e dois nveis de interrupo.
O Microblaze possui caractersticas bem definidas para todas as verses, abaixo
so listadas as principais:
a)

32 registradores de propsito geral de 32 bits e registradores de propsito

geral: PC Program Counter, MSR Machine Status Register, EAR Exception


Address Register, ESR Exception Status Register, ESS Exception Specific Status e
FSR Floating Point Register;
b)

palavras de instruo de 32 bits com 3 operandos e 2 modos de

endereamento;
c)

barramento de endereo de 32 bits;

d)

pipeline de fluxo simples;

e)

suporta reset, interrupt, user exception, break e hardware exceptions;

f)

memria cache para dados e instruo;

g)

interface de debug que suporta softwares de debug via JTAG.

69

A figura 2.22 um diagrama que descreve o core (arquitetura) do Microblaze.


Os blocos que esto na cor cinza so opcionais sendo configurados pelo projetista de
acordo com suas necessidades.

Figura 2.22 - Diagrama de blocos Microblaze (EDK MicroBlaze tutorial, 2005)


Os blocos em branco so as funes bsicas que so oferecidas ao projetista
como recursos mnimos para o funcionamento do sistema.
Alm destes recursos, o Microblaze possui uma entrada para interrupo
externa. Para o gerenciamento de diversas interrupes um perifrico externo deve ser
conectado ao sistema OPB Interrupt Controller. Aps a sntese, o Microblaze ocupa
aproximadamente 900 a 2600 LUTs Look-up tables) dependendo do nvel de
parametrizao. O nmero de Microblaze que podem ser embarcados em uma FPGA
depende exclusivamente de sua capacidade.
A ltima verso disponvel no mercado do Microblaze a v 5.0, que alm das
caractersticas comuns a todas as verses, possui diversas opes parametrizveis
conforme as necessidades para as quais o mesmo se dedica.
opes de configurao para o Microblaze.

70

A tabela 3 ilustra as

Tabela 3 - Opes de configurao das verses do Microblaze

Caractersticas
Estado da verso
Processador do canal de comunicao
Barramento de perifrico no circuito (OPB) dados de
apoio interface
Barramento de perifrico no circuito (OPB)
instrues de apoio interface
Memria local de barramento (LMB) dados de apoio
interface
Memria local de barramento (LMB) instrues de
apoio interface
Hardware barrel shifter
Hardware para diviso
Hardware para debugao lgica
Link simples de interface(FSL)
Mquina de estados e limpeza de instrues
Acumulador de instrues de interface (IOPB)
Acumulador de dados de interface (IOPB)
Acumulador de instrues de interface CacheLink
(IXCL)
Acumulador de dados de interface CacheLink
(DXCL)
4 ou 8 palavras para acumulao em linha
Suporte de hardware execuo
Padro de comparao das instrues
Unidade de ponto flutuante (FPU)
Desabilita o hardware de multiplicao
Hardware de depurao legvel ESR e EAR

Verso do Microblaze
Verso
Verso
Verso
2.10
3.00
4.00
Depreciada Depreciada Depreciada

Verso
5.00
Ativada

Opcional

Opcional

Opcional

Opcional

Opcional

Opcional

Opcional

Opcional

Opcional

Opcional

Opcional

Opcional

Opcional
Opcional
Opcional
Opcional
0-7
Opcional
Opcional
Opcional

Opcional
Opcional
Opcional
Opcional
0-7
Opcional
Opcional
Opcional

Opcional
Opcional
Opcional
Opcional
0-7
Opcional
Opcional
Opcional

Opcional
Opcional
Opcional
Opcional
0-7
Sim
No
No

Opcional

Opcional

Opcional

Opcional
4
Opcional
-

Opcional
4
Opcional
Opcional
Opcional
Opcional
Sim
-

Opcional
Opcional
Opcional
Sim
Opcional
Opcional
Sim
Opcional

Verso do processador do registrador

As ferramentas do EDK formam um ambiente de desenvolvimento de sistemas


embarcados que inclui uma biblioteca de perifricos, onde o EDK auxilia de forma a
possibilitar uma configurao intuitiva. Adicionalmente, so includos o ambiente de
desenvolvimento software Eclipse e um depurador GNU.

2.4.5.3.Arquivo de Configurao de Hardware


A configurao de hardware armazenada no arquivo (.mhs) microprocessor
hardware specification, que contm as portas do sistema.

Cada porta pode ser

especificada por um nome como entrada, sada e possvel configurar o nmero de bis
que compe esta porta. A utilizao de outros recursos da FPGA como: divisores de
hardware, tambm devem ser habilitados para evitar erros na compilao.
No arquivo j citado, esto as instanciaes dos perifricos do sistema, bem
como a configurao dos mesmos.
71

Entre as opes de configurao esto o range de memria no qual esto


configurados os perifricos, para tal gerado um arquivo de opes de hardware (.mpd)
microprocessor peripheral description. A ferramenta EDK possui um editor para esse
tipo de arquivo de fcil utilizao.

2.4.5.4.Arquivo de Configurao do Software


O arquivo de configurao gerado com a extenso (.mss) microprocessor
software specification, contendo as opes de compilao do software do sistema.
Inclusive a especificao do modo de compilao do cdigo, associao de bibliotecas e
perifricos. Este arquivo depende exclusivamente do arquivo de descrio do hardware
o qual especifica qual o controlador de cada um dos perifricos instanciados.
Os controladores dos perifricos encontram-se em outro arquivo com extenses
(.mdd) microprocessor driver definition, onde esto os cdigos necessrios para o
controle dos perifricos.

2.4.5.5.Cdigo de Programao
Os trs tipos de arquivos anteriormente apresentados, mhs, mpd e mdd, possuem
uma sintaxe muito simples, pois, tratam da especificao das opes e de como
instanciar os perifricos e seus controladores. Uma vez compilados e introduzidos os
perifricos que sero utilizados no sistema em conjunto com o Microblaze, s resta
carregar o cdigo do programa. Estes arquivos podem estar em C, C++ ou Assembler.
O compilador do Microblaze est baseado no compilador GCC.

2.4.5.6.A Arquitetura de Memria


O microblaze utiliza a arquitetura de memria tipo Havard (Hwang K., 2002),
onde os dados e instrues so endereados e acessados em espaos de memria
distintos. Cada espao de memria possui 32 bits para endereamento, perfazendo um
mximo de 4 GBytes para instrues e para dados.
O processador no diferencia acesso a dados ou s portas de entrada e sada
(I/O), devido ao sistema de entradas e sadas ser mapeado em memria.

72

O acesso a memria feito utilizando-se at trs tipos de barramentos: Local


Memory Bus (LMB), On-Chip Peripheral Bus (OPB) e ou por meio do Xilinx
CacheLink (XCL).
O Microblaze necessita de dois ciclos de relgio para acessar e ler o barramento
LMB e normalmente dois ciclos de relgio para a escrita. As memrias on-chip
conectadas diretamente ao barramento OPB requer 3 ciclos de relgio para a escrita e 4
ciclos para leitura.

2.4.5.7.Descrio das Interfaces de Sinais


O barramento LMB oferece acesso a memrias on-chip do tipo BRAM Block
RAM, dual-port. A interface OPB oferece conexo para perifricos e memria on-chip
e off-chip. A interface CacheLink destinada a perifricos especializados no controle
de acesso memria externa. Alm das 3 interfaces de memria suportadas (LMB, OPB
e XCL).
Tabela 4 Caractersticas dos barramentos OPB e LMB
Barramento
OPB
LMB

Caracterstica
Largura de endereo (bits)

32

32

Taxa de clock mxima (MHz)

125

125

Masters (max)

16

Masters (tpico)

2-Aug

Slaves (max)

16

16

Slaves (tpico)

2-Aug

500 MB/s

500 MB/s

Taxa de dados (pico)


Leitura/escrita concorrente

No

No

Bus locking

Sim

No

Retry

Sim

No

Timeout

Sim

No

Suporte de compilador para load/store


Utilizao de recursos da FPGA

Sim

Sim

Mdio

Baixo

A tabela 4 mostra as principais especificaes dos barramentos internos de


comunicao disponvel para o MicroBlaze.
a) Caractersticas da utilizao das interfaces pelo Microblaze
O Microblaze pode ser configurado com estas interfaces das seguintes maneiras:


uma verso 32-bits da interface OPB V2.0;

73

LMB fornecendo um simples protocolo sncrono para eficientes


transferncias para os blocos de memria RAM (BRAMs);

mecanismo de streaming sem arbtrio suportados rapidamente pelo


FSL;

interface de debug para uso com o MDM Microprocessor Debug


Module Core.

b) Viso geral das interfaces de I/O do Microblaze


As interfaces mostradas na Fig. 5 so definidas da seguinte forma:

2.5.

DOPB: Interface de dados do barramento OPB;

DLMB: Interface de dados do barramento LMB (Somente BRAM);

IOPB: Interface de instrues do barramento OPB;

ILMB: Interface de instrues do barramento LMB (Somente BRAM);

MFSL 0..7: Interface master do FSL;

SFSL 0..7 : Interface slave do FSL;

IXCL: Interface de instrues do CacheLink para master/slave;

DXCL: Interface de dados do CacheLink para master/slave;

Core: Sinais diversos para clock, reset, debug e trace;

CONCLUSES DO CAPTULO
Neste captulo foram estudados os conceitos tecnolgicos e a fundamentao

terica em automao vecular, instrumentao virtual e computao reconfigurvel.


O estudo do estado da arte dos sistemas de automao vecular justificando a
crescente utilizao desses sistemas aumentando a segurana e o conforto para o
motorista e seus ocupantes.

Diferentes implementaes de sistemas de automao

vecular esto sendo comercializadas no mundo todo com diferentes arquiteturas, grau
de flexinilidade e controladores.
A tecnologia em instrumentao virtual apresentada visa inserir o usurio a
novos ciclos de projetos aplicando novos tcnicas de testes e validao, usando seus

74

conceitos na elaborao de ambientes de simulao e testes experimentais. Dentro o


conceito de instrumentao virtual o LABview apresenta grande versatilidade no que
tange sua depurao e a programao em linguagem G. Um grande nmero de
ferramentas com grande utilizadade e de fcil aplicao disponibilizada ao projetista.
As tecnologias baseadas em computao reconfigurvel aplicadas para o
desenvolvimento de sistemas de controle e automao mostram-se como boa alternativa
para a implementao pois combinam flexibilidade, confiabilidade e baixo custo.
Com o desenvolvimento dos cores de microprocessadores embarcados em
FPGA aumentou-se ainda mais a versatilidade da aplicao de hardware reconfigurvel
pois possibilitou ao projetista utilizar conceitos de software em hardware reconfigurvel
e o projeto de seus perifricos. Os conceitos introduzidos neste captulo foram
fundamentais para a elaborao deste projeto.

75

3. ARQUITETURA DO SISTEMA
Esse captulo foca a apresentao da arquitetura proposta na elaborao do
controle de movimentao e o controle do estacionamento automtico do veculo.
Inicialmente, apresentada a arquitetura proposta em trabalhos anteriores (Bellardi T.,
2005) e (Garrido R., 2001), sendo apresentadas partes mecnicas, eletroeletrnicas e
computacionais propostas nesses trabalhos.
Sabe-se que para o projeto de sistemas de controle o estudo da arquitetura do
sistema um dos passos iniciais na concepo do projeto. durante a elaborao da
arquitetura do sistema que os projetistas dedicam sua ateno para a definio da
comunicao, interao e o funcionamento entre os subsistemas.
Esse projeto no diferente: para a elaborao do sistema de controle de
movimentao dedicaram-se exforos na concepo de uma arquitetura que atendesse
os requisitos de segurana, desempenho dentro das especificaes do projeto em termos
de custo, o que limita a aplicao de tecnologias de alto custo.
No tpico seguinte apresentamos as modificaes e extenses que foram
realizados na arquitetura proposta nos trabalhos anteriores, mostrando as vantagens da
aplicao da computao reconfigurvel por meio da tecnologia das FPGAs para o
projeto e implementao do controle de movimentao do veculo.

3.1.

ARQUITETURA PROPOSTA NOS TRABALHOS ANTERIORES


O projeto SiAE como citado no tpico 1.1.1, teve incio em 1999 com o objetivo

de se projetar um sistema automtico de estacionamento para veculos de passeio


movidos por motor a combusto interna. Desde seu surgimento at a elaborao desse
trabalho esse projeto passou por duas fases diferentes.
Na primeira fase foram definidas os parmetros principais do projeto SiAE e
seus objetivos. A segunda fase por sua vez, consistiu no estudo e definio da
arquitetura flexvel e modular do sistema de controle.
As duas fases que antecederam esse trabalho contriburam de forma importante
para a obteno de resultados considerveis em termos tecnolgicos e cientficos na

76

elaborao e implementao da arquitetura. As implementaes nessas fases realizadas


trouxeram a possibilidade de se desenvolver solues a partir do ponto at onde essas
fases alcanaram dando seqncia ao projeto SiAE em busca do objetivo principal do
projeto: o estacionamento automtico do veculo em uma vaga paralela.

3.1.1. Arquitetura Proposta na Primeira fase do Projeto SiAE


Na primeira fase do projeto SiAE (Garrido R., 2001) foram definidos os
parmetros do projeto e seus objetivos. Esse trabalho tambm contribuiu na realizao
de vrios estudos para se obter os modelos de acelerao, frenagem aerodinmica,
resistncia ao avano e resistncia ao rolamento.
Uma vez definidos os parmetros, objetivos e feito os estudos dos modelos
obtidos, iniciaram-se os estudos para a elaborao e projeto da arquitetura de um
sistema que realizasse o controle das variveis responsveis pela movimentao do
veculo.

As modificaes foram propostas com o intuto de realizarem o menor

nmero de modificaes possveis no veculo a fim de possibilitar ao mesmo ser


controlado pelo sistema ou por um motorista como um veculo comum.
Durante a elaborao da arquitetura do sistema foi seguido o fluxo de projeto
saindo do acionamento mecnico para a interface com o operador. Uma vez definida a
arquitetura de acionamento foram definidas as arquiteturas computacional e de
acionamento eletro-eletrnico para o controle do veculo.
O controle de embreagem foi concebido baseando-se no sistema Autonomy ,
(Garrido, R., 2001) que possibilita o acionamento da embreagem de forma automtica
com baixo custo. Para a utilizao desse sistema foram feitas modificaes para que o
mesmo pudesse ser controlado por comandos eletrnicos. O sistema Autonomy
funciona paralelamente ao sistema original de acionamento e controle da embreagem
que realizado por meio do pedal (ver figura 3.1) .
O sistema de acionamento do freio foi concebido baseando-se no acrscimo de
uma alavanca e um motor de corrente contnua ao sistema de acionamento original feito
por meio do pedal (ver figura 3.1). O controle de acelerao da rotao do motor foi
concebido partindo-se da utilizao do sistema de controle de ignio e injeo
eletrnica original do veculo de testes, (ver figura 3.1).

77

No sistema de controle do acionamento do cmbio implementou-se, em paralelo


ao sistema original de acionamento, um sistema eletromecnico capaz de acionar com
preciso o mecanismo de engate do cmbio por meio de sinais eletrnicos (ver figura
3.1).
Na arquitetura computacional de controle foi utilizado um microcomputador
porttil (Laptop), um kit CW 552 com microcontrolador da famlia 8051 e seis placas de
acionamento e condicionamento de sinais, sendo que uma placa para cada subsistema,
por exemplo: acionamento do freio, acionamento da embreagem, acionamento do
acelerador, acionamento do cmbio na direo de X e Y e o sensoriamento da rotao
do motor e velocidade do veculo (ver figura 3.1).
Na figura 3.1 pode-se visualizar a arquitetura computacional e de acionamento
eletro-eletrnicos proposta por (Garrido R., 2001).

Figura 3.1 Diagrama de blocos da arquitetura (Garrido R., 2001)


Nessa arquitetura do sistema proposta e implementado, o notebook era o
responsvel por processar os comandos e enviar ao microcontrolador.
As principais contribuies desse trabalho foram: o projeto e montagem do
acionamento mecnicos e o controle das variveis importantes para a movimentao do
veculo, a montagem e os testes de controle da embreagem utilizando-se o sistema
Autonomy da FIAT.

78

3.1.2. Arquitetura proposta na segunda fase do projeto SiAE


Na segunda fase do projeto, foi definida uma arquitetura flexvel para o controle
da movimentao do veculo.
Inicialmente, aplicou-se a metodologia de se dividir o sistema e organiz-lo em
diferentes mdulos os quais possuem funes bem especficas para a realizao das
tarefas relacionadas ao controle da movimentao do veculo.
O desenho da arquitetura foi projetado se pensando em quatro mdulos sendo
esses: mapeamento, gerao e controle de trajetria, controle de movimentao e
interface com o usurio (veja a figura 3.2).
Essa estrutura apresentada por (Bellardi T., 2005) tem um carter de orientar o
desenvolvimento do projeto, no consistindo em um critrio rgido (podendo sofrer
modificaes com os avanos do projeto).
Dentro do conceito definido o mdulo de mapeamento tem por objetivo realizar
o escaneamento do ambiente em que o veculo se encontra informando o
posicionamento do alvo a ser alcanado e os possveis obstculos existentes,
transmitindo essas informaes ao mdulo de gerao da trajetria.
Uma vez que as informaes chegam ao mdulo de gerao e controle de
trajetria este realiza os clculos necessrios a partir da cinemtica do veculo, as
informaes do ambiente e a manobra de movimentao que se deseja realizar.

Figura 3.2 Estrutura dos mdulos do sistema (Bellardi T., 2005)


O mdulo de movimentao recebe os comandos do mdulo de gerao e
controle da trajetria e realiza o controle dos dispositivos atuadores correspondentes s
variveis de controle de movimentao do veculo. Alm de receber os comandos do
mdulo de gerao e controle da trajetria, esse mdulo tambm pode receber
comandos diretamente de um operador e realiza-los.

79

Finalmente, o mdulo de interface com o usurio tem a como funo levar as


informaes referentes ao sistema de forma inteligvel at o operador, e tambm
responsvel por incerir os comandos do operador ao sistema.
Nessa etapa do projeto, trabalhou-se na melhoria do sistema eletro-eletrnico
para torn-lo mais confivel e robusto.

Muito se dedicou ao desenvolvimento do

mdulo de movimentao trabalhando-se na programao do microcontrolador CW552


(Controlware, 1990), o mesmo utilizado na etapa anterior, juntamente com o
microcomputador porttil (Laptop).
Na figura 3.3 temos a arquitetura detalhada do mdulo de movimentao
proposta por (Bellardi T., 2005).

Figura 3.3 Arquitetura conceitual do mdulo de movimentao (Bellardi T., 2005)


Diferentemente da fase anterior, nessa pode-se verificar uma padronizao
descritiva da arquitetura do sistema onde possvel visualizar o mdulo e seus blocos.
A principal contribuio dessa etapa para o projeto foi a definio de uma
arquitetura distribuda e flexvel, juntamente com a definio dos mdulos e os blocos
do mdulo de movimentao.

80

3.2.

A NOVA PROPOSTA PARA O SISTEMA


Como apresentado nos itens anteriores o projeto SiAE passou por duas fases que

antecederam a atual e por este motivo apresentamos as arquiteturas das fases anteriores.
Estas arquiteturas somaram grandes contribuies para o projeto e propiciaram o
desenvolvimento da arquitetura atual que se utilizou dos principais conceitos
desenvolvidos e aplicados anteriormente. Adicionando-se conceitos em hardware
reconfigurvel (veja captulo 4), ambiente de simulao desenvolvido utilizando-se
conceitos de instrumentao virtual (veja captulo 5), e o projeto do sistema de controle
de movimentao do veculo de testes real (veja captulo 6).
Para desenvolver a arquitetura que atendesse os requisitos do projeto SiAE de
baixo custo, desempenho e flexibilidade pensou-se na possibilidade de alterao na
arquitetura proposta por (Bellardi T., 2005). Entretanto, foi visto que essa arquitetura
possua limitaes para a implementao de um sistema de simulao e validao do
controle de movimentao e a necessidade de tornar o sistema com um formato mais
comercial tornou-se tambm um alvo a ser alcanado.
Dessa forma surgiu a necessidade de se projetar uma nova arquitetura
aproveitando-se muito do que j se havia desenvolvido,

acrescentando novas

possibilidades e recursos visando romper novas fronteiras at o momento no superadas


pelo projeto SiAE.

3.2.1. Conceitos envolvidos na Nova Proposta


Ao se pensar numa nova proposta para a arquitetura, partimos das definies do
projeto SiAE para s ento analisar os principais pontos onde o desenvolvimento de
uma proposta contribuiria de forma consistente para o projeto SiAE servindo como base
para os sistemas de navegao, apoio ao motorista, etc.
A proposta desenvolvida na fase atual desse trabalho objetivou a aplicao dos
conceitos das arquiteturas anteriores em Hardware reconfigurvel, o que trouxe ao
projeto uma nova conceituao abrindo grande espao para o desenvolvimento de
sistemas de alto nvel para o controle da trajetria, controle de navegao,
caracterizando assim uma verticalizao do projeto dentro dos conceitos da automao
veicular no que tange os sistemas de apoio ao motorista e chegando at mesmo aos

81

sistemas veculares robotizados.


Busca-se com a arquitetura proposta alcanar o objetivo inicial do projeto SiAE
e possibilitando ao veculo executar o estacionamento automtico em uma vaga paralela
a sua direita e podendo automatizar outras tarefas (Correia A., et al., 2007a).
Sendo assim, os principais conceitos desenvolvidos nesta fase foram
concentrados em trs frentes:
a) o

desenvolvimento

do

controlador

de

movimentao

em

um

microprocessador embarcado em lgica reconfigurvel FPGA;


b) o desenvolvimento de um ambiente de simulao e validao do
controlador;
c) o projeto e desenvolvimento das placas de interface de sinais e potncia.

3.2.2. A arquitetura do Novo Sistema


A arquitetura do sistema de forma macro foi definida como pode ser visto na
figura 3.4 e figura 3.5. Basicamente, o sistema formado por trs mdulos: interface
com o operador, controle da movimentao e simulao ou veculo de testes.

Figura 3.4 Arquitetura macro do sistema implementado


O primeiro subsistema foi definido para a interface com o operador, contando
com um display de sete segmentos (na FPGA) o qual possibilita o operador verificar os
comandos e o status das variveis. Os leds da FPGA tambm so utilizados para
apresentar a condio das variveis ao operador do sistema (Correia A., et al., 2007a).

82

O segundo subsistema o controlador de movimentao onde fica todo o


processamento e o controle de todos os subsistemas. Este foi implementado por meio
de um core da Xilinx em um microprocessador e embarcado em uma FPGA modelo
Spartan-3 (no captulo 4 detalhado o projeto do microprocessador embarcado)
(Correia A., et al., 2007a).
O terceiro e ltimo subsistema formado pelo ambiente de simulao que
reproduz de forma aproximada (usando intrumentao virtual, c om LabVIEW) a
resposta cinemtica das variveis que so importantes para o controle de movimentao
do veculo. O sistema, uma vez testado no ambiente de simulao, pode ser ligado no
veculo de teste por meio de placas de interface para o acionamento dos atuadores e a
leitura dos transdutores instalados no veculo (ver figura 3.5).

Figura 3.5 Arquitetura do sistema implementado, no carro de testes


Esta nova arquitetura proposta nesse trabalho possui mudanas fundamentais
para a evoluo do sistema e do projeto.

Uma das contribuies que podem ser

destacadas no utilizao de qualquer computador ou processador ligado ao sistema


para realizao de um pr-processamento.

Desta forma o controle fica totalmente

inserido em uma FPGA que por sua vez gerncia os sinais de comando do operador, l
os sinais dos transdutores e executa as aes necessrias (Correia A., et al., 2007b).
A segunda mudana a criao de um ambiente de simulao que pode ser
utilizado para testar e validar o sistema de antes de se testar no veculo real, diminuindo
os riscos de acidentes e o dano do equipamento bem como do ambiente a sua volta. Em
(Dario Giove, 2004) foi aplicada uma metodologia prxima da aplicada nesse trabalho,
mas em menores propores para o controle de acelerador, utilizado um sistema de
simulao em instrumentao virtual e lgica reconfigurvel para isso.

83

3.3.

CONCLUSES DO CAPTULO
Neste captulo foi estudada a arquitetura do sistema proposto para o projeto

SiAE nas fases um e dois e a extenso da arquitetura proposta nesse trabalho.


A arquitetura proposta na primeira fase definiu parmetros com o estudo dos
modelos de acelerao, aerodinmicos e frenagem do feculo de testes. Nessa fase
foram projetados e implementados os controles de acelerao, freio, direo, cmbio e
embreagem embarcados em um microcontrolador o qual recebia comandos via porta
serial de um notebook.

As principais contribuies dessa etapa foram: projeto e

montagem dos atuadores, modelamento da acelerao e frenagem do veculo de testes.


Na segunda etapa dividiu-se o sistema em mdulos os quais receberam
atribuies especficas de controle dos atuadores correspondentes.

A proposta da

arquitetura foi projetada se pensando em quatro mdulos: interface com o usurio,


mapeamento, gerao e controle de trajetria e movimentao. A principal contribuio
dessa etapa concentrou-se no desenvolvimento e organizao do sistema em uma
arquitetura distribuda e flexvel com a definio e dissociao do sistema em mdulos
com funes bem definidas.
A etapa atual do projeto SiAE objetivou em termos da arquitetura propor a extenso da
arquitetura aplicando-se os conceitos de de hardware reconfigurvel e a aplicao de
instrumentao virtual para a elaborao do ambiente de simulao da movimentao
do veculo.

Na nova arquitetura proposta o sistema do controle de movimentao

programado em um microprocessador embarcado em lgica reconfigurvel o que


aumenta ainda mais a flexibilidade do sistema, pois alm da flexibilidade dos mdulos
em software pode-se efetivar mudanas no hardware.

84

4. CONFIGURAO DO HARDWARE DE CONTROLE


Nesse captulo so apresentadas ao leitor a descrio da configurao do
hardware, as ferramentas utilizadas e os conceitos aplicados para se configurar um
microprocessador embarcado em lgica reconfigurvel.

Tambm apresentada a

descrio do software desenvolvido, seu funcionamento no controle de cada um dos


mdulos e suas variveis.

Adicionalmente, so apresentados os resultados do

desenvolvimento do hardware de controle, a ocupao dos recursos lgicos da FPGA e


seu desempenho.
A configurao do Hardware de controle representa uma das etapas primordiais
desse trabalho e objetiva o projeto e implementao de um sistema para o controle de
movimentao do veculo que atenda as necessidades de segurana e os objetivos
definidos para o controle do veculo dentro das especificaes do projeto SiAE.

4.1.

CONFIGURAES DO HARDWARE EMBARCADO


A configurao dos recursos de hardware da FPGA necessrios

implementao do controlador de movimentao passou pela primeira fase que foi a


definio da arquitetura do controlador de movimentao e o ambiente de simulao e
validao, apresentada no captulo anterior. Aps a definio dos recursos necessrios,
iniciou-se propriamente o estudo das ferramentas de configurao desses recursos e sua
implementao.
No projeto do sistema embarcado de controle de movimentao foi utilizada a
plataforma XPS do EDK (ver tpico 2.4.5), sendo utilizada esta ferramenta para
formatar os recursos disponveis na Spartan-3.

A configurao de hardware foi

realizada em duas etapas. Na primeira utilizou-se a opo Base System Builder Wizard
(EDK MicroBlaze tutorial, 2005) na configurao dos recursos padro disponveis pelo
Microblaze para a Spartan-3. Na segunda etapa foi utilizado o ISE Integrated
Software Environment, para a descrio do hardware de controle de comunicao de
teclado utilizando o protocolo PS2.

85

4.1.1. Configuraes da Arquitetura do Sistema Embarcado e seus Perifricos


Com o Base System Builder Wizard a configurao dos recursos de hardware
que o projetista necessita se torna uma tarefa simples e rpida.

Na figura 4.1,

mostrada a tela inicial de configurao onde o projetista seleciona o fornecedor da


FPGA que est sendo utilizada, o modelo da placa e a sua reviso. No caso foi
selecionado fornecedor Xilinx e a placa Spartan-3 que foi a placa utilizada nesse
trabalho.

Figura 4.1 Tela de seleo do modelo da placa utilizada Base System Builder Wizard
Uma vez selecionada a placa, o projetista pode selecionar o processador com o
qual deseja trabalhar, MicroBlaze ou PowerPC. No caso da placa selecionada s
disponibilizado o processador MicroBlaze.
Na fase seguinte foram configuradas as freqncias do relgio, do sistema e a
freqncia do relgio do barramento, o tamanho das palavras, a forma de teste do
processador e como ser utilizado o bloco de memria Cache.
A figura 4.2, mostra o diagrama do hardware configurado utilizando o Base
System Builder Wizard, suas ligaes e a estrutura do sistema. Cada um dos blocos
considerado um perifrico que uma vez configurado, foi ligado ao barramento OPB
On-chip Periferical Bus, que leva as informaes de cada um dos perifricos ao
processador onde so processadas.

86

O sistema possui 3 barramentos: um barramento OPB e dois barramentos do


tipo LMB (dados e instrues). O Microblaze master dos 3 barramentos enquanto os
demais perifricos so escravos (slaves).
Os perifricos apresentados na figura 4.2, so conectados ao barramento OPB e
possuem at 3 sinais externos que o projetista deve conhecer para ter acesso ao controle
do trafego de informao. opb_clk, opb_rst e um sinal de interrupo.
Quando os perifricos (chaves, botes, display, timer, RS 232 e leds) no
estiverem previamente conectados, devem ser ligados aos sinais de clock (opb_clk),
reset (opb_rst). No caso do uso de interrupo, o sinal referente interrupo deve ser
ligado ao controlador de interrupo.
Cada perifrico ir possuir um endereo base (c_baseaddr) para utilizao na
escrita e leitura de registradores do perifrico. A gerao de endereos automtica e
feita utilizando o XPS.

Figura 4.2 Diagrama do hardware configurado utilizando o Base System Builder


Wizard
O lmb_bram_if_cntlr um controlador de interface para o bloco de memria
RAM (BRAM). Este controlador possui uma interface para conexo com o barramento

87

LMB e com a memria BRAM . O sistema possui 2 instncias deste perifrico: uma
instncia controla o barramento de dados (dlmb_cntlr), enquanto a outra instncia
(ilmb_cntlr) controla o barramento de instrues. O MicroBlaze possui uma arquitetura
tipo Havard (Patterson, D. A. e Hennessy, J. L., 2000) com um conjunto de instrues
RISC.
O bram_block uma memria totalmente parametrizvel com dois portos de
acesso (dual_port). As FPGAs da Xilinx possuem blocos de memria imersos em sua
estrutura re-configurvel. Assim o tamanho da memria instanciada ir depender da
capacidade da famlia da FPGA. A Spartan-3 XC3S200 possui 12 blocos BRAM de
2,25 KB cada, totalizando 27 KB. O sistema possui 1 instncia bram_block contendo 8
BRAMs, totalizando 16MB.
O OPB_GPIO (General Purpose Input/Output) um perifrico de entrada e
sada paralela com interface de 32 bits para conexo com um barramento OPB. O OPB
GPIO pode ser configurado com 1 ou 2 canais. Cada canal pode ser configurado como
entrada, sada ou bidirecional.
Caso o pino de entrada exclusivo seja escolhido, a quantidade de lgica
necessria para implementao do GPIO ser menor.

Na utilizao do pino

bidirecional, sua funcionalidade deve ser configurada dinamicamente via software.


Estes parmetros, como de outros perifricos, podem ser configurados
diretamente no arquivo MPD Microprocessor Peripheral Description, ou pelo menu
Parameters da janela Add/Edit Hardware Platform Specifications no XPS. O
perifrico possui uma interface para conexo com o barramento OPB e uma interface
para mapeamento externo. A Tabela 4 descreve os sinais da interface externa.

4.1.2. Configuraes dos Registradores


De acordo com a funcionalidade de cada canal do GPIO, at 4 registradores de
32 bits podem estar presentes no core. Dois registradores de dados (gpio_data e
gpio_data1) e dois registradores com trs estados (gpio_tri e gpio2_tri). Os
registradores de dados esto presentes no modo sada e os registradores trs estados no
modo trs estados.

88

No modo entrada de um canal, nenhum registrador do canal est presente.


Os registradores de dados gpio_datax contm os dados atuais da sada e os
registradores gpio_tri configuram o pino bidirecional para o funcionamento como
entrada ou como sada de dados.
Quatro instncias do core opb_gpio esto presentes no sistema Microblaze:
1) leds_8bit: interface de sada de dados com os 8 leds presentes na placa S3-SB,
possui largura de 8 bits;
2) dip_switches_8bit: interface de entrada de dados com os 8 switches presentes na
placa S3-SB. Possui largura de 8 bits;
3) push_buttons_3bit: interface de entrada de dados com os 3 push-buttons
presentes na placa S3-SB. Possui largura de 3 bits;
4) pwm_io: interface que foi necessria para a recuperao dos sinais PWM (Pulse
Width Modulated). Estes sinais PWM so sinais externos de outro perifrico, o
opb_timer, e para uma manipulao destes dados via software foi necessria a
introduo de um opb_gpio. A largura dos dados foi configurada inicialmente
para 5 bits, ou seja, at 5 sinais PWM podem ser recuperados.
O opb_timer um timer/contador de 32 bits com interface para o barramento
OPB.
As Caractersticas do registrador de configurao do timer so as seguintes:


interface de 32 bits para o barramento OPB com suporte a byte-enable;

2 timers programveis com interrupo e gerao e captura de eventos;

largura do contador configurvel;

sada para PWM;

4.1.3. Descrio dos Mdulos Timers/PWMs


O core do Microblaze possui dois mdulos timers idnticos, como mostrado na
figura 4.3. Cada timer possui um registrador de load (tlrx), um registrador contador
(tcrx) e um registrador de estado de controle do timer (tcsrx).

89

Figura 4.3 Diagrama de blocos opb_timer


O timer possui 3 modos de operao:
a)

Modo generate: neste modo o valor do registrador TLR carregado no


contador TCR. O contador, quando habilitado, comea a contagem crescente
ou decrescente, dependendo do valor do bit UDT no registrador TCSR.
Na transio do carry out do contador, o contador pode parar a contagem ou
automaticamente re-carregar o valor do registrador TLR e continuar a
contagem (bit ARHT do TCSR). Se o bit TINT em TCSR estiver habilitado, a
sada GenerateOut ser colocada em nvel alto por 1 ciclo de clock. Se a
interrupo tambm estiver habilitada (ENIT em TCSR), o sinal de interrupo
tambm ser colocado em nvel alto por 1 ciclo de clock. A funo generate
foi utilizada na configurao do PWM Pulse Width-Modulation.

b)

Modo captura: no modo captura o valor do contador armazenado no


registrador load (TLR) quando um sinal de captura detectado. Na ocorrncia
do evento de captura, o bit TINT tambm habilitado.
Esse modo no foi utilizado na configurao do timer por no haver
necessidade de sua aplicabilidade.

c)

Modo PWM: Esse modo foi utilizado para a gerao de pulsos PWM para o
controle de velocidade dos motores de corrente contnua CC, instalados para
realizarem o acionamento do acelerador, freio, cmbio e direo.
90

Neste modo os dois timers presentes no OPB_TIMER so combinados para


produzir um sinal modulado em largura de pulso PWM com uma freqncia e ciclo de
trabalho especfico. O Timer (0) determina o perodo, enquanto o Timer (1) determina o
ciclo de trabalho.

4.1.4. Configurao dos Timers no Modo PWMs


Para a ativao do modo PWM, os seguintes detalhes devem ser observados:


O modo generate deve ser habilitado para ambos timers (bit MDT no
TCSR);

Os bits pwma0 em tcsr0 e pwmb0 em tcsr1 devem ser habilitado para 1


para habilitar o modo PWM;

Os sinais GenerateOut devem ser habilitados no TCSR (bit GENT =


1), porque o sinal PWM gerado a partir dos sinais GenerateOut do
Timer0 e do Timer1;

O nvel lgico ativo dos sinais GenerateOut devem ser habilitados para
1 em ambos timers. Isto feito setando os parmetros c_gen0_assert e
c_gen1_assert para 1;

O contador pode ter contagem crescente ou decrescente (bit UDT).

A freqncia do PWM determinada pelo registrador TLR0, e no caso do


contador em contagem decrescente, o valor de TLR0 calculado da seguinte maneira:
TLR0 =

FREQ _ OPB _ CLOCK


2
FREQ _ PWM

(1)

J o ciclo do PWM determinado pelo registrador TLR1, e no caso do contador


em contagem decrescente, o valor de TLR1 calculado da seguinte maneira:

TLR1 =

DUTY _ CICLE FREQ _ OPB _ CLOCK


2
100 FREQ _ PWM

(2)

Para nosso caso, FREQ_OPB_CLOCK = 50MHz (clock de operao), ento:


TLR0 =

50000000
2
FREQ _ PWM

91

(3)

TLR1 =

50000 DUTY _ CYCLE


2
FREQ _ PWM

(4)

Com o valor de FREQ_PWM em [hz] e DUTY_CYCLE valendo de 0 a 100.


Tabela 5 Descrio bits registrador TCSR
Bit

Nome

21

ENALL

22

PWMAx

Descrio
0 Sem efeitos nos timers
1 - Habilita todos os timers
0 Desabilita PWM
1 - Habilita PWM
Leitura: 0 No ocorreu interrupo

23

TINTx

Leitura: 1 Ocorreu interrupo


Escrita : 0 Sem mudana no estado de TxINT
Escrita : 1 Zera T0INT

24

ENTx

25

ENITx

26

LOADx

27

ARHTx

0 Desabilita timer (contador pra)


1 Habilita timer (contador ligado)
0 Desabilita sinal de interrupo
1 Habilita sinal de interrupo
0 Nada
1 Carrega contador com valor de TLRx
No overflow do contador ou na deteco do modo captura:
0 Mantm contador ou valor de captura
1 Recarrega valor de TLRx ou sobrescreve valor de captura

28

CAPTx

29

GENTx

30

UDTx

31

MDTx

0 Desabilita sinal de trigger da captura


1 Habilita sinal de trigger da captura
0 Desabilita sinal externo de generate
1 Habilita sinal externo de generate
0 Contagem crescente
1 Contagem decrescente
0 Modo generate
1 Modo captura

Para o sistema de controle de movimentao do simulador, foi definida uma


freqncia em torno de 100 Hz para a operao do PWM. A freqncia deve ser baixa
devido ao limite de velocidade do padro serial protocolo RS 232. Para o controlador de
movimentao do veculo de teste a freqncia de operao foi definida em 20Khz.
As instncias do perifrico OPB_TIMER foram as seguintes:


pwm_timer_1 gera sinal PWM para controle dos mdulos Acelerador e


Freio do carro;

92

pwm_timer_2 gera sinal PWM para controle do mdulo Cmbio do


carro.

O opb_uartlite um perifrico de transmisso/recepo assncrona de dados


seriais (UART) para conexo com um barramento OPB. Dentre suas
caractersticas pode-se destacar:


interface de 8 bits com o barramento OPB;

um canal para transmisso e outro para recepo (full duplex);

buffer FIFO de 16 caracteres para recepo e 16 caracteres para


transmisso;

nmero de bits dos caracteres configurvel (5 a 8 bits);

paridade par ou mpar;

baud rate configurvel.

A instncia de nome RS232 no Microblaze utiliza uma taxa de transmisso


(baud rate) de 19600 bps (bits por segundo), sem paridade e usando palavras de 8 bits.
Os sinais RX e TX do core foram ligados apropriadamente nos pinos respectivos
na interface serial padro RS-232 da placa Spartan-3.

4.1.5. Insero do Mdulo Teclado no Sistema


O perifrico opb_keyboard no um core disponvel na sute do EDK. Este core
foi desenvolvido separadamente utilizando a ferramenta de descrio e hardware ISE e
posteriormente feito a importao do perifrico e sua conexo ao barramento OPB do
sistema embarcado. O opb_keyboard tem como funo realizar a interface via porta
padro PS/2 com um teclado de PC comum. Este perifrico possui os seguintes sinais
que esto listados na Tabela 5.

93

Tabela 6 Descrio dos sinais do perifrico opb_keyboard


Sinal
keyboard_data
Keyboard_clk
Reset
Scan_code
Scan_ready
read

Interface

I/O

Externa
Externa
OPB
OPB
OPB
OPB

I
I
I
O
O
I

Descrio
Sinal de dados da porta PS/2
Sinal de sincronismo da porta PS/2
Sinal de reset
Scan_code da tecla pressionada do teclado
Sinal de scan_code disponvel
Sinal de acknowledge de leitura do scan_code

A Figura 4.4 ilustra o registrador de status e leitura do teclado (KSR Keyboard


Status Register):

Figura 4.4- Registrador KSR opb_keyboard


Os procedimentos para um teclado conectado a uma porta PS/2 so:
a)

verificar o status do bit 23 ready, caso seja 1 alguma tecla foi pressionada e o
respectivo scan_code se encontra na posio 24 31 do registrador KSR;

b)

recuperar o cdigo da tecla (scan_code) do teclado lendo o byte menos


significativo de KSR;

c)

realizar um reconhecimento da tecla (acknowledge) selecionando o bit 22


leitura em 1;
O perifrico opb_7segled tambm um core que foi criado com a ferramenta

Create/Import Peripheral Wizard do XPS. Esse core um controlador do display de 7


segmentos disponvel na placa S3-SB. Ele tem como funo realizar a multiplexao do
display e sua respectiva descrio.
Tabela 7 Descrio dos registradores opb_7segled
Registrador
reg0
reg1
reg2
reg3

Endereo
C_BASEADDR
+ 0x00
C_BASEADDR
+ 0x01
C_BASEADDR
+ 0x02
C_BASEADDR
+ 0x03

Descrio
Caractere do dgito das unidades do display
Caractere do dgito das dezenas do display
Caractere do dgito das centenas do display
Caractere do dgito do milhar do display

94

O core dcm_module tem como entrada o sinal clock vindo do oscilador da placa
Spartan-3 e sua sada utilizada como clock do nosso sistema embarcado. Sua principal
funo reduzir o clock skew do circuito, ou seja, reduzir a diferena do tempo de
propagao do sinal de clock.
As configuraes foram feitas nos perifricos e em sua forma de acesso ao
barramento OPB. Foram definidos o tamanho da memria do programa, o
funcionamento de cada um dos perifricos acrescentando: o protocolo PS2 e os mdulos
PWM (que fazem parte do sistema de controle de movimentao, mas que no foram
configurados por meio do Base System Builder Wizard).

4.2.

ASPECTOS GERAIS DESENVOLVIMENTO DO SOFTWARE DOS


MDULOS DE CONTROLE
O projeto do software partiu da arquitetura flexvel e distribuda definida por

(Bellardi T., 2005). Na arquitetura descrita no tpico 3.1 desse trabalho, foi definido
que cada um dos mdulos seria responsvel por controlar as variveis de movimentao
separadamente, respondendo aos comandos do operador.
Uma vez definidos os mdulos do sistema de controle de movimentao, cada
um deles passou por um processo de detalhamento o qual contou com uma analise
anterior do funcionamento das variveis de movimentao do veculo. No processo de
detalhamento dos mdulos, foram definidos quais os recursos de hardware seriam
necessrios, bem como a relao entre esses mdulos. Tambm foram definidas as
funes a serem executadas dentro dos mdulos do sistema.
O software foi desenvolvido utilizando a linguagem C e compilado pelo GNU
GCC com diretivas para o processador Microblaze. Foi realizada uma programao em
mdulos, divididos em arquivos que depois foram ligados e compilados por meio do
GCC. Essa programao tambm foi realizada de forma a facilitar a migrao do
software desenvolvido do ambiente de simulao no controlador de movimentao para
a aplicao no veculo real de teste apenas com a troca do arquivo protocolo.c, uma vez
que o hardware configurado na FPGA o mesmo.
A diferena fundamental entre os dois sistemas (citada no captulo 3 nas figuras
3.4 e 3.5) que na aplicao de controle de movimentao do veculo de teste no existe
um protocolo de comunicao, ou seja, os dados so passados paralelamente para o

95

carro e os sinais de entrada vindos do conversor A/D de oito entradas devem ser
multiplexados por meio do arquivo interface_dados.c. J na aplicao desenvolvida
para o simulador cinemtico, implementado em LavVIEW, os dados so enviados e
recebidos por meio do protocolo de comunicao no padro RS232 por meio do arquivo
protocolo.c.
Nas figuras 4.5 e 4.6, pode-se observar os diagramas de blocos do software do
controlador de movimentao no microprocessador embarcado na FPGA para o veculo
de testes e para o simulador cinemtico, respectivamente (Correia A., et al., 2007a).

Figura 4.5 Diagrama do software do controlador de movimentao (Carro de testes)

Figura 4.6 Diagrama do software do controlador de movimentao (Simulador)

96

A tabela 8 mostra a lista dos mdulos em software e descreve a funo de cada


um dos mdulos da arquitetura do sistema, implementados em software e responsveis
por controlar a movimentao do veculo de teste e do veculo no simulador.
Tabela 8 Descrio da funo dos mdulos do software
Mdulo
carro.c
protocolo.c
freio.c
embreagem.c
cambio.c
acelerador.c
direcao.c
interface_usuario.c

ps2_teclado.c
disp_7seg.c

Descrio
Mdulo principal de execuo que contm a funo main ( ). responsvel por
chamar as funes de entrada de dados e do protocolo de comunicao.
Mdulo que realiza o protocolo de comunicao serial via RS-232 com o Labview.
Funes que acionam o motor DC do freio e analisam o sinal vindo do respectivo
potencimetro.
Funes de acionamento do sistema Autonomy do Palio.
Funes de acionamento dos dois motores DC presentes no cmbio e seu
sensoriamento.
Funes de acionamento do motor DC presente na borboleta do carro de acordo com
o sinal de retorno do potencimetro e da rotao.
Funes de acionamento do motor do sistema de direo do carro de acordo com a
posio desejada.
Realiza a interface com o usurio atravs da porta PS/2 e do display de 7 segmentos.
Tambm realiza a interpretao e execuo dos comandos chamando cada funo
especfica presentes em outros mdulos.
Biblioteca com as funes bsicas para leitura dos scan_code do teclado.
Biblioteca com as funes bsicas para escrita de caracteres alfas-numricos no
display de 7 segmentos.

Antes da descrio detalhada de cada mdulo so apresentadas as bibliotecas e


funes utilizadas para cada perifrico do sistema do microprocessador embarcado na
FPGA. As funes so em sua maioria de escrita e leitura em memria, ou seja, escrita e
leitura de ponteiros, no endereo base do perifrico.

4.2.1 Funes e Bibliotecas dos Perifricos utilizadas na Programao dos


Mdulos
As bibliotecas de cada perifrico so automaticamente geradas pela ferramenta
LIBGEN do XPS.
Dois cabealhos bsicos so utilizados pelos mdulos do programa:


O xbasic_types.h: realiza a redefinio dos tipos bsicos de dados como char,


int e float para outras denominaes (veja a Figura 4.7).

O xparameters.h: esta biblioteca gerada automaticamente pela LIBGEM e


possuem constantes definidas para os endereos dos perifricos do sistema,
auxiliando na utilizao destes endereos como parmetros de funes no

97

software. A definio de um endereo base de um perifrico de nome RS232:


#define XPAR_RS232_BASEADDR 0x40600000, pode ser citada como por
exemplo (veja a figura 4.7).
typedef unsigned char

Xuint8;

/**< unsigned 8-bit */

typedef char

Xint8;

/**< signed 8-bit */

typedef unsigned short

Xuint16;

/**< unsigned 16-bit */

typedef short

Xint16;

/**< signed 16-bit */

typedef unsigned long

Xuint32;

/**< unsigned 32-bit */

typedef long

Xint32;

/**< signed 32-bit */

typedef float

Xfloat32;

typedef double
floating point */

/**< 32-bit floating point */

Xfloat64;

/**<

64-bit

double

precision

Figura 4.7 Utilizao do xbasic_types.h


Alm dos endereos bases, so definidas constantes para as IDs dos perifricos,
mscaras de interrupo e parmetros importantes.
a)

Perifrico Opb_Gpio xgpio_l.h


Foram utilizadas funes de baixo nvel, ou seja, funes de leitura e escrita em

registradores do perifrico. Assim para sada de dados, uma escrita no registrador feita
no perifrico, e para entrada de dados, uma leitura do registrador feita.
Abaixo seguem as funes de baixo nvel utilizadas:


xgpio_mgetdatareg BaseAddress, Channel

Realiza a leitura do registrador de dados do canal Channel do perifrico


GPIO com endereo base BaseAddress. Retorna o valor lido do registrador.


xgpio_msetdatareg BaseAddress, Channel, Data

Realiza a escrita do valor Data no registrador de dados do canal Channel do


perifrico GPIO com endereo base BaseAddress;
b) perifrico opb_uartlite xuartlite_l.h
Essa biblioteca utilizada para o envio e recepo de caracteres pela interface
serial UART. Assim utilizamos somente trs funes: uma para envio, outra para
recepo e uma para verificar se h dados no buffer FIFO de recepo do perifrico.

98

Funes utilizadas na elaborao do perifrico opb_uartlite:




xuartlite_misreceiveempty baseaddress: Verifica se h dados no


buffer FIFO de recepo do perifrico. Retorna 0 caso haja dados e 1
caso contrrio.

xuartlite_sendbyte xuint32 baseaddress,xuint8 data: Envia a palavra


de 8 bits Data para o buffer de entrada do perifrico UART do endereo
base BaseAddress;

xuartlite_recvbyte xuint32 baseaddress: Retorna a palavra de 8 bits


presente no buffer de recepo do perifrico UART do

endereo base

BaseAddress.
Caso o perifrico opb_uartlite esteja configurado como interface STDIN e/ou
STDOUT, ento funes padres de entrada e sada como printf() e scanf() podem ser
usadas. Porm estas funes ao serem compiladas, resultam em um grande nmero de
instrues e, portanto, no so adequadas para um sistema embarcado. A Xilinx fornece
alternativas para a funo printf(). A funo: xil_printf() resulta em apenas 1KB de
programa, porm no suporta a impresso de nmeros em ponto flutuante (%f) ou do
tipo long de 64 bits.
c) perifrico opb_timer xtmrctr_l.h: So utilizadas 2 funes: uma para escrita
no registrador de status (TCSR) e outra para escrita no registrador de load
(TLR).
Funes utilizadas na implementao dos registradores:


xtmrctr_msetcontrolstatusreg: Escreve o valor RegisterValue no


registrador TCSR do timer de nmero TmrCtrNumber (0 ou 1) no
OPB_TIMER do endereo base BaseAddress. Esse valor escrito ir
configurar o modo de operao do timer/contador. Para auxlio na
configurao de cada bit do registrador, existem mscaras (constantes)
definidas no cabealho xtmrctr_l.h, ou seja, realizando vrios OU
Lgicos das mscaras consegue-se configurar o timer da maneira
apropriada;

xtmrctr_msetloadreg(BaseAddress,TmrCtrNumber,RegisterValue)
Escreve o valor RegisterValue no registrador TLR do timer de nmero

99

TmrCtrNumber (0 ou 1) no OPB_TIMER do endereo base


BaseAddress. Essa funo foi utilizada para configurao da freqncia e
ciclo de trabalho dos sinais de PWM utilizados no sistema.
d)

perifrico opb_7segled disp_7seg.c: Foram mapeadas diversos caracteres


alfa-numricos para exibio no display de 7 segmentos da placa S3-SB.
Os caracteres mapeados so os seguintes:
A, B, C, D, E, F, H, I, J, L, O, P, S, U, R, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
As funes utilizadas foram as seguintes:


dispLED Xuint32 Val, Xuint8 DP: Faz a converso de um nmero Val


de 32 bits para a forma BCD com 4 nmeros de 8 bits (milhar, centena,
dezena e unidade) e realiza a escrita apropriada no registrador do
perifrico opb_7segled. O parmetro DP indica a posio do dot point no
display de 7 segmentos, com o valor de 0 sendo relativo ao dgito menos
significativo e 3 ao mais significativo;

disp_char_7seg char texto,char pos: Faz a converso de um caractere


para sua respectiva representao em display de 7 segmentos e em
seguida escreve esta representao na posio pos do display. Pos = 0,
posio menos significativa, pos = 3, posio mais significativa.

e)

perifrico opb_keyboard ps2_teclado.h: A biblioteca possui funes para


realizar o pooling, ou seja, verifica se h dados (scan_code do teclado).
Basicamente so funes que fazem leitura e escrita no registrador do
opb_keyboard.
As funes utilizadas foram as seguintes:


boolean tem_dado_ps2 endereco: Retorna true caso haja scan_code


disponvel no perifrico OPB_KEYBOARD do endereo endereco, caso
contrrio retorna false;

unsigned char get_scan_code long endereo: Retorna como


scan_code o valor do registrador de dados do perifrico
OPB_KEYBOARD do endereo endereo.

100

4.2.2

Descrio das Variveis de Controle de Movimentao


Abaixo foram descritas as variveis de Controle de Movimentao

implementadas:
a)

variveis de sensoriamento do tipo potencimetro: so variveis de 8 bits


do tipo inteiro sem sinal (0 a 255).


ang_dir1 e ang_dir2 Posio das colunas de direo;

posx_cambio e posy_cambio Posio do eixo x e do eixo y do cmbio


respectivamente;

b)

pos_borboleta Posio da borboleta do acelerador;

pos_pedal_embreagem Posio do pedal da embreagem;

pos_freio Posio do pedal do freio.

varivel dos sinais de rotao, deslocamento hodomtrico e contato da


borboleta:


sinal_rdb 3 bits para os sinais de rotao do motor, deslocamento


hodomtrico e contato da borboleta (veja a Figura 4.8).

Figura 4.8 - Varivel sinal_rdb


c)

variveis de ativao dos atuadores: so variveis de 8 bits do tipo inteiro


sem sinal (0 a 255):


saida_embreagem: so os sinais para controle do sistema Autonomy ,


que composto de 2 eletro-vlvulas (2 bits) e um motor de passo (4
bits);

saida_cambio: so os sinais para os dois motores presentes no cmbio: 1


no eixo X e outro no eixo Y. Cada motor possui 1 sinal PWM e 1 de
controle de sentido de rotao ou direo;

101

saida_fda: so os sinais de controle dos motores DC presentes no freio,


na coluna de direo e na borboleta do acelerador. Cada motor possui 1
sinal PWM e 1 de controle de sentido de rotao ou direo.

A Figura 4.9 ilustra a posio de cada bit em cada uma destas variveis, o que
facilita fazer a leitura dos valores da cada uma de forma precisa.

Figura 4.9 Variveis de controle dos atuadores

4.3

O MDULO CONTROLADOR GERAL (carro.c)


o bloco que contm a funo main() e portanto o bloco bsico e de execuo

inicial do software. O ciclo de execuo mantido por meio de um lao de repetio


(while), presente na funo main(). A Figura 4.10 ilustra um fluxograma de execuo do
mdulo carro.c.
A execuo comea com a inicializao de variveis e dos temporizadores que
so ento configurados para o modo PWM. Ento o programa entra em um lao de
execuo na espera de um sinal vindo do ambiente de simulao Labview para realizar a
sincronizao da comunicao serial. Este sinal enviado ao iniciar a execuo do
ambiente de simulao.
Ao receber o sinal vindo do ambiente de simulao desenvolvido no Labview, o
programa sai do lao e continua seu fluxo de execuo. Em seguida faz uma atualizao
dos leds para indicao de execuo:
102

a) led(0) acesso: esperando sinal do Labview;


b) led(1) acesso: sinal recebido e sistema executando normalmente.
Desta maneira, o mdulo carro.c realiza uma chamada s funes serial_send()
e serial_receive() do protocolo.c para realizar o envio e recepo dos dados serialmente.

Figura 4.10 Fluxograma mdulo carro.c


As variveis referentes aos dados dos switches e push buttons so atualizadas. O
valor do switch(0) testado, e caso esteja ativado, o fluxo de execuo passa por uma
mquina de estados onde cada estado realiza uma chamada uma funo de execuo.
Caso no esteja ativado, o mdulo carro.c ir realizar uma chamada funo
le_teclado() e em seguida uma chamada para o mdulo executa_modulos(). A funo
le_teclado(), que ser detalhada mais adiante, realiza a leitura e interpretao de dados
vindos do teclado e o mdulo executa_modulos() realiza o pooling de um vetor de
execuo de mdulos.

Na seo 4.10 deste captulo as duas funes sero melhor

detalhadas.
Em seguida o push-button(2) testado, e caso esteja ativado a varivel reset ser
setada (1) e envia um sinal de requisio de finalizao para o Labview. Ento o
Labview recebe o sinal, identifica a requisio e finaliza sua execuo. O Labview
tambm pode finalizar a execuo e enviar um sinal, que ser identificado como uma
requisio de finalizao e a varivel reset ser habilitada.

103

O fluxo de execuo principal do sistema pode ser resumido na figura 4.11. O


fluxo se resume a: (a) envio de variveis de controle dos atuadores, (b) atualizao das
variveis referentes aos potencimetros e demais sinais de sensoriamento, (c)
identificao de comandos e processamento.

Figura 4.11 Fluxo de execuo resumido - Mdulo carro.c

4.4

MDULO CONTROLADOR DA DIREO (direo.c)


Este mdulo responsvel pela ativao do atuador presente na estrutura de

direo do carro e posicionamento das rodas de acordo com a posio desejada. A


funo nica deste mdulo a funo descrita a seguir:


direo(Xuint8 sentido,Xuint8 angulo): utilizando as posies atuais das


rodas nas variveis ang_dir1 e ang_dir2, a funo realiza a ativao do
atuador at o ngulo do sentido. O sentido D (direita) ou E (esquerda)
referente direo das rodas. A figura 4.12 ilustra melhor essa definio
de posicionamento da roda.

Figura 4.12 ngulo de posicionamento da roda do carro

104

A ativao do motor feita atravs do ajuste dos bits 2 e 3 da varivel


saida_fda, lembrando que o bit 3 referente ao sinal de direo e o bit 2 ao sinal de
PWM. Como foi observado no veculo, a atuao do motor de acionamento da direo
de baixa velocidade, no necessitando controle de velocidade por meio do PWM. Assim
o PWM da direo sempre ter ciclo de trabalho de 100%, resumindo temos:

4.5

atuao do motor sentido direita: saida_fda (3..2) = 11;

atuao do motor sentido esquerda: saida_fda (3..2) = 01;

motor parado: saida_fda (3..2) = 00 ou 10.

MDULO CONTROLADOR DO ACELERADOR (acelerador.c)


Este mdulo responsvel pela ativao e controle do atuador de deslocamento

linear presente na borboleta.

Pode ser feito um controle por posio do curso da

borboleta ou pelo nmero de pulsos por segundo referentes ao nmero de rotaes do


motor desejada. A descrio da funo dada a seguir:
a) Funo Acelerador (char opcao,Xuint16 valor): permite controlar a posio da
borboleta de 0% acelerao mnima a 100% acelerao mxima. O percentual
escolhido determinado pelo parmetro valor e a opcao deve ser igual a B.
A funo tambm pode atuar na borboleta at que a rotao do motor atinja o
valor dado pelo parmetro valor (em RPM). Para isso o parmetro opcao deve
ser igual a R.
Os bits 0 e 1 da varivel saida_fda so utilizados como sinais de controle do
motor. O bit 0 o sinal de PWM e o bit 1 o sinal de direo. A varivel que
contm o PWM do motor a varivel pwm_ac. Portanto:


atuao positiva na borboleta (aumento no giro do motor): saida_fda(0)


= pwm_ac e saida_fda(1) = 1;

atuao negativa na borboleta (reduo no giro do motor): saida_fda(0)


= pwm_ac e saida_fda(1) = 0;

borboleta parada (giro idealmente constante): saida_fda(0) = 0.

105

4.6

MDULO CONTROLADOR DO FREIO (freio.c)


Este mdulo responsvel pela ativao do atuador de acionamento do pedal do

freio, sua funo descrita a seguir:


a) Funo Freio (int freia): ativa o freio at chegar sua posio mxima caso o
parmetro freia = 1 ou desativa o freio at chegar em sua posio inicial caso o
parmetro freia = 0. A posio lida atravs da varivel pos_freio.
A ativao do motor feita atravs do ajuste dos bits 4 e 5 da varivel
sada_fda, lembrando que o bit 5 referente ao sinal de direo e o bit 4 ao sinal
de PWM controlado pela varivel pwm_ac. O mesmo PWM utilizado pelo
mdulo do acelerador (o sistema no freia e acelera ao mesmo tempo).
Abaixo so descrita as variveis de sada da funo do freio:
 ativao do freio: saida_fda(4) = pwm_ac e saida_fda(5) = 1;
 desativao do freio: saida_fda(4) = pwm_ac e saida_fda(5) = 0;
 freio inoperante: saida_fda(4) = 0.

4.7

MDULO CONTROLADOR EMBREAGEM (embreagem.c)


O mdulo que controla a embreagem recebe os sinais do controlador de

movimentao e executa a atuao da embreagem por meio do controle do sistema


Autonomy.
Segundo (Bellardi T., 2005) e (Garrido R., 2001), para a ativao da embreagem
o sistema deve ativar a eletro-vlvula da vlvula de 3 vias: saida_embreagem(3) = 1.
Para liberao rpida o sistema deve ativar a vlvula de descarga rpida:
saida_embreagem(5) = 1.
Para a liberao gradual o sistema deve ativar um motor de passo obturador, que
ir aumentar o reduzir uma abertura para liberao do ar contido na cmara do sistema
Autonomy. Os sinais para o controle do motor de passo so os bits 0 a 3 da varivel
saida_embreagem. Para o correto funcionamento do motor de passo, devem seguir a
seqncia da varivel saida_embreagem(3..0): 0101, 0110, 1010, 1001, 0101.

106

A Funo principal do mdulo da embreagem descrita a seguir:




embreagem (char opcao, unsigned char pos): esta funo realiza a


ativao da embreagem (opcao = A), liberao rpida da embreagem
(opcao = R) e liberao controlada da embreagem (opcao = C) de 0 a
100% (parmetro pos) utilizando o sinal de retorno do potencimetro
presente na varivel pos_embreagem.

Alm da funo principal, o mdulo embreagem.C controla diretamente o motor


de passo, aumentando ou diminuindo a quantidade de ar que sai da cmara posterior do
cilindro de acionamento pneumtico do sistema Autonomy .

4.8

MDULO CONTROLADOR CMBIO (cambio.c)


Mdulo responsvel pela ativao dos 2 atuadores instalados para o acionamento

da direo X e Y da caixa de cmbio. Um motor controla o deslocamento do cmbio


no eixo-X e o outro controla no eixo-Y (ver figura 4.13).

Eixo x

POSX
195

127

63
POSY:

63

127

195

Figura 4.13 Posies e eixos do cmbio

A funo principal para o controle do cmbio descrita a seguir:




cmbio (char marcha): esta funo utiliza os sinais de retornos dos


potencimetros posx_cambio e posy_cambio para realizar o controle de
posio de cada eixo e assim posicionar a alavanca do cmbio
corretamente na marcha desejada (parmetro marcha).

107

Alm do anterior, foram pr-definidas constantes para indicao das posies


crticas da caixa de cmbio como mostrado na figura 4.13. Os valores no foram
baseados nas leituras dos potencimetros do carro, prevendo uma futura adaptao dos
valores reais presentes no carro. Estes valores tambm so os utilizados na plataforma
de simulao do Labview. Somente as posies R, Neutro e 1 marcha foram
implementadas no mdulo, prevendo inicialmente somente o uso destas, sendo que so
as necessrias para estacionar.
Os bits de 0 a 3 da varivel saida_cambio so utilizados como sinais para o
controle dos 2 motores DCs (2 bits para cada). Os bits 0 e 2 so referentes aos sinais
PWM dos motores da posio X e Y, respectivamente. Os bits 1 e 3 so referentes aos
sinais de direo dos motores da posio X e Y respectivamente. As variveis pwmx e
pwmy referenciam os sinais PWM de cada motor.
A descrio das sadas da funo cambio.c so dadas a seguir:
 alavanca do cmbio movendo para a direita: saida_cambio(0) = 1 e
saida_cambio(1) = 1;
 alavanca do cmbio movendo para a esquerda: saida_cambio(0) = 1 e
saida_cambio(1) = 0;
 alavanca do cmbio movendo para cima: saida_cambio(2) = 1 e
saida_cambio(3) = 1;
 alavanca do cmbio movendo para baixo: saida_cambio(2) = 1 e
saida_cambio(3) = 0;
 alavanca parada: saida_cambio(0) = 0 e saida_cambio(2) = 0;

4.9

O MDULO PROTOCOLO (protocolo.c)


O protocolo deve ser capaz de enviar trs variveis para o ambiente de

simulao de forma serial: (a) sada_embreagem, (b) sada_cambio e (c) sada_fda.


Alm do anterior recebe as oito palavras referentes aos sinais dos transdutoresO: (a)
ang_dir1, (b) ang_dir2, (c) pos_embreagem, (d) pos_freio, (e) pos_borboleta, (f)
posx_cambio, (g) posy_cambio e (h) sinal_rdb.
A soluo encontrada foi: enviar sempre trs palavras de oito bits por meio do
MicroBlaze e receber duas palavras de 8 bits. Esses bits fazem a requisio de uma das
108

variveis de sensoriamento, com exceo do sinal_rdb. A figura 4.14 ilustra com


detalhe o envio das 3 palavras:

Figura 4.14 Protocolo para envio das palavras pelo Microblaze


Os trs bits de requisio so controlados pela varivel opcao. E foram definidos
como constantes no HEADER protocolo.h:


rq_dir1: Valor 32 e faz a requisio da varivel ang_dir1;

rq_dir2: Valor 64 e faz a requisio da varivel ang_dir2;

rq_xcambio: Valor 96 e faz a requisio da varivel posx_cambio;

rq_ycambio: Valor 128 e faz a requisio da varivel poxy_cambio;

rq_borboleta: Valor 160 e faz a requisio da varivel pos_borboleta;

rq_pedal_embreagem: Valor 192 e faz a requisio da varivel


pos_embreagem;

rq_pos_freio: Valor 214 e faz a requisio da varivel pos_freio.

O ambiente de simulao recebe as trs palavras, processa-as e ento retorna


duas palavras, uma contendo o cdigo de requisio e os trs bits do sinal_rdb e uma
palavra contendo a varivel requisitada.
O cdigo de requisio retornado solicitando confirmao para o Microblaze
de que a palavra recebida corresponda palavra que foi solicitada.
Ao receber a varivel requisitada o Microblaze incrementa a varivel opo para
requisio da prxima palavra a qual contm a varivel.
A Figura 4.15 ilustra as palavras recebidas pelo Microblaze.

109

sinal_rdb[2..0]

LA

IC
RO
BL

opcao

BV
IE
W

AZ

Ordem de envio UART RS232

Varivel Requisitada

Figura 4.15 Protocolo - Recepo das palavras pelo Microblaze


4.10

O MDULO INTERFACE COM O USURIO (interface_usuario.c)


Este mdulo implementa um modo de entrada de comandos pelo usurio atravs

do teclado e disponibiliza os caracteres recebidos no display de 7 segmentos. Somente


caracteres de possvel representao so identificados. Por exemplo: o caractere E est
mapeado, enquanto o caractere M no est mapeado pois sua representao em 7
segmentos no possvel. Os caracteres utilizados foram descritos na tabela 10.
As Funes principais do mdulo de interface so as seguintes:
a)

le_teclado(): Verifica se alguma tecla do teclado foi acionada e realiza a


identificao e tratamento (funo trata_scan_code(scan code)) do scan_code.
Abaixo so descritos os dois modos de operao do mdulo interface:


modo de entrada de comandos em linha (varivel comando_manual =


0): neste modo o usurio deve entrar com comandos pr-definidos, que
so automaticamente disponibilizados no display de 7 segmentos.
Assim o usurio entra com o comando, normalmente composto de uma
palavra chave de 1 ou 2 parmetros, e ento confirma pressionando a tecla
ENTER. O comando identificado e executa o mdulo de controle. Na
funo le_teclado o scan_code recebido e identificado sendo a funo
trata_scan_code chamada para tratamento adequado do scan_code.

modo de comandos manuais (varivel comando_manual = 1): Este


modo implementa a execuo dos mdulos de controle atravs do simples
pressionar das teclas do teclado. Exemplo: ao pressionar a tecla seta para
cima () a funo ir acionar o mdulo do acelerador, aumentando a
rotao do motor. A varivel flag permite executar aes resultantes do
pressionamento inicial da tecla ou do pressionamento contnuo da tecla
(em cada recebimento do scan_code) ou da liberao da tecla.

110

b)

trata_scan_code(char sc): Trata o scan code sc recebido. Para armazenar os


caracteres recebidos e disponibiliz-los no display, uma varivel do tipo vetor
buffer_7seg[8] implementa um buffer de 8 caracteres (char). Caso o scan code
seja alfa-numrico, o buffer sofre um deslocamento (shift) para a esquerda e o
caractere adicionado ao buffer na posio 0. Caso o scan_code seja referente
a tecla ENTER, a funo interpreta_comando() chamada. E caso o
scan_code seja proveniente da tecla BACKSPACE, o ltimo caractere inserido
no buffer removido (posio 0) e um deslocamento para a direita realizada
no vetor .

c)

interpreta_comando(): Reorganiza a varivel buffer_7seg[8] em outra varivel


comando[8]. Exemplo: se o comando ACB34 for digitado pelo usurio, o
vetor buffer_7seg[] ser 4, 3, B, C, A, e o vetor comando[] ser A, C, B, 3, 4.
A funo tambm identifica a posio do 1 algarismo numrico, identificando
o parmetro e guardando seu valor na varivel param_num. Se no houver
erros na composio do comando, a funo finalizada chamando outra
funo: exec_comando().

d)

exec_comando(): Realiza a identificao da sintaxe do comando e aloca


chamadas aos mdulos de execuo em uma matriz de pooling. Essa matriz
composta por 3 vetores: as variveis exec_modulo[0..1], param1[0..1] e
param2[0..1]

de 2 posies cada, portanto, uma matriz 3 x 2.

O pooling realizado pela funo executa_modulos() que sempre chamada


no lao de repetio do mdulo principal.
A tabela 9 descreve as sintaxes para os comandos que o operador pode enviar ao
sistema por meio da interface juntamente com os seus parmetros:

111

Tabela 9 Sintaxes dos comandos suportados


Sintaxe

Param1 x

Param2 y

exec_modulo[k]

param1[k]

param2[k]

DIxy

D,E ou C

Inteiro de 0 a 60

y se x != C
0 se x = 'C'

FREx

0 ou 1

ACxy

B ou R

0 a 100 se x = b
0 a 9999 se x = 'r'

CABxy

0 a 6

N se x = 0
R se x = 6
x se 0<x<6

EBxy

A,R ou C

0 a 100 se x = C

0 se x != C
y se x= C

Cx ou Fx

A,C ou F

0 a 100 para Cx
1 a 9999 para Fx

Pxy

R ou A

Inteiro positivo

A Tabela 10 descreve todas as linhas de comandos disponveis, sua sintaxe e


parmetros para a execuo de aes.
Tabela 10 Descrio das linhas de comandos e suas aes
Linha de comandos
Param2 y

Sintaxe

Param1 x

Ao

DIxy

D,E ou C

Inteiro de
0 a 60

Posiciona as rodas em x graus direita (x = D) ou


esquerda (x = E) ou (x = C) alinha as rodas.

FREx

0 ou 1

FRE1 - Ativa o freio FRE0 - Desativa o freio

ACx

B ou R

0 a 100 se x = b
0 a 9999 se x = r

ACBy Aciona a borboleta y% de seu curso total.


ACRy Aciona a borboleta at atingir a rotao y.

CABxy

0 a 6

CABx Posiciona o cmbio na marcha desejada

EBxy

A,R ou C

0 a 100 se x = C

Cx ou Fx

A,C ou F

0 a 100 para Cx 1
a 9999 para Fx

Pxy

R ou A

Inteiro positivo

EBA Ativa a embreagem


EBR Libera rapidamente a embreagem
EBCy Libera a embreagem at y % de seu curso.
Cxy Altera o ciclo de trabalho do sinal PWM para y% do
freio (x = F), do acelerador (x = A) ou do cmbio (x = C)
Fxy Altera a freqncia do sinal PWM do freio (x = F), do
acelerador (x = A) ou do cmbio (x = C) para y Hz
(Labview) ou y kHz (Carro direto).
PAy Avana y o motor de passo da embreagemPRy
Retrocede y passos do motor de passo da embreagem

112

A Tabela 11 descreve todos os comandos manuais disponveis.


Tabela 11 Descrio dos comandos manuais e suas aes
Comandos Manuais
Sintaxe

Ao

Aciona borboleta positivamente (aumento da rotao do motor)

Aciona borboleta negativamente (reduo da rotao do motor)

Aciona direo para a esquerda

Aciona direo para a direita

Movimenta alavanca do cmbio para cima

Movimenta alavanca do cmbio para baixo

Movimenta alavanca do cmbio para esquerda

Movimenta alavanca do cmbio para direita

Espao pressionada
Espaos liberada

Ativa freio
Desativa freio

Aciona embreagem

Libera embreagem rapidamente

Posiciona cmbio na marcha 1

Posiciona cmbio no ponto morto ou neutro

Posiciona cmbio na marcha r

>

Avana motor de passo

<

retrocede motor de passo

e)

executa_modulos(): Essa funo faz parte do lao de repetio no

mdulo principal carro.c e tem a funo de executar o pooling na matriz de


pooling. O vetor exec_modulo[0..1] checado e se a posio k estiver setada, a
funo realiza as chamadas apropriadas das funes com os parmetros que
estiverem presentes em param1[k] e param2[k]. Atualmente o tamanho da
matriz de pooling de 2 posies, ou seja, somente 2 mdulos podem ser
executados ao mesmo tempo. De acordo com a necessidade esse parmetro pode
ser alterado atravs da constante tam_pooling.

4.11 RESULTADOS OBTIDOS COM O SISTEMA DE CONTROLE DE


MOVIMENTAO
Os resultados obtidos com a implementao do sistema de controle de
movimentao so mostrados nas figuras 4.16 4.28, representam as ligaes das
LUTs da Spartan-3 formando assim o controlador de movimentao.
A figura 4.16 mostra a rota das ligaes das LUTs que formam o microblaze.
Observando essa figura pode se ter idia da ocupao dos recursos lgicos demandados

113

com o microprocessador microblaze.


No apndice C, a tabela utilizao dos recursos da FPGA Microblaze, mostra a
utilizao dos recursos da FPGA Spartan-3. Os percentuais so relativos aos recursos
disponveis da Spartan-3 e os recursos utilizados para a implementao do Microblaze.

Figura 4.16 Ligaes das LUTs Microprocessador Microblaze.


A tabela limite de freqncia do clock em cada mdulo no apndice C mostra a
freqncia mxima de cada mdulo.

O clock mximo calculado em condies

normais de funcionamento, temperatura, vibrao e alimentao.


No caso do Microblaze o clock mximo calculado de 91,128Mhz. O clock
limite da Spartan-3 de 50Mhz, mostrando que o Microblaze no limitar a velocidade
do sistema implementado. Na figura 4.17, observa-se a rota das ligaes das LUTs das
entradas e sadas, Input Output (I/O) da FPGA para o Microprocessador Microblaze. A
maior concentrao das ligaes esto localizadas na periferia da rea til da FPGA e a
rea central.

114

Figura 4.17 Ligaes das LUTs Interface I/O.


A figura 4.18 mostra a rota das ligaes das LUTs formando o perifrico PS2
responsvel por receber os comandos do teclado. Na figura 4.18, v-se a ocupao dos
recursos lgicos demandados para a implementao do perifrico PS2 na FPGA.

Figura 4.18 Ligaes das LUTs PS2 teclado.


No apndice C, no tpico perifricos, a tabela utilizao dos recursos da FPGA
Teclado PS2, mostra a utilizao dos recursos da FPGA Spartan-3. Os percentuais so
relativos aos recursos disponveis da Spartan-3 e os recursos utilizados para a
implementao da interface PS2.
A figura 4.19 mostra a rota das ligaes das LUTs formando o barramento de
ligao dos perifricos.

115

Na figura 4.19, v-se a ocupao dos recursos lgicos demandados para a


implementao do barramento de ligao dos perifricos.

Figura 4.19 Ligaes das LUTs Barramento dos Perifricos (OPB).


A figura 4.20 mostra a rea ocupada da FPGA Spartan-3 pela implementao do
controlador de movimentao e as ligaes do MicroBlaze (Correia A., et al., 2007a).

Figura 4.20 rea de ocupao da FPGA Spartan-3.

116

4.12

CONCLUSES DO CAPTULO
Neste captulo foram abordado os processos de referentes ao projeto e a

configurao do controlador de movimentao embarcado em lgica reconfigurvel.


Tambm foram apresentadas as ferramentas aplicadas para a configurao do
microprocessador responsvel pelo controle de movimentao.
Durante a implementao do controlador diferentes fases foram realizadas desde
a definio do desenho da arquitetura do controlador de movimentao.

Aps a

definio da arquitetura iniciou-se o estudo para a definio da implementao dos


perifricos necessrios para que com o processador Microblaze controlasse os atuadores
de movimentao obedecendo aos comandos enviados por meio de um teclado.
Os recursos utilizados na elaborao do sistema de controle de movimentao
foram aproveitados ao mximo dentro do oferecido pelo kit de desenvolvimento da
Xilinx da famlia Spartan-3.

Foram apresentados os conceitos aplicados na

configurao do processador Microblaze e os perifricos bsicos oferecidos pela


ferramenta EDK.
Outros recursos foram utilizados alm dos j oferecidos basicamente durante a
configurao dos perifricos do MicroBlaze. Um dos recursos no bsicos que foram
aplicados foi a configurao do PWM para controlar a velocidade dos motores de
acionamento dos atuadores.
Um conceito muito importante que foi utilizado durante a configurao dos
recursos de hardware foi a utilizao de um perifrico configurado em VHDL para o
controle do protocolo de comunicao com o teclado. Uma vez configurado em VHDL
este perifrico foi incerido ao sistema e ligado ao barramento de perifricos. Esta
funo se mostrou importante pois abre precedentes para a configurao de perifricos
com especificaes conforme as necessidades do projetista com as vantagens de ser um
hardware e assim podendo funcionar de forma paralela.
Uma vez configurado o hardware e seus perifricos, assim como um
microcontrolador, foram programados os mdudos em software.

Cada um desses

mdulos programados seguiram as especificaes definidas na arquitetura do sistema.


Possuem funes prprias recebendo parmetros e estmulos do controlador
geral executando suas funes de controle de forma local. Na programao foram
117

utilizadas funes especificas para o microprocessador Microblaze da Xilinx como:


acesso ao barramento de perifricos, acesso aos registradores.
Adicionalmente neste captulo, foi descrito o funcionamento e a arquitetura cada
um dos mdulos da arquitetura do sistema de controle de movimentao. As variveis
que compe cada um dos mdulos para a entrada, sada e controle dos sinais so
descritas e especificadas. Neste tpico tambm foram descritos os comandos por meio
dos quais o operador controla de forma manual ou semi-automtica as aes de
movimentao do veculo tanto no ambiente de simulao como com o veculo real de
testes.
A implementao do microprocessador Microblaze embarcado na FPGA
Spartan-3, sem contar com os perifricos, aplicada nesse trabalho utilizou 43% das
Slices disponveis e 29% das LUTs de quatro entradas e com um limite de freqncia
de trabalho em 91 Mhz (veja Apndice C).
Finalmente, foram apresentados resultados relativos as rotas das ligaes das
LUTs do microprocessador, a interface do microprocessado e a rea de ocupao do
sistema de controle de movimentao embarcado no kit de desenvolvimento Spartan-3.

118

5.

DESENVOLVIMENTO DO AMBIENTE DE SIMULAO


Esse captulo apresenta ao leitor informaes pertinentes ao projeto e a

implementao do ambiente de simulao da cinemtica de um veculo de passeio


comum, movido por um motor exploso e equipado com cmbio totalmente mecnico.
Mostra detalhadamente a arquitetura e o funcionamento do sistema de simulao em
cada um de seus mdulos.
O objetivo inicial de projetar e implementar um simulador buscou-se a obtenso
de um ambiente capaz de simular as respostas do veculo aos estmulos enviados de um
controlador de movimentao, por meio de sinais eletrnicos. Isto fundamental para
testar e validar o controlador de movimentao antes da montagem e teste do mesmo no
veculo real.

5.1.

A UTILIZAO DA INSTRUMENTAO VIRTUAL PARA O

DESENVOLVIMENTO DO AMBIENTE DE SIMULAO


A utilizao de uma nova metodologia de ciclo de projeto (empregando-se testes
e simulao do controle da cinemtica do veculo em um ambiente programado com
uma ferramenta para projetos baseado em instrumentao virtual)

mostrou-se

promissora.
O ambiente de simulao criado no software LabView, de forma geral, realiza as
seguintes tarefas:


Obter os sinais recebidos pela porta serial (padro RS-232). Estes sinais
devem ser extrados do pacote enviado pelo Microblaze usando o padro
de protocolo de comunicao serial que foi especificado conforme
padro em (Bushby S., 1997).

Tratar os sinais recebidos para enviar comandos ao simulador (para o


veculo virtual) de tal forma que o carro simulado se comporte de acordo
com os atuadores presentes no carro real. Exemplo: a simulao de um
dos atuadores o qual recebe o sinal PWM e de direo, e ento realiza o
incremento/decremento de uma varivel que simula a posio de um

119

atuador e envia essa varivel de volta para o Microblaze usando uma


palavra de 8 bits (como um conversor A/D real).


Relacionar as variveis de controle de velocidade, posio do veculo,


ngulo das rodas e posio dos atuadores para o controle do veculo no
ambiente de simulao.

Simular o movimento do veculo no ambiente de simulao de acordo


com os valores de acelerao, velocidade, posio do veculo e o ngulo
das rodas.

Permitir a visualizao das variveis por meio de uma interface na qual o


operador pode verificar os valores e seu estado;

5.2

DISTRIBUIO DOS MDULOS NO SISTEMA DE CONTROLE DE


MOVIMENTAO COM O SIMULADOR
A programao realizada no ambiente Labview foi projetada e implementada em

mdulos, chamados de VIs (Virtual Instruments).

Cada mdulo realiza funes

diferentes e comunicam-se por meio de uma VI projetada especificamente para isso,


onde esto todas as variveis globais do sistema.
A figura 5.1 ilustra a arquitetura do sistema e as ligaes entre cada um de seus
mdulos (mdulo serial, mdulo de trajetria do carro, mdulo variveis globais,
mdulo trata sinais)

Figura 5.1 Diagrama de blocos da plataforma do ambiente de simulao no Labview


Cada um dos mdulos apresentados na figura 5.1 possuem funo especfica
dentro do funcionamento do ambiente de simulao.
120

Abaixo descrita a funo de cada um dos mdulos projetados e implementados


no ambiente de simulao :


mdulo serial: recebe os sinais de comando do controlador, enviando os


valores das variveis para o mdulo variveis globais;

mdulo trajetria do carro: realiza todas as funes relacionadas


cinemtica do veculo na janela do simulador;

mdulo variveis globais: realiza a ligao das variveis com todos os


mdulos;

mdulo trata sinais: realiza o tratamento dos sinais das variveis e a


apresentao dos valores dos sinais mais importantes para o controle do
veculo no ambiente de simulao.

Foram criados quatro mdulos VIs formando o ambiente de simulao. Cada


qual possui uma funcionalidade definida objetivando dar ao sistema a distribuio dos
mdulos afim de no sobrecarregar o processamento, tornando o sistema mais rpido.
A figura 5.2 apresenta o detalhamento da estrutura dos mdulos programados no
ambiente de simulao bem como os seus blocos (cada qual executando uma funo
especfica).

Figura 5.2 Diagrama dos mdulos do ambiente de simulao e seus blocos


A figura 5.2 mostra o diagrama detalhado do ambiente de simulao com seus
mdulos e os blocos.
121

Cada mdulo formado por blocos os quais realizam as seguintes funes:




abre a porta serial: responsvel por abir a porta serial dando incio a
recepo dos dados;

recebimento dos dados seriais: responsvel por realizar o recebimento e


tratamento dos dados enviados para serem separados em palavras e bits;

separao dos bits para cada varivel: realiza a separao das palavras
em bits (dos dados enviados por meio serial);

fecha a porta serial: responsvel por realizar o fechamento da


comunicao serial;

controle do ngulo do veculo: bloco responsvel pelo controle do


ngulo de direo do veculo em relao ao plano cartesiano x e y;

controle cinemtico do veculo: responsvel pela parte grfica do


simulador. Este mdulo controla todas as aes de movimento do veculo
dentro da janela do simulador;

cmbio: responsvel por controlar as aes relativas ao cmbio do


veculo. Este mdulo simula o posicionamento das marchas conforme
comandos enviados pelo operador;

freio: responsvel pelo controle de acionamento do freio do veculo


dentro do ambiente de simulao;

direo: controla todas as funes relacionadas ao controle do atuador da


direo, trabalhando em conjunto com o controle do ngulo do veculo.
Este mdulo recebe o comando do controlador contendo a direo
esquerda ou direita e a velocidade do acionamento e muda o ngulo
conforme a necessidade;

acelerador: realiza o controle do acionamento do atuador do acelerador


conforme os comandos enviados pelo controlador;

embreagem: responsvel pelo controle do acionamento do atuador da


embreagem, recebendo os comandos do controlador;

122

controle de acelerao: O controle de acelerao realiza todo o clculo


lgico e matemtico para o controle da acelerao do veculo no
ambiente de simulao.

Recebe e executa os clculos a partir das

informaes relativas a posio dos atuadores do acelerador, embreagem,


freio e cmbio.
Outra razo pela qual o sistema foi projetado em mdulos o fato de que com
poucas modificaes esse simulador pode executar outras funcionlidades como:
sistema supervisrio para o operador do veculo, ambientes de simulao para o teste de
diferentes arquiteturas de controladores de movimentao, entre outras.

Essas

funcionalidades podem ser realizadas com a configurao/adio de um ou mais


mdulos. Esta caracterstica faz o sistema flexvel a modificaes e implementaes
posteriores.

5.3

MDULOS DO SISTEMA DE SIMULAO

5.3.1

Mdulo Serial
O mdulo serial responsvel pela comunicao do ambiente de simulao com

o controlador de movimentao. Este recebe e envia as informaes do estado das


variveis e o acionamento dos atuadores, enviando os sinais a cada um dos mdulos
responsveis por meio do mdulo variveis globais.

Figura 5.3 Painel frontal do Mdulo de comunicao serial do Simulador no Labview

123

No painel frontal o operador pode acompanhar a comunicao visualizando os


leds identificados de acordo com cada varivel (acendendo e apagando). A figura 5.3,
apresenta o painel frontal do mdulo de comunicao serial com suas variveis.
Alm do painel frontal, cada mdulo possui o seu diagrama de blocos onde est
a programao do mdulo VI em questo. O mdulo serial possui blocos de
configurao da porta serial estabelecendo a sua velocidade da comunicao (que nesse
caso 19.200 bps Bits por segundo). Adicionalmente, realiza a comunicao da UART
via porta serial padro RS-232 com o controlador de movimentao configurado no
Microblaze.
Esse mdulo tambm realiza a atribuio de cada bit sua funo especfica
(PWM e direo) e repassa bit a bit para a VI Trata Sinais. Alm disso, recebe os
valores simulados de potencimetros e envia para o Microblaze, de acordo com o
cdigo de requisio recebido do processador (veja o mdulo protocolo.c, no captulo
4).
O diagrama de blocos do mdulo de comunicao serial do simulador (figura
5.4) formado por um seqenciador com quatro estgios.

Cada estgio do

seqenciador contm um ou mais blocos que executam uma funo, esse seqenciador
executado como um lao de repetio onde executado do primeiro at o quarto ndice
voltando logo ao primeiro.

Figura 5.4 Mdulo de comunicao serial do Simulador no Labview


124

No primeiro estgio pode-se configurar qual a porta est sendo utilizada para a
realizao da comunicao. Nesse caso, est sendo utilizada a porta COM1 que est
configurada no primeiro e segundo passo do seqenciador. Este estgio tambm abre a
porta serial e a janela para a configurao da porta serial (ver figura 5.4).
O segundo estgio do seqenciador possui dois blocos. Estes blocos realizam o
envio dos sinais e palavras e a triagem dos sinais e palavras separando os bits e
escrevendo os dados nas variveis globais relacionadas aos mesmos. A porta de
comunicao fechada no terceiro estgio completando assim o ciclo torna a ser
repetido indefinidamente at que o ciclo de comunicao seja finalizado.
As Figuras (5.5 a 5.7) mostram os blocos do Mdulo Serial de forma mais
detalhada, cada um com sua estrutura e funcionalidade.
O bloco de configurao da porta serial desempenha a funo de possibilitar ao
projetista modificar, a taxa de transmisso dos dados e escolher qual a porta que se
deseja utilizar. No caso dessa aplicao, est sendo utilizada a porta COM1, como
descrito anteriormente, e a taxa de transmisso dos dados de 19200 bps (veja a figura
5.5).

Figura 5.5 Blocos de configurao da porta serial VI Serial


A figura 5.6, apresenta o lao responsvel pelo envio dos sinais das variveis do
estado de movimentao do veculo no ambiente de simulao, como por exemplo:
posio-acelerador, velocidade, posio-freio, posio-cmbio, posio-embreagem e
ngulo-direo.

125

Figura 5.6 Lao de repetio para o envio dos sinais VI Serial


Os sinais que so enviados pelo controlador de movimentao por meio do
protocolo RS-232 serialmente, chegam ao lao de recepo dos sinais (figura 5.7) e
nesse so separados em trs palavras de oito bits cada. Os oito bits das palavras so
acessados separadamente sendo que cada um desses traz os comandos do controlador de
movimentao.

Figura 5.7 Lao de repetio para recepo dos sinais VI Serial


Os sinais enviados do controlador de movimentao chegam ao lao de recepo
dos sinais onde so escritos nas variveis globais relacionadas.
126

5.3.2

Mdulo Trata-Sinais
O mdulo Trata-Sinais foi projetado com o objetivo de simular a resposta de

cada um dos atuadores aos estmulos dos comandos enviados por meio da comunicao
serial. Possui os blocos de simulao dos atuadores de cada uma das variveis presentes
no veculo: acelerador, freio, direo, cmbio e embreagem.
Os motores que atuam essas variveis so representados por um bloco que
responde adequadamente ao sinal PWM e de direo, realizando o incremento ou
decremento em uma varivel especfica. O valor dessa varivel enviado de volta VI
Serial para posterior envio ao Microblaze.
Nos blocos de execuo, os laos so temporais, ou seja, so executados a cada 1
mili-segundo. Assim pode-se determinar parmetros para velocidade de acionamento
dos atuadores no ambiente de simulao. Por exemplo, se desejar-se que uma varivel
seja incrementada em 50 unidades/segundo, incrementa-se a varivel com um valor de
0,05 unidades por ciclo de execuo. Lembrando que as variveis incrementadas so
simuladas como se fossem posies dos atuadores e, portanto, devem ser valores
inteiros de 8 bits vindos de um potencimetro (0 a 255).
Na figura 5.8 mostrado uma o painel de controle com os instrumentos que
indicam o estado atual das variveis relacionadas. O operador tem acesso ao ngulo das
rodas, posio do freio, marcha engatada, posio da embreagem e os sinais do PWM
do cmbio.

Figura 5.8 Painel frontal do Mdulo de Trata sinais do Simulador no Labview


127

As figuras 5.9 a 5.14, ilustram os blocos de execuo das variveis no diagrama


de blocos da VI Trata Sinais. Cada bloco simula o funcionamento e a resposta de cada
um dos atuadores das variveis de controle de movimentao do veculo no ambiente de
simulao.
O bloco acelerador (figura 5.9), como o nome sugere, recebe os estmulos do
Mdulo Variveis-Globais, simula a reao dos atuadores de um veculo real e
apresenta ao operador o valor de progresso da borboleta de acelerao. No projeto dos
blocos foi projetado uma sub-VI chamada Motor-DC,

que simula a resposta de

incremento e decremento posicional de um motor de corrente contnua que aciona


grande parte das variveis de controle de movimentao do veculo real

Figura 5.9 Bloco Acelerao VI Trata Sinais


A figura 5.10 apresenta o lao que forma o bloco de simulao do freio. Esse
bloco recebe os sinais freio_pwm e freio_dir que controlam a velocidade e a direo do
acionamento do motor de corrente contnua no simulador, e envia o sinal de posio do
freio respectivamente.

128

Figura 5.10 Bloco Freio VI Trata Sinais


De forma similar aos blocos anteriores, o bloco da Direo (figura 5.11), recebe
os sinais dir_pwm e dir_dir da VI variveis globais e vindos do controlador de
movimentao, e apresenta ao operador o valor do ngulo das rodas.

Figura 5.11 Bloco Direo VI Trata Sinais


O bloco cmbio recebe os sinais de pulso PWM e a direo para os dois
motores, acionamento-axial e acionamento-radial, compara com os valores de posio
pr-estabelecido para apresentar ao operador qual a marcha est engatada. Esse mdulo
possui duas sub_VI de simulao dos motores de acionamento chamada de Motor_DC,
veja a figura 5.12.

129

Figura 5.12 Bloco Cmbio VI Trata Sinais


A figura 5.13 apresenta o bloco de simulao do acionamento da embreagem.
Diferentemente dos blocos anteriores, esse bloco no possui um motor de corrente
contnua para o acionamento da varivel.
O acionamento do sistema da embreagem no carro de teste realizado por meio
de um conjunto de atuadores eletro-pneumticos com duas vlvulas (direcional e escape
rpido) e um motor de passo para o acionamento da vlvula reguladora de fluxo.

Figura 5.13 Bloco Motor de passo Embreagem VI Trata Sinais

130

Para a simulao da resposta de acionamento do motor de passo e das vlvulas,


alm dos recursos aplicados anteriormente foi utilizado a ferramenta frmula-note que
permite a entrada de variveis e a execuo de funes na forma de texto estruturado
utilizando-se o padro ANSI.
O bloco motor-de-passo-embreagem recebe o valor das variveis de
acionamento das bobinas do motor de passo, vlvula de escape-rpido e vlvula
direcional da VI Variveis-Globais, trata os sinais e os envia novamente para o mdulo
embreagem, onde os sinais de posio do pedal e progresso da embreagem em resposta
aos estmulos do controlador.
Finalmente, o bloco de controle de desacelerao e acelerao (figura 5.14),
realiza o processo de equacionamento das variveis que interferem diretamente na
acelerao e na desacelerao do veculo.
As variveis de posio-embreagem, velocidade-atual-veculo, marcha-atual e
posio-freio so as variveis que definem o sentido da acelerao do veculo no
ambiente de simulao e sua intensidade.

Figura 5.14 Bloco Motor de Controle de Desacelerao e Acelerao VI Trata


Sinais
Uma vez que as variveis entram no lao formula-note, mostrado na figura 5.14,
so executados diversos testes para definir o sentido e direo com que o veculo dever
acelerar ou desacelerar.

131

5.3.3

Mdulo Trajetria-carro
Esse mdulo realiza a simulao da cinemtica do veculo com direo tipo

Ackerman (Osrio, F. S., 2002) em um sistema de coordenadas (X e Y). O Mdulo VI


Trata Sinais envia parmetros de acelerao e ngulo das rodas. Neste caso, o mdulo
gera os movimentos do veculo baseado nas trs equaes 5, 6 e 7 descritas em (Baille,
G. 1999).
.

x = v.cos ( ) .cos ( )

(5)

y = v.sin ( ) .cos ( )
.

= v.

sin
l

(6)
(7)

Onde:

o ngulo das rodas;

o ngulo do veculo com relao ao eixo horizontal X no espao


bidimensional;

x a distncia do centro do carro at o eixo-y;

y a distncia do centro do carro at o eixo-x;

l a distncia lateral entre rodas do veculo a ser simulado;

v a velocidade do veculo (veja figura 5.15).

Figuras 5.15 Variveis das equaes cinemticas


132

As constantes dimensionais definidas no foram baseadas no veculo real.


A figura 5.16 ilustra o painel frontal do mdulo VI Trajetria Carro

Figura 5.16 Painel Frontal VI Trajetria Carro


O display grfico que realiza a simulao de movimentao do veculo no
espao bidimensional construdo por meio do desenho das retas que formam o
contorno do veculo. A cada ciclo de execuo os segmentos que compe o veculo so
desenhados novamente rotacionados e/ou transladados conforme o seu deslocamento no
plano.
A Figura 5.17 ilustra um trecho da estrutura do lao de repetio responsvel por
realizar as operaes de rotao e translao das retas que formam o contorno do
veculo, redesenhado o veculo dentro do plano dando a sensao de movimentao do
veculo no ambiente de simulao.

133

Figura 5.17 Diagrama de blocos com o lao de repetio da simulao de


movimentao do veculo VI Trajetria Carro
Cada um dos cones em amarelo no centro da figura so sub VI responsvei por
desenhar uma reta de contorno ou detatalhe que forma o veculo na tela de simulao de
movimentao. Cada sub VI executa os clculos da posio atual e calcula a prxima
posio conforme o movimento que se deseja executar.

Os dados referentes ao

posicionamento e direo de cada uma das retas so enviados a um cluster que agrupa
todas as informaes e as envia a um grfico tipo x, y para seja simulada a
movimentao do veculo na tela.

134

5.4

RESULTADOS DO AMBIENTE DE SIMULAO


O sistema proposto nesse trabalho para o controle de movimentao de um

veculo de passeio em ambiente de simulao foi desenvolvido e testado.


Os resultados foram obtidos por meio da simulao do controle de
movimentao do veculo no ambiente de simulao realizando-se o acionamento dos
atuadores que acionam o acelerador, freio, direo, cmbio e embreagem, por meio de
comandos de um operador enviados ao controlador de movimentao.
A figura 5.18 mostra a leitura do sinal de posicionamento do acelerador no
ambiente de simulao. O eixo da amplitude do grfico a escala de posio da
borboleta variando de o a 255, ou seja um byte. J o eixo do tempo est em
milesegundos. Portanto, o grfico da figura 5.18 mostra a combinao da amplitude do
sinal de posio do acelerador no tempo.

Figura 5.18 Grfico da resposta do sinal do Acelerador no Simulador.


Com esse grfico podemos verificar o acionamento da acelerao de forma
linear tanto na crescente quanto na decrescente.
A figura 5.19 por sua vez, mostra a leitura do sinal de posicionamento da direo
no ambiente de simulao. O eixo da amplitude do grfico a escala de posio
ngular das rodas dianteiras do carro no simulador.
A posio das rodas varia de forma angular de 0 a 120 graus, sendo que
definimos que quando as rodas esto no fim do curso para a esquerda -60 graus e
quando esto posicionadas ao fim do curso para a direita 60 graus.

135

Figura 5.19 Grfico da resposta do sinal da Direo no Simulador.


Com esse grfico podemos verificar o acionamento da direo de forma linear
tanto na crescente quanto na decrescente.
No grfico mostrado na figura 5.20, podemos verificar a posio do freio no
tempo. O eixo da amplitude do grfico a escala de posio do freio do carro no
simulador.

Figura 5.20 Grfico da resposta do sinal do Freio no Simulador.


A figura 5.21 mostra a leitura do sinal de posicionamento longitudinal do
cmbio no ambiente de simulao. O eixo da amplitude do grfico a escala de posio
da alavanca de cmbio variando de o a 255, ou seja um byte. J o eixo do tempo est em
milesegundos, portanto o grfico da figura 5.21 mostra a combinao da amplitude do
sinal de posio do cmbio no sentido longitudinal no tempo.
136

Figura 5.21 Grfico da resposta do sinal do Cmbio X Simulador.


Na figura 5.22, mostrada a leitura do sinal de posicionamento transversal do
cmbio no ambiente de simulao.

Figura 5.22 Grfico da resposta do sinal do Cmbio Y Simulador.


J o eixo do tempo est em milesegundos, portanto o grfico da figura 5.22
mostra a combinao da amplitude do sinal de posio do cmbio no sentido transversal
no tempo.
A figura 5.23 mostra o teste de simulao do controle de movimentao do
veculo.

137

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

Figura 5.23 Seqncia de movimentao do veculo no Simulador.


O teste mostrado na seqncia da figura 5.23 de (a) (h) mostra o carro no
ambiente de simulao saindo de um ponto qualquer, sendo controlado por um operador
por meio de comandos enviados via teclado at estacionar numa vaga paralela a sua
direita.

138

5.5

CONCLUSES DO CAPTULO
Neste captulo foram abordados assuntos pertinente ao projeto e a construo do

ambiente de simulao aplicando-se os conceitos de instrumentao virtual.

Na

elaborao do ambiente de simulao foram aplicadas equaes que descrevem


matematicamente o modelo cinemtico da trajetria do veculo.
A utilizao de uma nova metodologia de projeto empregando-se testes e
simulao do controlador da movimentao se mostrou flexvel o que permitiu a
elaborao de uma plataforma de simulao modular. Em cada um dos mdulos foram
criados blocos com funes bem estabelecidas dentro das funes de cada um dos
mdulos.
O formato modular mostrou-se alinhado com a arquitetura projetada no
controlador de movimentao embarcado em lgica reconfigurvel. O mdulo serial a
porta de entrada e sada para a troca dos sinais de forma serial entre o controlador de
movimentao e o ambiente de simulao e os distribui ao mdulo variveis globais que
realiza a ligao das variveis entre o mdulo trajetria do carro e o mdulo trata sinais.
A aplicao dos conceitos da instrumentao virtual dentro da arquitetura
modular apresentou vantagens em aspectos da possibilidade da criao de sub-blocos
com funes especficas nos blocos como, por exemplo, motor de corrente contnua.
Finalmente, os resultados obtidos do ambiente de simulao foram divididos em
duas etapas. Na primeira foram realizados testes de simulao com o acionamento de
cada um dos atuadores, responsveis pelo controle de movimentao do veculo no
ambiente de simulao, dos quais foram obtidos grficos que mostram a posio do
atuador no tempo.

J na segunda etapa foi realizado o teste de controle de

movimentao propriamente dito.


O teste de simulao com o controlador de movimentao consistiu em controlar
o veculo no simulador por meio dos comandos enviados pelo operador via teclado. A
simulao objetivou a validao do controlador de movimentao quanto
sincronizao dos tempos de envio dos comandos e resposta aos estmulos do operador
e das variveis controladas.

139

6. DESENVOLVIMENTO DO SISTEMA DE CONTROLE DE


MOVIMENTAO DO VECULO DE TESTES
No captulo 5 foi descrito o projeto e a implementao do ambiente de
simulao e os resultados alcanados. Neste captulo ser detalhado o projeto dos
circuitos de acionamento e controle do carro de teste, movido por um motor a exploso
e equipado com cmbio totalmente mecnico.

Adicionalmente, apresenta-se o

desenvolvimento das placas de interface de sinal e de potncia responsveis por receber


os sinais vindos dos terminais de extenso da FPGA para acionar os atuadores.
O desenvolvimento do sistema de controle de movimentao do veculo de teste
objetiva: (a) dotar um veculo de um sistema de controle e acionamento de atuadores
(b) permitir o controle de movimentao por meio de comandos eletrnicos. Com esse
sistema pronto e em funcionamento o projeto SiAE contar com uma plataforma
flexvel de controle da movimentao em funcionamento e confivel para que se possa
dar seqncia ao desenvlvimento do sistema de baliza automtica.
Finalmente, so apresentados os resultados obtidos no acionamento dos
atuadores que controlam as variveis de movimentao do veculo de testes

6.1.

DESENVOLVIMENTO DAS PLACAS DE INTERFACE E POTNCIA


Nas etapas anteriores do projeto SiAE foram projetadas e implementadas as

placas para acionamento dos mdulos. As citadas placas por sua vez possuam
limitaes tecnolgicas, pois em sua concepo, foram utilizados rels para realizar o
acionamento dos motores de corrente contnua. Este problema tcnico impossibilitava o
controle de velocidade dos motores usando um sinal eletrnico apropriado (por exemplo
PWM). Alm do anterior, nem todos os mdulos possuam placas apropriadas para seu
funcionamento.
Outro ponto que motivou a projetar e implementar novas placas de acionamento
e condicionamento foi a necessidade de que o kit de desenvolvimento baseado em
FPGA Spartan3 muito sensvel a correntes superiores a 100 mA. Para garantir que
no circulariam surtos de corrente pelo kit de desenvolvimento Spartan-3 foi necessrio

140

que isolar os sinais de acionamento dos atuadores e os sinais de realimentao dos


transdutores.
Alm das placas de acionamento dos atuadores, foi necessrio o projeto de uma
placa com um conversor A/D Analgico digital. Alm do anterior foi projetada uma
placa de interface com a FPGA, utilizando opto-acopladores para o devido isolamento e
proteo da placas.
Por esses motivos citados acima, foi realizado um novo projeto das placas para o
acionamento dos motores e condicionamento dos sinais. Para projetar os circuitos de
acionamento dos atuadores utiliza-se uma metodologia de separar os circuitos em
mdulos lgicos (de controle) e de potncia.
Os mdulos foram distribudos conforme sua funo, ou seja, foi projetada uma
placa de potncia para o acionamento de cada atuador: placa para a direo, placa para o
freio, acionamento transversal e uma outra para o acionamento longitudinal do cmbio.
O projeto dos circuitos (lgicos e potncia) foi realizado por (Willians R., 2006)
utilizando o software PROTEL DXP 2004. O sistema est composto de quatro (4)
placas de controle de potncia de acionamento, uma (1) placa de acionamento da
embreagem, uma (1) placa para o conversor analgico digital e uma (1) placa de
interface com a FPGA.

6.1.1. Controle de Potncia de Acionamento dos Atuadores (Ponte H)


A placa ponte H contm um circuito para acionamento de motores de corrente
contnua. O circuito contem transistores mosfet de rpido chaveamento (ideal para
aplicao com PWM) e suporte a correntes elevadas.

Os transistores canais P

(IRF4205) suportam uma corrente de dreno contnua (25C) de 74A e os transistores


canais N (IRF3205) suportam uma corrente de dreno contnua (25C) de 110A.
A Figura 6.1 ilustra a parte principal do circuito: a ponte H com os transistores.
O circuito completo pode ser encontrado no Apndice A deste documento (vide placa
de potncia ponte H, neste apndice).

141

12V

R5
10K
R1
100

Q3

U4C

R7
10K

R3
100

Q1
IRF4905

5
CD4069UBCM

IRF4905

DIR
1

U3A

Motor1

U4A
3

Motor2

U4B

U3B
3

Q4
CD4093BCM

CD4069UBCM

R2
100

Q2
R6
10K

CF1

IRF3205

IRF3205

4
5

R4
100
R8
10K

CD4069UBCM

PWM

CD4093BCM

12V

Figura 6.1 Esquemtico do Circuito Ponte H


A figura 6.2 mostra uma imagem em trs dimenses da placa com o circuito de
potncia Ponte H. Esta imagem foi obtida aps o desenho do circuito e a configurao

de suas trilhas.

Figura 6.2 Imagem da placa Ponte H Circuito placa Ponte H


Ao realizarem-se os testes com uma placa experimental o projeto da placa foi
enviado para a empresa Stick circuitos impressos, (Stick, 2007), para realizar a
prototipao da mesma.
Aps a fabricao das placas foi realizada a montagem dos componentes no
laboratrio de soldagem e os testes de continuidade do circuito. Aps a montagem e
dos testes de continuidade foram realizados os testes em bancada com cada uma das
placas conectadas FPGA.

142

DIR

6.1.2. Controle de Acionamento da Embreagem


A placa da embreagem ativa duas eletro-vlvulas do sistema Autonomy e o
motor de passo. Para ativao das eletro-vlvulas foram utilizados transistores
MOSFET do tipo N (IRFZ48N) que suporta uma corrente de dreno contnua (25C). O
circuito para ativao de cada vlvula mostrado na figura 6.3.
12V

JP3
0
1

0
1
Terminais Eletro-vlvula

D9

Q1
IRFZ48N
R1
10k

Figura 6.3 Esquemtico do Circuito de Acionamento da eletro-vlvula


Para a ativao do motor de passo foi utilizado o driver L298N (veja a figura
6.3).
A figura 6.4 mostra uma imagem em trs dimenses da placa com o circuito de
acionamento da eletro-vlvula.

Figura 6.4 Imagem tridimensional da placa de acionamento da eletro-vlvula


A figura 6.5 mostra o circuito de potncia projetado para o acionamento do
motor de passo responsvel pelo controle de velocidade de acionamento da embreagem.

143

U1
MP1
MP2
MP3
MP4

5
7
10
12

5V
6
11
8

5V 12V

IN1
IN2
IN3
IN4

9
4

VSS
VS

EN A
EN B

OUT1
OUT2
OUT3
OUT4

GND

ISEN A
ISEN B

JP2
2
3
13
14

1
2
3
4

M_Passo1a
M_Passo1b
M_Passo2a
M_Passo2b

1
15

1
2
3
4
BORNE4

L298N
12V

D1
M_Passo1a

D2

M_Passo1b
D5

D3

M_Passo2a
D6

D4

M_Passo2b
D7

D8

Figura 6.5 Esquemtico do Circuito de acionamento Motor de Passo


A placa de potncia da embreagem tambm realiza a regulao de tenso 5V
necessria para esta e as outras placas (com exceo da ponte H). O circuito utiliza o
regulador de tenso 7805 (veja a figura 6.6).
12V

5V
U2

C1
Cap
0.33uF

IN

5V
3
OUT
GND
LM7805CT
2

C2
Cap
0.1uF
J6
1
2
3
4
5
6
7
8
9

1
2
3
4
5
6
7
8
9

BORNE9

Figura 6.6 Esquemtico do Circuito Regulador de tenso 5V


O circuito completo da Placa Embreagem encontra-se disponvel no Apndice A
(vide placa de acionamento da embreagem, no citado apndice).
6.1.3. Conversor Analgico Digital (A/D)
A Placa Conversor Analgico Digital A/D realiza a converso e multiplexao
de 8 sinais utilizando um CI ADC0808 de 8 entradas. Os sinais EOC (End of
Conversion) e START/ALE so usados pelo Microblaze para a correta operao e

multiplexao dos 8 sinais analgicos que so convertidos em palavras digitais de 8 bits.

144

A figura 6.7 mostra o circuito do conversor Analgico Digital implementado.

Figura 6.7 Esquemtico do Circuito Conversor dos Sinais Analgico/Digital (A/D).


Na figura 6.8 mostrada uma imagem tridimensional da placa com o circuito do
conversor analgico digital.

Figura 6.8 Imagem da placa com o Circuito do Conversor Analgico Digital (A/D).

145

6.1.4. Interface de Sinais e Comando entre a FPGA e o Circuito dos Atuadores


O nvel de tenso do sinal nos pinos de sada da FPGA de 3,3V. Para
compatibilidade deste nvel de tenso com os necessrios (5V e 12V) foram utilizados
acopladores pticos de rpido chaveamento (do tipo 6N137).
A figura 6.9 mostra parte do circuito opto-isolado projetado e implementado
para isolar os sinais de acionamento e os sinais digitais dos transdutores utilizados para
o controle de movimentao.
Cada sinal de sada da FPGA ligado a um opto-acoplador da seguinte maneira:
para os sinais de entrada, somente um resistor de 1k foi utilizado em srie com o sinal,
pois a placa trabalha com uma tenso de 5V. E para os de sada foi utilizado um
resistor de 330 .
Os jumpers JW1, JW2 e JW3 so utilizados para selecionar o nvel de tenso do
pull-up externo na sada dos opto-acopladores. Cada jumper est associado a um grupo

de sinais:
5V

12V
3 JW1
2

5V

U1 6N137
FPGA_OUT0

R1
100

1
2
3
4

1
2
3
4

8
7
6
5

8
7
6
5

INTERFACE_OUT0
R32
330

U2 6N137

Figura 6.9 Opto-acoplagem do sinal fpga_out0 Placa Interface

JW1: Sinais de 0 a 12;

JW2: Sinais de 13 a 19;

JW3: Sinais de 20 a 30.

A placa interface d suporte a 31 sinais de sada e 31 sinais de entrada. Foi


projetada para utilizao com a placa Spartan-3 (Digilent, 2006). A conexo deve ser
feita utilizando cabos flats de 40 vias conectadas aos conectores A2 e B1 da placa S3SB e aos conectores JP1 e JP2 respectivamente da (Placa Interface FPGA).

146

Na figura 6.10 mostrada uma imagem tridimensional da placa com o circuito


da placa de interface com a FPGA.

Figura 6.10 Imagem da placa com o Circuito de interface.


Aps a gerao dos esquemticos, software DXP 2004 gera automaticamente
todo o footprint e roteamento da PCB final. Os arquivos gerados pelo DXP foram ento
enviados para o processo de fabricao para a empresa especializada. Os desenhos das
PCBs encontram-se disponveis no Anexo B deste documento.
6.2.

RESULTADOS OBTIDOS COM O CONTROLE DE MOVIMENTAO


NO VECULO DE TESTES
Os resultados obtidos com a implementao do controle de movimentao

proposto foram classificados em duas diferentes etapas.


Na primeira etapa foram realizados testes com cada um dos atuadores instalados
no veculo. O teste consistiu em acionar os atuadores por meio de comandos enviados
via teclado pelo operador ao controlador de movimentao.
Os resultados alcanados com este teste podem ser comparados com os testes
realizados no simulador (vide seo 5.4 do capitulo 5).
A figura 6.11 mostra o sinal de posio da borboleta do acelerador do veculo
de teste. Por meio desse sinal pode-se controlar a acelerao do veculo.

147

Figura 6.11 Sinal de posio da borboleta do acelerador Captura da posio do


atuador no Carro de testes real.
O grfico na figura 6.11, mostra a curva de acelerao mxima, o que indicado
pelo valor posicional 225, e a curva de desacelerao at zero.
A figura 6.12 por sua vez, mostra o sinal de posio angular da direo do
veculo. O grfico (ver figura 6.12) mostra a curva de deslocamento angular das rodas
at o fim de curso mecnico da barra de direo. Pode-se visualizar a posio saindo de
0 graus e chegando at 53 graus para a direita (escala positiva) e chegando at a 60
graus (escala negativa, fim de curso para a esquerda.

Figura 6.12 Sinal de posio da Direo Captura da posio do atuador no Carro de


testes real.

148

Na figura 6.13 mostrado o sinal relativo posio do freio, sendo que esta
varia de 0 a 255. Quando a leitura do transdutor indica (0) significa que o freio est
desativado, e quando indica 255 o freio est totalmente acionado.

Figura 6.13 Sinal de posio do Freio Captura da posio do atuador no Carro de


testes real.
Na figura 6.14 mostrado o sinal relativo posio do cmbio no eixo X (ver
figura 4.13 no captulo 4) sendo que esta varia de 0 a 255. A combinao da posio do
cmbio no eixo X e no eixo Y indica que uma marcha est ou no engatada.

Figura 6.14 Sinal de posio do Cmbio em X Captura da posio do atuador no


Carro de testes real.

149

Na figura 6.15 mostrado o sinal relativo posio do cmbio no eixo X, sendo


que esta varia de 0 a 255.

Figura 6.15 Sinal de posio do Cmbio em Y Captura da posio do atuador no


Carro de testes real.
J na segunda etapa foram realizados os testes de movimentao do veculo. O
teste de movimentao do veculo foi realizado num estacionamento.

Este teste

consistiu em controlar a movimentao do veculo por meio de comandos enviados ao


controlador por meio do teclado.
A figura 6.16 mostra uma seqncia de imagens de um vdeo onde se registrou o
teste de movimentao do veculo. A realizao do teste teve por finalidade a validao
do controle de movimentao do veculo por meio de comandos enviados por meio de
comandos ao controlador de movimentao.
O teste consistiu em engatar a primeira marcha, soltar o freio e a embreagem e
controlar o veculo em movimento numa rea de 800 m num estacionamento vazio
(vide as seqncias, figura 6.16(a) at (q).

150

(a)

(e)

(i)

(n)

(b)

(f)

(j)

(o)

(c)

(g)

(l)

(p)

(d)

(h)

(m)

(q)

Figura 6.16 Seqncia de cenas do vdeo do teste de movimentao do veculo de


teste.
6.3.

CONCLUSES DO CAPTULO
Neste captulo foram abordados os principais pontos relativo ao projeto do

sistema eletrnico de controle de movimentao do veculo real.


O projeto e desenvolvimento das placas de controle e acionamento dos atuadores
e os transdutores de grande importncia ao trabalho como um todo, pois desempenha
um papel muito importante no que tange o acionamento eletro-eletrnico.
Os resultados obtidos tambm foram distribudos em duas etapas. Na primeira
etapa foram executados testes com os atuadores no veculo real. Os grficos obtidos
mostram os atuadores sendo acionados descrevendo a posio no tempo.

A segunda

etapa por sua vez mostra uma seqncia de frames da filmagem do teste de
movimentao realizado com o veculo real.
151

7. CONCLUSES E TRABALHOS FUTUROS


7.1.

CONSIDERAES GERAIS
Este trabalho prope a implementao de uma arquitetura de controle de

movimentao de um veculo que atenda as necessidas de segurana, conforto e baixo


custo, dentro dos parmetros estabelecidos no projeto SiAE para o estacionamentm
automtico.
O sistema de controle embarcado em lgica reconfigurvel proposto explora o
uso dos conceitos de arquitetura modular para o controle dos atuadores de acionamento
da movimentao do veculo de passeio comum com cmbio totalmente mecnico.
Neste trabalho verificou-se a flexibilidade da implementao do sistema de
controle de movimentao (com controle implementado em FPGA), assim como
tambm, foi desenvolvido um ambiente de simulao (baseado em uma ferramenta de
instrumentao virtual) para a execuo de testes e validao do sistema antes da
realizao dos testes com o veculo real.
7.2.

CONTROLADOR

DE

MOVIMENTAO

EM

HARDWARE

RECONFIGURVEL
O projeto e implementao do controlador de movimentao em hardware
reconfigurvel trouxe ao projeto SiAE novo cenrio tecnolgico, pois abriu um novo
caminho para a elaborao de sistemas envolvendo o controle da navegao seguindo
uma trajetria. Adicionalmente, a tecnologia envolvida pode ser adaptada para tcnicas
conhecidas em robtica (implementao/validao) como, por exemplo, a navegao
evitando obstculos. O projeto em si um passo prvio para a elaborao de um sistema
de estacionamento automatizado (baliza automtica).
A extenso da arquitetura modular (proposta nesse trabalho) foi potencializada
com a flexibilidade da implementao do controle de movimentao usando hardware
reconfigurvel.
No que tange os resultados obtidos com a implementao do sistema de controle
de movimentao embarcado em lgica reconfigurvel motra-se promissor em dois
principais aspectos: tempo de projeto e flexibilidade em hardware/software.

152

Foram utilizados 85% dos recursos lgicos do kit de desenvolvimento


empregado. No houveram perdas na freqncia do clock de cada um dos mdulos e do
sistema como um todo possibilitando ao mesmo funcionar at na freqncia mxima
oferecida pelo kit Spartan-3.
As vantagens da arquitetura proposta para o sistema de controle de
movimentao aplicando-se sistema reconfigurvel com relao aos sistemas
convencionais so:


a utilizao de perifricos configurados em hardware por meio da


linguagem VHDL;

7.3.

flexibilidade em software e hardware;

ciclo de projeto testes e validao mais rpidos e concisos .

O SISTEMA DE SIMULAO
O ambiente de simulao trouxe ao projeto uma nova metodologia de ciclo de

projeto aplicando-se testes de simulao para a validao do controle de movimentao.


Os resultados obtidos e apresentados na forma de grficos da resposta do sinal
das variveis de controle da movimentao mostram a atuao ao longo do tempo (veja
seo 5.4 do captulo 5).

Tambm foram apresentados resultados no mbito do

controle de movimentao no ambiente de simulao por meio de uma seqncia de


fotos do veculo movendo-se na janela do simulador bem como a indicao de todas as
variveis controladas.
A arquitetura modular do sistema de simulao mostrou-se alinhado com a
arquitetura projetada e implementada no controlador.

A utilizao dos conceitos da

instrumentao virtual contribuiram para a concepo da arquitetura modular


apresentando recursos como a criao de sub-VIs com funes especficas em cada um
dos mdulos e blocos do sistema (vide seo 5.3 do captulo 5).
O controle de movimentao no ambiente de simulao mostrou-se fundamental
para a execuo dos testes e validao do controlador de movimentao antes dos testes
com o veculo real.

153

7.4.

INTEGRAO DO SISTEMA DE CONTROLE DE MOVIMENTAO


NO VECULO DE TESTES

Tabela 12 Principais Sistemas de Automao Vecular Implementados comparados ao


sistema proposto neste trabalho

(*) Patentes registradas no banco de patentes dos Estados Unidos da Amrica.

154

O desenvolvimento do sistema de controle de movimentao do veculo de


testes objetivou a implementao de um sistema capaz de acionar os atuadores que
controlam a movimentao do veculo de testes.
O projeto e implementao do sistema eletro-eletrnico foi baseado na
distribuio proposta no sistema projetado nas fases anteriores (Bellardi, T., 2005) e
(Garrido R., 2001), mas foi reprojetado com a utilizao de transistores para o controle
de velocidade dos atuadores.
A tabela 12 apresenta uma comparao com os principais caractersticas de
outros trabalhos com este trabalho. Destacam-se contribuies quanto a flexibilidade do
sistema proposto e a utilizao de processamento embarcado em lgica reconfigurvel.
Os resultados obtidos com a implementao do controle de movimentao foram
obtidos em duas etapas.
Na primeira fase foram testados todos os acionamentos das variveis de controle
de movimentao e a obteno dos grficos com os sinais da posio no tempo de cada
um dos atuadores mostrados nas figuras 6.10 at a figura 6.14.
Comparando com os grficos obtidos com o acionamento dos atuadores no
simulador (veja as figuras 5.17 at 5.21) podemos ver que o sistema de controle
respondeu satisfatoriamente no ambiente de simulao e no controle do veculo real.
J na segunda fase foram realizados testes de controle de movimentao com o
veculo de testes. A figura 6.15 mostra o teste realizado que consistiu em controlar o
veculo por meio de comandos via teclado enviados ao controlador embarcado em
lgica reconfigurvel.
Os resultados obtidos mostraram-se satisfatrios dentro dos objetivos traados
inicialmente, relativos ao projeto de um sistema capaz de receber comandos e realizar o
controle dos atuadores responsveis pela movimentao de um veculo de passeio
movido por um motor a combusto interna.
7.5.

SUGESTES PARA TRABALHOS FUTUROS


As perspectivas de trabalhos futuros relacionados objetivam atingir um nvel

funcional do sistema para atender as espectativas do projeto SiAE bem como o controle
de trajetria e de navegao.

155

Ao adicionar os transdutores de posicionamento do veculo e localizao dos


obstculos, os mdulos para a gerao e controle de trajetria o sistema estar completo
para executar a tarefa de estacionamento automtico.
7.5.1. Controle de trajetria
Para a realizao do estacionamento automtico o projeto de um mdulo que
gere e controle a trajetria necessrio. O mdulo de gerao de trajetria recebe os
sinais relativo as distncias entre o veculo e a vaga de estacionamento e realiza os
clculos para gerar a trajetria que levar o veculo dentro da vaga com segurana. O
controle da trajetria se d com a avaliao em tempo real da posio do veculo e as
veriveis de controle frente a trajetria pr-estabelecida.
A arquitetura do sistema proposto possui a flexibilidade necessria para acoplar
o mdulo de gerao e controle da trajetria sendo necessrio a utilizao de um kit
com maior nmero de unidades lgicas.
7.5.2. Controle de navegao
O Controle de navegao uma proposta para dotar o veculo de inteligncia
capaz de alcanar um objetivo posicional de forma a desviar de obstculos dinmicos ou
estticos dentro de regras de otimizao de caminho.

156

REFERNCIAS BBLIOGRFICAS
Amato Joo Neto (2004) Relatrio setorial FINEP Semicondutores
http://www.finep.gov.br/PortalDPP/relatorio_setorial - acessado em 2004
Baille, Grard at al. (1999).: Le CyCab de INRIA Rhne-Alpes. INRIA. Relatrio
tcnico no. 0229.
Baltes, J., and Lin, Y. Lin (1999) .: Path- Tracking Control of a Non-Holonomic Carlike Robot with Reinforcement Learning. CITR, Tamaki Campus, University of
Auckland, Private Bag 92019 pg 117
Bellardi Thiago C., (2005) .: Definio de uma arquitetura flexvel para controle de
movimentos de um veculo de passeio. Publicao DM 002 Dissertao de
mestrado apresentada no departamento de mecnica da Universidade de Braslia,
novembro.
Bellows, P.; Hutchings, B. JHDL - An HDL for Reconfigurable Systems, Proceedings
of the IEEE Symposium on Field-Programmable Custom Computing Machines,
Abril 1998.
Becker, J. Simon, A., Shnitz, I., Gllinger, H., Schumacher, W., (1998) A
Decentralized Path Planning and Control Structure for an Autonomous Vehicle,
In Proceeding of the IV '98. IEEE International Conference on Intelligent
Vehicles. Stuttgart, Alemanha - Outubro 1998.

BMW srie 7 www.automotor.xl.pt/0505/900.shtm - Acessado em maro de 2005


Buyya, R. (1999a) .:High Performance Cluster Computing: Architectures And
Systems, Prentice Hall Nj, USA.
Buyya, R. (1999a) .: High Performance Cluster Computing: Programming And
Applications , Prentice Hall Nj, USA.
Brown S.; Vranesic Z. (2000) .: Fundamentals of Digital Logic with VHDL Design. Mc
Graw Hill, Toronto.
Bushby S. (1997).: BACnet: a Standard Comunication Infrastrutures for intelligent
Buildings. In: Elsevier, Automation in Construction 6, pg. 529-540.

157

CNN (a) - Four vehicles finish in $2 million robot race. Acessado em setembro 2005.
http://www.cnn.com/2005/TECH/science/10/08/robot.race.ap/.
CNN (b) - Don't like parking? Try Piv, - Acessado em setembro 2005.
http://www.cnn.com/2005/AUTOS/09/30/nissan_concept.reut/
Compton, K.; Hauck, S. (2002) .:Reconfigurable Computing: A Survey of Systems and
Software, ACM Computing Survey, Vol. 34, No. 2, pg. 171-210.

Consoni Flavia (2004) Relatrio setorial FINEP Automveis acessado em 2004


http://www.finep.gov.br/PortalDPP/relatorio_setorial
Correia A.; Llanos C. H. Q.; Carvalho R. W.; Alfaro S. A. (a) (2007): A Design/Testing
Platform Based on Reconfigurable Architectures and Virtual Instrumentation Applied to
the Hands-free Driving Automobile Problem, WSEAS transactions on systems and
control. Issue 3, vol. 2, Maro 2007.
Correia A.; Llanos C. H. Q.; Carvalho R. W.; Alfaro S. A. (b) (2007): A Platform Based
on Reconfigurable Architectures and Virtual Instrumentation Applied to the
Driving Automobile Problem. 6th WSEAS International Conference on
SIGNAL PROCESSING, ROBOTICS and AUTOMATION (ISPRA '07). Ilha
de Corfu, Grcia, Fevereiro, 2007. pg. 242 a 248.
Digilent - http://www.digilentinc.com/ - Acessado em dezembro de 2006.
Dehon A. (2000) .: The Density Advantage of Configurable Computing, IEEE
Computer. Vol. 33, No. 4.
Dudek, G. and Jenkin, M. (2000). Computational Principles of Mobile Robotics.
Cambridge University Press, Cambridge, UK.
EDK MicroBlaze tutorial - Xilinx 2005.
Garrido R. (2001).: Automao e Controle Aplicados em Veculo de Combusto interna
Convencional em Deslocamento Linear. Dissertao de mestrado UnB.
Giove D. (2004).: Reconfigurable Hardware Resource in Accelerator Control Systems.
EPAC, Lucerne Switzerland.
Goetting, H.H. (2001) .: FOX GmbH: Automatisierte Fahrzeuge. http://www.foxit.de
Good Warren T.; Vilhauer Jr., Jacob E (1988).: Automatic parallel parking systemPatent No 4735274 United States

158

Gu D., Hu. H. (2002).: Neural Predictive Control for a Car-like Mobile Robot.
International Journal of Robotics and Autonomous Systems, Vol. 39, No. 2-3,
pg 1-15
Hamblen J. O.; Furman M. D. (2001).: Rapid Prototyping of Digital System. Ed.
Kluwer Academic Publishers.
Han-Shue; Tan Jrgen Guldner; Satyajit Patwardhan; Chieh Chen an Bndicte Bougler
(1999) .: Development of on Automated Steering Vehicle Based on Roadway.
Harteinsten R. (2002).: Enabling Technologies for Reconfigurable Computing and
Software/Configure Co-Design. CNRS International Workshop ENST, Paris.
Hutton M.; Yuan R.; Schleicher J.; Chua K.; Phoon H. (2006) .: A methodology for
FPGA to Structured_ASIC Synthesis and Verification. Proceeding of the
Conference of Design, Automation and test in Europe, pg. 64-69.
Hwang, K.; Xu, Z. (1998) .:Scalable Parallel Computing: Technology, Architecture,
Programming, McGraw-Hill.
I.N.R.I.A institute Acessado em 2007 http://www.inria.fr/index.en.html
Kelber Christian R., Cludio R. Jung, Farlei Heinen (2005) .: Computao Embarcada;
Projeto e Implementao de Veculos Autnomos Inteligentes. XXV Congresso
da SBC, Janeiro.
Kelber, C.R.; Osrio, F.S.; Jung, C.R.; Heinen, F.J.; Dreger, R.S.; Gules, R.; Mello Jr.,
C.D.; Silveira, M.A.; Schumacher, W.; (2003a) "Tecnologias para Automao
Veicular - Solues em Mecatrnica e Sistemas de Apoio ao Motorista";
Engenharia- Estudos Tecnolgicos; ISSN 1517-3615, Vol. XXIII, No. 24, p.37-

47.
Kelber, C.R.; Dreger, R.S.; Gomes, G.K.; Webber, D.; Schirmbeck, J.; Netto, R.H.;
Borges, D.A.; (2003b) "Cell-Phone Guided Vehicle, an Application based on a Driveby-Wire Automated System"; In Proceeding of the 2003 IEEE Intelligent
Vehicles Symposium; Ohio, USA, 9-11 June.

Lewis, T. G.; El-Rewini, H. (1998) .: Distributed and Parallel Computing, Manning.

159

Li J. H, Lee, Li, P. M. (2005) A Neural Network Adaptive Controller Design for FreePitch-Angle Diving Behavior of an Autonomous Underwater Vehicle. Robotics
and Autonomous Systems. Elsevier, 52 pg 132 - 147
Magnets A Case Study of Mechatronic System Design. IEEE/ASME Transaction on
Vehicle Technology, Vol., 4, No 3, Fevereiro.
Makimoto T. (2002) .: The Hot Decade of Field Programmable Technologies. IEEE
Proceedings of the International Congress on Field Programmable Technologies.
Mingjie Lin.; Gamal A.; Chang Y.; Wong S. (2006) .: Performance Benefits of
Monolithically Stacked 3D-FPGA. FPGA06 - USA.
Moore G. E. (1997) .: The Microprocessador: Engine of the Technology revolution.
Communications of the AMC, Vol. 40 (2), pg. 112-114.
M. Herz et al. (2002) .: Memory Organization for Data-Stream-based Reconfigurable
Computing; Proc. IEEE ICECS 2002, Dubrovnik, Croatia.
National I. - http://zone.ni.com/devzone/cda/tut/p/id/5053 - acessado em 21/02/2007.
Osrio, F. S.; Heinen, F.; Fortes, L. (2002). Controle da Tarefa de Estacionamento de
um Veculo Autnomo atravs do Aprendizado de um Autmato Finito usando
uma Rede Neural J-CC. In: VII Simpsio Brasileiro de Redes Neurais, 2002,
SBC Porto de Galinhas - Recife.
Osrio, F. S.; Musse, S. R.; Santos, C. T.; Heinen, F.; Braun, A. e Silva, A.T. S. (2004).
Ambientes Virtuais Interativos e Inteligentes: Fundamentos, Implementao e
Aplicaes Prticas. XXIV Congresso da SBC JAI 2004 (Jornadas de
Atualizao

em

Informtica).

Tutorial.

Salvador,

Bahia.

Web:

http://inf.unisinos.br/~osorio/palestras/jai04-avii.html (acessado: maio de 2005)


Patterson, David A.; Hennessy, John L. (2000).:Organizao e projeto de computadores:
A interface Hardware/Software.2 Ed. Rio de Janeiro:LTC, pg. 551.
Petko, M., Uhl, T. (2001) .: Embedded controller design-mechatronic approach. IEEE,
Second Workshop on Robot Motion and Control. 195-200
Pfister, G. (1998).:In Search Of Clusters, Prentice Hall.

160

Regazzi, Rogrio Dias; Pereira, Paulo Srgio e Silva Jr; Manoel Feliciano (2005) .:
Solues prticas de instrumentao Utilizando a programao grfica
Labview.
Robosoft S.A. Automated People Transportation Applications, Technologies and
Perspectives.

Sep.

2003

Acessado

Disponvel

em

http://www.robosoft.fr/Brochures/wp-transports_EN.pdf
Sanchez, E. et al. (1999) .:Static and Dynamic Configurable Systems, IEEE
Transactions of Computers, pp. 556-564.
Self-parking car hits the shops. BBC News, 01 setembro 2003 - Disponvel em
http://www.news.bbc.co.uk/2/hi/technology/3198619.stm.
Shaladove S. E. e Desoer C. A., 1991
Shimazaki Kazunori; Kimura Tomio; Yamada Satoshi (2004).: Parking assisting device
Patent No US 6711473 B2 - United States
Simon, A.; Becker, J., (1999) Vehicle Guidance for an Autonomous Vehicle, In
Proceeding of the IEEE International Conference on Intelligent Transportation
Systems. Tokyo, Japan; 5-8 October.

Simon, A., Shnitz, I., Becker, J., Schumacher, W.; (2000) Navigation and Control of
an Autonomous Vehicle, In Proceeding of the 9th IFAC Symposium on Control
in Transportation Systems. Braunschweig; 13-15 June.

Sipper, M.; Sanchez, E. (2000) .:Configurable Chips Meld Software and Hardware,
IEEE Computer, pp. 120-121.
Shnitz, I., Schwarze, K., (1999) Lateral Control of an Autonomous Vehicle: Design
and First Practical Results, In Proceeding of the IEEE International Conference
on Intelligent Transportation Systems. Tokyo, Japan; 5-8 October.

Shnitz, I. (2001); "Querregelung eines autonomen Strassenfahrzeugs"; ForschrittBerichte VDI, Reihe 8, Nr. 882.

Steven E. Shaladover; Charles A. Desoer (1991) .: Automatic Vehicle Control


Developments in the PATH Program. IEEE Transaction on Vehicle Technology,
Vol., 40, No 1, Fevereiro.
Stick - http://www.stick.ind.br/ - acessado em 21/02/2007.

161

Tanaka Yuu; Iwata Yoshifumi; Satonaka Hisashi; Endo Tomohiko; Kubota Yuichi;
Matsui Akira; Iwakiri Hideyuki; Sugiyama Toru; Kawakami Seiji; Iwazaki
Katsuhiko; Kataoka Hiroaki (2006) .: Vehicle backward movement assist device
and vehicle parking assist device

- Patent No 7039504 United States

TOYOTA MOTOR CORPORATION.: The PM concept vehicle Acessado em


http://www.toyota.com/vehicles/future/pm.html
Taghavi T.; Ghiasi S.; Ranjan A.; Raje S.; Sarrafzadeh M. (2004) .: Innovative or
Perish: FPGA Physical Design. ACM, ISDP04, USA.
Tan, H.S., Guldner, J., Patwardhan, S., Chen, C., Bougler, B. (1999) .: Development of
an Automated Steering Vehicle Based on Roadway MagnetsA Case Study of
Mechatronic System Design. IEEE/ASME Transactions on Mechatronics, Vol.
4, No. 3. 258 271.
Turley, J. (1998).:"Triscend E5 Reconfigures Microcontrollers", Microprocessor
Report, Nov. 16, pg. 12-13.
Tzuu-Hseng, S., Chang, S-J., Chen, Y-X (2003).: Implementation of Autonomous
Fuzzy Garage-Parking Control by an FPGA-Based Car-Like Mobile Robot
Using Infrared Sensors. International Conference on Robotics & Automation,
Taipei, Taiwan, pg 3776 3781
Villasenor, J.; Mangione-Smith, W. H. (1997) .:"Configurable Computing", Scientific
American, pg. 54-59.
Yang E., Gu, D., Mita, T., Hu, H (2004) .: Nonlinear Tracking Control of A Car-Likemobile Robot via Dynamic Feedback Linearization. Control 2004, University of
Bath, UK, Setembro.
Yabarrena, Jean Mimar Santa Cruz (2006) .: Tecnologias system on chip e CAN em
sistemas de controle distribudo. Dissertao de mestrado USP.
Wada M., Kang Sup Yoo e Hideki Hashimoto (2003) .: Development of Advanced
Parking Assistance System. IEEE Transaction on Industrial eletronics, Vol., 50,
No 1, Feb. 2003.
Willians R. (2006) .: Projeto de um Sistema Embarcado em Arquitetura Reconfigurvel
e instrumentao Virtual Aplicados a Veculos Autnomos Trabalho de
Graduao - UnB.
162

Wolf, W. (1994) .:Modern VLSI Design: A system Approach, Englewood Cliffs,


Prentice Hall.
Xilinx : Spartan-3 Starter Kit Board User Guide. UG130 (v1.1) Maio 2005.
Zhao Y., Collins, Jr. E.G (2005).: Robust Automatic Parallel Parking in Tight Spaces
via Fuzzy Logic. Robotics and Autonomous Systems. Elsevier, 51 pg.111 127.

163

APNDICES

164

APNDICE A DESENHOS DOS CIRCUITOS DAS PLACAS DE


POTNCIA E SINAL
 CIRCUITO DA PLACA DE POTNCIA PONTE H

165

 CIRCUITO DA PLACA DE ACIONAMENTO DA EMBREAGEM

166

 CIRCUITO DA PLACA DO CONVERSOR ANALGICO DIGITAL


A/D

167

 CIRCUITO DA PLACA DE INTERFACE DE POTNCIA E SINAIS

168

APNDICE B DESENHO DOS PCBs DAS PLACAS DE


POTNCIA E SINAL

 PCB DA PLACA DE POTNCIA PONTE H

 PCB DA PLACA DE ACIONAMENTO DA EMBREAGEM

169

 PCB DA PLACA DO CONVERSOR ANALGICO DIGITAL A/D

 PCB DA PLACA DE INTERFACE DE POTNCIA E SINAIS PARA A


FPGA

170

APNDICE C RELATRIO DO SISTEMA DE CONTROLE

 PROCESSADOR
o MicroBlaze
Utilizao dos recursos da FPGA - Microblaze
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

827
557
1119
3

1920
3840
3840
12

% Usado
43.07%
14.51%
29.14%
25.00%

 BARRAMENTOS DE COMUNICAO
o dlmb
Utilizao dos recursos da FPGA - dlmb
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

1
1
1
-

1920
3840
3840
-

171

% Usado
0.05%
0.03%
0.03%
0.00%

o ilmb
Utilizao dos recursos da FPGA - ilmb
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

1
1
1
-

1920
3840
3840
-

% Usado
0.05%
0.03%
0.03%
0.00%

o mb_opb
Utilizao dos recursos da FPGA - mb_opb
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

145
11
249
-

1920
3840
3840
-

172

% Usado
7.55%
0.29%
6.48%
0.00%

 Controle de MEMRIA

o dlmb_bram
Utilizao dos recursos da FPGA - dlmb_bram_cntlr
Recursos
Usado
Disponvel
% Usado
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

3
1
5
-

1920
3840
3840
-

0.16%
0.03%
0.13%
0.00%

o ilmb_bram
Utilizao dos recursos da FPGA - dlmb_bram_cntlr
Recursos
Usado
Disponvel
% Usado
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

3
1
5
-

1920
3840
3840
-

173

0.16%
0.03%
0.13%
0.00%

 PERIFRICOS

o Chaves 8 bits
Utilizao dos recursos da FPGA - Chaves
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

49
72
27
-

1920
3840
3840
-

% Usado
2.55%
1.88%
0.70%
0.00%

o Leds 8 bits
Utilizao dos recursos da FPGA - leds
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

67
105
37
-

1920
3840
3840
-

174

% Usado
3.49%
2.73%
0.96%
0.00%

o Botes 3 bits
Utilizao dos recursos da FPGA Botes
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

42
57
27
-

1920
3840
3840
-

% Usado
2.19%
1.48%
0.70%
0.00%

o RS-232
Utilizao dos recursos da FPGA - rs232
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

54
62
88
-

1920
3840
3840
-

175

% Usado
2.81%
1.61%
2.29%
0.00%

o Display de sete segmentos


Utilizao dos recursos da FPGA - display
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

185
165
194
-

1920
3840
3840
-

% Usado
9.64%
4.30%
5.05%
0.00%

o Teclado PS 2
Utilizao dos recursos da FPGA - ps2_teclado
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

54
76
46
-

1920
3840
3840
-

176

% Usado
2.81%
1.98%
1.20%
0.00%

o PWM_I/O
Utilizao dos recursos da FPGA - pwm/IO
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

45
63
27
-

1920
3840
3840
-

% Usado
2.34%
1.64%
0.70%
0.00%

o PWM_TIMER_1
Utilizao dos recursos da FPGA - pwm_timer1
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

265
313
291
-

1920
3840
3840
-

177

% Usado
13.80%
8.15%
7.58%
0.00%

o PWM_TIMER_2
Utilizao dos recursos da FPGA - pwm_timer2
Recursos
Usado
Disponvel
Slices
Slice Flip Flops
LUTs de 4 entradas
MULT18X18s

265
313
291
-

1920
3840
3840
-

 Freqncia de funcionamento dos mdulos


Limite da freqncia do clock em cada mdulo
Porta do
Freqncia mxima
Mdulo
Clock
(MHz)
Display 7
segmentos
Microblaze
PWM_timer_1
PWM_timer_2
PS2_Teclado
PS2_Teclado
PS2_Teclado
PS2_Teclado
Leds_8 bits
Chaves
PWM_O/I
Botes
RS232
mb_opb
ilmb
dlmb

OPB_Clk
CLK
OPB_Clk
OPB_Clk
Keyboard_Clk
OPB_Clk
Clock_25Mhz
ready_set
OPB_Clk
OPB_Clk
OPB_Clk
OPB_Clk
OPB_Clk
OPB_Clk
LMB_Clk
LMB_Clk

178

68.362
91.128
98.348
98.348
100.120
100.120
100.120
100.120
135.612
135.612
138.658
138.927
151.676
203.707
238.152
238.152

% Usado
13.80%
8.15%
7.58%
0.00%

You might also like