anÁlise da implementaÇÃo do protocolo lin em …siaibib01.univali.br/pdf/rodrigo vinicius...

119
RODRIGO VINÍCIUS MENDONÇA PEREIRA ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM HARDWARE E EM SOFTWARE São José (SC), Maio de 2011

Upload: hoangnga

Post on 10-Dec-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

RODRIGO VINÍCIUS MENDONÇA PEREIRA

ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM

HARDWARE E EM SOFTWARE

São José (SC), Maio de 2011

Page 2: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

UNIVERSIDADE DO VALE DO ITAJAÍ

CURSO DE MESTRADO ACADÊMICO EM

COMPUTAÇÃO APLICADA

ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM

HARDWARE E EM SOFTWARE

por

Rodrigo Vinícius Mendonça Pereira

Dissertação apresentada como requisito à

obtenção do grau de Mestre em Computação

Aplicada.

Orientador: Cesar Albenes Zeferino, Dr.

São José (SC), Maio de 2011

Page 3: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

Quando a matéria exerce uma função tão insignificante na produção, há menos resistência

material ao aumento do volume. Os semicondutores representam a derrocada da matéria na

economia. George Gilder, autor de Microcosm

Aquele que recebe de mim uma idéia tem aumentada sua instrução sem que eu tenha diminuída a

minha. Como aquele que acende sua vela na minha recebe luz sem apagar a minha vela.

Thomas Jefferson inventor e pai do sistema de patentes.

Combati o bom combate, terminei a corrida, guardei a fé.

2 Timóteo 4:7

Page 4: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

AGRADECIMENTOS

Agradeço a paciência, a dedicação, o otimismo e a ajuda prestimosa do meu orientador,

professor Dr. Cesar A. Zeferino.

Ao CNPq pela bolsa concedida no âmbito do Programa Nacional de Microeletrônica.

Ao Programa Brazil IP pelo conhecimento compartilhado e pela oportunidade de interagir

pessoas com pessoas tão maravilhosas como a professora Dra. Edna Barros, professor Dr. Elmar

Melcher e toda a equipe da UFPE e do LAD, em especial a pessoa do Jorgeluis Guerra e Adalberto

Teixeira.

Ao professor Dr. José Luís A. Güntzel pelo apoio e infraestrutura cedida no âmbito do

LAPS e principalmente ao amigo Msc. Vinicius Livramento pela valiosa ajuda em todas as etapas

do desenvolvimento do LIN IP.

Aos meus professores que sempre souberam me incentivar a buscar conhecimento e me

encaminharam nos estudos.

Aos amigos (visíveis e invisíveis) pelo apoio e estímulo dedicado ao longo desses anos.

Aos amores da minha vida, tanto do passado, quando aos atuais e principalmente aos do

futuro.

Aos meus filhos, que um dia terei, ou se já tenho, agradeço à vocês.

E sempre a Deus, pela minha família maravilhosa e indescritível.

Page 5: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM

HARDWARE E EM SOFTWARE

Rodrigo Vinícius Mendonça Pereira

Maio/2011

Orientador: Cesar Albenes Zeferino, Dr.

Área de Concentração: Computação Aplicada

Linha de Pesquisa: Sistemas Embarcados e Distribuídos

Palavras-chave: Redes Automotivas, LIN, FPGA.

Número de páginas: 119

RESUMO

No setor automotivo contemporâneo, a maior parte da inovação está relacionada à inclusão

de itens adicionais de conforto, desempenho e segurança do automóvel. Contudo, o maior desafio

para este setor está no preço final que esses dispositivos impõem ao produto. Uma das soluções

encontradas para inovar no setor automotivo consiste no uso de dispositivos eletrônicos interligados

por uma rede intra-veicular padrão, como no caso da arquitetura de rede do tipo barramento CAN –

Controller Area Network, associada a uma rede de baixo custo LIN – Local Interconnect Network.

Nesse contexto, este trabalho vem contribuir com estudos na área de sistemas embarcados por meio

da análise das métricas de implementação das camadas de transporte e de enlace do protocolo

automotivo LIN em um dispositivo FPGA (Field Programmable Gate Array), sob duas abordagens

diferentes: software e em hardware. A primeira abordagem baseou-se na implementação das

camadas do protocolo sobre o processador Altera Nios II. Na segunda abordagem, as camadas do

protocolo foram implementadas como um hardware dedicado, usando Verilog (linguagem de

descrição de hardware). Os resultados demonstram que a solução baseada em hardware apresentou

os menores custos (consumo de energia e área de silício), enquanto que a abordagem baseada em

software apresenta mais flexibilidade para atualizações.

Page 6: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

ANALYSIS OF THE IMPLEMENTATIONS OF THE HARDWARE

AND SOFTWARE LIN PROTOCOL

Rodrigo Vinícius Mendonça Pereira

May/2011

Advisor: Cesar Albenes Zeferino, Dr.

Area of Concentration: Applied Computer Science

Research Line: Embedded and Distributed Systems

Keywords: Automotive Networks, LIN, FPGA.

Number of pages: 119

ABSTRACT

In the contemporary automotive area, the largest part of innovation is related to the inclusion

of additional comfort, performance, and safety items to vehicles. However, the challenge is the final

price that these items impose on the product. One of the solutions adopted to innovate in the

automotive area consists in the use of smart electronic devices interconnected by means of a

standard intra-vehicular network, such as the hierarchical architecture composed of CAN

(Controller Area Network) associated with a low cost sub-network as LIN (Local Interconnect

Network). In this context, this work aims at contributing with the embedded systems area by means

of the analysis of metrics for implementation of the Transport and Link layers of the LIN

automotive protocol in an FPGA (Field Programmable Gate Array) device under two different

approaches: software- and hardware-based. The first approach was based on the implementation of

protocol layers on the Altera Nios II embedded processor. In the second approach, the protocol

layers were implemented as a dedicated hardware described using Verilog hardware description

language. Results demonstrate that the hardware-based approach presented the smaller costs (power

consumption and silicon area), while the software-based approach has more flexibility for updates.

Page 7: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

LISTA DE ILUSTRAÇÕES

Figura 1. Abordagens propostas: (a) baseada em software; (b) baseada em hardware ..................... 17

Figura 2. Formato de um quadro LIN ................................................................................................ 30 Figura 3. Exemplo de um sistema com o processador Nios II ........................................................... 38 Figura 4. Arquitetura do ipPROCESS ............................................................................................... 40 Figura 5. Modelo de testbench ........................................................................................................... 43 Figura 6. Modelo de testbench BVM ................................................................................................. 44

Figura 7. IP adaptador banda base bluetooth ..................................................................................... 49 Figura 8. Modelo de testbench baseado na filtragem de estímulos redundantes ............................... 50 Figura 9. Exemplo de SoC para sistemas automotivos ...................................................................... 53 Figura 10. Módulo LIN ...................................................................................................................... 53

Figura 11. Atores do sistema.............................................................................................................. 59 Figura 12. Diagrama geral de casos de uso das abordagens em software e em hardware ................. 60 Figura 13. Diagrama lógico preliminar do sistema ............................................................................ 62

Figura 14. Diagrama de sequência de um barramento LIN ............................................................... 65 Figura 15. Descrição de topo do LIN HW ......................................................................................... 66 Figura 16. Descrição do LIN HW em blocos lógicos interconectados com o barramento AMBA

AXI............................................................................................................................................. 67

Figura 17. Estrutura BVM do testbench do LIN Bus core ................................................................ 68 Figura 18. Modelo de referência simples ........................................................................................... 69

Figura 19. Modelo de referência duplo .............................................................................................. 69 Figura 20. Emulação do DUV............................................................................................................ 70 Figura 21. Modelo de referência decomposto em seis subsistemas ................................................... 70

Figura 22. Testbench completo .......................................................................................................... 71

Figura 23. Especificação do sistema utilizando a ferramenta SOPC ................................................. 72 Figura 24. Projeto do hardware utilizado no LIN SW utilizando o processador Nios II ................... 73 Figura 25. Diagrama de classes do LIN SW ...................................................................................... 74

Figura 26. Funcionamento do LIN HW TESTBENCH e do LIN HW .............................................. 75 Figura 27. Diagrama de blocos do protótipo para teste físico ........................................................... 77 Figura 28. Bancada de testes LIN ...................................................................................................... 77

Figura 29. Caso de uso tabela de escalonamento de mensagens ....................................................... 78 Figura 30. Fluxo de mensagens enviadas no Barramento LIN .......................................................... 78

Figura 31. Quadro enviado do nodo mestre para o Escravo_0 com a mensagem de ID 0xd3 (escala

em 5 volts) .................................................................................................................................. 79 Figura 32. Quadro enviado do nodo mestre para o Escravo_1 com a mensagem de ID 0x42 e sua

respectiva resposta (escala em 2 volts) ...................................................................................... 80 Figura 33. Gráfico da potência consumida pelo LIN HW ................................................................. 84

Figura 34. Gráfico da potência consumida do LIN SW ..................................................................... 85 Figura 35. Gráfico comparativo em colunas das potências consumidas entre o LIN SW e LIN HW

.................................................................................................................................................... 85 Figura 36. Gráfico comparativo linear das potências consumidas entre o LIN SW e LIN HW ........ 86 Figura 37. Síntese Física do LIN HW ................................................................................................ 87

Figura 38. Resultado final do ciclo de desenvolvimento ................................................................... 87 Figura 39. Etapa 1.1 – Decomposição Simples do Modelo de Referência ........................................ 96 Figura 40. Modelo de referência hierárquico duplo. .......................................................................... 97 Figura 41. Emulação DUV ................................................................................................................. 97

Page 8: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

Figura 42. Decomposição simples do modelo de referência RX ....................................................... 98 Figura 43. Decomposição simples do modelo de referência MUX ................................................... 98

Figura 44. Decomposição simples do modelo de referência LIN2AXI ............................................. 98 Figura 45. Decomposição simples do modelo de referência AXI2LIN ............................................. 99 Figura 46. Decomposição simples do modelo de referência CHECKSUM ...................................... 99 Figura 47. Decomposição simples do modelo de referência TX ....................................................... 99 Figura 48. Decomposição Hierárquica do Modelo de Referência ................................................... 100

Figura 49. Modelo de referência RX hierárquico duplo .................................................................. 100 Figura 50. Modelo de referência MUX hierárquico duplo .............................................................. 101 Figura 51. Modelo de referência LIN2AXI hierárquico duplo ........................................................ 101 Figura 52. Modelo de referência AXI2LIN hierárquico duplo ........................................................ 101 Figura 53. Modelo de referência CHECKSUM hierárquico duplo ................................................. 102

Figura 54. Modelo de referência TX hierárquico duplo .................................................................. 102

Figura 55. Emulação do DUV do modelo de referência RX hierárquico ........................................ 103

Figura 56. Emulação do DUV do modelo de referência MUX hierárquico .................................... 103 Figura 57. Emulação do DUV do modelo de referência LIN2AXI hierárquico .............................. 103 Figura 58. Emulação do DUV do Modelo de Referência AXI2LIN Hierárquico ........................... 104 Figura 59. Emulação do DUV do modelo de referência CHECKSUM hierárquico ....................... 104

Figura 60. Emulação do DUV do modelo de referência RX hierárquico ........................................ 104 Figura 61. DUV hierárquico do modelo de referência RX .............................................................. 105

Figura 62. DUV hierárquico do modelo de referência MUX .......................................................... 105 Figura 63. DUV hierárquico do modelo de referência LIN2AXI .................................................... 106 Figura 64. DUV hierárquico do modelo de referência AXI2LIN .................................................... 106

Figura 65. DUV Hierárquico do modelo de referência CHECKSUM ............................................ 106 Figura 66. DUV Hierárquico do Modelo de Referência TX. ........................................................... 107

Figura 67. Verificação Funcional do LIN HW ................................................................................ 107 Figura 68. Síntese Física – Distribuição da lógica na etapa de placement ...................................... 108

Figura 69. Síntese física – Clock Tree do LIN HW ......................................................................... 109

Quadro 1. Análise comparativa das características de núcleos de propriedade intelectual LIN........ 55

Quadro 2. Análise comparativa dos trabalhos relacionados. ............................................................. 57

Quadro 3. Análise comparativa das características de núcleos de propriedade intelectual LIN........ 89 Quadro 4. Descrição do campo de parada em SystemVerilog. ........................................................ 110 Quadro 5. Descrição do campo de sincronismo em SystemVerilog. ............................................... 110 Quadro 6. Descrição do campo de sincronismo em SystemVerilog. ............................................... 110 Quadro 7. Código-fonte do temporizador do Nios II ....................................................................... 117

Quadro 8. Código interrupção dos PIOs do Nios II ......................................................................... 118

Page 9: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

LISTA DE TABELAS

Tabela 1. Comparação dos resultados das implementações do bloco de cifragem do algoritmo AES

.................................................................................................................................................... 48 Tabela 2.Custos da síntese dos principais blocos do LIN HW para a família Cyclone II ................. 81 Tabela 3.Custos da síntese dos principais blocos do LIN HW para a família Cyclone III ................ 82 Tabela 4. Custos da síntese do LIN SW para as famílias Cyclone II e Cyclone III .......................... 82 Tabela 5. Comparação entre as duas abordagens para a família Cyclone II ...................................... 82

Tabela 6. Comparação entre as duas abordagens para a família Cyclone III .................................... 83 Tabela 7. Potências dissipadas pelo LIN HW operando sob diferentes frequências ......................... 84 Tabela 8. Potências dissipadas pelo LIN SW operando sob diferentes frequências .......................... 84 Tabela 9. Resultados da síntese física do LIN HW para a tecnologia XFAB 0.35μ ......................... 87

Page 10: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

LISTA DE ABREVIATURAS E SIGLAS

ASIC Application Specific Integrated Circuit

BVM Brazil-IP Verification Methodology

CAN Controller Area Network

CPLDs Complex Programmable Logic Devices

CPU Central Processing Unit

CMOS Complementary Metal-Oxide-Semiconductor

CS Chip Select

DC Direct Current

CI Circuito Integrado

DSC Dynamic Stability Control

DUV Device Under Verification

EU União Européia

EUA Estados Unidos da América

FPGA Field Programmable Gate Array

FIFO First In First Out

PWM Pulse-width modulation

HDL Hardware Description Language

IEEE Institute of Electrical and Electronics Engineers

ICC IC Compiler

IP Intellectual Property

IPI Imposto Sobre Produtos Industrializados

ISO International Organization for Standardization

JTAG Joint Test Action Group

LIN Local Interconect Network

LUT Lookup Tables

MCA Mestrado em Computação Aplicada

MICS Mitsubishi Intelligent Cockpit System

NRE Non-Recurring Engineering cost

NOC Network on Chips

OEM Original Equipment Manufacturer

OVM Open Verification Methodology

PALs Programmable Array Logic

PID Protected Identifier

PLAs Programmable Logic AND

PLDs Programmable Logic Devices

PWM Pulse Width Modulation

RX Receiver Bus

SAE Society of Automotive Engineers

SBCCI Symposium on Integrated Circuits and Systems Desig

SoC System-on-Chip

TTNC Time Triggered Network-on-Chip

TLM Transaction Level Modeling

TX Transmitter Bus

UBPs UART base protocols

UART Universal Asynchronous Receiver/Transmitter

Page 11: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

UNIVALI Universidade do Vale do Itajaí

VAN Vehicle Area Network

VCT Volcano Communication Technology

VHDL VHSIC Hardware Description Language

Page 12: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

LISTA DE SÍMBOLOS

bps bits por segundo

K kilo

KHz Kilo Hertz

MHz Mega Hertz

μm Micrometro

Page 13: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

SUMÁRIO

1. INTRODUÇÃO .................................................................................... 14

1.1 PROBLEMA DE PESQUISA........................................................................... 15

1.1.1 Solução Proposta ............................................................................................. 17

1.1.2 Delimitação de Escopo .................................................................................... 18

1.1.3 Justificativa ...................................................................................................... 18

1.2 OBJETIVOS ...................................................................................................... 20

1.2.1 Objetivo Geral ................................................................................................. 20

1.2.2 Objetivos Específicos ...................................................................................... 20

1.3 METODOLOGIA .............................................................................................. 20

1.3.1 Metodologia da Pesquisa ................................................................................ 20

1.3.2 Procedimentos Metodológicos ........................................................................ 21

1.4 ESTRUTURA DA DISSERTAÇÃO ................................................................ 21

2 REDES AUTOMOTIVAS E O PROTOCOLO LIN ....................... 23

2.1 DEFINIÇÕES E CLASSIFICAÇÃO DAS REDES AUTOMOTIVAS ....... 23

2.2 PADRÕES DE REDES AUTOMOTIVAS ..................................................... 26

2.3 PROTOCOLO LIN ........................................................................................... 27

2.4 TÉCNICAS DE PROJETO DE CIRCUITOS INTEGRADOS .................... 32

2.4.1 Métricas de Projeto ......................................................................................... 32

2.4.2 Tecnologias de Circuitos Integrados ............................................................. 33

2.4.3 Processador Embarcado Nios II .................................................................... 36

2.5 A METODOLOGIA DE PROJETO IPPROCESS ........................................ 39

2.6 VERIFICAÇÃO ................................................................................................. 40

2.6.1 Verificação Formal ......................................................................................... 41

2.6.2 Verificação Funcional ..................................................................................... 41

2.7 CONSIDERAÇÕES .......................................................................................... 46

3 TRABALHOS CORRELATOS ......................................................... 47

3.1 COMPARAÇÃO DO DESEMPENHO DE IMPLEMENTAÇÕES DO

ALGORITMO AES .................................................................................................. 47

3.2 COMPARAÇÃO DE METODOLOGIAS DE TESTBENCH PARA

VERIFICAÇÃO FUNCIONAL HIERÁRQUICA................................................. 48

3.3 VERIFICAÇÃO FUNCIONAL DE HW ATRAVÉS DE CO-SIMULAÇÃO

DE HW/SW EM SISTEMAS COMPLEXOS ........................................................ 50

3.4 SISTEMA DE CAIXA-PRETA PARA VEÍCULOS INTELIGENTES COM

COMUNICAÇÃO INTRAVEICULAR LIN/FLEXRAY ..................................... 52

3.5 IMPLEMENTAÇÕES EM HARDWARE DO PROTOCOLO LIN ........... 54

3.6 ANÁLISE COMPARATIVA............................................................................ 56

3.7 CONSIDERAÇÕES .......................................................................................... 58

Page 14: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

4 PROJETO BASEADO NA METODOLOGIA ipPROCESS ......... 59

4.1 ESPECIFICAÇÃO DOS SISTEMAS .............................................................. 59

4.1.1 Atores do Sistema ............................................................................................ 59

4.1.2 Projeto Arquitetural ....................................................................................... 60

4.1.3 Descrição da Arquitetura ............................................................................... 63

4.1.4 Diagrama de Sequência .................................................................................. 65

4.2 ABORDAGEM BASEADA EM HARDWARE – LIN HW .......................... 66

4.2.1 Implementação do IP LIN HW (DUV) ......................................................... 66

4.2.2 Implementação do Testbench ......................................................................... 68

4.2.3 Verificação Funcional ..................................................................................... 71

4.3 ABORDAGEM BASEADA EM SOFTWARE – LIN SW ............................ 71

4.3.1 Implementação do Processador Embarcado Utilizando a Ferramenta

SOPC........................................................................................................................... 72

4.3.2 Programação do LIN SW ............................................................................... 73

5 RESULTADOS .................................................................................... 75

5.1 VERIFICAÇÃO FUNCIONAL ....................................................................... 75

5.2 PROTOTIPAÇÃO E TESTE ........................................................................... 76

5.3 CUSTO DE SILÍCIO ........................................................................................ 81

5.4 TEMPO DE PROJETO .................................................................................... 83

5.5 POTÊNCIA DISSIPADA .................................................................................. 83

5.6 RESULTADOS ADICIONAIS - SÍNTESE EM ASIC .................................. 86

5.7 ANÁLISE DOS RESULTADOS ...................................................................... 88

5.8 CONSIDERAÇÕES .......................................................................................... 90

6 CONCLUSÕES .................................................................................... 91

6.1 TRABALHOS FUTUROS ................................................................................ 92

REFERÊNCIAS ....................................................................................... 93

APÊNDICE A - IMPLEMENTAÇÃO DO ASIC DO LINIP ............ 96

APÊNDICE B ESTÍMULOS GERADOS .......................................... 110

ANEXO A – REVISÃO SISTEMÁTICA – PROTOCOLO DE

BUSCA ...................................................................................................111

ANEXO B – PROGRAMAÇÃO DO TEMPORIZADOR E DA

INTERRUPÇÃO DO SINAL RX ......................................................... 117

Page 15: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

14

1. INTRODUÇÃO

Inovar introduzindo novos itens de conforto, desempenho ou segurança e, ainda assim, não

agregar custos ao projeto final do automóvel é o constante desafio da indústria automotiva. A

principal solução adotada para inovar no setor automotivo consiste no uso de dispositivos

eletrônicos interligados por meio de uma rede intra-veicular padrão (GUIMARÃES, 2007). Em

geral, essas redes são baseadas em arquiteturas do tipo barramento, sendo que, dentre as diversas

tecnologias de redes automotivas, o padrão norte-americano J1850 (OLIVER, 1996) e o seu

correspondente europeu CAN – Controller Area Network (BOSCH, 2008) destacam-se por serem

os mais utilizados.

Com o incremento desses dispositivos eletrônicos no automóvel e o aumento do tráfego de

informações nas redes automotivas, surgiu a necessidade de se adotar arquiteturas de redes

hierárquicas. Nessas arquiteturas, a rede principal (backbone) é associada a sub-redes, aliviando a

carga de comunicação na rede principal. O LIN – Local Interconnect Network (LIN, 2006) é uma

das soluções de sub-redes complementares desenvolvidas para esse fim. Seu protocolo foi

especificado no final da década de 90 pelo LIN Consortium, uma iniciativa formada por cinco

indústrias automobilísticas Européias (Audi, BMW, Daimler Chrysler, VW e Volvo) e duas

indústrias de semicondutores (a Motorola e a VCT – Volcano Communication Technology).

Uma rede baseada no protocolo LIN caracteriza-se por suportar um único nodo mestre

(mono-mestre) e até dezesseis nodos escravos que se comunicam por meio de um canal bidirecional

com um único fio. Com largura de banda na faixa de 1 a 20 kbps, comunicação assíncrona,

dispensando o uso de cristal de quartzo nos nodos escravos, entre outras características, permitiram

alcançar soluções de baixo custo para comunicação entre dispositivos com requisitos de largura de

banda limitados.

Os nodos interconectados ao barramento implementam quatro camadas do protocolo LIN:

(i) Física; (ii) Enlace de dados; (iii) Transporte; e (iv) Aplicação. A camada Física é baseada em um

circuito integrado do tipo transceiver ou PHY (MCP201 da Microchip), enquanto que as demais

camadas podem ser implementadas por software ou por hardware, ou utilizando ambas abordagens.

Tipicamente, em uma implementação LIN baseada em software, as camadas de Aplicação,

Transporte e Enlace do protocolo são programadas para serem executadas pela CPU (Central

Page 16: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

15

Processing Unit) de um microcontrolador. Já em uma abordagem baseada em hardware, as camadas

de Transporte e de Enlace são implementadas na forma de um periférico do microcontrolador, o

qual implementa a camada de Aplicação em software e fornece uma interface para a camada Física.

Outra abordagem possível consiste em implementar em hardware as camadas do protocolo que

necessitam mais tempo de processamento de CPU, como a camada de Enlace de dados e

Transporte. Esta abordagem permite que o microcontrolador utilizado esteja dedicado

exclusivamente para a camada de Aplicação em software. Neste momento, o uso da solução em

hardware justifica-se pela necessidade de reduzir o overhead em uma solução LIN puramente em

software, tais como o cálculo da paridade, identificação do início da transmissão LIN.

Nesse contexto, tendo em vista que não existem trabalhos que analisem a implementação em

software e em hardware do protocolo LIN, esta dissertação de mestrado procurou contribuir por

meio da análise de métricas (como as mencionadas acima) de implementação das camadas de

Transporte e de Enlace do protocolo, utilizando duas abordagens: software e hardware.

1.1 PROBLEMA DE PESQUISA

Como apresentado anteriormente, o protocolo LIN caracteriza-se por suportar um único

