Você está na página 1de 137

Dissertao de Mestrado

PROJETO E DESENVOLVIMENTO DE UM
SISTEMA DE CONTROLE ELETRNICO DE
INJEO DIRETA DE GNV EM VECULOS
MOVIDOS A GASOLINA/LCOOL

Filipe Silva Pereira Carneiro


Braslia, dezembro de 2011

UNIVERSIDADE DE BRASILIA
FACULDADE DE TECNOLOGIA

UNIVERSIDADE DE BRASILIA
Faculdade de Tecnologia

DISSERTAO DE MESTRADO

PROJETO E DESENVOLVIMENTO DE UM
SISTEMA DE CONTROLE ELETRNICO DE
INJEO DIRETA DE GNV EM VECULOS
MOVIDOS A GASOLINA/LCOOL

Filipe Silva Pereira Carneiro


Relatrio submetido como requisito parcial para obteno
do grau de Mestre em Sistemas Mecatrnicos
Banca Examinadora
Prof. Carlos Humberto Llanos Quintero, UnB/ENM
(orientador)
Prof. Alessandro Borges de Sousa Oliveira,
UnB/FGA
Prof. Rudi Henri van Els, UnB/FGA

ii

Dedicatria(s)
Dedico esse trabalho ao meu orientador, que sempre
acreditou nesse projeto, mesmo quando eu duvidava.
Tambm aos meus colegas de mestrado, que tanto me
ajudaram, e sem os quais no teria sido possvel
trilhar a difcil caminhada de se dividir entre o
mestrado, o trabalho, e todas as outras atividades.
Filipe Silva Pereira Carneiro

iii

Agradecimentos

Agradeo ao apoio que me foi dado pelas duas empresas nas quais trabalhei durante
o mestrado, Ztecnologia e Autotrac, com uma compreenso, nem sempre presente, de que o
mestrado importante para o crescimento do profissional e no se trata apenas de um ttulo
acadmico.
Tambm ao meu orientador Prof. Carlos Humberto Llanos, que aprendi a respeitar e
admirar como pessoa, e o qual considero um amigo: obrigado pela sua pacincia e
persistncia comigo e com o projeto, por tornar possvel esse desafio de conciliar as vidas
profissional e acadmica, que talvez tenha sido o maior que j enfrentei.
Filipe Silva Pereira Carneiro

iv

RESUMO
O projeto descrito neste documento apresenta uma primeira abordagem ao desafio de se
utilizar injeo de GNV (Gs Natural Veicular) em veculos movidos originalmente movidos
gasolina/lcool, utilizando para isso Lgica Nebulosa a fim de evitar-se clculos complexos
e a necessidade de armazenamento de mapas de correo. A estratgia empregada no projeto
utiliza o tempo de injeo lido da UCE (Unidade de Controle Eletrnico) original de
gasolina/lcool como base para determinar o tempo de injeo de GNV, e define uma
correo baseada em Lgica Nebulosa, com sensores e o prprio tempo de injeo original
como entradas e a correo sobre o tempo de injeo como sada. O desenvolvimento do
projeto aconteceu em trs grandes reas: hardware, firmware e estratgia de injeo, todos
sendo tratados neste documento. O hardware e o firmware foram especificados, projetados,
desenvolvidos e testados, com bons resultados em todos os testes, provando sua capacidade
em desempenhar as tarefas para as quais foram desenvolvidos: ler os sensores MAP, de
rotao, de presso de gs e de sonda lambda, ler o tempo de injeo original do veculo,
emular os sensores MAP e de sonda lambda e atuar nos bicos injetores de GNV. A base de
regras da Lgica Nebulosa foi criada a partir da observao de uma UCE de GNV comercial
(previamente instalada no veculo), com o objetivo de fazer com que o projeto desenvolvido
se comportasse o mais prximo possvel a essa ECU. A partir de logs de campo da ECU
comercial, a estratgia desenvolvida foi testada computacionalmente e esses testes
apresentaram bons resultados. Resultados de campo, entretanto, mostraram a necessidade de
aprofundamento do problema para que sejam promovidos alguns ajustes na Lgica Nebulosa.
Os resultados atuais indicam que a base de regras deve ser desenvolvida por meio de testes de
campo ao invs de simulaes computacionais, como foi feito. Finalmente, a plataforma
desenvolvida (hardware e firmware) foi capaz de manter o motor em funcionamento quando
o tempo de injeo de GNV foi calculado a partir de uma correo fixa sobre tempo de
injeo da ECU original. Portanto, a plataforma foi desenvolvida com sucesso, o que permite
a experimentao de diferentes estratgias para clculo do tempo de injeo de GNV (como
foi feito com o controlador baseado em Lgica Nebulosa)
Palavras chave: GNV, Injeo Eletrnica de Combustvel, Lgica Nebulosa, Hardware,
Firmware.

ABSTRACT
The project described in this document presents a first approach to the challenge of using
NGV (Natural Gas Vehicle) injection in gasoline/ethanol vehicles, by using fuzzy logic to
avoid complex calculations and the need to store correction maps. The strategy employed in
the project adopts the injection time read from the original ECU (Electronic Control Unit) of
gasoline/alcohol as the first approach to determine the NGV injection time, and it defines a
correction based on a fuzzy logic, with sensors and the original injection time itself as inputs
and the correction as output. The designed project involved the design in three major areas:
hardware, firmware and injection strategy, all of them being addressed by this document. The
hardware and firmware have been specified, designed, developed and tested, with good results
in all tests, proving their capacity to perform the tasks they have been designed for: reading
MAP, rotation, gas pressure and lambda oxygen sensors, reading the original injection time,
emulating MAP and lambda oxygen sensors and actuating in the NGV injector. The rule base
of the fuzzy logic was created from the observation of a commercial NGV ECU (previously
installed in the vehicle) in order to make the designed project to behave as close as possible to
this ECU. From field logs of the commercial ECU, the designed strategy has been tested
computationally, and these tests have shown good results. The field tests, however, have
showed the need to delve into the problem in order to perform some adjusts in the fuzzy logic.
The current results point out the idea of designing the rule base from field testing instead of
the computational simulations as have been done. Finally, the developed platform (hardware
and firmware) was capable to maintain the engine running when the injection time of NGV
was calculated through a fixed correction in the injection time of the original ECU. Therefore,
the platform has been successfully developed, which allows the experimentation of different
strategies for calculating the NGV injection time (as performed with the developed fuzzy
logic controller).
Keywords: NVG, Electronic Fuel Injection, Fuzzy Logic, Hardware, Firmware.

vi

SUMRIO
1

INTRODUO .............................................................................................................. 1
1.1
1.2
1.3
1.3.1
1.3.2
1.4
1.5
1.6

MOTIVAO ........................................................................................................................................ 1
ABORDAGEM UTILIZADA PARA O PROJETO................................................................................... 2
OBJETIVOS DO PROJETO ................................................................................................................. 3
Objetivo geral .............................................................................................................................. 3
Objetivos especficos .................................................................................................................. 3
ASPECTOS METODOLGICOS UTILIZADOS NO TRABALHO ........................................................ 4
RESULTADOS OBTIDOS DO TRABALHO ......................................................................................... 4
ESTRUTURA DA DISSERTAO ....................................................................................................... 5

FUNDAMENTAO TERICA..................................................................................... 6

2.1
REVISO BIBLIOGRFICA ................................................................................................................. 6
2.2
INJEO E IGNIO DE MOTORES DE CICLO OTTO ..................................................................... 7
2.3
ASPECTOS TECNOLGICOS DA INJEO E IGNIO ELETRNICAS ........................................ 8
2.3.1
Os principais Sensores de um sistema de injeo/ignio eletrnica ......................................... 9
2.3.2
Principais atuadores controlados por um sistema de injeo/ignio eletrnica....................... 10
2.3.3
A UCE (Unidade de Comando Eletrnico) ................................................................................ 12
2.3.4
Relao ar-combustvel e os principais gases emitidos por motores a combusto .................. 13
2.4
GNV E CONSIDERAES EM RELAO AO SEU USO ................................................................ 14
2.4.1
Um breve histrico do GNV no Brasil [37] [38].......................................................................... 14
2.4.2
Modificaes requeridas para o uso de GNV............................................................................ 16
2.4.3
Kits disponveis no mercado ..................................................................................................... 17
2.4.4
Vantagens do GNV [48] ............................................................................................................ 18
2.4.5
Desvantagens do GNV ............................................................................................................. 18
2.4.5.1
PROBLEMAS ENCONTRADOS NA CONVERSO PARA GNV.............................................. 18
2.4.5.2
SOLUES PARA OS PROBLEMAS DE CONVERSO PARA GNV ..................................... 18
2.5
ASPECTOS BSICOS DE LGICA NEBULOSA (FUZZY LOGIC) ................................................... 19
2.5.1
Conjunto Nebuloso ................................................................................................................... 19
2.5.2
Funes de Pertinncia ............................................................................................................ 20
2.5.2.1
Funes Direitas ....................................................................................................................... 20
2.5.2.2
Funes Esquerdas .................................................................................................................. 21
2.5.2.3
Funes Triangulares ............................................................................................................... 22
2.5.2.4
Funes Trapezoidais ............................................................................................................... 22
2.5.2.5
Funes Gaussianas ................................................................................................................ 23
2.5.2.6
Funes Sino Generalizadas .................................................................................................... 23
2.5.3
Variveis lingsticas ................................................................................................................ 24
2.5.4
Base de Conhecimento ............................................................................................................. 24
2.5.5
Sistemas difusos, fuzzificao e defuzzificao........................................................................ 25
2.5.5.1
Fuzzificao .............................................................................................................................. 25
2.5.5.2
Aplicao de Regras ................................................................................................................. 25
2.5.5.3
Combinao de Conseqentes ................................................................................................. 26
2.5.5.4
Defuzzificao........................................................................................................................... 26
2.5.6
Mtodo Sugeno......................................................................................................................... 26
2.6
CONCLUSES DO CAPTULO ......................................................................................................... 27

METODOLOGIA USADA PARA O PROJETO DO CONTROLADOR .........................28

3.1
O PROJETO PASSO A PASSO ......................................................................................................... 28
3.2
DESCRIO FUNCIONAL DO PRODUTO ....................................................................................... 28
3.2.1
Breve descrio do produto ...................................................................................................... 28
3.2.2
Funes .................................................................................................................................... 29
3.3
ESTUDO DE UM KIT GNV COMERCIAL .......................................................................................... 30
3.3.1
Objetivos ................................................................................................................................... 30
3.3.2
Sistema de GNV utilizado ......................................................................................................... 30
3.3.3
Mtodo de Medio .................................................................................................................. 32
3.3.3.1
Sinais Medidos.......................................................................................................................... 32
3.3.3.2
Dispositivo de Aquisio dos Sinais.......................................................................................... 33
3.3.3.3
Tratamento Analgico dos Sinais ............................................................................................. 33
3.3.3.4
Aquisio digital dos Sinais....................................................................................................... 39
3.3.4
Clculo dos parmetros dos dados lidos .................................................................................. 40
3.3.4.1
Sinal de Gs ............................................................................................................................. 41
3.3.4.2
Bico Gs 1 ................................................................................................................................ 41
3.3.4.3
Presso da Flauta ..................................................................................................................... 44
3.3.4.4
Rotao..................................................................................................................................... 45
3.3.4.5
Bico Original UCE 1 ............................................................................................................... 46

vii

3.3.4.6
3.3.4.7
3.3.4.8
3.3.4.9

Sonda Lambda.......................................................................................................................... 47
MAP .......................................................................................................................................... 48
Bico Original Bico 1 ................................................................................................................ 50
Temperatura do Redutor de Presso ........................................................................................ 50

O PROJETO DO HARDWARE DO CONTROLADOR .................................................52

4.1
Separao dos Circuitos Digitais e Analgicos dos Circuitos de Potncia ......................................... 52
4.1.1
Disposio do SINAL_GAS....................................................................................................... 52
4.2
PCI Circuitos digitais e analgicos .................................................................................................. 52
4.2.1
Especificaes da PCI Circuitos digitais e analgicos ........................................................... 53
4.2.2
Protees de Entrada ............................................................................................................... 54
4.2.3
Fonte de Alimentao ............................................................................................................... 54
4.2.4
CPU .......................................................................................................................................... 56
4.2.5
Leitura e Emulao do Sensor MAP ......................................................................................... 59
4.2.6
Leitura e Emulao do sensor de Sonda Lambda .................................................................... 61
4.2.7
Leitura do sensor de presso de flauta ..................................................................................... 64
4.2.8
Leitura e Comutao dos Bicos Injetores originais ................................................................... 66
4.2.9
Sensor de Rotao ................................................................................................................... 68
4.2.10
Sensor de Rotao Alternativo ................................................................................................. 68
4.2.11
Sinal de acionamento dos Bicos ............................................................................................... 70
4.2.12
Sadas Genricas ..................................................................................................................... 71
4.3
PCI Circuitos de potncia ................................................................................................................ 73
4.3.1
Especificaes do hardware. .................................................................................................... 73
4.3.2
Circuito de Acionamento dos Bicos .......................................................................................... 73
4.3.3
Circuito de gerao do SINAL_GAS ......................................................................................... 74

ESTRATGIA DE FUNCIONAMENTO DO CONTROLADOR .....................................75

5.1
Descrio da estratgia de funcionamento ........................................................................................ 75
5.2
Procedimentos seguidos .................................................................................................................... 75
5.2.1
Parmetro de Avaliao (erro) .................................................................................................. 76
5.2.2
Determinao da Correo Fixa (k) .......................................................................................... 76
5.2.3
Determinao dos Conjuntos Nebulosos e suas Funes de Pertinncia ................................ 76
5.2.4
Determinao dos Predecessores ............................................................................................ 80
5.2.5
Criao da Base de Regras ...................................................................................................... 81
5.3
Concluses ......................................................................................................................................... 85

O PROJETO DO FIRMWARE DO CONTROLADOR ...................................................86

6.1
6.2
6.3
6.3.1
6.3.2
6.3.3
6.3.4
6.4
6.5
6.6

Conceitos que Guiaram o Desenvolvimento ...................................................................................... 86


Estruturao do Cdigo ...................................................................................................................... 86
Bibliotecas desenvolvidas .................................................................................................................. 87
libDevDrivers............................................................................................................................. 87
libCommon ................................................................................................................................ 89
libFuzzy ..................................................................................................................................... 89
libATMega32 ............................................................................................................................. 90
Escalonamento de Tarefas ................................................................................................................. 92
A Aplicao ........................................................................................................................................ 94
Funes Criadas ................................................................................................................................ 95

TESTES E RESULTADOS ALCANADOS .................................................................96

7.1
Testes de Bancada............................................................................................................................. 96
7.1.1
Fonte de Alimentao ............................................................................................................... 96
7.1.2
Leitura dos sensores de Presso da Flauta, Sensor MAP e Sonda Lambda ........................... 98
7.1.3
Emulao dos sensores MAP e de Sonda Lambda .................................................................. 99
7.1.4
Leitura dos Bicos Injetores originais ....................................................................................... 100
7.1.5
Sensor de Rotao ................................................................................................................. 101
7.1.6
Acionamento do Bico de Gs.................................................................................................. 102
7.2
Testes de Campo ............................................................................................................................. 103
7.2.1
Metodologia de Testes ............................................................................................................ 103
7.2.2
Resultados .............................................................................................................................. 106

8
CONCLUSES E TRABALHOS FUTUROS ..............................................................108
9
REFERNCIAS BIBLIOGRFICAS ..........................................................................109
Anexo I
Prottipos das Funes e Macros Desenvolvidas .....................................112
1
MCUDrivers ...............................................................................................................112

1.1
1.2
1.3
1.4
1.5
1.6
1.7

ADC.h ............................................................................................................................................... 112


I2C.h ................................................................................................................................................. 113
IO.h................................................................................................................................................... 114
TIMER0.h ......................................................................................................................................... 115
TIMER1.h ......................................................................................................................................... 116
TIMER2.h ......................................................................................................................................... 116
UART.h ............................................................................................................................................. 117

2.1

STRING.h ......................................................................................................................................... 118

Common ....................................................................................................................118

viii

2.2
2.3

CLOCK.h .......................................................................................................................................... 119


COMMONOP.h................................................................................................................................. 119

3.1
3.2
3.3

BICOS.h ........................................................................................................................................... 121


CONSOLE.h ..................................................................................................................................... 122
EEPROM.h ....................................................................................................................................... 123

DEVDrivers ................................................................................................................121

ix

LISTA DE FIGURAS
Figura 1: Nmero de converses anuais para GNV [1].
1
Figura 2: Diagrama de Blocos da abordagem utilizada.
3
Figura 3: Etapas do ciclo OTTO [28]
8
Figura 4: Sistema de injeo monoponto [31]
9
Figura 5: Sistema de injeo multiponto [31]
9
Figura 6: Vista em corte de um bico injetor [32].
11
Figura 7: Vista em corte de uma vela de ignio [33].
11
Figura 8: Vista em corte de uma bobina de ignio [33].
12
Figura 9: Diagrama de blocos de um sistema de injeo/ignio eletrnica
12
Figura 10: Consumo de Energia Primria por Tipo de Energtico no mundo [42] e no
Brasil [43].
15
Figura 11: Grfico dos preos dos combustveis e do N de converses [1]
16
Figura 12: Modificaes em um carro convertido para uso de GNV [45]
17
Figura 13: Diferena entre um conjunto clssico e um conjunto nebuloso
20
Figura 14: Exemplo de funo de pertinncia direita
21
Figura 15: Exemplo de funo de pertinncia esquerda
21
Figura 16: Exemplo de funo de pertinncia triangular
22
Figura 17: Exemplo de funo de pertinncia trapezoidal
23
Figura 18: Exemplos de funes de pertinncia gaussianas
23
Figura 19: Exemplos de funes de pertinncia gaussianas
24
Figura 20: Exemplo de combinao de conseqentes segundo Mamdani.
26
Figura 21: Exemplo de clculo em um sistema de inferncia do tipo Sugeno
27
Figura 22: Sinal de Gs quando veculo est rodando no combustvel original
34
Figura 23: Sinal de Gs quando veculo est rodando no GNV.
34
Figura 24: Sinal dos quatro bicos injetores (Bico Gs 1, 2, 3 e 4).
34
Figura 25: Sinal de um dos bicos injetores - viso aproximada
35
Figura 26: Sinal de Presso na Flauta.
35
Figura 27: Sinal de Rotao - viso macro
35
Figura 28: Sinal de Rotao - viso aproximada
36
Figura 29: Bico Original - UCE
36
Figura 30: Sinal Sonda Lambda
36
Figura 31: Sinal do Sensor MAP
37
Figura 32: Sinal Bico Original - Bico, rodando no GNV. Viso macro
37
Figura 33: Sinal Bico Original - Bico, rodando no GNV. Viso aproximada
37
Figura 34: Sinal de Temperatura do Redutor de Presso
38
Figura 35: Circuito para sinais que necessitam de amplificao
39
Figura 36: Circuito para sinais que no necessitam nem de amplificao nem de atenuao 39
Figura 37: Circuito para sinais que necessitam de atenuao
39
Figura 38: sistema de aquisio dos sinais
40
Figura 39: Forma de onda do sinal Bico Gs 1 - vrios ciclos de injeo
41
Figura 40: Forma de onda do sinal Bico Gs 1 - um nico ciclo de injeo
41
Figura 41: Tempo de hold
42
Figura 42: Perodo de chaveamento durante o hold
43
Figura 43: Tempo em alta durante o hold
43
Figura 44: Perfil de corrente no bico injetor de GNV (em rosa) repare que a corrente durante
o hold estabiliza em aproximadamente 34% da corrente mxima durante o peak.
43
Figura 45: Presso da Flauta
44
Figura 46: FFT da Presso da Flauta
45
x

Figura 47: Sinal de Presso da Flauta filtrado


45
Figura 48: Sinal de Rotao
46
Figura 49: Tempo de Injeo de gasolina
47
Figura 50: Sensor de Sonda Lambda
47
Figura 51: FFT do sensor de Sonda Lambda
48
Figura 52: Sensor de Sonda Lambda filtrado
48
Figura 53: Sensor MAP
49
Figura 54: FFT do Sensor MAP
49
Figura 55: Sensor de Sonda Lambda filtrado
50
Figura 56: Bico Original - Bico 1
50
Figura 57: Sinal de Gs e Temperatura do Redutor de Presso
51
Figura 58: Sinal de Gs e Temperatura do Redutor de Presso Ampliao
51
Figura 59: Load Dump
54
Figura 60: Esquemtico do circuito de proteo de entrada.
54
Figura 61: Esquemtico da Fonte.
56
Figura 62: Esquemtico da CPU
59
Figura 63: Circuito de leitura, emulao e comutao do Sensor MAP
59
Figura 64: Circuito de leitura, emulao e comutao do sensor de Sonda Lambda
62
Figura 65: Circuito de leitura do sensor de Presso da Flauta
64
Figura 66: Circuito de leitura de sinal de injeo e congelamento dos bicos injetores.
66
Figura 67: Circuito de leitura do Sensor de Rotao
68
Figura 68: Circuito alternativo do Sensor de Rotao
69
Figura 69: Circuito de criao do sinal de controle do circuito de acionamento dos bicos
injetores de gs.
70
Figura 70: Sada genrica
72
Figura 71: Circuito de Acionamento dos Bicos
74
Figura 72: Circuito de gerao do SINAL_GAS
74
Figura 73: Estratgia de funcionamento baseada no clculo de tempo de injeo da centralina
original.
75
Figura 74: Funes de Pertinncia da Presso da Flauta
77
Figura 75: Funes de Pertinncia do Sensor MAP
78
Figura 76: Funes de Pertinncia do Sensor de Rotao
78
Figura 77: Funes de Pertinncia do Sensor de Temperatura
79
Figura 78: Funes de Pertinncia do Sensor de Sonda Lambda
79
Figura 79: Funes de Pertinncia do Sensor de Presso da Flauta
80
Figura 80: Comparao entre os tempos de injeo de gasolina, de gs do kit comercial e o
calculado pelo sistema de inferncia nebuloso
85
Figura 81: Estruturao de Cdigo
87
Figura 82: Mquinas de estados de injeo
88
Figura 83: Fluxograma da Aplicao
95
Figura 84: Foto do ambiente de testes de bancada.
96
Figura 85: Teste do Acionamento do Bico de Gs
102
Figura 86: Teste da Corrente de Acionamento do Bico de Gs
102
Figura 87: Circuito para congelamento do acionamento dos bicos por parte do kit comercial
103
Figura 88: Foto com o detalhe da conexo para leitura dos sinais dos sensores e da injeo de
combustvel original.
104
Figura 89: Conexo que permite ao sistema em teste interromper o sinal de acionamento dos
bicos de gs.
104
Figura 90: Placa para leitura do console
105
Figura 91: Viso geral do sistema testado inserido no veculo de teste, 1 foto.
105
Figura 92: Viso geral do sistema testado inserido no veculo de teste, 2 foto.
105
xi

Figura 93: Viso geral do sistema testado inserido no veculo de teste, 3 foto.
Figura 94: Sistema sendo comandado a partir do computador.

106
106

xii

LISTA DE TABELAS E CDIGOS


Tabela 1: Relaes estequiomtricas dos principais combustveis [34]. ................................. 13
Tabela 2: Principais gases poluentes ........................................................................................ 13
Tabela 3: Sinais do kit GNV comercial .................................................................................... 30
Tabela 4: Faixas de tenso dos sinais medidos ........................................................................ 33
Tabela 5: Arquivos com resultados de medio....................................................................... 40
Tabela 6: Resumo da faixa de valores de cada sinal ................................................................ 77
Tabela 7: Funes de Pertinncia da Presso da Flauta ........................................................... 77
Tabela 8: Funes de Pertinncia do Sensor MAP .................................................................. 77
Tabela 9: Funes de Pertinncia do Sensor de Rotao ......................................................... 78
Tabela 10: Funes de Pertinncia do Sensor de Temperatura ................................................ 78
Tabela 11: Funes de Pertinncia do Sensor de Sonda Lambda ............................................ 79
Tabela 12: Funes de Pertinncia do Sensor de Presso da Flauta ........................................ 79
Tabela 13: Base de Regras para Rotao, Presso da Flauta e TIGasolina .................................. 83
Tabela 14: Base de Regras para Sonda Lambda, Presso da Flauta e TIGasolina ....................... 84
Tabela 15: Resumo das sadas dos Conjuntos Nebulosos de Rotao ..................................... 84
Tabela 16: Resumo das sadas dos Conjuntos Nebulosos de Sonda Lambda .......................... 84
Tabela 17: Resumo das sadas dos Conjuntos Nebulosos de Presso da Flauta ...................... 84
Tabela 18: Resumo das sadas dos Conjuntos Nebulosos de TIGasolina ..................................... 85
Tabela 19: Escalonamento das tarefas ..................................................................................... 94
Tabela 20: Regulao de linha da fonte de alimentao .......................................................... 97
Tabela 21: Regulao de carga da fonte de alimentao ......................................................... 98
Tabela 22: Resultados do teste de leitura dos sensores de Presso da Flauta, Sensor MAP e
Sonda Lambda .................................................................................................................. 99
Tabela 23: Resultado do Teste de Emulao do Sensor MAP ............................................... 100
Tabela 24: Resultado do Teste de Emulao do Sensor de Sonda Lambda ........................... 100
Tabela 25: Resultado dos testes de leitura do tempo de injeo ............................................ 101
Tabela 26: Resultado dos testes do Sensor de Rotao .......................................................... 101

xiii

xiv

1
1.1

INTRODUO

MOTIVAO

O automvel movido a gasolina ou lcool um dos principais meios de transporte no Brasil e no mundo e a
poluio causada por esses automveis sempre foi motivo de preocupao, principalmente nos dias atuais, com a
crescente conscientizao da importncia e da urgncia em se preservar o meio ambiente. Outro ponto que vem se
tornando crtico relaciona-se aos preos praticados pelos postos de gasolina, cada dia mais elevados, devido, em
grande parte, falta de um combustvel que possa competir e forar uma queda de preo.
Nesse contexto, obtiveram-se nos ltimos anos avanos tecnolgicos que permitiram introduzir tcnicas
sofisticadas nos automveis visando dois objetivos: (1) aumentar o rendimento dos motores (reduzindo o consumo de
combustvel) e (2) diminuir a emisso de poluentes. Na busca por esses objetivos, aparecem os primeiros carros
comerciais que se utilizam de injeo eletrnica na dcada de 90. A injeo eletrnica veio substituir o carburador na
tarefa de dosar a quantidade de combustvel da mistura ar-combustvel. Por se tratar de um processo controlado
eletronicamente, a injeo eletrnica muito mais eficiente que a carburao, diminuindo o consumo de combustvel e
a emisso de poluentes e aumentando a potncia. Nas sees 2.2 e 2.3 sero introduzidos com mais detalhe os
conceitos bsicos dos motores de combusto de ciclo Otto e os fundamentos dos sistemas de injeo eletrnica,
respectivamente.
Ainda com foco na soluo dos problemas descritos acima, o uso de GNV aparece como alternativa concreta em
relao gasolina e ao lcool. Embora o GNV no seja a nica alternativa e existam esforos em outras direes
(como por exemplo, estudos envolvendo energia solar, energia eltrica, biocombustveis e hidrognio, para citar
alguns) as tecnologias obtidas so ainda pouco competitivas do ponto de vista de eficincia tecnolgica e/ou pelos
seus aspectos econmicos, pelo menos no Brasil. Neste contexto, o GNV tem-se mostrado uma alternativa barata e
eficaz, com a frota de carros convertidos a esse combustvel chegando a 1.661.919 em novembro de 2010, segundo o
IBP (Instituto Brasileiro de Petrleo, Gs e Biocombustveis) [1].
No entanto, segundo o mesmo Instituto (IBP), o setor de GNV vinha apresentando uma queda no nmero de
converses anuais desde o ano de 2007, quando o nmero de converses caiu de 272.610 para 187.040 [1] (vide
Figura 1), a principal causa dessa queda na procura por gs natural advm de uma crise de confiana nesse
combustvel, devido ocupao pelo exrcito boliviano dos campos de petrleo e gs desse pas ([2] e [3]). Porm,
esse quadro deve se reverter com a descoberta de novas jazidas de gs natural dentro do Brasil, no contexto do Pr-sal.
De acordo com a edio de 06 de Abril de 2011 do jornal Brasil Econmico [2], o volume de gs disponvel (que
soma gs nacional, gs importado da Bolvia e das unidades de gs natural liquefeito - GNL) deve dobrar at 2020
devido s descobertas no pr-sal, indo de 90.000.000 m para algo entre 180.000.000 e 200.000.000 m.

Figura 1: Nmero de converses anuais para GNV [1].


1

Outro fator importante para o crescimento do setor GNV deve ser o aumento dos preos dos combustveis Etanol
(lcool) e Gasolina. Segundo a ANP (Agncia Nacional do Petrleo), os preos mdios do ms de Abril de 2011 dos
trs combustveis foi: Etanol R$ 2,345; Gasolina R$ 2,825 e GNV R$ 1,599 [4]. Utilizando esses valores na
ferramenta online disponibilizada pela SCGAS (Companhia de Gs de Santa Catarina) [5], obtemos os valores de
custo por km: Etanol R$ 0,22; Gasolina R$ 0,19 e GNV R$0,09, isso representa uma economia de 52,63% em
relao gasolina e 59,09% em relao ao lcool.
Em um sistema GNV, importante controlar a vazo de gs que entrar no coletor de admisso do motor, assim
como controlar o sistema de ignio do carro. Existem alguns kits de converso comercializados hoje que fazem essa
funo, mas os mais utilizados so importados e utilizam um hardware caro, o que os faz ter um alto custo.
A principal motivao deste trabalho criar a central eletrnica de um kit de converso para GNV baseada em uma
estratgia mais simples de funcionamento (explicada brevemente na seo 1.2 e com mais detalhes na seo 5.1) e
que, portanto, seja possvel com um hardware mais barato. Adicionalmente, objetiva-se fazer uma experimentao do
uso de uma lgica nebulosa para controle de injeo. Por fim, vai se tratar de um produto nacional o que,
conseqentemente, ir reduzir seu preo de venda no Brasil.
Os trabalhos propostos nesta dissertao situam-se dentro do contexto do projeto GN-JET (FINEP-Petrobrs-UnB),
onde se prope fazer avanos na direo de nacionalizar a tecnologia de kits GNV.

1.2

ABORDAGEM UTILIZADA PARA O PROJETO

De uma maneira simplificada, a central eletrnica original do carro responsvel, entre outras funes, por ler os
sinais dos sensores, process-los e gerar o sinal de acionamento de bicos originais (ver seo 2.3). Quando um carro
convertido para GNV com um kit de 5 gerao (ver seo 2.4.3), bicos de injeo de GNV so instalados, e com eles
uma central eletrnica dedicada ao sistema GNV, responsvel por comandar os novos bicos. O sistema original no
prejudicado em nada, e os bicos de injeo de combustvel original continuam funcionais, o usurio do veculo
convertido tem acesso a uma chave seletora de combustvel instalada como parte do kit, a partir da qual pode optar
pelo uso do combustvel original ou do GNV.
Em uma estratgia convencional, o sinal de acionamento dos bicos de injeo de GNV calculado a partir dos
sinais dos sensores do carro, seguindo a mesma estratgia e refazendo alguns dos clculos j realizados pela central
eletrnica original.
O principal ponto que pretende diferenciar do sistema proposto neste projeto dos demais kits disponveis no
mercado a abordagem de se aproveitar o processamento realizado pela central eletrnica original do carro dos sinais
provenientes dos sensores. Dessa forma, no lugar de se refazer um complexo e oneroso clculo de tempo de injeo a
partir dos sensores, o projeto proposto ir ler o tempo de injeo j calculado pela central eletrnica original do carro
(responsvel pela injeo de gasolina e/ou lcool) e promover uma correo simples para adequ-lo ao GNV. Essa
correo ser feita baseada na leitura de alguns dos sensores com um sistema de controle baseado em lgica nebulosa,
o que deve poupar a memria necessria para o armazenamento de mapas de correo e, conseqentemente, resultar
em um sistema de mais baixo custo.
Essa abordagem pode ser sumarizada nos seguintes tpicos:

No funcionamento normal, a Central Eletrnica Original processa os sinais dos sensores e gera o sinal de
acionamento dos bicos originais;

O sistema proposto ir interceptar esse sinal a fim de process-lo em um sistema de controle simples
baseado em lgica nebulosa, usando para isso uma parte dos sinais dos sensores, e gerar o sinal de
acionamento de bicos de gs;

Por fim, o sistema proposto tambm ser responsvel por congelar o sinal de acionamento de bicos
originais quando o seletor de modo original/gs estiver na posio gs.

A Figura 2 ilustra a abordagem utilizada (vide seo 5 para mais detalhes).

Figura 2: Diagrama de Blocos da abordagem utilizada.

1.3

OBJETIVOS DO PROJETO

Esta seo descreve tanto o objetivo gerais quanto os objetivos especficos do projeto.

1.3.1

Objetivo geral

Este trabalho faz parte do projeto GNJET (chamada pblica MCT/FINEP, Ao Transversal RBT 05/2005) que
surgiu de uma parceria entre a Petrobrs,
Petrobrs a UnB e a FINEP, tendo como um dos seus objetivos
objetivo a nacionalizao da
tecnologia de injeo de GNV.
O sistema apresentado tem o objetivo de apresentar uma primeira abordagem ao desafio de se controlar o sistema
de injeo de GNV em veculos movidos originalmente
originalmente gasolina/lcool. O projeto desenvolvido deve apresentar
uma proposta mais simples e de menor custo que as centrais eletrnicas
eletrnica comercializadas
cializadas atualmente no Brasil, sem
que o desempenho seja prejudicado.

1.3.2

Objetivos especficos

Os objetivos especficos
ficos deste trabalho so:
so
a) Criar a especificao funcional do sistema a ser desenvolvido. Nessa etapa o conceito do sistema criado
com a maior clareza possvel, evitando indefinies ou tomadas decises ao logo do projeto, o que pode
resultar em falhas porr falta de planejamento. (seo 3.2)
b) Fazer um estudo aprofundado de kits
kit GNV amplamente utilizados no mercado nacional, visando
definio de estratgias para atacar
atacar o problema do desenvolvimento de um sistema brasileiro para GNV.
Para este caso, ser empregado o sistema de instrumentao virtual LabView, da National Instruments,
assim como placas de aquisio de sinais DAQs [6] (seo 3.3);
c) Especificar o hardware necessrio para leitura e processamento dos sinais provenientes da central
eletrnica original do veculo, bem como o hardware necessrio para acionamento dos bicos injetores
i
de
gs. O hardware deve ser de baixo custo, envolvendo preferencialmente elementos que possam ser
facilmente obtidos no mercado nacional (vide Sees 4.2.1 e 4.3.1);
d) Desenvolver o hardware da central eletrnica do kit,, baseado em um microprocessador de 8 bits (famlia
AVR), caracterizando uma placa de baixa complexidade
complexida e baixo custo de desenvolvimento (vide Seo 4);
e) Desenvolver um algoritmo para o processamento dos sinais de injeo da central eletrnica original e dos
sensores do veculo baseado em lgica nebulosa.. O sinal gerado deve ser o de acionamento dos bicos
injetores de gs (seo 5).
f) Planejar a estruturao
o do cdigo (firmware)
(
) a ser criado, visando boas prticas de programao e a
facilidade em evoluo e manuteno do cdigo.
g) Criar uma biblioteca de firmware para a placa microprocessada, envolvendo acesso a perifricos do
microcontrolador, acesso a memria
memria EEPROM, leitura dos bicos injetores e comunicao via console
serial (seo 6.3).
h) Criar uma metodologia de estruturao de cdigo, com escalonamento de tarefas e rotinas de acesso ao
3

hardware (vide seo 6.4);


i)

Criar o cdigo da estratgia de funcionamento no firmware (seo 6.5).

j)

Criar uma metodologia de teste para o sistema desenvolvido, envolvendo testes de bancada (no laboratrio,
seo 7.1) e testes de campo, em um veculo de passeio convertido para GNV com um kit de 5 gerao,
tanto empregando correes fixas no tempo de injeo quanto empregando a utilizao da lgica nebulosa
desenvolvida (seo 7.2);

1.4

ASPECTOS METODOLGICOS UTILIZADOS NO TRABALHO

A primeira etapa para o desenvolvimento do projeto foi um estudo bibliogrfico e prtico de diversos aspectos
relacionados ao sistema a ser desenvolvido: injeo eletrnica, lgica nebulosa e GNV. Posteriormente, foram
desenvolvidos o hardware e a biblioteca de firmware, que foram utilizados como plataforma para o desenvolvimento
do sistema. Por fim, foram testadas diversas possibilidades de bases de regras nebulosas para controle do tempo de
injeo de GNV, utilizando como parmetro de validao a semelhana do sinal gerado com o sinal captado em
campo de um kit GNV consagrado.
As etapas compridas podem ser resumidas em:
a) Estudo de sistemas GNV (resumido na seo 2.4.3);
b) Visitas tcnicas para troca de idias com engenheiros projetistas da SEVA, empresa que comercializava
produtos da marca DEVEL;
c) Adaptao de um veiculo para uso de GNV com um kit de 5 gerao, a ser utilizado para os testes de
campo do projeto;
d) Uso de ferramentas de instrumentao virtual para coletar informaes dos sinais eletrnicos do carro
convertido a GNV (seo 3.3);
e) Teste de partes do sistema eletrnico em protoboard;
f) Projeto de placas de circuito impresso baseados em microcontroladores AVR e o teste da mesma;
g) Elaborao de rotinas bsicas de firmware, usando ferramentas e ambientes de desenvolvimento para
microcontroladores;
h) Elaborao de algoritmos baseados em Mquinas de Estados Finitos (Finite State Machines FSMs) para
o tratamento de sinais provenientes dos sensores e da central eletrnica original do carro e gerao do sinal
de acionamento dos atuadores do kit GNV;
i)

Testes de integrao hardware/firmware em bancada de laboratrio;

j)

Desenvolvimento de sistema baseado em lgica nebulosa para tratamento de sinais de injeo de


combustvel original e dos sensores, e gerao do sinal de acionamento dos bicos injetores de gs, a ser
embarcado no sistema projetado;

k) Testes de campo do sistema desenvolvido (hardware, firmware e lgica de funcionamento) no veculo


convertido para GNV. Esses testes envolviam a leitura dos sensores do veculo e dos sinais de injeo da
Unidade de Controle Eletrnico original e o acionamento dos bicos injetores de gs (consultar seo 7.2);

1.5

RESULTADOS OBTIDOS DO TRABALHO

Esta seo resume os resultados obtidos e documentados nesta dissertao:

Foi criada uma metodologia de estudo do kit instalado, possibilitando a aquisio de dados relativos ao seu
funcionamento em diferentes condies de funcionamento. A partir dessa metodologia, foram feitos
diversos registros desses dados, o que serviu de base para o desenvolvimento do sistema.

O hardware criado foi testado juntamente com a biblioteca de firmware e mostrou boa preciso na leitura
dos sensores, emulao dos sensores e capacidade de acionamento dos bicos injetores de GNV.

A lgica baseada em lgica nebulosa, no entanto, no se mostrou eficaz, provavelmente em razo da


metodologia adotada (assunto abordado na seo 7.2.2).

Criao de uma plataforma microcontrolada para o desenvolvimento de sistemas de controle GNV, a qual
permite o desenvolvimento e teste de diferentes tipos de estratgias de controle.
4

1.6

Por ltimo, o sistema foi capaz de manter o funcionamento de motor aps algumas tentativas de ajustes de
parmetros, ainda que de maneira instvel e sem a utilizao da lgica nebulosa, apenas com uma correo
fixa no tempo de injeo de combustvel original.

ESTRUTURA DA DISSERTAO

O texto da dissertao foi dividido em 6 grandes partes:

Introduo: onde so apresentados a motivao do trabalho, os objetivos gerais e especficos, os aspectos


metodolgicos adotados e a abordagem utilizada para atacar o problema. O seu objetivo proporcionar ao
leitor uma viso global desta dissertao.

Fundamentao Terica: nessa seo, so apresentadas algumas matrias necessrias para o entendimento
do texto que se segue. Nem todo o conhecimento necessrio est presente nessa seo, j que se entende
que o leitor tenha conhecimentos mnimos sobre o tema desta dissertao.

Metodologia usada para o projeto do controlador: essa seo apresenta a metodologia utilizada no projeto,
ou seja, quais procedimentos, tcnicas, meios, ferramentas e etc. foram empregados para experimentao
da estratgia concebida.

O projeto de Hardware do controlador: a especificao, projeto e desenvolvimento do hardware esto


descritos nesta seo.

Estratgia de funcionamento do controlador: os mtodos empregados para obteno da estratgia de


funcionamento, juntamente com a base de regras alcanada esto descritos nessa seo.

O projeto de Firmware do controlador: a especificao, projeto e desenvolvimento do firmware esto


descritos nesta seo.

Testes e resultados alcanados: essa seo dividida entre duas sees: Testes de bancada e Testes de
campo, sendo que a primeira descreve os testes individuais de cada funcionalidade desenvolvida e a
segunda descreve os testes feitos em campo, em um veculo convertido para GNV. So discutidos tambm
os resultados alcanados em cada etapa

Concluso e Trabalhos Futuros: nessa seo apresenta-se uma reflexo sobre tudo o que foi discutido na
dissertao e propostas para trabalhos futuros, com foco no planejamento das prximas etapas a serem
realizadas para melhorar o desempenho do sistema desenvolvido.

Referncias Bibliogrficas.

Anexos: esse documento possui somente um anexo, que traz os prottipos de todas funes desenvolvidas
nas bibliotecas de firmware.

FUNDAMENTAO TERICA

O objetivo desta seo fornecer ao leitor deste documento uma fundamentao terica suficiente para o correto
entendimento de todo o texto.
No decorrer dessa seo ser feita uma reviso bibliogrfica dos temas relacionados esta dissertao e sero
abordados os diferentes tpicos que foram usados no desenvolvimento deste trabalho:

2.1

INJEO E IGNIO DE MOTORES DE CICLO OTTO;

ASPECTOS TECNOLGICOS DA INJEO E IGNIO ELETRNICAS;

GNV E CONSIDERAES EM RELAO AO SEU USO

ASPECTOS BSICOS DE LGICA NEBULOSA (FUZZY LOGIC);

REVISO BIBLIOGRFICA

Nesta seo ser feita uma reviso bibliogrfica com o objetivo de reunir a produo cientfica relacionada
principalmente a tpicos de sistemas inteligentes aplicados a sistemas de injeo eletrnica e injeo eletrnica de
GNV.
Existe uma grande quantidade de artigos relacionados ao uso de gs natural como combustvel para motores, a
maior parte motivada pela busca de uma alternativa mais econmica e/ou menos poluente para os combustveis
utilizados atualmente.
A maioria dos artigos estudados investiga temas relacionados adoo do GNV (ou outros combustveis
alternativos) como um combustvel alternativo mais limpo, mais abundante ou mais econmico. Neste sentido, em
[12], Santarm, C.A. et al, fazem uma anlise dos meios de transporte de GNV com base no perodo de payback. Em
[13], Engerer, H. e Horn, M. sugerem o uso de GNV na Europa, analisando o caso da Amrica Latina e os desafios
enfrentados. Em [14], Janssen, A. et al sugerem 5 alternativas de indicadores para medio da eficcia de aes
estratgicas na tentativa de implementao de um combustvel alternativo, com o intuito de apoiar a penetrao do
GNV na Sua. Em [16], Collantes, G. e Melaina, M. W. analisam a evoluo conjunta de infra-estrutura de um
combustvel e do nmero de veculos movidos a esse combustvel, o caso do GNV na Argentina analisado como um
caso de sucesso com o objetivo de criar-se lies para a implementao de hidrognio nos USA.
Em [17], Flynn, P.C. analisa o caso mau sucedido do Canad na adoo de GNV, apontando como principal
fraqueza a falta de infra-estrutura, principalmente de abastecimento; novamente, os problemas encontrados so
utilizados como lies para implementao de combustveis alternativos no Canad e nos USA. Em [19], Di Pascoli,
S. et al avaliam o GNV como fonte limpa de energia, e tratam sobre a no difuso do Gs Natural como combustvel,
apontando no s a falta de infra-estrutura mas tambm o desconhecimento das vantagens do GNV como principais
causas para a no difuso desse combustvel, sugerindo por fim a implementao de uma campanha promocional para
o uso de combustveis mais verdes. Em [24], Thamsiriroj, T. et al sugerem um roteiro para introduo de combustveis
gasosos no transporte, utilizando o caso de uso de gs natural renovvel na Irlanda.
O GNV tambm apontado extensivamente como alternativa ao uso de diesel, com motivao principalmente no
carter no-renovvel do diesel e na alta emisso de poluentes resultante do seu uso, por diversos artigos. Em [8],
Ramos, D.B. apresenta aspectos de um projeto de uma central eletrnica para uso de GNV em motores de ignio por
compresso (diesel) utilizando lgica nebulosa; em [10], Oliveira, F.B. et al dissertam sobre o desenvolvimento de
um kit de converso para uso de GNV em motores diesel estacionrios. Em [22], Carlucciet, A.P. et al apresentam os
resultados experimentais (e sua anlise) de um motor a combusto movido diesel e GNV simultaneamente.
Por outro lado, pesquisas envolvendo injeo eletrnica de combustvel tambm so temas comuns de artigos e
produes cientficas. Alm do j citado Ramos, D.B. (em [8]), em [7], Carvalho, T.C.O. trata sobre o
desenvolvimento de uma central eletrnica aberta, incluindo uma plataforma com uma IHM (Interface Homem
Mquina) para configurao dos parmetros. Em [9], Veiga, M.R., apresenta o uma central eletrnica prpria para
injeo de GNV juntamente com lcool, com objetivo de aumentar-se a eficincia volumtrica e, conseqentemente, a
potncia do motor movido GNV. Em [18], Burger, P.R.B et al desenvolvem um trabalho muito parecido com Veiga,
M.R., mas com o uso de centrais eletrnicas da Motec para gerncia do tempo de injeo de GNV e de lcool. Em
[20], Lino, P. et al apresentam um modelo para predio da presso na flauta de distribuio do combustvel,
permitindo, com isso, a criao de um sistema de controle de injeo do GNV.
Existe ainda um nmero significativo de pesquisas que investigam o uso de inteligncia artificial em sistemas de
gerenciamento de motores a combusto, a mais notvel a pesquisa feita por Kalogirou, S.A. em [27], onde feita uma
6

reviso sobre a utilizao de inteligncia artificial para modelamento e controle do processo de combusto. Outra
pesquisa importante a de Ramos, D.B. (em [8]), j citada como um caso de pesquisa sobre injeo de GNV em
motores a diesel e como um caso de projeto de central eletrnica de combustvel, que utilizou lgica nebulosa no
projeto da central eletrnica. Em [11], Barghi, F. e Safavi A.A. falam sobre o desenvolvimento de um sistema com
utilizao de redes Neuro-fuzzy recorrentes para controle de injeo de combustvel (CNG) em motores de ignio por
centelha. Em [25], Huang, S.R. et al apresentam resultados experimentais de um sistema que se utiliza de lgica
nebulosa para gerncia de motores movidos a hidrognio. Em [26], Kheir, N.A. et al descrevem a utilizao de lgica
nebulosa para controlar a regulagem do motor de forma a dar nfase ou na economia de combustvel ou no controle da
emisso de poluentes em veculos hbridos.
Ainda relacionado ao tema abordado nesta dissertao esto artigos que apresentam dados comparativos
relacionados ao uso de GNV em detrimento aos combustveis convencionais. Em [15], Mello, P. et al apresentam
resultados de ensaios sobre a potncia mxima de veculos convertidos para uso de GNV com uso de kits de 3
gerao, apontando uma perda de potncia na ordem de 20% e apontando os motivos principais como: (1) baixa
eficincia trmica, (2) baixa eficincia volumtrica e (3) arrasto criado pelo misturador. Adicionalmente, o tema da
reduo da emisso de poluentes analisado, principalmente hidro-carbonetos e monxido de carbono (HC e CO). Em
[21], Kalam, M.A. e Masjuki, H.H. apresentam resultados experimentais de um novo motor de injeo direta de GNV,
criado a partir da modificao de um carro com injeo indireta, comprando o desempenho do motor utilizando
injeo direta de GNV ao desempenho do mesmo motor movido gasolina ou com injeo indireta de GNV. Em [23],
Aslam, M.U et al fazem uma investigao sobre o uso de GNV em um veculo movido gasolina, fazendo uma
anlise comparativa entre o GNV e a gasolina, com resultados apontando maior eficincia e menor emisso de CO,
CO2 e HC a favor do GNV, mas uma emisso maior de NOx em contrapartida.
A grande quantidade e diversidade de abordagens dos artigos relacionados ao uso de GNV, ou seja, do gs natural
como combustvel, reflete no s uma preocupao em se criar alternativas mais econmicas de combustvel ou em se
aproveitar o enorme potencial que esse combustvel possui, mas tambm, e talvez principalmente, uma crescente
preocupao ambiental e uma conscincia da enorme contribuio dos automveis nas alteraes climticas. Em
adio, a complexidade de sistemas de injeo de combustvel freqentemente conduzem utilizao de tcnicas de
inteligncia artificial como ferramenta.

2.2

INJEO E IGNIO DE MOTORES DE CICLO OTTO

O motor de ciclo Otto composto por cilindros dentro dos quais se movimentam pistes. A combusto da mistura
ar-combustvel acontece dentro desses cilindros, aumentando a presso interna, sendo a responsvel pela
movimentao do pisto dentro do cilindro, que se d entre o Ponto Morto Superior (PMS) e o Ponto Morto Inferior
(PMI), o que promove a variao de seu volume interno. O PMI a posio mais baixa que o pisto pode atingir
dentro do cilindro (na qual o volume do cilindro mximo), e o PMS o oposto do PMI, sendo a posio mais alta
que o pisto pode atingir dentro do cilindro (na qual o volume do cilindro mnimo).
Cada cilindro dotado de uma vlvula de admisso, por onde entra a mistura ar-combustvel, e uma vlvula de
exausto (ou escape), por onde saem os gases resultantes da queima. Para iniciar a queima dentro da cmara produz-se
uma centelha eltrica (fasca), atravs de uma vela de ignio.
O ciclo Otto consiste em 4 (quatro) etapas:
1. Aspirao: a vlvula de admisso aberta e a mistura ar-combustvel aspirada. A mistura ar-combustvel
formada pelo ar admitido pela abertura da borboleta (que por sua vez controlada pelo pedal de
acelerao) misturado ao combustvel dosado pelo sistema de injeo (eletrnica ou carburada). Inicia-se
no PMS e termina no PMI.
2. Compresso: a mistura ar-combustvel comprimida dentro do cilindro com as duas vlvulas fechadas.
No fim dessa etapa, antes que se atinja o PMS, a centelha produzida (processo de ignio). Inicia-se no
PMI e termina no PMS.
3. Expanso: devido alta presso dentro do cilindro, causada pela combusto da mistura ar-combustvel e
pelo fato de as vlvulas estarem fechadas, o pisto desloca-se, aumentando o volume ocupado pela mistura.
Inicia-se no PMS e termina no PMI.
4. Exausto: a vlvula de escape se abre e o resultado da queima expulso do cilindro pelo movimento de
subida do pisto, iniciando um novo ciclo. Inicia-se no PMI e termina no PMS
A Figura 3 [28] ilustra essas 4 (quatro) quatro etapas.

Figura 3: Etapas do ciclo OTTO [28]

No funcionamento dos motores de ciclo OTTO, existem duas importantes variveis que devem ser controladas:
1.

A quantidade de combustvel dosada na mistura a relao estequiomtrica de ar-combustvel deve ser


obedecida para que a reao qumica de combusto produza somente CO2 e H2O e que a quantidade
mxima de energia seja liberada no processo. Quando a mistura de ar-combustvel ideal, todo o carbono
(C) consumido, formando gs carbnico (CO2), todo hidrognio (H) consumido, formando vapor
dgua (H2O) e todo nitrognio (N2) presente na reao se mantm inalterado. Nessas condies, diz-se
que a mistura ar-combustvel estequiomtrica [29].

2. O instante de produo da centelha (ignio) o processo de ignio se d pela produo da centelha que
inicia o processo de combusto dentro de cada cilindro. Devido ao fato de que a combusto da mistura arcombustvel leva um tempo para se completar, a centelha deve ser produzida pouco antes do PMS de tal
maneira que essa combusto esteja completa quando o cilindro atingir o PMS. A distncia do ponto em
que a centelha foi produzida e o PMS medida em graus e chamada de Avano de Ignio e seu valor
ideal varia em funo das condies de funcionamento do motor e da velocidade de chama do combustvel
utilizado. O Avano de Ignio pode ser calculado pela Equao ( 1 ).
 
  =

     


360
     

(1)

Inicialmente essas variveis eram controladas por sistemas eletro-mecnicos, com o uso de carburadores para
dosagem de combustvel. Porm, com a crescente exigncia de baixo consumo de combustvel e menor emisso de
poluentes, o sistema de injeo e ignio atual eletrnico.

2.3

ASPECTOS TECNOLGICOS DA INJEO E IGNIO ELETRNICAS

A injeo eletrnica um sistema no acionado pelo motor, comandado eletronicamente e que dosa a quantidade
de combustvel a ser injetado, controlando a mistura-ar-combustvel em funo das necessidades imediatas do motor.
De modo semelhante, a ignio eletrnica permite que o motor trabalhe com o seu ponto de ignio sincronizado com
as diversas condies de funcionamento do motor [29].
Existem 2 (dois) sistemas de injeo em motores de ciclo OTTO. O sistema monoponto e o sistema multiponto. O
sistema monoponto (Figura 4) caracterizado pela existncia de um nico bico injetor para todos os cilindros. Esse
bico injetor fica localizado junto ao corpo de borboleta e responsvel pela injeo de combustvel para todos
cilindros. J no sistema multiponto (Figura 5), existe um bico injetor para cada um dos cilindros. Esses bicos ficam
dispostos logo antes da vlvula de admisso [31].
8

Figura 4: Sistema de injeo monoponto [31]

Figura 5: Sistema de injeo multiponto [31]

Em ambos os sistemas (monoponto ou multiponto), a quantidade de combustvel injetada no cilindro determinada


pelo tempo de abertura da vlvula de injeo (medida geralmente em milissegundos). Essa quantidade de combustvel
a ser injetada deve ser determinada de tal forma que a mistura ar-combustvel seja estequiomtrica.
De forma resumida, os sistemas de injeo e ignio eletrnica utilizam-se das leituras de alguns sensores
dispostos no carro para realizar o clculo do tempo necessrio de abertura do bico eletro-injetor de combustvel e do
instante adequado produo da centelha (avano de ignio), respectivamente.
Os sistemas de injeo/ignio eletrnica so compostos de sensores, atuadores e uma UCE (Unidade de Comando
Eletrnico). Em uma abordagem simplificada, a UCE responsvel por ler os sensores, fazer os clculos de tempo de
injeo e avano de ignio e comandar os atuadores.

2.3.1

Os principais Sensores de um sistema de injeo/ignio eletrnica

Os sensores so responsveis por disponibilizar UCE as informaes necessrias ao clculo da quantidade de


combustvel que deve ser injetada e do avano de ignio.
Seguem exemplos de sensores de um sistema de injeo/ignio eletrnica:
9

a) Sensor de temperatura da gua do motor: indica a temperatura da gua de resfriamento do motor, e


conseqentemente a temperatura aproximada do bloco do motor.
b) Sensor de temperatura do ar aspirado: indica a temperatura do ar a ser utilizado na mistura arcombustvel. importante porque a temperatura est diretamente ligada densidade do ar e,
conseqentemente, massa de ar injetado.
c) Sensor de rotao do motor: indica a freqncia de rotao do motor. uma varivel bastante importante
e utilizada como entrada na determinao de tempo de injeo e no avano de ignio.
d) Sensor de grau de abertura da borboleta: indica o quanto a borboleta est aberta, ou seja, o quanto o
motorista est pisando no acelerador. A borboleta (ligada ao acelerador) determina a quantidade de ar que
entra na cmara de admisso. Sobre esse ar o(s) bico(s) injetor(es) jogar()(o) o combustvel para formar a
mistura ar-combustvel. um dos principais sinais para determinar a quantidade de combustvel a ser
injetada.
e) Sensor de presso do coletor: tambm conhecido como sensor MAP (Manifold Air Pressure, ou Presso
Absoluta no Coletor), indica a presso no coletor de ar. Essa informao utilizada juntamente com a
informao do sensor de temperatura do ar aspirado (b) para determinar a massa de ar admitida. Um ponto
importante que os sistemas de injeo precisam determinar a vazo mssica e no a vazo volumtrica de
ar. Para executar isto existem diferentes mtodos diretos ou indiretos. Os mtodos diretos usam sensores de
fluxo mssico baseados em sensores de fio/fita quente [30]. Os mtodos indiretos usam a informao de
um sensor de presso e um sensor de temperatura do ar na cmara de admisso para determinar a massa de
ar entrante.
f) Sonda lambda: indica a quantidade de oxignio nos gases de escape, informando UCE se a mistura est
muito rica em combustvel ou muito pobre. Dessa forma a UCE pode ir corrigindo a quantidade de
combustvel injetada durante seu funcionamento. importante observar que a relao mssica de arcombustvel ideal determinada para cada combustvel. No caso de gasolina a relao ideal da mistura est
diretamente relacionada com a tentativa de maximizar o rendimento do motor (potncia transmitida para o
carro) e minimizar a emisso de poluentes, por exemplo: hidrocarbonetos (HxCy), xidos de nitrognio
(NOx) e monxido de carbono (CO).

2.3.2

Principais atuadores controlados por um sistema de injeo/ignio eletrnica

Os atuadores so responsveis por controlar o processo fisicamente a partir de sinais da UCE. Os principais
atuadores utilizados em um sistema de injeo/ignio eletrnica so:
a) Bico eletro-injetor: espirra combustvel para realizar a mistura com o ar. O tempo em que fica aberto determina
a quantidade de combustvel da mistura.
b) Velas de ignio: produzem a fasca que inicia o processo de combusto da mistura ar-combustvel.
Esses atuadores so descritos com mais detalhes abaixo.

O BICO ELETRO-INJETOR

O bico eletro-injetor uma eletrovlvula normalmente fechada (NF), comandada pela UCE que promove sua
abertura energizando-a. O fechamento ocorre pela ao de uma mola interna quando a eletrovlvula (bico eletroinjetor) desenergizada [29]. As eletrovlvulas so baseadas em um magneto que atrado para o ncleo de um
solenide quando esse percorrido por uma corrente eltrica.
A Figura 6 mostra uma vista em corte de um bico injetor, onde:
1. Filtro um filtro de combustvel para evitar seu entupimento;
2. Bobina o solenide que ir atrair o magneto quando energizado;
3. Armadura do Solenoide o magneto atrado pelo solenide quando esse energizado;
4. Agulha a pea mecnica que bloqueia a passagem de combustvel, e que recolhe (juntamente com o
magneto) quando o solenoide energizado, permitindo a passagem do combustvel;
5. Espigo a abertura pela qual passa o combustvel quando a agulha recolhe;

10

Figura 6: Vista em corte de um bico injetor [32].

Na prtica, o solenide conectado tenso da bateria de um lado e UCE do outro, de forma que quando a UCE
deseja comandar a abertura do bico injetor cria-se um caminho de corrente para o terra (GND), a bobina energizada,
a agulha recolhe e h injeo de combustvel, e em condio de repouso, quando no h injeo de combustvel, a
UCE deixa seu terminal em alta impedncia, nenhuma corrente flui pelo bico injetor e no h injeo de combustvel.
Uma forma comum de fazer esse tratamento atravs do uso de MOSFETs (Metal Oxide Semiconductor Field Effect
Transistor).

AS VELAS DE IGNIO

As velas de ignio so responsveis por criar a centelha que inicia o processo de combusto. Essa centelha
criada a partir de uma altssima diferena de tenso eltrica entre dois terminais separados por uma pequena distncia
entre si. A Figura 7 traz uma vista em corte de uma vela de ignio, onde:
1. Conector, de onde vem a energia que gera a centelha;
2. Isolante de Cermica, que promove o isolamento trmico e eltrico;
3. Eletrodo, que conduz a energia eltrica at o local onde a centelha produzida;
4. Junta, que conduz a energia que passa do eletrodo central ao eletrodo lateral de volta ao terra (GND).

Figura 7: Vista em corte de uma vela de ignio [33].

Para produo da tenso necessria produo de centelha, utilizada uma bobina - Figura 8. A bobina consiste de
um enrolamento primrio e um enrolamento secundrio, e em sistemas de corrente alternada a tenso no primrio
multiplicada no secundrio segundo a relao de nmero de voltas em cada uma das bobinas, conforme a Equao
( 2 ).


!"#%&'

= (%&)%&'

*  +, !"#%&'


*  +,(%&)%&'

(2)

11

Figura 8: Vista em corte de uma bobina de ignio [33].

Essa relao s verdadeira em sistemas de corrente alternada pois a variao de corrente no primrio que
provoca uma variao de campo magntico no ncleo que finalmente gera uma variao de corrente no secundrio.
Podemos dizer, portanto, que apenas uma variao de corrente no primrio vai surtir efeito no secundrio.
A produo de centelha acontece da seguinte maneira:
1. O primrio tem um de seus terminais conectados tenso da bateria e o outro UCE, que inicialmente o
deixa em alta impedncia, impedindo a circulao de corrente;
2. Alguns instante antes do momento de produo da centelha, a UCE conecta o terminal da bobina ao terra,
criando um caminho para a corrente circular e carregando o primrio;
3. Depois que uma corrente suficiente passa a circular pelo primrio, a UCE interrompe o caminho de
corrente abruptamente, de forma que essa variao cria a tenso necessria produo da centelha no
secundrio.
Na prtica, a tarefa de permitir e interromper o fluxo da corrente eltrica, tal qual no acionamento de bicos
injetores, tambm feita a com o uso de MOSFETs (Metal Oxide Semiconductor Field Effect Transistor).

2.3.3

A UCE (Unidade de Comando Eletrnico)

A UCE responsvel por controlar o funcionamento do motor, usando os sensores para obter a condio de
funcionamento e os atuadores para modificar esse funcionamento. As duas sadas principais do controle da UCE so
os sinais que controlam o tempo de injeo de combustvel e o avano da ignio. A Figura 9 ilustra um diagrama de
blocos de um sistema de injeo/ignio eletrnica.

Figura 9: Diagrama de blocos de um sistema de injeo/ignio eletrnica

Como exemplos de fabricantes e modelos de UCEs podemos citar os seguintes: Bosch (Bosch Motronic, Bosch Le
Jetronic, Bosch Monomotronic); Magneti Marelli (Magneti Marelli IAW, Magneti Marelli 1AVB); FIC (FIC EEC-IV,
FIC EEC-V); Delphi (Delphi Multec).

12

2.3.4

Relao ar-combustvel e os principais gases emitidos por motores a combusto

Como dito na seo 2.2, uma mistura dita estequiomtrica quando produz apenas H2O e CO2. A relao entre a
massa de ar e a massa de combustvel admitido o que chamamos de relao-ar-combustvel (RAC), e varia de
combustvel para combustvel [29]. As principais relaes estequiomtricas podem ser encontradas na Tabela 1.
Tabela 1: Relaes estequiomtricas dos principais combustveis [34].

Combustvel

Proporo
por Massa

Proporo
por Volume

Porcentagem de
combustvel por massa

Gasolina

14,7 : 1

6,8%

Gs Natural

17,2 : 1

9,7 : 1

5,8%

Propano

15,5 : 1

23,9 : 1

6,45%

Etanol

9:1

11,1%

Metanol

6,4 : 1

15,6%

Hidrognio

34 : 1

2,39 : 1

2,9%

Disel

14,6 : 1

0,094 : 1

6,8%

Quando h na mistura mais ar do que o ideal, a mistura dita pobre (em combustvel), no caso contrrio, mais
combustvel que o ideal, a mistura dita rica. A variao da RAC para uma relao no estequiomtrica (tanto para
mais rica quanto para mais pobre) causa a emisso de gases poluentes.
Segundo VON GLEHN, F. R. [29], os principais gases de emisso so exibidos na Tabela 2.
Tabela 2: Principais gases poluentes

H2O

vapor de gua

CO2

dixido de carbono

N2

nitrognio

CO

monxido de carbono

HxCy

hidrocarbonetos

NOx

xido de nitrognio, dixido... etc.

H2

hidrognio

CH4

metano

SOx

xido de enxofre, dixido... etc.

O2

oxignio

Por ser o gs mais preocupante e agressivo, apenas o CO ser abordado nessa dissertao, sendo um gs levemente
inflamvel, incolor, inodoro e muito perigoso devido sua grande toxicidade.
13

O Monxido de Carbono (CO) forma com a hemoglobina do sangue um composto mais estvel do que ela e o
oxignio, podendo levar morte por asfixia. A exposio a doses relativamente elevadas em pessoas saudveis pode
provocar problemas de viso, reduo da capacidade de trabalho, reduo da destreza manual, diminuio da
capacidade de aprendizagem, dificuldade na resoluo de tarefas complexas e at mesmo levar a morte. Concentraes
abaixo de 400 ppm no ar causam dores de cabea e acima deste valor so potencialmente mortais, tanto para plantas e
animais quanto para alguns microrganismos [35].
A produo de Monxido de Carbono aumentada principalmente por dois fatores: uma RAC rica (muito
combustvel) e uma no homogeneidade da mistura. Em ambos os casos o que se d a falta da molcula de oxignio
na reao qumica, fazendo com que o produto da combusto seja o CO no lugar do CO2. Uma descrio mais
abrangente de gases poluentes produtos da combusto de motores do ciclo Otto pode ser encontrada em VON
GLEHN, F. R. [29].

2.4

GNV E CONSIDERAES EM RELAO AO SEU USO

O Gs Natural um dos resultados da decomposio de matria sedimentada. encontrado em rochas porosas no


subsolo. Segundo trabalho publicado no Prmio Petrobrs de Tecnologia em maio de 2007 [36], o Gs Natural
composto por gases inorgnicos e hidrocarbonetos saturados, com predominncia do metano, e, em menor grau, o
etano e o propano.
Devido s suas propriedades qumicas, o Gs Natural uma boa alternativa na substituio de combustveis
convencionais nos motores de ciclo OTTO com ignio por centelhamento. Quando usado em veculos, recebe o
nome de GNV (Gs Natural Veicular).

2.4.1

Um breve histrico do GNV no Brasil [37] [38]

A histria do GNV no Brasil abordada pois considera-se importante para compreender as tendncias dessa
alternativa de combustvel nos dias atuais. Enumerados abaixo, esto importantes eventos na histria do GNV no
Brasil:

1854 Comea a histria do gs no Brasil, com a instalao das primeiras lmpadas a gs no Rio de
Janeiro. O gs ainda era produzido a partir do carvo mineral e mais tarde de materiais como hulha e nafta.

1873 Instalao do mesmo sistema de lmpadas a gs em So Paulo.

1936 O GLP (Gs Liquefeito do Petrleo) comeou a ser usado para coco.

Dcada de 1950 O gs natural comea a ser usado no nordeste, com a produo inicialmente no estado da
Bahia e utilizado praticamente todo pelas indstrias.

1959 A Bahia chega a uma produo de 1 milho de m/dia, atingindo a marca de 3.3 milhes de m/dia
uma dcada depois [39].

Anos 1980 O gs natural passa a ser produzido na Bacia de Campos, no Rio de Janeiro;
Construo do gasoduto Bolvia Brasil (Gasbol), consolidando a atual situao de oferta de gs. Devido ao
fato do mercado interno de gs natural no ter se desenvolvido como se esperava, fato ocasionado por
fatores como: a falta de um mercado maduro e a necessidade de recuperao do capital investido no
gasoduto, o Brasil adotou medidas emergenciais e pouco eficazes;
Ainda nessa poca, comeam as primeiras discusses sobre o uso de GNV como combustvel, com a
criao de Comisses Governamentais para estudar-se o uso de GNV no lugar de leo diesel tanto no
transporte de cargas quanto no de passageiros. No entanto, o GNV no apresentou vantagens econmicas
que justificassem o alto custo da converso de frotas e a criao de Postos de Servio.

1992 a 1994 O GNV liberado para taxistas e frotas de empresa e com isso cria-se primeiro Posto de
Servio, visando a venda do combustvel para o pblico. Com o aumento da demanda, o mercado fica
desabastecido de GNV.

1994 a 1996 Dois fatores influenciaram a demanda por GNV em sentidos contrrios, um contra e um a
favor. Com o Plano Real veio a estabilizao dos preos dos combustveis, e conseqentemente a
impresso de que o GNV no trazia tanta economia como antes, mas em contrapartida foi dada aos taxistas
uma iseno de impostos que gerou grande renovao da frota.

1997 O GNV liberado para uso em carros particulares.

24/02/2000 O modelo de contrato adotado entre o Brasil e a Bolvia obriga o comprador (Brasil) a pagar
um percentual sobre o gs contratado caso no consuma o valor estipulado em contrato, e conhecido
14

como take or pay. Por esse motivo, o Brasil criou nesse ano, por meio do decreto 3.371 do Ministrio de
Minas e Energia [40], um programa que previa a construo imediata de termoeltricas movidas a Gs
Natural o Programa Prioritrio de Termeletricidade (PTT). Pode-se considerar que esse programa no
tenha sido bem sucedido, j que a potncia instalada no foi suficiente para evitar o chamado apago em
2001, e incluem-se como fatores para esse fracasso: deficincias regulatrias e alto custo de produo
frente hidroeletricidade.

Dcada 2000 As reservas brasileiras aumentam consideravelmente com a descoberta de petrleo e gs


nas camadas do pr-sal. Como informao, em 2000 as reservas provadas do pais eram de 220.000 milhes
de m e passaram para 364.263 milhes de m em 2008 segundo dados do Balano Energtico Nacional
2009, publicado pela Empresa de Pesquisa em Energia (EPE) do Ministrio de Minas e Energia (MME)
[41].
Seguindo o aumento das reservas, o Brasil passou a consumir mais gs natural, que alcanou uma
participao de 9,29% em relao s outras fontes de energia. Mesmo assim, o Brasil ainda consome
proporcionalmente muito menos gs natural que o mundo, 7% contra 21%, como fica evidenciado pela
Figura 10.

Figura 10: Consumo de Energia Primria por Tipo de Energtico no mundo [42] e no Brasil [43].

Tendncias futuras Prev-se que o Brasil chegue a uma produo nacional de gs natural de 250 milhes
de m/dia at 2030, e que a indstria permanea como principal consumidora desse combustvel. A
participao do gs natural na gerao de energia eltrica deve aumentar tambm, atingindo cerca de 15%
no mesmo ano [44].
As tecnologias de converso para GNV minimizam cada vez mais os impactos da substituio dos
combustveis originais, gasolina e lcool. O preo desses combustveis vem apresentando, ao mesmo
tempo, um crescimento proporcionalmente ao GNV, conforme Figura 11 extrada do Instituo Brasileiro de
Petrleo, Gs e Biocombustveis [1], que faz com que o retorno no investimento da converso se d em
menos tempo.
Esses dois cenrios somados tendem a reverter a atual tendncia de queda das converses anuais mostrada
na Figura 1 da seo 1.1.

15

Figura 11: Grfico dos preos dos combustveis e do N de converses [1]

2.4.2

Modificaes requeridas para o uso de GNV

Para converter carros movidos gasolina ou lcool para o uso de GNV, algumas modificaes devem ser feitas no
carro.
A Figura 12 ilustra os componentes necessrios converso [45]. Os componentes que aparecem nessa figura so:
1. Redutor de presso: Reduz a presso do gs do cilindro para a presso normal de funcionamento.
2. Eletrovlvula: Confere segurana extra, j que uma vez comutada para o combustvel lquido, a vlvula
interrompe o fluxo de gs imediatamente.
3. Bicos injetores de Gs: Promovem a injeo de gs de forma seqencial.
4. Mdulo de controle: Realiza um controle do tempo de injeo preciso, lendo os sensores e agindo sobre
os bicos injetores, o qual se pretende desenvolver neste trabalho de mestrado.
5. Vlvula de abastecimento de gs: Vlvula para abastecimento do veculo.
6. Indicador de nvel/chave comutadora: Boto seletor de combustvel e indicador de quantidade de gs no
cilindro.
7. Variador de avano: Promove a variao de avano.

16

Figura 12: Modificaes em um carro convertido para uso de GNV [45]

No que diz respeito ao controle dos sistemas de injeo e ignio, tambm existem modificaes a serem feitas:

2.4.3

Sinal de acionamento do sistema de injeo: dois fatores principais so diferentes quando se compara o
GNV ao combustvel usado pelo sistema de injeo eletrnica original. O primeiro diz respeito relao
estequiomtrica do combustvel. Enquanto a relao de 13,4Kg de ar para cada 1Kg de gasolina e de 8Kg
de ar para cada 1Kg de lcool, no caso do GNV so necessrios 17Kg de ar para reagir com 1Kg de gs
[46]. O segundo fator relacionado com a vazo de gs do sistema de injeo, que varia de acordo com o
kit instalado. Esses dois fatores fazem com que o tempo de acionamento do sistema de injeo do kit no
seja exatamente igual ao da gasolina, e por isso tenha que ser recalculado.

Sinal de acionamento da vela de ignio: o GNV tem uma velocidade de chama menor do que a gasolina
e o lcool (0,45 m/s do GNV contra 0,8 m/s da gasolina e 0,6 m/s do lcool) [46]. Isso implica na
necessidade de um maior avano de ignio quando o motor estiver operando com GNV.

Kits disponveis no mercado

Segundo um dossi tcnico elaborado pelo Servio Brasileiro de Respostas Tcnicas (BRT) em abril de 2007 [47],
existem atualmente no mercado 5 geraes de kits de converso:
a)

Primeira gerao: Utiliza acionamento pneumtico para a liberao do fluxo de gs e regulagem


mecnica e manual da vazo do gs, com chave comutadora de trs estgios. Usado em veculos
carburados.

b)

Segunda gerao: Utiliza-se de um mesclador para alimentao do gs. Possuem emuladores de


bicos injetores e de sonda lambda e so usados em carros dotados de injeo eletrnica.

c)

Terceira gerao: Utiliza um motor de passo para promover a alimentao de GNV. O controle da
vazo da mistura ar-GNV feita eletronicamente em funo da sonda lambda, rotao e carga do
motor. So usados em carros com injeo eletrnica.

d)

Quarta gerao: A injeo de gs feita por bicos de forma paralela no coletor de admisso, com
redutor de presso de dois estgios. Dessa forma, no existe a ocorrncia de retorno de chama, e o
desempenho melhorado. Tambm usados em carros com injeo eletrnica.

e)

Quinta gerao: Os bicos injetores so acionados de forma seqencial, injetando gs no coletor de


admisso, com redutor de presso de dois estgios. Diminui a emisso de poluentes e a perda de
potncia, alm de manter a eliminao da ocorrncia do retorno da chama.
17

2.4.4

Vantagens do GNV [48]

Quando comparado gasolina e ao lcool, o GNV apresenta os seguintes atrativos:


a) uma fonte segura, pelos seguintes motivos:
Menor densidade que o ar atmosfrico: significa que o gs natural no ir se acumular em
regies inferiores, sendo suficiente a existncia de sistemas de ventilao para permitir a sua
dissipao.
No toxidade: sua ingesto ou inalao acidental no provoca danos sade, pois as substncias
componentes do gs natural so inertes no corpo humano.
Alto limite de inflamabilidade inferior: para que se atinjam as condies de auto-sustentao da
combusto se faz necessria uma quantidade significativa de gs natural em relao quantidade
total de ar em um ambiente.
Faixa entre os limites de inflamabilidade inferior e superior estreita: o que significa dizer
que alm de ser difcil alcanar o limite inferior de inflamabilidade, caso isso ocorra a condio de
diluio da mistura ar-gs natural que permite a auto-sustentao da rapidamente perdida, pois
logo se atinge o limite superior de inflamabilidade e o gs natural torna-se diluente do ar.
b) Causa menos impacto global, pois contribui menos para o aquecimento global: o uso de GNV tem importante
papel na reduo dos nveis de poluio atmosfrica, uma vez que a sua combusto com excesso de ar tende a
ser completa, liberando apenas dixido de carbono (CO2) e gua (H2O) [49].
c) Menor custo que a gasolina e o lcool: a relao R$/Km chega a ser 50% melhor que a da gasolina (ver seo
1.1).

2.4.5

Desvantagens do GNV

Embora o GNV apresente algumas desvantagens em relao gasolina, tais problemas podem ser minimizados ou
at eliminados, como ser descrito a seguir.
2.4.5.1

PROBLEMAS ENCONTRADOS NA CONVERSO PARA GNV

J existem no mercado alguns automveis equipados de fbrica para o uso de GNV. Entretanto, a maioria dos
automveis que se utiliza desse combustvel ainda formada por carros convertidos, ou seja, carros originalmente
movidos a gasolina, lcool ou ambos (bicombustveis) e que foram adaptados para o uso de GNV atravs de kits de
converso. O problema que, em grande parte dos casos, os carros convertidos apresentam alguns (ou todos) dos
seguintes problemas:

a) Queda de rendimento: Em alguns kits, a converso utilizada funciona de um modo similar aos antigos
carburadores, onde a quantidade de combustvel admitida depende diretamente da diferena de presso causada
no coletor de admisso do motor. Devido necessidade de utilizao de elementos restritores nesses kits de
converso, os chamados misturadores, existe uma menor vazo de mistura gs-ar e, portanto, uma
considervel perda de potncia.
b) Alta emisso de poluentes: Alguns kits apresentam uma deficincia na homogeneizao da mistura ar-GNV,
diminuindo a eficincia da queima da mistura, e conseqentemente gerando alto consumo e alta emisso de
poluentes.

a) Alto consumo: Esse fator se deve deficincia na homogeneizao citada no item b) e tambm baixa
velocidade de combusto do GNV se comparado gasolina ou ao lcool. Essa baixa velocidade de combusto
exige que o kit faa o que se chama de avano de ignio, ou seja, exige que a fasca seja produzida antes do
que seria caso o motor fosse movido gasolina ou lcool. O problema existe porque muitos dos kits atuais no
fazem esse avano de ignio adequadamente.
2.4.5.2

SOLUES PARA OS PROBLEMAS DE CONVERSO PARA GNV

Para melhorar o desempenho, o consumo e a emisso de poluentes, alguns kits j apresentam elementos
inteligentes, que determinam a quantidade de gs a ser utilizada usando sensores da injeo original (ver seo 2.4.3).
Isso permite que o kit tenha um maior controle sobre o processo, podendo calcular com maior preciso a quantidade
de GNV da mistura e o melhor momento de produzir a centelha de ignio.
Resumidamente, os problemas apontados nessa seo podem ser minimizados, ou at resolvidos, trabalhando nos
seguintes aspectos:
18

Controle mais preciso da quantidade de GNV a ser utilizado na mistura, usando para isso os sinais dos
sensores da UCE da injeo eletrnica original.

Avano de ignio mais preciso, usando tambm os sinais da UCE da injeo eletrnica original.

Em aspectos gerais, o uso de GNV se mostra compensador, sendo mais barato e menos poluente. Os problemas
apontados nessa seo podem ser resolvidos em grande parte com as solues apresentadas tambm nesta seo.

2.5

ASPECTOS BSICOS DE LGICA NEBULOSA (FUZZY LOGIC)

A lgica sempre foi estudada em Inteligncia Artificial como um formalismo para apresentao do conhecimento.
A representao obtida , no entanto, inflexvel demais para lidar com conceitos do mundo real sem exigir um nvel
elevado de simplificao. Na lgica clssica lidamos com um mundo de clareza, rigor e preciso no qual conceitos
reais no se encaixam com facilidade.
A habilidade humana para manipular conceitos imprecisos vista como a principal diferena entre inteligncia
humana e artificial. Consideremos um paradoxo conhecido desde a grcia antiga: um homem com um fio de cabelo a
mais do que um homem calvo tambm calvo? Aparentemente, o bom senso no diz que sim. No entanto, esta
afirmao em lgica clssica nos fora a concluir que todos so calvos. Afinal, se um homem com nenhum fio de
cabelo calvo por definio, e aquele com 1 fio de cabelo a mais continua calvo, ento so calvos os homens com 2
fios de cabelo, 3 fios de cabelo, ou qualquer nmero finito de fios de cabelo. Obviamente, o conceito de calvcie no
se descreve corretamente com um nmero mximo de fios de cabelo.
A lgica nebulosa (fuzzy logic) pretende formalizar a habilidade humana de chegar a decises razoveis baseadas
em dados imprecisos e qualitativos. Com ela procura-se tratar a impreciso e o carter vago dos processos mentais
humanos. Um artigo de Zadeh (1965), que prope uma extenso da teoria clssica de conjuntos, costuma ser citado
como ponto de partida das pesquisas sobre lgica nebulosa, ainda que estas relacionem-se com as lgicas
multivaloradas, cuja origem bem mais antiga. [50]
Na teoria clssica de conjuntos s h duas possibilidades: um elemento pertence ou no a um determinado
conjunto, e os limites que determinam essa pertinncia so bem definidos. Quando falamos de conjuntos difusos,
teoria introduzida por Lotfi Zadeh em 1965, afirma-se que a transio entre pertencer a um conjunto e no
pertencer a um conjunto gradual [51].
Em um conjunto nebuloso, um elemento possui um grau de pertinncia em relao a um conjunto que varia desde a
completa excluso (grau de pertinncia = 0) at a pertinncia mxima (grau de pertinncia = 1). Ou seja, quanto maior
o grau de pertinncia de um elemento em relao a um conjunto, mais esse elemento pertence a esse conjunto, ou mais
compatvel esse elemento com esse grupo [52]. O conceito de conjunto nebuloso uma generalizao do conceito de
conjunto da lgica clssica, portanto ele coincidir com a lgica clssica se determinarmos que os graus de pertinncia
assumiro apenas dois valores: 0 ou 1.
Um sistema nebuloso (fuzzy) baseado em regras, e funciona da seguinte maneira: as regras so aplicadas
considerando os fatos (entradas do sistema ou antecedentes), a aplicao das regras passa por um mecanismo de
inferncia de onde saem as decises (sadas do sistema ou consequentes). Essas regras tomam a forma de sentenas
lgicas com variveis lingsticas (seo 2.5.3), por exemplo:

2.5.1

Se a temperatura do motor est alta, aumente um pouco o tempo de injeo;

Se a rotao est baixa e a velocidade est alta, diminua muito o tempo de injeo.

Conjunto Nebuloso

Um conjunto nebuloso caracterizado por sua funo de pertinncia (vide Equao ( 3 )):
: / [0,1]

(3)

onde (x) representa o grau de pertinncia do elemento x ao conjunto A e representa o quanto a categoria definida
pelo conjunto A representa esse elemento. O conjunto X todo o universo de valores que x pode assumir.
Como exemplo, suponha que A seja um conjunto que defina o conceito baixa rotao para os valores de rotao
no universo X = [0,7000] RPM. Em lgica clssica, essa definio tomaria uma forma parecida com a Equao ( 4 ).
 = [0,2000]6

(4)
19

Com isso, valores abaixo de 2000 RPM so considerados como baixa rotao e valores acima disso no. Isso cria
distores do tipo: o valor de 2000 RPM considerado baixa rotao, mas 2001 RPM no. Um conjunto nebuloso que
defina baixa rotao seria definido por uma funo de pertinncia que poderia assumir uma forma parecida com a
Equao ( 5 ).
1 , 8 1000
3000 8
789 = :
, 1000 < 8 3000 ?
2000
0 , 8 > 3000

(5)

De acordo com essa definio, valores de rotao abaixo de 1000 RPM so considerados baixa rotao, valores
acima de 3000 RPM no so considerados baixa rotao, e valores entre 1000 RPM e 3000 RPM so considerados
como baixa rotao em algum grau intermedirio entre 0 e 1. Por exemplo, 2000 RPM ser considerado 0,5 em baixa
rotao.
A diferena entre os dois conjuntos pode ser visualizada na Figura 13.
1.2

Grau de Pertinncia x Valor de Rotao

Grau de Pertinncia

1
0.8
0.6
Conjunto Clssico
0.4

Conjunto Nebuloso

0.2

0
250
500
750
1000
1250
1500
1750
2000
2250
2500
2750
3000
3250
3500
3750
4000
4250
4500
4750
5000
5250
5500
5750
6000
6250
6500
6750
7000

Valor de Rotao (RPM)


Figura 13: Diferena entre um conjunto clssico e um conjunto nebuloso

2.5.2

Funes de Pertinncia

Existem diversas maneiras de definir uma funo de pertinncia, veremos aqui algumas das mais comuns.
2.5.2.1

Funes Direitas

As funes direitas possuem dois parmetros:


1. A ponto a partir do qual a funo de pertinncia comea a subir de 0 para 1 e antes do qual a funo de
pertinncia ser sempre igual a 0;
2. B ponto a partir do qual a funo de pertinncia ser sempre igual a 1;
A funo direita tem a forma da Equao ( 6 ).

8
@#&%&AB 78: , C9 = mx Fmn F
, 1H , 0H
C

(6)

Um exemplo de funo de pertinncia direita pode ser encontrado na Figura 14:

20

Funo Direita
A = 400; B = 600
Grau de Pertinncia

1.2
1

Funo Direita

0.8
0.6
0.4
0.2

1
51
101
151
201
251
301
351
401
451
501
551
601
651
701
751
801
851
901
951

0
Valores dos dados de Origem
Figura 14: Exemplo de funo de pertinncia direita
2.5.2.2

Funes Esquerdas

As funes esquerdas possuem dois parmetros:


3. A ponto a partir do qual a funo de pertinncia comea a cair de 1 para 0 e antes do qual a funo de
pertinncia ser sempre igual a 1;
4. B ponto a partir do qual a funo de pertinncia ser sempre igual a 0;
A funo esquerda tem a forma da Equao ( 7 ).

C8
@I!%#B 78: , C9 = mx Fmn F
, 1H , 0H
C

(7)

Um exemplo de funo de pertinncia esquerda pode ser encontrado na Figura 15:

Funo Esquerda
A = 400; B = 600
1

Funo Esquerda

0.8
0.6
0.4
0.2
0
1
51
101
151
201
251
301
351
401
451
501
551
601
651
701
751
801
851
901
951

Grau de Pertinncia

1.2

Valores dos dados de Origem


Figura 15: Exemplo de funo de pertinncia esquerda

21

2.5.2.3

Funes Triangulares

As funes triangulares possuem trs parmetros:


5. A ponto a partir do qual a funo de pertinncia comea a subir de 0 para 1 e antes do qual a funo de
pertinncia ser sempre igual a 0;
6. B ponto a partir do qual a funo de pertinncia comea a cair de 1 para 0;
7. C ponto a partir do qual a funo de pertinncia ser sempre igual a 0;
A funo triangular tem a forma da Equao
quao ( 8 ).

8M 8
@A%&B"J!KB% 78: , C, M9 = mx Fmn F
,
H , 0HH
CM C

(8)

Um exemplo de funo de pertinncia triangular pode ser encontrado na Figura 16:

Figura 16:
16 Exemplo de funo de pertinncia triangular

2.5.2.4

Funes Trapezoidais

As funes trapezoidais possuem quatro parmetros:


1. A ponto a partir do qual a funo de pertinncia comea a subir de 0 para 1 e antes do qual a funo de
pertinncia ser sempre igual a 0;
2. B ponto a partir do qual a funo de pertinncia
pert
assume o valor de 1;
3. C ponto a partir do qual a funo de pertinncia comea a cair de 1 para 0;
4. D ponto a partir do qual a funo de pertinncia ser sempre igual a 0;
A funo trapezoidal tem a forma da Equao
E
( 9 ):

8N
8
78 , C, M, N9 = mx Fmn F
@A%B(L'&#BK 78:
, 1,
H , 0HH
MN C

(9)

Um exemplo de funo de pertinncia trapezoidal pode ser encontrado na Figura 17.

22

Figura 17:
17 Exemplo de funo de pertinncia trapezoidal
2.5.2.5

Funes Gaussianas

As funes gaussianas possuem dois parmetros:


1. parmetro que define a largura da funo gaussiana.
gaussiana
2. c ponto central da funo gaussiana;
gaussiana
A funo gaussiana tem a forma da Equao
quao ( 10 ).
@JB!&B"B 78: , P9 

S VRW Z
R U
Y
e T X

( 10 )

Exemplos de funes de pertinncia gaussianas podem ser encontrados na Figura 18. Nesse exemplo, so
ilustrados diferentes valores de .

Figura 18:
18 Exemplos de funes de pertinncia gaussianas

2.5.2.6

Funes Sino Generalizadas

As funes sino generalizadas possuem dois parmetros:


3. b parmetro que define o ponto central da transio de 1 para 0 da funo sino generalizada;
4. c parmetro que define a largura da funo sino generalizada.
23

A funo sino generalizada tem a forma da Equao


E
( 11 ).
@&"' J"%BK&LB#B 78: [, P9 

1
8 < P T^
1\]
]
[

( 11 )

Um exemplo de funo de pertinncia sino generalizada pode ser encontrado na Figura 19. Nesse exemplo, so
ilustrados diferentes valores de c.

Figura 19:
19 Exemplos de funes de pertinncia gaussianas

2.5.3

Variveis lingsticas

Uma varivel lingstica definida com palavras ou frases empregadas na linguagem natural, e no nmeros como
na lgica clssica. Assim, uma varivel ir assumir o valor de alta rotao ou mdia rotao ao invs de 5000
RPM ou 3000 RPM, por exemplo.
Um valor lingstico nada menos que um conjunto nebuloso, que possui sua funo de pertinncia definida. A
varivel poder assumir diversos valores lingsticos com diferentes graus de pertinncia. Uma rotao de 5000 RPM
pode ser considerada 0,3 mdia rotao e 0,8 alta rotao,
rotao, por exemplo. Dessa forma, define-se
define um conjunto de
valores lingsticos que uma determinada varivel poder assumir dentro do seu universo de discurso. Exemplos:
Rotao = {baixa rotao, mdia rotao, alta rotao};
Velocidade = {velocidade muito
to baixa, velocidade baixa, velocidade mdia, velocidade alta, velocidade
muito alta};
O uso de variveis lingsticas permite que suas regras tomem a forma de expresses semnticas, como:

2.5.4

Se a temperatura do motor est alta, aumente pouco o tempo de injeo;

Se a rotao est baixa e velocidade est alta, diminua muito o tempo de injeo.

Base de Conhecimento

A base de conhecimento do sistema nebuloso a formalizao em lgica nebulosa do conhecimento que o


projetista do sistema nebuloso se utilizou
izou para cri-lo.
cri lo. Essa base de conhecimento provm de especialistas do
sistema, que so agentes que dominam o conhecimento do sistema (humanos ou outros sistema de referncia, por
exemplo), podendo ser ou no o projetista do sistema nebuloso.
A base de conhecimento se concretiza na diviso do universo de discurso em variveis lingsticas, na definio
das funes de pertinncias dessas variveis e na definio de regras nebulosas que guiaro o funcionamento do
sistema e sero responsveis por fazer receber
receber os valores nebulosos de entrada e produzir os valores nebulosos de
sada.

24

2.5.5

Sistemas difusos, fuzzificao e defuzzificao.

A aplicao da lgica nebulosa (fuzzy), requer basicamente a aplicao de 4 passos:

Fuzzificao: Transformao dos dados de entrada (nmeros) em valores nebulosos (fuzzy) atravs das
funes de pertinncia.

Aplicao de Regras: Ao contrrio do que acontece na lgica clssica quando uma regra aplicvel ou
no, em lgica nebulosa uma regra pode ser parcialmente aplicada.

Combinao de Consequentes: Quando vrias regras dizem respeito a uma mesma sada do sistema,
preciso combinar seus resultados quando mais de uma parcial ou totalmente aplicvel.

Defuzzificao: O processo inverso da fuzzificao. O resultado da etapa acima de Combinao de


Consequentes so valores de sada nebulosos (fuzzy), que precisam ser transformados nas grandezas de
sada do sistema (nmeros).

2.5.5.1

Fuzzificao

O processo de fuzzificao transforma os valores de entrada do sistema, que so representados por nmeros, em
valores de pertinncia a conjuntos nebulosos (variveis lingsticas).
O processo de fuzzificao se d por meio do clculo da funo de pertinncia de cada conjunto nebuloso a partir
do valor da varivel de entrada. Nesse sentido, a escolha da funo de pertinncia deve ser feita considerando-se no
s sua adequao ao sistema, mas tambm seu custo computacional, e, portanto, deve ser considerada a possibilidade
de se usar tabelas de correspondncias (as look-up tables) no lugar de calcular-se a funo de pertinncia, a fim de
acelerar o processo de fuzzificao.
2.5.5.2

Aplicao de Regras

Como j foi dito, em um sistema nebuloso uma regra aplicvel em um nvel que vai de 0 (totalmente no
aplicvel) a 1 (totalmente aplicvel). Esse nvel se chama grau de ativao da regra, e advm do fato de que os
antecedentes de uma regra sero parcialmente verdadeiros tambm.
Por exemplo, a regra:

Se a rotao est baixa e velocidade est alta, diminua pouco o tempo de injeo.

Pode ser escrita da seguinte maneira:

Se rotao pertence ao conjunto baixa rotao e velocidade pertence ao conjunto alta velocidade, ento
faa a variao do tempo de injeo pertencer ao conjunto variao pouco negativa.

Est claro que se rotao possuir grau 1 de pertinncia em relao ao conjunto baixa rotao e velocidade possuir
grau 1 de pertinncia em relao ao conjunto alta velocidade, ento a variao de tempo de injeo tem que
pertencer ao conjunto variao pouco negativa com grau de pertinncia 1. Mas o que deve acontecer se, por
exemplo, rotao possuir 0,4 de pertinncia em relao ao conjunto baixa rotao e velocidade possuir 0,7 de
pertinncia em relao ao conjunto alta velocidade? Para esses casos, definida uma forma de tratar as operaes
e, ou, complemento, ou exclusivo e todas outras que forem utilizadas no sistema. Deve-se considerar que para
os limites 0 e 1 o resultado da operao deve coincidir com a lgica clssica.
Exemplos de como pode ser tratada a operao e:

Multiplicando os operadores. Por exemplo: 0,4 e 0,7 = 0,4 * 0,7 = 0,28;

Operao de mnimo. Por exemplo: 0,4 e 0,7 = mnimo(0,4;0,7) = 0,4;

Exemplos de como pode ser tratada a operao ou:

Fazendo uma soma limitada. Por exemplo: 0,4 ou 0,7 = mnimo (0,4 + 0,7; 1) = 1;

Operao de mximo. Por exemplo: 0,4 ou 0,7 = mximo(0,4;0,7) = 0,7;

Exemplo de como pode ser tratada a operao complemento:

Subtraindo de 1 o valor da varivel. Por exemplo: complemento de 0,4 = 1 - 0,4 = 0,6;

Supondo que optemos por utilizar uma operao de mnimo para a operao e, nossa regra do exemplo teria um
grau de ativao de 0,4 (que o resultado da combinao dos antecedentes 0,4 e 0,7).
25

2.5.5.3

Combinao de Conseqentes

Quando vrias regras dizem respeito a uma mesma varivel de sada, preciso combinar o resultado de todas essas
regras levando-se em considerao os graus de ativao de cada regra. Os mtodos de combinao mais utilizados so:
o mtodo de Mamdani [52][53], mtodo de Tsukamoto [54] e o mtodo de Takagi-Sugeno [55]. O mtodo Mamdani
o mtodo de implicao mais importante conhecido na literatura [56]
A Figura 20 mostra um exemplo do modelo de raciocnio tipo Mamdani para um sistema de duas regras com dois
antecedentes A e B cada uma, considerando as regras abaixo:

Se (a A1) e (b B1) ento c C1

Se (a A2) e (b B2) ento c C2.

Figura 20: Exemplo de combinao de conseqentes segundo Mamdani.

Repare que o resultado dessa Combinao de Conseqentes uma nova funo de pertinncia, representada pelo
contorno da figura geomtrica C (soma dos trapzios preto e cinza) na Figura 20.
2.5.5.4

Defuzzificao

O processo de Defuzzificao transforma os valores nebulosos frutos da Combinao de Conseqentes (C na


seo 2.5.5.3) em valores aplicveis no sistema de controle. Existem diversas maneiras de fazer a Defuzzificao:
Defuzzificao Centro da rea (C-o-A), conforme a Equao ( 12 );
e
afS ua bcd 7ua 9
u e
afS bcd 7ua 9

( 12 )

Defuzzificao Centro do Mximo (C-o-M), conforme a Equao ( 13 );


i
e
afS ua hfS ub,h 7ua 9
u
i
e
afS hfS b,h 7ua 9

( 13 )

Defuzzificao Mdia do Mximo (M-o-M), conforme a Equao ( 14 );


m

u j

kfS

uk
M

( 14 )

Os mtodos listados acima no sero abordados com profundidade pois neste trabalho ser utilizado o mtodo
proposto por Takagi-Sugeno [55] (seo 2.5.6).

2.5.6

Mtodo Sugeno

Em um sistema de inferncia tipo Sugeno as entradas so definidas como conjuntos nebulosos, mas as sadas so
definidas em termos das entradas, geralmente como uma combinao linear. A principal vantagem deste sistema a
sua simplicidade de implementao, o que a torna uma tima alternativa para sistemas embarcados.
26

Um sistema
tema de inferncia do tipo Sugeno tomaria uma forma semelhante a:

Se rotao pertence ao conjunto baixa rotao e velocidade pertence ao conjunto alta velocidade, ento
faa a variao do tempo de injeo = F(rotao,velocidade).

O processo de clculo da varivel de sada de um sistema de inferncia do tipo Sugeno segue os seguintes passos
(representados na Figura 21):

Oss valores de entrada so avaliados nos seus respectivos conjuntos nebulosos a partir do clculo de sua
funo de pertinncia (seo 2.5.2), o que gera os graus de pertinncia.. Esse o processo de Fuzzificao
(seo 2.5.5.1);

pertinn
o grau dee ativao de cada uma das regras calculado (seo 2.5.5.2)
Com base nos graus de pertinncia,
Na figura Figura 21,, esses valores so representados por Wx;

O valor da varivel de sada de cada regra calculado a partir dos dados de entrada atravs de uma funo
(Fx) - Na figura Figura 21,, esses valores so representados por Yx;

Finalmente, obtemos a sada do sistema (Y) com base na mdia dos resultados das sadas das regras
relativas a essas sadas (Yx), ponderadas pelos graus
graus de ativao dessas regras (Wx), conforme a Equao
( 15 ).
Y

WS FS \ WT FT
WS \ WT

( 15 )

Figura 21:: Exemplo de clculo em um sistema de inferncia do tipo Sugeno

2.6

CONCLUSES DO CAPTULO

Nessa seo foram resumidos os tpicos considerados necessrios para o entendimento do texto presente neste
documento. No contexto de temas correlatos com GNV foram discutidos aspectos construtivos sobre tecnologias,
sensores, dispositivos e atuadores usados nos kits comerciais. Do ponto de vista de tpicos em lgica nebulosa, os
principais conceitos usados foram explicados,
explicados, servindo como subsidio ao desenvolvimento do controlador nebuloso
projetado no contexto deste trabalho.

27

METODOLOGIA USADA PARA O PROJETO DO


CONTROLADOR

Este captulo descreve com detalhes todos os procedimentos seguidos para criao do sistema criado, objeto desta
dissertao. Inicialmente, na seo 3.1, apresenta-se uma enumerao dos passos seguidos para obteno dos
resultados apresentados. Na seo 3.2 criada a especificao funcional do produto, ou seja, cria-se o conceito do
produto e detalham-se suas funcionalidades. Por ltimo, na seo 3.3 apresentado o estudo realizado de um kit de
GNV comercial que serviu como base para o desenvolvimento da estratgia de funcionamento.

3.1

O PROJETO PASSO A PASSO

Todas as etapas seguidas na execuo do projeto descrito por esta dissertao podem ser sumarizadas nos seguintes
passos:
1. Estudo bibliogrfico de sistemas de injeo eletrnica de gasolina e seus aspectos tecnolgicos,
consideraes prticas em relao ao GNV e lgica nebulosa (seo 2).
2. Estudo eltrico prtico sobre o sistema de injeo eletrnica, com foco na parte de acionamento seo
2.3.2;
3. Criao de uma especificao funcional, com o intuito de se definir claramente o que se deseja desenvolver
(seo 3.2)
4. Levantamento de dados de campo de um kit GNV comercial, a fim de guiar o desenvolvimento do
hardware e a criao de uma estratgia de funcionamento baseada em lgica nebulosa (seo 3.3);
5. Criao de uma especificao de hardware com base nos estudos realizados acima (sees 4.2.1 e 4.3.1);
6. Desenvolvimento de duas PCIs (Placas de Circuito Impresso) seguindo as especificaes do item acima
(seo 4);
7. Criao de uma estratgia de funcionamento baseada em lgica nebulosa (seo 5);
8. Criao de uma biblioteca de firmware que servir como base para embarcar-se o algoritmo no
microcontrolador (seo 6.3);
9. Criao do firmware responsvel pela execuo da lgica proposta (seo 6.5);
10. Testes de bancada e de campo do conjunto hardware e firmware desenvolvidos, para avaliao de
desempenho (captulo 7);

3.2

DESCRIO FUNCIONAL DO PRODUTO

A descrio funcional de um produto o primeiro passo no desenvolvimento desse. A concepo do produto se d


nessa etapa, quando se define quais interfaces o produto ter, quais funes dever desempenhar e como ser o seu
funcionamento.
A descrio funcional ser feita durante essa seo e dever servir de base para as especificaes de hardware e de
firmware e para a criao da estratgia de funcionamento.

3.2.1

Breve descrio do produto

O projeto desenvolvido (tema dessa dissertao) tem a funo de permitir a experimentao de diferentes
estratgias de clculo do tempo de injeo de GNV, alm de apresentar uma primeira verso de um hardware capaz de
realizar o acionamento dos bicos injetores de gs, realizar a leitura do tempo de injeo original, a leitura de alguns
sensores e a emulao de outros. O produto deve possuir os seguintes diferenciais:

Baixo custo: por se basear em um sistema de fabricao nacional e por utilizar um hardware simples, fruto
de uma estratgia simplificada de funcionamento;

Bom desempenho: apesar de implementar uma estratgia simplificada de funcionamento, trata-se de um


sistema a ser utilizado em kits de 5 gerao (ver seo 2.4.3), que possibilita um controle bastante apurado
da quantidade de gs injetado.
28

O produto compatvel com veculos 12 V, e suporta os transientes eletromagnticos tpicos de ambientes


automotivos;

3.2.2

Funes

O sistema desenvolvido deve ser capaz de gerenciar o sistema de GNV quando em funcionamento nesse tipo de
combustvel, acionando os bicos injetores a partir da leitura de alguns sensores e atuando inclusive em alguns aspectos
do sistema de injeo original, a fim de promover o correto funcionamento do veculo (sem perda de potncia ou
qualquer dano ao veculo).
Para isso, as seguintes funes devem ser previstas:

Leitura dos sinais:


o

Sensor MAP, pelos motivos:




Utilizar o valor do sensor como entrada do sistema para determinar a quantidade correta de
GNV a ser injetado;

Servir como base para o sinal emulado desse sensor.

Sonda Lambda, pelo motivo:




Tempo de Injeo Original, pelo motivo:




Utilizar esse tempo como base para o tempo de injeo de GNV. Esse tempo ser
corrigido a partir dos outros sinais.

Rotao, pelo motivo:




Utilizar o valor do sensor como entrada do sistema para determinar a quantidade correta de
GNV a ser injetado;

Utilizar o valor do sensor como entrada do sistema para determinar a quantidade correta de
GNV a ser injetado;

Emular o sinal do sensor MAP para modificar o avano de ignio:


o

Emular esse sensor importante porque com esse artifcio pode-se ludibriar a UCE original do
carro, fazendo-a considerar um valor de presso no coletor diferente do valor real no momento do
clculo do avano de ignio, o que permite a quem emula esse sinal manipular indiretamente esse
parmetro.

Essa funo pode tambm ser desempenhada por um mdulo independente, o chamado Variador
de Avano. No caso de ser utilizado um desses Variadores de Avano, a funo de emulao do
sensor MAP no deve ser utilizada.

Emular o sinal do sensor de Sonda Lambda:


o

Durante o funcionamento normal do veculo, o sinal de Sonda Lambda informa se a UCE original
est produzindo uma mistura rica ou pobre, a UCE original ento reage corrigindo essa mistura,
modificando parmetros de clculo interno.
Quando o veculo est funcionando a GNV, a UCE original no mais responsvel por determinar
a quantidade de combustvel, embora no saiba disso. Como resultado, a tentativa frustrada de
correo da mistura faz com que a UCE crie parmetros de injeo inadequados e pode culminar
na indicao de falha de injeo.
Para evitar que isso acontea, o sinal enviado UCE original deve ser emulado de forma a indicar
um funcionamento normal do motor, o que evitar que a UCE original faa correes inadequadas.

Hoje existem diversos produtos no mercado que realizam essa funo (os chamados Emuladores
de Sonda Lambda ou Simuladores de Sonda Lambda), e por esse motivo essa funcionalidade
apenas prevista, mas no implementada.

Clculo do tempo de injeo de GNV a partir dos sinais lidos;

Acionamento dos bicos injetores de GNV no tempo adequado;

Congelamento dos bicos injetores de gasolina/lcool quando o veculo estiver funcionando a GNV;
29

Acionamento de cargas externa a partir de sadas genricas, o que confere flexibilidade na implementao
de novas funcionalidades ou em testes de engenharia;

Capacidade de armazenar configuraes e mant-las mesmo quando desenergizado;

Conexo com mundo externo para depurao, configurao e monitoramento de funcionamento via
interface serial.

3.3

ESTUDO DE UM KIT GNV COMERCIAL

Antes de iniciar o desenvolvimento do sistema prprio, optou-se por se fazer um estudo sobre o funcionamento de
um kit de GNV comercial, com o intuito de fazer uma espcie de reconhecimento do terreno. Essa etapa
extremamente importante, pois possibilita que alguns problemas e desafios sejam antecipados. Outro fator importante
desse estudo que a partir dele possvel calcular alguns parmetros dos sinais a serem lidos ou produzidos pelo
sistema e que serviro para guiar o projeto de hardware.
Esta seo descreve como foi feito esse estudo.

3.3.1

Objetivos

O estudo de um kit GNV comercial tem como objetivos:

3.3.2

Antecipar problemas e desafios no projeto do sistema prprio;

Servir como base para o desenvolvimento do sistema de controle nebuloso, atuando no papel de
especialista do sistema (seo 5);

Possibilitar o levantamento de parmetros para o desenvolvimento do hardware. Esses parmetros no


podem ser encontrados na literatura por seu carter tcnico e especfico.

Sistema de GNV utilizado

O sistema de GNV utilizado como base para alcanar os objetivos descritos na seo 3.3.1, foi instalado em um
veculo modelo Peugeot 206, motor 1.4, ano 2005.
Em uma primeira abordagem, considera-se que o kit de GNV instalado seja uma caixa preta com entradas e
sadas. Com o apoio do tcnico que realizou a instalao do kit no veculo, foram identificados os sinais de entrada e
sada do kit. Os sinais esto dispostos em um conector de 24 vias, 3 linhas de 8 sinais, e so apresentados na Tabela 3
com as informaes: localizao fsica do sinal no conector (linha A, B ou C e sinal de 1 a 8), nome do sinal e uma
breve descrio do sinal.
Tabela 3: Sinais do kit GNV comercial

Localizao

Nome do Sinal

Descrio

A1

Sinal de Gs

Esse sinal responsvel por alimentar e indicar a todo


o sistema de gs que o veculo deve funcionar a GNV.
Para isso, desempenha as seguintes funes:

Alimenta os bicos injetores de GNV;

Alimenta o redutor de presso;

Alimenta a vlvula solenide que libera a


passagem de GNV;

Indica ao variador de avano para iniciar o


avano de ignio;

Esse sinal criado internamente no kit comercial a


partir do chaveamento da alimentao fornecida pela
bateria.
Sua leitura interpretada de forma digital: ligado ou
desligado.
30

A2, A3, A4 e A5

Bico Gs 1, 2, 3 e 4

Enquanto um dos terminais dos bicos injetores de gs


se conecta ao Sinal de Gs, o outro terminal se
conecta ao sinal Bico Gs, que cria um caminho para
a corrente que deve passar pelo solenide do bico
quando se deseja injetar gs (ver seo 2.3.2 para mais
informaes sobre o funcionamento de bicos injetores).
Sua leitura interpretada de forma digital: ligado ou
desligado.

A6

Linha para diagnstico

Essa linha utilizada para diagnstico e configurao


dos parmetros (como os mapas, por exemplo) do kit
comercial.
Sua leitura interpretada de forma digital: ligado ou
desligado.

A7

Presso da Flauta

Traz a informao de presso de gs na flauta que


distribui o GNV para os bicos de gs.
Sua leitura interpretada de forma analgica.

A8

Sinal de Rotao

Traz a informao do sinal de rotao. No caso do kit


instalado, utilizou-se o sinal de ignio para leitura de
rotao.
Sua leitura interpretada de forma digital: com a
freqncia do sinal sendo a informao til.

B1

GND

Sinal negativo de alimentao.

B2, B3, B4 e B5

Bico Original UCE Para a instalao do kit, as conexes que ligam a UCE
1, 2, 3 e
aos bicos de injeo originais so interrompidas e as
extremidades que se conectam UCE so ligadas ao kit
por meio dos sinais Bico Original UCE
correspondentes (as outras extremidades se conectam a
Bico Original Bico).
Sua leitura interpretada de forma digital: ligado ou
desligado.

B6

Sonda Lambda

Traz a informao do sensor de Sonda Lambda.


Sua leitura interpretada de forma analgica.

B7

MAP

Traz a informao do sensor MAP.


Sua leitura interpretada de forma analgica.

B8

Ps Chave

Sinal ps-chave da alimentao do veculo. Informa se


o veculo est ou no em funcionamento.

C1

Positivo da Bateria

Sinal positivo de alimentao.

C2, C3, C4 e C5

Bico Original Bico Para a instalao do kit, as conexes que ligam a UCE
1, 2, 3 e 4
aos bicos de injeo originais so interrompidas e as
extremidades que se conectam aos bicos so ligadas ao
kit por meio dos sinais Bico Original Bico
correspondentes (as outras extremidades se conectam a
Bico Original UCE).
Sua leitura interpretada de forma digital: ligado ou
desligado.
31

C6

V+
Sensores
Diagnstico

e Sinal de alimentao positivo dos sensores e da linha


de diagnstico. Essa alimentao fornecida pelo kit
comercial aos sensores.
Sua leitura interpretada de forma digital: ligado ou
desligado.

C7

Temperatura
do Traz a informao de temperatura do redutor de
Redutor de Presso
presso.
Sua leitura interpretada de forma analgica.

C8

3.3.3

VSensores
Diagnstico

e Sinal de alimentao negativo dos sensores e da linha


de diagnstico. Essa alimentao fornecida pelo kit
comercial aos sensores.

Mtodo de Medio

Para alcanar os objetivos descritos na seo 3.3.1, foi necessrio adquirir dados de sinais selecionados do kit
comercial enquanto o mesmo encontrava-se em funcionamento normal (motor funcionando).
A aquisio foi feita com um circuito de tratamento dos sinais e um arranjo de dispositivos de aquisio da
National Instruments com conexo USB para um PC e gerenciadas por uma interface feita em LabVIEW. Dessa
forma, para realizar a medio dos sinais, duas etapas so necessrias:

Tratamento analgico dos sinais de entrada para adequao de nveis eltricos;

Aquisio digital dos sinais;

Na seo 3.3.3.1 so enumerados os sinais adquiridos e as motivaes para cada um desses sinais, na seo 3.3.3.2
o dispositivo de aquisio dos sinais da National Instruments apresentado, na seo 3.3.3.3 descrita a etapa de
tratamento analgico dos sinais e na seo 3.3.3.4 descrita a etapa de aquisio digital desses sinais.
3.3.3.1

Sinais Medidos

Por limitaes tcnicas dos dispositivos de aquisio de sinais (seo 3.3.3.2) e pela quantidade disponvel desses
dispositivos (apenas 4), foi necessrio que fosse escolhido um pequeno grupo de sinais do kit comercial a serem lidos.
Abaixo se encontra uma listagem desses sinais e a justificativa por sua escolha:

Sinal de Gs (A1): esse sinal importante na medida em que permite que se saiba o momento em que o
sistema GNV passa a estar alimentado.

Bico Gs 1 (A2): carrega a informao do tempo de injeo de GNV, ou seja, a sada do sistema. A partir
desse sinal e das entradas do sistema pode-se estudar a estratgia de funcionamento do kit comercial.

Presso da Flauta (A7): a vazo de gs guarda estreita relao com a presso da flauta, e a partir desse
sensor imagina-se que o kit comercial corrija o tempo de injeo de gs para se alcanar a massa correta de
GNV a ser injetada.

Rotao (A8): a rotao um dos parmetros de funcionamento mais importantes do motor, e serve de
entrada para o sistema de controle de injeo.

Bico Original UCE 1 (B2): a partir desse sinal pode-se calcular o tempo de injeo de combustvel
original que a UCE origina est implementando (embora quando o veculo est funcionando a GNV
nenhum combustvel original seja injetado). O sistema a ser projetado ir utilizar esse tempo como base
para a determinao do tempo de injeo de GNV.

Sonda Lambda (B6): esse sensor traz a informao de quantidade de oxignio nos gases de escape (seo
2.3.1) e utilizado para realimentao do sistema de controle do tempo de injeo tanto para a UCE
original quanto para o kit comercial (dependendo do combustvel em uso no momento).

MAP (B7): esse sensor indica a presso no coletor de ar e traz como principal informao a carga a qual o
motor est submetido, ou seja, o quanto de ar ser admitido no cilindro. Serve de entrada para o sistema de
controle de injeo.
32

Bico Original Bico 1 (C2): a partir desse sinal pode-se descobrir quando o bico injetor de combustvel
original foi congelado, quando isso acontece, esse sinal passa a no ser mais igual ao Bico Original UCE
1.

Temperatura do Redutor de Presso (C7): a temperatura do redutor de presso determina quando o


sistema GNV est pronto para funcionar e provavelmente utilizado para corrigir o tempo de injeo de
GNV, j que a temperatura se relaciona com densidade volumtrica de combustvel.

3.3.3.2

Dispositivo de Aquisio dos Sinais

O dispositivo de aquisio de sinais utilizado foi o DAQ-6009 da National Instruments. Esse dispositivo foi
escolhido por sua disponibilidade na UnB (Universidade de Braslia). Suas caractersticas so:

8 entradas analgicas (14-bit, 48 kS/s);

Impedncia de entrada de 144 k para as entradas analgicas;

Faixa de tenso de entrada de 0V a 10V;

2 sadas analgicas (12-bit, 150 S/s);

12 entradas e sadas digitais;

Contador de 32-bit;

Alimentado pela USB para mobilidade.

importante ressaltar que a taxa de aquisio das entradas analgicas de 48 kS/s dividida entre todas as entradas
que estejam sendo utilizadas.
3.3.3.3

Tratamento Analgico dos Sinais

Antes de desenvolver o sistema de aquisio de dados, foi preciso conhecer o comportamento e a forma de cada
um dos sinais listados na seo 3.3.3.1. Para isto foi utilizado um osciloscpio e cada um dos sinais foi medido. Os
resultados desta medio se apresentam nas figuras: Figura 22, Figura 23, Figura 24, Figura 25, Figura 26, Figura 27,
Figura 28, Figura 29, Figura 30, Figura 31, Figura 32, Figura 33 e Figura 34. As faixas de tenso de cada sinal medido
so apresentadas na Tabela 4.
Tabela 4: Faixas de tenso dos sinais medidos

Nome do Sinal

Limites positivo e negativo de tenso

Sinal de Gs

0V Tenso do Alternador (cerca de 14V)

Bico Gs

0V Sinal de Gs (cerca de 14V), com picos de at


38V

Presso da Flauta

0V ~2V

Rotao

0V 30V com picos acima de 70V. O sinal de


ignio utilizado para medida de rotao.

Bico Original UCE

0V Tenso do Alternador (cerca de 14V), com


picos de at 60V quando estiver rodando no
combustvel original.

Sonda Lambda

0V 1V

MAP

0V 2V. Porm, sabe-se que esse sinal pode atingir


at 5V [29].

Bico Original Bico

0V Tenso do Alternador (cerca de 14V), com


picos de at 60V quando estiver rodando no
combustvel original.
33

Temperatura
Presso

do

Redutor

de At aproximadamente 1,7V

Figura 22: Sinal de Gs quando veculo est rodando no combustvel original

Figura 23: Sinal de Gs quando veculo est rodando no GNV.

Figura 24: Sinal dos quatro bicos injetores (Bico Gs 1, 2, 3 e 4).


34

Figura 25: Sinal de um dos bicos injetores - viso aproximada

Figura 26: Sinal de Presso na Flauta.

Figura 27: Sinal de Rotao - viso macro

35

Figura 28: Sinal de Rotao - viso aproximada

Figura 29: Bico Original - UCE

Figura 30: Sinal Sonda Lambda

36

Figura 31: Sinal do Sensor MAP

Figura 32: Sinal Bico Original - Bico, rodando no GNV. Viso macro

Figura 33: Sinal Bico Original - Bico, rodando no GNV. Viso aproximada

37

Figura 34: Sinal de Temperatura do Redutor de Presso

Os sinais foram ento divididos em trs grupos:


1. Sinais que necessitam de grande amplificao (at 2V): Presso na Flauta, Sonda Lambda, Temperatura do
Redutor de Presso;
2. Sinais que no necessitam de amplificao nem de atenuao (2V - 10V): MAP;
3. Sinais que necessitam de atenuao (maiores que 10V): Bico Gs 1, Bico Original UCE 1, Rotao, Bico
Original Bico 1, Sinal de Gs;
Para que os sinais lidos no sofressem influncia do circuito de leitura, optou-se por utilizar impedncias de
entrada muito altas (na ordem de M). No entanto, essa deciso trouxe dois inconvenientes:
1. Rudo quanto maior a impedncia na qual um sinal medido, maior o rudo ao qual o sinal est sujeito.
Esse inconveniente acabou se resolvendo sozinho, pois o prprio sistema de medio possui sua banda
passante, o que acaba por filtrar o rudo.
2. Atenuao do sinal lido a impedncia do dispositivo de medio de 144 k, o que faz com que a
impedncia de entrada dezenas de vezes maior faa o sinal medido pelo dispositivo ser bastante atenuado.
Para resolver esse problema foi utilizado um amplificador operacional.
Os circuitos resultantes esto representados nas figuras: Figura 35, Figura 36 e Figura 37.
Para o circuito amplificador, a relao entre a tenso de sada (Vout) e a tenso de entrada (Vin) representada pela
Equao ( 16 ).
'!A

62
63
16,8
 &" '!A  &" F1 \ H  &" F1 \
H 3,05 &"
62 \ 63
62
8,2

( 16 )

Para o circuito amplificador, a relao entre a tenso de sada (Vout) e a tenso de entrada (Vin) representada pela
Equao ( 17 ).
'!A  &"

( 17 )

Para o circuito amplificador, a relao entre a tenso de sada (Vout) e a tenso de entrada (Vin) representada pela
Equao ( 18 ).
u  &"

62
2
 &"
0,26 &"
61 \ 62
2 \ 5,6

( 18 )

38

Figura 35:: Circuito para sinais que necessitam de amplificao

Figura 36:: Circuito para sinais que no necessitam nem de amplificao nem de atenuao

Figura 37:: Circuito para sinais que necessitam de atenuao

3.3.3.4

Aquisio digital dos Sinais

A aquisio digital dos sinais foi feita dividindo-se os sinais entre os 4 dispositivos de aquisio DAQ-6009 (ver
seo 3.3.3.2) da seguinte maneira:
1 DAQ - Bico Gs 1, com taxa de 25 kHz;
2 DAQ - Bico Original UCE 1, com taxa de 25 kHz;
3 DAQ - Rotao, com taxa de 25 kHz;
4 DAQ - Presso da Flauta, Sonda Lambda, MAP, Bico Original Bico 1, Temperatura do Redutor de
Presso, Sinal Gs,, cada um com taxa de 5 kHz;
A Figura 38 traz um foto do sistema utilizado para aquisio, compreendendo os circuitos de tratamento analgico
dos sinais (ver seo 3.3.3.3)) e os dispositivos de aquisio digital dos sinais (ver seo 3.3.3.2).
3.3.3.2

39

Figura 38: sistema de aquisio dos sinais

As informaes obtidas a partir da medio foram armazenadas nos arquivos mostrados na Tabela 5. As situaes
criadas na captura dos registros foram escolhidas na tentativa de se representar um maior nmero de condies de
funcionamento do motor.
Tabela 5: Arquivos com resultados de medio

Nome do Arquivo

Descrio

conmutacao_gasolina_Gas_1

Desde o momento em que o carro foi ligado at que ocorresse


a comutao de gasolina para GNV.

aceleracao_desengatado_1

Aceleraes com o carro desengatado funcionando a GNV.

aceleracao_0_100_trocaMarcha_3

Carro acelerando de 0 a 100 km/h com trocas de marcha.

aceleracao40_80_2

Carro acelerando de 40 a 80 km/h em 3 marcha.

desaceleracao100_0_freiando_3

Carro diminuindo de 100 a 0 km/h com o carro desengadato.

desaceleracao80_40_3Marcha_3

Carro diminuindo de 80 a 40 km/h com o carro em 3 marcha.

velocidadeConstante_60_plano_2

Carro em velocidade constante de 60 km/h em terreno plano.

velocidadeConstante_60_subida_2

Carro em velocidade constante de 60 km/h na subida.

velocidadeConstante_60_descida_2

Carro em velocidade constante de 60 km/h na descida.


des

velocidadeConstante_Gas_Gasolina_2 Comutao de GNV para gasolina em velocidade constante.


velocidadeConstante_Gasolina_Gas_2 Comutao de gasolina para GNV em velocidade constante.

3.3.4

acelaracoes_Gas_desengatado_2

Aceleraes com o carro desengatado funcionando a GNV.

deligar_2

Desligamento do veculo enquanto est funcionado a GNV.

Clculo dos parmetros dos dados lidos

Nessa seo so descritos os parmetros necessrios para o projeto de hardware e de firmware a serem extrados a
partir dos arquivos
ivos obtidos no campo (seo 3.3.3.4), o mtodo de clculo desses parmetros e os resultados
alcanados.. Foi dedicada uma seo para cada sinal, pois cada um possui diferentes parmetros de interesse.
O arquivo aceleracao_0_100_trocaMarcha_3 utilizado na maioria dos casos para obteno dos parmetros pois
considera-se
se que seja o registro com maior variedade de situaes de funcionamento.
40

3.3.4.1

Sinal de Gs

Esse sinal produzido pelo kit de GNV a partir da comutao do sinal de alimentao do veculo (vindo do
alternador), e, portanto, sua medio serviu apenas para informar quando o veculo est funcionando a GNV ou no.
Dessa forma, nenhum parmetro necessrio nesse caso.
3.3.4.2

Bico Gs 1

Esse sinal indica quando o bico de gs est ou no acionado, injetando GNV. Uma parte da forma de onda desse
sinal obtida no arquivo aceleracao_0_100_trocaMarcha_3 mostrada na Figura 39 e Figura 40. Cada pulso negativo
nessas figuras representa um ciclo de injeo composto de dois momentos: peak (parte constante) e hold (parte
chaveada), ver adiante.

Figura 39: Forma de onda do sinal Bico Gs 1 - vrios ciclos de injeo

Figura 40: Forma de onda do sinal Bico Gs 1 - um nico ciclo de injeo

A primeira informao importante obtida desse sinal a de que o ciclo de injeo formado por dois momentos:
um constante e outro com chaveamento. Isso acontece porque o bico de GNV utilizado no kit comercial um bico de
baixa impedncia, o que possibilita sua rpida abertura, mas que ao mesmo tempo faz com que circule uma alta
corrente quando submetido a um acionamento constante. Por esse motivo, o kit comercial utiliza o que na literatura se
conhece como estratgia de funcionamento peak and hold, onde:

Peak: acionamento constante, utilizado principalmente para rpida abertura dos bicos injetores;

41

Hold: acionamento chaveado que limita a corrente passando pelo solenide, utilizado para manter o bico
injetor aberto. Deve-se levar em considerao que a fora necessria no solenide para manter o bico
injetor aberto menor que a fora necessria para abrir esse mesmo bico injetor.

A Figura 40 mostra cada um desses momentos, mas a taxa de amostragem no foi suficiente para indicar o ciclo de
trabalho e a freqncia durante o perodo hold. Por esse motivo, foi utilizado um osciloscpio para realizar a aquisio
desse sinal, o que mostrado na figuras: Figura 41, Figura 42 e Figura 43. Por problemas tcnicos a Figura 43 no
mostra a legenda, mas o valor foi anotado e igual a 66,0us.
A Figura 41 mostra uma durao de 2,96ms de peak, e outros testes mostraram que esse tempo sempre se mantm,
mesmo quando o tempo total de acionamento se modifica. Ou seja, para modificar o tempo total de acionamento, o kit
comercial altera o tempo do hold e mantm o tempo do peak.
Os parmetros obtidos desse sinal so apresentados nas Equaes ( 19 ), ( 20 ) e ( 21 ).
Nu(Bv  2,96,
xy'K# 

1
 10 z{|
100u,

M P+  [+y'K# 

100u, < 66u,


 34%
100u,

( 19 )
( 20 )

( 21 )

Repare que o ciclo de trabalho foi feito considerando o tempo em baixa (100us 66us) do sinal, porque durante
esse perodo que o caminho de corrente criado. Assim, apenas 34% da corrente que flui durante o peak fluir durante
o hold. Para verificar essa afirmao, um resistor de potncia (5 W) de 120 m nominais foi colocado em srie com o
bico injetor de gs e as tenses em seus dois terminais foram medidas durante um ciclo de injeo, e logo aps
subtradas, o resultado apresentado na Figura 44.

Figura 41: Tempo de hold

42

Figura 42: Perodo de chaveamento durante o hold

Figura 43: Tempo em alta durante o hold

Figura 44: Perfil de corrente no bico injetor de GNV (em rosa) repare que a corrente durante o hold estabiliza em
aproximadamente 34% da corrente mxima durante o peak.

Outro parmetro importante obtido no arquivo aceleracao_0_100_trocaMarcha_3 que o tempo total de injeo
foi de no mximo 20ms ao longo de todo percurso, fato representado na Equao ( 22 ).
  + 
 )  20,

( 22 )

43

3.3.4.3

Presso da Flauta

Esse parmetro lido pelo kit comercial para determinar a correo a ser aplicada ao tempo de injeo de GNV em
funo das variaes na presso da flauta.
Para determinar a correo, imagina-se que no instante em que se determina o tempo de injeo seja necessrio se
ter um valor mdio da presso na flauta. Para se calcular esse valor mdio, um parmetro importante qual a taxa de
variao dessa grandeza, ou seja, em que faixa de freqncia a grandeza est contida, alm da faixa de tenso que
essa grandeza ocupa. Da seo 3.3.3.3 sabemos que a faixa de tenso ocupada pelo sinal do sensor de Presso da
Flauta o apresentado na Equao ( 23 ).
@ 8   ,%' #B KB!AB  10. .34

( 23 )

Para calcular a faixa de freqncia do sinal, primeiramente obtivemos sua forma de onda a partir do arquivo
aceleracao_0_100_trocaMarcha_3 vide Figura 45. As quedas no sinal de presso da flauta acontecem nos instantes
de troca de marcha, onde no h injeo de GNV pois no h acelerao. Como a ausncia de fluxo de GNV resulta
provavelmente em um aumento da presso de GNV na flauta, isso indica que o sinal de Presso da Flauta
inversamente proporcional presso na flauta.

Figura 45: Presso da Flauta

A partir desses valores, foi calculada a FFT (fast Fourier transform) do sinal para se obter seu espectro. O
resultado mostrado na Figura 46.

44

Figura 46: FFT da Presso da Flauta

Foi ento calculada uma freqncia que abrigasse 85% do espectro, o valor apresentado na Equao ( 24 ).
@ '%A  1617 {|

( 24 )

Para garantir que um filtro RC nessa freqncia no descaracterizasse o sinal, eliminando informaes importantes,
foi feita uma filtragem digital equivalente a uma filtragem RC analgica com freqncia de corte igual a
@ '%A . O resultado apresentado na Figura 47, e mostra como essa freqncia de corte no
descaracteriza o sinal.

Figura 47: Sinal de Presso da Flauta filtrado


3.3.4.4

Rotao

Esse sinal carrega a informao de rotao do veculo, e utilizado como entrada para o sistema de controle
baseado em lgica nebulosa (fuzzy). Os parmetros importantes desse sinal so sua faixa de freqncia que de fato
a informao til que esse sinal carrega e sua amplitude mxima necessria para o projeto de hardware.
Da seo 3.3.3.3 sabemos que a faixa de tenso ocupada pelo sinal do sensor de rotao o apresentado na
Equao ( 25 ).
@ 8   ,'AB'  10. . 304V, com picos acima de 70V

( 25 )
45

O sinal de rotao foi obtido a partir do arquivo aceleracao_0_100_trocaMarcha_3 e processado para que fosse
obtido a freqncia do sinal, que est ilustrada na Figura 48. As quedas no sinal de rotao acontecem nos instantes de
troca de marcha.

Figura 48: Sinal de Rotao

Como a rotao foi obtida a partir do sinal de ignio, de se esperar que a freqncia desse sinal seja igual
freqncia do motor, ou seja, a rotao do motor nesse exemplo chegou a aproximadamente 70 Hz ou 70*60 = 4.200
RPM. Considerando uma rotao mxima de 10.000 RPM, podemos considerar uma freqncia mxima do sinal de
acordo com a Equao ( 26 ).
@)&)B  10.000 6 

3.3.4.5

10.000
{| 166,67{|
60

( 26 )

Bico Original UCE 1

Esse talvez o sinal mais importante a ser lido, pois carrega a informao que ser utilizada como base para
composio do tempo de injeo de GNV: o tempo de injeo de gasolina. As informaes mais importantes desse
sinal so sua amplitude e os valores mximo e mnimo de tempo de injeo.
Da seo 3.3.3.3 sabemos que a faixa de tenso ocupada pelo sinal do sensor de rotao o apresentado na
Equao ( 27 ).
@ 8   ,&

' %&J&"BKR S

 10. . Vdib 4V, com picos de at 60V

( 27 )

O sinal Bico Original UCE 1 foi obtido a partir do arquivo aceleracao_0_100_trocaMarcha_3 e processado para
que fosse obtido a durao do sinal, que est ilustrada na Figura 49. As quedas no tempo de injeo acontecem nos
instantes de troca de marcha.

46

Figura 49: Tempo de Injeo de gasolina

A partir desse sinal foram obtidos os parmetros apresentado nas Equaes ( 28 ) e ( 29 ).

3.3.4.6

  
 JB'K&"B  0,0201 ,  20,1 ,

( 28 )

  
 JB'K&"B  0,0010 ,  1,0 ,

( 29 )

Sonda Lambda

Esse parmetro informa ao kit comercial se a estratgia de injeo est resultando em uma mistura muito rica ou
muito pobre (ver seo 2.3.1), o que permite que essa estratgia seja corrigida.
O primeiro fator de interesse a faixa de tenso que essa grandeza ocupa. Da seo 3.3.3.3 sabemos que a faixa de
tenso ocupada pelo sinal do sensor de sonda lambda o apresentado na Equao ( 30 ).
@ 8   ,'"#B B)^#B  10. .14

( 30 )

Para que uma filtragem desse sinal no acabe por descaracteriz-lo, um importante parmetro desse sinal sua
taxa de variao, ou seja, em que faixa de freqncia est contido.
Para calcular a faixa de freqncia do sinal, primeiramente obtivemos sua forma de onda a partir do arquivo
aceleracao_0_100_trocaMarcha_3 vide Figura 50. Os dois momentos em que o sinal ficou em nvel alto
aconteceram porque, por algum motivo, a mistura ficou excessivamente rica em combustvel.

Figura 50: Sensor de Sonda Lambda


47

A partir desses valores, foi calculada a FFT (fast Fourier transform) do sinal para se obter seu espectro. O
resultado mostrado na Figura 51.

Figura 51: FFT do sensor de Sonda Lambda

Foi ento calculada uma freqncia que abrigasse 85% do espectro, o que est representado na Equao ( 31 ).
@ '%A  639 {|

( 31 )

Para garantir que um filtro RC nessa freqncia no descaracterizasse o sinal, eliminando informaes importantes,
foi feita uma filtragem digital equivalente a uma filtragem RC analgica com freqncia de corte igual a
@ '%A . O resultado apresentado na Figura 52, e mostra como essa freqncia de corte no descaracteriza
o sinal.

Figura 52: Sensor de Sonda Lambda filtrado


3.3.4.7

MAP

Esse parmetro informa ao kit comercial a qual carga est submetida o motor, ou seja, qual a massa de ar sendo
admitida a cada ciclo (ver seo 2.3.1).
O primeiro fator de interesse a faixa de tenso que essa grandeza ocupa. Da seo 3.3.3.3 sabemos que a faixa de
tenso ocupada pelo sinal do sensor de sonda lambda o apresentado na Equao ( 32 ).
@ 8   ,"'%  10. .54

( 32 )
48

Para que uma filtragem desse sinal no acabe por descaracteriz-lo, um importante parmetro desse sinal sua
taxa de variao, ou seja, em que faixa de freqncia est contido.
Para calcular a faixa de freqncia do sinal, primeiramente obtivemos sua forma de onda a partir do arquivo
aceleracao_0_100_trocaMarcha_3 vide Figura 53. Os momentos de queda do sinal do sensor MAP acontecem
durante as trocas de marcha.

Figura 53: Sensor MAP

A partir desses valores, foi calculada a FFT (fast Fourier transform) do sinal para se obter seu espectro. O
resultado mostrado na Figura 54.

Figura 54: FFT do Sensor MAP

Foi ento calculada uma freqncia que abrigasse 85% do espectro, valor representado na Equao ( 33 ).
@ '%A  447 {|

( 33 )

Para garantir que um filtro RC nessa freqncia no descaracterizasse o sinal, eliminando informaes importantes,
foi feita uma filtragem digital equivalente a uma filtragem RC analgica com freqncia de corte igual a
@ '%A . O resultado apresentado na Figura 55, e mostra como essa freqncia de corte no descaracteriza o
sinal.

49

Figura 55: Sensor de Sonda Lambda filtrado

3.3.4.8

Bico Original Bico 1

Quando o kit comercial congela os bicos injetores de gasolina, o que ele de fato faz inserir uma resistncia em
srie com o bico (entre os sinais Bico Original Bico 1 e Bico Original UCE 1) para limitar a corrente que passa
pela solenide, fazendo assim com que no haja fora suficiente para o acionamento. Esse sinal ir coincidir com o
sinal Bico Original UCE 1 quando o veculo estiver funcionando no combustvel original, e quando o veculo estiver
funcionando no GNV esse sinal ser um divisor resistivo entre o a resistncia que congela o bico injetor e a
resistncia do bico injetor. Esse sinal foi capturado apenas para que a informao de congelamento dos bicos fosse
obtida, e no deve ser lido no sistema que ser fruto deste trabalho, portanto no h necessidade de se levantar
parmetros desse sinal.
Apenas para carter ilustrativo, a Figura 56 traz a forma de onda desse sinal quando o bico injetor original est
congelado (arquivo aceleracao_0_100_trocaMarcha_3).

Figura 56: Bico Original - Bico 1


3.3.4.9

Temperatura do Redutor de Presso

A temperatura do redutor de presso utilizada para determinar em qual momento o sistema de GNV pode passar a
funcionar. Como a medida feita a partir de um termistor NTC (Negative Temperature Coefficient), imagina-se que o
kit comercial faa uma transformao dessa resistncia para tenso, que foi o valor lido e armazenado nos arquivos.
50

Para determinar qual a tenso presente nesse sinal quando o Sinal de Gs passa a alimentar o sistema GNV, a
forma de onda de ambos foi obtida a partir do arquivo conmutacao_gasolina_Gas_1 e est representada nas figuras:
Figura 57 e Figura 58. Pode-se observar ento que a comutao ocorre ao redor de 97s depois de o veculo ser ligado e
que o valor no sinal de temperatura do redutor de presso igual representado na Equao ( 34 ).
  u  6 u   ,,

')!AB' (B%B

1,9

( 34 )

Figura 57: Sinal de Gs e Temperatura do Redutor de Presso

Figura 58: Sinal de Gs e Temperatura do Redutor de Presso Ampliao

51

O PROJETO DO HARDWARE DO CONTROLADOR

O hardware de um produto a poro fsica do seu circuito eletrnico, a parte que pode ser tocada. o hardware
que prov os meios necessrios para a realizao da tarefa qual o produto se prope, e em cima do hardware que o
firmware (ou software) concebido (quando h alguma unidade de processamento). O hardware responsvel por
integrar todas as partes do circuito, como memrias, unidades de processamento, interfaces digitais, interfaces
analgicas e sensores, entre outros.
Em um projeto de hardware, muitos cuidados devem ser tomados para garantir o seu correto funcionamento nas
diversas condies de uso para o qual tenha sido especificado o seu funcionamento. Entre esses cuidados podemos
citar cuidados com as interfaces eltricas, com os parmetros mximos dos componentes no sendo excedidos (tenso,
corrente, potncia), cuidados com a integridade dos sinais que trafegam pelas trilhas, cuidados com impedncias
controladas de trilhas, com emisso e interferncia eletromagntica e etc.
Esta seo descreve o hardware que foi desenvolvido como fruto deste trabalho e as estratgias e especificaes
que levaram a ele.

4.1

Separao dos Circuitos Digitais e Analgicos dos Circuitos de Potncia

Em uma PCI (Placa de Circuito Impresso) as conexes eltricas feitas pelas trilhas e/ou planos de cobre tem uma
impedncia idealmente nula. Na prtica, entretanto, sinais de alta freqncia (dezenas de megahertz para cima) ou de
alta corrente (dezenas de ampres para cima) podem causar uma significativa queda de tenso (na ordem de centenas
de milivolts) ao longo das trilhas - isso especialmente verdadeiro quando o sinal de alta freqncia e de alta
corrente.
Por esse motivo, aconselhvel que se separem os planos de terra das partes do circuito com caractersticas
diferentes:

Sinais analgicos;

Sinais de udio;

Sinais digitais;

Sinais de potncia;

Etc.

Alm disso, interessante se ter diferentes PCIs para diferentes funes quando o projeto est na fase de
desenvolvimento, pois dessa forma quando um circuito for modificado somente sua PCI precisa ser refeita, no
havendo necessidade de compra e montagem de novos componentes da outra parte do circuito.
Pelos motivos expostos acima, decidiu-se que seriam feitas duas PCIs: uma para os circuitos digitais e analgicos
(seo 4.2) e outra para a parte de potncia (seo 4.3).

4.1.1

Disposio do SINAL_GAS

Esse sinal responsvel por alimentar e indicar a todo o sistema de gs que o veculo deve funcionar a GNV. Para
isso, desempenha as seguintes funes:

Alimenta os bicos injetores de GNV;

Alimenta o redutor de presso;

Alimenta a vlvula solenide que libera a passagem de GNV;

Indica ao variador de avano para iniciar o avano de ignio;

Esse sinal obtido a partir do sinal da bateria, e por alimentar todo o sistema GNV deve possuir capacidade de
fornecer uma grande corrente, e, portanto, dever ficar na placa de potncia a ser desenvolvida (ver seo 4.3.3)

4.2

PCI Circuitos digitais e analgicos

Nessa seo, cada parte da PCI desenvolvida que ir abrigar os circuitos digitais e analgicos explicada com
detalhes. Essa PCI responsvel por realizar a leitura dos sensores e do sinal de acionamento do bico injetor original,
processar essa informao por uma lgica nebulosa e gerar um pulso digital com a largura adequada de acionamento
52

do bico injetor de GNV. Esse pulso ser utilizado pela PCI responsvel pela parte de potncia (ver seo 4.3) para
realizar o acionamento dos bicos injetores no tempo adequado.

4.2.1

Especificaes da PCI Circuitos digitais e analgicos

Para pautar a criao de qualquer hardware, adequado que se faa uma especificao tcnica do hardware que se
deseja, especificao essa que ir guiar todas as tomadas de deciso relativas ao desenvolvimento desse hardware.
Esta seo traz o conjunto de especificaes tcnicas necessrias ao correto funcionamento do hardware e ao
cumprimento das funes ao qual ele se prope.
As especificaes so:

Tenso de entrada de 9 a 16V: o que ir garantir o correto funcionamento do circuito mesmo quando a
bateria est bastante descarregada ou quando o alternador est com defeito;

Resistente aos surtos automotivos da norma ISO 7637;

Dotado da capacidade de inserir uma impedncia em srie com os bicos injetores originais quando esses
forem congelados isso ir limitar a corrente nesses bicos e evitar a injeo do combustvel original do
veculo. A potncia desse resistor deve ser de suficiente, para garantir uma tenso rms (root mean square)
sobre eles de at 14V;

Capaz de realizar a leitura do sinal dos bicos injetores mesmo quando congelados, considerando que o
transiente desse sinal possa atingir valores acima de 60V;

Capaz de realizar a leitura do sinal do sensor MAP de at 5V @ 447Hz;

Capaz de emular o sinal do sensor MAP, indo at 5V @ 447Hz;

Capaz de realizar a leitura do sinal do sensor de Sonda Lambda de at 1V @ 639Hz;

Capaz de emular o sinal do sensor de Sonda Lambda, indo at 1V @ 639Hz;

Capaz de realizar a leitura do sinal de rotao com boa imunidade a rudo para que no ocorram leituras
falsas;

Possuir sadas genricas capazes de fornecer at 5A na tenso da bateria;

Possuir uma memria no voltil de 8KB para armazenagem de configuraes e mapas;

Possuir conector para gravao do firmware in-circuit;

Possuir conector para debug via comunicao serial;

CPU com as seguintes caractersticas:

Facilidade de aquisio;

Ferramentas de desenvolvimento de baixo custo;

Nmero suficiente de entradas e sadas digitais;

Interface de comunicao com a memria no voltil;

Pelo menos 2 conversores A/D (sensores MAP e de Sonda Lambda);

Pelo menos uma UART (debug e configurao);

Pelo menos 3 timers, existindo pelo menos 3 canais de PWM (emulao dos sensores MAP e de
Sonda Lambda, gerao do sinal de hold de acionamento dos bicos e medio de temporizao
internamente);

Clock de pelo menos 16MHz;

Memria flash de pelo menos 32KB;

Memria RAM de pelo menos 2KB;

rea de prototipagem para testes de engenharia.

53

4.2.2

Protees de Entrada

O ambiente eltrico automotivo pode ser bastante severo, com bastante rudo na linha de alimentao, e a norma
que descreve os pulsos que podem ocorrer nesse ambiente a ISO7637-2. Nessa norma, o pulso mais severo o Load
Dump (Figura 59), por ser um pulso de alta tenso e durao.

Figura 59: Load Dump

Para proteger o circuito contra esse pulso, foi utilizado um supressor de tenso conhecido como tranzorb da
LittelFuse, o SLD24-018. Esse componente especificado para suportar o pulso Load Dump e limita a tenso em
aproximadamente 32V. Para mais informaes, consultar o seu datasheet.
Alm disso, foram inseridos no projeto os seguintes itens de proteo:

Diodo D13 protege o circuito contra inverso de polaridade;

Fusvel PPTC F1 desconecta o circuito da alimentao em caso de sobre-corrente;

Resistor R35 previsto para limitar a corrente sobre o tranzorb durante o surto, mas montado como 0R a
princpio (ou seja, sem funcionalidade).

Varistor VR1 previsto caso o tranzorb no se mostre eficaz o suficiente, um supressor de tenso com
caractersticas diferentes do tranzorb (mais lento e capaz de suportar maiores correntes).

O resultado pode ser visto na Figura 60.

VBAT

D13

R35
F1

+12V

0R
VR1
Varistor (NM)

SLD 24

Figura 60: Esquemtico do circuito de proteo de entrada.

4.2.3

Fonte de Alimentao

A fonte de alimentao responsvel por prover uma alimentao estvel para todo o circuito alimentado por 5 V,
para isso, seu projeto deve prever a capacidade de prover a soma de todas as correntes exigidas. Abaixo se encontram
os principais circuitos aos quais a tenso de 5V se conecta e a corrente mxima de cada um deles:
54

Descrio

Part Number

Corrente Mxima

Microcontrolador

ATMega16-16PU

15 mA

Memria EEPROM

24LC64

3 mA

Inversor Lgico

74HC14

50 mA

CI Leitor de RPM

LM1815

6 mA

Pull-ups

Resistores diversos

5 mA

Total de Corrente

79 mA

A fonte de 5 V tambm ligada a dois conectores diferentes:

Conector para gravao in-circuit do firmware no se sabe exatamente qual corrente pode ser drenada
nesse caso, pois isso depende da gravadora. Uma corrente de 100 mA deve ser mais que o suficiente.

Conector para Entradas e Sadas digitais nesse conector foram inseridas as entradas e sadas do
microcontrolador no utilizadas em outras partes do circuito e a alimentao (5V + GND). Esse conector
deve servir a propsitos de engenharia na fase de desenvolvimento, e portanto sua corrente deve ser
arbitrada. Nesse caso, optou-se por uma corrente mxima de 200 mA.

A soma total das correntes mximas dos circuitos que se ligam ao 5 V com as correntes nos conectores calculada
na Equao ( 35 ).

 79 \ 100 \ 200  379

( 35 )

Considerando uma margem de 30% de segurana, a corrente especificada para a fonte de 5 V calculada na
Equao ( 36 ).

 379 71 \ 0,39  492,7

( 36 )

Fazendo uma rpida busca paramtrica, encontrou-se a fonte utilizada para essa aplicao: LM2576HVT-ADJ. As
principais caractersticas desse CI (Circuito Integrado) so:

Corrente de sada de 3 A garantida;

Ampla faixa de tenso de entrada: at 60V;

Requer apenas 4 componentes externos;

Oscilador interno com freqncia fixa de 52 kHz;

Capacidade de realizar desligamento com sinal em nvel TTL, baixo consumo em modo standby;

Alta eficincia;

Usa indutores padro facilmente encontrados;

Desligamento por sobre-temperatura e proteo contra sobre-corrente;

Uma caracterstica muito interessante desse CI, que tambm influenciou em sua escolha, a facilidade em se
selecionar os componentes externos necessrio ao seu funcionamento. O prprio datasheet do componente traz um
passo a passo dessa seleo, com os seguintes tpicos:

Programming Output Voltage: ensina como selecionar os resistores de feedback para configurar a tenso
de sada correta;

Inductor Selection (L1): ajuda na seleo do indutor da fonte;

Output Capacitor Selection (COUT): ajuda na seleo do capacitor de sada da fonte;

Catch Diode Selection (D1): ajuda na seleo do diodo da fonte;

Input Capacitor (CIN): ajuda na seleo do capacitor de entrada da fonte;


55

O datasheet traz ainda alguns Application Hints (dicas de aplicao), que so importantes para o projeto da
fonte.
De posse desse procedimento presente no datasheet do componente, e ainda considerando os parmetros abaixo,
chegou-se ao projeto da Figura 61.

Tenso de sada: 5 V;

Tenso de entrada mxima: 16 V;

Corrente de sada: 500 mA;


+12V

1
5
3

C16

U5
IN
ON/OFF
GND

FB
OUT

LM2576HVT-ADJ

4
2

+5V

L1

R36
Res1
3,28K 1%

470uH

100uF
D14
MBR360

C17
680uF

R37
Res1
1,07K 1%

Figura 61: Esquemtico da Fonte.

4.2.4

CPU

O primeiro ponto a se abordar nesse tpico a seleo do microcontrolador. Abaixo, detalhamos melhor cada uma
das especificaes de hardware descritas na seo 4.2.1 que dizem respeito ao microcontrolador:

Facilidade de aquisio: muitas vezes, a aquisio de componentes eletrnicos no Brasil pode ser bem
cara e demorada, pois esses componentes devem ser importados com alto custo de frete e imposto. Por esse
motivo, estabeleceu-se que o microcontrolador a ser utilizado no projeto do hardware deveria ser de fcil
aquisio no Brasil;

Ferramentas de desenvolvimento de baixo custo: uma ferramenta de programao e debug de um


microcontrolador pode possuir um alto custo dependendo do microcontrolador utilizado, e isso deve ser
levado em considerao na seleo do microcontrolador a ser utilizado;

Nmero suficiente de entradas e sadas digitais: o microcontrolador deve disponibilizar pelo menos:
o

5 sinais de entradas:


1 Entrada Digital: para leitura do sinal de rotao prefervel que a entrada ao qual se
conecta esse sinal possua a capacidade de causar uma interrupo de software para
facilitar a leitura de freqncia;

4 Entradas Digitais: para leitura dos sinais de injeo tambm preferivelmente


conectados a entradas capazes de causar uma interrupo de software;

12 sinais de Sadas:


8 Sadas Digitais: para acionamento dos bicos injetores (2 sinais para cada bico);

4 Sadas Digitais: para acionamento das sadas genricas;

Interface de comunicao com a memria no voltil: a interface de comunicao com a memria no


voltil escolhida foi a I2C pelos motivos listados a seguir.
o

Existem memrias de fcil acesso no mercado que usam esse protocolo;

So fceis de serem escritas e lidas, no exigindo nveis de tenso muito especficos.

Pelo menos 3 conversores A/D: para leitura dos sinais de sensor de sonda lambda , sensor MAP e sensor de
presso da flauta;

Pelo menos uma UART: para configurao dinmica e debug do cdigo;


56

Pelo menos 3 timers, existindo pelo menos 3 canais de PWM: os timers so necessrios para o
funcionamento do firmware e sero explicados com mais detalhes na seo 6.4. J os canais de PWM tm
o propsito de:
o

Emular os sensores MAP e de Sonda Lambda, que so criado passando os sinais de PWM por
filtros analgicos passa-baixas;

Gerar o sinal de hold da estratgia Peak and Hold (ver seo 3.3.4.2) de acionamento dos bicos
injetores de gs.

Clock de pelo menos 15MHz: esse o clock mnimo estimado para que o microcontrolador consiga
cumprir suas funes.

Memria Flash de pelo menos 32KB e Memria RAM de pelo menos 2KB: essas so as memrias mnimas
estimadas para comportar e executar o cdigo necessrio para que o microcontrolador consiga cumprir
suas funes;

Com base nos requisitos descritos acima, o microcontrolador selecionado foi o ATMega32-16PU da Atmel, que
possui as seguintes caractersticas:

Facilidade de aquisio: pode ser comprado em sites de compra, as unidades utilizadas no


desenvolvimento foram compradas no mercado livre www.mercadolivre.com.br;

Ferramentas de desenvolvimento de baixo custo: a Atmel possui uma ferramenta para programao e
debug do ATMega32 com baixo custo. Trata-se do AVRDragon, que sai ao preo de ~U$ 100,00 no
Brasil pela CN Tecnologia;

Nmero suficiente de entradas e sadas digitais: o microcontrolador possui 40 pinos, sendo que para esse
projeto os seguinte pinos estaro ocupados e, portanto, indisponveis para serem utilizados como entradas e
sadas digitais:
o

4 pinos de alimentao VCC (digital), AVCC (analgica), e 2 GNDs;

1 pino de referncia analgica AREF;

2 pinos para conexo do cristal oscilador;

1 pino de reset;

4 pinos de gravao TCK, TDO, TMS e TDI (o pino de reset tambm utilizado para gravao);

2 pinos para comunicao I2C SDA e SCL;

3 pinos para leitura dos sinais analgicos: MAP, Sonda Lambda e Presso de Flauta;

2 pinos para comunicao RS232 de debug TX e RX;

4 pinos para gerao de PWM, sendo que 2 foram utilizados para gerar os sinais emulados dos
sensores MAP e de sonda lambda e 1 para gerar o sinal de hold da estratgia Peak and Hold;

Dessa forma, sobram 18 pinos para entradas e sadas digitais (=40-4-1-2-1-4-2-3-2-3). Esses pinos foram
divididos da seguinte forma:
o

5 sinais de entradas


4 entradas de leitura de tempo de injeo;

1 entrada de leitura de rotao;

8 sinais de Sadas 2 para cada pino de injeo (ver seo 4.2.11);

4 sinais de sada genricos a serem utilizados durante a fase de engenharia caso necessrio;

1 sinal de GS que avisa ao sistema de GNV (tanto circuitos internos da PCI quanto dispositivos
externos) que o veculo est funcionando a gs;

3 pinos com capacidade de causar interrupo de software: INT0, INT1 e INT2. O INT0 sendo utilizado
para fazer a medio de rotao;

Uma interface de comunicao I2C: utilizada para comunicao com a memria externa EEPROM;

Um conversor A/D com 8 canais: utilizado para leitura dos sinais de sensor MAP, sensor de Sonda Lambda
e sensor de Presso da Flauta;
57

Uma USART: que possui todas as funcionalidades de uma UART, mas que tambm pode ser utilizada para
comunicao sncrona. Utilizada para servir de console;

Trs timers:
o

1 timer de 16 bits com 1 canal de PWM;

1 timer de 8 bits com 1 canal de PWM;

1 timer de 8 bits com 2 canais de PWM.

Totalizando 4 canais de PWM;

Clock mximo de 16MHz;

Memria Flash de 32KB;

Memria RAM de 2KB;

Outras caractersticas no pertinentes necessidade desse projeto, como:


o

Real Time Counter com oscilador independente;

SPI;

Comparador analgico;

A Figura 62 ilustra o esquema eltrico de conexes da CPU. Basicamente, o circuito pode ser dividido da seguinte
maneira:

CPU_OUT_INJx e CPU_OUT_INJx_2: sinais de sada de injeo. Esses sinais so conectados ao circuito


de gerao do sinal de acionamento, responsvel por fazer a abertura do bico de injeo de gs (seo
4.2.11);

TCK, TDO, TMS, TDI: sinais ligados utilizados para gravao e debug da CPU;

RXD e TXD: ligados ao conector JP3 para serem utilizados para comunicao RS232. Esse conector
ainda conta com pinos de alimentao para suprir um eventual circuito externo;

CPU_INT0: para leitura do sinal de rotao. Esse pino capaz de causar interrupo por software;

CPU_PWM0: canal A do Timer 1, utilizado para emular o sinal do sensor MAP;

CPU_PWM1: canal B do Timer 1, utilizado para emular o sinal do sensor de sonda lambda;

CPU_PWM2: canal de PWM do Timer 2, utilizado para gerar o sinal de acionamento em hold juntamente
com os sinais CPU_OUT_INJx e CPU_OUT_INJx_2 (seo 4.2.11);

NET_RESET: pino utilizado para reset do microcontrolador;

XTAL1 e XTAL2: pinos para conexo com o cristal oscilador externo de 16MHz;

VCC, AVCC e GNDs: pinos de alimentao do microcontrolador;

CPU_IN_INJx: sinais de leitura do sinal de injeo da UCE original;

NET_CPU_SCL e NET_CPU_SDA: sinais de comunicao I2C;

NET_CPU_OUT_SGx: sinais de acionamento do circuito de sada genrica;

NET_CPU_ADC0: sinal de leitura do sensor MAP;

NET_CPU_ADC1: sinal de leitura do sensor de sonda lambda;

NET_CPU_ADC2: sinal de leitura do sensor de Presso da Flauta;

58

U1
NET_CPU_OUT_INJ1
NET_CPU_OUT_INJ2
NET_CPU_OUT_INJ3
NET_CPU_OUT_INJ4
NET_CPU_OUT_INJ1_2
NET_CPU_OUT_INJ2_2
NET_CPU_OUT_INJ3_2
NET_CPU_OUT_INJ4_2

CPU_OUT_INJ1
CPU_OUT_INJ2
CPU_OUT_INJ3
CPU_OUT_INJ4
CPU_OUT_INJ1_2
CPU_OUT_INJ2_2
CPU_OUT_INJ3_2
CPU_OUT_INJ4_2

JP3
4
3
2
1

NET_CPU_INT0
NET_CPU_IN_INJ4
NET_CPU_PWM1
NET_CPU_PWM0
NET_SINAL_GAS
NET_CPU_PWM2

CPU_INT0

Header 4

CPU_PWM1
CPU_PWM0

+5V

CPU_PWM2

R1
4K7

1
2
3
4
5
6
7
8
14
15
16
17
18
19
20
21

NET_RESET
S1
SW-PB

9
12
13

PD0 (RXD)
PD1 (TXD)
PD2 (INT0)
PD3 (INT1)
PD4 (OC1B)
PD5 (OC1A)
PD6 (ICP)
PD7 (OC2)

PA0 (ADC0)
PA1 (ADC1)
PA2 (ADC2)
PA3 (ADC3)
PA4 (ADC4)
PA5 (ADC5)
PA6 (ADC6)
PA7 (ADC7)
PC0 (SCL)
PC1 (SDA)
PC2 (TCK)
PC3 (TMS)
PC4 (TDO)
PC5 (TDI)
PC6 (TOSC1)
PC7 (TOSC2)

RESET

VCC
AVCC
AREF

XTAL2
XTAL1

GND
GND

40
39
38
37
36
35
34
33
22
23
24
25
26
27
28
29

NET_CPU_ADC0
NET_CPU_ADC1
NET_CPU_ADC2
NET_CPU_IN_INJ1
NET_CPU_OUT_SG1
NET_CPU_OUT_SG2
NET_CPU_OUT_SG3
NET_CPU_OUT_SG4

TCK
TMS
TDO
TDI

R644k7
R654k7
R664k7
R674k7

CPU_ADC0
CPU_ADC1
CPU_ADC2
CPU_OUT_SG1
CPU_OUT_SG2
CPU_OUT_SG3
CPU_OUT_SG4

NET_CPU_SCL
NET_CPU_SDA
NET_CPU_IN_INJ1
NET_CPU_IN_INJ2
NET_CPU_IN_INJ3
NET_CPU_IN_INJ4
NET_CPU_IN_INJ2
NET_CPU_IN_INJ3

JTAG
CPU_IN_INJ1
CPU_IN_INJ2
CPU_IN_INJ3
CPU_IN_INJ4

TCK
TDO
TMS
TDI

1
3
5
7
9

Header 5X2

+5V
10
30
32

+5V

2
4
6
8
10

GND

+5V

C1

31
11

C2

C3

100nF

1uF/50V

1uF/50V

ATmega16-16PI

OSC1
1
2
CX1
22pF

PB0 (XCK/T0)
PB1 (T1)
PB2 (AIN0/INT2)
PB3 (AIN1/OC0)
PB4 (SS)
PB5 (MOSI)
PB6 (MISO)
PB7 (SCK)

CX2
22pF

Figura 62: Esquemtico da CPU

4.2.5

Leitura e Emulao do Sensor MAP

Os sensores MAP possuem geralmente uma sada de 0 a 5V[29], adicionalmente, testes mostram que as
componentes de freqncia principais desse sinal esto abaixo de 447 Hz (ver seo 3.3.4.7). Esses parmetros foram
os que alimentaram o projeto da Figura 63.
Sensor MAP
SINAL_MAP

SINAL_MAP_UCE

NET_SINAL_MAP

NET_SINAL_MAP_UCE
+12V

+5V

K5

D9
MMBD6050

D10
MMBD6050
R20

NET_CPU_ADC0

Res1
33k
SINAL_GAS

R21

NET_SINAL_GAS
R23
4K7

Q5
BC337

R22
Res1
(NM)

4K7

C6
Cap Pol1
10nF

R24

NET_CPU_PWM0

Res1
3k3
C8
Cap
(NM)

CPU_ADC0

CPU_PWM0

C7
Cap Pol1
100nF

Figura 63: Circuito de leitura, emulao e comutao do Sensor MAP

Os sinais mostrados nesse circuito so:

SINAL_MAP: sinal provindo do sensor MAP, direto do conector para o mundo externo;

SINAL_MAP_UCE: sinal que ir se conectar a entrada de sensor MAP da UCE, direto para o conector para
o mundo externo;

SINAL_GAS: sinal que indica que o sistema de gs est em funcionamento e que, portanto, determina a
comutao ou no do rel e define qual ser o sinal que se conectar ao mundo externo: o sinal original do
sensor MAP ou o sinal emulado do sensor MAP. Ver seo 4.1.1;

CPU_ADC0: sinal que se conecta entrada analgica do microcontrolador;

CPU_PWM0: sinal que se conecta sada PWM do microcontrolador, que ir criar o sinal emulado do
sensor MAP.

O fio que conecta o sensor MAP UCE deve ser interrompido (cortado) de forma que uma das extremidades ser
conectada a SINAL_MAP e a outra a SINAL_MAP_UCE. Caso seja utilizado um mdulo Variador de Avano
externo, o fio que liga o sensor MAP UCE no deve ser interrompido e sim derivado para se conectar a SINAL_MAP
(para permitir a leitura desse sensor) e SINAL_MAP_UCE deve ficar desconectado.
Esse circuito pode ser dividido em trs partes, so elas:
59

Circuito de leitura:
o

O circuito de leitura bastante simples, formado por um filtro RC (resistor R20 + capacitor C6) e
um diodo de clamp (D10), responsvel por garantir que o sinal no ultrapasse o limite do
microcontrolador.
A freqncia de corte de um filtro RC calculada pela Equao ( 37 ).
@ '%A 

1
26M

( 37 )

Considerando uma freqncia de corte de 447 Hz e os valores comerciais de resistor de capacitor,


definiu-se: R = 33000 e C = 10 nF. Com esses parmetros, a freqncia de corte calculada pela
Equao ( 38 ).
@ '%A 

1
 482,29 {|
2 33000 10 10R

( 38 )

Outra preocupao diz respeito potncia do resistor, que por ser um componente SMD suporta
apenas 0,1W, e deve-se garantir que essa potncia no seja excedida. A potncia de um resistor
pode ser calculada pela Equao ( 39 ).
T

6

( 39 )

Isolando V na Equao ( 39 ), obtemos a Equao ( 40 ).


   6

( 40 )

Considerando os parmetros: P = 0,1 W e R = 33000 , obtemos a tenso da Equao ( 41 ).


  0,1 33000  57,45 

( 41 )

Isso significa que a tenso mxima entre os terminais do resistor deve ser de 57,45 V, e como a
tenso em um dos lados est limitada em 5,7 V (5 V da tenso de clamp + 0,7 V da queda do diodo
MMBD6050) a tenso mxima de entrada pode ser 57,45 V + 5,7 V = 63,15 V. Essa tenso
muito acima do que se espera de uma tenso de um sensor MAP, o que faz o projeto robusto o
suficiente desse ponto de vista.
O ltimo parmetro que deve ser levado em considerao a corrente mxima suportada pelo
diodo MMBD6050: 200 mA. Considerando que toda a corrente que passa por esse diodo passa
tambm pelo resistor (j que a tenso drenada pelo microcontrolador desprezvel), a relao entre
a tenso de entrada e a corrente passando pelo resistor (e conseqentemente pelo diodo) pode ser
expressa pela Equao ( 42 ).

 <  KB)(
6

( 42 )

Isolando V na Equao ( 42 ), obtemos a Equao ( 43 ).


 
6 \  KB)(

( 43 )

Considerando os parmetros: Vclamp = 5,7 V, R = 30000 e I = 200 mA, obtemos a Equao ( 44 ).


  200 10R 33000 \ 5,7  6605,7 

( 44 )

Ou seja, a tenso de entrada necessria para exceder a corrente mxima suportada pelo diodo
MMBD6050 de 6605,7 V (desnecessrio dizer que esse um valor irreal para um sinal de sensor
MAP).

60

Por fim, o resistor no montado R22 previsto para casos em que o Sensor MAP tenha sinais
acima de 5V e que, portanto, precisem ser atenuados antes de serem amostrados pelo
microcontrolador sem serem limitados pelo diodo.

Circuito de emulao:
o

O circuito de emulao ainda mais simples, composto apenas por um filtro RC (resistor R24 +
capacitor C7). A freqncia desse filtro considerando os parmetros (R = 3300 e C = 100 nF)
mostrada na Equao ( 45 ) e idntica ao filtro de entrada, como era de se esperar.
@ '%A 

1
 482,29 {|
2 3300 100 10R

( 45 )

A freqncia a mesma porque o sinal emulado deve possuir caractersticas semelhantes ao sinal
original.
Outro importante parmetro nesse filtro a freqncia gerada pelo PWM, que deve ser bastante
atenuada para que esteja presente o mnimo possvel no sinal de sada. A atenuao do filtro RC
em decibis em funo da freqncia do sinal de entrada expressa pela Equao ( 46 ):
1
{#  10 log F
H
2 x 6 M \ 1

( 46 )

A freqncia do PWM ser de 31250 Hz (ver seo 6.4). Para essa freqncia, a atenuao no
filtro RC calculada pela Equao ( 47 ):
1
{#  10 log F
H  <18.18 C
2 31250 3300 100 10R \ 1

( 47 )

Essa atenuao equivale a 65,80 vezes, o que significa que o sinal do PWM que possui 5V de
amplitude ser atenuado para cerca de 79 mV.
A potncia sobre o resistor R24 no deve ser preocupao, pois a corrente drenada do sinal gerado
(lido pela ECU) em geral muito baixa.
Por ltimo, o capacitor C8 previsto para casos em que seja identificada a necessidade de filtrar
rudos de alta freqncia (provindos de outra fonte que no o microcontrolador) que por algum
motivo acoplem ao sinal emulado.

Circuito de Comutao
o

O circuito de comutao responsvel por selecionar qual sinal ser enviado UCE: o original ou
o emulado. Essa comutao feita a partir de um rel (K5), que acionado a partir de um TBJ
(Transistor Bipolar de Juno) o Q5 padro no mercado eletrnico, o BC337. O resistor R21
limita a corrente sobre a base do transistor e o resistor R23 estabelece que quando h uma alta
impedncia no sinal SINAL_GAS o TBJ est em modo de corte (no conduzindo).
No circuito de comutao projetado, o padro que o sinal que vai para a UCE seja o sinal original
do sensor, isso porque esse sinal que est no terminal NF (Normalmente Fechado) do rel.
Quando se deseja emular o sinal do Sensor MAP, portanto, necessrio que o sinal seja produzido
pelo microcontrolador a partir de um PWM para ser filtrado no circuito RC e por ltimo que o rel
seja comutado, colocando-se 5 V (nvel lgico 1) em SINAL_GAS e portanto fazendo com que o
transistor Q5 entre em modo de saturao (conduzindo) e faa fluir corrente pela bobina do rel,
fazendo-o comutar.

4.2.6

Leitura e Emulao do sensor de Sonda Lambda

Os sensores de Sonda Lambda possuem geralmente uma sada de 0 a 1 V[29]. Alm disso, testes mostram que as
componentes de freqncia principais desse sinal esto abaixo de 639 Hz (ver seo 3.3.4.6). Esses parmetros foram
os que alimentaram o projeto da Figura 64.

61

Sonda Lambda
SINAL_LAMBDA

SINAL_LAMBDA_UCE

NET_SINAL_LAMBDA

NET_SINAL_LAMBDA_UCE
+12V

+5V

K6

D11
MMBD6050

D12
MMBD6050
R30

NET_CPU_ADC1

Res1
33k
SINAL_GAS

R31

NET_SINAL_GAS
R33
4K7

Q6
BC337

R32
Res1
(NM)

4K7

C13
Cap Pol1
7.5nF

R34

NET_CPU_PWM1

Res1
3k3
C15
Cap
(NM)

CPU_ADC1

CPU_PWM1

C14
Cap Pol1
75nF

Figura 64: Circuito de leitura, emulao e comutao do sensor de Sonda Lambda

Os sinais mostrados nesse circuito so:

SINAL_LAMBDA: sinal provindo do sensor de Sonda Lambda, direto do conector para o mundo externo;

SINAL_LAMBDA_UCE: sinal que ir se conectar a entrada de sensor de Sonda Lambda da UCE, direto
para o conector para o mundo externo;

SINAL_GAS: sinal que indica que o sistema de gs est em funcionamento e que, portanto, determina a
comutao ou no do rel e define qual ser o sinal que se conectar ao mundo externo: o sinal original do
sensor de Sonda Lambda ou o sinal emulado do sensor de Sonda Lambda. Ver seo 4.1.1;

CPU_ADC1: sinal que se conecta entrada analgica do microcontrolador;

CPU_PWM1: sinal que se conecta sada PWM do microcontrolador, que ir criar o sinal emulado do
Sensor MAP.

Como o circuito de emulao no ser utilizado, o fio que liga o sensor de sonda lambda UCE deve ser derivado
para se conectar a SINAL_LAMBDA (para permitir a leitura desse sensor) e SINAL_LAMBDA_UCE deve ficar
desconectado. Caso a emulao do sensor de sonda lambda seja implementada, o fio que conecta o sensor de sonda
lambda UCE deve ser interrompido (cortado) de forma que a extremidade que se liga ao sensor seja conectada a
SINAL_LAMBDA e a extremidade que se liga UCE seja conectada a SINAL_LAMBDA_UCE.
Esse circuito pode ser dividido em trs partes, so elas:

Circuito de leitura:
o

O circuito de leitura bastante simples, formado por um filtro RC (resistor R30 + capacitor C13) e
um diodo de clamp (D12), responsvel por garantir que o sinal no ultrapasse o limite do
microcontrolador.
A freqncia de corte de um filtro RC calculada pela Equao ( 48 ).
@ '%A 

1
26M

( 48 )

Considerando uma freqncia de corte de 639 Hz e os valores comerciais de resistor de capacitor,


definiu-se: R = 33000 e C = 7,5 nF. Com esses parmetros, a freqncia de corte calculada
pela Equao ( 49 ).
@ '%A 

1
 643,05 {|
2 33000 7,5 10R

( 49 )

Outra preocupao diz respeito potncia do resistor, que por ser um componente SMD suporta
apenas 0,1W, e deve-se garantir que essa potncia no seja excedida. A potncia de um resistor
pode ser calculada pela Equao ( 50 ).


T
6

( 50 )

62

Isolando V na Equao ( 50 ), obtemos a Equao ( 51 ).


   6

( 51 )

Considerando os parmetros: P = 0,1 W e R = 33000 , obtemos a tenso da Equao ( 52 ).


  0,1 33000  57,45 

( 52 )

Isso significa que a tenso mxima entre os terminais do resistor deve ser de 57,45 V, e como a
tenso em um dos lados est limitada em 5,7 V (5 V da tenso de clamp + 0,7 V da queda do diodo
MMBD6050) a tenso mxima de entrada pode ser 57,45 V + 5,7 V = 63,15 V. Essa tenso
muito acima do que se espera de uma tenso de um sensor de sonda lambda, o que faz o projeto
robusto o suficiente desse ponto de vista.
O ltimo parmetro que deve ser levado em considerao a corrente mxima suportada pelo
diodo MMBD6050: 200 mA. Considerando que toda a corrente que passa por esse diodo passa
tambm pelo resistor (j que a tenso drenada pelo microcontrolador desprezvel), a relao entre
a tenso de entrada e a corrente passando pelo resistor (e conseqentemente pelo diodo) pode ser
expressa pela Equao ( 53 ).

 <  KB)(
6

( 53 )

Isolando V na Equao ( 53 ), obtemos a Equao ( 54 ).


 
6 \  KB)(

( 54 )

Considerando os parmetros: Vclamp = 5,7 V, R = 33000 e I = 200 mA, obtemos a tenso da


Equao ( 55 ).
  200 10R 33000 \ 5,7  6605,7 

( 55 )

Ou seja, a tenso de entrada necessria para exceder a corrente mxima suportada pelo diodo
MMBD6050 de 6605,7 V! Desnecessrio dizer que esse um valor irreal para um sinal de sensor
de Sonda Lambda.
Por fim, o resistor no montado R32 previsto para casos em que o sensor de Sonda Lambda tenha
sinais acima de 5V e que, portanto, devam ser atenuados antes de serem amostrados pelo
microcontrolador.

Circuito de emulao:
o

O circuito de emulao ainda mais simples, composto apenas por um filtro RC (resistor R34 +
capacitor C14). A freqncia desse filtro considerando os parmetros (R = 3300 e C = 75 nF)
mostrada na Equao ( 56 ) e idntica ao filtro de entrada, como era de se esperar.
@ '%A 

1
 643,05 {|
2 3300 75 10R

( 56 )

A freqncia a mesma porque o sinal emulado deve possuir caractersticas semelhantes ao sinal
original.
Outro importante parmetro nesse filtro a freqncia gerada pelo PWM, que deve ser bastante
atenuada para que esteja presente o mnimo possvel no sinal de sada. A atenuao do filtro RC
em decibis em funo da freqncia do sinal de entrada expressa pela Equao ( 57 ).
1
{#  10 log F
H
2 x 6 M \ 1

( 57 )

63

A freqncia do PWM ser de 31250 Hz (ver seo 6.4). Para essa freqncia, a atenuao no
filtro RC calculada pela Equao ( 58 ).
1
{#  10 log F
H  <16.95 C
2 31250 3300 75 10R \ 1

( 58 )

Essa atenuao equivale a 49,60 vezes, o que significa que o sinal do PWM que possui 5V de
amplitude ser atenuado para cerca de 101 mV.
A potncia sobre o resistor R34 no deve ser preocupao, pois a corrente drenada do sinal gerado
(lido pela ECU) em geral muito baixa.
Por ltimo, o capacitor C15 previsto para casos em que seja identificada a necessidade de filtrar
rudos de alta freqncia (provindos de outra fonte que no o microcontrolador) que por algum
motivo acoplem ao sinal emulado.

Circuito de Comutao
o

O circuito de comutao responsvel por selecionar qual sinal ser enviado UCE: o original ou
o emulado. Essa comutao feita a partir de um rel (K6), que acionado a partir de um TBJ
(Transistor Bipolar de Juno) o Q6 padro no mercado eletrnico, o BC337. O resistor R31
limita a corrente sobre a base do transistor e o resistor R33 estabelece que quando h uma alta
impedncia no sinal SINAL_GAS o TBJ est em modo de corte (no conduzindo).
No circuito de comutao projetado, o padro que o sinal que vai para a UCE seja o sinal original
do sensor, isso porque esse sinal que est no terminal NF (Normalmente Fechado) do rel.
Quando se deseja emular o sinal do sensor de Sonda Lambda, portanto, necessrio que o sinal
seja produzido pelo microcontrolador a partir de um PWM para ser filtrado no circuito RC e por
ltimo que o rel seja comutado, colocando-se 5 V (nvel lgico 1) em SINAL_GAS e portanto
fazendo com que o transistor Q3 entre em modo de saturao (conduzindo) e faa fluir corrente
pela bobina do rel, fazendo-o comutar.

4.2.7

Leitura do sensor de presso de flauta

O sensor de presso de flauta estudado apresentou uma sada de 0 a ~3 V (ver seo 3.3.3.1). Alm disso, testes
mostram que as componentes de freqncia principais desse sinal esto abaixo de 1617 Hz (ver seo 3.3.4.3). Esses
parmetros foram os que alimentaram o projeto da Figura 65.
+5V

D19
MMBD6050
PRESSAO_FLAUTA

NET_PRESSAO_FLAUTA

R76

NET_CPU_ADC2

Res1
1k
R77
Res1
(NM)

CPU_ADC2

C18
Cap Pol1
7.5nF

Figura 65: Circuito de leitura do sensor de Presso da Flauta

Os sinais mostrados nesse circuito so:

PRESSAO_FLAUTA: sinal provindo do sensor de Presso da Flauta;

CPU_ADC2: sinal que se conecta entrada analgica do microcontrolador;

O sinal do sensor de presso da flauta deve se conectar ao sinal PRESSAO_FLAUTA (para permitir a leitura desse
sensor.
Diferentemente dos circuitos de leitura do sensor MAP (seo 4.2.5) e do sensor de sonda lambda (seo 4.2.6),
esse circuito no prev emulao do sinal, possuindo somente o circuito de leitura:
64

Circuito de leitura:
o

O circuito de leitura bastante simples, formado por um filtro RC (resistor R76 + capacitor C18) e
um diodo de clamp (D19), responsvel por garantir que o sinal no ultrapasse o limite do
microcontrolador.
A freqncia de corte de um filtro RC calculada pela Equao ( 59 ).
@ '%A 

1
26M

( 59 )

Considerando uma freqncia de corte de 1617 Hz e os valores comerciais de resistor de capacitor,


definiu-se: R = 1000 e C = 7,5 nF. Com esses parmetros, a freqncia de corte calculada pela
Equao ( 60 ).
@ '%A 

1
 21220,66 {|
2 1000 7,5 10R

( 60 )

Outra preocupao diz respeito potncia do resistor, que por ser um componente SMD suporta
apenas 0,1W, e deve-se garantir que essa potncia no seja excedida. A potncia de um resistor
pode ser calculada pela Equao ( 61 ).


T
6

( 61 )

Isolando V na Equao ( 61 ), obtemos a Equao ( 62 ).


   6

( 62 )

Considerando os parmetros: P = 0,1 W e R = 1000 , obtemos a Equao ( 63 )


  0,1 1000  10 

( 63 )

Isso significa que a tenso mxima entre os terminais do resistor deve ser de 10 V, e como a tenso
em um dos lados est limitada em 5,7 V (5 V da tenso de clamp + 0,7 V da queda do diodo
MMBD6050) a tenso mxima de entrada pode ser 10 V + 5,7 V = 15,57 V. Essa tenso muito
acima do que se espera de uma tenso de um sensor de Presso de Flauta, o que faz o projeto
robusto o suficiente desse ponto de vista.
O ltimo parmetro que deve ser levado em considerao a corrente mxima suportada pelo
diodo MMBD6050: 200 mA. Considerando que toda a corrente que passa por esse diodo passa
tambm pelo resistor (j que a tenso drenada pelo microcontrolador desprezvel), a relao entre
a tenso de entrada e a corrente passando pelo resistor (e conseqentemente pelo diodo) pode ser
expressa pela Equao ( 64 ).

 <  KB)(
6

( 64 )

Isolando V na Equao ( 64 ), obtemos a Equao ( 65 ).


 
6 \  KB)(

( 65 )

Considerando os parmetros: Vclamp = 5,7 V, R = 1000 e I = 200 mA, obtemos a Equao ( 66 ).


  200 10R 1000 \ 5,7  205,7 

( 66 )

Ou seja, a tenso de entrada necessria para exceder a corrente mxima suportada pelo diodo
MMBD6050 de 205,7 V! Desnecessrio dizer que esse um valor irreal para um sinal de sensor
de Sonda Lambda.

65

Por fim, o resistor no montado R77 previsto para casos em que o sensor de Presso de Flauta
tenha sinais acima de 5V e que, portanto, devam ser atenuados antes de serem amostrados pelo
microcontrolador.

4.2.8

Leitura e Comutao dos Bicos Injetores originais

O sinal de injeo eletrnica deve ser utilizado pelo microcontrolador para medir-se o tempo de injeo
implementado pela UCE original do veculo. O circuito projetado deve ser capaz das seguintes funcionalidades:

Congelamento do bico injetor, de forma que no ocorra mais injeo do combustvel original
(gasolina/lcool);

Leitura do sinal de injeo com a finalidade de se calcular o tempo de injeo. Essa funcionalidade deve
estar ativa mesmo quando o bico injetor estiver congelado.

O projeto criado encontra-se na Figura 66.


SINAL_INJ1_UCE

SINAL_INJ1_BICO

Injeo

NET_SINAL_INJ1_UCE

NET_SINAL_INJ1_BICO
+12V
+5V

K1

D1
MMBD6050

D2
MMBD6050
R4

R5
SINAL_GAS

R6

NET_SINAL_GAS
R7
4K7

Q1
BC337

47K

U3A
1

NET_CPU_IN_INJ1

CPU_IN_INJ1

74AC14PC

68R

4K7

Figura 66: Circuito de leitura de sinal de injeo e congelamento dos bicos injetores.

Os sinais mostrados nesse circuito so:

SINAL_INJ1_UCE: sinal de acionamento dos bicos injetores provindos da UCE;

SINAL_INJ1_BICO: terminal do bico injetor que se conecta UCE;

SINAL_GAS: sinal que indica que o sistema de gs est em funcionamento e que, portanto, determina a
comutao do rel, congelando o bico injetor. Ver seo 4.1.1;

CPU_IN_INJ1: sinal digital tratado, que carrega a informao de injeo provinda do sinal
SINAL_INJ1_UCE;

Repare que o fio que conecta o bico injetor UCE deve ser interrompido (cortado) de forma que uma das
extremidades ser conectada a SINAL_INJ1_BICO e a outra a SINAL_INJ1_UCE.
Esse circuito pode ser dividido em trs partes, so elas:

Circuito de leitura:
o

Esse circuito formado por trs componentes: um resistor (R4), um diodo (D2) e um inversor
lgico (U3A). O resistor e o diodo so responsveis por limitar a tenso na entrada do inversor
lgico em 5,7 V (5 V + 0,7 V da queda do diodo).
O inversor lgico (74AC14PC) suporta uma tenso de at 6.5 V em suas entradas (6 V + 1,5 V), e
portanto no deve ter problemas com o circuito de limitao de tenso descrito acima.
Adicionalmente, esse inversor lgico possui uma caracterstica de Schimitt Trigger, o que faz com
que tenha uma histerese entre os limites positivo e negativo de transio de entrada. Essa
caracterstica evita que rudos de pequena amplitude prximos aos limites lgicos de entrada sejam
refletidos na sada.
Outra preocupao diz respeito potncia do resistor, que por ser um componente SMD suporta
apenas 0,1W, e deve-se garantir que essa potncia no seja excedida. A potncia de um resistor
pode ser calculada com a Equao ( 67 ).

66



T
6

( 67 )

Isolando V na Equao ( 67 ), obtemos a Equao ( 68 ).


   6

( 68 )

Considerando os parmetros: P = 0,1 W e R = 47000 , obtemos a Equao ( 69 ).


  0,1 47000  68,56 

( 69 )

Isso significa que a tenso mxima entre os terminais do resistor deve ser de 68,56 V, e como a
tenso em um dos lados est limitada em 5,7 V (5 V da tenso de clamp + 0,7 V da queda do diodo
MMBD6050) a tenso mxima de entrada pode ser 68,56 V + 5,7 V = 74,26 V. Embora essa
tenso seja bem prxima de valores observados em campo, isso no deve ser preocupao pois
valores altos de tenso aparecem em intervalos bem curtos de tempo.
O ltimo parmetro que deve ser levado em considerao a corrente mxima suportada pelo
diodo MMBD6050: 200 mA. Considerando que toda a corrente que passa por esse diodo passa
tambm pelo resistor (j que a tenso drenada pelo microcontrolador desprezvel), a relao entre
a tenso de entrada e a corrente passando pelo resistor (e conseqentemente pelo diodo) pode ser
expressa pela Equao ( 70 ).

 <  KB)(
6

( 70 )

Isolando V na Equao ( 70 ), obtemos a Equao ( 71 ).


 
6 \  KB)(

( 71 )

Considerando os parmetros: Vclamp = 5,7 V, R = 47000 e I = 200 mA, obtemos a Equao ( 72 ).


  200 10R 47000 \ 5,7  9.405,7 

( 72 )

Ou seja, a tenso de entrada necessria para exceder a corrente mxima suportada pelo diodo
MMBD6050 de 9.405,7 V! Desnecessrio dizer que esse um valor irreal para um sinal de
sensor de injeo

Circuito de congelamento dos bicos:


o

Os bicos injetores de baixa impedncia possuem uma resistncia em torno de 2,5 e os bicos
injetores de alta impedncia possuem uma resistncia em torno de 17 . Essas resistncias
definem a corrente que ir fluir por esse bico, acionando a eletro vlvula e permitindo a passagem
de combustvel. O circuito de congelamento dos bicos consiste em apenas um nico resistor de 68
colocado em srie com o bico injetor, o que limita a corrente que flui por ele e impede o seu
acionamento.

A potncia suportada pelo resistor calculada a partir de sua resistncia e da tenso eltrica entre
seus dois terminais, conforme a Equao ( 73 ).
% 

^& ' T
6

( 73 )

A tenso Vbicos a tenso de alimentao do bico injetor, e deve atingir um valor mximo de 14 V
para um veculo movido a 12 V, somando a isso a informao da resistncia de 68 do resistor,
obtemos a Equao ( 74 ).
% 

14T
 2,88
68

( 74 )
67

Portanto, definiu-se uma potncia de 3W para o resistor.

Circuito de Comutao
o

O circuito de comutao responsvel por determinar o congelamento ou no do bico injetor.


Essa comutao feita a partir de um rel (K1), que acionado a partir de um TBJ (Transistor
Bipolar de Juno) o Q1 padro no mercado eletrnico, o BC337. O resistor R6 limita a
corrente sobre a base do transistor e o resistor R7 estabelece que quando h uma alta impedncia
no sinal SINAL_GAS o TBJ est em modo de corte (no conduzindo).
No circuito de comutao projetado, o padro que o bico injetor no esteja congelado, isso
porque o sinal que se conecta ao NF (Normalmente Fechado) do rel o sinal de acionamento da
UCE sem a adio de um resistor em srie. Quando se deseja congelar o bico injetor, portanto,
necessrio que o rel seja comutado, colocando-se 5 V (nvel lgico 1) em SINAL_GAS e portanto
fazendo com que o transistor Q1 entre em modo de saturao (conduzindo) e faa fluir corrente
pela bobina do rel, fazendo-o comutar, inserindo uma resistncia de 68 em srie com o bico
injetor.

4.2.9

Sensor de Rotao

Para a funo de leitura do sensor de rotao foi utilizado um CI (Circuito Integrado) projetado com essa
finalidade, trata-se do LM1815N da National Semiconductor. Basicamente, esse CI produz um pulso com largura
determinada toda vez que o sinal de entrada cruza o 0V em direo tenso negativa. O seu circuito ilustrado na
Figura 67.
+5V
Footprint DIP14
R25
39K
NET_SEN_ROT

R26
18K
R27
300R
(NM)

+5V
3
9
11

C10
14
1
4
2

330pF
C12

U4
SIG IN
TIM PULSE IN
IN SEL
RC TIME
NC
NC
GND

V+
PEAK DET CAP
THR ADJ
NC
NC
GATED OUT
REF PULSE OUT

+5V

8
7
5
6
13
10
12

C9
R29
4K7

R28
1M

C11

0,1uF/50V

0,33uF

LM1815N
0,01uF
NET_CPU_INT0

CPU_INT0

Figura 67: Circuito de leitura do Sensor de Rotao

O circuito foi projetado com base no datasheet do componente e possui as seguintes caractersticas:

Entrada de sinal de at 54V.

Histerese de 80% do valor de pico do sinal. Por exemplo, para um sinal de entrada de 10V, um pulso s
ser detectado se aps o pulso anterior o sinal ultrapassar o valor de 8V antes de cruzar o 0V em direo
tenso negativa novamente.

Um pulso de aproximadamente 260 us gerado toda vez que o sinal de entrada cruzar o 0V em direo
tenso negativa.

Freqncia do sinal mxima de aproximadamente 1,9 kHz.

O circuito do Sensor de Rotao adequado para leitura de sensores magnticos, mas no se mostrou eficaz na
leitura de rotao a partir do sinal de ignio (que o sinal utilizado no caso do kit instalado ver seo 3.3.2). Por
isso, utilizou-se um circuito de rotao alternativo (seo 4.2.10).

4.2.10 Sensor de Rotao Alternativo


Esse circuito foi projetado aps a constatao de que o circuito descrito na seo 4.2.9 no era eficaz na leitura do
sinal de ignio (utilizado para medida de rotao), e baseia-se no circuito de leitura dos bicos injetores (seo 4.2.8).
O circuito apresentado na Figura 68.

68

+5V

D20
MMBD6050
SEN_ROT

R78

U3E
11

10

NET_CPU_INT0

47K

CPU_INT0

74AC14PC

Figura 68: Circuito alternativo do Sensor de Rotao

O circuito Funciona da seguinte maneira:


Esse circuito formado por trs componentes: um resistor (R78), um diodo (D20) e um inversor lgico (U3E). O
resistor e o diodo so responsveis por limitar a tenso na entrada do inversor lgico em 5,7 V (5 V + 0,7 V da queda
do diodo).
O inversor lgico (74AC14PC) suporta uma tenso de at 6.5 V em suas entradas (6 V + 1,5 V), e portanto no
deve ter problemas com o circuito de limitao de tenso descrito acima. Adicionalmente, esse inversor lgico possui
uma caracterstica de Schimitt Trigger, o que faz com que tenha uma histerese entre os limites positivo e negativo de
transio de entrada. Essa caracterstica evita que rudos de pequena amplitude prximos aos limites lgicos de
entrada sejam refletidos na sada.
Outra preocupao diz respeito potncia do resistor, que por ser um componente SMD suporta apenas 0,1W, e
deve-se garantir que essa potncia no seja excedida. A potncia de um resistor pode ser calculada pela Equao
( 75 ).


T
6

( 75 )

Isolando V na Equao ( 75 ), obtemos a Equao ( 76 ).


   6

( 76 )

Considerando os parmetros: P = 0,1 W e R = 47000 , obtemos a Equao ( 77 ).


  0,1 47000  68,56 

( 77 )

Isso significa que a tenso mxima entre os terminais do resistor deve ser de 68,56 V, e como a tenso em um dos
lados est limitada em 5,7 V (5 V da tenso de clamp + 0,7 V da queda do diodo MMBD6050) a tenso mxima de
entrada pode ser 68,56 V + 5,7 V = 74,26 V. Embora essa tenso seja bem prxima de valores observados em campo,
isso no deve ser preocupao pois valores altos de tenso aparecem em intervalos bem curtos de tempo.
O ltimo parmetro que deve ser levado em considerao a corrente mxima suportada pelo diodo MMBD6050:
200 mA. Considerando que toda a corrente que passa por esse diodo passa tambm pelo resistor (j que a tenso
drenada pelo microcontrolador desprezvel), a relao entre a tenso de entrada e a corrente passando pelo resistor (e
conseqentemente pelo diodo) pode ser expressa pela Equao ( 78 ).

 <  KB)(
6

( 78 )

Isolando V na Equao ( 78 ), obtemos a Equao ( 79 ).


 
6 \  KB)(

( 79 )

Considerando os parmetros: Vclamp = 5,7 V, R = 47000 e I = 200 mA, obtemos a Equao ( 80 ).


  200 10R 47000 \ 5,7  9.405,7 

( 80 )

69

Ou seja, a tenso de entrada necessria para exceder a corrente mxima suportada pelo diodo MMBD6050 de
9.405,7 V (desnecessrio dizer que esse um valor irreal para um sinal de sensor de rotao).

4.2.11 Sinal de acionamento dos Bicos


O circuito que gera o sinal de acionamento dos bicos responsvel por transformar os sinais digitais de sada do
microcontrolador (5V) em sinais aptos a controlar o circuito de acionamento dos bicos injetores de gs (seo 4.3.2).
Os MOSFETs utilizados no acionamento dos bicos injetores de gs so do modelo IRF640NPBF da International
Rectifier. Segundo o datasheet desse componente, o VGS(th) (tenso entre porta e fonte na qual o MOSFET passa a
estar acionado, comumente referenciada como VT na literatura acadmica) mximo do componente de 4V.
Considerando que a tenso de sada mnima do pino do microcontrolador ATMega32-16PU de 4.2V e que a fonte do
MOSFET se conecta ao GND, esperado que se pergunte: porque a necessidade de um circuito de transformao dos
sinais? No seria possvel acionar os MOSFETs diretamente a partir do microcontrolador?
O elemento chave para responder a essas perguntas reside no fato de que o MOSFET necessita no s que sua
tenso VGS (tenso entre porta e fonte) esteja acima do VGS(th) para estar acionado, mas tambm que sua tenso VGD
(tenso entre porta e dreno) esteja acima de VGS(th). Esse fato geralmente esquecido porque quando acionado a tenso
no dreno e na fonte so muito semelhantes, o que nesse caso no exatamente verdadeiro pela alta corrente que flui
por esses componentes. Para calcular a tenso no dreno durante o estado acionado, deve-se multiplicar a corrente que
flui por esse componente por sua resistncia de acionamento (RDS(on)). Considerando os parmetros das Equaes
( 81 ) e ( 82 ) a tenso do dreno (VD mx) calculada pela Equao ( 83 ).
M   P   , C P, 


12 
 5,58
2,15

( 81 )

67'"9 )  150

( 82 )

 )  5,58 0,15  0,84

( 83 )

Com isso, uma tenso de acionamento de 4,2 V do microcontrolador pode no ser suficiente para manter a tenso
VGD (que atinge um valor mnimo de 4,2 0,84 = 3,36 V) maior que o VGS(th) de 4V.
Outro fator importante que justifica a necessidade do circuito o fato de que quanto maior a tenso VGS, menor o
valor de RDS(on), o que implica em uma maior corente de acionamento (menor resistncia em srie) e
conseqentemente menor tempo de abertura dos bicos injetores.
Por ltimo, para fazer a estratgia de Peak and Hold seriam necessrios 4 canais de PWM, no entanto o
microcontrolador ATMega32-16PU s dispe de 4 canais mas 2 deles esto sendo utilizados para emular os sinais de
MAP e Sonda Lambda. Para contornar esse fato, foi criado um esquema eltrico utilizando circuitos lgicos para ser
possvel utilizar apenas uma sada de PWM para gerar o sinal de todos os bicos injetores.
O circuito apresentado na Figura 69.
+12V
R68
1k

CPU_OUT_INJ1
CPU_PWM2

CPU_OUT_INJ2

U10A
1
3

SN7432N
U10C
9

CPU_OUT_INJ2_2

R73

Q22
BSN304

1k
SN7408N

OUT_INJ3_12V

U11C
8

CPU_OUT_INJ3_2

10

R74

Q23
BSN304

1k
SN7408N

11
SN7432N

OUT_INJ2_12V

U11B

SN7432N
U10D
12
13

Q21
BSN304

1k

10

CPU_OUT_INJ4

R72

SN7408N
6

CPU_OUT_INJ4_2

12

R71
1k

OUT_INJ1_12V
3

CPU_OUT_INJ1_2

SN7432N
U10B
4

R70
1k

U11A

CPU_OUT_INJ3

R69
1k

OUT_INJ4_12V

U11D
11

13

R75
1k

Q24
BSN304

SN7408N

GND

Figura 69: Circuito de criao do sinal de controle do circuito de acionamento dos bicos injetores de gs.
70

O circuito funciona da seguinte forma:

O sinal conectado porta de cada MOSFET BSN304 pode ser expressado da seguinte forma (na notao
de lgebra booleana):
o

(CPU_PWM2+CPU_OUT_INJx)*CPU_OUT_INJx_2;

O que resulta na seguinte tabela verdade:


CPU_PWM2

CPU_OUT_INJx

CPU_OUT_INJx_2

(CPU_PWM2+CPU_OUT_INJx)*CPU_OUT_INJx_2

PWM 7,81 kHz


@ 66%

PWM 7,81 kHz


@ 66%

PWM 7,81 kHz @ 66%

PWM 7,81 kHz


@ 66%

PWM 7,81 kHz


@ 66%

O MOSFET BSN304 utilizado para elevar a tenso de controle do circuito de acionamento dos bicos
para 12V, mas sua utilizao tambm inverte logicamente o sinal:
o

Quando apresenta-se um valor lgico 1 na porta do MOSFET BSN304 (que possui um VGS(th) de
apenas 2V) ele passa a conduzir, apresentando um valor de 0V em OUT_INJx_12V, e portanto no
comandando o acionamento do bico injetor de gs estado Idle.

Quando apresenta-se um valor lgico 0 na porta do MOSFET BSN304, ele no conduz,


apresentando um valor de +12V (tenso da bateria) em OUT_INJx_12V, e portanto comandando
o acionamento constante do bico injetor de gs estado Peak.

Quando apresenta-se um PWM na porta do MOSFET BSN304, ele inverte o sinal e o eleva para
12V. Desta forma, um PWM de 7,81 kHz a 66% com tenso mxima de 5V transformado em um
PWM de 7,81 kHz a 33% com tenso mxima de +12V (tenso da bateria), e portanto
comandando o acionamento chaveado do bico injetor de gs estado Hold.

A tabela abaixo resume o acionamento dos bicos injetores de gs a partir dos sinais CPU_OUT_INJx e
CPU_OUT_INJx_2:
CPU_OUT_INJx

CPU_OUT_INJx_2

Acionamento do Bico

Acionamento em Peak

Acionamento em Hold

Acionamento em Peak

No acionamento Idle

4.2.12 Sadas Genricas


O circuito de sada genrica foi projetado para conferir flexibilidade ao produto, possibilitando-o acionar cargas
externas.
O circuito dotado de 4 sadas genricas, que possuem uma alimentao especfica que deve funcionar de 9V a
32V. Cada sada genrica capaz de chavear essa alimentao atravs de um sinal TTL vindo do microcontrolador. O
circuito apresentado na Figura 70.

71

SADA GENRICA
+25V

SG
i

1
3
2

R38
43K
4
GATE

TP1

SG i
R41
1K

TP2
Q7
BC337

SI4435DY
D4
D3
D2
D1
POWER_EXT
i
R40 10R

CPU_OUT_SG1

NET_CPU_OUT_SG1

U6
5
6
7
8

R39
39K

S1
S3
S2

NET_SG1

SG1

MF-MSMF030

D15
MMBD6050
TP3

F2 NM

Figura 70: Sada genrica

O circuito funciona da seguinte maneira:

Quando o sinal CPU_OUT_SG1 estiver em nvel lgico 0, no haver circulao de corrente pelos
resistores R38 e R39 e pelo transistor Q7, e portanto a tenso na porta do MOSFET U6 ser igual tenso
em sua fonte.

Quando o sinal CPU_OUT_SG1 estiver em nvel lgico 1, haver uma circulao de corrente pelos
resistores R38 e R39 e pelo transistor Q7, e portanto haver uma queda de tenso no resistor R38, fazendo
com que a tenso na porta do MOSFET U6 seja igual ao da Equao ( 84 )
 

639

638 \ 639 &"

( 84 )

Onde VGU6 a tenso na porta do MOSFET U6 e Vin a tenso que alimenta o circuito das sadas genricas
e representada no esquema eltrico como +25V.
Dessa forma, podemos calcular a tenso entre a porta e a fonte do MOSFET U6 com a Equao ( 85 ).
 

639
639
&" < &"  &" F
< 1H
638 \ 39
638 \ 639

( 85 )

Onde VGSU6 a tenso entre a porta e a fonte do MOSFET U6.


Para o correto funcionamento do circuito, necessrio que em 9V (limite inferior da tenso de
funcionamento do circuito) a tenso VGSU6 seja menor que a tenso VGS(th) mnima do MOSFET para que
ocorra o acionamento e que em 32V (limite superior da tenso de funcionamento do circuito) a tenso
VGSU6 seja maior que a tenso VGS mnima suportada pelo MOSFET, conforme as Equaes ( 86 ) e ( 87 ).
 @7   99 < 79

( 86 )

 @7   329 > 

( 87 )

Consultando o datasheet do componente, chegamos aos seguintes valores das Equaes ( 88 ) e ( 89 ).


79  <3

( 88 )

  <20

( 89 )

Definindo conforme a Equao ( 90 ) .




639
638 \ 639

( 90 )

E aplicando as restries de tenso das Equaes ( 86 ), ( 87 ), ( 88 ) e ( 89 ), chegamos s Inequaes


( 91 ) e ( 92 ).
72

3
97 <19 < <3 < < \ 1 < 0,667
9
327 <19 > <20 > <

20
\ 1 > 0,375
32

( 91 )

( 92 )

Essas inequaes podem ser reunidas na Inequao ( 93 ).


0,375 < < 0,667

( 93 )

Dessa forma, definiu-se R38 = 43k e R39 = 39k de tal forma que assumiu o valor da Equao ( 94 ).


639
43z

 0,524
638 \ 639 39z \ 43z

( 94 )

Ou seja, um valor no s dentro da faixa limite calculada, mas bem prximo do valor central dessa faixa
(0,521).

4.3

PCI Circuitos de potncia

Nessa seo, o projeto da PCI responsvel pela parte de potncia, ou seja, pelo acionamento dos bicos injetores e
gerao do SINAL_GAS (seo 4.1.1), explicada com detalhes.
Essa PCI responsvel por receber da PCI de circuitos digitais e analgicos (ver seo 4.2) o sinal digital que
carrega a informao da largura de pulso de acionamento dos bicos e por realizar o acionamento dos bicos, criando um
caminho de corrente por esses bicos (ver seo 2.3.2).

4.3.1

Especificaes do hardware.

Essa seo traz as especificaes tcnicas da PCI Circuitos de potncia.

4.3.2

Tenso dos sinais digitais de acionamento entre 9V e 16V o sinal de acionamento do bico tem seu nvel
definido pela tenso da bateria (seo 4.2.11), que deve alcanar valores nessa faixa;

Corrente de acionamento do bico de 6A de peak e 2A de hold considerando que a impedncia do bico


injetor de gs foi medida como sendo 2 , que a tenso entre seus terminais de 12V quando acionado e
que a corrente de hold de aproximadamente 34% a corrente de peak;

Impedncia de acionamento de no mximo 200m dessa forma, a corrente sobre o bico injetor no
prejudicada por uma impedncia em srie com esse bico.

Corrente do SINAL_GS de at 20A (6A de at um bico em peak, 6A de at 2 bicos em hold e uma


estimativa de at 8A para o resto do circuito);

Circuito de Acionamento dos Bicos

O circuito de acionamento dos bicos foi projetado para possibilitar o acionamento dos bicos de GNV a partir de
sinais na tenso da bateria.
O circuito capaz de acionar 4 bicos a partir de 4 sinais na tenso da bateria. Esse acionamento feito utilizandose 1 FET-N e 1 tranzorb para cada acionamento de bico. O circuito apresentado na Figura 71.

73

Con3

1.5KE1 5CA

Q5

TZ4

IRF640NPBF

HC_6A
i
BICO_GNV_4

i
HC_6A

PGND
5
4
3
2
1

ACIONA_BICO _4

Q4

IRF640NPBF

1.5KE15CA

HC_6A
i
BICO_GNV_3

TZ3

Q3

IRF640NPBF

1.5KE15CA

HC_6A
i
BICO_GNV_2

TZ2

1.5KE15CA

TZ1

Q2

IRF640NPBF

ACIONA_BICO_3

ACIONA_BICO_2

ACIONA_BICO_1

HC_6A
i
BICO_GNV_1

BICO_GNV_1
BICO_GNV_2
BICO_GNV_3
BICO_GNV_4
PGND

Figura 71: Circuito de Acionamento dos Bicos

O circuito funciona da seguinte maneira:

Quando os sinal ACIONA_BICO_x correspondente assume o valor lgico 1 (ou seja, ~12V), o FET-N
aciona, criando um caminho de corrente entre o sinal BICO_GNV_x e o terra. O componente selecionado
para essa tarefa crtico pois por ele que passa toda a corrente de acionamento dos bicos de GNV (ver
seo 2.3.2), e aps pesquisa chegou-se no IRF640NPBF da International Rectifier. Esse componente
possui uma tenso de acionamento (J7Ay9 ) de 4V (quando o especificado foi de pelo menos 9V) e
apresenta uma impedncia entre o dreno e a fonte de 150m quando acionado por uma tenso de 10V
(quando o especificado foi de menos de 200m).

Os tranzorbs servem para limitar a tenso entre o dreno e a fonte dos FETs-N, pois como est sendo feito o
chaveamento de uma carga indutiva so esperados picos de tenso quando ocorrer o desacionamento
dessas cargas (ver seo 3.3.3.3 sinais dos bicos de original e de GNV) a tenso deve ser limitada em
200V ( mxima do FET-N selecionado). O componente selecionado foi o 1.5KE15CA da Littelfuse,
que limita a tenso entre seus terminais em 21,2V. Considerando a corrente de acionamento dos bicos de
6A, a potncia sobre esse componente durante sua atuao calculada pela Equao ( 95 ).
  
 21,2 6  127,2

( 95 )

Segundo o datasheet do componente, ele capaz de suportar at 1.500W.

4.3.3

Circuito de gerao do SINAL_GAS

O SINAL_GAS responsvel por alimentar o sistema GNV quando o veculo est utilizando esse combustvel.
Esse sinal tambm utilizado para avisar alguns outros circuitos (como o Variador de Avano) que o combustvel
GNV est sendo utilizado (ver seo 4.1.1). Esse circuito ilustrado na Figura 72.
5V

12V

K1
SINAL_GAS
R1

SINAL_GAS_ON
R2
4K7

2
1
Con1

4K7
Q1
2N7002ET1G

GND

Figura 72: Circuito de gerao do SINAL_GAS

Esse circuito tem a mesma funo dos circuitos descritos nas sees 4.2.5, 4.2.6 e 4.2.8, mas difere desses pela
utilizao de um FET-N no lugar de um transistor NPN. Essa escolha foi fruto de uma reviso na estratgia de
acionamento, e resultou em um circuito mais simples, mais barato e com menor espao ocupado na PCI. O circuito
funciona da seguinte maneira:

O componente selecionado para acionamento do rel foi o 2N7002ET1G da ON Semiconductors. Esse


componente tem uma tenso de acionamento (J7Ay9 ) de 2,5V (suficientemente pequena considerando a
tenso de sada do microcontrolador ATMega32-16PU de no mnimo 4,2V). O resistor R1 limita a corrente
sobre a porta do FET-N durante a transio digital do sinal SINAL_GAS_ON e o resistor R2 mantm o
rel desacionado quando existe uma alta impedncia em SINAL_GAS_ON.
74

ESTRATGIA DE FUNCIONAMENTO
FUNCION
DO
CONTROLADOR

Essa seo traz com detalhes a estratgia


gia de funcionamento do sistema objeto dessa dissertao. Essa estratgia j
foi introduzida simplificadamente na seo 1.2.

5.1

Descrio da estratgia de funcionamento

A UCE (Unidade de Comando Eletrnico) original do veculo movido gasolina/lcool


gasolina/lcool faz clculos complexos
para determinar o tempo de injeo dee gasolina/lcool para as diversas condies de funcionamento do motor,
motor e,
portanto, o tempo de injeo de combustvel original guarda em si esses complexos clculos.
clculos
Se aproveitando do fato descrito, a estratgia toma como base o tempo de injeo original do veculo para
determinao do tempo de injeo de GNV. Considerando que h uma diferena na relao estequiomtrica das
misturas ar-combustvel
combustvel quando utilizada gasolina e quando utilizado GNV, e que os sistemas de abastecimento de
gasolina/lcool e de GNV possuem vazes diferentes dos seus combustveis, deve-se
deve se aplicar uma correo fixa nesse
tempo de injeo.
Adicionalmente, existem diferenas qumicas e dinmicas entre os combustveis gasolina/lcool e GNV, o que
exige correes diferentes para as diferentes condies de funcionamento do motor. A estratgia proposta por esta
dissertao de mestrado realizar essa correo por meio de lgica nebulosa (ou fuzzy ver mais detalhes na seo
2.5),
), evitando estudos qumicos e dinmicos complexos.
A ilustrao da estratgia de funcionamento apresentada na Figura 73 (essa figura
ura uma cpia da Figura 2 e est
ilustrada aqui apenas para facilitar o entendimento desta seo).
seo Pode ser observado que tambm funo do sistema
desenvolvido congelar os bicos de injeo originais, ou seja, evitar que a central eletrnica original tambm promova a
injeo de gasolina/lcool.

Figura 73:: Estratgia de funcionamento baseada no clculo de tempo de injeo da centralina original.

5.2

Procedimentos seguidos

Essa seo detalha os procedimentos adotados para obteno


obten da estratgia de funcionamento.
Foram determinadas:

Correo Fixas (k) seo 5.2.2;


5.2.2

Base de Regras seo 5.2.5;;

A base de regras de um sistema de controle nebuloso em geral ditada


ditada por um ou mais especialistas, que com base
em seu conhecimento e experincia do sistema a ser controlado determina quais as regras mais adequadas. No caso do
sistema desenvolvido,, seria muito difcil encontrar um especialista em injeo eletrnica de GNV,
GNV e por isso optou-se
por utilizar-se
se um kit comercial de GNV como o especialista do sistema, para esse propsito, foi instalado um kit de
GNV comercial e feito um estudo sobre seu funcionamento (veja a seo 3.3).
75

Para todos os casos, o critrio de avaliao para determinar o sucesso de cada tentativa de correo descrito na
seo 5.2.1. Os procedimentos utilizados na determinao das funes de pertinncia de cada grandeza so descritos
na 5.2.3. Para a determinao dos predecessores a serem utilizados na base de regra, foi utilizado o procedimento
descrito na seo 5.2.4.

5.2.1

Parmetro de Avaliao (erro)

Para verificar a eficcia de cada regra testada, foi criado um clculo da diferena entre o resultado gerado pela
regra e o valor lido do kit comercial. Ou seja, uma parmetro que define o grau de semelhana entre o valor de sada
produzido como fruto da(s) regra(s) nebulosa(s) e o valor de sada do kit comercial. Esse parmetro foi definido pela
Equao ( 96 ).

  j|
< 
B'K&"B max 70, 7z \ @u||u99|

( 96 )

"f

N o tamanho do log
TIGNV o tempo de injeo determinado pelo kit comercial e registrado no log
TIGasolina o tempo de injeo de gasolina determinado pela UCE original do carro e registrado no log
k a constante de correo fixa entre o tempo de injeo de gasolina e de GNV (ver seo 5.2.2)
FuzzyOut a sada do sistema nebuloso (ver seo 2.5.6)
erro pode ser descrito como a soma dos mdulos das diferenas entre o valor de sada do kit comercial e o valor de
sada gerado a partir da(s) regra(s) nebulosa(s). A funo max retorna o maior valor entre seus operandos e utilizada
para evitar que alguma correo resulte em um multiplicador negativo do tempo e injeo de gasolina, j que na
prtica seria impossvel implementar um tempo de injeo negativo.
O log mais utilizado nos testes foi o aceleracao_0_100_trocaMarcha_3, pois acredita-se que esse log represente a
maior variedade de condies de funcionamento do veculo, e as condies mais importantes.
Como referncia, o erro quando se aplica uma correo fixa de 100% (ou seja, quando o tempo de injeo de GNV
uma cpia exata do tempo de injeo de gasolina) de 480.

5.2.2

Determinao da Correo Fixa (k)

Define-se como k, a correo fixa a ser aplicada sobre o tempo de injeo original do veculo (gasolina/lcool), a
fim de gerar o tempo de injeo de GNV.
Para determinao de k, foram testados os seguintes valores de correo fixa:

De 70% a 130%, variando-se de 0,1 em 0,1%

O valor de k que resultou em um menor erro foi de 99,7%, com um erro de 476.
Pode-se verificar que o tempo de injeo de GNV promovido pelo kit comercial em mdia bem parecido com o
tempo de injeo de gasolina/lcool para o caso especfico do veculo testado (Peugeot 206 1.4)

5.2.3

Determinao dos Conjuntos Nebulosos e suas Funes de Pertinncia

Para determinao das funes de pertinncia, primeiramente foram analisados os logs que acredita-se representem
melhor as diferentes condies de funcionamento do motor:

aceleracao_0_100_trocaMarcha_3;

conmutacao_gasolina_Gas_1;

aceleracao_desengatado_1;

desaceleracao80_40_3Marcha_3;
Para detalhes sobre a obteno dos dados e as condies de funcionamento do veculo durante sua
obteno, consulte a seo 3.3.

A partir da anlise desses logs, foi elaborado o quadro resumo da Tabela 6.


76

Tabela 6: Resumo da faixa de valores de cada sinal

Presso
Flauta (V)
Mx
2,46
2,62
2,62
1,97

Sensor
MAP (V)
Mn
0,50
1,20
0,50
0,65

Mx
3,80
1,50
3,80
1,05

Rotacao (Hz)

Temp (V)

Sonda
Lambda (V)

Mn
0,00
14,00
14,00
30,00

Mn
1,51
2,13
2,13
1,64

Mn
0,00
0,00
0,00
0,00

Mx
73,00
22,00
90,00
70,00

Mx
1,57
2,95
2,20
1,77

Mx
0,85
0,85
0,92
0,05

Centralina
Bico 1 (s)
Mn
0,00
0,00
0,00
0,00

Arquivo
aceleracao_0_100_trocaMarcha_3
conmutacao_gasolina_Gas_1
aceleracao_desengatado_1
desaceleracao80_40_3Marcha_3

Mn
1,48
0,98
1,64
1,51

Mx
0,02
0,01
0,03
0,00

Resumo

1,48 2,62 0,50 3,80 14,00 90,00 1,51 2,95 0,00 0,92 0,00 0,03
Valores que correspondem a situaes especiais (no comuns)

Com base nos valores mnimo e mximo da Tabela 6, na anlise de cada log individualmente e na minha
experincia e base terica individual, foram definidas os conjuntos nebuloso e suas regras de pertinncia da seguinte
forma:

Presso da Flauta:
Tabela 7: Funes de Pertinncia da Presso da Flauta

Limites
Valores
Muito Baixo
Baixo
Mdio
Alto

Formato
Left Func
Left Func
Trapezoidal
Right Func

A
1,15
1,64
1,64
2,13

B
1,48
1,97
1,97
2,46

C
2,13
-

D
2,46
-

1.2
1
0.8
Muito Baixo
0.6

Baixo
Mdio

0.4

Alto
0.2

0.66
0.79
0.92
1.05
1.18
1.31
1.44
1.57
1.71
1.84
1.97
2.10
2.23
2.36
2.49
2.62
2.76
2.89
3.02
3.15

Figura 74: Funes de Pertinncia da Presso da Flauta

Sensor MAP:
Tabela 8: Funes de Pertinncia do Sensor MAP

Limites
Valores
Baixo
Mdio
Alto

Formato
Left Func
Trapezoidal
Right Func

A
1,5
1,15
2,3

B
2
1,65
2,8

C
2,65
-

D
3,15
-

77

1.2
1
0.8
Baixo

0.6

Mdio
0.4

Alto

0.2

0.000
0.200
0.400
0.601
0.801
1.001
1.201
1.401
1.602
1.802
2.002
2.202
2.402
2.603
2.803
3.003
3.203
3.403
3.604
3.804

Figura 75: Funes de Pertinncia do Sensor MAP

Rotao:
Tabela 9: Funes de Pertinncia do Sensor de Rotao

Limites
Valores
Muito Baixo
Baixo
Mdio
Alto

Formato
Left Func
Left Func
Trapezoidal
Right Func

B
10
25
25
55

C
-

15
40
40
70

D
55

70

1.2
1
0.8
Muito Baixo
0.6

Baixo
Mdio

0.4

Alto
0.2

0.0
5.0
10.0
15.0
20.0
25.0
30.0
35.0
40.0
45.0
50.1
55.1
60.1
65.1
70.1
75.1
80.1
85.1
90.1
95.1

Figura 76: Funes de Pertinncia do Sensor de Rotao

Sensor de Temperatura:
Tabela 10: Funes de Pertinncia do Sensor de Temperatura

Limites
Valores
Baixo
Mdio
Alto

Formato
Left Func
Trapezoidal
Right Func

A
1,80
1,80
2,30

B
2,13
2,13
2,62

C
2,30
-

D
2,62
78

1.2
1
0.8
Baixo

0.6

Mdio
0.4

Alto

0.2

1.31
1.41
1.51
1.61
1.71
1.80
1.90
2.00
2.10
2.20
2.30
2.39
2.49
2.59
2.69
2.79
2.89
2.99
3.08
3.18

Figura 77: Funes de Pertinncia do Sensor de Temperatura

Sensor de Sonda Lambda:


Tabela 11: Funes de Pertinncia do Sensor de Sonda Lambda

Limites
Valores
Baixo
Alto

Formato
Trapezoidal
Trapezoidal

A
0,46
0,52

B
0,52
0,46

C
-

D
-

1.2
1
0.8
0.6

Baixo
Alto

0.4
0.2

0.00
0.05
0.10
0.15
0.20
0.25
0.30
0.34
0.39
0.44
0.49
0.54
0.59
0.64
0.69
0.74
0.79
0.84
0.89
0.94

Figura 78: Funes de Pertinncia do Sensor de Sonda Lambda

Centralina Bico 1 (Tempo de Injeo Original):


Tabela 12: Funes de Pertinncia do Sensor de Presso da Flauta

Limites
Valores
Baixo
Mdio
Alto

Formato
Trapezoidal
Trapezoidal
Trapezoidal

A
0,003
0,003
0,018

B
0,009
0,009
0,012

C
0,012
-

D
0,018
-

79

1.2
1
0.8
Baixo

0.6

Mdio
0.4

Alto

0.2

0.000
0.002
0.003
0.005
0.006
0.008
0.009
0.011
0.012
0.014
0.015
0.017
0.018
0.020
0.021
0.023
0.024
0.026
0.027
0.029

Figura 79: Funes de Pertinncia do Sensor de Presso da Flauta

5.2.4

Determinao dos Predecessores

Aps a determinao das funes de pertinncia e antes de determinar a base de regras, foi necessrio determinar
quais conjuntos de predecessores deveriam compor as regra. Para isso, foram feitos diversos teste para se desenvolver
uma intuio de quais predecessores deveria ser combinados.
O mais importante dessa etapa compreender que a determinao dos predecessores foi feita de forma emprica.
Foram feitos inmeros testes, variando-se as estratgias e parmetros intuitivamente e verificando qual caminho
produzia melhores resultados.
Alguns dos testes feitos foram:

Teste de todas as possibilidades de regras com 1 predecessor, sendo esses predecessores relativos s
grandezas:
o

Presso da Flauta, Sensor MAP, Rotao, Sensor de Temperatura, Sensor de Sonda Lambda e Sensor
de Presso da Flauta;

Testando-se as condies:
o

Se (predecessor) e Se no (predecessor)

Para todas as funes de pertinncia de cada grandeza.


As sadas das regras representavam uma variao porcentual no tempo de injeo para mais ou para menos.
Para cada regra, foram testadas:
o

Sada entre -20% e 20%, com variao de 1% em 1%.

Teste de todas as possibilidades de regras com 2 predecessores, sendo esses predecessores relativos s
grandezas:
o

Presso da Flauta, Sensor MAP, Rotao, Sensor de Temperatura, Sensor de Sonda Lambda e Sensor
de Presso da Flauta;

Testando-se as condies:
o

Se (predecessor 1) e (predecessor 2);

Se no (predecessor 1) e (predecessor 2);

Se (predecessor 1) e no (predecessor 2);

Se no (predecessor 1) e no (predecessor 2).

Para todas as funes de pertinncia de cada grandeza.


As sadas das regras representavam uma variao porcentual no tempo de injeo para mais ou para menos.
Para cada regra, foram testadas:
80

Sada entre -20% e 20%, com variao de 1% em 1%.

Como resultado dos testes, verificou-se que os conjuntos nebulosos seguintes grupos de grandezas produziam
resultados expressivos (baixo erro) e geralmente apareciam associados:

Rotao, Presso Flauta e TIGasolina;

Sonda Lambda, Presso Flauta e TIGasolina;

Os predecessores dessas grandezas foram ento escolhidos para compor a base de regras, associados conforme
descrito acima.

5.2.5

Criao da Base de Regras

Com os predecessores escolhidos, a deciso a se tomar passou a ser quais predecessores deveriam ser associados.
Embora na anlise feita na seo 5.2.4 algumas associaes surgissem com mais freqncia e mais fora (como a
regra Se no Presso da Flauta Mdia e TI Mdio ento correo -6%, com um erro resultante de 434), optouse por fazer todas as associaes possveis dentre os grupos de grandezas j definidos:

Rotao, Presso Flauta e TIGasolina;

Sonda Lambda, Presso Flauta e TIGasolina;

O intuito foi conseguir o melhor resultado possvel para esse grupo de grandezas, abrangendo todas as situaes de
funcionamento do veculo no que diz respeito a elas.
Por fim, decidiu-se por utilizar apenas uma condio:

Se (predecessor 1) e (predecessor 2) e (predecessor 3) ento (sada).

Como foram implementadas todas as combinaes possveis, acredita-se que a falta de uma regra com um formato
diferente seria suprida por uma ou mais regras com o formato definido acima. Por exemplo, a regra:

Se rotao baixa e presso de flauta no alta e TIGasolina baixo

Teria sua falta suprida pelas regras:

Se rotao baixa e presso de flauta baixa e TIGasolina baixo

Se rotao baixa e presso de flauta mdia e TIGasolina baixo

J que essas regras abrangem os casos em que presso da flauta no alta.


A determinao dos valores de sada de cada regra foi feita novamente por meio de um algoritmo computacional
que testasse vrias possibilidades. O algoritmo funciona da seguinte forma:
1. A sada de todas as regras iniciada com 0% de correo.
2. Faa enquanto houver uma melhor de pelo menos 0,2% no erro
2.1. Para todas as funes de pertinncia de Rotao
2.1.1. Para todas as funes de pertinncia de Presso de Flauta
2.1.1.1.

Para todas as funes de pertinncia de TIGasolina

2.1.1.1.1.
Calcule o grau de pertinncia da regra: Se (funo de pertinncia de Rotao)
e (funo de pertinncia de Presso da Flauta) e (funo de pertinncia de TIGasolina)
2.1.1.1.2.

Varie a sada da regra de -5% a +5%, com passos de 1%

2.1.1.1.3.

Calcule o erro resultante para cada sada

2.1.1.1.4.

Faa com que a sada da regra seja igual quela que resulte no menor erro

2.2. Para todas as funes de pertinncia de Sonda Lambda


2.2.1. Para todas as funes de pertinncia de Presso de Flauta
2.2.1.1.

Para todas as funes de pertinncia de TIGasolina

2.2.1.1.1.
Calcule o grau de pertinncia da regra: Se (funo de pertinncia de Sonda
Lambda) e (funo de pertinncia de Presso da Flauta) e (funo de pertinncia de
TIGasolina)
81

2.2.1.1.2.

Varie a sada da regra de -5% a +5%, com passos de 1%

2.2.1.1.3.

Calcule o erro resultante para cada sada

2.2.1.1.4.

Faa com que a sada da regra seja igual quela que resulte no menor erro

Ou seja, a cada iterao as sadas de todas as regras eram revistas e podiam sofre uma variao de at 5% para mais
ou para menos. Com isso, todas as regras foram sofrendo pequenas variaes em suas sadas a cada iterao, fazendo
com que a base de regra ficasse cada vez mais consistente. Esse algoritmo garante ainda que a cada iterao o erro
resultante da base de regras seja sempre menor ou igual ao erro da iterao anterior, j que a sada de cada regra s
sofre alterao quando essa alterao resulta em um melhor desempenho (menor erro).
O resultado desse algoritmo est representado nas Tabela 13 e Tabela 14.
Para facilitar a anlise do resultado, as Tabela 15, Tabela 16, Tabela 17 e Tabela 18 foram criadas. Nessas tabelas,
apresentado o valor mdio das sadas das regras nas quais est presente a funo de pertinncia. Algumas
observaes:

16 das 19 regras com sada 20% tem o predecessor "TI Baixo". Esse fato est em acordo com a alta
mdia das sadas das regras que contm esse predecessor (60%). Ou seja, quando o TIGasolina baixo, a
correo deve ser maior;

10 das 14 regras com sada - 20% tem o predecessor "Presso da Flauta Baixa". Esse fato est em
acordo com a baixa mdia das sadas das regras que contm esse predecessor (-54%) . Ou seja, quando a
Presso da Flauta est baixa, a correo deve ser menor. bastante provvel que o sensor de presso da
flauta seja inversamente proporcional e que valores de sada baixos do sensor representem valores altos de
presso da flauta, exigindo uma diminuio do tempo de injeo de GNV;

Destacam-se as regras "Presso da Flauta Alta" e "Sonda Lambda Alta", com altas mdias: 27% e 33%,
respectivamente;

Destaca-se as regras "TI Alto", com baixa mdia: -36%;

82

Tabela 13: Base de Regras para Rotao, Presso da Flauta e TIGasolina

Rotao
Muito Baixa
Baixa
Mdia
Alta
Muito Baixa
Baixa
Mdia
Alta
Muito Baixa
Baixa
Mdia
Alta
Muito Baixa
Baixa
Mdia
Alta
Muito Baixa
Baixa
Mdia
Alta
Muito Baixa
Baixa
Mdia
Alta
Muito Baixa
Baixa
Mdia
Alta
Muito Baixa
Baixa
Mdia
Alta
Muito Baixa
Baixa
Mdia
Alta
Muito Baixa
Baixa
Mdia
Alta
Muito Baixa
Baixa
Mdia
Alta
Muito Baixa
Baixa
Mdia
Alta

Presso da Flauta
Muito Baixa
Muito Baixa
Muito Baixa
Muito Baixa
Baixa
Baixa
Baixa
Baixa
Mdia
Mdia
Mdia
Mdia
Alta
Alta
Alta
Alta
Muito Baixa
Muito Baixa
Muito Baixa
Muito Baixa
Baixa
Baixa
Baixa
Baixa
Mdia
Mdia
Mdia
Mdia
Alta
Alta
Alta
Alta
Muito Baixa
Muito Baixa
Muito Baixa
Muito Baixa
Baixa
Baixa
Baixa
Baixa
Mdia
Mdia
Mdia
Mdia
Alta
Alta
Alta
Alta

TI
Output (%)
Baixo
0%
Baixo
0%
Baixo
106%
Baixo
100%
Baixo
23%
Baixo
-19%
Baixo
36%
Baixo
6%
Baixo
-6%
Baixo
23%
Baixo
155%
Baixo
155%
Baixo
55%
Baixo
34%
Baixo
155%
Baixo
155%
Mdio
0%
Mdio
0%
Mdio
0%
Mdio
0%
Mdio
-119%
Mdio
-148%
Mdio
-155%
Mdio
-45%
Mdio
45%
Mdio
6%
Mdio
-2%
Mdio
2%
Mdio
59%
Mdio
-8%
Mdio
-5%
Mdio
2%
Alto
0%
Alto
0%
Alto
0%
Alto
0%
Alto
0%
Alto
0%
Alto
-155%
Alto
-155%
Alto
-155%
Alto
-52%
Alto
2%
Alto
5%
Alto
-155%
Alto
-14%
Alto
2%
Alto
0%

83

Tabela 14: Base de Regras para Sonda Lambda, Presso da Flauta e TIGasolina

Sonda Lambda
Baixa
Alta
Baixa
Alta
Baixa
Alta
Baixa
Alta
Baixa
Alta
Baixa
Alta
Baixa
Alta
Baixa
Alta
Baixa
Alta
Baixa
Alta
Baixa
Alta
Baixa
Alta

Presso da Flauta
Muito Baixa
Muito Baixa
Baixa
Baixa
Mdia
Mdia
Alta
Alta
Muito Baixa
Muito Baixa
Baixa
Baixa
Mdia
Mdia
Alta
Alta
Muito Baixa
Muito Baixa
Baixa
Baixa
Mdia
Mdia
Alta
Alta

TI
Output (%)
Baixo
117%
Baixo
0%
Baixo
-23%
Baixo
19%
Baixo
-16%
Baixo
155%
Baixo
55%
Baixo
155%
Mdio
0%
Mdio
0%
Mdio
-155%
Mdio
69%
Mdio
6%
Mdio
0%
Mdio
9%
Mdio
0%
Alto
0%
Alto
0%
Alto
-155%
Alto
0%
Alto
-25%
Alto
0%
Alto
-17%
Alto
0%

Tabela 15: Resumo das sadas dos Conjuntos Nebulosos de Rotao

Rotao
Muito Baixa
Baixa

Mdia (%)
-21%
-15%

Mdia

12%

Alta

19%

Tabela 16: Resumo das sadas dos Conjuntos Nebulosos de Sonda Lambda

Sonda Lambda Mdia (%)


Baixa
Alta

-17%
33%

Tabela 17: Resumo das sadas dos Conjuntos Nebulosos de Presso da Flauta

Presso da Flauta Mdia (%)


Muito Baixa
Baixa

18%
-54%

Mdia

17%

Alta

27%

84

Tabela 18: Resumo das sadas dos Conjuntos Nebulosos de TIGasolina

TI

Mdia (%)

Baixo
Mdio

60%
-18%

Alto

-36%

O erro resultante dessa base de regras foi de 334, uma melhora de ~30%. Embora no parea muito significativo,
esse resultado pode ser melhor analisado a partir do grfico apresentado na Figura 80. Nele, pode-se ver claramente
que o TI calculado pela base de regras criada (em vermelho) acompanha na maior parte dos casos o clculo feito pelo
kit comercial (em azul), em contraste com as divergncias apresentadas em algumas situaes entre o TI de injeo de
gasolina e o Tempo de Injeo de GNV.

Figura 80: Comparao entre os tempos de injeo de gasolina, de gs do kit comercial e o calculado pelo sistema de
inferncia nebuloso

5.3

Concluses

A mtrica criada para o clculo da eficincia da base de regras nebulosa (seo 5.2.1) se baseia na diferena entre o
sinal gerado por essa base de regras e o sinal do kit comercial instalado no veculo, em uma tentativa de fazer com que
a base de regras torne o funcionamento do sistema desenvolvido o mais parecido possvel com o funcionamento do kit
comercial. Essa mtrica deve ser validada pela avaliao prtica da eficincia da base de regras.
Outro ponto a se considerar que segundo essa mesma mtrica, a melhoria promovida pela base de regras no foi
muito significativa, apesar das inmeras tentativas em se definir bases de regras diferentes. No entanto, a anlise
grfica do resultado (Figura 80) cria uma expectativa positiva para o teste dessa estratgia.

85

O PROJETO DO FIRMWARE DO CONTROLADOR

O firmware de um produto eletrnico o programa inserido diretamente no algum componente do hardware.


Embora no exista uma diviso formal entre firmware e software, o primeiro normalmente associado a componentes
eletrnicos que normalmente no sofrem atualizaes depois de gravados no componente e realizam tarefas muito
especficas, incluindo acesso ao hardware.
Nessa seo ser apresentado o firmware do produto desenvolvido, partindo dos conceitos que guiaram o
desenvolvimento desse firmware (seo 6.1), passando pelo modo em que o cdigo foi estruturado (seo 6.2), pela
estratgia de escalonamento das tarefas (seo 6.4), pela aplicao (seo 6.5) e finalizando com uma seo sobre as
funes criadas (seo 6.6).

6.1

Conceitos que Guiaram o Desenvolvimento

No desenvolvimento de um firmware existem preocupaes que devem ser levadas em considerao desde o
primeiro momento:

Alm de desempenhar a funo qual se prope, o firmware deve ser de fcil manuteno para correo de
bugs, evoluo de estratgias de funcionamento e incluso de novas funcionalidades;

O cdigo deve ser estruturado de maneira a evitar que trechos de cdigo sejam replicados em diferentes
partes, isso tem dois motivos principais:

6.2

Uma vez que seja escrito um trecho que desempenhe uma determinada funo e que esse trecho
tenha sido testado e validado, ele pode ser utilizado com segurana por todo o restante do cdigo.
Alm disso, quando o trecho precisar ser corrigido ou otimizado, ser necessrio que essa
modificao seja aplicada em apenas um lugar do cdigo, evitando que algum trecho seja
esquecido e conseqentemente no corrigido ou otimizado;

Trechos replicados de cdigo aumentam o mesmo, consumindo mais memria de programa.

O cdigo deve ser estruturado de uma maneira que uma eventual troca de microcontrolador possa ser feita
com o mximo de reutilizao de cdigo possvel. Isso significa que os trechos de cdigo em que haja
acesso aos registradores devem ser isolados para que apenas esses devam ser reescritos em caso de troca do
microcontrolador (ver seo 6.2).

Estruturao do Cdigo

A estruturao de cdigo foi feita de uma maneira a se obter diferentes nveis de abstrao para a execuo de cada
tarefa, a Figura 81 ilustra como foi feita essa estruturao:

libATMega32 O cdigo nessa camada faz a interface do restante do cdigo com os registradores do
microcontrolador, incluindo o acesso ao hardware como as interfaces de comunicao UART e SPI, o
acesso s IOs e etc.
No caso de uma troca de microcontrolador, essa a nica camada que deve ser completamente reescrita.
Para que isso seja possvel, a interface deve ser mantida (MCUDrivers(.h)).
Essa camada chamada pelas camadas APPs e DEVDrivers e se utiliza de algumas funcionalidades da
camada Common (ver mais adiante);

libCommon Nessa camada esto algumas funcionalidades que podem ser utilizadas por vrios trechos
no cdigo, mas que no se encaixam em nenhuma das outras camadas. Funes matemticas e de
manipulao de dados e de string so exemplos de funes dessas camadas.
Essa camada pode ser utilizada por todas as outras camadas (APPs, DEVDrivers e MCUDrivers) e no
deve acessar nenhuma outra camada;

libDevDrivers Essa camada possibilita camada de aplicao (APPs) o acesso a funcionalidades de


dispositivos conectados ao hardware, se utilizando para isso da camada MCUDrivers para acesso de
baixo nvel ao hardware. Os dispositivos so o console (debug) CONSOLE.c e CONSOLE.h memria
EEPROM (memria externa) EEPROM.c e EEPROM.h e os bicos injetores BICOS.c e BICOS.h.

GNJet Nessa camada se encontra a lgica de funcionamento do produto em alto nvel. As funes
utilizadas por essa camada se utilizam da abstrao criada pelas camadas DEVDrivers, MCUDrivers e
86

Common.

Figura 81: Estruturao de Cdigo

6.3

Bibliotecas desenvolvidas

As bibliotecas libDevDrivers, libCommon, libFuzzy e libATMega32 foram desenvolvidas com o intuito de


servirem como base para o desenvolvimento da aplicao, possibilitando que seu cdigo fosse orientado
implementao das funcionalidades do produto, sem a necessidade de se ter a preocupao com acesso a registradores
e ao hardware.
No Anexo I so apresentados os prottipos das funes criadas, que no so detalhadas
detalhada aqui para manter a
organizao desse documento.
Todas as funes implementadas pelas bibliotecas foram testadas individualmente para garantir seu correto
funcionamento quando a aplicao as invocasse.
As sees a seguir trazem detalhes das funcionalidades
funcionalidades implementadas em cada biblioteca.

6.3.1

libDevDrivers

A biblioteca libDevDrivers implementa as funcionalidades de dispositivos externos, sendo eles:

Bicos de Gs Essa biblioteca foi criada para facilitar


facilitar para a aplicao as tarefas de leitura do tempo de
injeo
eo de combustvel original, injeo de gs e gerncia da estratgia Peak and Hold.
Hold As funcionalidades
implementadas por essa biblioteca so:
o

Aps inicializada, a biblioteca configura a mquina de estados de leitura de injeo e acionamento


dos bicos para ser chamada automaticamente a cada 96us.
96us A mquina de estados ilustrada na
Figura 82 realiza a leitura do tempo de injeo original e calcula o tempo de injeo de Gs a partir
de uma correo estabelecida pela aplicao.
aplicao

87

Figura 82: Mquinas de estados de injeo

A mquina de estados funciona da seguinte forma:




A mquina de estados permanece no estado Idle at que se inicie uma injeo do


combustvel original.

Assim que o incio da injeo do combustvel original detectado, a mquina vai para o
estado
stado Ler/Injetar, no qual realizada a leitura do tempo de injeo do combustvel
original e o acionamento dos bicos injetores de gs na estratgia Peak and Hold. O tempo
de injeo de gs calculado a partir do tempo de injeo do ltimo ciclo, corrigido
corri
de
-100%
100% a 300% - valor estabelecido pela aplicao.

Se a injeo de combustvel original finalizar antes da injeo de GNV, a mquina vai


para o estado Injetar, no qual a nica funo desempenhada o acionamento dos bicos
injetores de gs.
Nesse caso, aps o trmino do ciclo de injeo de GNV, a mquina vai para o estado
Idle.

Se a injeo gs finalizar antes da injeo de combustvel original, a mquina vai para o


estado Ler, no qual a nica funo desempenhada a leitura do tempo de injeo
i
de
combustvel original.
Nesse caso, aps o trmino do ciclo de injeo de combustvel original, a mquina vai para
o estado Idle.

Contadores internos biblioteca fazem a gerncia da estratgia Peak and Hold mesmo
quando a injeo dividida entre
entre os estados Ler/Injetar e Injetar.

As tarefas de leitura do tempo de injeo de combustvel original e acionamento dos bicos de gs


foram includas em uma nica mquina de estado para facilitar o sincronismo entre os ciclos de
injeo.

Como explicado acima, a biblioteca permite ao usurio (no caso aplicao) determinar a correo
sobre o tempo de injeo de gasolina utilizada para determinar o tempo de injeo de GNV;

A biblioteca implementa tambm o acesso ao circuito de comutao de injeo,


inje
permitindo dessa
forma que a aplicao determine qual combustvel ser injetado (original
original ou GNV);

Console Essa biblioteca foi criada para facilitar para a aplicao a tarefa de comunicao com o
computador via serial. As funcionalidades implementadas por essa biblioteca so:
so
o

Durante a inicializao do Console deve-se determinar sua taxa de comunicao (Baud


(
Rate) e se o
Console ir ecoar ou no
no os bytes recebidos. A qualquer momento essas configuraes podem ser
alteradas por funes dedicadas a isso;

Pode-se realizar a leitura


eitura via serial dos seguintes formatos:


String, inteiro sem sinal de 8 bits, inteiro sem sinal de 16 bits, hexadecimal de 8 bits e
hexadecimal de 16 bits.
88

Pode-se realizar o envio via serial dos seguintes formatos:




String, inteiro sem sinal de 8 bits, inteiro sem sinal de 16 bits, inteiro com sinal de 16 bits,
hexadecimal de 8 bits e hexadecimal de 16 bits.

possvel habilitar ou desabilitar o envio de dados via console de cada bloco do firmware por vez.
Para isso, todo o envio via console deve ser identificado com o bloco que deseja enviar o dado.
Essa funcionalidade pode ser utilizada para habilitar ou desabilitar o envio de log de aes de
blocos de firmware.

A biblioteca prev ainda um funcionamento no tempo real do console, onde os bytes s so


efetivamente enviados e recebidos quando o usurio da biblioteca (no nosso caso, a aplicao)
invoca a funo criada para esse fim. Isso d a possibilidade de impedir que o envio de grandes
volumes de dados via Console bloqueie a execuo do cdigo.

EEPROM Essa biblioteca foi criada para permitir aplicao escrever e ler dados da memria externa
EEPROM de maneira transparente. As funcionalidades implementadas por essa biblioteca so:
o

Escrita de um byte em um endereo especfico da memria;

Escrita de vrios bytes a partir de um endereo especfico da memria;

Leitura de um byte em um endereo especfico da memria;

Leitura de vrios bytes a partir de um endereo especfico da memria;

Leitura do status do funcionamento biblioteca (ocupado ou disponvel);

Para evitar que os ciclos de leitura e escrita na EEPROM travem o funcionamento do cdigo, essas
tarefas so feitas a partir da execuo de uma mquina de estados que deve ser invocada de tempos
em tempos quanto maior a freqncia de execuo dessa mquina de estados, mais rapidamente
as tarefas executadas por ela sero finalizadas.
A descrio de tal mquina de estados no pertinente por se tratar de uma aplicao bem
especfica e no pertinente ao assunto abordado por esta dissertao;

6.3.2

libCommon

A biblioteca libCommon implementa funcionalidades gerais importantes para a execuo de diversas tarefas. Por
seu carter abrangente de utilizao, essas funcionalidades no puderam ser implementadas em nenhuma outra
biblioteca. As funcionalidades implementadas por essa biblioteca foram:

Permitir o acesso a um bit especfico de uma palavra de maneira intuitiva e transparente;

Permitir setar ou resetar de 1 a 8 bits de uma palavra de maneira intuitiva e transparente;

Converter nmeros de 8 ou 16 bits do formato hexadecimal para o formato decimal;

Repetir qualquer operao at 16 vezes;

Comparar duas strings para verificar se so iguais;

Verificar o tamanho de uma string;

6.3.3

libFuzzy

A libFuzzy foi criada para permitir a criao e manipulao de conjuntos e regras nebulosas (fuzzy) de forma
intuitiva. As funcionalidades implementadas por essa biblioteca foram:

Criao de at 5 conjuntos nebulosos (fuzzy) por grandeza manipulada em lgica nebulosa (fuzzy);

Para cada conjunto nebuloso, configurao de formato entre:


o

Funo Direita, Funo Esquerda e Funo Trapezoidal (ver seo 2.5.2)

Clculo do grau de pertinncia de cada conjunto nebuloso a partir do valor passado;

89

6.3.4

libATMega32

A libATMega32 foi criada com dois objetivos: permitir o acesso aos perifricos do microcontrolador ATMega32
de maneira transparente para a aplicao e permitir que a troca de microcontrolador seja transparente aplicao e s
demais bibliotecas, sendo necessrio reescrever o cdigo apenas dessa biblioteca.
Os perifricos abrangidos por essa biblioteca e as respectivas funcionalidades implementadas esto listadas adiante.
Muitas das funcionalidades foram implementadas tanto por macros quanto por funes, a fim de possibilitar a rpida
execuo das mesmas quando necessrio.

Conversor Analgico Digital (ADC):


o

Habilitar o ADC;

Desabilitar o ADC;

Iniciar uma converso;

Verificar se a converso j foi finalizada;

Selecionar o canal a ser utilizado na converso;

Selecionar o modo entre:




Selecionar a preciso do ADC entre 8 e 10 bits;

Selecionar a referncia para converso entre:




Interrupo Externa:
o

Habilitar uma interrupo externa especfica;

Desabilitar uma interrupo externa especfica;

Selecionar a fonte de disparo da interrupo entre:

2, 4, 8, 16, 32, 64 e 128;

Realizar a leitura da converso AD em 8 ou 10 bits;

Referncia externa, referncia interna (AVCC) e referncia da fonte LDO interna (2,56V);

Selecionar a diviso do clock interno para gerao do clock utilizado na converso entre:


Converso nica, converso contnua, converso temporizada (com possibilidades de


diferentes fontes de temporizao);

Borda de subida, borda de descida, ambas bordas de transio, nvel lgico alto e nvel
lgico baixo;

Adicionar uma funo de callback para a interrupo (pode haver mais de uma);

Comunicao I2C:
o

Gerar sinal de start;

Gerar sinal de stop;

Enviar um byte;

Ler um byte;

Configurar a gerao ou no de ACK;

A comunicao I2C feita por uma mquina de estados que deve ser chamadas de tempos em
tempos para que as aes sejam efetivas. Isso foi feito para evitar que o envio ou recebimento de
um byte que por ventura esteja demorando muito tempo bloqueie o funcionamento do cdigo;

Entradas e Sadas (IO):


o

Para todos os casos, uma porta se refere a um conjunto de pinos;

Habilitar ou desabilitar o uso de pull-ups;

Configurar o pull-up de um pino;

Configurar o pull-up de uma porta;


90

Selecionar a direo de um pino (entrada ou sada);

Selecionar a direo de uma porta (entrada ou sada);

Ler a direo de um pino (entrada ou sada);

Ler a direo de uma porta (entrada ou sada);

Configurar a sada de um pino (0 ou 1);

Configurar a sada de uma porta (0 ou 1);

Ler o estado de entrada de um pino (0 ou 1);

Ler o estado de entrada de uma porta (0 ou 1);

Timer 0:
o

Selecionar a fonte de clock entre:




Selecionar se timer ir ou no ter um pino de sada (para gerar um sinal de clock ou PWM);

Selecionar o nvel em que ir acontecer o evento de compare (ver mais detalhes no datasheet do
componente);

Selecionar o valor mximo do timer antes de reiniciar a contagem;

Acrescentar uma funo de callback ao evento de overflow;

Acrescentar uma funo de callback ao evento de compare;

Ler o valor do timer;

Timer 1:
o

Selecionar a fonte de clock entre:




Desabilitada, interna, interna dividida por 8, 64, 256 ou 1024, externa na borda de subida e
externa na borda de descida;

Selecionar se timer ir ou no ter um pino de sada (para gerar um sinal de clock ou PWM);

Selecionar o nvel em que ir acontecer o evento de compare dos canais A e B (ver mais detalhes
no datasheet do componente);

Selecionar o valor mximo do timer antes de reiniciar a contagem;

Acrescentar uma funo de callback ao evento de overflow;

Acrescentar uma funo de callback ao evento de compare do canal A;

Acrescentar uma funo de callback ao evento de compare do canal B;

Ler o valor do timer;

Timer 2:
o

Selecionar a fonte de clock entre:




Desabilitada, interna, interna dividida por 8, 64, 256 ou 1024, externa na borda de subida e
externa na borda de descida;

Desabilitada, interna, interna dividida por 8, 32, 64, 128, 256 ou 1024;

Selecionar se timer ir ou no ter um pino de sada (para gerar um sinal de clock ou PWM);

Selecionar o nvel em que ir acontecer o evento de compare (ver mais detalhes no datasheet do
componente);

Selecionar o valor mximo do timer antes de reiniciar a contagem;

Acrescentar uma funo de callback ao evento de overflow;

Acrescentar uma funo de callback ao evento de compare;

Ler o valor do timer;

UART:
91

6.4

Inicializar a UART, selecionando:




Taxa de comunicao (Baud Rate);

Nmero de bits utilizados na transmisso de uma palavra: 5, 6, 7, 8 ou 9;

Paridade da comunicao: desabilitada, par ou mpar;

Nmero de stopbits: 1 ou 2;

Modo sncrono ou assncrono;

Polaridade do clock para aquisio do dados (borda subida ou descida) s para o caso da
comunicao sncrona;

Habilitao ou no da interrupo por recebimento de byte, e a funo de callback em caso


de habilitao;

Habilitao ou no da interrupo por envio de byte, e a funo de callback em caso de


habilitao;

Habilitar e desabilitar a UART;

Enviar um byte;

Receber um byte;

Limpar o buffer de recebimento da UART;

Escalonamento de Tarefas

Durante o funcionamento do firmware, vrias tarefas esto em curso simultaneamente:

Leitura do Sensor MAP;

Leitura do sensor de Sonda Lambda;

Leitura do Sensor de Rotao;

Leitura do Sinal de Injeo Original;

Simulao do MAP;

Comutao de MAP;

Simulao da Sonda Lambda;

Comutao de Sonda Lambda;

Comutao do Simulador de Bico;

Sinais de Injeo Gs;

Acesso EEPROM;

Acesso comunicao Serial;

Uma vez que no possvel executar vrios trechos de cdigo simultaneamente, pois existe apenas um ncleo de
processamento, o tempo de processamento deve ser divido para a execuo de cada uma das tarefas descritas acima.
Para isso, foram utilizados dois timers presentes no microcontrolador:

Timer 1 Timer de 16 bits com 2 sadas de compare (2 canais de PWM) e prescaler configurvel;

Timer 2 Timer de 8 bits com 1 sada de compare (1 canal de PWM) e prescaler configurvel;

Todos os timers so capazes de gerar interrupo tanto em eventos de compare quanto em eventos de overflow.
A Tabela 19 sintetiza como foi feito o escalonamento das tarefas, as colunas dessa tabela so:

Rotinas de Acesso ao Hardware as rotinas que devem ser escalonadas;

Temporizao o perodo de tempo entre execues de uma tarefa seguido da freqncia do PWM que
gera o sinal, quando aplicvel. Esses tempos foram definidos da seguinte maneira:
o

32 us para leitura do Sensor de Rotao e 31.250 Hz para simulao dos sensores MAP e Sonda
Lambda:
92

O Timer 1 utilizado tanto para invocar a funo de leitura do sensor de rotao em seu
evento de overflow quanto para gerar o sinal de PWM para simulao dos sensores de
Sonda Lambda e MAP. Por esse motivo, era necessrio que timer contasse at no mnimo
255, o que resulta em uma resoluo de 8 bits para simulao dos sensores.
Utilizando a freqncia interna de 16 MHz, o timer iria sofrer overflow a uma freqncia
de 16.000.000/256 = 62.500 Hz freqncia do PWM - ou em perodos de 1/62.500 =
16us perodo de chamada da funo de leitura do sensor de rotao. O valor de 16us foi
utilizado inicialmente como perodo dessa tarefa, no entanto, testes demonstraram que o
processamento no era suficiente para executar essa tarefa a 16us, e esse valor teve que ser
revisto.
Configurou-se ento o timer para contar at 511, elevando a resoluo do PWM para 9
bits, fazendo os canais de PWM operar a uma freqncia de 31250 e fazendo a rotina de
leitura do sensor de rotao ser chamada a cada 32 us.
o

96 us para leitura do sinal de injeo original e acionamento dos bicos de gs:


Com o intuito de otimizar o uso dos timers, optou-se por utilizar-se tambm o Timer 1
para essa tarefa, mas nesse caso a rotina promove uma diviso de tempo internamente,
executando o seu algoritmo apenas a cada 3 eventos de overflow do Timer 1. Isso foi feito
porque essa rotina demanda mais processamento e no seria possvel execut-la a cada
32us. Adicionalmente, considerando que o tempo mnimo de injeo gasolina/lcool
encontrado foi de 1ms (ver seo 3.3.4.5), um perodo de 96us (32us x 3) garante uma
preciso melhor que 10% para leitura do sinal, o que imaginou-se ser suficiente.

7.812,5 Hz para acionamento do bico de gs no estado Hold:


Na seo 3.3.4.1, observou-se que a freqncia de acionamento do bico injetor no estado
Hold por parte do kit comercial instalado de 10kHz e que o duty cicle de 34%. No
entanto, o nico timer presente no microcontrolador que permite configurao de duty
cicle e de freqncia do PWM o Timer 1, que como j vimos foi utilizado para as rotinas
de leitura do sensor de rotao, gerao de PWM para simulao dos sensores MAP e de
Sonda Lambda, leitura do sinal de injeo original e acionamento dos bicos de gs. Os
outros timers presentes no microcontrolador permitem a configurao de apenas um dos
parmetros: duty cicle ou freqncia do PWM, pois configura-se ou o valor mximo de
contagem do timer, que determina a freqncia de overflow, ou o valor de compare, que
determina o duty cicle. Como o importante do estado hold manter a corrente de atuao
mais baixa do que no estado peak e o duty cicle de 34% essencial para isso, a freqncia
teve que ser selecionada a partir de preescalers permitidos pelo microcontrolador.
O timer selecionado foi o Timer 0. Como o valor mximo de contagem no pode ser
definido, ele fica sendo igual a 255 (pois o timer de 8 bits), o que naturalmente causa
uma diviso da freqncia interna por 256, criando uma freqncia de overflow de
16.000.000/256 = 62.500 Hz. Para diminuir essa freqncia, existem os preescalers
internos, que no caso do Timer 0 podem ser: 8, 64, 256 ou 1024. O valor que resulta em
uma freqncia mais prxima do kit comercial instalado o preescaler de 8, com uma
freqncia resultante de 62.500/8 = 7.812,5 Hz.

Tempo Real? indica se a tarefa ou no de tempo real, ou seja, se a tarefa precisa ser executada em um
momento especfico ou se o seu adiamento por um curto perodo de tempo no incorre em prejuzo ao
funcionamento do produto;

Arquivo de Acesso indica em qual arquivo est a tarefa.

Timer a ser utilizado traz o timer adotado para a temporizao da tarefa. O timer escolhido vem sempre
acompanhado de algumas letras:
o

Ov indica que a tarefa deve ser executada no overflow do timer;

OC indica que o sinal gerado por um PWM a partir de um evento de compare do timer.
Quando acompanhando de uma letra, essa letra indica qual canal do compare utilizado para
gerar o PWM.

93

Tabela 19: Escalonamento das tarefas

Rotinas de Acesso ao
Hardware:
Leitura do Sensor MAP
Leitura do sensor de
Sonda Lambda
Leitura do Sensor de
Rotao
Leitura do sinal de
Injeo original

Granularidade

Tempo Real?

Arquivo de Acesso:

Timer a ser utilizado

Fundo Rpido

Entradas
No
MAP.c

Fundo Rpido

No

SenLambda.c

32 us

Sim

SenRot.c

Timer 1 Ov

96 us

Sim

Inj.c

Timer 1 Ov (x3)

No

MAP.c

- ; Timer 1 OCA

No

MAP.c

No

SenLambda.c

- ; Timer 1 OCA

No

SenLambda.c

No
Sim

Inj.c
Inj.c

Timer 1 Ov (x3); Timer 2 OC

Sadas
Simulao do Sensor
Fundo Rpido;
MAP
31.250 Hz
Comutao de Sensor
MAP
Pontual
Simulao do sensor de
Fundo Rpido;
Sonda Lambda
31.250 Hz
Comutao do sensor de
Sonda Lambda
Pontual
Comutao do Simulador
de Bico
Pontual
Sinais de Injeo Gs
96 us; 7.812,5 Hz

Interfaces
Acesso EEPROM
Pontual
No
EEPROM.c
Serial
Pontual
No
CONSOLE.c
- Quando dois timers esto atribudos a um sinal, o primeiro usado para atualizar seu valor e o segundo para
gerar o seu PWM
- Para o caso especfico do sinal de injeo, a sada pode ser um valor lgico (repouso ou Peak) ou um PWM
(Hold)
- O nico timer em que possvel determinar seu valor mximo (TOP) e o valor de comparao (Compare) o
Timer 1
- Quando h um fato multiplicativo na coluna "Timer a ser utilizado", a rotina ser executada uma vez a cada
"fator de multiplicao" vezes que ocorrer o evento do timer

6.5

A Aplicao

A aplicao a parte do cdigo que trata da parte central do funcionamento do produto, utilizando, coordenando e
configurando as funcionalidades disponveis a partir das bibliotecas criadas.
A funo da aplicao deste produto estabelecer a correo a ser aplicada ao tempo de injeo de combustvel
original para determinao do tempo de injeo de GNV a partir da leitura dos sensores e da aplicao de uma lgica
nebulosa a partir dessa leitura.
A Figura 83 traz um fluxograma que ilustra como foi elaborada a aplicao. A rotina repetida to rpido quanto
possvel, utilizando todo o tempo ocioso de processamento do microcontrolador.

94

Figura 83: Fluxograma da Aplicao

6.6

Funes Criadas

No Anexo I so apresentados os prottipos de todas as funes e macros criadas que integram o firmware do
produto. Somente os prottipos so apresentados, para que dessa maneira o leitor possa compreender como foi
implementada na prtica a estruturao apresentada na seo 6.2 , sem que para isso o texto desta dissertao fique
excessivamente extenso. Para maiores informaes, consulte o cdigo anexo a esta dissertao.

95

TESTES E RESULTADOS ALCANADOS

Nesta seo so apresentados os testes de bancada e de campo, que avaliaram o desempenho do sistema
desenvolvido. Os testes de bancada so descritos na seo 7.1 e os testes de campo so descritos na seo 7.2.

7.1

Testes de Bancada

Nessa seo sero apresentados os testes de bancada realizados no conjunto hardware + firmware e os resultados
desses testes. Os testes tm como objetivo garantir que o conjunto hardware + firmware esteja com um projeto
adequado, cumprindo suas funes, alm de trazer a tona problemas que no tenham sido antecipados.
Para realizao do teste foram utilizados:

1 Multmetro para medio de tenses;

1 Osciloscpio para visualizaes dos sinais;

1 Fonte regulada para gerar diferentes tenses DC;

1 Bateria de no-break de 7Ah para alimentao do sistema com fornecimento de corrente adequado;

1 Circuito criado para gerar um sinal de injeo eletrnica emulado;

1 Circuito criado para converter o sinal TTL do microcontrolador para RS232 do computador;

1 Gravadora AVR Dragon para programao do microcontrolador;

Uma foto da bancada de testes pode ser encontrada na Figura 84.

Figura 84: Foto do ambiente de testes de bancada.

7.1.1

Fonte de Alimentao

Os testes realizados sobre a fonte de alimentao tm o objetivo de garantir que a fonte capaz de cumprir suas
funes, atendendo s especificaes de faixa de entrada de tenso, de tenso de sada e de corrente de sada. Para
tanto, foram realizados os seguintes testes:

Regulao de linha, que verifica a tenso de sada em toda a faixa de operao de tenso de entrada da
fonte;

Regulao de carga, que verifica a tenso de sada em toda a faixa de operao de corrente de sada da
fonte;

Regulao de Linha
O teste de regulao de linha consiste em variar a tenso de entrada e verificar o funcionamento da fonte de
alimentao a partir da medio de sua tenso de sada. O resultado obtido est representado na Tabela 20. Os testes
foram feitos com uma corrente de 510 mA na sada da fonte de alimentao.
96

Tabela 20: Regulao de linha da fonte de alimentao

Tenso de Entrada (V) Tenso de Sada (V)


Regulao de Linha
6,970
4,836
-3,28%
8,050
4,960
-0,80%
9,080
4,965
-0,70%
10,060
4,969
-0,62%
11,000
4,973
-0,54%
12,000
4,977
-0,46%
13,050
4,981
-0,38%
14,040
4,984
-0,32%
14,980
4,986
-0,28%
16,000
4,989
-0,22%
16,970
4,992
-0,16%
18,030
4,994
-0,12%
18,980
4,996
-0,08%
20,000
4,998
-0,04%
20,990
5,000
0,00%
22,030
5,002
0,04%
23,040
5,003
0,06%
24,050
5,005
0,10%
25,040
5,007
0,14%
26,040
5,008
0,16%
27,020
5,009
0,18%
27,930
5,011
0,22%
29,090
5,012
0,24%
30,030
5,012
0,24%
31,020
5,013
0,26%
31,950
5,014
0,28%
Regulao de Carga
O teste de regulao de linha consiste em variar a corrente de sada e verificar o funcionamento da fonte de
alimentao a partir da medio de sua tenso de sada. O resultado obtido est representado na Tabela 21. Os testes
foram feitos com uma tenso de 12 V na entrada da fonte de alimentao.
O clculo da regulao de carga feito a partir da Equao ( 97 ).
6 u+  M  =

 ,   5
5

( 97 )

97

Tabela 21: Regulao de carga da fonte de alimentao

Corrente de Sada (mA) Tenso de Sada (V)


Regulao de Carga
0,000
5,067
1,34%
123,830
5,014
0,28%
238,310
5,020
0,40%
343,680
5,025
0,51%
505,800
5,035
0,69%
633,100
5,042
0,83%
758,000
5,049
0,98%
882,100
5,056
1,12%
1002,200
5,062
1,25%
1121,700
5,069
1,39%
1242,800
5,076
1,52%
1361,600
5,084
1,67%
1479,400
5,090
1,80%
1596,800
5,095
1,90%
1715,900
5,104
2,08%
1831,800
5,111
2,22%
1935,600
5,115
2,31%
2305,600
4,915
-1,70%
2751,600
4,910
-1,81%
3176,400
4,896
-2,08%
Anlise dos Resultados
Em ambos os testes, Regulao de Linha e Regulao de Carga, os resultados encontrados foram extremamente
satisfatrios, com um valor de desvio mximo de 164 mV, ou 3,28%, em relao ao valor de referncia, 5 V. Assim
sendo, a fonte de alimentao provou funcionar de 7 a 32 V de tenso de entrada, com sada de corrente at 3,17 A.

7.1.2

Leitura dos sensores de Presso da Flauta, Sensor MAP e Sonda Lambda

Para testar a leitura dos sensores de Presso da Flauta, Sensor MAP e Sonda Lambda, a entrada desses sensores foi
conectada a uma fonte regulvel com tenso conhecida (medida por um multmetro) e o valor lido pelos sensores foi
enviado para o Console. O valor esperado para cada leitura em funo da tenso de entrada (resultado da converso
AD) calculado pela Equao ( 98 )
+  =   255; 256 F

 
H
5

( 98 )

Onde a diviso o resultado da operao 256 U Y sempre arredondado para baixo.


&"

A Tabela 22 traz o resultado do teste, juntamente com os valores de leitura esperados.

98

Tabela 22: Resultados do teste de leitura dos sensores de Presso da Flauta, Sensor MAP e Sonda Lambda

Tenso de
Entrada (V)
0,494
1,004
1,495
2,001
2,507
3,003
3,497
4,003
4,5
4,902
5,004

Valor lido do AD
Valor
Presso
Sonda
Esperado
MAP
da Flauta
Lambda
25
51
76
102
128
153
178
204
230
250
255

25
51
76
102
128
153
178
204
230
250
255

25
51
76
102
128
153
179
204
230
250
255

25
51
76
102
128
153
179
204
230
250
255

Anlise dos Resultados


No teste, o nico valor lido diferente do esperado foi do sensor de Sonda Lambda na tenso de 3,497 V, no entanto
esse no um mal resultado considerando que uma tenso de 3,496 V corresponderia ao valor lido de 179, ou seja, um
pequeno erro de leitura do multmetro ou uma pequena variao na calibrao interna do AD podem justificar esse
pequeno erro. Por esses motivos, o resultado foi considerado satisfatrio.

7.1.3

Emulao dos sensores MAP e de Sonda Lambda

Nesse teste, o valor a ser utilizado na emulao dos sensores MAP e de Sonda Lambda foram enviado via Console
e a sada foi lida por um multmetro.
Considerando que o timer responsvel pela gerao do PWM utilizado para emular os sensores MAP e de Sonda
Lambda foi configurado para contar at 511 (ver seo 6.4), e que o pino de sada assumo o valor de 0 V somente aps
atingir o valor enviado via console, o valor de sada esperado pode ser calculado pela Equao ( 99 ).
 ,   =

+   + 1
5
512

( 99 )

O resultado do teste para o emulador de Sensor MAP exibido na Tabela 23 e o resultado do emulador de Sonda
Lambda exibido na Tabela 24, juntamente com os valores esperados, o erro entre o valor de sada e o valor esperado
para cada caso, o erro mximo e mnimo.

99

Tabela 23: Resultado do Teste de Emulao do Sensor MAP

Valor
Escrito
0
50
100
150
200
250
300
350
400
450
500
510
511

Tenso de Sada (V)

Valor Esperado (V)

0,017
0,499
0,982
1,465
1,947
2,43
2,913
3,396
3,878
4,361
4,844
4,941
4,95

0,010
0,498
0,986
1,475
1,963
2,451
2,939
3,428
3,916
4,404
4,893
4,990
5,000
Erro mximo
Erro mnimo

Erro (V)
0,007
0,001
-0,004
-0,010
-0,016
-0,021
-0,026
-0,032
-0,038
-0,043
-0,049
-0,049
-0,050
0,007
-0,050

Tabela 24: Resultado do Teste de Emulao do Sensor de Sonda Lambda

Valor
Escrito
0
50
100
150
200
250
300
350
400
450
500
510
511

Tenso de Sada (V)

Valor Esperado (V)

0,016
0,499
0,981
1,464
1,946
2,429
2,912
3,395
3,877
4,36
4,843
4,94
4,949

0,010
0,498
0,986
1,475
1,963
2,451
2,939
3,428
3,916
4,404
4,893
4,990
5,000
Erro mximo
Erro mnimo

Erro (V)
0,006
0,001
-0,005
-0,011
-0,017
-0,022
-0,027
-0,033
-0,039
-0,044
-0,050
-0,050
-0,051
0,006
-0,051

Anlise dos Resultados


A variao mxima de tenso entre o valores esperado e o valor emulado foi de -50mV no caso do sensor MAP e
de -51mV no caso de sensor de Sonda Lambda. Testes de campo iro indicar melhor se esses valores podem ser
considerados satisfatrios ou se preciso melhorar essa preciso.

7.1.4

Leitura dos Bicos Injetores originais

Para o teste do circuito de leitura do tempo de injeo dos bicos injetores originais, foi criado um simulador de
sinal de bicos injetores. O simulador gera um sinal de 12 V com pulsos de 0 V com tamanho e freqncia
configurveis esse simulador foi criado com base no sinal obtido em campo conforme a seo 3.3.3.1. Para esse
teste, foi variado o tamanho do pulso, com freqncia fixa em ~24 Hz. O tamanho do pulso gerado foi monitorado
com auxlio de um osciloscpio.
100

Como a taxa de amostragem do tempo de injeo de 96us (seo 6.4), o valor esperado pode ser calculado
segundo a Equao ( 100 ).
+  =

96u,

( 100 )

A Tabela 25 traz o resultado dos testes juntamente com os valores esperados para cada caso.
Tabela 25: Resultado dos testes de leitura do tempo de injeo

Tempo de
Valor Lido Valor
Injeo (ms)
Esperado
1,013
10
11
2,011
21
21
3,017
31
31
4,018
42
42
5,028
52
52
6,018
62
63
7,028
73
73
8,037
84
84
9,030
94
94
10,029
104
104
Anlise dos Resultados
Os valores obtidos no teste foram bastante satisfatrios, com apenas um caso com divergncia entre o valor lido e o
valor esperado, o que justificvel j que a leitura pode variar em 96us (perodo de leitura do sinal).

7.1.5

Sensor de Rotao

Para o teste do Sensor de Rotao, foi utilizado o mesmo circuito de simulador de bicos criado para o teste de
Leitura dos Bicos de Injeo Originais (seo 7.1.4), mas dessa vez foi alterado o valor da freqncia do pulso,
mantendo-se o pulso em ~3 ms. A freqncia do sinal gerado foi medida com o auxlio de um osciloscpio.
A Tabela 26 traz o resultado dos testes, com a freqncia do sinal de entrada em Hz e RPM, o valor lido em Hz e o
erro entre o valor lido e o valor do sinal de entrada em Hz.
Tabela 26: Resultado dos testes do Sensor de Rotao

Freq (Hz)
10
16
33
48
62
77
91
100
111
125
143
166

Freqncia
(RPM)
593
984
1972
2908
3745
4606
5441
5994
6659
7489
8556
9978

Valor
Erro (Hz)
Lido (Hz)
9
16
32
47
62
76
90
99
111
125
142
167

-1
0
-1
-1
0
-1
-1
-1
0
0
-1
1

101

Anlise dos Resultados


Os valores obtidos no teste foram bastante satisfatrios, com erros de no mximo 1 Hz para mais ou para menos, o
que no deve influenciar significativamente o funcionamento do sistema.

7.1.6

Acionamento do Bico de Gs

Para o teste do circuito de acionamento do bico de gs, o sinal do simulador de bicos foi colocado na entrada de
injeo original e o firmware foi modificado para copiar o tempo de injeo de entrada (do simulador). Ento, um bico
injetor de gs foi conectado ao circuito de acionamento de bicos de gs, e foram monitorados sua tenso e corrente.
O perfil de tenso do circuito de acionamento do bico mostrado na Figura 85, j o perfil da corrente de
acionamento ilustrado na Figura 86.

Figura 85: Teste do Acionamento do Bico de Gs

Figura 86: Teste da Corrente de Acionamento do Bico de Gs

Anlise dos Resultados


O resultado da Figura 85 traz duas importantes informaes: a primeira diz respeito capacidade do circuito de
acionamento de criar um caminho de corrente para o GND, que foi atendida satisfatoriamente considerando que
quando o bico est acionado a tenso fica abaixo de ~700mV, a segunda diz respeito a atuao dos tranzorbs de
proteo, que limitaram a tenso sobre o circuito de acionamento em ~15V, protegendo-o do surto causado pelo
acionamento de uma carga indutiva (o bico de acionamento).
O resultado da Figura 86 mais ilustrativo, e sua semelhana com o resultado da Figura 44 da seo 3.3.4.2
demonstra que o circuito est funcionando como esperado: durante o perodo de Peak a corrente sobe at seu mximo
de ~6A, e durante o perodo de Hold a corrente diminui para ~33% da corrente mxima.

102

7.2

Testes de Campo

Esta seo descreve os testes de campo e seus resultados. Nos testes de campo, o sistema desenvolvido testado no
ambiente no qual deve funcionar, so os testes de campo que dizem se o sistema est pronto ou no para se tornar um
produto.
So testados intrinsecamente nos testes de campo o hardware, o firmware e a estratgia de funcionamento.

7.2.1

Metodologia de Testes

Os mtodos utilizados para realizar os testes de campo so descrito nesta seo.


Com a observao do funcionamento do kit comercial instalado, foi possvel constatar que a funo do kit de
injeo de GNV vai alm calcular o tempo de injeo de GNV a partir do tempo de injeo de combustvel original,
mas passa tambm por alimentar o sistema de GNV, alimentar os sensores, trocar informaes com a chave
comutadora, determinar o momento adequado de comutao a partir da temperatura (seo 3.3.4.9) e gerenciar a
estratgia Peak and Hold por algum motivo, o kit comercial instalado inicia seu funcionamento com a estratgia de
funcionamento convencional e aps alguns minutos passa a atuar na estratgia Peak and Hold.
Por esse motivo, optou-se por permitir ao kit comercial instalado comandar o acionamento dos bicos injetores at
que o sistema estivesse funcionando a gs (j na temperatura certa), na estratgia Peak and Hold. Aps isso acontecer,
o sistema desenvolvido assumia somente o controle dos bicos de gs.
Para assumir o controle dos bicos de gs, o circuito projetado para congelar os bicos injetores de gasolina (seo
4.2.8) foi utilizado para anular a atuao do kit comercial instalado sobre os bicos de gs, inserindo uma impedncia
em srie com o bico injetor de gs no caminho criado por esse kit, limitando a corrente que flui por esse bico e,
portanto, impedindo-o de ser acionado. Ao mesmo tempo, o sistema desenvolvido passa a atuar nos bicos injetores de
gs, assumindo o controle da injeo. Na Figura 87 pode-se encontrar o circuito utilizado.
SINAL_INJ1_UCE

NET_SINAL_INJ1_UCE

SINAL_INJ1_BICO

NET_SINAL_INJ1_BICO

Conexo com o circuito de acionamento da PCI de potncia


+12V

K1

D1
MMBD6050

SINAL_GAS

R6

NET_SINAL_GAS
R7
4K7

Q1
BC337

R5
68R

4K7

Figura 87: Circuito para congelamento do acionamento dos bicos por parte do kit comercial

Para leitura dos sinais dos sensores e da injeo original foi utilizado um conector DB25, conforme a foto da
Figura 88, para interromper o sinal de acionamento do bico de gs por parte do kit comercial, foi utilizado um par de
conector selado de 4 vias, conforme a foto da Figura 89, onde um conector se liga aos bicos de gs e o outro ao kit
comercial, e por ltimo, para comunicao com o console para debug do sistema criado foi utilizado uma placa
desenvolvida com essa finalidade (com um CI MAX232), conforme foto da Figura 90. As fotos: Figura 91, Figura 92
e Figura 93 mostram uma viso geral do sistema inserido no veculo, e, por ltimo, a Figura 94 ilustra o sistema sendo
comandado pelo computador. A PCI dos circuitos analgicos e digitais a PCI verde esquerda na Figura 92 e a PCI
dos circuito de potncia a PCI marrom direita da mesma figura.

103

Figura 88: Foto com o detalhe da conexo para leitura dos sinais dos sensores e da injeo de combustvel original.

Figura 89: Conexo que permite ao sistema em teste interromper o sinal de acionamento dos bicos de gs.

104

Figura 90: Placa para leitura do console

Figura 91: Viso geral do sistema testado inserido no veculo de teste, 1 foto.

Figura 92: Viso geral do sistema testado inserido no veculo de teste, 2 foto.

105

Figura 93: Viso geral do sistema testado inserido no veculo de teste, 3 foto.

Figura 94: Sistema sendo comandado a partir do computador.

Foram testadas duas estratgia:

Cpia do tempo de injeo com aplicao de uma correo fixa;

Sistema de acionamento com utilizao da estratgia utilizando a lgica nebulosa desenvolvida, descrita na
seo 5.

7.2.2

Resultados

A anlise dos resultados desses testes possui um carter qualitativo, passando pela percepo da pessoa que realiza
o teste sobre o bom funcionamento ou no do motor, pelo som produzido por esse. O parmetro mais definido
utilizado foi a capacidade do sistema em manter o motor funcionando sem deixar o carro morrer.
Em ambos os casos, quando o sistema desenvolvido assumia o controle dos bicos injetores durante o
funcionamento em marcha lenta, o carro morria. Porm, quando a comutao entre os dois sistemas (kit comercial
para o sistema desenvolvido) era feita com o motor levemente acelerado (rotao mais alta), a estratgia de cpia do
tempo de injeo com correo fixa foi capaz de manter o motor funcionando, embora na maioria das vezes o motor
morria quando o veculo voltava a funcionar em marcha lenta (em uma das vezes o motor se manteve funcionando por
vrios minutos). Foram testadas vrias correes diferentes, de -50% a +100% do tempo de injeo de gasolina, e o
que os testes indicaram que a correo mais adequada variava de um dia de teste para outro, talvez por causa da
presso de gs no cilindro (j que o reservatrio foi diminuindo a quantidade de gs), ou por causa da temperatura do
motor (ou mesmo por causa da temperatura ambiente).
A estratgia utilizando lgica nebulosa criada mostrou ter um funcionamento menos regular do que a correo fixa,
fazendo o motor morrer rapidamente aps o sistema desenvolvido assumir a injeo de gs. Aps uma anlise mais
minuciosa da base de regras, alguns problemas a serem corrigidos foram constatados:

A correo pelo sensor de Sonda Lambda no faz sentido da maneira como foi utilizada, j que na mdia
as regras diminuem o tempo de injeo de gs quando a mistura est pobre (sonda lambda baixa) e
aumentam o tempo de injeo de gs quando a mistura est rica (sonda lambda alta) ver seo 5.2.5. Essa
correo resultado do mtodo matemtico utilizado, que associou o baixo tempo de injeo de gs com
106

um sinal baixo de sonda lambda, e o alto tempo de injeo de gs com um alto sinal de sonda lambda,
ignorando o fato que o tempo de injeo determinava o valor do sensor de Sonda Lambda, e no o
contrrio;

A ausncia do sinal do Sensor MAP pode ser considerada uma grande fraqueza do sistema, j que esse
sensor carrega informaes importantssima sobre o regime de funcionamento do motor;

A utilizao do arquivo aceleracao_0_100_trocaMarcha_3 para criao da base de regras no se mostrou


adequada para manter o funcionamento do motor em marcha lenta, j que representa uma situao muito
diferente de funcionamento do motor;

O fato do motor possuir vrias estratgias de diferentes para diferentes condies de funcionamento foi
negligenciada, resultando na tentativa de criao de uma base de regras que abrangesse todas as estratgias
de funcionamento, e portanto bem mais difcil de ser atingida;

O mtodo de avaliao da base de regras (com criao de um parmetro de erro entre o sinal gerado pela
base de regras e o gerado pelo kit comercial) no se mostrou adequado para criao de uma base de regras
eficiente, sendo o teste de campo muito mais pertinente para avaliar essa eficcia.

Resumidamente, a tentativa de tratar o funcionamento do motor como uma caixa preta, ignorando os seus
aspectos j conhecidos e buscando apenas se aproximar o mximo do funcionamento do kit comercial instalado, no
gerou bons resultados. Uma nova estratgia que leve em considerao aspectos j conhecidos do funcionamento do
motor e a observao de testes de campo (e no apenas de simulaes matemticas) parece ser uma estratgia mais
adequada. Por ltimo, parece ser mais adequado criar a base de regras testando o motor em cada situao
individualmente, isso , determinando qual a correo mais adequada para cada situao de cada varivel de entrada
do sistema de inferncia nebuloso (rotao baixa, mdia e alta, velocidade alta, mdia e alta, tempo de injeo baixo,
mdio e alto e etc.).

107

CONCLUSES E TRABALHOS FUTUROS

Este documento apresentou o desenvolvimento de uma plataforma, constituda de duas PCIs e uma base de cdigo
embarcado, capaz de realizar a injeo de GNV e na qual se pode criar e testar diferentes estratgias de clculo de
tempo de injeo de GNV. Adicionamento, foi realizado um estudo que teve por objetivo empregar o uso de lgica
nebulosa no controle de injeo de GNV em veculos originalmente movidos gasolina e/ou lcool, com o intuito de
minimizar a necessidade de processamentos complexos e de armazenamento de mapas, resultando em um hardware
de menor custo e competitivo.
O hardware e firmware da plataforma desenvolvida, necessria validao da estratgia de clculo criada, foram
especificados, projetados, desenvolvidos e testados com sucesso. As funcionalidades implementadas se mostraram
eficientes e precisas. O teste de campo serviu para confirmar que o sistema desenvolvido capaz de realizar o controle
do sistema de injeo de GNV, j que foi capaz de manter o funcionamento do motor em marcha lenta, ainda que de
maneira instvel.
Foram testadas diversas estratgias de clculo do tempo de injeo baseadas em lgica nebulosa em simulaes de
computador, e aps inmeras tentativas uma estratgia foi definida. Os testes de campo, no entanto, indicaram que
essa estratgia precisa ser ajustada a partir de um estudo mais profundo do desafio de se controlar a injeo de GNV.
Algumas observaes sobre a estratgia desenvolvida podem ser utilizadas em sua reviso: a utilizao de uma
mtrica mais adequada de medio da eficincia da estratgia na simulao por computador e a utilizao de
conhecimentos prvios sobre o funcionamento do motor, entre outros. No entanto, o principal fator a ser considerado
est associado metodologia empregada, sugerindo-se a criao da base de regras com base na observao do
comportamento do sistema em campo, no lugar da avaliao computacional, como foi feito neste trabalho.
Para trabalhos futuros, dois caminhos podem ser seguidos: utilizao da plataforma desenvolvida para testes de
novas estratgias de clculo do tempo de injeo ou melhoria no projeto da plataforma desenvolvida:
Utilizao da plataforma desenvolvida para testes de clculo do tempo de injeo:

Criao da base de regras com base em observao de campo: Aproveitando-se da experincia


desenvolvida nesta dissertao, sugere-se a criao de uma nova base de regras com base na
experimentao em campo. Uma outra abordagem a utilizao de um dinammetro de rolo para a
reproduo em laboratrio das diversas condies de funcionamento do motor.

Criao de uma estratgia de funcionamento baseada em conhecimentos do sistema:


Diferentemente do que foi proposto nesta dissertao, uma nova abordagem seria a definio da
correo sobre o tempo de injeo com base em conhecimentos sobre o funcionamento do motor e
de seus sensores.

Melhoria no projeto da plataforma desenvolvida:


o

Substituio do microcontrolador: embora o microcontrolador utilizado tenha atendido


satisfatoriamente os objetivos deste projeto de mestrado, existem atualmente opes baseadas em
ncleo ARM mais baratas e eficientes, com ferramentas de desenvolvimento de baixo custo. Isso
possibilitaria a criao de estratgias de funcionamento mais complexas, com o emprego de
operaes matemticas mais elaboradas.

Integrao das placas de circuito digital e analgico e de potncia: como estratgia de


desenvolvimento, a separao dos circuitos digitais e analgicos dos circuitos de potncia trouxe
vrias vantagens (descritas na seo 4.1), porm essa separao no adequada caso o sistema
desenvolvido se torne um produto comercial.

Relayout da(s) placa(s) desenvolvidas: as placas desenvolvidas sofreram vrios retrabalhos para
incorporar novos circuitos no previstos inicialmente. Adicionalmente, os conectores empregados
foram selecionados com o objetivo de facilitar testes rpidos, mas no so adequados para um
produto comercial.

108

REFERNCIAS BIBLIOGRFICAS

[1] Raio X do Setor IBP (acesso em 08/05/2011).


http://www.ibp.org.br/services/DocumentManagement/FileDownload.EZTSvc.asp?DocumentID={BB336FA23E16-4CEE-A440-CC25EE5D66D3}&ServiceInstUID={008234CC-5DAA-4DB6-8D68-111B3FD798D3}
[2] Brasil Econmico edio de 06 de Abril de 2011 (acesso em 19/05/2011).
http://www.brasileconomico.com.br/epaper/contents/BE_2011-04-06.pdf
[3] Exrcito ocupa campos de petrleo e gs na Bolvia Folha Online 01 de Maio de 2006 (acesso em
20/05/2011).
http://www1.folha.uol.com.br/folha/mundo/ult94u95485.shtml
[4] Sntese de preos Brasil Abril de 2011 ANP (acesso em 08/05/2011).
http://www.anp.gov.br/preco/prc/Resumo_Mensal_Index.asp
[5] Simulador de Economia de GNV SCGAS (acesso em 08/05/2011).
http://www.scgas.com.br/index.php/site/veicular/conteudos/simulador/idse/255
[6] Site da National Instruments (acesso em 20/05/2011).
http://www.ni.com/
[7] Carvalho, T.C.O. Desenvolvimento de uma Central Eletrnica aberta para Controle de Motores de

Combusto Interna. Belo Horizonte, MG, UFMG, 2005.


[8] Ramos, D.B., CONTROLADOR NEBULOSO PARA MOTOR DE IGNIO POR COMPRESSO
OPERANDO COM GS NATURAL E LEO DIESEL. Santa Maria, RS, UFSM, 2006.
[9] Veiga, M.R., DESENVOLVIMENTO DE UM GERENCIADOR ELETRNICO PARA MOTORES
TRICOMBUSTVEL. So Paulo, SP, Poli/USP, 2010.
[10] Oliveira, F. B. ; Vandresen, M. ; Pereira, M. Desenvolvimento de Kit de Converso De Motores
Diesel Estacionrios de Geradores Para Operar Com Mistura Diesel - Gs Natural. In: 9 Congreso
Iberoamericano de Ingeniera Mecnica. Las Palmas de Gran Canaria : FEIBIM, 2009. v. 01. p. 173180.IF-SC, 2009.
[11] Barghi, F., Safavi A.A. An Intelligent Control Policy for Fuel Injection Control of SI Engines (Case
Study: CNG Engine). In: 15th International Conference on Intelligent Engineering Systems: INES,
2011. June 23-25, 2011.
[12] Santarm, C.A., Baioco, J., Bone, R.B., Filho, V.F. CUSTOS E BENEFCIOS ECONMICOS DE
TECNOLOGIAS DE TRANSPORTE DE GS NATURAL NO BRASIL. In: 4 PDPETRO,
Campinas, SP: ABPG 2007. 7.2.0119-1 1
[13] Engerer, H., Horn, M. Natural gasvehicles: An option for Europe. In: Energy Policy, 2010. Ed. 38. p.
1017-1029.
[14] Janssen, A., Lienin, S., Gassmann, F., Wokaun, A. Model aided policy development for the market
penetration of natural gas vehicles in Switzerland. In: Transportation Research, 2006. Part A 40. p.
316333
[15] Mello, P., Pelliza, G., Catalua, R., da Silva, R. Evaluation of the maximum horsepower of vehicles
converted for use with natural gas fuel. In: Fuel, 2006. Ed. 85. p. 2180-2186
[16] Collantes, G., Melaina, M. W. The co-evolution of alternative fuel infrastructure and vehicles: A
study of the experience of Argentina with compressed natural gas. In: Energy Policy, 2011. Ed. 39. p.
664-675
[17] Flynn, P.C. Commercializing an alternate vehicle fuel: lessons learned from natural gas for vehicles.
Energy Policy, 2002. Ed. 30. p. 613-619
[18] Burger, P.R.B., Baeta, J.G.C., Valle, R.M. Desempenho de um Motor Multicombustvel Operando
Simultaneamente com GNV e lcool Etlico em Diferentes Propores
[19] Di Pascoli, S., Femia, A., Luzzati, T. Natural gas, cars and the environment. A (relatively) clean
and cheap fuel looking for users. In: Economical Ecologics, 2001. Ed. 38, p. 179-189
[20] Lino, P., Maione, B., Amorese, C., Modelling and predictive control of a new injection system for
compressed natural gas engines. In: Control Engeneering Practice, 2008. Ed. 16, p. 1216-1230
109

[21] Kalam, M.A., Masjuki, H.H. An experimental investigation of high performance natural gas engine

with direct injection. In: Energy, 2011. Ed. 36, p. 3563-3571


[22] Carlucci, A.P., de Risi, A., Lagorfia, D., Naccarato, F. An experimental investigation of high

performance natural gas engine with direct injection. In: Energy, 2008. Ed. 33, p. 256-263.
[23] Aslam, M.U., Masjuki, H.H., Kalam, M.A., Abdesselam, H., Mahlia, T.M.I., Amalina, M.A. An

experimental investigation of CNG as an alternative fuel for a retrofitted gasoline vehicle. In: Fuel,
2006. Ed. 85, p. 717-724.
[24] Thamsiriroj, T., Smyth, H., Murphy, J.D. A roadmap for the introduction of gaseous transport fuel: A
case study for renewable natural gas in Ireland. In: Renewable and Sustainable Energy Reviews, 2011.
Ed. 15, p. 4642-4651.
[25] Huang, S.R., Lin, C.Y., Wu, C.Y., Wu, C.C., Chu, C.Y., Chen, H.T., Wang, S.H. Fuzzy control of a
bio-hydrogen internal combustion engine generating system. In: international journal of hydrogen
energy, 2011. Ed. 36, p. 8774-8778.
[26] Kheir, N.A., Salman, M.A., Schouten, N.J. Emissions and fuel economy trade-off for hybrid vehicles
using fuzzy logic. In: Mathematics and Computers in Simulation, 2004. Ed. 66, p. 155-172
[27] Kalogirou, S.A., Artificial intelligence for the modeling and control of combustion processes: a
review. Progress in Energy and Combustion Science, 2003. Ed. 29, p. 515-566.
[28] MOTOR DE CICLO OTTO. (acesso em 08 de maio de 2011).
http://www.castrol.com/liveassets/bp_internet/castrol/castrol_brazil/STAGING/local_assets/images/ask_the_expert
/curso_desempenho001_br_375x588.jpg
[29] VON GLEHN, F. R., Curso Injeo Eletrnica - Conceitos Tericos e Aspectos Prticos, Goinia - GO, Ciclo
Engenharia, junho de 2001, 4 edio - volume 1 de 5.
[30] Doebelin, E. O. Measurement Systems, Application and Design. MacGraw-Hill, 4a edio, 1990.
[31] Envenenado Como Funciona Injeo Eletrnica. (acesso em 10 de maio de 2011).
http://www.envenenado.com.br/howwork/injecao/injecao.html
[32] Injeo Eletrnica e Mecnica - PARTE 13. (acesso em 18 de junho de 2011).
http://www.fazerfacil.com.br/carros/injecao_13.htm
[33] Como funciona o sistema de ignio de um automvel (acesso em 18/06/2011).
http://carros.hsw.uol.com.br/sistema-de-ignicao-de-um-automovel.htm
[34] Stoichiometry Wikipdia. (acesso em 10 de maio de 2011).
http://en.wikipedia.org/wiki/Stoichiometry
[35] Monxido de Carbono Wikipdia. (acesso em 10 de maio de 2011).
http://pt.wikipedia.org/wiki/Mon%C3%B3xido_de_carbono
[36] Prmio Petrobrs de Tecnologia - Utilizao de Gs Natural em Motores e Cenrio do Uso no Brasil (acesso
em 14 de maio de 2011).
http://www.petrobras.com.br/minisite/premiotecnologia/pdf/TecnologiaGas_GasNatural_Motores.pdf
[37] GasNet O Site do Gs Natural GNV. GNV Gs Natural Veicular, Entendendo o GNV (acesso em 10 de
maio de 2011).
http://www.gasnet.com.br/novo_gnv/entendendo_gnv.asp
[38] Catedral do Gs Histrico do Gs Natural no Brasil (acesso em 12 de maio de2011).
http://catedradogas.iee.usp.br/gasnatural/historicobrasil.htm
[39] Melo Filho, M. A histria do gs natural: do Rio de Janeiro para o Brasil. Rio de Janeiro, 2005.
[40] DECRETO N 3.371, DE 24 DE FEVEREIRO DE 2000 Aneel (acesso em 14 de maio de 2011).
http://www.aneel.gov.br/cedoc/dec20003371.pdf
[41]
[42]
[43]
[44]

Empresa de Pesquisa Energtica. Balano Energtico Nacional 2009. Rio de Janeiro, EPE: 2010.
International Energy Agency, Key World Energy STATISTC, 2011. Frana, IEA, 2011.
Empresa de Pesquisa Energtica, Balano Energtico Nacional, 2011. Rio de Janeiro, EPE: 2011.
Empresa de Pesquisa Energtica. Plano Nacional de Energia 2030. Rio de Janeiro, EPE: 2007.
110

[45] Kit Sequent my07


http://www.gaspoint.com.br/gnv/kits/sequent-my07/kit-sequent-my07.html
[46] Globo Gs Brasil :: Revista Especializa em gs - .::Combustvel original e GNV: Perda de potncia tem
soluo tcnica::. (acesso em 17 de agosto de 2011).

http://www.globogasbrasil.com.br/artigos/combustivel-original-e-gnv-perda-de-potencia-tem-solucaotecnica/
[47] Servio Brasileiro de Respostas Tcnicas (BRT) Dossi Tcnico Gs Natural Veicular (GNV) (acesso em 17
de agosto de 2011)

http://www.sbrt.ibict.br/dossie-tecnico/downloadsDT/NjU=
[48] GasNet O Site do Gs Natural GNV. Gs Natural - Vantagens (acesso em 14 de maio de 2011).

http://www.gasnet.com.br/novo_gasnatural/vantagens.asp
[49] Pelliza, G., Anlise de Veculos Convertidos para o uso de Gs Natural, Porto Alegre RS, 3 de fevereiro de
2003, Seo 6.3, pg. 42.
[50] ROMARIZ, A., Apostila de Sistemas Inteligentes, pg. 40
[51] Zadeh, L.A. (1965). Fuzzy Sets. In: Information and Control 8, University of California, USA, pg. 338
353.
[52] Mamdani, EH., Assilian, S. (1975). An Experiment in Linguistics Synthesis With a Fuzzy Logic Controller.
In: International Journal Man-Machine Studies, Vol 7-(1), pg. 1 13
[53] Mamdani, EH. (1977). Application of Fuzzy Logic to Approximate Reasoning Using Linguistic Synthesis.
In: IEEE Transaction on Computers, Vol C-26, pg. 1182 1191.
[54] Tsukamoto, Y. (1979). An Approach to Fuzzy Reasoning Method. In: Advances in Fuzzy Set Theory and
Applications, Holanda, pg. 137 149.
[55] Takagi, T., Sugeno, M. (1985). Fuzzy Identification of Systems and its Applications to Modeling and
Control. In: IEEE Trans. Sys. Man. Cybern., Vol 15, No1, pg. 116 132.
[56] Shaw, I.S., Godoy, M. (1999). Controle e Modelagem Fuzzy. In: Ed. Edgar Blcher LTDA, FAPESP, So
Paulo.

111

Anexo I

Prottipos das Funes e Macros


Desenvolvidas

Esse anexo traz os prottipos das funes desenvolvidas. O cdigo no apresentado para que o texto desta
dissertao no fique excessivamente extenso.
Para todos os casos, o arquivo que contm a palavra MACRO em seu nome traz verses em macro das funes
criadas. Macros so trechos de cdigo referenciados por um prottipo, que quando so chamados so inseridos no
cdigo no lugar da chamada. Isso significa que quando uma macro utilizada no cdigo, o seu contedo inserido no
lugar da sua chamada na fase de pr-compilao. Essa estratgia aumenta a utilizao da memria de programa, mas
muitas vezes necessria porque sua utilizao diminui o tempo de processamento, j que evita o salvamento e
recuperao de contexto que uma funo exige.

MCUDrivers

A biblioteca MCUDrivers traz todas as funes que dizem respeito aos perifricos do microcontrolador, e ser
especfica para cada microcontrolador. As os prottipos das funes da biblioteca MCUDrivers devem ser mantidos
em caso de criao de uma nova biblioteca para um novo microcontrolador para que dessa forma, a aplicao no
sofra alteraes.
Essa camada foi dividida nos seguintes arquivos:

ADC.c, ADCMACROS.h e ADC.h arquivos com as funes de manipulao do conversor


analgico/digital;

I2C.c, I2CMACROS.h e I2C.h arquivos com as funes de utilizao da interface de comunicao I2C;

IO.c, IOMACROS.h e IO.h arquivos com as funes de manipulao das IOs (Inputs e Outputs);

TIMER0.c, TIMER0MACROS.h e TIMER0.h arquivos com as funes de manipulao do Timer 0 do


microcontrolador;

TIMER1.c, TIMER1MACROS.h e TIMER1.h arquivos com as funes de manipulao do Timer 1 do


microcontrolador;

TIMER2.c, TIMER2MACROS.h e TIMER2.h arquivos com as funes de manipulao do Timer 2 do


microcontrolador;

UART.c, UARTMACROS.h e UART.h arquivos com as funes de utilizao da interface de


comunicao serial (UART);

Os arquivos .c contm o cdigo das funes e especfico do microcontrolador utilizado (ATMega32-16PU),


enquanto o arquivo .h contm os prottipos dessas funes.

1.1

ADC.h

As funes presentes nesse arquivo so:

// Habilita o ADC
void ADCEn(void);

// Desabilita o ADC
void ADCDis(void);

// Inicia uma nova converso


void ADCStartConversion(void);

// Indica se existe uma converso em progresso


uint8_t ADCConversionInProgress(void);

// Seleciona o canal de entrada


112

void ADCSelectCh(ADC_CH adCH);

// Seleciona o modo de operao


void ADCSelectMode(ADC_MODE adcMode);

// Seleciona a preciso do canal


void ADCSelectPrecision(ADC_PRECISION adcPrecision);

// Seleciona a referncia para converso


void ADCSelectReference(ADC_REF adcVref);

// Seleciona o clock do ADC


void ADCSelectClock(ADC_CLOCK adcClock);

// Le o resultado da converso em 8 bits


uint8_t ADCRead8Bits(void);

// Le o resultado da converso em 10 bits


uint16_t ADCRead10Bits(void);

Os tipos de dados criados para a execuo dessas funes so:

typedef enum {ADC_SINGLE_CONVERSION=0, ADC_FREE_RUNING, ADC_T0_CO, ADC_T0_OV,


ADC_T1_CO_B, ADC_T1_OV} ADC_MODE;

typedef enum {ADC_8_BITS=0,ADC_10_BITS} ADC_PRECISION;

typedef enum {ADC_AREF=0,ADC_AVCC,ADC_INT_2V56} ADC_REF;

typedef enum {ADC_0=0,ADC_1,ADC_2,ADC_3,ADC_4,ADC_5,ADC_6,ADC_7} ADC_CH;

typedef enum {ADC_INT_DIV_2=0, ADC_INT_DIV_4, ADC_INT_DIV_8, ADC_INT_DIV_16,


ADC_INT_DIV_32, ADC_INT_DIV_64, ADC_INT_DIV_128} ADC_CLOCK;

typedef enum {ADC_INT_DIS=0,ADC_INT_EN} ADC_INT;

1.2

I2C.h

As funes presentes nesse arquivo so:

// Inicializa o mdulo I2C


void I2CInit(void);

// Gera uma condio de Start


void I2CGenStart(I2C_STATUS *I2CStatus_p);

// Gera uma condio de Stop


void I2CGenStop(I2C_STATUS *I2CStatus_p);

// Envia um byte
void I2CWriteByte(uint8_t byte, I2C_STATUS *I2CStatus_p);

// Recebe um byte
uint8_t I2CReadByte(void);

// Configura o mdulo I2C para gerar ou no um sinal de ACK


void I2CSetRxAck(I2C_ACKNOWLEDGE ack, I2C_STATUS *I2CStatus_p);

// Essa funo deve ser executada continuamente para que as aes sejam efetivadas
void I2CTask(void);

Os tipos de dados criados para a execuo dessas funes so:

// Indica uma condio de gerao ou no de ACK


113

typedef enum {I2C_ACK=0,I2C_NACK} I2C_ACKNOWLEDGE;

// Armazena o estado do mdulo I2C


typedef union
{
uint8_t I2CFlags;
struct
{uint8_t I2CStartOk : 1;
uint8_t I2CStopOk : 1;
uint8_t I2CBusy : 1;
uint8_t I2CTxOk : 1;
uint8_t I2CTXAck : 1;
uint8_t I2CRxOk : 1;
uint8_t I2CRxAck : 1;
uint8_t rsvd : 1;};
} I2C_STATUS;

1.3

IO.h

As funes presentes nesse arquivo so:

// Habilita ou desabilita o uso de Pull Ups.


void IOPullUpUse(IO_PU_STATUS PUUseStatus);

// Estabelece o estado do PULL UP de um determinado pino de uma porta.


// Retorna 1 em caso de sucesso e 0 caso no seja possvel realizar a operao.
uint8_t IOSetPinPU(IO_PU_STATUS IOPU,IO_PORT IOPort, uint8_t IOPin);

// Estabelece o estado do PULL UP de todos os pinos de uma porta. Cada bit de mask corresponde a um
pino da porta.
// Cada bit do valor retornado igual a 1 em caso de sucesso e 0 caso no seja possvel realizar a operao.
uint8_t IOSetPortPU(IO_PORT IOPort, uint8_t mask);

// Estabelece a direo de um determinado pino de uma porta.


void IOSetPinDirection(IO_DIRECTION IODir,IO_PORT IOPort, uint8_t IOPin);

// Estabelece a direo de todos os pinos de uma porta. Cada bit de mask corresponde a um pino da porta.
void IOSetPortDirection(IO_PORT IOPort, uint8_t mask);

// L a direo de um determinado pino de uma porta.


IO_DIRECTION IOGetPinDirection(IO_PORT IOPort, uint8_t IOPin);

// L a direo de todos os pinos de uma porta. Cada bit do valor retornado corresponde a um pino da
porta.
uint8_t IOGetPortDirection(IO_PORT IOPort);

// Estabelece a sada de um determinado pino de uma porta.


void IOSetPinOutput(IO_STATUS IOOut,IO_PORT IOPort, uint8_t IOPin);

// Estabelece a sada de todos os pinos de uma porta. Cada bit de mask corresponde a um pino da porta.
void IOSetPortOuput(IO_PORT IOPort, uint8_t mask);

// L o estado de um determinado pino de uma porta.


114

IO_STATUS IOGetPinStatus(IO_PORT IOPort, uint8_t IOPin);

// L o estado de todos os pinos de uma porta. Cada bit do valor retornado corresponde a um pino da porta.
uint8_t IOGetPortStatus(IO_PORT IOPort);

Os tipos de dados criados para a execuo dessas funes so:

// Indica o estatus dos Pull Ups


typedef enum {IO_PU_DIS=0,IO_PU_EN} IO_PU_STATUS;

// Indica a dierao da IO
typedef enum {IO_DIR_IN=0,IO_DIR_OUT} IO_DIRECTION;

// Define as portas do micrcontrolador


typedef enum {IO_PORTA=0,IO_PORTB,IO_PORTC,IO_PORTD} IO_PORT;

// Indica os estados possveis de uma IO


typedef enum {IO_LOW=0,IO_HIGH=1} IO_STATUS;

1.4

TIMER0.h

As funes presentes nesse arquivo so:

// Inicializa o TIMER
void T0Init(T0_MODE t0Mode, T0_PIN_OUT t0PinOut, T0_CLOCK t0Clock,T0_OV_INT t0OvInt,void
(*ovfCallBack_p)(void), T0_OC_INT t0OcInt,void (*compCallBack_p)(void));

// Seta a fonte do clock do timer


void T0SetClock(T0_CLOCK t0Clock);

// Seta a opo de pinagem de sada do timer


void T0SetPinOut(T0_PIN_OUT t0PinOut);

// Seta o valor de comparao do Timer


// Essa funo s deve ser usada quando nos modos T0_PWM_PHASE_CORRECT e T0_PWM
void T0SetCompare(uint8_t t0Compare);

// Seta o valor de TOP do Timer


// Essa funo s deve ser usada quando no modo T0_CLEAR_ON_COMPARE
void T0SetTOP(uint8_t t0TOP);

// Le o valor do timer
uint8_t T0ReadTimer(void);

Os tipos de dados criados para a execuo dessas funes so:

// Define os modos de operao do TIMER0

typedef enum {T0_NORMAL=0,


T0_PWM} T0_MODE;

// Define a configurao de sada do compare do TIMER0

T0_CLEAR_ON_COMPARE,

T0_PWM_PHASE_CORRECT,

typedef enum {T0_NO_PIN_OUT=0, T0_TOGGLE, T0_CLEAR, T0_SET, T0_PWM_NORM,


T0_PWM_INV} T0_PIN_OUT;

// Define as fontes de clock do TIEMR0


typedef enum {T0_DIS=0, T0_INT, T0_INT_DIV_8, T0_INT_DIV_64, T0_INT_DIV_256,
T0_INT_DIV_1024, T0_EXT_FALLING_EDGE, T0_EXT_RISING_EDGE} T0_CLOCK;

// Define se a interrupo por overflow est ou no habilitada


typedef enum {T0_OV_INT_DIS=0,T0_OV_INT_EN} T0_OV_INT;
115

// Define se a interrupo por compare est ou no habilitada


typedef enum {T0_OC_INT_DIS=0,T0_OC_INT_EN} T0_OC_INT;

1.5

TIMER1.h

As funes presentes nesse arquivo so:

// Inicializa o TIMER
// A opo T1_TOGGLE no deve ser usada para a porta B.
void T1Init(T1_MODE t1Mode, T1_PIN_OUT t1APinOut, T1_PIN_OUT t1BPinOut, T1_CLOCK
t1Clock,T1_OV_INT
t1OvInt,void
(*ovfCallBack_p)(void),
T1_OC_A_INT
t1OcAInt,void
(*compACallBack_p)(void), T1_OC_B_INT t1OcBInt,void (*compBCallBack_p)(void));

// Seta a fonte do clock do timer


void T1SetClock(T1_CLOCK t1Clock);

// Seta a opo de pinagem de sada do timer


void T1SetPinOut(T1_PIN_OUT t1APinOut, T1_PIN_OUT t1BPinOut);

// Seta o valor de comparao do Timer


void T1SetCompare(TI_OC_OPT T1OCOpt, uint16_t t1Compare);

// Seta o valor de TOP do Timer


void T1SetTOP(uint16_t t1TOP);

// Le o valor do timer
uint16_t T1ReadTimer(void);

Os tipos de dados criados para a execuo dessas funes so:

// Define os modos de operao do TIMER1


typedef enum {T1_NORMAL=0,
T1_PWM} T1_MODE;

T1_CLEAR_ON_COMPARE,

T1_PWM_PHASE_CORRECT,

// Define a configurao de sada do compare do TIMER1


typedef enum {T1_NO_PIN_OUT=0, T1_TOGGLE, T1_CLEAR, T1_SET, T1_PWM_NORM,
T1_PWM_INV} T1_PIN_OUT;

// Define as fontes de clock do TIEMR1


typedef enum {T1_DIS=0, T1_INT, T1_INT_DIV_8, T1_INT_DIV_64, T1_INT_DIV_256,
T1_INT_DIV_1024, T1_EXT_FALLING_EDGE, T1_EXT_RISING_EDGE} T1_CLOCK;

// Define se a interrupo por overflow est ou no habilitada


typedef enum {T1_OV_INT_DIS=0,T1_OV_INT_EN} T1_OV_INT;

// Define se a interrupo por compare do canal A est ou no habilitada


typedef enum {T1_OC_A_INT_DIS=0,T1_OC_A_INT_EN} T1_OC_A_INT;

// Define se a interrupo por compare do canal B est ou no habilitada


typedef enum {T1_OC_B_INT_DIS=0,T1_OC_B_INT_EN} T1_OC_B_INT;

// Define qual dos canais de compare deve ser tratado


typedef enum {T1_OC_A=0, T1_OC_B} TI_OC_OPT;

1.6

TIMER2.h

As funes presentes nesse arquivo so:

// Inicializa o TIMER
116

void T2Init(T2_MODE t2Mode, T2_PIN_OUT t2PinOut, T2_CLOCK t2Clock,T2_OV_INT t2OvInt,void


(*ovfCallBack_p)(void), T2_OC_INT t2OcInt,void (*compCallBack_p)(void));

// Seta a fonte do clock do timer


void T2SetClock(T2_CLOCK t2Clock);

// Seta a opo de pinagem de sada do timer


void T2SetPinOut(T2_PIN_OUT t2PinOut);

// Seta o valor de comparao do Timer


// Essa funo s deve ser usada quando nos modos T2_PWM_PHASE_CORRECT e T2_PWM
void T2SetCompare(uint8_t t2Compare);

// Seta o valor de TOP do Timer


// Essa funo s deve ser usada quando no modo T2_CLEAR_ON_COMPARE
void T2SetTOP(uint8_t t2TOP);

// Le o valor do timer
uint8_t T2ReadTimer(void);

Os tipos de dados criados para a execuo dessas funes so:

// Define os modos de operao do TIMER2


typedef enum {T2_NORMAL=0,
T2_PWM} T2_MODE;

T2_CLEAR_ON_COMPARE,

// Define a configurao de sada do compare do TIMER2


typedef enum {T2_NO_PIN_OUT=0,
,T2_PWM_INV} T2_PIN_OUT;

T2_PWM_PHASE_CORRECT,

T2_TOGGLE,

T2_CLEAR,

T2_SET,

// Define as fontes de clock do TIEMR2


typedef enum {T2_DIS=0, T2_INT, T2_INT_DIV_8, T2_INT_DIV_32
T2_INT_DIV_128, T2_INT_DIV_256 ,T2_INT_DIV_1024} T2_CLOCK;

T2_PWM_NORM

,T2_INT_DIV_64,

// Define se a interrupo por overflow est ou no habilitada


typedef enum {T2_OV_INT_DIS=0,T2_OV_INT_EN} T2_OV_INT;

// Define se a interrupo por compare est ou no habilitada


typedef enum {T2_OC_INT_DIS=0,T2_OC_INT_EN} T2_OC_INT;

1.7

UART.h

As funes presentes nesse arquivo so:

// Inicializa a USART, e a habilita


void UARTInit(uint32_t baudRate, UART_DATABITS dataBits, UART_PARITY parity,
UART_STOPBITS stopBits, UART_SYNC_MODE syncAsyncMode, UART_POLARITY polarity,
UART_RX_INT
rxIntEn,
void
(*rxCallBack_p)(void),
UART_TX_INT
txIntEn,
void
(*txCallBack_p)(void));

// Habilita a USART
void UARTEn(void);

// Desabilita a USART
void UARTDis(void);

// Envia um byte via USART


void UARTSendByte(uint8_t byte);

// Recebe um byte via USART e o escreve no ponteiro passado.


117

// Se houver um byte a ser recebido e ele for recebido normalmente, retorna 0, caso contrrio retorna um
cdigo de erro.
UART_RX_ERRORS UARTReceiveByte(uint8_t *byte);

// Limpa o buffer de recepo da USART.


void UARTRxFlush(void);

Os tipos de dados criados para a execuo dessas funes so:

// Define a quantidade de bits em cada palavra transmitida


typedef enum {DATABITS_5=0, DATABITS_6, DATABITS_7, DATABITS_8, DATABITS_9=7}
UART_DATABITS;

// Define os modos sncrono e assncrono


typedef enum {ASYNC=0,SYNC} UART_SYNC_MODE;

// Define os tipos de paridade


typedef enum {PARITY_DIS=0,PARITY_EVEN=2,PARITY_ODD=3} UART_PARITY;

// Define a quantidade de stop bits


typedef enum {STOPBITS_1=0,STOPBITS_2} UART_STOPBITS;

// Define a borda na qual o dado amostrado


typedef enum {POL_FALLING=0,POL_RISING} UART_POLARITY;

// Define os erros
typedef enum {ERR_NO_BYTE=1,
UART_RX_ERRORS;

ERR_FRAME,

ERR_DATA_OVERRUN,

ERR_PARITY}

// Define a habilitao ou no de interrupo por envio de dados


typedef enum {DIS_TX_INT=0,EN_TX_INT} UART_TX_INT;

// Define a habilitao ou no de interrupo por recebimento de dados


typedef enum {DIS_RX_INT=0,EN_RX_INT} UART_RX_INT;

Common

A biblioteca Common contm todas as funes, macros e definies que so comuns a todo o cdigo, ou seja, que
podem ser necessrias em qualquer outra camada. A criao dessa camada visa a no repetio de tarefas comuns de
serem utilizadas em qualquer lugar do cdigo, e tem tambm o objetivo de concentrar definies que sero comuns a
todo o cdigo.
Essa camada foi dividida nos seguintes arquivos:

STRING.c e STRING.h arquivos com as funes de manipulao de strings;

CLOCK.h arquivo com a definio de freqncia de CLOCK;

COMMONOP.h arquivo com macros com operaes comuns;

O arquivo STRING.c contm o cdigo das funes de manipulao de strings, enquanto o arquivo STRING.h
contm os prottipos dessas funes. O arquivo CLOCK.h contem apena a definio da freqncia interna do
processador que ser utilizada no restante do cdigo para clculo de temporizaes e taxas de transmisso. O arquivo
COMMONOP.h traz algumas macros que so freqentemente necessrias, como manipulao de bits, converso de
hexadecimal para decimal e repetio de operaes.

2.1

STRING.h

As funes presentes nesse arquivo so:

// Retorna o tamanho da String


118

uint8_t STRLen(char *string);

// Compara os primeiros "size" caracteres de duas strings, at o limite de seu


// tamanho ('\0') e retorna 1 se forem iguais e 0 caso contrrio.
uint8_t STRCmp(char *string1,char *string2, uint8_t size); // Habilita o ADC

2.2

CLOCK.h

Esse arquivo traz a seguinte definio:

#define F_CPU 20000000 // relgio com cristal externo de 20MHz;

O cdigo deve ser feito utilizando essa definio de uma maneira tal que uma alterao da freqncia de operao
seja automaticamente refletida em todo o cdigo, no alterando as taxas de transmisso e as temporizaes por
exemplo.

2.3

COMMONOP.h

As macros presentes nesse arquivo so:

// Define uma mscara para o b-simo bit


#define BIT(b) (1<<b)

// Seta o bit b1 do byte B


#define SET1b(B,b1) B |= BIT(b1)

// Reseta o bit b1 do byte B


#define RESET1b(B,b1) B &= ~BIT(b1)

// Seta os bits b1 e b2 do byte B


#define SET2b(B,b1,b2) B |= (BIT(b1) | BIT(b2))

// Reseta os bits b1 e b2 do byte B


#define RESET2b(B,b1,b2) B &= ~(BIT(b1) | BIT(b2))

// Seta os bits b1, b2 e b3 do byte B


#define SET3b(B,b1,b2,b3) B |= (BIT(b1) | BIT(b2) | BIT(b3))

// Reseta os bits b1, b2 e b3 do byte B


#define RESET3b(B,b1,b2,b3) B &= ~(BIT(b1) | BIT(b2) | BIT(b3))

// Seta os bits b1, b2, b3 e b4 do byte B


#define SET4b(B,b1,b2,b3,b4) B |= (BIT(b1) | BIT(b2) | BIT(b3) | BIT(b4))

// Reseta os bits b1, b2, b3 e b4 do byte B


#define RESET4b(B,b1,b2,b3,b4) B &= ~(BIT(b1) | BIT(b2) | BIT(b3) | BIT(b4))

// Seta os bits b1, b2, b3, b4 e b5 do byte B


#define SET5b(B,b1,b2,b3,b4,b5) B |= (BIT(b1) | BIT(b2) | BIT(b3) | BIT(b4) | BIT(b5))

// Reseta os bits b1, b2, b3, b4 e b5 do byte B


#define RESET5b(B,b1,b2,b3,b4,b5) B &= ~(BIT(b1) | BIT(b2) | BIT(b3) | BIT(b4) | BIT(b5))
119

// Seta os bits b1, b2, b3, b4, b5 e b6 do byte B


#define SET6b(B,b1,b2,b3,b4,b5,b6) B |= (BIT(b1) | BIT(b2) | BIT(b3) | BIT(b4) | BIT(b5) | BIT(b6))

// Reseta os bits b1, b2, b3, b4, b5 e b6 do byte B


#define RESET6b(B,b1,b2,b3,b4,b5,b6) B &= ~(BIT(b1) | BIT(b2) | BIT(b3) | BIT(b4) | BIT(b5) |
BIT(b6))

// Seta os bits b1, b2, b3, b4, b5, b6 e b7 do byte B


#define SET7b(B,b1,b2,b3,b4,b5,b6,b7) B |= (BIT(b1) | BIT(b2) | BIT(b3) | BIT(b4) | BIT(b5) | BIT(b6) |
BIT(b7))

// Reseta os bits b1, b2, b3, b4, b5, b6 e b7 do byte B


#define RESET7b(B,b1,b2,b3,b4,b5,b6,b7) B &= ~(BIT(b1) | BIT(b2) | BIT(b3) | BIT(b4) | BIT(b5) |
BIT(b6) | BIT(b7))

// Seta os bits b1, b2, b3, b4, b5, b6, b7 e b8 do byte B


#define SET8b(B,b1,b2,b3,b4,b5,b6,b7,b8) B |= (BIT(b1) | BIT(b2) | BIT(b3) | BIT(b4) | BIT(b5) |
BIT(b6) | BIT(b7) | BIT(b8))

// Reseta os bits b1, b2, b3, b4, b5, b6, b7 e b8 do byte B


#define RESET8b(B,b1,b2,b3,b4,b5,b6,b7,b8) B &= ~(BIT(b1) | BIT(b2) | BIT(b3) | BIT(b4) | BIT(b5) |
BIT(b6) | BIT(b7) | BIT(b8))

// Converte o hexadecimal de 8 bits definido pelos carecteres 'H1' e 'H2' em um decimal e o atribui a 'D'
#define HEX2DEC_8(D,H1,H2) if(H1>=65) D = (H1-55)<<4; else D = (H1-48)<<4;\
if(H2>=65) D += (H2-55); else D += (H2-48);

// Converte o hexadecimal de 16 bits definido pelos carecteres 'H1', 'H2', 'H3' e 'H4' em um decimal e o
atribui a 'D'
#define HEX2DEC_16(D,H1,H2,H3,H4) if(H1>=65) D = (H1-55)<<12; else D = (H1-48)<<12;\
if(H2>=65) D = D+((H2-55)<<8); else D = D+((H2-48)<<8);\
if(H3>=65) D = D+((H3-55)<<4); else D = D+((H3-48)<<4);\
if(H4>=65) D += (H4-55); else D += (H4-48);

// Repete a operao OP 2 vezes


#define REPEAT_OP_2(OP) OP; OP

// Repete a operao OP 3 vezes


#define REPEAT_OP_3(OP) REPEAT_OP_2(OP); OP

// Repete a operao OP 4 vezes


#define REPEAT_OP_4(OP) REPEAT_OP_3(OP); OP

// Repete a operao OP 5 vezes


#define REPEAT_OP_5(OP) REPEAT_OP_4(OP); OP

// Repete a operao OP 6 vezes


#define REPEAT_OP_6(OP) REPEAT_OP_5(OP); OP

// Repete a operao OP 7 vezes


120

#define REPEAT_OP_7(OP) REPEAT_OP_6(OP); OP

// Repete a operao OP 8 vezes


#define REPEAT_OP_8(OP) REPEAT_OP_7(OP); OP

// Repete a operao OP 9 vezes


#define REPEAT_OP_9(OP) REPEAT_OP_8(OP); OP

// Repete a operao OP 10 vezes


#define REPEAT_OP_10(OP) REPEAT_OP_9(OP); OP

// Repete a operao OP 11 vezes


#define REPEAT_OP_11(OP) REPEAT_OP_10(OP); OP

// Repete a operao OP 12 vezes


#define REPEAT_OP_12(OP) REPEAT_OP_11(OP); OP

// Repete a operao OP 13 vezes


#define REPEAT_OP_13(OP) REPEAT_OP_12(OP); OP

// Repete a operao OP 14 vezes


#define REPEAT_OP_14(OP) REPEAT_OP_13(OP); OP

// Repete a operao OP 15 vezes


#define REPEAT_OP_15(OP) REPEAT_OP_14(OP); OP

// Repete a operao OP 16 vezes


#define REPEAT_OP_16(OP) REPEAT_OP_15(OP); OP

DEVDrivers

A biblioteca DEVDrivers contm as funes e macros de acesso aos dispositivos, virtuais ou no. Por exemplo,
pode-se criar um relgio virtual que indique a hora atual para o sistema e que se utilize de acesso aos timers do
microcontrolador para isso. Esse relgio seria um dispositivo virtual, uma vez que no haveria de fato um CI externo
responsvel por essa funo.
Essa camada se utilizada da camada MCUDrivers para acessar os perifricos e as IOs do MCU. Sua funo tornar
transparente aplicao a manipulao de dispositivos externos, criando funes que tero uma utilizao em alto
nvel como enviar strings pelo console, acionar bicos ou escrever dados na EEPROM.
Essa camada foi dividida nos seguintes arquivos:

BICOS.c e BICOS.h arquivos com as funes de interface com os bicos injetores (tanto originais quanto
de gasolina);

CONSOLE.c e CONSOLE.h arquivos com funes de acesso ao console, a ser


configurao e depurao do cdigo;

EEPROM.c e EEPROM.h arquivos com funes de acesso EEPROM;

utilizado

para

Os arquivos BICOS.c, CONSONLE.c e EEPROM.c contm os cdigos das funes desenvolvidas, enquanto os
arquivos BICOS.h, CONSOLE.h e EEPROM.h contm os prottipos dessas funes e as definies de tipos referentes
a esses arquivos (que definem as interfaces com a camada DEVDrivers).

3.1

BICOS.h

As funes presentes nesse arquivo so:

// Inicializa o driver dos Bicos

void BInit(void);
121

// Estabelece o Tempo de Injeo do bico "BICO"

void BSetITCorr(uint8_t ITCorr_);

// Comuta os bicos para o combustvel original ou para o combustvel alternativo

void BCommute(B_STATE bState);

Os tipos de dados criados para a execuo dessas funes so:

// Define qual combustvel est em uso: o original ou o alternativo (GNV)


typedef enum {B_ORIGINAL = 0,B_ALTERNATIVE} B_STATE;

3.2

CONSOLE.h

As funes presentes nesse arquivo so:

// Inicia a serial para ser usada pelo console


void CONSOLEInit(CONS_ECHO_STATE consEchoState,uint32_t baudRate);

// Inicia a serial para ser usada pelo console


void CONSOLESetEcho(CONS_ECHO_STATE consEchoState);

// Habilita ou desabilita um bloco a enviar dados pelo console


void CONSOLESetBlock(CONS_BLOCKS block, uint8_t enable);

// Envia uma string de at 128 caracteres.


void CONSOLESendString(char *str, CONS_BLOCKS block);

// Envia um inteiro sem sinal


void CONSOLESendUint_8(uint8_t var, CONS_BLOCKS block);

// Envia um inteiro sem sinal de 16 bits


void CONSOLESendUint_16 (uint16_t var, CONS_BLOCKS block);

// Envia um inteiro com sinal de 16 bits


void CONSOLESendInt_16(int16_t var, CONS_BLOCKS block);

// Envia um inteiro de 8 bits em hexadecimal


void CONSOLESendHex_8(uint8_t var, CONS_BLOCKS block);

// Envia um inteiro de 16 bits em hexadecimal


void CONSOLESendHex_16(uint16_t var, CONS_BLOCKS block);

// Envia um byte pela serial


void CONSOLESendByte_8(uint8_t var, CONS_BLOCKS block);

// Recebe uma string de at byteCount caracteres.


void CONSOLEGetString(char *string, uint8_t byteCount);

// Recebe um inteiro
uint8_t CONSOLEGetInt_8(void);

// Recebe um inteiro de 16 bits


uint16_t CONSOLEGetInt_16(void);

// Recebe um inteiro de 8 bits em hexadecimal


uint8_t CONSOLEGetHex_8 (void);

// Recebe um inteiro de 16 bits em hexadecimal


uint16_t CONSOLEGetHex_16(void);
122

// Essa funo deve ser executada para que as aes seja efetivadas
void CONSOLETask(void);

Os tipos de dados criados para a execuo dessas funes so:

// Enumera os blocos do console, que podem ser habilitados ou desabilitados individualmente


typedef enum {CONS_APP = 0, CONS_IO, CONS_I2C, CONS_EEPROM} CONS_BLOCKS;

// Define se o console deve ou no ecoar os dados recebidos


typedef enum {CONS_ECHO_OFF = 0,CONS_ECHO_ON} CONS_ECHO_STATE;

3.3

EEPROM.h

As funes presentes nesse arquivo so:

// Inicializa a EEPROM
void EEInit(uint16_t EEBaud);

// Desabilita a EEPROM
void EEDis(void);

// Escreve um byte na EEPROM


void EEWrByte(uint16_t address, uint8_t byte);

// Escreve um buffer na EEPROM. O buffer no deve ser deve ser modificado at ser completamente
// escrito na EEPROM. Isso acontece quando o status da EEPROM for IDLE
void EEWrBuffer(uint16_t address, uint8_t *byte, uint8_t size);

// L um byte da EEPROM e o escreve na endereo passado. O Dado s pode ser considerado


// vlido quando o status da EEPROM for IDLE
void EERdByte(uint16_t address, uint8_t *byte);

// L um byte da EEPROM e o escreve na endereo passado. O Dado s pode ser considerado


// vlido quando o status da EEPROM for IDLE
void EERdBuffer(uint16_t address, uint8_t *byte, uint8_t size);

// Verifica o status do mdulo EEPROM


EE_STATUS EEModuleStatus(void);

// Essa funo deve ser executada para que as aes seja efetivadas
void EETask(void);

Os tipos de dados criados para a execuo dessas funes so:

// Enumera os possveis estados da memria EEPROM: em espera ou ocupada


typedef enum {EE_IDLE=0,EE_BUSY} EE_STATUS;

123

Você também pode gostar