mestre e múltiplos escravos, ser de baixo custo e possuir escalabilidade de até dezesseis escravos

por barramento. O LIN é consolidado na indústria automotiva como o protocolo empregado em

aplicações de conforto e controle do automóvel. Entre as diversas aplicações de conforto e controle

podem ser citados, como exemplos, o controle de sistemas de ar-condicionado direcional,

acionamento de vidros e espelhos retrovisores com acionamento elétrico, os sensores do grupo

motopropulsor e os sistemas de acionamento e trava do teto solar, entre outros.

Para reduzir custos e tempo de projeto, o desenvolvimento de subsistemas compatíveis com

o protocolo LIN é em geral baseado em soluções OEM1 (Original Equipment Manufacturer) como

1 Modalidade de venda cujo produto desenvolvido por uma empresa é vendido para outra empresa e esta, por sua vez, se

encarrega de gerar o produto final e alcançar o consumidor. Essa modalidade de venda ocorre devido à necessidade de

cortes de diversos custos como o de pesquisa e de desenvolvimento do produto, gerando um produto final competitivo.

Page 17: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

16

bibliotecas de software, núcleos2 sintetizáveis ou dispositivos periféricos. A Microchip, a Freescale

e a Cypress são exemplos de indústrias que oferecem bibliotecas de software (parciais ou integrais)

com implementações do protocolo LIN para os seus microcontroladores. Já a CAST (CAST, 2007),

a Intelliga (INTELLIGA, 2003) e a BOSCH (BOSCH, 2008) oferecem núcleos sintetizáveis,

implementando parcialmente ou integralmente as camadas do protocolo LIN, em linguagens de

descrição de hardware.

No contexto das soluções baseadas em software, a Microchip oferece bibliotecas que

acompanham seus kits de desenvolvimento LIN para microcontroladores da família PIC16F e

PIC18F. Um exemplo de kit de desenvolvimento da Microchip é o PICDEM 3 CAN-LIN

(MICROCHIP, 2009), o qual foi usado como um dos modelos de referência nesta pesquisa. Já a

Freescale oferece bibliotecas de software para os microcontroladores da família S12X, utilizada no

kit DEMO9S12XEP100 da Softec-Microsystems, usado como o gerador do sinal mestre para os

testes finais do projeto. Por fim, a Cypress disponibiliza bibliotecas de software para os seus kits de

PSoC (Programmable System-on-Chip), uma tecnologia de circuito integrado que inclui um

microcontrolodar e blocos configuráveis de circuitos analógicos e digitais (CYPRESS, 2009). Já no

contexto das soluções baseadas em hardware, alguns núcleos sintetizáveis são disponibilizados

comercialmente pela CAST, pela Intelliga e pela BOSCH. Tais núcleos serão detalhados

posteriormente na Seção 3.5 deste trabalho.

Cada tipo de implementação (baseada em software ou hardware) apresenta resultados

diferentes em relação a métricas de desempenho e de custo, bem como graus específicos de

dificuldade. O conhecimento dessas métricas pode auxiliar a indústria na tomada de decisões quanto

à melhor abordagem a ser adotada em diferentes cenários

No entanto, até o presente momento, não foi possível identificar na literatura trabalhos que

façam uma análise comparativa dos dois tipos de implementação do protocolo LIN, demonstrando

as vantagens, desvantagens e limitações de cada alternativa com base em informações quantitativas

2 Núcleos (do inglês, cores) são blocos de hardware sintetizáveis pré-projetados e pré-verificados que podem ser

utilizados na implementação de um sistema integrado em silício. Também são conhecidos por blocos IP (do inglês,

Intelectual Property blocks) ou IP cores.

Page 18: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

17

e qualitativas. Esta pesquisa buscou então preencher essa lacuna por meio da implementação,

caracterização e análise de soluções LIN baseadas em software e em hardware.

1.1.1 Solução Proposta

A solução proposta para o problema de pesquisa apresentado consiste na implementação das

camadas de Transporte e de Enlace do protocolo LIN nos dois tipos de abordagem (software e

hardware) e na comparação dessas implementações quanto às métricas de desempenho, custo e

flexibilidade de atualização, entre outras. Nesse contexto, a solução proposta consiste na

implementação de nodos LIN escravos baseados no processador embarcado Nios II da Altera e na

modelagem das camadas de Transporte e de Enlace em Verilog para FPGAs (Field Programmable

Gate Array) da Altera.

Na abordagem baseada em software, as camadas de Transporte e de Enlace são

implementadas por meio de funções programadas em linguagem C (conforme ilustrado na Figura

1.a). Já na abordagem baseada em hardware, essas camadas são implementadas na linguagem de

descrição de hardware Verilog (THOMAS et al. 1998), constituindo um periférico do processador

(Figura 1.b). Nas duas abordagens, a camada de aplicação é implementada no processador, via

software, e a camada física é baseada em um circuito integrado comercial.

Aplicação

Transporte

Enlace

NIOS II

FPGA

Física

LIN IP

Transporte

Enlace

Física

FPGA

Aplicação

(a) (b)

Figura 1. Abordagens propostas: (a) baseada em software; (b) baseada em hardware

Page 19: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

18

As duas implementações são sintetizadas em dispositivos lógicos programáveis do tipo

FPGA utilizando uma ferramenta de síntese que forneça métricas para avaliação: o Quartus II da

Altera (2010). A partir de métricas fornecidas pela ferramenta, como células lógicas, LUTs (Lookup

Tables), frequência máxima de operação, bits de memória e potência dissipada é feita a análise

comparativa proposta visando avaliar a seguintes hipóteses:

1. A implementação baseada em software ocupa uma menor lógica;

2. A implementação baseada em software é mais flexível para atualizações; e

3. A implementação baseada em hardware consome menos energia.

1.1.2 Delimitação de Escopo

Nesta dissertação, o escopo do trabalho foi delimitado à implementação de um subconjunto

do LIN compatível com a Revisão 2.1 do protocolo (LIN, 2006), incluindo o modo de diagnóstico

Classe I na camada de Transporte e o modo simples de soma e verificação (checksum) na camada

de Enlace. Para os experimentos de análise, foram definidas duas famílias de FPGA, Cyclone II e

Cyclone III da Altera e para síntese física a tecnologia XFAB 0.35μ, para fins de análise de

métricas.

1.1.3 Justificativa

Estimativas citadas em Beretta (2003) apontavam que, em 2010, do custo total para a

produção mundial de automóveis de US$ 240 bilhões, US$ 150 bilhões seriam gastos em

componentes de hardware e US$ 90 bilhões em software.

Em 2008, a Visteon, empresa especializada no desenvolvimento de hardware automotivo,

que divide seus produtos automotivos em quatro grupos (interior, eletrônica, climatização e outros

sistemas), estimava que, em 2010, suas vendas seriam distribuídas da seguinte forma: 34% devidos

ao grupo de interior, 38% devidos ao grupo de climatização, 25% devidos ao grupo de eletrônica e

os restantes 3% devido a outros sistemas. Isso apontava para aumento expressivo da parcela

referente aos dois primeiros grupos (interior e climatização), os quais corresponderam,

respectivamente, a 27% e a 31% do volume de vendas de 2007 (VISTEON, 2008).

Page 20: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

19

Considerando tais estimativas, evidencia-se que para se tornar competitivo, nos próximos

anos, o mercado automotivo precisará de um modelo de negócios voltado para a redução de custos

de hardware, mas que ao mesmo tempo permita aumentar o conforto dentro do automóvel sem

comprometer a segurança dos seus ocupantes.

Assim, duas abordagens podem ser adotadas na implementação do hardware do carro:

arquitetura centralizada ou arquitetura distribuída. A arquitetura centralizada prevê que uma única

ECU3 (Electronic Control Unit) receba os sinais de todos os sensores (entradas), processe-os e

acione os atuadores (saídas). Já em uma arquitetura distribuída, existem múltiplas ECUs, cada uma

responsável por um subconjunto dos sensores e atuadores do veículo. Essas ECUs são interligadas

por uma rede intra-veicular hierárquica e comunicam-se através de protocolos de comunicação, a

exemplo do protocolo CAN, o qual possui alta velocidade e confiabilidade, associado à sub-redes

LIN, cuja razão “custo por bytes trafegados por nó” é metade que a do CAN. Assim, a presente

dissertação utiliza a arquitetura distribuída com uma ECU principal (mestre) para escalonar as

mensagens LIN entre os múltiplos escravos, estes por sua vez enviam e recebem dados dos sensores

e atuadores para a rede LIN.

Nesse contexto, esta dissertação contribui por meio da análise das métricas da

implementação em software e em hardware do protocolo LIN, bem como os aspectos

metodológicos utilizados no transcorrer do trabalho. A metodologia de projeto adotada para o

desenvolvimento dos núcleos foi o ipPROCESS (LIMA et al., 2005), a qual é baseada em dois

processos de software: RUP – Rational Unified Process (RUP, 2001) e XP – Extreme Programming

(PAPO, 2002) e cuja idéia principal consiste em usar conceitos de Engenharia de Software na

concepção de núcleos de propriedade intelectual (IPs).

A solução aqui apresentada é continuidade do trabalho de conclusão do curso de graduação

do autor (PEREIRA, 2008) e executada no âmbito do Programa Brazil IP do Ministério de Ciência

e Tecnologia (MCT) com apoio Conselho Nacional de Desenvolvimento Científico e Tecnológico

(CNPq). A solução também está inserida no programa UNIESPAÇO da Agência Espacial Brasileira

3 Uma ECU (Electronic Central Unit) é constituída por um sistema embarcado, o qual controla uma ou mais

funcionalidades em um automóvel. É o caso do sistema de injeção do motor ou do sistema de controle de acionamento

dos freios ABS, os quais podem eventualmente estar localizados em uma mesma unidade de controle eletrônico (ECU),

ou separadamente.

Page 21: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

20

(AEB), com o projeto intitulado – Uso do Protocolo LIN na Interconexão de Sistemas em Satélites

Artificiais.

1.2 OBJETIVOS

1.2.1 Objetivo Geral

Analisar métricas de custo, potência, desempenho e flexibilidade de implementações

baseadas em software e em hardware das camadas de Transporte e de Enlace do protocolo do LIN.

1.2.2 Objetivos Específicos

Levantar os requisitos do protocolo LIN e identificar métodos e métricas utilizadas para

avaliação de implementações em software e hardware;

Caracterizar as implementações protocolo de comunicação LIN (camadas de Transporte

e de Enlace) em níveis de hardware e de software; e

Comparar as implementações por meio da análise de métricas de custo, desempenho e

flexibilidade.

1.3 METODOLOGIA

Nesta seção, são apresentados os procedimentos metodológicos utilizados para o

desenvolvimento da dissertação.

1.3.1 Metodologia da Pesquisa

O presente trabalho está enquadrado no contexto de pesquisa aplicada (LAKATOS et al.,

1992), pois os conhecimentos aqui descritos possuem resultados práticos e visíveis em problemas

como a escolha e a análise das métricas de soluções de design de software ou hardware mais

adequado a serem empregadas no desenvolvimento de uma rede automotiva que utilize

necessariamente um barramento LIN.

Este trabalho empregou o método qualitativo (LAKATOS et al., 1992), valendo-se de uma

análise inicial do protocolo LIN, buscando entender o seu mecanismo de funcionamento, analisando

Page 22: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

21

descrições do protocolo e comparando e interpretando os dados de diversas fontes. Em um segundo

momento, valeu-se do método quantitativo (LAKATOS et al., 1992), pois faz uso de dados

estatísticos obtidos pelas ferramentas de síntese para os dois sistemas propostos neste projeto

(software e hardware), tais como:

A potência consumida nos dois sistemas; e

A quantidade de células lógicas para dois sistemas sintetizados em uma mesma família

de dispositivos lógicos programáveis.

Também foi feita uma pesquisa exploratória (LAKATOS et al., 1992), pois as investigações

de trabalhos correlacionados tiveram o intuito de aproximar o pesquisador com o objetivo principal

da pesquisa, a fim de familiarizar o mesmo com as características e peculiaridades do tema a ser

explorado.

1.3.2 Procedimentos Metodológicos

Este trabalho é uma pesquisa exploratória acerca das duas abordagens de desenvolvimento

de Soft IP-cores (Soft IPs) apresentadas anteriormente. Os procedimentos técnicos utilizados são

classificados em: (i) pesquisa bibliográfica, com base em assuntos relacionados a sistemas

automotivos, métricas e desenvolvimento de Soft IPs e metodologia de projeto de Soft IPs; e (ii)

pesquisa experimental, cujo objeto de estudo são métricas do Soft IP-core a serem analisadas em

uma rede automotiva LIN.

1.4 ESTRUTURA DA DISSERTAÇÃO

O presente documento está organizado em seis capítulos e quatro apêndices. O primeiro

capítulo, Introdução, apresentou-se por meio de sua contextualização do tema proposto neste

trabalho. Da mesma forma, foram estabelecidos os resultados esperados por meio da definição dos

objetivos geral e específicos, as limitações do escopo do trabalho e os procedimentos metodológicos

utilizados no desenvolvimento da dissertação. O Capítulo 2 apresenta um breve estudo sobre redes

automotivas, discorrendo sobre aspectos econômicos do uso desses sistemas, os padrões

estabelecidos no mercado e uma breve análise dos aspectos fundamentais do protocolo LIN, objeto

de estudo deste projeto. Além disso, é apresentado um estudo sobre sistemas embarcados, bem

como as métricas de projeto, as tecnologias de circuitos integrados existentes um estudo sobre a

Page 23: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

22

metodologia de processo ipPROCESS. É também feita uma análise sobre verificação formal e

funcional e os trabalhos relacionados. O Capítulo 3 apresenta uma discussão sobre trabalhos

relacionados à implementação em software e em hardware de sistemas de natureza similar ao

protocolo LIN, permitindo assim a identificação de métodos e métricas para a avaliação do

protocolo LIN. No Capítulo 4 são apresentados detalhes sobre projeto do LIN SW e do LIN HW à

luz da metodologia ipPROCESS. Já no Capítulo 5 são apresentados os resultados obtidos da

verificação funcional, das etapas de testes, dos custos de silício e potência consumida, uma análise

dos resultados e por fim as considerações finais. Finalmente, no Capítulo 6, são apresentadas as

conclusões finais, as contribuições e as sugestões para trabalhos futuros.

Page 24: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

23

2 REDES AUTOMOTIVAS E O PROTOCOLO LIN

O primeiro automóvel a gasolina foi produzido na Europa por Karl Benz, em 1885, mas o

impulso industrial foi dado por Henry Ford com o lançamento do FORD MODEL T nos EUA em

outubro de 1908. Neste um século, que separa o pioneirismo de Benz e Ford e a indústria

contemporânea, o automóvel evoluiu e estabeleceu padrões, conceitos e economias. Neste sentindo,

o Capítulo 2 pretende analisar alguns aspectos das redes automotivas modernas, sem a pretensão de

se constituir um estudo completo.

Este capítulo é dividido em sete seções, nas quais são apresentadas definições e

classificações das redes automotivas com relação às topologias utilizadas e as classificações SAE

(Society of Automotive Engineers), entre outros aspectos. São ainda analisados os padrões

estabelecidos de redes automotivas (CAN, MOST, FLEXRAY e LIN) e aspectos principais do

protocolo LIN. Também são apresentadas métricas de projeto de sistemas embarcados, as

tecnologias de circuitos, a metodologia de projeto ipPROCESS, aspectos da verificação de núcleos

e por fim, são apresentadas algumas considerações ao final do capítulo.

2.1 DEFINIÇÕES E CLASSIFICAÇÃO DAS REDES AUTOMOTIVAS

Sistemas automotivos agregam diversos dispositivos eletromecânicos, muito destes

controlados por unidades de processamento central ou ECU (Electronic Central Units), que

interagem entre si. Essa interação somente é possível com a troca de informações entre os sistemas,

como ocorre com o sistema de combustível no qual necessita trocar informação com o painel do

automóvel (dashboard) a fim de informar ao motorista o nível de combustível do tanque. Uma

solução encontrada é a interconexão desses dispositivos através de uma rede automotiva, formando

assim um barramento principal e os barramentos complementares ou sub-redes. Algumas topologias

são amplamente empregadas nesse barramento principal, tais como: (i) estrela; (ii) barramento; e

(iii) em anel.

A escolha da topologia de cada rede dentro do automóvel depende, entre outros fatores, da

eficiência e da velocidade da troca de mensagens (SOARES et al., 1995) e do tipo de arquitetura

escolhida (centralizada ou distribuída).

Page 25: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

24

Em um automóvel, a arquitetura centralizada comum, consiste em uma ECU gerenciando

todas as informações oriundas dos sensores e atuadores do automóvel. O uso dessa arquitetura

implica em uma maior quantidade de cabos interligando os dispositivos bem como convergência

das decisões para a ECU. Ocorre que com o emprego dessa arquitetura, o automóvel para de

funcionar no caso de uma pane na unidade central. Ainda assim, a arquitetura centralizada possui

aspectos positivos devido à simplicidade da interconexão e por dispensar uma lógica mais complexa

para a aquisição dos dados.

Já na arquitetura distribuída, as ECUs são interligadas por uma rede de comunicação cuja

função é a troca de mensagens pré-estabelecidas. Essa arquitetura resulta em sistemas mais

robustos, pois uma pane4 de uma ECU não compromete a comunicação entre os outros dispositivos.

Outro aspecto que deve ser levado em consideração é a redução no cabeamento5 do automóvel, o

que significa menor tempo na montagem, menor custo de manutenção e peso final do automóvel.

O uso dessa arquitetura somente foi possível com a utilização em larga escala de

dispositivos OEM (Original Equipment Manufacturer), tanto em nível de hardware quanto em

software. Eles tornaram as redes distribuídas mais modulares e permitiram que a indústria avaliasse

melhor os custos finais do automóvel. Segundo Soares et al. (1995) vários são os fatores que tornam

a utilização dessa arquitetura mais atraente, tais como: (i) custo/desempenho; (ii) tempo de resposta;

(iii) modularidade; (iv) confiabilidade; e (v) concorrência. Este último, utilizado em sistemas que

necessitam de processamento concorrente.

As redes automotivas são padronizadas por órgãos internacionais como a SAE, a ISO

(International Organization for Standardization) e o IEEE (Institute of Electrical and Electronics

Engineers), de forma que todas as especificações e normalizações sejam cumpridas pelas empresas

que se dispõe a trabalhar com esses padrões. A SAE também é a responsável por especificações de

padrões automotivos como CAN (SAE J1939) e LIN (SAE J2602). Nesse sentido, a SAE classifica

as redes automotivas em:

4 Considerando uma pane que isole a referida ECU da rede de comunicação, ou seja, que não comprometa a integridade

da rede. 5 Tendo em vista uma arquitetura centralizada ou ponto-a-ponto, cujos dispositivos são interligados à ECU utilizando

um cabo de dados e alimentação.

Page 26: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

25

SAE – Classe A: protocolos utilizados em dispositivos como sensores e atuadores

inteligentes. Esses dispositivos não executam tarefas críticas dentro do automóvel e em

geral atuam em sistemas cuja taxa de transmissão é baixa, na faixa entre 1 e 10 kbps6.

Segundo Lupini (2004), utilizam SAE - Classe A em seus dispositivos: a BMW com o

I - Bus (Instrumentation bus); a Fiat, Daimlerchrysler, Honda, Jaguar, Renault e

Volkswagen com o LIN; Ford e General Motors com a UART (Universal Asynchronous

Receiver/Transmitter); Mitsubishi com o MICS (Mitsubishi Intelligent Cockpit System);

e a Peugeut com a VAN (Vehicle Area Network);

SAE – Classe B: compreendem os dispositivos cuja taxa de transmissão está entre 10 e

125 kbps. São amplamente utilizados em interconexões de ECUs devido a aspectos

como: suporte a modo diagnóstico, escalabilidade, detecção de erros entre outros.

Segundo Lupini (2004), utilizam SAE – Classe B em seus dispositivos a AUDI com o

CAN, ABUS e ISO 9141-2 (diagnóstico); a BMW com o TTP/B (TimeTriggered

Protocol/B), ISO 9141-2 (diagnóstico) e o CAN7; a DaimlerChrysler VPW J1850, ISO

9141-2 (diagnóstico) e Néon 1995; a Citroën e a Fiat com a VAN; a Ford com o SCP,

ISO 9141-2 (diagnóstico) e MSCAN; a General Motors com a UART e GMLAN; a

Honda com o J1850 e Single-wire CAN; e a Jaguar com o J1850, CAN e o Sallon;

SAE – Classe C: aplicado em dispositivos cuja taxa de transmissão está compreendida

na faixa entre 125 kbps e 1 Mbps. Esse protocolo envolve dispositivos que requerem

transmissão em tempo real, como o sistema de navegação e cruzeiro e os sistemas de

segurança como o ABS (Anti-lock Braking System). Lupini (2004) cita o CAN e suas

variações como o protocolo mais utilizado pela indústria automotiva; e

6 O LIN Consortium (2006) é considerado um protocolo classe A.

7 Segundo Lupini (2004) a BMW utiliza o CAN somente para os seguintes automóveis: 530i, 540i, 730i, 740i, 840i e

850i.

Page 27: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

26

Infotainment8: consistem em protocolos que integram o uso de computadores pessoais,

GPS (Global Positioning System), Web e vídeo/som ao veículo, ou seja, são dispositivos

relacionados ao entretenimento dentro do veículo e à troca de informação com a rede

mundial de computadores.

2.2 PADRÕES DE REDES AUTOMOTIVAS

Para Day (2005), mesmo com a maturidade dos padrões de protocolo de comunicação

automotivos, as intermináveis variações e versões dos produtos OEM dificultam a venda dos

dispositivos em larga escala. Dessa forma, em especial as grandes montadoras têm focado suas

tecnologias de redes automotivas em padrões consolidados como o CAN, LIN, FlexRay e MOST. O

benefício da adoção de um padrão dá-se pela possibilidade do uso de diversos fornecedores (livre

concorrência), a significativa redução de custos, fornecedores mais focados em suas competências,

e outros fatores, como tempo de projeto e confiabilidade dos sistemas.

Nesse sentido, o protocolo CAN consolidou-se como padrão ISO 11898 (para aplicações de

alta velocidade, classe C) e ISO 11519 (para aplicações de baixa velocidade, classe B), cuja

normativa especifica rigorosamente detalhes do meio de transmissão, métodos de tolerância a

falhas, controle e confinamento de erros9, tipo de mensagens e detalhes de

temporização (GUIMARÃES, 2007).

Já o protocolo FlexRay (BMW, 2005) é amplamente utilizado pela BMW em especial nos

sistemas de controle de suspensão, ou DSC (Dynamic Stability Control), do BMW X5. O FlexRay

em sua topologia de rede utiliza várias CPUs, sendo que apenas uma CPU ocupa o barramento de

cada vez. A topologia do protocolo FlexRay ainda permite a existência de um canal (single channel)

8 Infotainment trata-se de um termo adotado para padrões de rede que agregam informação e entretenimento no

automóvel. Esse conceito vem sendo amplamente divulgado especialmente quando se trata de acesso à rede mundial de

computadores através de tecnologias sem fio. Não existem limites para esse novo conceito, tendo em vista que, no

presente momento já se associa a palavra infotainment a smart-grid. Nesse contexto, é possível vislumbrar um cenário

com automóveis com GPS trocando informações entre si, determinando melhores rotas, fornecendo ao condutor

informações de preços e qualidade de combustível. Outro cenário possível é a compra on-line de mídias pelo condutor,

armazenamento desses dados no automóvel, a utilização de comandos viva-voz e projeção de informações acerca das

condições da estrada no vidro frontal do automóvel (HUD - Head Up Display). 9 Confinamento de erros é uma característica que delimita a propagação dos erros no barramento, ou seja, a ocorrência

de uma pane em uma unidade central não acarreta na pane de todo o sistema.

Page 28: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

27

ou dois canais (dual channels), para garantir redundância. Este protocolo ainda é subdividido em

grupo de comunicação, distribuído em topologias de barramento, estrela e híbrida (combinação de

topologia barramento e estrela).

O protocolo MOST (Media Oriented Systems Transport) cobre aspectos relacionados a

transmissão multimídia e infotainment no automóvel. A rede MOST caracteriza-se por ser de fácil

uso, amplo escopo de aplicações, flexibilidade, sinergia entre consumidor e indústria e baixo custo

de implementação (MOST, 2010). A empresa VECTOR possui diversas soluções que utilizam

MOST, tais como ferramentas de análise da rede, software em conformidade com o padrão

AUTOSAR10

para ECU, ferramentas de desenvolvimento e teste e ampla documentação.

Outro protocolo amplamente utilizado em dispositivos inteligentes11

é o LIN, em especial

devido ao seu baixo custo e por ser complementar ao CAN. O protocolo LIN é utilizado em

dispositivos de baixa velocidade (entre 1 kbps e 20 kbps), para complementar aplicação como

travas de porta, janelas e sistemas de ajuste de banco, entre outros dispositivos. Por ser o protocolo

alvo deste trabalho, a seção a seguir apresenta uma descrição mais detalhada sobre ele.

2.3 PROTOCOLO LIN

Charette (2009) ressalta a evolução da eletrônica no automóvel analisando a primeira ECU

automotiva produzida comercialmente, cujo propósito único era controlar o sistema de ignição

eletrônica do Tornado 1977 da GM, com as atuais 30 ou 50 ECUs utilizadas em carros de baixo

custo. A idéia de usar redes para interligar esses dispositivos dentro de um automóvel emergiu de

práticas e arquiteturas de redes adotadas na década de 1980 pelos maiores fabricantes de

automóveis do mundo. Na sua grande maioria, esses dispositivos eram interligados utilizando o

padrão UART, mas, mesmo dividindo características comuns, eram raramente compatíveis devido à

grande gama de fornecedores e seus padrões proprietários. Neste sentido, o amadurecimento das

redes automotivas começou com o surgimento de práticas e da adoção de arquiteturas padrão pelos

10

AUTOSAR - Automotive Open System Architecture, é uma arquitetura de software aberto e padronizado para

sistemas automotivos, desenvolvido em conjunto com grandes montadoras de automóveis, fornecedores e

desenvolvedores de ferramentas automotivas. ( www.autosar.org) 11

O autor deste trabalho define como Dispositivos Inteligentes em Automóveis todo(s) dispositivo(s) que troca(m),

repassa(m) ou adquire(m) informações de sensores e atuadores, através de um protocolo de comunicação com outro(s)

dispositivo(s).

Page 29: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

28

grandes fabricantes automotivos. Estas arquiteturas baseadas na UART12

compartilhavam

características comuns, mas raramente eram compatíveis entre si (RUFF, 2003).

Padronização do protocolo e adoção pela indústria automotiva

A padronização do protocolo foi estabelecida pelo LIN Consortium (LIN, 2006), sendo a

primeira revisão estável a revisão 1.1 em 1990, seguida de grandes mudanças na revisão 1.3 e

revisão 2.0. Esta última expandindo os modos de configuração do barramento e introduzindo a

capacidade de diagnóstico do sistema. Atualmente, vigora a revisão 2.1, sendo que essas

modificações trouxeram uma flexibilidade maior, mas aumentaram potencialmente a complexidade

do sistema. Inicialmente as montadoras norte-americanas foram temerosas em adotar o LIN como

um padrão para interconectar seus dispositivos. Contudo, com a proliferação de componentes de

baixo custo bem como a simplificação dos processos de manufatura, a SAE adotou o protocolo e

influenciou fortemente na revisão 2.1. Com as mudanças drásticas a partir da revisão 2.0, a qual

expande as versões anteriores, foram abordadas questões como: (i) recursos adicionais de

diagnóstico; e (ii) interfaces de ferramentas padrão. Como mencionado anteriormente, essas

modificações proporcionaram maior flexibilidade, entretanto aumentaram ao mesmo tempo a

complexidade do sistema.

Toda essa inquietação gerada pelos fabricantes de automóveis dos EUA, combinada com a

falta de representação direta do Consórcio LIN na América do Norte, levou a SAE a formar uma

força-tarefa que assessorou e influenciou a nova revisão do LIN, o SAE J2602. Dessa forma, foi

garantida uma adoção global do padrão (RUFF, 2003). A União Européia (UE) e os Estados Unidos

da América (EUA) aprovaram o LIN, principalmente devido à proliferação dos diversos

componentes de baixo custo (em especial chineses), a redução dos custos e simplificação dos

sistemas de manufatura que utilizam LIN.

Segundo Ruff (2003), soluções em hardware especializado (ASIC semi-custom) para LIN

podem ser desenvolvidas em larga escala (baixo custo). Essas soluções simplificam etapas e

questões de fabricação, desenvolvimento e manutenção de sistemas, cujos problemas são

recorrentes na indústria automotiva. Uma tendência de soluções especializadas está na integração e

12

São comumente chamados de UBPs - UART base protocols

Page 30: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

29

automatização dos detalhes do protocolo LIN dentro do próprio hardware (alguns detalhes são

tratados no software, como é o caso da sinalização de início de pacote). Essas soluções simplificam

etapas e questões de fabricação, desenvolvimento e manutenção de sistemas, cujos problemas são

recorrentes na indústria automotiva. Outro grande benefício da implementação de hardware é a

possível integração com outros dispositivos semicondutores, cujos custos, em geral foram reduzidos

devido ao alto nível de integração dos semicondutores (RUFF, 2003).

Dessa forma, supõe-se que o hardware dedicado utilizado na manipulação lógica dos

protocolos não é mais do que uma etapa de integração entre núcleos, tanto que essa integração vem

redefinindo as fronteiras entre hardware embarcado e software gerenciando os dispositivos. A

integração de funcionalidade em dispositivos semicondutores compreende combinar componentes

discretos, circuitos analógicos, lógica digital e reguladores de tensão em um único dispositivo.

Essa integração proporciona projetos de módulos eletrônicos para o veículo com dimensões

reduzidas e mais confiáveis, além de possibilitar o incremento desses módulos na rede do

automóvel, em especial em locais cuja arquitetura do veículo não seja possível ou economicamente

viável.

Características do protocolo

As características mais marcantes do protocolo LIN são: sistema mono-mestre com

múltiplos escravos (até 16 escravos) e monofilar, taxa de transferência entre 1 e 20 kbps e baixo

custo de silício (baseado no padrão UART/SCI), entre outras.

A Figura 2 descreve o formato da mensagem LIN, cujos dados são encapsulados em quadros

(frames) de dados com estrutura fixa, ou seja, que necessariamente deve conter um campo de

cabeçalho (também chamado de request, o qual identifica o tipo de requisição) e outro campo de

resposta (chamado de response) (LIN, 2006). O cabeçalho deve, necessariamente, conter: (i) um

campo de parada (break-field); (ii) um campo de sincronização; e (iii) um byte de identificação do

referido quadro. O campo de resposta encapsula: os (iv) dados do protocolo LIN; e um (v) byte de

soma e verificação (LIN, 2006).

Page 31: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

30

O break-field indica o início da transmissão de um novo quadro, o qual difere do caractere

ASCII zero (0x00) de uma UART por possuir extensão entre 11 e 14 bits. Já os campos que se

seguem possuem o padrão UART/SCI 8N113

(LIN, 2006). Depois do break-field vem o campo de

sincronização, o qual é representado pelo caractere hexadecimal 0x55 e viabiliza que o escravo se

sincronize com o clock do mestre (LIN, 2006). O campo de identificação permite que o escravo

saiba como interpretar o campo de dados a seguir. Além disso, o campo de identificação reserva os

bits 6 e 7 para fim de verificação por meio da paridade (LIN, 2006). A sequência de dados pode

possuir entre 2 ou 4 ou 8 bytes de dados, seguido do byte de soma e verificação, o qual garante a

correta recepção do campo de dados.

Figura 2. Formato de um quadro LIN

Fonte: LIN Consortium (2006)

Para Ruff (2003), a primeira geração de soluções LIN exigia que o nó mestre gerasse um

break-field de 13 bits. Esse comprimento, anormal para uma UART, era gerado de duas formas. Na

primeira forma, é responsabilidade do desenvolvedor utilizar os mecanismos de software descritos a

seguir:

13

Oito bits de dados, sem paridade e um stop bit.

Page 32: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

31

Configurar o bit-rate da UART para ser 30% mais lento do que o bit-rate correto da

rede;

Gerar um break-field com 10 bits, que poderia aparecer para o resto da rede como 13

bits; e

Reconfigurar o bit-rate para o valor correto do protocolo LIN.

Essa solução proporciona uma significativa sobrecarga (overhead) de software,

especialmente considerando que tal processo deve ser realizado em todos os quadros de mensagem

enviada pelo mestre. A segunda alternativa, menos elegante, segundo Ruff (2003), faz uso de uma

característica específica da maioria das UARTs: mantendo um bit de controle ativo por tempo

suficiente para o envio de um segundo break-field, o que possibilita gerar o break-field com o

tamanho de 20 tempos de bit na rede. Isso foi considerado pela maioria dos desenvolvedores como

uma solução inaceitável devido ao enorme desperdício de banda do barramento (RUFF, 2003).

Assim, a solução encontrada pela indústria de semicondutores foi permitir que a UART transmitisse

o break-field com 13 bits de comprimento, como ocorre com a família de microcontroladores da

Freescale HCS12.

Outro aspecto do protocolo LIN está nos tipo de mensagens enviadas no barramento. O

protocolo possui dois tipos de mensagens distintas: (i) mensagens de transmissão de quadros (frame

request), as quais contêm dados enviados do mestre para o escravo com um campo requisição

seguido de um campo de resposta enviado pelo mestre; e (ii) mensagens de quadro de resposta

(frame response), na qual o mestre envia um campo de requisição e aguarda um campo de resposta

enviado pelo escravo. Em ambos os casos, o campo de requisição é enviado pelo nó mestre.

O protocolo (LIN, 2006) descreve ainda uma especificação da interface de programação

(API), a LIN API. Essa interface de programação abstrai da camada de Transporte detalhes da

configuração da rede LIN, facilitando para o usuário comum a criação de aplicações. A API descrita

é focada no transporte de sinais dentro do barramento LIN, provendo assim uma maior flexibilidade

na configuração do protocolo. A LIN API trata da inicialização, processamento e interação de sinal

entre a aplicação e o núcleo LIN. A especificação também detalha uma API para identificação e

configuração do nodo e outra API descrevendo detalhes da camada de Transporte. Toda essa

descrição tratada pelo protocolo facilita para o desenvolvedor a criação de soluções, em especial de

baixo custo utilizando microcontroladores.

Page 33: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

32

Com o passar do tempo, o protocolo sofreu modificações, proporcionando um grande

desafio para as montadoras e fornecedores de produtos. Para Ruff (2003) a especificação LIN

mantém a promessa de se tornar um padrão global para redes de sensores e sistemas de acionamento

de baixo custo. Basta analisar as variedades de dispositivos apresentados pela indústria de

semicondutores, cuja gama de soluções OEM vai de microcontroladores e transceivers até a

possibilidade de uso de códigos abertos e kits de desenvolvimento para acelerar o processo de

desenvolvimento de sistemas utilizando o protocolo. Outro aspecto interessante que deve ser

mencionado, que devido às características do protocolo, as aplicações em geral estão relacionadas a

sistemas de controle da porta (acionamento do vidro elétrico), controle do assento, iluminação

veicular, sistemas de sensores do volante, controle de posição dos espelhos retrovisores, além do

controle e acionamento do teto solar, entre outras possíveis soluções que abrangem as

características do protocolo LIN.

2.4 TÉCNICAS DE PROJETO DE CIRCUITOS INTEGRADOS

Segundo Vahid (2002), foi estimado que, em 1999, uma típica casa norte-americana possuía

um computador tipo desktop e mais outros 35 a 50 computadores embarcados. Além disso, em

geral, um computador embarcado executa um único programa repetidamente e é sujeito a fortes

restrições quanto ao custo do produto, às suas dimensões físicas, ao desempenho e ao consumo de

energia elétrica.

2.4.1 Métricas de Projeto

As métricas ou requisitos de projeto servem como referência para medir as características, a

qualidade e a evolução do sistema desenvolvido. Quanto mais próximo o projeto está das métricas,

mais fácil será para entender e avaliar os atributos do sistema criado. Segundo Vahid (2002), as

métricas mais comuns utilizadas em sistemas embarcados são:

Custo NRE (Non-Recurring Engineering): custo relacionado ao desenvolvimento inicial

do sistema, cuja manufatura de novas unidades não incorre em novo custo NRE

adicional;

Custo unitário: custo de produção de cada exemplar do sistema;

Page 34: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

33

Tamanho: define o espaço físico que o sistema utiliza para encapsular a sua

funcionalidade;

Desempenho: está relacionado ao tempo de execução do sistema;

Consumo de energia: consiste na quantidade de energia utilizada pelo sistema (também

representada pela potência dissipada);

Flexibilidade: compreende a característica de mudar uma funcionalidade sem a

necessidade de novamente re-projetar todo o sistema, ou seja, sem maiores custos NRE

(Non-Recurring Engineering);

Time-to-Prototype: tempo para o desenvolvimento de uma versão estável de um sistema;

Time-to-Market: tempo entre a concepção de um sistema e a venda ao consumidor;

Segurança: consiste na probabilidade do sistema não causar danos ao seu ambiente ou

usuários; e

Exatidão (correctness): consiste na correta implementação do sistema, cuja

funcionalidade esperada condiz com a implementação executada.

2.4.2 Tecnologias de Circuitos Integrados

Para Vahid (2002), todo o processador deve ser implementado em um circuito integrado

(CI). A maneira como os transistores e outros periféricos são interconectados no CI é o que torna

uma tecnologia diferente da outra. Nesse sentido, existem diversos processos para fabricação dessas

tecnologias de semicondutores, sendo a mais comum a CMOS (Semicondutor Metal-Óxido

Complementar). Um CI pode ser fabricado para implementar uma funcionalidade específica ou

mesmo ser genérico o suficiente para implementar qualquer funcionalidade. As três principais

tecnologias de circuito integrado são: full-custom, semi-custom e lógica programável.

Na tecnologia full-custom, todas as camadas do CI são otimizadas para uma implementação

específica em um sistema embarcado (Vahid 2002). Essa otimização inclui todas as etapas de

fabricação do transistor e as etapas de síntese lógica e síntese física do projeto. O uso de tecnologia

full-custom possui uma escala de integração grande entre os blocos lógicos, entretanto também

possui um custo NRE bastante alto e longo time-to-market. O emprego dessa tecnologia é

Page 35: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

34

justificável em grandes volumes de manufatura para sistemas que requer um desempenho muito

grande.

Na tecnologia semi-custom, o projeto é desenvolvido utilizando blocos pré-existentes ou

Standart Cells14

. Somente na etapa final são estabelecidas as conexões por meio de interligações

entre as células lógicas. Os CIs semi-custom são os mais populares do mercado, pois possuem boas

características de desempenho e tamanho com um custo NRE muito menor se comparado com os

CIs full-custom. Já na tecnologia de lógica programável, ou CI programável existe duas tecnologias

que se destacam: os PLDs e os FPGAS.

Os dispositivos lógicos programáveis ou PLDs (Programmable Logic Devices) possuem

arranjos de células lógicas com interconexões programáveis eletricamente. Dessa forma o projetista

fica encarregado de configurar as interconexões das células, dispensando a participação do

fabricante. Os PLDs podem ter diferentes níveis de densidade lógica. Segundo Brown et al. (1996),

os primeiros dispositivos de baixa densidade desenvolvidos para programar circuitos lógicos foram

os PLAs (Programmable Logic Array). Os PLAs são constituídos por arranjo de dois tipos de portas

lógicas programáveis: a porta lógica AND e a porta lógica OR. Um segundo tipo são os PALs

(Programmable Array Logic), os quais diferem dos PLAs por não possuírem a porta lógica OR

programável, mas sim fixa. Já os CPLDs (Complex Programmable Logic Devices) possuem de

baixa a média densidade lógica e caracterizam-se por utilizarem uma estrutura de interconexão

contínua em que os atrasos são não cumulativos, possuírem sincronização (timing) fixa e previsível

e rápida compilação do projeto. Além dos PLDs, existem os FPGAs (Field Programmable Gate

Array ou Arranjo, ou matriz de portas programável em campo) que possuem uma densidade lógica

de média a alta, com estrutura de interconexão segmentada, resultando em atrasos acumulativos,

variável com roteamento e não previsível. A compilação é mais lenta (VAHID, 2008).

A tecnologia mais consolidada de CI programável é o FPGA (VAHID, 2008). Essa

tecnologia é basicamente constituída de blocos de entrada e saída, tabelas de consulta (LUTs –

Lookup Tables) e matrizes de chaveamento. Segundo Vahid (2008), FPGAs fundamentalmente

14

Para Vahid (2008) um projeto que utiliza células padrão ou standard cells usa bibliotecas de células que utilizam

leiautes prévios. Essas células devem ser escolhidas conforme a especificação do projeto (low-power, RF, entre outras),

devendo ser interconectadas formando assim um circuito.

Page 36: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

35

implementam lógica combinacional utilizando memórias para implementar as tabelas de consulta.

Para implementar circuitos sequenciais, em cada saída da tabela lookup há um flip-flop. Assim, a

cada ciclo de clock, o flip-flop é carregado com o valor correspondente da tabela de consulta. Com o

uso das matrizes de chaveamento é possível programar as conexões entre as tabelas de consulta,

customizando assim as conexões entre as memórias. Por fim, existem os blocos de entradas e saídas

responsáveis pelos interfaceamento entre as saídas das tabelas de consulta e as entradas e saídas do

FPGA. Este bloco consiste em buffers e um conjunto de circuitos de chaveamento ou

multiplexadores, que funcionam como pinos bidirecionais entrada e saída do FPGA.

A pioneira na tecnologia de dispositivos lógicos programáveis do tipo FPGA foi a Xilinx. A

tecnologia foi criada inicialmente em 1984 para suprir a demanda para o desenvolvimento de

circuitos integrados customizados. Não obstante, a Altera foi pioneira na criação e desenvolvimento

de dispositivos do tipo CPLD, em 1983, suprindo a demanda por dispositivos não voláteis para a

indústria de semicondutores.

Do ponto de vista comercial, os FPGAs possuem um preço unitário maior que os CIs (full-

custom ou semi-custom) produzidos em escala, mas constituem em uma boa opção quando a

necessidade é de um projeto customizado, com poucas unidades, baixo time-to-market, rápido time-

to-prototype e exatidão, entre outros fatores.

Nesse contexto, o desenvolvimento de um projeto de circuito digital para um CI exige

semanas ou mesmo muitos meses de esforço das equipes de projeto. Esse esforço possui custo

considerável, tanto em mão-de-obra quanto em ferramentas de desenvolvimento. Dessa forma,

projetos de CIs full-custom ou semi-custom que possuam algum risco ao investidor, tal como erros

na especificação, na síntese lógica ou na síntese física, não se justificam. Assim, quando requisitos

de tamanho e consumo de energia (low-power), entre outros, não são determinantes e quando existe

a necessidade de desenvolvimento rápido, justifica-se então o uso de tecnologias de CI

programáveis (VAHID, 2008), como os PLDs e FPGAS.

Para facilitar o desenvolvimento de aplicações, fabricantes ou empresas especializadas

oferecem soluções pré-projetadas e pré-verificadas para serem utilizadas na tecnologia desejada.

Estas soluções são os núcleos (do inglês, cores) ou blocos de propriedade intelectual – Intellectual

Property (IP). Assim, por se tratar de propriedade intelectual, todos os núcleos estão sujeitos a

alguma forma de licença, patente ou direito autoral.

Page 37: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

36

Os núcleos são desenvolvidos para uma tecnologia alvo (ex. FPGAs ou ASIC) e são

descritos utilizando alguma linguagem de descrição de hardware (HDL – Hardware Description

Language), tal como VHDL ou Verilog. Segundo Zeferino (2003), os núcleos disponibilizados ao

projetista de integração são classificados segundo a forma como são disponibilizados pelo

fabricante, em:

Soft IP-core: HDL sintetizada para diferentes processos de fabricação. Possui grande

flexibilidade, contudo a área, o timing e a potência consumida não podem ser estimados

devido à necessidade de uma tecnologia-alvo;

Netlist ou firm-core: descreve a conectividade de um projeto, ou seja, contém

informações relativas ao posicionamento e roteamento da lógica na tecnologia alvo.

Inclui uma combinação do RTL sintetizado, a biblioteca de referência da tecnologia,

detalhamento do floorplan e o detalhamento do roteamento (netlist) (LIMA et al., 2005);

e

Máscara da tecnologia ou hard-core: contém todas as informações de leiaute e

temporização (timing) do circuito. Hard-cores são otimizados para um melhor

aproveitamento de área e consumo de energia, contudo não são flexíveis a mudanças,

como os modelos anteriores.

Para Tobar (2005), uma das principais características de um bloco IP está na sua prévia e

clara definição da forma de comunicação do bloco, no fato de ser sintetizável e atingir métricas de

exatidão que asseguram que a implementação executada condiz com a funcionalidade esperada.

2.4.3 Processador Embarcado Nios II

Diversas são as soluções de processadores do tipo Soft-IPs cores que atendem a demanda de

flexibilidade e baixo custo (Nios II, ARM, Microblaze, etc). A arquitetura desses processadores

(RISC15

, CISC16

, SPARC17

) evidencia a fácil programação dos microcontroladores e mantém a

flexibilidade de customizar aplicações, tais como processamento de sinais (DCT, FIR), automotiva

15

RISC – Reduced Instruction Set Computing 16

CISC – Complex Instruction Set Computing 17

SPARC – Scalable Processor Architecture

Page 38: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

37

(CAN, LIN, MOST) e telecomunicações (GSM, 3G, CDMA). A comunicação entre o processador e

os blocos customizados se dá por meio de barramentos proprietários como o AMBA, Avalon e o

IBM CoreConnect (YASSINE et al., 2004), costumeiramente utilizando escrita e leitura em blocos

de memória por meio de uma lógica de controle.

O processador Nios II (ALTERA, 2011) pertence à família dos Soft-IPs cores, RISC e de

propósito geral. As principais características desse processador são: (i) set de instrução de 32bits

(caminho de dados e espaço de endereçamento); (ii) 32 registradores de propósitos gerais; (iii)

suporte a MMU; (iv) ambiente de desenvolvimento baseado em Eclipse (Integrated Development

Environment – IDE); (v) temporizadores; e (vi) diversas formas de interrupções e de acesso a

periféricos. Assim, os sistemas desenvolvidos utilizando o processador Nios II são similares a um

microcontrolador ou mesmo a “computador em um chip” (ALTERA, 2011). Esses sistemas

constituem um arranjo do núcleo do Nios II, periféricos e memórias on-chip, controladoras de

interfaces de comunicação com dispositivos off-chip, tudo implementado em um único dispositivo

do tipo FPGA.

Na Figura 3, tem-se um exemplo de um sistema que utiliza Nios II. Nessa figura, é possível

observar os periféricos externos e suas controladoras, como memórias Flash, LCD e Ethernet

MAC/PHY, bem como temporizadores e UART, todos interligados ao processador Nios II por meio

do barramento Avalon e programados utilizando JTAG (Joint Test Action Group ou IEEE 1149.).

Page 39: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

38

Figura 3. Exemplo de um sistema com o processador Nios II

Fonte: Altera (2011)

A maior diferença entre o Nios II e um microcontrolador padrão está na flexibilidade em

adicionar periféricos padrões ou customizados (ALTERA, 2011). Assim sendo, o processador

Nios II, por ser implementado utilizando lógica programável, permite que periféricos desenvolvidos

para uma aplicação específica (ou seja, periféricos customizados) sejam adicionados ao sistema.

Periféricos

Podem ser usados diversos periféricos no Nios II, tais como: (i) controladoras de memória;

(ii) interfaces de comunicação; (iii) timers; e (iv) interfaces controladoras de entrada e saída de

dados (I/O) de propósito geral.

No Nios II, a interface controladora de intervalo de tempo ou timer é baseada no barramento

Avalon e possui as seguintes características (ALTERA, 2011):

Contador de 32 bits e 64 bits;

Controle de start, stop e reset do timer;

Page 40: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

39

Contador em dois modos: contagem regressiva por uma vez e contagem regressiva

contínua;

Registrador do período de contagem regressiva;

Habilitar ou desabilitar a interrupção (IRQ) quando o timer chega à zero;

Watchdog para reiniciar o sistema caso a interrupção do timer nunca ocorra;

Saída geradora de pulso quando timer chega zero; e

Compatibilidade com processador de 16 e 32 bits.

Todos os periféricos são configurados por meio das ferramentas SOPC ou MegaWizard da

Altera.

2.5 A METODOLOGIA DE PROJETO IPPROCESS

O ipPROCESS (LIMA et al., 2005) foi concebido como uma metodologia de

desenvolvimento de Soft IP-cores com prototipação em FPGAs. O ipPROCESS define as tarefas de

projeto do IP como um conjunto de atividades, na qual cada atividade determina: (i) o que deve ser

feito; (ii) quando; e (iii) por quem. A metodologia ipPROCESS possui um ciclo de vida cujo início

dá-se com o levantamento dos requisitos e das restrições do IP. Em um segundo momento, após

definida a estrutura do IP, as funcionalidades e os requisitos são modelados utilizando UML e

somente após o final das duas fases anteriores inicia-se a codificação em HDL. A fase de

codificação em RTL inicia primeiramente com uma descrição comportamental do IP, sendo todo o

processo com um refinamento cíclico do RTL, até a obtenção do comportamento e do código

desejado. Concomitantemente, são empregadas etapas de verificação funcional, a fim de garantir

que o RTL desenvolvido possua um comportamento similar ao modelo de referência18

(golden

model) utilizado.

Os conceitos do ipPROCESS foram definidos com base nas metodologias de processo de

desenvolvimento de software RUP – Rational Unified Process, da IBM e XP - eXtreme

18

O modelo de referência ou golden model consiste em uma abstração do IP desejado. Possui a função de servir como

base para a validação do IP ou DUV - Device Under Verification, em geral esse modelo é descrito em nível TL.

Page 41: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

40

Programming, da Object Mentor Inc. A principal idéia no uso de engenharia de software está no

fato de o desenvolvedor conceber o sistema utilizando um nível de abstração mais alto, sem que

exista a necessidade do desenvolvimento em algum hardware específico (LIMA et al., 2005).

A Figura 4 traz um gráfico (gráfico de baleia) da arquitetura do ipPROCESS, no qual o eixo

vertical representa as disciplinas e o eixo horizontal representa o ciclo de vida do projeto (LIMA et

al., 2005).

Ainda segundo Lima et al. (2005), os aspectos relacionados com a dinâmica do ipPROCESS

abrangem todas as atividades distribuídas ao longo do tempo, representadas no primeiro plano da

Figura 4 como as fases (phases) e as interações (iterations) ou milestones. Já os aspectos estruturais

do ipPROCESS são representados em segundo plano pelas disciplinas (disciplines), atividades,

fluxo de trabalhos, artefatos e regras.

Figura 4. Arquitetura do ipPROCESS

Fonte: Lima et al. (2005)

Assim, a Figura 4 ilustra as diversas disciplinas e o quanto o desenvolvedor deve priorizá-

las, como ocorre na fase de concepção (conception), cuja disciplina de requisitos (requirements)

demanda maior atenção quando comparada com disciplina de verificação (verification).

2.6 VERIFICAÇÃO

Uma forma encontrada pela indústria de semicondutores para que projetos de sistemas

eletrônicos atinjam rapidamente o mercado está na reutilização de módulos de IPs. Contudo,

algumas métricas de projetos devem ser respeitadas, sendo que uma das formas de garantir o

Page 42: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

41

cumprimento dessas métricas está na aplicação de várias etapas de verificação. Ainda assim,

segundo Tobar (2005), a verificação tem o intuito de conferir um grau de qualidade ao projeto de

sistemas digitais. Bergeron (2006) complementa que o processo de verificação tem o intuito de

garantir que a intenção do projeto foi preservada após a sua implementação.

Bergeron (2006) e Tobar (2005) analisam duas abordagens distintas para serem utilizadas na

verificação de um IP, a primeira utilizando métodos formais ou verificação formal e a segunda

utilizando verificação funcional ou verificação funcional por simulação.

2.6.1 Verificação Formal

Para Bergeron (2006) a verificação formal (ou de equivalência) não exime a escrita de

testbenches e sua aplicação engloba duas categorias, a verificação de equivalência (equivalence

checking) e a verificação de propriedade (property checking). Assim, a verificação formal consiste

em um processo na qual matematicamente se prova que o(s) sinal (is) de origem e a saída(s)

resultante(s) são logicamente equivalentes e que dessa forma, a transformação desses sinal (is)

preservou a funcionalidade esperada. Bergeron (2006) cita que é comum na verificação de

equivalência a comparação de duas netlists a fim de garantir que após algumas etapas da síntese

física (netlist pós-síntese); como na inserção de scan-chain, síntese da árvore de clock (clock-tree) e

alguma modificações manuais; nada tenha mudado na funcionalidade do circuito. Outro aspecto na

verificação de equivalência está na análise da equivalência lógica de duas descrições em RTL, bem

como se a netlist implementa corretamente o código RTL original.

Na verificação de propriedade, um conjunto de afirmações (assertions) ou características do

projeto é utilizado para analisar o comportamento de uma propriedade (estados, variáveis, etc) do

projeto. Caso alguma violação ocorra em qualquer um desses comportamentos previstos (conjunto

de afirmações ou características), uma sinalização é ativada, evidenciando o erro ocorrido. Para

Bergeron (2006) o emprego de afirmações está também ligado à verificação das interfaces de

projetos estabelecidas.

2.6.2 Verificação Funcional

O surgimento da verificação funcional se deu principalmente pela necessidade de garantir

maior qualidade nos projetos de sistemas digitais. Ocorre que a codificação em RTL está sujeita a

Page 43: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

42

erros humanos, necessitando, portanto da equipe de desenvolvimento constantes atividades de

simulações a fim de provar a correta funcionalidade do projeto. Tobar (2005) observa então que um

dos objetivos da verificação é compensar o erro humano, estruturando a verificação, aplicando

redundância na modelagem e automatizando as atividades de testes. Nesse contexto, Bergeron

(2006) afirma que o principal propósito da verificação funcional é que o projeto implemente a

funcionalidade prevista. Segundo ele, com uma verificação superficial é fácil provar a presença de

erros, mas a dificuldade maior é que não é possível provar a ausência desses erros. Segundo Tobar

(2005), o conceito principal na verificação funcional está no fato de que duas implementações com

níveis de abstração distintos (nível de transação e nível de registradores) e desenvolvidos por

equipes distintas, equipe verificação e equipe de projeto, devem conter erros distintos.

Nesse sentido, para uma eficiente verificação funcional, são utilizados ambientes

controlados de simulação. Além disso, utilizando linguagem formal, são desenvolvidos testbenches,

cujo objetivo é comparar e verificar a integridade dos sinais do projeto. Na visão de Tobar (2005),

um testbench deve: (i) aplicar estímulos ao sistema digital; (ii) monitorar as respostas; e (iii)

conferir a consistência dos sinais do projeto.

Bergeron (2006) propõe um modelo de testbench (Figura 5) dividido em duas partes, a

camada de função de teste (testcases) e uma camada em nível de transação. Tobar (2005)

complementa o mesmo modelo, detalhando os níveis de abstração e os sinais das duas camadas. A

camada de função de teste tem por objetivo gerar os estímulos para a camada em nível de transação

(ou camada de amarração de teste), conferir a integridade dos sinais e ainda gerar relatórios

apontando as diferenças entre os dois níveis, para posterior análise da equipe de verificação e

projeto. A camada em nível de transação tem por objetivo converter os sinais em nível de

transação19

para sinais RTL, de forma que a iteração entre as duas camadas seja abstraída para o

dispositivo em teste, também chamado de DUV (Device Under Verification).

19

Segundo Silva (2007), uma transação consiste na representação básica da troca de informação entre dois blocos

funcionais, ou seja, possui início e fim determinados e se caracteriza por um conjunto de dados utilizados para realizar

alguma operação. Silva (2007) cita como exemplo o envio de um pacote Ethernet pela rede, bem como a leitura ou

escrita de uma memória. No contexto do presente trabalho, uma transação pode ser caracterizada pelo envio de uma

requisição do mestre e a resposta do escravo, ou seja, um pacote enviado pelo mestre com um cabeçalho LIN seguido

do recebimento de 2, 4 ou 8 bytes e soma e verificação enviados pelo escravo.

Page 44: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

43

O módulo Checker (Verificação), que utiliza transações, testa as funcionalidades do DUV

com relação a um modelo de referência. Para Tobar (2005), este modelo pode ser o resultado de

trabalhos anteriores ou mesmo ser uma função de transferência que simplifica o comportamento do

dispositivo e os detalhes da implementação. Em geral, o modelo de referência é descrito utilizando

linguagem de alto nível como C/C++, SystemVerilog ou mesmo Java. O módulo Driver tem por

objetivo converter os sinais em nível de transação para RTL, testando implicitamente a interface de

comunicação do dispositivo.

Função de Teste

Gerador de Sinais Estímulos Auto-checagem

Driver DUV Monitor

Amarração de Teste

Figura 5. Modelo de testbench

Fonte: Bergeron (2006 apud TOBAR, 2005)

O módulo Monitor, além de testar a interface de comunicação, converte os sinais RTL para

transação, ou seja, de sinais de tempo para dados abstratos – ou transação (TOBAR, 2005).

Dentre os diversos modelos de testbench já propostos, Silva et al. (2007) especifica um

modelo modular (Figura 6), com condições de comunicação entre os módulos bem definidas, no

intuito de facilitar a reutilização dos módulos. Ainda, segundo Silva et al. (2007), a comunicação

entre os módulos é feita utilizando transações (representações abstratas das funcionalidade do

DUV), convertidas em sinais para interagir com o DUV; sinais que por sua vez utilizam um modelo

de barramento funcional (BFM) contidos dentro dos módulos Driver e Monitor.

Page 45: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

44

Checker Source

DUV

Modelo de Referência

Driver Monitor

Figura 6. Modelo de testbench BVM

Fonte: Silva et al. (2007)

Assim, as operações utilizando o modelo proposto por Silva et al. (2007) utilizam transações

produzidas pelo Source (gerador de estímulos) e posteriormente enviadas em nível de sinal ao

DUV, por meio do módulo Driver. Por sua vez, os resultados produzidos pelo DUV são traduzidos

do nível de sinal para o nível de transação pelo módulo Monitor. Por fim, os sinais capturados pelo

Monitor são enviados para o Checker. Da mesma forma e simultaneamente, as transações geradas

são enviadas e processadas no modelo referência, cujos resultados são enviados para o Checker.

O modelo proposto por Silva et al. (2007) é um modelo já consolidado e amplamente

empregado no meio acadêmico. Ele foi aplicado por Tobar (2005), por exemplo, para a verificação

funcional da camada banda base do protocolo Bluetooth. Esse modelo é utilizado pelo programa

Brazil IP, sendo intitulado BVM (Brazil IP Verification Methodology) e usado na verificação

funcional do projeto do hardware do presente trabalho.

Segundo Hekmatpour et al. (2003 apud TOBAR, 2005) o processo de verificação ainda

engloba etapas de planejamento, implementação de modelos de referência, desenvolvimento de

testbenches, aplicação de testes, análise de diferenças, correção de erros, teste de regressão, análise

de cobertura, estímulo dos casos de canto (corner cases) e por fim a documentação de todo o

processo de verificação.

Para Lima et al. (2005), na etapa de planejamento, o plano de verificação tem o propósito de

definir como a arquitetura proposta deve ser verificada e definir os casos de teste (ou estímulos).

Tobar (2005) relaciona também o sucesso de um planejamento a elementos do processo, tais como

quantidade de testbench, fontes de estímulos, recursos humanos, técnicos e de tempo alocados para

a verificação. Devido às características dinâmicas da etapa de planejamento, o plano de verificação

deve ser constantemente atualizado e analisado com a finalidade de incluir aspectos ignorados no

Page 46: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

45

início do processo, tais como: aspectos de funcionamento, operações, cenários e condições de

operação (TOBAR, 2005).

Já os modelos de referência são necessários devido à etapa de análise e verificação dos

resultados da saída do DUV. Como explicado anteriormente, os estímulos enviados

simultaneamente tanto para o DUV quanto para o modelo de referência são comparados entre si e o

resultado obtido com essa comparação resulta em uma análise da conformidade do testebench.

Assim, os modelos mais utilizados nesse caso são os modelos de referência ou as funções de

transferência (TOBAR, 2005), sendo que os modelos de referência são implementações em alto

nível da especificação, já as funções de transferência são modelos simplificados que representam

funcionalidades detalhadas na especificação. Os dois modelos possuem características específicas, o

modelo de referência, por exemplo, consiste em um modelo mais detalhado da especificação e

possui um grau de complexidade maior; já as funções de transferência representam a funcionalidade

estabelecida na especificação (TOBAR, 2005), contudo abstraem muitas vezes aspectos específicos

do projeto, o que resulta muitas vezes em alertas de não conformidades na etapa de verificação.

Segundo Tobar (2005), os estímulos podem ser caracterizados conforme a aleatoriedade e a

sua representação do sistema, sendo então divididos em:

Estímulos dirigidos: caracterizados pelo prévio conhecimento das respostas (golden

vectors), como por exemplo, os casos dos testes de conformidade (compliance tests);

Estímulos aleatórios: são estímulos gerados através de funções probabilísticas;

Casos reais: consistem em estímulos reais, cujas entradas esperadas estão dentro do

próprio domínio de aplicação; e

Casos extremos: são estímulos que prevêem situações com condições de contorno, ou

seja, condições extremas ou situações críticas do sistema.

Durante a verificação funcional é desejado que uma ampla variedade de condições sejam

previstas, e que as mesmas venham a testar todas as funcionalidades do sistema de forma a atingir

ao máximo a cobertura especificada. Portanto, a cobertura tem o intuito de medir o nível de

abrangência dos estímulos entre os dois modelos, durante a etapa de simulação além de indicar o

progresso da etapa de verificação.

Page 47: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

46

2.7 CONSIDERAÇÕES

O Capítulo 2 abordou aspectos das definições e classificações das redes automotivas, tais

como, a topologia e a classificação SAE, respectivamente. Também foram analisados aspectos

relacionados aos padrões de comunicação automotivos, como o protocolo CAN, FlexRAY, MOST

e LIN. Sobre este último, foram detalhados aspectos como o estabelecimento do padrão, a

padronização e a adoção do protocolo na indústria. Ainda sobre o Capítulo 2, foram abordados

aspectos relacionados às técnicas de projetos de circuito integrado, como as métricas de projeto que

servem para medir as características, a qualidade e a evolução dos sistemas desenvolvidos. Também

foram abordados aspectos relacionados às tecnologias de circuitos integrados, tais como as três

principais tecnologias de otimização de CIs, full-custom, semi-custom e lógica programável. Ainda

foram abordados aspectos relacionados a metodologia de projeto ipPROCESS, utilizada para o

desenvolvimento de Soft IP-cores. O último aspecto abordado tratou muitos aspectos da verificação

em módulos de IPs, em particular da verificação funcional e formal de módulos de IPs.

No contexto da presente dissertação, a análise dos padrões de redes automotivas, das

métricas de projeto e dos mecanismos de verificação funcional possibilitou um entendimento das

características adotadas no desenvolvimento do protocolo LIN proposto, tal como a complexidade

de uma rede automotiva, consumo de energia, desempenho, dispositivos de lógica programável

empregados e tecnologia de CI utilizados possivelmente em uma rede automotiva.

O capítulo a seguir (Capítulo 3), abordará os trabalhos relacionados a esta pesquisa,

identificando estudos correlatos, visando identificar os métodos e as métricas adotadas para

implementação e avaliação de implementações em hardware e em software.

Page 48: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

47

3 TRABALHOS CORRELATOS

Neste trabalho foi realizada uma pesquisa bibliográfica preliminar baseada nos

procedimentos de revisão sistemática (ANEXO A) e não foram identificados trabalhos similares ao

proposto nesta dissertação, ou seja, trabalhos que tivessem como objetivo a comparação das

implementações em software e em hardware do protocolo LIN. A pesquisa foi então ampliada para

identificar trabalhos que tivessem realizado estudos similares para outras aplicações visando

identificar os métodos e as métricas adotadas para implementação e avaliação, bem como

caracterizar os resultados obtidos. Além deste estudo, fez-se uma pesquisa a respeito de soluções já

existentes de implementação em hardware do protocolo LIN, sumarizadas ao final do capítulo.

3.1 COMPARAÇÃO DO DESEMPENHO DE IMPLEMENTAÇÕES DO

ALGORITMO AES

Mali et al. (2005) comparam duas abordagens de implementações, software e hardware, do

algoritmo de criptografia AES para unidades de memórias externa (no caso, quatro blocos de

SRAM) utilizado em aplicações com alto requisito de segurança.

A implementação em software foi executada em um computador baseado no processador

AMD Athlon de 1.3 GHz. Já o algoritmo em hardware foi implementado seguindo duas

abordagens: sequencial e paralela. Essas implementações foram sintetizadas em FPGA utilizando a

placa Celoxica RC1000 com interface PCI. Essa placa possui um FPGA Xilinx da família Virtex

BG560, além de 8 Mb de SRAM conectados diretamente ao FPGA, sendo que esses bancos, por sua

vez, estão conectados em um barramento de 32 bits (4 bancos 512 Kb = 8Mb). Isso garante que

cada um dos bancos de memória pode ser concedido (granted) tanto à CPU quanto ao FPGA

simultaneamente.

A comparação das implementações do algoritmo foi focada no desempenho e as métricas

utilizadas para a avaliação foram (i) o tempo médio de execução de tarefas do algoritmo e (ii) a

vazão obtida (não tendo sido feita nenhuma avaliação quanto aos custos de silício de

implementação nas duas abordagens). As principais tarefas do algoritmo incluem a cifragem

(criptografia), a cifragem inversa e a chave de expansão, sendo que as duas cifragens foram

implementadas utilizando duas abordagens em hardware, sequencial e paralela. Assim, os

Page 49: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

48

resultados obtidos pelos autores (decodificação/codificação de um bloco de 128bit de dados) para as

duas abordagens do bloco de cifragem do algoritmo AES estão sumarizados na Tabela 1.

Tabela 1. Comparação dos resultados das implementações do bloco de cifragem do algoritmo AES

Onde: TME: Tempo Médio de Execução (μs)

THP: Vazão (Mbit/s)

Atributos

Implementação

Software(SW) Hardware Sequencial

(Hseq)

Hardware Paralelo

(Hpar) Hseq/

Hpar

TME THP TME THP TME (SW/ Hseq) TME THP TME

(SW/ Hpar) TME

Cifragem 16,50 7,76 22,91 5,59 0,72 0,7 182,86 23,57 34,75

Cifragem

Inversa 20,56 6,23 22,91 5,59 0,89 0,7 182,86 29,37 37

Analisando a Tabela 1, é possível observar que a cifragem Hpar é 34,75 vezes mais rápida

quando comparada com uma implementação sequencial. Já comparando a cifragem Hpar com a

implementação em software é possível observar que ela é 23 vezes mais rápida que SW, bem como

a cifragem inversa Hpar é 29 vezes mais rápida que a cifragem inversa em SW.

Os resultados evidenciam que a abordagem utilizando Hpar para a implementação do

algoritmo de cifragem AES é mais rápida e, portanto, a melhor solução adotada quando comparada

com as soluções SW e Hseq.

3.2 COMPARAÇÃO DE METODOLOGIAS DE TESTBENCH PARA

VERIFICAÇÃO FUNCIONAL HIERÁRQUICA

Tobar (2005) compara duas técnicas aplicadas na verificação funcional do IP adaptador de

banda base Bluetooth (Figura 7). A primeira técnica é baseada em um framework tradicional, com

estímulos randômicos e analisando aspectos de cobertura funcional. A segunda técnica utiliza

funções de aceleração baseada em filtragem dos estímulos redundantes, reduzindo o tempo de

execução do testbench com estímulos randômicos.

Page 50: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

49

SRAM ACESSCTR PACKETBUFFER

PACKETPROC

CRC FEC CIPHER

FHEC WHITE

BASEHW

RADIOCTR

Figura 7. IP adaptador banda base bluetooth

Fonte: Tobar (2005)

De acordo com Tobar (2005), na primeira técnica os resultados oriundos do DUV são

comparados com os resultados de um modelo de referência descrito em um nível de abstração maior

(Figura 6). Ainda segundo Tobar (2005), esse modelo tradicional torna a verificação baseada em

simulação mais fácil de ser gerenciada (incremento e manutenção de código); contudo, consiste na

fase que mais consome recursos e tempo de projeto segundo os desenvolvedores.

Nesse contexto, Tobar (2005) propõe uma técnica em looping fechado de filtragem dos

estímulos gerados, cuja premissa é baseada na observação de que a simulação do modelo de

referência é mais rápida que o RTL. Primeiramente, a simulação no modelo de referência é

executada, os resultados são analisados (Checker) e, por fim, são verificados os parâmetros de

cobertura de cada caso de teste injetado. Se não ocorrer redundância de testcase, o DUV é

simulado. Assim, a simulação do RTL é evitada caso o estímulo tenha sido previamente gerado pela

fonte (Stimuli Source).

No modelo proposto (Figura 8) por Tobar (2005), as saídas dos estímulos aplicados no

modelo de referência são analisadas após o módulo Checker pelo comparador. Depois disso,

informações relacionadas ao testcases são enviadas ao filtro, o qual é responsável por interromper

ou não a simulação no RTL.

Page 51: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

50

Figura 8. Modelo de testbench baseado na filtragem de estímulos redundantes

Fonte: Tobar (2005)

Tobar (2005) utilizou um processador Pentium IV HT com 1 GB de DRAM de memória, na

qual foram comparados dois modelos de verificação, um em loop fechado e o outro básico (loop

aberto), nos quais foram injetados 10.000 itens e cuja cobertura atingiu 100%. Foram comparados

resultados como tempo de execução consumido pelo testbench para atingir 100% de cobertura de

cada um dos dois modelos propostos. Alguns casos ilustram ganhos (razão entre os tempos para

100% de cobertura de cada um dos dois modelos) próximos de 50-60%, outros de 25% e alguns

abaixo de 10%.

3.3 VERIFICAÇÃO FUNCIONAL DE HW ATRAVÉS DE CO-SIMULAÇÃO

DE HW/SW EM SISTEMAS COMPLEXOS

Deprá et al. (2009) apresentam um método de verificação funcional utilizando duas

abordagens de codificação: uma abordagem descrita em software e a outra em hardware. O método

proposto utiliza uma API para prover mecanismo de handshake (garantia de sincronismo entre os

dois módulos) e o paralelismo da co-simulação. Segundo Bergeron (2003 apud Deprá et al., 2009),

50% do tempo de projeto é gasto nessa fase de verificação20

, o que força a indústria e a academia a

encontrar métodos que possam reduzir os custos desta etapa sem que o processo de cobertura fique

20

É comum encontrar publicações que citam em 70% o tempo gasto na fase de verificação, contudo o autor deste

trabalho acredita que este valor pode variar entre 50% e 80% conforme a maturidade do grupo de desenvolvimento.

Essa afirmação baseia-se no contexto do presente projeto, cujas modificações feitas na ferramenta de verificação

desenvolvida para testar o núcleo LIN ao final do projeto, foram executadas sem maiores percalços (menor tempo)

quando comparado ao início da codificação da ferramenta (maior tempo).

DUV

Gerador de Estímulos

Filtro

Driver

Modelo de Referência

Monitor

Comparador

Page 52: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

51

prejudicado. Outro aspecto considerado é o custo de detecção e correção de erros de projetos, o qual

possui um crescimento exponencial com a redução do nível de abstração.

Assim, o método de co-simulação proposto por Deprá et al. (2009) facilita o processo de

obtenção, armazenamento e injeção de dados (impraticável utilizando uma descrição HDL). São

utilizadas diretivas da linguagem PLI, possibilitando a simulação em software e em hardware em

paralelo garantindo o sincronismo da comunicação entre os módulos (através de um protocolo de

handshake) e o paralelismo da simulação com a utilização de threads.

Bergeron (2003 apud Deprá et al., 2009) definem verificação funcional como: “[...] um

processo usado para demonstrar que o objetivo do projeto é preservado na sua implementação”.

Neste sentido, duas são as abordagens que podem ser utilizadas para verificar se a descrição HDL é

equivalente com o que foi especificado no projeto: (i) verificação formal; e (ii) simulação baseada

em verificação.

Deprá et al. (2009) afirmam que os métodos convencionais de verificação funcional

consistem em uma sequência de estímulos aplicados ao hardware, cujos resultados são comparados

ao fim da simulação com um modelo de referência (descrito em uma linguagem mais abstrata).

Entretanto, para Deprá et al. (2009), em sistemas complexos, o processo para obtenção dos

estímulos de entrada e de saída não são triviais e faz-se necessário identificar os casos de teste,

injetar e gravar os estímulos no DUV através de um testbench, executar propriamente o testbench e

comparar os resultados entre os dois modelos adotados. Ainda, segundo Deprá et al. (2009), alguns

modelos de testbench necessitam executar leituras e escritas em arquivos externos (estímulos e

resultados), o que, consequentemente, tornam os testbenches maiores e mais complexos que o

próprio projeto do hardware.

Com o uso de APIs específicas para o controle de simulação, Deprá et al. (2009) propõem

um modelo para diminuir a complexidade dos testbenches, como por exemplo o uso de PLI para

verificação funcional dos DUVs descritos em Verilog. Contudo, as simulações utilizando PLI

possuem limitações: quando cada rotina de software é executada o simulador suspende a execução

em hardware e enquanto a rotina em software é executada sequencialmente. Nesse sentido, Deprá et

al. (2009) propõem uma alternativa para contornar essa limitação, utilizando rotinas com threads e

um mecanismo de handshake entre o software e o hardware, além de combinar rotinas de

requisição, espera e de leitura dos dados.

Page 53: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

52

Segundo Deprá et al. (2009), inicialmente, são descritos três módulos: (i) binding; (ii)

wake_up; e (iii) hw_asic. O primeiro módulo possibilita a conexão dinâmica entre o software e o

simulador, ou seja, o módulo serve como uma ponte entre a implementação em software e o

hardware, através do mapeamento das portas de entrada e de saída do módulo hw_asic para os

ponteiros acessíveis dentro dos módulos de software. O módulo wake_up tem por objetivo fornecer

um sinal periódico para o bloco hw_asic, para que o mesmo execute periodicamente o protocolo de

handshake.

Deprá et al. (2009) utilizaram para estudo de caso e validação do método o software

JM10.2, o qual implementa funcionalidades do padrão H264/AVC. Além disso, o método foi

aplicado no hardware (DUV) em um bloco de interpolação de luminância (componente

compensação de movimento do padrão H264/AVC) desenvolvido de acordo com o padrão

H264/AVC. O estudo de caso apresentado por Deprá et al. (2009) possibilitou que a ferramenta de

co-simulação desenvolvida verificasse as funcionalidades do hardware utilizando estímulos de

vídeos. Por fim, o método apresentado utilizando a linguagem PLI, combinada com a utilização de

threads e do protocolo de handshake, possibilitou a co-simulação paralela dos dois módulos de

software e de hardware.

3.4 SISTEMA DE CAIXA-PRETA PARA VEÍCULOS INTELIGENTES COM

COMUNICAÇÃO INTRAVEICULAR LIN/FLEXRAY

Para Khanapurkarl et al. (2008), diversas são as arquiteturas existentes que podem ser

utilizadas para a comunicação intraveicular e interveicular, tais como o CAN, LIN, MOST e

FlexRay. A maturidade dessas arquiteturas deu-se principalmente nas últimas duas décadas,

especialmente com o amplo uso de padrões baseados em UARTs (transmissão serial) ou, como

citam Khanapurkarl et al. (2008), protocolos baseados em UART (UBPs – UART Base Protocols).

Nesse sentido, o protocolo LIN destaca-se no controle de nós em aplicações automotivas

distribuídas.

Dessa forma, Kopetz et al. (2007 apud KHANAPURKARL et al.,2008) enfatizam que um

carro típico possui mais de 15 ECUs e aproximadamente 5 tipos de redes. Ainda assim, afirmam

que é possível reduzir a quantidade de ECUs trocando processadores simples por

multiprocessadores, ou seja, um multi-core SoC (System on Chips). A Figura 9 ilustra uma

Page 54: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

53

referência de um SoC para aplicações automotivas, utilizando uma NOC (Network-on-Chip) e um

barramento de comunicação (TTNC – Time Triggered Network-on-Chip).

Figura 9. Exemplo de SoC para sistemas automotivos

Fonte: Adaptado de Kopetz et al. (2007 apud KHANAPURKARL et al. 2008)

A Figura 10 ilustra um esquema simplificado de um IP do protocolo LIN. Este IP opera até

20 kbps, mono-mestre/multi-escravos e auto-sincronização.

Clk

Cs_n

Ad

Di

Do

Int

Host

Controller

interface

Register

Block

Control

FSM

Data

Buffer

Bit

Timing

Logic

Bit

Stream

Processor

Rs_n

We_n

RxD

TxD

Figura 10. Módulo LIN

Fonte: Adaptado de Kopetz et al. (2007 apud KHANAPURKARL et al. 2008)

Um aspecto importante ilustrado na Figura 10 consiste na arquitetura utilizada para o

desenvolvimento do referido IP. É possível observar que o referido IP possui 6 módulos distintos

interligados por dois barramentos. O módulo mais à esquerda, Interface de Controle Host (Host

Page 55: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

54

Controller Inferface), é responsável por interagir o IP com a aplicação. Já os módulos centrais

Blocos de Registradores (Register Block), Controle da Máquina de Estados (Control FSM) e Buffer

de dados (Data Buffer) são responsáveis, respectivamente por gerenciamento dos registradores,

controle da máquina de estados e acúmulo dos dados.

3.5 IMPLEMENTAÇÕES EM HARDWARE DO PROTOCOLO LIN

Alguns IPs sintetizáveis comerciais que implementam o protocolo LIN são listados no

Quadro 1. Destacam-se modelos comerciais disponibilizados pela CAST, pela Intelliga e pela

Bosch, além de um núcleo do protocolo LIN desenvolvido na graduação pelo autor.

O Quadro 1 identifica algumas características de núcleos comerciais, como o nome e o tipo,

a linguagem de descrição de hardware (HDL – Hardware Description Language) utilizada, a

tecnologia alvo para implementação, a revisão da especificação LIN com a qual o núcleo é

compatível, a configurabilidade da taxa de dados, a capacidade de armazenamento (buffering), a

funcionalidade suportada (mestre e/ou escravo) e o custo de silício.

Ainda no Quadro 1, é possível observar que os núcleos comerciais são do tipo Soft IP-core e

visam as tecnologias FPGA e ASIC.

Page 56: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

55

Quadro 1. Análise comparativa das características de núcleos de propriedade intelectual LIN

Atributo Desenvolvedor

CAST Intelliga BOSCH UNIVALI

Nome LIN Core iLIN C LIN LIN IP

Tipo de Núcleo Soft IP-core Soft IP-core Soft IP-core Soft IP-core

HDL VHDL

Verilog

VHDL

Verilog VHDL VHDL

Tecnologia Alvo FPGA

ASIC

FPGA

ASIC

FPGA

ASIC FPGA

Especificação Revisão 2.0 Revisão 1.3 Revisão 1.3, 2.0

e 2.1 Revisão 2.1

Configuração da

taxa de dados

Programável ou

automática Automática Fixa Fixa

Buffer de dados Um buffer de 8

bytes

Informação não

disponível

Buffers TX e

RX de 8 e 7

bytes

Buffers TX e RX

configuráveis

Funcionalidade Mestre ou

escravo

Mestre ou

escravo

Mestre ou

escravo Escravo

Custo de silício 2710 a 3760

gates 3000 gates

3100 a 3900

gates

598 células

lógicas

Referência CAST (2007) Intelliga (2003) BOSCH (2007) Pereira (2008)

O LIN IP (PEREIRA, 2008) consiste no trabalho de final do curso de graduação do presente

autor. Nesse trabalho de graduação, foi desenvolvido o núcleo do protocolo LIN utilizando a

linguagem VHDL. Esse núcleo foi sintetizado para FPGA da família Cyclone II da Altera e

verificado apenas por simulação funcional. Portanto, o trabalho limitou-se a um estudo exploratório

do protocolo, o qual, porém, permitiu constituir a base teórica para a submissão de um projeto ao

Programa Brazil IP do CNPq. Destaca-se que, diferentemente dos outros IPs, esse núcleo opera

apenas como escravo e não foi mapeado para ASIC. Por isso, o seu custo de silício é identificado

em células lógicas (LCs – Logic Cells) de FPGA. As características do LIN IP (mostradas no

Quadro 1) foram assim delimitadas de modo a viabilizar o seu desenvolvimento no curso de

graduação em Engenharia de Computação dentro do contexto do trabalho de conclusão de curso do

presente autor.

Page 57: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

56

3.6 ANÁLISE COMPARATIVA

Nesta seção, são apresentadas as análises comparativas dos trabalhos selecionados (Quadro

2) visando resumir e identificar os métodos e as métricas adotadas em cada uma das

implementações, em software e em hardware.

No Quadro 2, a principal característica observada é que alguns trabalhos não analisaram

aspectos relacionados a uma tecnologia alvo, ou seja, não foram consideradas restrições finais de

tempo (timing), consumo de energia (power) e área de silício. Já o trabalho descrito por Tobar

(2005) ilustra o uso de um modelo híbrido de verificação funcional, cuja cobertura atinge 100%.

Esse modelo se assemelha com o modelo proposto na presente dissertação (Subseção 4.2.2 ). Ainda,

no Quadro 2, são abordados aspectos da implementação em software sequencial e paralelo de

alguns sistemas. Nesse sentido, o trabalho descrito por Deprá et al. (2009) analisa o uso de threads

e de diretivas da linguagem PLI para simulação do software e do hardware em paralelo. Essa

abordagem serve como parâmetro inicial para a implementação em software proposta pela

dissertação do protocolo LIN, ou seja, o uso de threads deve permitir a identificação do início de

um novo cabeçalho LIN (break_field) ao mesmo tempo em que os dados LIN são montados.

Page 58: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

57

Quadro 2. Análise comparativa dos trabalhos relacionados.

Características Comparação do

Desempenho de

Implementações

do Algoritmo AES

Comparação de

Metodologias

de Testbench

para

Verificação

Funcional

Hierarquica

Verificação

Funcional de Hw

Através de Co-

Simulação de

HW/SW em

Sistemas

Complexos

Sistema de

Caixa-Preta

para Veículos

Inteligentes com

Comunicação

Intraveicular

LIN/Flexray

Implementações

em Hardware do

Protocolo LIN

Análise de

Métricas da

Implementação

do Protocolo LIN

em Hardware e

em Software

Métodos SW/HW HW SW/HW HW HW SW/HW

Vantagens Implementação em

HW

sequencial/paralela

100% de

cobertura

atingida

Implementação em

SW e em HW

paralela

Analisa uma

arquitetura LIN

Analisa diversas

arquiteturas LIN

Sintetizado para

FPGA e ASIC

Desvantagens Implementação em

SW sequencial

Testbench

Híbrido

Paralelismo

necessita de

diretivas da

linguagem PLI

combinadas com

threads

Utiliza Buffer

para acumulo de

dados

O LIN IP possui

custo de silício

identificado em

células lógicas e

atua somente como

escravo

Atua somente

como escravo na

rede

Limitações Portado somente

para Virtex BG560

Não analisa

características

em função de

uma tecnologia

CI alvo

Não analisa

características em

função de uma

tecnologia CI alvo

Não analisa

características

em função de

uma tecnologia

CI alvo

Algumas

arquiteturas são

proprietárias

Portado para

Altera DE2 e

DE0.

Referência Mali et al. (2005) Tobar (2005) Deprá et al. (2009) Khanapurkarl et

al. (2008)

Pereira (2008) Presente pesquisa

Page 59: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

58

Por fim, as arquiteturas propostas por Khanapurkarl et al. (2008) e a arquitetura executada

em Pereira (2008) serviram como estudo de caso do protocolo LIN e como referência para a

implementação em hardware desta dissertação.

3.7 CONSIDERAÇÕES

Neste capítulo, foi realizada uma pesquisa bibliográfica onde foram analisados trabalhos

similares ao proposto nesta dissertação. O intuito deste levantamento bibliográfico foi analisar as

abordagens de implementações em software e/ou em hardware desses trabalhos. Os resultados desta

análise, como os métodos e as métricas utilizados, foram listados no Quadro 2.

A seguir, no Capítulo 4, são abordados detalhes do desenvolvimento do protocolo LIN à luz

da metodologia ipPROCESS, tais como a visão geral do projeto e as especificações da arquitetura

LIN no contexto da dissertação, e por fim são tecidas as considerações sobre o capítulo.

Page 60: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

59

4 PROJETO BASEADO NA METODOLOGIA IPPROCESS

Este capítulo é dividido em três seções. Na primeira seção, é apresentada a especificação do

protocolo LIN, bem como os atores, o diagrama de caso de uso do projeto arquitetural e a descrição

de todos os módulos lógicos do sistema. Na segunda e terceira seções, são detalhados aspectos

relacionados ao desenvolvimento do hardware e software, respectivamente.

4.1 ESPECIFICAÇÃO DOS SISTEMAS

Os atores do sistema (Figura 11) e o diagrama de casos de uso (Figura 12), apresentados a

seguir, representam a implementação das funcionalidades do LIN HW e do LIN SW, bem como das

camadas de enlace de dados, rede e de aplicação. O protocolo também é descrito analisando a visão

lógica dos IPs, mostrando por meio de um diagrama de módulo (Figura 13) as classes organizadas

em subsistemas.

4.1.1 Atores do Sistema

A Figura 11 ilustra os principais atores do sistema, os quais incluem:

Mestre (Master): responsável pelo envio de todas as requisições (Seção 2.3) do

barramento LIN;

Escravos (Slaves): contém processos exclusivos dos nós escravos. O LIN SW e o LIN

HW são uma abstração de um escravo LIN; e

Aplicação (Application): interface que permite que a CPU comunique com o barramento

LIN.

Aplicação Host

Sistema Barramento LIN

Mestre

Escravos

Figura 11. Atores do sistema

Page 61: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

60

4.1.2 Projeto Arquitetural

A Figura 12 apresenta o diagrama geral de casos de uso geral da abordagem em software e

da abordagem em hardware. Esses casos de uso são descritos após a figura, identificando-se as

ações realizadas em cada caso de uso.

Casos de Uso

Aplicação

Sensores/ Atuadores

Configuração e Identificação

Registradores

Handler

Rede/Transporte

Diagnóstico Gerenciamento da rede

Enlace

Controle PHY

TX Gerenciador

Tempo de BIT

RX

Barramento LIN

Figura 12. Diagrama geral de casos de uso das abordagens em software e em hardware

Camada de Enlace de Dados

Esta camada é responsável pela correta montagem dos sinais seriais do barramento LIN e

pelo controle da interface física (PHY), e inclui os seguintes módulos:

Receptor Serial (RX): responsável por detectar o cabeçalho do protocolo LIN

(break_field/Synch_field/PID), compreender o tipo de mensagem e agir de acordo com o

Page 62: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

61

PID21

(Protected Identifier). Conforme o PID realiza a recepção de 2, 4 ou 8 bytes de

dados seguido de um byte de soma e verificação do barramento ou o aguardar a chegada

de um novo cabeçalho LIN;

Transmissor Serial (TX): responsável por transmitir ao barramento 2, 4 ou 8 bytes de

dados, seguido de um byte de soma e verificação;

Controle PHY: responsável pelo gerenciamento dos canais de transmissão e recepção de

dados e pelo controle do Modo Normal, Low Power Mode, Wake-Up e modo de espera

do PHY; e

Gerador de tempo de bit: responsável por gerar corretamente os sinais de tempo de bit.

Camada de Transporte

Esta camada é responsável pela geração de cabeçalhos corretos, por decidir qual quadro

deve ser enviado e pela manutenção do timing correto entre os quadros, tudo de acordo com a tabela

de escalonamento, e inclui os seguintes módulos:

Diagnóstico: responsável por gerenciar os erros do cabeçalho e dos bytes de soma e

verificação; e

Gerenciamento de Rede: responsável pelo controle do tipo de mensagem, ou (i)

transmissão ou (ii) recepção dos dados. No caso da implementação em hardware é

utilizado o protocolo de comunicação AMBA AXI 22

.

Camada de Aplicação

Esta camada é responsável pelo controle dos dados, das mensagens de erros e handshake, e

inclui os seguintes módulos:

21

Para o presente projeto foi estabelecido que os bits 5 e 4 do byte identificador devem representar os seguintes

tamanhos de pacotes de dados: 00 e 01 – 2 bytes de dados, 10 – 4 bytes de dados e 11 – 8 bytes de dados. O presente

padrão foi adotado analisando algumas aplicações sugeridas pela indústria, como o AN2633 da Freescale

Semicondutores; 22

A escolha do padrão AMBA AXI foi estabelecido pelo programa Brazil IP.

Page 63: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

62

Registradores de Comunicação: fornece registros de controle e registrador de status e

erros para o controle da transferência das mensagens LIN, além de permitir o acesso aos

registros através de uma interface controladora (host);

Manipulador de Comunicação (handler): proporciona a troca de mensagem entre o

núcleo LIN IP e o controlador host usando um protocolo de comunicação AMBA AXI

(no caso da implementação em hardware); e

Configuração e Identificação: responsável pela correta identificação e configuração do

PID.

A Figura 13 apresenta a visão lógica em camadas dos módulos do sistema (descritos

anteriormente) e dos barramentos de controle, comunicação e dados. O barramento de controle

contém as classes responsáveis pelas atividades necessárias para o controle de todas as ações

realizadas pelo core, como transmissão, recepção, escrita/leitura lógica e controle dos dados. O

barramento de comunicação contém as classes responsáveis pelas atividades que permitem a

comunicação entre o core e a aplicação host, bem como entre os módulos. O protocolo usado para

comunicação com dispositivos externos, bem como a comunicação entre os módulos é o AMBA

AXI. Já o barramento de dados é composto por classes responsáveis pelo gerenciamento e

armazenamento dos dados utilizados nos processos do core.

Figura 13. Diagrama lógico preliminar do sistema

Page 64: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

63

4.1.3 Descrição da Arquitetura

Nesta seção, são descritas as características funcionais dos módulos de casos de uso

incluídos em cada uma das camadas da Figura 13.

Receptor Serial (RX)

O módulo Receptor Serial (RX) tem por objetivo receber serialmente um pacote de

mensagens do barramento LIN, transformá-lo em dados e por fim gerar sinais de controle para a

operação do sistema. Assim, com o barramento inicialmente em nível lógico 1 (um), é dado o início

da transmissão das mensagens LIN com a detecção da mudança de nível do barramento (borda de

descida para nível lógico zero), cujo limite de 11 a 13 bits em nível lógico 0 (zero) identifica o

break-field. Após a detecção do break-field, dá-se o início a detecção do campo de sincronismo

(valor hexadecimal 0x55), seguido do PID. A qualquer momento, caso ocorra um novo break-field,

a identificação do campo de sincronismo ou mesmo os subsequentes campos devem ser anulados e

o processamento do novo quadro terá início.

Com o PID montado, é possível extrair informações como tamanho dos pacotes, paridade do

identificar e tipo de mensagem (escrita ou leitura de dados no barramento). Caso seja identificado

um comando de leitura de dados no PID, o bloco RX permanece montando os bytes de dados

subsequentes a partir dos bits recebidos até o limite do tamanho do pacote definido dentro do PID.

Por fim, o bloco recebe e monta o byte de soma e verificação para análise da integridade do dado

recebido.

Se for verificada uma mensagem de escrita de dados, cabe ao bloco RX sinalizar aos demais

blocos a transmissão de dados da aplicação para o barramento LIN.

Transmissor Serial (TX)

O módulo de Transmissão Serial (TX) tem objetivo único de transmitir serialmente os dados

da camada de aplicação para o barramento LIN. O tamanho do pacote de dados, conforme o PID

pode variar entre 2, 4 ou 8 bytes de dados, seguido de um byte de soma e verificação.

Módulo de controle PHY

Page 65: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

64

O módulo de Controle do PHY tem por objetivo fornecer o controle dos PHYs nos modos

de transmissão e recepção do barramento LIN, tendo em vista as interfaces físicas (PHY) TPIC1020

da Texas Instruments e MCP201 da Microchip. No modo de recepção, o chip select (CS/WAKE) é

colocado em nível lógico 1 (um), permitindo ao PHY continuar recebendo dados pelo pino de

recepção serial e desabilitando o canal de transmissão serial. Já no modo de transmissão, ocorre o

inverso. O CS/WAKE é colocado em nível lógico 0 (zero), desabilitando o canal de recepção e

habilitando o canal de transmissão serial. No presente projeto, não foram previstos os modos Low

Power, Wake-Up e Idle especificados pelo protocolo LIN 2006 e nas folhas de dados dos PHYs.

Módulo de Gerenciamento da Rede

O módulo gerenciamento da rede é responsável pelo controle do tipo de mensagem de

transmissão ou de recepção de dados com a aplicação. O protocolo de comunicação utilizado entre

o módulo e a aplicação é o AMBA AXI.

Cabe ao núcleo LIN a transmissão do quadro de resposta quando ele é o editor23

(mensagem

de escrita no barramento) e a recepção do frame de resposta quando ele é um assinante (mensagem

de leitura no barramento). Isso ocorre tão logo são recebidos um break-field, um campo de

sincronismo e um PID, quando o bloco de configuração e identificação recebe o PID corretamente e

identifica o tipo de mensagem.

Módulo de Identificação e Configuração

O módulo de configuração e identificação define qual o comportamento (escrita ou leitura

de dados no barramento) do PID recebido. Nesse contexto, o bloco deve então identificar o tipo de

mensagem recebida (transmissão de dados ou recepção de dados) e informar às camadas inferiores

o tipo de mensagem. Já a etapa de configuração ocorre quando, estabelecida uma aplicação alvo24

,

são definidas as tabelas de PIDs pertencentes ao nó, bem como o tipo de mensagem pertencente a

cada PID (transmissão de dados ou recepção de dados).

23

Tradução para o termo originalmente utilizado no documento de especificação do LIN: “Publisher” 24

Aplicações como acionamento de sensores e atuadores de portas, luzes de sinalização traseira, sensores de baixa

velocidade do grupo motor de um automóvel ou mesmo em aplicações de automação residencial utilizando PLC como

proposto pela Yamar (www.yamar.com);

Page 66: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

65

Gerador de tempo de bit

O bloco gerador de tempo de bit é responsável por gerar bits de amostragem a cada 1 (um)

tempo de bit e ½ (meio) tempo de bit para os blocos de transmissão serial (TX) e para o bloco de

recepção serial (RX), respectivamente.

4.1.4 Diagrama de Sequência

A Figura 14 representa o diagrama de sequência dos principais eventos que ocorrem em um

barramento LIN25

e ilustra três sequências de envio de mensagens previstas na especificação do LIN

HW e do LIN SW. A primeira sequência (a) corresponde ao envio de uma requisição (request) do

nó mestre seguido de uma resposta (response) de dados para todos os nós do barramento LIN. Na

sequência (b), o mestre envia uma requisição e aguarda uma resposta de dados de um nó escravo

específico. Por fim, em (c), o mestre envia uma requisição, enquanto o escravo N responde com

dados para o escravo 1.

25

O projeto limitou o escopo do protocolo LIN, não prevendo modos de envio em rajada, reconfiguração de PIDs e

NAD e diagnóstico classe II e III no desenvolvimento do LIN HW e do LIN SW.

Diagrama de Estado

Response(data,checksum)

(c) Request(id)

(b)

Response(data,checksum)

Request(id)

Response(data,checksum)

Request(id)

Mestre Escravo 1 Escravo N

(a)

Figura 14. Diagrama de sequência de um barramento LIN

Page 67: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

66

As seções a seguir apresentam aspectos relativos à implementação do escravo LIN

utilizando as duas abordagens alvo deste trabalho: baseada em hardware (denominada LIN HW) e

baseada em software (LIN SW).

4.2 ABORDAGEM BASEADA EM HARDWARE – LIN HW

A presente seção analisa o esforço de desenvolvimento do IP denominado LIN HW. A seção

é dividida em cinco subseções. Na primeira subseção, é apresentada a implementação do DUV e a

divisão dos blocos lógicos do LIN HW. Na segunda subseção, é detalhado o plano de testes

utilizado para o planejamento e controle do esforço de verificação. A terceira subseção analisa a

implementação do modelo de testbench utilizado na verificação do LIN HW. A quarta subseção

descreve detalhes da verificação funcional, tais como o escalonamento das mensagens, os estímulos

e a cobertura alcançada. Na quinta subseção, são analisados os resultados do esforço de verificação

do DUV.

4.2.1 Implementação do IP LIN HW (DUV)

A Figura 15 ilustra a descrição do topo da entidade LIN HW, sendo que a Figura 16 divide a

mesma entidade em sub-blocos, nos quais cada um é verificado individualmente de acordo com a

metodologia BVM e conforme descrito na Subseção 4.2.2 .

LIN HW

i_reset

i_clk

o_tx

i_rx

o_lin2axi[7:0] o_lin2axi_id[7:0] o_lin2axi_last o_lin2axi_valid i_lin2axi_read

o_cs o_int_error o_error[3:0]

i_axi2lin_data[7:0] i_axi2lin_last i_axi2lin_valid o_axi2lin_ready

Figura 15. Descrição de topo do LIN HW

Page 68: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

67

i_axi_valid i_clk i_int_axi_error i_lin2axi_ready i_reset i_axi_pid[7:0] i_axi_data[63:0] i_axi_error[3:0]

o_axi_ready o_int_error o_lin2axi_last o_lin2axi_valid o_lin2axi_data[7:0] o_lin2axi_id[7:0] o_error[3:0]

lin2axi

i_clk i_config_enable i_reset i_scl i_sda i_top_rst

o_top

o_top_delayed

genetop

i_clk i_request_ready i_reset i_rx i_top_delayed

o_request_valid o_top_rst o_request_data[63:0] o_request_id[7:0] o_request_crc[7:0] o_request_error[3:0]

rx

i_axi_ready i_clk i_id_ready i_request_valid i_reset i_request_error[3:0] i_request_id[7:0] i_request_data[63:0] i_request_crc[7:0] i_checksum[7:0]

o_axi_valid o_id_valid

o_int_axi_error o_request_ready

o_id[7:0] o_axi_pid[7:0]

o_axi_data[63:0] o_axi_error[3:0]

mux

i_axi2resp_valid i_clk i_reset i_top i_axi2resp_id[7:0] i_axi2resp_data[63:0] i_axi2resp_crc[7;0]

o_axi2resp_ready o_top_rst o_tx

tx

i_axi2lin_last i_axi_valid i_axi2resp_ready i_clk i_id_valid i_reset i_id[7:0] i_axi2lin_data[7:0]

o_axi2lin_ready o_axi2resp_valid o_id_ready o_axi2resp_data[63:0] o_axi2resp_id[7:0]

axi2lin

i_axi2lin_valid i_clk i_out_ready i_reset i_rx_valid i_rx_cks_data[63:0] i_axi_cks_data[63:0] i_axi_lengthframe[1:0] i_rx_lengthframe[1:0]

o_in_ready o_mux_valid

o_tx_valid o_checksum[7:0]

checksum

The blocks’ interconnections are

not detailed

Figura 16. Descrição do LIN HW em blocos lógicos interconectados com o barramento AMBA AXI

Page 69: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

68

4.2.2 Implementação do Testbench

Conforme mencionado na Subseção 2.6.2 o testbench tem o intuito de verificar se as

funcionalidades previstas pela especificação de projeto foram contempladas na implementação do

IP. Nesse sentido, o modelo de testbench proposto (Figura 17) a seguir constitui uma abordagem

híbrida do modelo BVM (Subseção 2.6.2 ).

REFMOD_LIN

S O U R C E

Driver

Driver

C H E C K E R Monitor

Monitor

REFMOD2_LIN

Actor

12

1

1

25

Figura 17. Estrutura BVM do testbench do LIN Bus core

Por meio desta estrutura, é possível garantir que REFMOD2_LIN (DUV) cumpra todos os

requisitos especificados na Seção 4.1.

A seguir são descritos cada um dos componentes da estrutura do testbench:

SOURCE26

: envia as transações para as entradas do modelo de referência do Driver;

REFMOD_LIN: implementa as mesmas funcionalidades do REFMOD2_LIN, mas

tipicamente em um nível mais alto de abstração. O modelo de referência deve ser correto

e é tipicamente atemporal;

Driver: recebe operações do Source e convertê-los em sinais de acordo com a interface

do REFMOD2_LIN;

Monitor: recebe os sinais do REFMOD2_LIN e converte em transações;

26

Para esta pesquisa foram mantidos os termos dos componentes em inglês, por tratarem-se de termos já consolidados

na área de Verificação;

Page 70: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

69

Actor: implementa o protocolo de comunicação (handshake); e

CHECKER: compara se as saídas REFMOD2_LIN são iguais às saídas do Modelo de

Referência. Se não, ele relata uma mensagem de erro.

A Figura 18 ilustra a Etapa 1.1, cujo objetivo é testar a capacidade do modelo de referência

interagir com o testbench.

REFMOD_LIN S I N K

P R E S O U R C E

Figura 18. Modelo de referência simples

O PRE_SOURCE é um subconjunto do SOURCE e implementa quase todas as

funcionalidades do SOURCE. O mesmo ocorre entre SINK e o CHECKER.

Os objetivos da Etapa 1.2 (Figura 19) são: (i) verificar a capacidade do PRE_SOURCE para

criar estímulos para ambos os modelos de referência; e (ii) verificar a capacidade do SINK

(posteriormente CHECKER) em detectar erros através da inserção, eventualmente, de um erro em

um dos modelos de referência.

REFMOD_LIN

S O U R C E

C H E C K E R

REFMOD2_LIN

Figura 19. Modelo de referência duplo

Page 71: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

70

A Etapa 1.3, mostrada na Figura 20, possui componentes RTL – Register Transfer Level, ao

contrário dos modelos anteriores que trabalhavam somente no TL – Transaction Level. O principal

objetivo desse modelo é simular o REFMOD2_LIN por meio do uso do Driver, Actor e Monitor.

Driver

Driver REFMOD2_LIN

Monitor

Actor

Monitor

S O U R C E

C H E C K E R

Monitor

Monitor

Actor

REFMOD_LIN

Figura 20. Emulação do DUV

A Etapa 2.1, mostrada na Figura 21, divide no mesmo nível de abstração o modelo de

referência, hierarquicamente como REFMOD2_LIN.

RX

AXI2LIN TX

CHECKSUM

MUX LIN2AXI

REFMOD_LIN

Figura 21. Modelo de referência decomposto em seis subsistemas

No APÊNDICE A são descritas as Etapas 2.1 e 2.2, as quais repetem as Etapas 1.1 e 1.2,

respectivamente, para cada módulo da divisão hierárquica descrita na Figura 21. A Etapa 2.3, visa

verificar se a divisão hierárquica é equivalente ao modelo de referência. As Etapas 3.1 e 3.2

repetem as Etapas 1.1 e 1.2, respectivamente, para cada módulo da divisão hierárquica. Já a Figura

22 ilustra o testbench completo, após todas as etapas de verificação BVM.

Page 72: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

71

Driver

Driver

DUV_LIN

Actor

REFMOD_LIN

S O U R C E

C H E C K E R

Monitor

Monitor

Figura 22. Testbench completo

Com a conclusão da Etapa 4.0 (LIN HW testbench) do modelo de verificação, o DUV_LIN

(LIN HW) pode ser analisado conforme descrito na Subseção 2.6.2 .Os resultados obtidos são

detalhados no Capítulo 5.

4.2.3 Verificação Funcional

O modelo de verificação funcional desenvolvido (doravante denominado LIN HW

TESTBENCH) possui estímulos dirigidos (apresentados no APÊNDICE B ) que emulam o

comportamento do barramento LIN, em especial os sinais oriundos do mestre e de um escravo;

comportamento este descrito no diagrama de sequência ilustrado previamente na Figura 14. Para a

reprodução desses estímulos, em mensagens geradas pelo mestre, foi desenvolvido um escalonador

de mensagens que atua diretamente no bloco SOURCE trocando sinais de controle com o bloco

CHECKER.

O LIN HW TESTBENCH implementa o fluxo principal especificado na Subseção 4.1.2

(Figura 12 e Figura 13), injetando mensagens de leitura e de escrita no LIN HW. Também foram

implementados no LIN HW TESTBENCH os fluxos secundários de diagnóstico e controle da

interface física. Por fim, o LIN HW TESTBENCH pode gerar uma frequência de operação entre 1 a

50 MHz para o funcionamento do LIN HW, bem como pode injetar dados no formato LIN entre 1 e

20 Kbps.

4.3 ABORDAGEM BASEADA EM SOFTWARE – LIN SW

A presente seção analisa o desenvolvimento do LIN SW, sendo dividido em três outras

subseções. Na primeira subseção, é apresentada a implementação do LIN SW utilizando a

Page 73: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

72

ferramenta SOPC Builder da Altera e a sua divisão em blocos lógicos quando comparado ao projeto

arquitetural proposto (Subseção 4.1.2 ). A segunda subseção analisa a etapa de programação do

software. Na terceira subseção, é descrito o plano de testes utilizado para o desenvolvimento do

LIN SW.

4.3.1 Implementação do Processador Embarcado Utilizando a Ferramenta

SOPC

A Figura 23 descreve a especificação do projeto de hardware utilizando a ferramenta SOPC

Builder da Altera. Na figura, é possível observar o dispositivo alvo (Cyclone II), a frequência de

clock de 50 Mhz utilizada no kit de desenvolvimento DE2 e os componentes adicionados ao projeto

(processador Altera Nios II, timer, jtga-uart, sysid, pios).

Figura 23. Especificação do sistema utilizando a ferramenta SOPC

A Figura 24 (a) descreve o projeto do hardware, incluindo o processado Nios II (Figura 24

(b)) e os componentes necessários para o sistema o desenvolvimento do LIN SW. Assim, conforme

descrito no Projeto Arquitetural (Subseção 4.1.2 as camadas de Enlace, Transporte e Aplicação

estão abstraídas na programação do software do processador Nios II.

Page 74: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

73

LIN SW

i_reset

i_clk

o_tx

i_rx o_cs

o_pio_led[7:0]

o_pio_pwm

i_pio_btn

(a)

NIOS II (b)

Figura 24. Projeto do hardware utilizado no LIN SW utilizando o processador Nios II

4.3.2 Programação do LIN SW

Na camada de Enlace, a amostragem dos sinais seriais inicia com a transmissão do break -

field e com a habilitação de um temporizador configurado a 9600bps. Em seguida, todo o quadro

LIN é amostrado a cada interrupção de 104μs, gerada pelo temporizador, amostrando todos os

campos do protocolo. Todo o processo de amostragem dá-se através de polling, analisando o

recebimento do campo de parada.

Durante o desenvolvimento do LIN SW, várias abordagens foram propostas pela equipe,

contudo, conforme descrito na Seção 2.3 por Ruff (2003), as abordagens que utilizavam a

reconfiguração do bit-rate da UART foram descartadas, por ser uma abordagem pouco

convencional (o grupo entendeu que o uso de interrupção seria mais apropriado).

Para a camada de aplicação, foram utilizados componentes de entrada e saída de dados

(PIOs) a fim de implementar um controle PWM, LEDs como saída e um botão de entrada de dados.

Ainda assim, não foi implementado nenhum mecanismo de diagnóstico, além dos previstos na

especificação do protocolo.

Na Figura 25, é possível observar o diagrama de classes e as camadas do projeto do software

do LIN SW.

Page 75: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

74

Figura 25. Diagrama de classes do LIN SW

O ANEXO B detalha a programação do temporizador e a interrupção da porta de entrada e

saída de dados da recepção serial (sinal RX LIN) utilizados como referência da codificação do LIN

SW.

Page 76: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

75

5 RESULTADOS

Este capítulo apresenta os resultados do desenvolvimento do LIN SW e do LIN HW. São

abordados aspectos da verificação funcional do LIN HW, a etapa de prototipação e testes, os custos

de silício e as potências obtidas nas duas implementações, a análise dos resultados e as

considerações finais do capítulo.

5.1 VERIFICAÇÃO FUNCIONAL

Com o suporte da verificação funcional feita pelo LIN HW TESTBENCH, foi possível

realizar diversas análises visando identificar eventuais erros na implementação do LIN HW para

que eles fossem corrigidos antes da síntese física do circuito.

A Figura 26 apresenta o diagrama de formas de ondas da simulação, a qual demonstra o

correto funcionamento do LIN HW submetido aos estímulos gerados pelo LIN HW TESTBENCH e

conforme estabelecido pela metodologia BVM. Assim, o diagrama ilustra duas transações

realizadas no barramento: (a) uma transação de escrita, na qual o LIN HW recebe o cabeçalho da

mensagem e os seus dados (ver sinal i_lin_request); e (b) uma transação de leitura, na qual o LIN

HW recebe o cabeçalho e responde com os dados solicitados (ver sinais i_lin_request e

i_lin_response).

Figura 26. Funcionamento do LIN HW TESTBENCH e do LIN HW

Com o escalonamento das mensagens pelo mestre, os campos de dados e de soma e

verificação podem possuir valores randômicos (conforme a aplicação implementada). Como o

campo de dados pode variar entre 2, 4 ou 8 bytes, esses bytes não foram gerados randomicamente,

Page 77: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

76

mas sim direcionados para os corner cases27

, ou seja, os estímulos gerados pelo LIN HW

TESTBENCH são direcionados28

. Essa decisão de projeto foi tomada no intuito de possibilitar uma

abrangência de aplicações e de reduzir o tempo de verificação. Este último é justificado tendo em

vista a ocorrência do pior cenário possível para o LIN HW: baud-rate na transmissão/recepção de

dados em 1200 bps e frequência de operação do LIN HW abaixo de 2.4 KHz (frequência de

amostragem de ½ tbit).

Nesse sentido, analisando o LIN HW TESTBENCH com estímulos direcionados, com taxa

de transmissão/recepção de dados a 9600bps e frequência de operação de 50 MHz, a cobertura dos

sinais injetados atingiu 100%.

Uma descrição mais detalhada dos aspectos relativos à verificação funcional é apresentada

no APÊNDICE B .

5.2 PROTOTIPAÇÃO E TESTE

A Figura 27 ilustra o diagrama de blocos do protótipo definido para os testes das

implementações físicas do LIN HW e do LIN SW. Nessa figura, é possível observar o nodo mestre

responsável por gerar o cabeçalho LIN, interconectado pelo barramento a dois nodos escravos

implementados segundo as duas abordagens utilizadas neste trabalho (baseadas em software e em

hardware). O nodo mestre é baseado em um microcontrolador da Freescale e executa um código

baseado em um demonstrativo disponibilizado pela própria empresa. Nesse código, o mestre envia

quadros LIN aos nodos escravos que devem responder às transações. O LIN HW foi sintetizado em

um FPGA da família Cyclone III da Altera montado sobre o kit de desenvolvimento DE0 da

Terasic. Já o LIN SW foi sintetizado para um FPGA da família Cyclone II da Altera, montado sobre

o kit DE2 da Terasic. Os nodos escravos possuem camadas de aplicação distintas, incluindo:

acionamento de motores DC (utilizando PWM) e transmissão de sinais de acionamento de botões.

27

Refere-se a valores extremos do byte, como o valor 0x00 e 0xFF, ou mesmo a ausência do dado em um determinado

momento da verificação. O uso de dados randômicos permite muitas vezes cobrir valores que muitas vezes passam

despercebidos pela equipe de verificação, contudo existe o custo do tempo de simulação. No caso do projeto do LIN

HW como a granularidade do projeto é grande, o bloco que poderia apresentar alguma necessidade maior de

verificação, como o bloco de soma e verificação (Checksum), foi exaustivamente verificado utilizando valores

randômicos. 28

Estímulos direcionado possuem valores preestabelecidos como o header e os dados injetados.

Page 78: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

77

LIN bus

Aplicação

Transporte

Enlace

NIOS II

Nodo Escravo 0 (LIN SW – DE2 – Cyclone II)

Aplicação

Transporte

Enlace

Nodo Escravo 1 (LIN HW – DE0 – Cyclone III)

Nodo Mestre (DEMO9S12XEP100)

Física Física Física

Figura 27. Diagrama de blocos do protótipo para teste físico

A Figura 28 ilustra a bancada de teste com a montagem de um nodo mestre (centro) e dois

nodos escravos (LIN HW à esquerda e LIN SW à direita), simulando uma rede automotiva. Para

auxiliar na verificação, é utilizado um osciloscópio digital. Ambos o kits de desenvolvimento (DE0

e DE 2) operaram a 50 MHz e a taxa de transmissão utilizada para o quadro LIN foi de 9600bps.

Figura 28. Bancada de testes LIN

O escalonador de mensagem (Figura 29) utilizado pelo nodo Mestre suporta dois tipos de

mensagem. A mensagem com identificador 0xd3 envia informação de um potenciômetro do nodo

Mestre para o nodo Escravo_0 baseado no LIN SW implementado na DE2. Este, por sua vez,

aciona o motor DC do velocímetro do painel simulando o acionamento do pedal do acelerador de

Page 79: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

78

um automóvel pelo nodo Mestre. A mensagem com identificador 0x42 solicita para o nodo

Escravo_1 baseado no LIN HW implementado na DE0 informações sobre o status de dois botões, o

farol alto e a luz de alerta, acionados pelo motorista.

Mestre - Mensagem_0 ID 0xd3

Mestre - Mensagem_1 ID 0x42

Caso de Uso - Tabela de Escalonamento

Figura 29. Caso de uso tabela de escalonamento de mensagens

O diagrama da Figura 30 descreve o fluxo das mensagens adotado pela tabela de

escalonamento desenvolvido para o sistema. Cada escravo dentro do barramento possui

identificadores específicos para cada aplicação, sendo que todos recebem as mensagens em

broadcast, cabendo a cada escravo interpretar o identificador e agir conforme a sua aplicação.

Nesse diagrama, o nodo Mestre envia a mensagem com identificador 0xd3, o Escravo_0 interpreta

essa mensagem como pertencente a ele e aciona o velocímetro utilizando PWM. Já a mensagem

com identificador 0x42 enviada pelo mestre retorna o status dos interruptores dos faróis e da luz de

alerta do Escravo_1.

Figura 30. Fluxo de mensagens enviadas no Barramento LIN

A Figura 31 (captura de tela do osciloscópio) ilustra a transferência de um quadro LIN na

qual o nodo Mestre envia uma mensagem para que o Escravo_0 (DE2 – Cyclone II) atue utilizando

Page 80: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

79

PWM para o acionamento do velocímetro do painel do automóvel. A Figura 31 possui três sinais

distintos, são eles: (a) o sinal do barramento LIN (12 volts); (b) o sinal no canal de recepção LIN do

PHY (RX); e (c) chip-select (CS) responsável por habilitar o canal de transmissão (TX) do PHY.

Figura 31. Quadro enviado do nodo mestre para o Escravo_0 com a mensagem de ID 0xd3 (escala

em 5 volts)

A Figura 32 ilustra o envio de uma mensagem pelo nodo Mestre, solicitando que o

Escravo_1 (DE0 – Cyclone III) atualize a rede com o status das chaves de acionamento dos faróis e

da luz de alerta do automóvel. Na figura, é possível observar: (a) o sinal do barramento LIN (12

volts); (b) o sinal do canal de transmissão de dados do PHY (TX); e (c) o sinal de chip-select (CS).

Cabe observar que o sinal TX é ativado no momento do envio da resposta solicitada pelo

barramento. No exemplo, o nodo Escravo_1 está enviando dois bytes com valor 0x01 (estado das

chaves) e o byte de soma e verificação.

Page 81: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

80

Figura 32. Quadro enviado do nodo mestre para o Escravo_1 com a mensagem de ID 0x42 e sua

respectiva resposta (escala em 2 volts)

As implementações físicas foram validadas com a aplicação de planos de testes pré-

definidos a fim de:

Testar as funcionalidades das implementações, conforme descrito na Seção 4.1;

Verificar o correto funcionamento dos fluxos principais e secundários dos casos de uso

definidos na Subseção 4.1.2 ;

Confirmar o atendimento das especificações quanto às respostas esperadas para os

estímulos aplicados;

Validar as suposições e os requisitos elencados nas especificações de design por meio da

verificação; e

Minimizar os esforços redundantes.

Page 82: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

81

5.3 CUSTO DE SILÍCIO

Concluídas as etapas de implementação, verificação29

, prototipação e teste, o LIN HW e o

LIN SW foram sintetizados para dispositivos das famílias Cyclone II e Cyclone III da Altera a fim

de se extrair métricas quanto ao custo de silício dessas implementações.

A Tabela 2 apresenta os custos de silício de FPGA para a família Cyclone II (dispositivo

EP2C35F672C6E). Os custos são expressos pela quantidade de Look-Up Tables (LUTs)30

, Flip-

Flops (FFs) e Células Lógicas (LCs) consumidas. Cada LC possui uma LUT e um FF, sendo que,

na síntese, o Quartus II pode utilizar ambos os recursos de uma LC, ou apenas um ou outro. Uma

vez que nem todas as LCs são ocupadas integralmente, em geral, o número de LCs utilizadas difere

da quantidade individual de LUTs ou de FFs, ou mesmo da soma dessas duas quantidades. Por

exemplo, o LIN HW sintetizado para o dispositivo Cyclone II consumiu 413 LUTs e 485 FFs, num

total de 794 LCs.

Tabela 2. Custos da síntese dos principais blocos do LIN HW para a família Cyclone II

Bloco LUTs FFs LCs

AXI2LIN 24 80 94

GENETOP 11 18 29

LIN2AXI 13 29 38

CHECKSUM 47 96 143

MUX 23 32 46

RX 180 139 239

TX 115 91 205

TOTAL 413 485 794

A Tabela 2 também apresenta os custos dos blocos que constituem o LIN HW. É possível

observar que o RX constitui o bloco com maior consumo de recursos, pois é o de maior

complexidade, sendo responsável pelas etapas de identificação do início do cabeçalho LIN, re-

sincronização e conversão serial/paralela dos dados recebidos.

Na Tabela 3, são apresentados os custos de silício de FPGA para a família Cyclone III

(dispositivo EP3C16F484C6E).

29

Vale destacar que a implementação LIN SW não foi submetida à verificação funcional, dado que o testbench (LIN

HW TESTBENCH) foi desenvolvido especialmente para a verificação do LIN HW. 30

As LUTs são blocos que implementam funções lógicas e refletem a área de silício devida à lógica combinacional.

Page 83: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

82

Tabela 3.Custos da síntese dos principais blocos do LIN HW para a família Cyclone III

Bloco LUTs FFs LCs

AXI2LIN 29 81 95

GENETOP 11 18 29

LIN2AXI 13 29 38

CHECKSUM 47 96 143

MUX 22 32 45

RX 177 138 240

TX 114 91 204

TOTAL 413 485 794

LIN Software

A Tabela 4 apresenta os resultados da síntese lógica do projeto do LIN SW. O LIN SW foi

sintetizado para FPGA da família Cyclone II e Cyclone III.

Tabela 4. Custos da síntese do LIN SW para as famílias Cyclone II e Cyclone III

Família de FPGA LUTs FFs LCs Memória embutida (kb)

Cyclone II 770 769 1441 273,408

Cyclone III 768 777 1442 273,408

Comparativo Entre as Implementações

A Tabela 5 reúne os resultados da síntese lógica para as duas abordagens LIN HW e LIN

SW para a família Cyclone II da Altera.

Tabela 5. Comparação entre as duas abordagens para a família Cyclone II

Bloco LUTs FFs LCs

LIN_HW 413 485 794

LIN_SW 770 769 1441

A Tabela 6 reúne os resultados da síntese lógica para as duas abordagens LIN HW e LIN

SW para a família Cyclone III da Altera.

Page 84: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

83

Tabela 6. Comparação entre as duas abordagens para a família Cyclone III

Bloco LUTs FFs LCs

LIN_HW 413 485 794

LIN_SW 768 777 1441

Nesse contexto, os resultados das Tabela 5 e da Tabela 6 quando comparados demonstram

que uma implementação em hardware é mais vantajosa quando se analisa o custo final em células

lógicas.

5.4 TEMPO DE PROJETO

Com relação ao tempo de desenvolvimento (especificação, implementação e verificação) das

duas abordagens, observou-se um menor tempo de projeto para a abordagem baseada em software,

aproximadamente 6 meses entre a codificação e o desenvolvimento da bancada de testes. Já no

projeto do hardware, entre o desenvolvimento da ferramenta de verificação do protocolo, o

desenvolvimento e a síntese física do núcleo LIN decorreram aproximadamente dois anos.

No desenvolvimento das duas implementações foi necessário um esforço para

aprendizagem de conceitos, tecnologias e ferramentas, tornou-se impossível quantificar

precisamente a diferença de tempo de projeto, contudo, no contexto da presente dissertação, estima-

se que o projeto em software foi quatro vezes mais rápido que o projeto em hardware.

5.5 POTÊNCIA DISSIPADA

Os resultados dos experimentos estimando as potências dissipadas pelo LIN HW foram

feitos utilizando as ferramentas PowerPlay da Altera e a ferramenta Modelsim da Mentor Graphics,

utilizando a configuração padrão das ferramentas. Nesses experimentos, foram extraídas quatro

métricas de potência para o dispositivo Cyclone II, são elas: (i) potência térmica dissipada total (ii)

potência térmica dinâmica dissipada pelo núcleo, (iii) potência térmica estática dissipada pelo

núcleo e a (iv) potência térmica dissipada pelos pinos de I/O. Na Tabela 7, são reunidos os

resultados das potências dissipadas pelo LIN HW, analisados nas frequências de operação de

1 MHz, 25 MHz e 50 MHz.

Page 85: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

84

Tabela 7. Potências dissipadas pelo LIN HW operando sob diferentes frequências

Frequência 50 MHz 25 MHz 1 MHz

Potência Térmica I/O Dissipada 37,09 mW 36,72 mW 36,16 mW

Potência Térmica Dinâmica do Núcleo Dissipada 44,99 mW 19,70 mW 0,89 mW

Potência Térmica Estática do Núcleo Dissipada 80,10 mW 80,01 mW 79,95 mW

Potência Térmica Total Dissipada 162,17 mW 136,43 mW 117 mW

A Figura 33 compara graficamente todas as potências dissipadas pelo LIN HW.

Figura 33. Gráfico da potência consumida pelo LIN HW

A mesma abordagem foi utilizada para análise das potências dissipadas pelo LIN SW. A

Tabela 8 reúne os resultados obtidos:

Tabela 8. Potências dissipadas pelo LIN SW operando em diferentes frequências

Frequência 50 MHz 25 MHz 1 Mhz

Potência Térmica I/O Dissipada 35,19 mW 34,07 mW 32,99 mW

Potência Térmica Dinâmica do Núcleo Dissipada 24,58 mW 12,97 mW 0,48 mW

Potência Térmica Estática do Núcleo Dissipada 80,02 mW 79,98 mW 79,93 mW

Potência Térmica Total Dissipada 139,79 mW 127,97 mW 113,4 mW

0

20

40

60

80

100

120

140

160

180

50 25 1

Potência I/O

Potência Dinâmica

Potência Estática

Potência Total

Frequência (MHz)

Po

tên

cia

(mW

)

Page 86: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

85

A Figura 34 compara graficamente todas as potências analisadas do LIN SW.

Figura 34. Gráfico da potência consumida do LIN SW

A Figura 35 compara graficamente (em colunas) as potências analisadas do LIN SW e do

LIN HW.

Figura 35. Gráfico comparativo em colunas das potências consumidas entre o LIN SW e LIN HW

0

20

40

60

80

100

120

140

50 25 1

Potência I/O

Potência Dinâmica

Potência Estática

Potência Total

Frequência (MHz)

Po

tên

cia

(mW

)

0

20

40

60

80

100

120

140

160

180

50 25 1

Potência I/O

PotênciaDinâmicaPotência Estática

Po

tên

cia

(mW

)

Frequência (MHz)

Page 87: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

86

A Figura 36 compara, em um gráfico de linhas, as potências analisadas do LIN SW e do

LIN HW

Figura 36. Gráfico comparativo linear das potências consumidas entre o LIN SW e LIN HW

Na Figura 35 e na Figura 36 é possível observar que a Potência I/O e a Potência Estática nas

duas abordagens em todas as frequências propostas permanecem constantes, pois não ocorre

atividade de chaveamento (dispersão de corrente). Contudo, analisando-se a Potência Térmica

Dinâmica do Núcleo, a abordagem em hardware possui vantagens em relação à abordagem em

software nas frequências de operação de 25 MHz e 50 MHz, sendo a potência de 1 MHz é

desconsiderada devido a possível incerteza na medição.

Nesse sentido, como a Potência Térmica Total é constituída das três componentes de

potências anteriormente citadas e considerando as ferramentas de simulação utilizadas (com as

referidas configurações) para os respectivos dispositivos, torna-se vantagem utilizar a abordagem

em hardware para sistemas que utilizem frequência entre 25 MHz e 50 MHz.

5.6 RESULTADOS ADICIONAIS - SÍNTESE EM ASIC

Adicionalmente aos experimentos realizados para FPGA, foram obtidas métricas de custo da

síntese física do LIN HW em ASIC (Application Specific Integrated Circuit). A tabela a seguir

apresenta diversos resultados da síntese física (utilizando a ferramenta ICC da Synopsys) do

LIN HW para a tecnologia XFAB 0.35μm.

0

20

40

60

80

100

120

140

160

180

50 25 1

Po

tên

cia

(mW

)

Frequência (MHz)

Potência I/O

Potência Dinâmica

Potência Estática

Potência Total

Page 88: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

87

Tabela 9. Resultados da síntese física do LIN HW para a tecnologia XFAB 0.35μ

Tecnologia XFAB 0.35μ

Camadas de Metal 4

Área Die 4,9 mm²

Área Combinacional 1 mm²

Área Não Combinacional 1 mm²

PADs 60

Encapsulamento CL CCJ 68 X-FAB

Tensão de Alimentação 3,3V

Potencia Dinâmica para 10 MHz 7,1 mW

A figura a seguir apresenta uma imagem do die do LIN HW após a síntese física do núcleo.

Figura 37. Síntese Física do LIN HW

O resultado final ou tape-out de todo o ciclo de desenvolvimento pode ser visto na figura a

seguir.

Figura 38. Resultado final do ciclo de desenvolvimento

Page 89: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

88

5.7 ANÁLISE DOS RESULTADOS

Os resultados obtidos para as duas implementações sintetizadas em dispositivos lógicos

programáveis do tipo FPGA Altera Cyclone II e Cyclone III, utilizando a ferramenta Quartus II e

analisados sobre restrições de frequência de operação e quadros LIN, mostraram que:

A implementação baseada em hardware consome menos área de silício que a

implementação em software;

A implementação baseada em software é mais flexível para atualizações; e

A implementação baseada em hardware consome menos energia.

O Item 1 não confirma a hipótese levantada na Subseção 1.1.1 em decorrência da

metodologia de verificação funcional BVM e das otimizações da implementação em hardware.

Nesse caso, o LIN SW, tendo em vista que utiliza um processador de propósito geral (Nios II),

possui mais lógica inserida no projeto final.

O Item 2 confirma a hipótese levantada na Subseção 1.1.1 . Ainda que o LIN SW funcione

por polling para a detecção do início de um quadro LIN, a implementação em software foi

facilitada, pois utilizou o mesmo levantamento de requisitos e todo o conhecimento pré-adquirido

na implementação do LIN HW, além da análise das diversas soluções do protocolo LIN em

software para microcontroladores. Nesse sentido, qualquer modificação no LIN SW pode ser

rapidamente efetuada e verificada utilizando a ferramenta de simulação Modelsim.

O Item 3 confirma a hipótese levantada na Subseção 1.1.1 de que a solução baseada em

hardware consumiria menos energia do que a solução baseada em software. Porém, cabem algumas

ponderações. Em primeiro lugar, os resultados obtidos consideram as duas implementações

operando na mesma frequência. No entanto, estima-se que a frequência mínima de operação do LIN

SW seja cerca de uma ordem de magnitude superior à do LIN HW31

, o que resultaria em um maior

consumo de potência dinâmica. No entanto, conforme discutido, não foi possível se determinar a

frequência mínima de operação do LIN SW. Além disso, destaca-se o fato de que o projeto do LIN

HW não aplicou técnicas de projeto visando a redução do consumo de potência. Após análises dos

31

Cabe lembrar que as tarefas do protocolo LIN são executadas em paralelo pelos módulos do LIN HW, enquanto que o

LIN SW as executa de forma sequencial.

Page 90: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

89

relatórios apresentados pela ferramenta PowerPlay, verificou-se que existem blocos lógicos que

podem ser otimizados em trabalhos futuros para consumir menos potência.

Por fim, os resultados obtidos nesse trabalho podem ser validados a partir do sucesso na

produção do ASIC LIN, da bancada de teste automotiva pelo desenvolvimento da ferramenta de

verificação, dentre outros.

No Quadro 3, é possível observar uma análise comparativa das principais características dos

núcleos comerciais anteriormente listados e do LIN HW e LIN SW da UNIVALI.

Quadro 3. Análise comparativa das características de núcleos de propriedade intelectual LIN

Atributo Desenvolvedor

CAST Intelliga BOSCH UNIVALI UNIVALI UNIVALI

Nome LIN Core iLIN C LIN LIN IP LIN HW LIN SW

Tipo de Núcleo Soft IP-core Soft IP-

core

Soft IP-

core Soft IP-core Soft IP-core

Soft IP -

core

HDL VHDL

Verilog

VHDL

Verilog VHDL VHDL Verilog Verilog

Tecnologia

Alvo

FPGA

ASIC

FPGA

ASIC

FPGA

ASIC FPGA

FPGA

ASIC FPGA

Especificação Revisão 2.0 Revisão 1.3

Revisão

1.3, 2.0 e

2.1

Revisão 2.1 Revisão 2.1 Revisão

2.1

Configuração

da taxa de

dados

Programável

ou

automática

Automática Fixa Fixa Programável Fixa

Buffer de dados Um buffer

de 8 bytes

Informação

não

disponível

Buffers

TX e RX

de 8 e 7

bytes

Buffers TX e

RX

configuráveis

Buffers TX e

RX

Não

possui

Buffer

Funcionalidade Mestre ou

escravo

Mestre ou

escravo

Mestre

ou

escravo

Escravo Escravo Mestre ou

Escravo

Custo de silício 2710 a 3760

gates 3000 gates

3100 a

3900

gates

598 células

lógicas

794 células

lógicas

1441

células

lógicas

Referência CAST

(2007)

Intelliga

(2003)

BOSCH

(2007)

Pereira

(2008)

Presente

Trabalho

Presente

Trabalho

Page 91: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

90

5.8 CONSIDERAÇÕES

Esta pesquisa contribui como um guia para desenvolvimento do protocolo automotivo LIN

em software e em hardware. Para tal, fez-se uma revisão bibliográfica dos conceitos relacionados a

redes automotivas, tais como as definições, a classificação e os padrões das redes automotivas, bem

como uma revisão mais detalhada sobre o protocolo automotivo LIN. Também foi realizado um

estudo sobre as técnicas de projeto de circuito integrado, no qual foram analisados as métricas mais

usadas, a metodologia de verificação ipPROCESS e foi feito um estudo mais aprofundado sobre

verificação de blocos IP. Foram ainda relacionados trabalhos que abordaram o desenvolvimento, as

métricas, os modelos e as metodologias de verificação de bloco IP.

Apresentou-se também a especificação do projeto baseado na metodologia ipPROCESS.

Nesse sentido, foram feitas análises dos atores, do diagrama de sequência, da descrição e do projeto

arquitetural do projeto (software e hardware). Essa análise não foi totalmente exaustiva, mas

acreditamos que os aspectos fundamentais para o desenvolvimento tanto em software quanto em

hardware do protocolo LIN foram abordados.

A partir dessa análise, descreveu-se o desenvolvimento do protocolo LIN em hardware e em

software, apresentando-se toda a descrição lógica dos blocos, os métodos de verificação e os

resultados obtidos no desenvolvimento. Nesse sentido, os resultados demonstraram o

funcionamento do LIN HW/LIN SW e os custos da síntese em FPGA para as famílias Cyclone II

Cyclone III.

Os resultados da primeira versão do IP LIN foram publicados nos anais do XV Workshop

Iberchip (IBERCHIP 2009). Já os resultados da verificação funcional do LIN HW foram

apresentados no Fórum de Estudantes de Microeletrônica 2010 (SForum 2010).

O uso do protocolo LIN também está inserido no contexto do programa UNIESPAÇO da

Agência Espacial Brasileira (AEB), com o projeto intitulado – Uso do Protocolo LIN na

Interconexão de Sistemas em Satélites Artificiais. No qual visa avaliar a aplicabilidade do protocolo

LIN para uso na interconexão de sistemas aeroespaciais.

Page 92: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

91

6 CONCLUSÕES

Os resultados obtidos no presente trabalho mostraram que as duas abordagens (hardware e

software) podem ser adotadas na implementação de uma rede LIN em um automóvel. Contudo, com

base nos experimentos realizados, verificou-se que o diferencial na escolha de uma das abordagens

está no modelo de negócio adotado pela empresa no momento. Em um cenário automotivo de

negócios, com necessidade de redução de custos em periféricos, estima-se que o melhor modelo

adotado deve possuir baixo Time-to-Prototype e baixo Time-to-Market, a melhor abordagem é em

software. Já em um cenário automotivo de negócios a longo prazo, com vistas à adoção em uma

plataforma consolidada, o qual implica em severas reduções no preço final do automóvel e que

permite o aumento do conforto dentro do automóvel sem comprometer a segurança dos seus

ocupantes, estima-se que a melhor abordagem é em hardware.

Nesse sentindo, o presente trabalho contribui como um guia para projetistas de sistemas

baseados em LIN, orientando-os na escolha da melhor abordagem para o desenvolvimento de

projetos baseados em redes automotivas, em especial na rede LIN.

Como contribuição adicional dessa dissertação, destaca-se a modelagem e o

desenvolvimento de um testbench para verificação funcional do protocolo LIN. Como o referido

protocolo é auto-sincronizado (self - synchronized), o testbench desenvolvido diferencia da

metodologia BVM proposta no escopo do programa Brazil IP devido à ausência do bloco “Actor”, o

qual é responsável pelo handshake necessário à comunicação entre os blocos durante a verificação

funcional. O projeto executado no contexto do Brazil IP produziu, como principais artefatos: o

testbench, a síntese lógica e a síntese física do core (LIN HW) para a produção de um ASIC

utilizando a tecnologia XFAB 0.35. Vale destacar que não foram encontrados trabalhos na literatura

que relacionem verificação funcional para sistemas automotivo, em especial a verificação funcional

do protocolo LIN.

Quanto às publicações, ao longo do período de estudos e pesquisa no mestrado, foram

publicados trabalhos nos anais dos eventos Students Forum on Microelectronics (SFORUM 2010) e

no Workshop IBERCHIP (IWS 2009).

Page 93: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

92

6.1 TRABALHOS FUTUROS

Como trabalhos futuros, vislumbram-se algumas oportunidades a serem exploradas a partir

da experiência produzida com esta dissertação:

Obtenção de dados quantitativos acerca de métricas de projetos não cobertas por essa

dissertação, tais como a frequência e taxas mínimas e máximas de operação das duas

abordagens e o tempo de projeto de cada etapa do desenvolvimento;

Implementação e avaliação do nodo mestre LIN em hardware; e

Teste da abordagem de verificação funcional para dispositivos baseados em outras redes

automotivas, tais como CAN, FLEXRAY ou MOST.

Page 94: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

93

REFERÊNCIAS

ALTERA. Nios Processor. 2011. Disponível em:

<http://www.altera.com/products/ip/processors/ipm-index.jsp>. Acesso em: 15 jan. 2011.

ALTERA. Quartus II Web Edition Software. 2010. Disponível em:

<https://www.altera.com/download/software/quartus-ii-se>. Acesso em: 10 jan. 2010.

BERETTA, Joseph. Goal and prospects of embedded electronics systems.[S.l.]: PSA Peugeot

Citroën, 2003.

BERGERON, Janick. Writing testbenches using system verilog. [S.l.]: Springer; 2006.

BMW. FLEX RAY. 2010. Disponível em:

<http://www.bmw.com/com/en/insights/technology/technology_guide/articles/flex_ray.html>.

Acesso em: 10 jan. 2010.

BORGES, José A.; SCHMITZ, Eber A. Projeto de circuitos integrados. Rio de Janeiro: LTC,

1990.

BOSCH, Robert. Automotive handbook. [S.l.]: John Wiley & Sons, 2008.

BOSCH, Robert. C_LIN Module - for low cost LIN slave designs. Reutlingen: Alemanha; 2007.

BROWN, Stephen.;ROSE, Jonathan. FPGA and CPLD architectures: a tutorial. IEEE Design &

Test of Computers, p. 42, 1996.

CARRO, Luigi. Projeto e prototipação de sistemas digitais. Porto Alegre: UFGRS, 2001.

CARVALHO, Leonardo Mello de. Indicador IPEA de produção industrial mensal, [S.l.: s.n.],

2011.

CAST Inc. LIN controller core. Woodcliff Lake: Cast, 2007.

CHARETTE, Robert N. This car runs on code. 2009. Disponível em:

< http://spectrum.ieee.org/green-tech/advanced-cars/this-car-runs-on-code/0>. Acesso em: 10 mar.

2010.

CYPRESS. PSoC technology. [S.l.: s.n.], 2009.

DAY, John H. In-vehicle network standards dance to automakers’ tunes. Ward’s auto electronics,

Março, 2005.

DEPRÁ Dieison A.; ZATT, Bruno; BAMPI, Sergio. A method for HW functional verification

through HW/SW co-simulation in complex systems: H.264/AVC decoder as case study. In. LATIN

AMERICAN TEST WORKSHOP, 10., 2009, Buzios. Proceedings… [S.l.: s.n.], 2009.

EBERT, Christof; JONES, Capers. Embedded software: facts, figure, and future. Computer. 2009.

Page 95: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

94

EICHINER Friedrich. Annual accounts press conference. Munique: Alemanha, 2010.

GUIMARÃES, Alexandre de A. Eletrônica embarcada automotiva. 1. ed., São Paulo: Érica,

2007.

HEKMATMPOUR Amir, COULTER James, Coverage-directed management and optimization

of random functional verification. In: INTERNATIONAL TEST CONFERENCE (ITC), 2013.

Proceedings… [S.l.: s.n.], 2003.

INTELLIGA; Local interconnect network controller core – ILIN V1.3. Essex: Intelliga, 2003.

KHANAPURKAR, Milind; BAJAJ, Preeti; DAHAKE, Sandesh; WANDHARE, Hemant. Design

approach for VHDL and FPGA implementation of automotive black box using CAN Protocol.

International Journal of Computer Science and Network Security, v.8 n.9, 2008.

LAKATOS, Eva Maria; MARCONI, Marina de Andrade. Metodologia do trabalho científico. 4.

ed. São Paulo: Atlas, 1992

LIMA, Marília; SANTOS, Francielle; BIONE, João; LINS, Tiago; BARROS, Edna. IPPROCESS:

A development process for soft IP-Core with prototyping in FPGA. Recife: UFPE, 2005.

LIN, Consortium. LIN specification package - revision 2.1. Sttugart: Alemanha, 2006.

LUPINI, Christopher A. Vehicle multiplex communication - serial data networking applied to

vehicular engineering. SAE International, [S.l.: s.n.], 2004.

MALI, Marko; NOVAK; Franc; BIASIZZO, Anton. Hardware implementation of AES algorithm.

Electrical Engineering, v.56, n. 9-10, 2005.

MICROCHIP. PICDEM CAN-LIN 1 2 and 3 demonstration boards, 2009.

MOST. MOST, 2010. Disponível em: < http://www.mostnet.de/home/index.html>. Acesso em: 10

mar. 2010.

NEVES, José L. Pesquisa qualitativa: característica, usos e possibilidades. Caderno de Pesquisas

em Administração, São Paulo, v.1, n.3, 1996.

ALTERA. Nios II processor reference handbook. [S.l.]: Altera, 2009.

OLIVER, John D.; Implementing the J1850 protocol. [S.l.]: Intel, 1996.

PAPO, José P. Metodologias ágeis e extreme programming (XP): uma introdução, 2002.

Disponível em: <http://www.spinsp.org.br/apresentacao/SpinXP.pdf 0>. Acesso em: 15 mar. 2011.

PATTERSON, David A.; HENNESSY, John L.; Organização e projeto de computadores: a

interface hardware/software. 3.ed., Rio de Janeiro: Campus, 2005.

PEREIRA, Rodrigo V. M. Implementação do protocolo de comunicação automotivo LIN Bus

versão 2.0 em FPGA no modo escravo. Trabalho de Conclusão de Curso (Bacharelado em

Engenharia de Computação)– Universidade do Vale do Itajaí, São José, 2008.

Page 96: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

95

RUF, Matthew. Evolution of local interconnect network (LIN) solutions. Motorola, Austin:

Texas, 2003.

RUP. Rational unified process - best practices for software development teams. White Paper.

2001. Disponível em:

<http://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/1251_bestpractice

s_TP026B.pdf>. Acesso em: 30 mar. 2011.

SILVA, Karina R. G. Uma metodologia de verificação funcional para circuitos digitais. 2007.

121f. Tese (Doutorado em Engenharia Elétrica )– Programa de Pós-Graduação em Engenharia

Elétrica, Universidade Federal de Capina Grande, Campina Grande, 2007.

SOARES, Luiz F.G.; LEMOS,Guido; COLCHER,Sérgio. Redes de computadores – das LANS,

MANS e WANS às redes ATM. 1. ed. Rio de Janeiro: Campus, 1995.

THOMAS, Donald. E; MOORBY, Philip R. The Verilog hardware description language. [S.l.]:

Springer, 4. ed. 1998.

TOBAR, Edgar L. R. Técnicas para a verificação funcional eficiente de uma implementação

RTL da camada banda base do protocolo Bluetooth. 2005. 71f. Dissertação (Mestrado em

Engenharia Elétrica)– Programa de Pós-Graduação em Engenharia Elétrica, Universidade de São

Paulo, São Paulo, 2005.

VAHID, Frank. Embedded system design: a unified hardware/software introduction. [S.l.]: Wiley,

2002.

VARID, Frank. Sistemas digitais: projeto, otimização e HDLS. 1.ed. Porto Alegre: Bookman,

2008.

VISTEON. 2007 Annual Report. Van Buren Township: Visteon, 2008.

Page 97: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

96

APÊNDICE A - IMPLEMENTAÇÃO DO ASIC DO LINIP

Verificação Funcional

A metodologia BVM é uma reformulação da metodologia VeriSC, na qual tem como

premissa a construção do testbench de forma incremental. A diferença marcante nessa metodologia

está na criação do bloco Actor, de controle da comunicação entre o DUV e o testbench. Além disso,

o uso de uma FIFO com duas saídas possibilitou, em conjunto com o uso do Actor, a detecção de

erros na fase de integração entre o DUV e o testbench. Essa abordagem permite que em projetos

com múltiplos módulos, os erros de comunicação entre DUV e testbench, sejam facilmente

detectados. Assim como o VeriSC, a construção do testbench é priorizada com relação a criação

DUV.

A metodologia prevê a decomposição do testbench em três passos: (i) Refmod Simples; (ii)

Refmod Duplo; e (iii) Emulação do DUV.

A Figura 42 ilustra a Etapa 1.1 de decomposição simples do testbench. Essa etapa tem por

objetivo testar a capacidade do modelo de referência32

(Refmod_LIN) interagir com o bloco de

geração de estímulos, o Pre_Source, e com o bloco de verificação das saídas do sistema, o Sink.

Figura 39. Etapa 1.1 – Decomposição Simples do Modelo de Referência

32

Também conhecido como golden model, ou modelo de ouro, por se tratar de um modelo de referência já consolidado.

Esse modelo pode ser uma caixa-preta, uma caixa-cinza ou mesmo uma caixa-branca, descrito muitas vezes em

linguagem de alto nível como C, C++ ou SystemVerilog.

P R E S O U R C E

REFMOD_LIN

S I N K

Page 98: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

97

A Figura 40 ilustra um incremento na Etapa 1.1 com a adição de mais um modelo de

referência (Refmod2_LIN) e substituição do gerador dos estímulos pelo bloco Source e o

verificador das saídas pelo Checker, sendo assim, os dois blocos são acrescidos de duas FIFOS de

saída.

REFMOD2_LIN

C H E C KER RX

C HECKER

REFMOD_LIN S O U R C E

Figura 40. Modelo de referência hierárquico duplo.

Na Etapa 1.3, com objetivo de transformar as transações em sinais, são introduzidos mais

dois módulo, o Driver e o Monitor (Figura 41) e conforme a metodologia BVM, o Actor é o

responsável por sincronizar a transferência das mensagens. Para o presente projeto, devido a

características do protocolo LIN o Actor foi suprimido na transmissão e recepção dos sinais seriais

do protocolo LIN.

Figura 41. Emulação DUV

Driver

REFMOD2_LIN

Actor

Actor

Monitor Driver

Monitor Driver Monitor Driver

REFMOD_LIN

S O U R C E

C H E C K E R

Monitor

Page 99: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

98

Semelhantes ao passo 1.1, as figuras seguintes (Figura 42 à Figura 47), ilustram o modelo de

referência pertencentes a etapa 2.2, já decomposto e submódulos e incluídos no testbench.

P R E S O U R C E 1

REFMOD_RX

S I N K R X

Figura 42. Decomposição simples do modelo de referência RX

P R E S O U R C E 2

S I N K MU X

REFMOD_MUX

Figura 43. Decomposição simples do modelo de referência MUX

Figura 44. Decomposição simples do modelo de referência LIN2AXI

P R E S O U R C E 3

S I N K L I N2 AX

I

REFMOD_LIN2AXI

Page 100: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

99

Figura 45. Decomposição simples do modelo de referência AXI2LIN

P R E S O U R C E 5

REFMOD_CHECKSUM

S I N K CH E C K S UM

Figura 46. Decomposição simples do modelo de referência CHECKSUM

P R E S O U R C E 6

S I N K TX

REFMOD_TX

Figura 47. Decomposição simples do modelo de referência TX

P R E S O U R C E 4

REFMOD_AXI2LIN

S I N K AX I 2 L I N

Page 101: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

100

A Figura 48 ilustra como o modelo de referência foi decomposto hierarquicamente. Nessa

figura é possível observar a decomposição em cinco submódulos e as suas interligações, sendo que

cada submódulo é testado individualmente nas etapas a seguintes.

REFMOD_LIN

S O U R C E

C H E C K E R

RX

AXI2LIN TX

CHECKSUM

MUX LIN2AXI

Figura 48. Decomposição Hierárquica do Modelo de Referência

Semelhantes ao passo 1.2, as figuras seguintes (Figura 49 à Figura 54), pertencentes ao

passo 3.1, ilustram o modelo de referência já decomposta em dois submódulos e incluída no

testbench. O objetivo principal dessa abordagem é testar o correto funcionamento do Source e do

Checker.

REFMOD2_RX

C H E C KER RX

C HECKER RX

REFMOD_RX S O U R C E 1

Figura 49. Modelo de referência RX hierárquico duplo

Page 102: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

101

CHECKER MU X

REFMOD_MUX

REFMOD2_MUX

S O U R C E 2

Figura 50. Modelo de referência MUX hierárquico duplo

S O U R C E 3

CHEKCER L I N2 AX

I

REFMOD_LIN2AXI

REFMOD2_LIN2AXI

Figura 51. Modelo de referência LIN2AXI hierárquico duplo

S O U R C E 4

REFMOD_AXI2LIN

CHECKER AX I 2 L I N

REFMOD2_AXI2LIN

Figura 52. Modelo de referência AXI2LIN hierárquico duplo

Page 103: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

102

S O U R C E 5

REFMOD_CHECKSUM

SOURCE CH E C K S UM

REFMOD2_CHECKSUM

Figura 53. Modelo de referência CHECKSUM hierárquico duplo

S O U R C E 6

C H E CKER TX

REFMOD_TX

REFMOD2_TX

Figura 54. Modelo de referência TX hierárquico duplo

A etapa a seguir (Figura 55 à Figura 60) tem a mesma finalidade da Etapa 1.3, contudo o

testbench deve ser reconstruído atendendo a demanda de cada módulo. Para isso, blocos já

desenvolvidos nas etapas anteriores como Actor, Monitor e Driver, devem ser reutilizados.

Page 104: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

103

Driver REFMOD2_RX Monitor Monitor

Actor

REFMOD_RX

S O U R C E 1

C H E C K E R R X

Figura 55. Emulação do DUV do modelo de referência RX hierárquico

Driver

Driver

REFMOD2_MUX

Monitor

Monitor

Monitor

Actor

Actor

Actor

C H E C K E R MUX

S O U R C E 2

REFMOD_MUX

Figura 56. Emulação do DUV do modelo de referência MUX hierárquico

Driver REFMOD2_LIN2AXI Monitor

REFMOD_LIN2AXI

Monitor

Actor

S O U R C E 3

C H E C K E R L I N2AX I

Actor

Figura 57. Emulação do DUV do modelo de referência LIN2AXI hierárquico

Page 105: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

104

Driver REFMOD2_AXI2LIN Monitor

Actor

Actor

REFMOD_AXI2LIN

S O U R C E 4

C H E C K E R AX I 2L I N

Monitor

Monitor

Actor

Figura 58. Emulação do DUV do Modelo de Referência AXI2LIN Hierárquico

Driver

Driver

REFMOD2_CHECKSUM

Monitor

Monitor

REFMOD_CHECKSUM

Actor

Monitor

Actor

Actor

Actor

S O U R C E 5

C H E C K E R C HECKSUM

Monitor

Figura 59. Emulação do DUV do modelo de referência CHECKSUM hierárquico

Driver

Driver

REFMOD2_TX

Monitor

Monitor

Monitor

actor

actor

REFMOD_TX

S O U R C E 6

C H E C K E R T X

Figura 60. Emulação do DUV do modelo de referência RX hierárquico

Page 106: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

105

A Etapa 3.3 ilustrada na Figura 61 à Figura 66, repete parte da estrutura descrita na Etapa

3.2, contudo o RTL é testado sem a necessidade dos blocos que convertem transação em sinais.

Driver DUV_RX Monitor

Actor

REFMOD_RX

S O U R C E 1

C H E C K E R R X

Figura 61. DUV hierárquico do modelo de referência RX

Driver

Driver

DUV_MUX

Monitor

Actor

C H E C K E R MUX

S O U R C E 2

REFMOD_MUX

Figura 62. DUV hierárquico do modelo de referência MUX

Page 107: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

106

Driver DUV_LIN2AXI

REFMOD_LIN2AXI

Monitor

S O U R C E 3

C H E C K E R L I N2AX I

Actor

Figura 63. DUV hierárquico do modelo de referência LIN2AXI

Driver DUV_AXI2LIN

Actor

REFMOD_AXI2LIN

S O U R C E 4

C H E C K E R AX I 2L I N

Monitor

Monitor

Actor

Figura 64. DUV hierárquico do modelo de referência AXI2LIN

Driver

Driver

DUV_CHECKSUM

REFMOD_CHECKSUM

Actor

Monitor

Actor

S O U R C E 5

C H E C K E R C HECKSUM

Monitor

Figura 65. DUV Hierárquico do modelo de referência CHECKSUM

Page 108: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

107

Driver

Driver

DUV_TX Monitor

REFMOD_TX

S O U R C E 6

C H E C K E R T X

Figura 66. DUV Hierárquico do Modelo de Referência TX.

A Etapa 4.0 (Figura 67) consiste na integração do DUV ao testbench, sendo, portanto a

etapa final da verificação funcional. O amplo reaproveitamento dos módulos trabalhados nas etapas

anteriores e a abordagem top-down possibilita que essa etapa encontre possíveis erros não

detectados nas etapas anteriores.

Driver

LIN_HW

Actor

Driver Monitor

REFMOD_LIN

S O U R C E

C H E C K E R

Monitor

Figura 67. Verificação Funcional do LIN HW

Etapas de Síntese

Concluída a etapa de verificação, o LIN HW segue para a etapa de Síntese Lógica a fim de

transformar o RTL para uma tecnologia específica de portas lógicas, no caso XFAB .35. Com o

resultado da etapa anterior, o LIN HW passa pela etapa de Síntese Física.

Page 109: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

108

A Síntese Física por sua vez é dividida em cinco etapas antes da criação do GDSII33

, são

elas:

1. Floor Planning: etapa que determina o tamanho do DIE, cria os limites do núcleo e as

trilhas para a colocação das células;

2. Placement: etapa que configura as direções para a ferramenta de roteamento, além de

configurar a porcentagem de uso e espaço livre do chip;

3. Clock Tree: distribuição dos sinais de clocks;

4. Routing: interconexão entre os vários componentes e as diferentes camadas do Die.

Na etapa de Placement do LIN HW os PADS, as interconexões de alimentação e a lógica

são distribuídos na área do chip, como ilustrado na Figura 68.

Figura 68. Síntese Física – Distribuição da lógica na etapa de placement

33

Formato de arquivo utilizado pela indústria de semicondutores para representar circuitos integrados ou leiaute de

circuitos integrados.

Page 110: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

109

A Figura 69 ilustra a etapa de distribuição do clock (Clock Tree) do LIN HW.

Figura 69. Síntese física – Clock Tree do LIN HW

Page 111: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

110

APÊNDICE B ESTÍMULOS GERADOS

Os quadros abaixo ilustram a solução em SystemVerilog encontrada para a emulação do

cabeçalho LIN no LIN HW TESTBENCH.

rand shortint break_field;constraint setbreak { break_field inside {

16'b1111_1100_0000_0000, //10 BITS EM ZERO

16'b1111_1000_0000_0000, //11

16'b1111_0000_0000_0000, //12

16'b1110_0000_0000_0000, //13

16'b1100_0000_0000_0000 };}

Quadro 4. Descrição do campo de parada em SystemVerilog.

byte synch = 8'b01010101;

Quadro 5. Descrição do campo de sincronismo em SystemVerilog.

bit [0:8][7:0] msg_scheduler = '{ 8'h92, 8'h61, 8'hC4, 8'hC1, 8'h80, 8'hB1, 8'h78, 8'h7D, 8'h3C};

Quadro 6. Descrição do campo de sincronismo em SystemVerilog.

Page 112: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

111

ANEXO A – REVISÃO SISTEMÁTICA – PROTOCOLO DE

BUSCA

- REVISÃO SISTEMÁTICA -

PROTOCOLO DE BUSCA

UNIVALI

MCA – Mestrado em Computação Aplicada

Mestrando: Rodrigo Pereira

Orientador: Prof.Dr.Eng.Cesar Albenes Zeferino

A presente revisão sistemática é um estudo secundário que utiliza uma metodologia

definida, identificando, analisando e interpretando as evidências disponíveis relacionadas a uma

pergunta de pesquisa específica, evitando viés (tendência) e permitindo certo grau de reprodução da

pesquisa.

1. PLANEJAMENTO

1.1. IDENTIFICAÇÃO DA NECESSIDADE DA REVISÃO:

OBJETIVO DA REVISÃO

OBJETIVO

“O objetivo desta revisão é um estudo da análise das técnicas e tecnologias de

desenvolvimento e métricas de avaliação utilizadas na implementação em software e

em hardware de protocolos de comunicação, em especial o protocolo automotivo

LIN.”

Conforme proposto por Sampaio e Mancini (2006) uma boa revisão sistemática requer uma

pergunta de pesquisa ou questão bem formulada e clara.

PERGUNTA DE PESQUISA

Observando métricas de avaliação como throughput, área de cilício e frequência de

operação, o desenvolvimento das camadas de transporte e de enlace do protocolo LIN

em software utilizando NiosII e em hardware descrito em RTL possuem diferenças?

AS FONTES PARA IDENTIFICAR ESTUDOS PRIMÁRIOS E OS CRITÉRIOS PARA

INCLUSÃO E EXCLUSÃO DAS MESMAS.

Page 113: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

112

As fontes usadas serão artigos publicados em congressos, dissertações mestrado, teses de

doutorado, periódicos e dados oriundos da indústria tais como application note e folha de dados.

Serão incluídos os documentos que respondam a pergunta de pesquisa e estejam relacionados à

implementação em software e hardware, sistemas automotivos, processadores embarcados,

metodologia de projeto de soft-IP e o protocolo LIN.

CRITÉRIOS USADOS PARA AVALIAR A QUALIDADE DOS ESTUDOS PRIMÁRIOS

Os critérios usados para avaliar a qualidade dos estudos primários estão relacionados com a

relevância da publicação, a metodologia utilizada, a abrangência dos resultados obtidos, os critérios

de avaliação dos resultados obtidos, o acesso aos códigos fontes e a base de dados (no caso do

protocolo LIN, entendesse como base de dados às mensagens utilizadas). Estes critérios serão

medidos pelo número de citações de outros autores, precedência no site de busca, o uso da

metodologia de projeto OVM ou BVM bem como o uso de linguagem RTL.

APLICAÇÃO DOS CRITÉRIOS DE QUALIDADE

Serão considerados critérios de qualidade a uniformidade, o impacto e a relevância dos

dados obtidos, bem como se os resultados podem ser reproduzidos e analisados utilizando métodos

estatísticos. É o caso da descrição de um IP, cuja versão da ferramenta de síntese está descrita, bem

como a descrição detalhada dos critérios de análise e suas unidades de medidas.

EXTRAÇÃO DOS DADOS DOS ESTUDOS PRIMÁRIOS

Serão selecionados os dados que respondam diretamente a pergunta de pesquisa, ou os

dados que estejam relacionados à implementação em software e hardware, sistemas automotivos,

processadores embarcados, metodologia de projeto de soft-IP e o protocolo LIN.

SINTETIZE DOS DADOS EXTRAÍDOS

Será utilizada uma síntese quantitativa que inclui um método estatístico (meta análise).

Dados como frequência de operação, throughput e área de cilício serão comparados analisando os

resultados das sínteses do compilador QuartusII na mesma versão utilizada pela fonte dos dados,

bem como será feito um análise do percentual comparativo entre as duas fontes de dados,

estabelecendo assim uma ordem de grandeza entre as fontes.

Page 114: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

113

TRATAMENTO DAS DIFERENÇAS ENTRE OS ESTUDOS INVESTIGADOS

Devido a modularidade do projeto proposto, serão analisados somente os aspectos referentes

aos módulos do projeto, como exemplo: em um estudo que aborda um IP para tecnologia bluetooth,

serão comparadas a metodologia de verificação adotada e os critérios de avaliação do IP, contudo

aspectos como througthput, área de cilício e frequência de operação não serão considerados

relevantes para o estudo.

COMBINAÇÃO DOS DADOS

Os dados das sínteses podem ser combinados caso tenham sido obtidos utilizando os

resultados de sínteses do mesmo compilador e mesma família de FPGA

Os dados da metodologia podem ser combinados se utilizarem a metodologia BVM ou

OVM.

A COMBINAÇÃO DOS ESTUDOS

Os estudos podem ser combinados ambos abordem implementação em software utilizando

Nios II e implementação em Hardware utilizando linguagem de descrição de hardware.

CONCLUSÕES A PARTIR DAS EVIDÊNCIAS

1.2. ESPECIFICAÇÃO DAS PERGUNTAS DE PESQUISA:

1.2.1. Existem trabalhos abordando desenvolvimento de IPs em software utilizando Nios II

e em hardware utilizando linguagem de descrição de hardware (descrito em RTL)?

1.2.2. Como é possível comparar o desenvolvimento de uma aplicação que utiliza Nios II e

uma mesma aplicação descrita em RTL?

1.2.3. Considerando duas abordagens de desenvolvimento de sistemas embarcados, uma

em software e outra em hardware, quais são as métricas utilizadas para a análise?

1.2.4. Qual a linguagem de programação utilizada no Nios II? E em hardware?

1.2.5. Considerando duas abordagens de desenvolvimento de sistemas embarcados, existe

alguma metodologia de desenvolvimento de soft - core disponível na literatura?

1.2.6. Quais são as técnicas utilizadas para garantir a correta codificação do problema

proposto?

1.2.7. Quais foram as ferramentas utilizadas para: codificação e verificação do sistema e

aquisição dos resultados?

1.2.8. Algum trabalho utilizou hardware dedicado?

1.2.9. Algum trabalho utilizou processador embarcado? Se sim, qual processador e qual a

metodologia utilizada?

1.2.10. Qual foi o protocolo de comunicação alvo?

1.2.11. Quais foram as camadas implementadas em hardware e em software?

Page 115: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

114

1.3. DESENVOLVIMENTO DO PROTOCOLO DE REVISÃO

1.3.1. ESTRATÉGIA DE BUSCA: TERMOS E FONTES

FONTES DE PESQUISA

Sites:

IEEExplore - http://ieeexplore.ieee.org

ACM Digital library - http://portal.acm.org

SpringerLink - http://www.springerlink.com

Google scholar - http://scholar.google.com

Cappes - http://servicos.capes.gov.br/capesdw/

UNICAMP - http://libdigi.unicamp.br/document/list.php?tid=7

USP - http://www.teses.usp.br/

TERMOS DE BUSCA UTILIZADOS

Como strings de buscas será utilizado a string AND e OR ex. (Automotive AND Software)

OR (Automotive AND Hardware AND LIN) e dependendo da fonte utilizada será necessário a

adaptação dos termos de pesquisa ao idioma local.

A ferramenta Harzing’s Publish or Perish possui mecanismos e termos próprios de busca os

quais estabelecem indicadores estatísticos das áreas de pesquisa de interesse. A revisão também

deve abranger termos de pesquisa relacionados aos diversos protocolos de comunicação existentes,

bem como termos automotivos e relacionados ao desenvolvimento de sistemas embarcados

utilizando FPGA, a seguir são listados alguns termos relevantes:

Área Automotiva: LIN, CAN, bus, reliability, automotive protocol, serial protocol;

Área de Sistemas Embarcados: Software, hardware, Intelectual property, verilog, layers,

methodology;

Protocolos de comunicação: RS-232, UART, TCP/IP.

1.3.2. PROCEDIMENTOS E CRITÉRIOS DE SELEÇÃO DOS ESTUDOS

(FILTRAGEM)

i. Pela análise do título do trabalho, considerando a similaridade com tema da

pesquisa;

ii. Pela análise do resumo do trabalho, considerando a similaridade com o tema da

pesquisa;

iii. Pelas conclusões do trabalho;

iv. Pela análise total do trabalho;

v. Pela relevância/abrangência do trabalho;

Page 116: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

115

vi. Linguagem de programação utilizada;

vii. Pela metodologia utilizada no trabalho;

viii. Pelas fontes utilizadas (periódico, conferência,etc);

ix. Pela data de publicação;

x. Pelo projeto de pesquisa; e

xi. Pelo método de amostragem.

1.3.3. CHECKLISTS PARA AVALIAÇÃO DA QUALIDADE DOS ESTUDOS

– Projeto

Os objetivos estão bem definidos?

A delimitação do projeto está bem definida?

As medidas utilizadas permitem responder às questões?

Foram encontrados trabalhos com o mesmo contexto da pesquisa?

– Condução

Ocorreram eventos negativos durante o estudo?

Os métodos de coleta foram adequadamente descritos?

Algum trabalho coletado possui dados incompletos?

– Análise

Qual foi a taxa de respostas de estudo similares (busca/estudos similares)?

Os dados coletados podem ser comparados entre eles?

Qual o método estatístico utilizado para analisar os dados?

Os dados coletados respondem as questões de pesquisa?

Os dados coletados utilizaram as mesmas ferramentas de hardware?

Experimentos

Alguma pesquisa utilizou experimentos que possam ser reproduzido?

Existe algum modelo de referência da pesquisa?

1.3.4. ESTRATÉGIA DE EXTRAÇÃO DOS DADOS

Como a informação de cada estudo primário será obtida?

A extração dos dados foi uniforme ou é necessária alguma manipulação dos dados?

Existem premissas ou inferências a serem feitas?

Como validar?

1.3.5. SÍNTESE DOS DADOS EXTRAÍDOS

Será utilizada alguma técnica estatística para a extração dos dados?

1.4. AVALIAÇÃO DO PROTOCOLO DE REVISÃO

Page 117: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

116

O protocolo será revisado por mais de um especialista e sendo que pelo menos um não pode

estar envolvido na atividade de elaboração da revisão. Como se trata de um trabalho acadêmico, o

referido protocolo também será revisado pelo professor orientado.

O revisor deve se ater a:

- Se os termos de pesquisa são derivados das pergunta de pesquisa?

Os dados a serem extraídos irão endereçar as perguntas de pesquisa?

-O procedimento de análise de dados é adequado para responder as perguntas de

pesquisa?

Page 118: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

117

ANEXO B – PROGRAMAÇÃO DO TEMPORIZADOR E DA

INTERRUPÇÃO DO SINAL RX

#include <stdio.h>

#include "system.h"

#include "altera_avalon_pio_regs.h"

#include "altera_avalon_timer_regs.h"

#include "sys/alt_irq.h"

#include "alt_types.h"

alt_u8 x;

int main()

{

printf("[main]\n");

init_timer_interrupts();

while(1){

IOWR_ALTERA_AVALON_PIO_DATA(I_PIO_BASE, x);

}

return 0;

}

/******************************************************************

* static void handle_button_interrupts( void* context, alt_u32 id)*

* *

* Handle interrupts for the timer. *

/*****************************************************************/

void init_timer_interrupts()

{

alt_irq_register(TIMER_IRQ, 0, handle_timer_interrupts);

IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_BASE, 0x1F40);// timer interrupt period is 100us

IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_BASE, 0x00);

IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE, 7);

}

static void handle_timer_interrupts(void* context, alt_u32 id)

{

IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE, 0);

x = x ^ 0xFF;

}

Quadro 7. Código-fonte do temporizador do Nios II

Page 119: ANÁLISE DA IMPLEMENTAÇÃO DO PROTOCOLO LIN EM …siaibib01.univali.br/pdf/Rodrigo Vinicius Mendonca Pereira.pdf · por uma rede intra-veicular padrão, como no caso da arquitetura

118

Quadro 8. Código interrupção dos PIOs do Nios II

#include <stdio.h>#include "system.h"

#include "altera_avalon_pio_regs.h"

#include "sys/alt_irq.h"

#include "alt_types.h"

#include "parameter.h"

volatile alt_u8 flag =0;

volatile alt_u8 x;

volatile int edge_capture;

int main()

{

printf("[main] interrupt\n");

init_pio_interrupts();

while(1){}

return 0;

}

/******************************************************************

* static void handle_button_interrupts( void* context, alt_u32 id)*

* *

******************************************************************/

void handle_button_interrupts(void* context, alt_u32 id)

{

/* Cast context to edge_capture's type. It is important that this be

* declared volatile to avoid unwanted compiler optimization.*/

volatile int* edge_capture_ptr = (volatile int*) context;

/* Store the value in the Button's edge capture register in *context. */

*edge_capture_ptr = IORD_ALTERA_AVALON_PIO_EDGE_CAP(I_RX_BASE);

// Reset the Button edge capture register.

IOWR_ALTERA_AVALON_PIO_EDGE_CAP(I_RX_BASE, 0x0);

//IOWR_ALTERA_AVALON_PIO_IRQ_MASK(I_RX_BASE, 0x1);

flag = 1;

}

/* Initialize the pio. */

void init_pio_interrupts()

{

/* Recast the edge_capture pointer to match the alt_irq_register() function

* prototype. */

void* edge_capture_ptr = (void*) &edge_capture;

/* Enable first four interrupts. */

IOWR_ALTERA_AVALON_PIO_IRQ_MASK(I_RX_BASE, 0x1);

/* Reset the edge capture register. */

IOWR_ALTERA_AVALON_PIO_EDGE_CAP(I_RX_BASE, 0x0);

//data = IORD_ALTERA_AVALON_PIO_EDGE_CAP(I_PIO_BASE);

/* Register the interrupt handler. */

alt_irq_register(I_RX_IRQ,

edge_capture_ptr,

handle_button_interrupts );

}

As emissões de carbono geradas durante esse trabalho foram neutralizadas com o plantio de

mudas nativas de árvores na comunidade da Caieira da Barra do Sul, Florianópolis.