• Nenhum resultado encontrado

Implementação da comunicação sem fio de um módulo estimador da frequência cardíaca fetal baseado em FPGA

N/A
N/A
Protected

Academic year: 2022

Share "Implementação da comunicação sem fio de um módulo estimador da frequência cardíaca fetal baseado em FPGA"

Copied!
85
0
0

Texto

(1)

Universidade de Brasília - UnB Faculdade UnB Gama - FGA

Engenharia Eletrônica

Implementação da Comunicação Sem Fio de um Módulo Estimador da Frequência Cardíaca

Fetal Baseado em FPGA

Autor: Johnson Andrade Rodrigues Orientador: Prof. Gilmar Silva Beserra

Brasília, DF

2016

(2)
(3)

Johnson Andrade Rodrigues

Implementação da Comunicação Sem Fio de um Módulo Estimador da Frequência Cardíaca Fetal Baseado em

FPGA

Monografia submetida ao curso de graduação em (Engenharia Eletrônica) da Universidade de Brasília, como requisito parcial para ob- tenção do Título de Bacharel em (Engenharia Eletrônica).

Universidade de Brasília - UnB Faculdade UnB Gama - FGA

Orientador: Prof. Gilmar Silva Beserra Coorientador: Prof. Gerardo A. Idrobo Pizo

Brasília, DF

2016

(4)

Johnson Andrade Rodrigues

Implementação da Comunicação Sem Fio de um Módulo Estimador da Frequência Cardíaca Fetal Baseado em FPGA/ Johnson Andrade Rodrigues. – Brasília, DF, 2016-

83p. : il. (algumas color.) ; 30 cm.

Orientador: Prof. Gilmar Silva Beserra

Trabalho de Conclusão de Curso – Universidade de Brasília - UnB Faculdade UnB Gama - FGA , 2016.

1. ECG. 2. FHR. Comunicação sem fio. I. Prof. Gilmar Silva Beserra. II.

Universidade de Brasília. III. Faculdade UnB Gama. IV. Implementação da Comunicação Sem Fio de um Módulo Estimador da Frequência Cardíaca Fetal Baseado em FPGA

CDU 02:141:005.6

(5)

Johnson Andrade Rodrigues

Implementação da Comunicação Sem Fio de um Módulo Estimador da Frequência Cardíaca Fetal Baseado em

FPGA

Monografia submetida ao curso de graduação em (Engenharia Eletrônica) da Universidade de Brasília, como requisito parcial para ob- tenção do Título de Bacharel em (Engenharia Eletrônica).

Trabalho aprovado. Brasília, DF, 01 de julho de 2016:

Prof. Gilmar Silva Beserra Orientador

Prof. Gerardo A. Idrobo Pizo Convidado 1

Prof. Renato Coral Sampaio Convidado 2

Brasília, DF

2016

(6)
(7)

Agradecimentos

Agradeço, primeiramente, à Deus, que me fortaleceu em todos os momentos de dificuldades e me deu saúde e sabedoria para concluir esse trabalho e meu curso.

Agradeço a minha família por todo amor, suporte e incentivo dedicados a mim e, em especial, a minha mãe, Milena Andrade Rodrigues, que apesar de todas as adversidades sempre esteve ao meu lado me dando força e se esforçando para que eu tivesse sempre única e exclusiva dedicação aos meus estudos.

Agradeço ao meu orientador, Gilmar Silva Beserra, por ter me dado a oportunidade de colocar em prática meus conhecimentos obtidos durante o curso de Engenharia Eletrô- nica e por ter me orientado durante todo o processo deste trabalho, com seus conselhos e conhecimentos.

Agradeço aos meus colegas de curso que me acompanharam durante toda minha formação, estando sempre presentes na minha vida, sendo dentro ou fora do ambiente acadêmico. Em especial aos meus amigos Victor Unoske Carvalho Tutida, Ricardo Del- duque e Malthus Rodrigues, que estiveram comigo tanto nos momentos bons quanto nos momentos ruins, obrigado por fazerem parte da minha vida.

Agradeço às amizades do intercâmbio por todos os momentos inesquecíveis e por todas as conversas trocadas. Não podendo esquecer das grandes amizades que foram feitas e tornando-se verdadeiros irmãos, Matheus Lula, Lúcio Leal, Pedro Henrique Festugatto e Gustavo Simões.

A uma pessoa realmente especial, Mariana Beraldo Maia, que me deu seu amor, suporte, paciência e amizade durante toda a elaboração do trabalho. Não apenas por ser namorada, mas ganhou uma parte do meu coração que me incentivou a realizar o trabalho com dedicação e a acreditar nos meus sonhos.

Batalhas não são vencidas sozinhas, o suporte daqueles que acreditam em você e apostam no seu futuro são essenciais para a construção do seu melhor e, por isso, sou grato a todos estes e agradeço por fazerem parte da minha vida.

(8)
(9)

Resumo

Com o aumento do uso de tablets e smartphones, os mesmos se tornaram alternativas atraentes para o desenvolvimento de aplicativos baseados na comunicação sem fio, princi- palmente pelas vantagens de mobilidade, desempenho e consumo. Na área de biomédica, o monitoramento da frequência cardíaca fetal (FHR, do inglês Fetal Heart Rate) tem sido determinante para a avaliação das reais condições do bebê dentro da barriga da mãe. A FHR pode ser medida a partir da aplicação de algoritmos de estimação em sinais obtidos do abdômen materno através de sensores de ECG. Encontra-se em desenvolvimento um módulo estimador da FHR baseado em FPGA para aceleração dos algoritmos a partir da exploração das possibilidades de paralelismo oferecidas pela implementação em um projeto de co-design entre software e hardware . O paralelismo possibilitado no FPGA desenvolve em seus projetos operações rápidas, que exploram um mesmo recurso de pro- cessamento. Nesse contexto, a proposta deste trabalho é realizar a comunicação sem fio entre o FPGA e um dispositivo móvel, e desenvolver um aplicativo que receberá a FHR estimada e emitirá alarmes se a mesma ultrapassar limites predefinidos. A validação do sistema será feita através de testes com o protótipo implementado em um kit com um FPGA da Altera, um microcontrolador Arduino, um módulo Bluetooth e um dispositivo móvel com o sistema operacional Android.

Palavras-chaves: ECG. FHR. Bluetooth. Android. FPGA.

(10)
(11)

Abstract

With the growing use of tablets and smartphones, this technology has become an at- tractive alternative for the development of applications based on wireless communication, especially because of the advantages of mobility, performance and power consumption.

In the biomedical field, monitoring the fetal heart rate (FHR) has been an important point in the assessment of the actual baby condition inside the mother’s womb. FHR can be estimated by applying algorithms on signals obtained from the maternal abdomen through ECG sensors. An FPGA-based FHR estimator module is being developed in or- der to accelerate such algorithms by exploiting the parallelism possibilities offered by a hardware-software co-design approach. Fast operations are allowed on a FPGA by using the same processing resources. In this context, the aim of this work is to implement a wireless communication between the estimator module on the FPGA and a mobile device, and develop an application which will receive the estimated FHR and warn the user in case the value is under or over predefined limits. The system will be validated by imple- menting and testing a prototype with an Altera FPGA kit, an Arduino microcontroller, a Bluetooth module and a mobile device with Android operating system.

Key-words: EGC. FHR. FPGA. Bluetooth. Android.

(12)
(13)

Lista de ilustrações

Figura 1 – Forma de onda de um ECG (WIKIPEDIA, 2016) . . . 22

Figura 2 – Eletrocardiograma abdominal (AECG) (HASAN et al., 2009) . . . 23

Figura 3 – Arquitetura de um FPGA (ZEIDMAN, 2005) . . . 24

Figura 4 – Características dos tipos de Programação (ZEIDMAN, 2005) . . . 25

Figura 5 – Processadores hard e soft em uma FPGA (HARDING, 2011) . . . 26

Figura 6 – Sistema do Processador NIOS II (ALTERA, 2016b) . . . 27

Figura 7 – Núcleo do MIPSfpga (IMAGINATION, 2015) . . . 29

Figura 8 – Comunicação de dados (BORGES, 2013) . . . 30

Figura 9 – Sentidos de transmissão de dados (DANTAS, 2002) . . . 30

Figura 10 – Formato básico de uma UART (SUMAN, 2016) . . . 31

Figura 11 – Mestre único e 3 escravos (SACCO, 2014) . . . 32

Figura 12 – Arquitetura do Sistema Android (ANDROID, 2016a) . . . 34

Figura 13 – Processo de geração de um aplicativo (MONTEIRO, 2012) . . . 35

Figura 14 – Placa DE1-SoC (PROGRAM, 2015) . . . 37

Figura 15 – Diagrama de bloco da placa DE1-SoC (PROGRAM, 2015) . . . 38

Figura 16 – Módulo Bluetooth HC-05 (CENTRE, 2016). . . 39

Figura 17 – Arduíno Duemilanove . . . 40

Figura 18 – Visão geral do sistema de extração e comunicação. Figura adaptada de (LEUNG, 2013) . . . 43

Figura 19 – Top-Level do MIPSfpga. . . 45

Figura 20 – Barramento AHB-Lite . . . 48

Figura 21 – Esquemático da montagem. . . 49

Figura 22 – Pinagem GPIO1, (TERASIC, 2016) . . . 49

Figura 23 – Tela do aplicativo FHR MONITOR . . . 50

Figura 24 – Simulação do canal TX da UART . . . 51

Figura 25 – Teste UART - Aplicativo: 153 bpm . . . 52

Figura 26 – Teste UART - Aplicativo: 117 bpm . . . 53

Figura 27 – Teste UART - Aplicativo: 213 bpm . . . 54

Figura 28 – MIPSfpga . . . 54

Figura 29 – MIPSfpga e Aplicativo Android . . . 55

Figura 30 – Switches SW[0] - SW[5] acionados e seus respectivos LEDs acesos. . . . 66

Figura 31 – Switches SW[3] - SW[7] acionados e seus respectivos LEDs acesos. . . . 67

Figura 32 – Código em C a ser executado no MIPSfpga. . . 70

Figura 33 – Exemplo de execução do código em C: Valor 144 (terceiro pushbutton pressionado). . . 71

(14)

Figura 34 – Exemplo de execução do código em C: Valor 58 (quarto pushbutton

pressionado). . . 71

Figura 35 – UART-TX em Verilog. . . 74

Figura 36 – Layout do aplicativo FHR Monitor. . . 75

Figura 37 – Blocos do aplicativo FHR Monitor. . . 77

Figura 38 – Teste dehardware entre o FPGA e Arduíno com valor 15. . . 80

Figura 39 – Teste dehardware entre o FPGA e Arduíno com valor 15 no terminal.. 80

Figura 40 – Teste dehardware entre o FPGA e Arduíno com valor 206. . . 81

Figura 41 – Teste dehardware entre o FPGA e Arduíno com valor 206 no terminal. 82 Figura 42 – Teste de hardware entre o MIPSfpga implementado e Arduíno com valor 142. . . 82

Figura 43 – Teste de hardware entre o MIPSfpga implementado e Arduíno com valor 142 no terminal. . . 83

(15)

Lista de abreviaturas e siglas

FPGA Field Programmable Gate Array

ASIC Application Specific Integrated Circuits CLB Configurable Logic Blocks

LUT Look-Up Table

SRAM Static Random Access Memory

UART Universal Asynchronous Receiver/Transmitter SPI Serial Peripheral Interface

MOSI Master Output Slave Input MISO Master Input Slave Output

CLK Clock

SCLK Serial Clock

ISM Industrial, Scientific, and Medical API Application Programming Interface SDK Software Development Kit

APK Android Application Package FHR Fetal Heart Rate

ECG Eletrocardiograma

FECG Fetal ECG

FCF Frequência cardíaca fetal EMG Maternal electromyogram PLI Power line interference

BW Baseline Wander

MECG Maternal ECG

(16)

HDL Hardware Description Language VHSIC Very High Speed Integrated Circuit VHDL VHSIC Hardware Description Language PCB Printed Circuit Board

SoC System on Chip

HPS Hard Processor System USB Universal Serial Bus

SDRAM Synchronous Dynamic Random Access Memory RISC Reduced Instruction Set Computing

ARM Advanced RISC Machine RTL Register Transfer Level

IDE Integrated Development Environment NDK Native Development Kit

HAL Hardware Abstraction Layer

(17)

Sumário

1 INTRODUÇÃO . . . 17

1.1 Contextualização . . . 17

1.2 Descrição do Problema . . . 18

1.3 Objetivos . . . 19

1.3.1 Objetivo Geral . . . 19

1.3.2 Objetivos Específicos . . . 19

1.4 Organização do Trabalho . . . 19

2 FUNDAMENTAÇÃO TEÓRICA . . . 21

2.1 Fisiologia Cardíaca e Eletrocardiograma (ECG) . . . 21

2.2 Frequência Cardíaca Fetal e Eletrocardiograma Fetal (FECG) . . . . 22

2.3 Plataformas de Hardware . . . 23

2.3.1 FPGA - Field Programmable Gate Array . . . 23

2.3.2 Processadores Embarcados . . . 25

2.3.3 NIOS II . . . 27

2.3.4 MIPSfpga . . . 28

2.3.4.1 Arquitetura MIPS . . . 28

2.3.4.2 MIPSfpga. . . 28

2.3.5 Escolha do Processador . . . 28

2.4 Comunicação e Transmissão de Dados . . . 29

2.4.1 Transmissão Paralela e Serial . . . 30

2.4.2 UART -Universal Asynchronous Receiver/Transmitter . . . 31

2.4.3 SPI - Serial Peripheral Interface . . . 31

2.4.4 Comunicação Bluetooth . . . 32

2.5 Software Embarcado . . . 33

2.5.1 Android . . . 33

2.5.1.1 Arquitetura Android . . . 33

2.5.1.2 Desenvolvimento de Aplicações Android . . . 35

3 ASPECTOS METODOLÓGICOS E FERRAMENTAS . . . 37

3.1 Ferramentas . . . 37

3.1.1 Kit DE1-SoC Board. . . 37

3.1.2 Quartus II Web Edition . . . 38

3.1.3 Módulo Bluetooth HC-05 . . . 39

3.1.4 MIT App Inventor 2 . . . 40

3.1.5 Arduíno . . . 40

(18)

3.2 Metodologia . . . 41

4 SISTEMA PROPOSTO E IMPLEMENTAÇÃO . . . 43

4.1 Sistema Proposto. . . 43

4.2 Implementação . . . 44

4.2.1 MIPSfpga . . . 44

4.2.1.1 Adição de Periféricos ao MIPSfpga . . . 45

4.2.1.1.1 Modificação dotop-leveldo MIPSfpga . . . 45

4.2.1.1.2 Mapeamento de memória . . . 46

4.2.1.1.3 Descrição dehardwaredo periférico . . . 46

4.2.1.2 Execução de Códigos em C no MIPSfpga . . . 47

4.2.2 Implementação da UART no MIPSfpga . . . 47

4.2.3 Esquemático da montagem . . . 48

4.2.4 Implementação do Aplicativo Android . . . 50

5 RESULTADOS E DISCUSSÕES . . . 51

5.1 Resultados . . . 51

5.1.1 UART Canal TX . . . 51

5.1.2 Comunicação UART - Aplicativo Android . . . 52

5.1.3 MIPSfpga – Aplicativo Android. . . 53

5.2 Discussão dos Resultados . . . 56

6 CONCLUSÃO . . . 57

REFERÊNCIAS . . . 59

ANEXOS 63

ANEXO A – IMPLEMENTAÇÃO DO MIPSFPGA . . . 65

ANEXO B – EXECUÇÃO DE CÓDIGOS EM C NO MIPSFPGA . 69 ANEXO C – MÓDULO UART PARA O CANAL TX . . . 73

ANEXO D – APLICATIVO ANDROID . . . 75

ANEXO E – ARDUÍNO - FPGA . . . 79

(19)

17

1 Introdução

1.1 Contextualização

A engenharia relacionada com a medicina tem tido um crescente avanço nas fer- ramentas e técnicas utilizadas para soluções e análises de diversos problemas referentes à saúde. Uma das aplicações da engenharia na medicina que tem se tornado importante é a aquisição e análise de sinais biológicos. Sinais biológicos produzidos pelo corpo humano são medições que, aplicadas à engenharia, geram amostras periódicas ou em tempo con- tínuo que podem ser medidas como sinais elétricos, especialmente aquelas relacionadas ao sistema nervoso (PALANIAPPAN, 2010). Esses sinais elétricos possibilitam que ele- trocardiogramas (ECGs) sejam utilizados para a medição de amostras a serem coletadas quando os sinais elétricos se referem ao músculo cardíaco.

O ECG pode ser aplicado para aquisição de sinais biológicos de um feto, e sua frequência cardíaca pode ser estimada a partir do mesmo. A frequência cardíaca de um feto, FHR (do inglês, Fetal Heart Rate) possui informações importantes que servem para auxiliar no diagnóstico de problemas que podem ocorrer durante o tempo de gestação ou de problemas no músculo cardíaco do feto, tais como as arritmias. Sistemas de monitoramento da FHR podem ser implementados utilizando tecnologias baseadas em FPGA (Field- Programmable Gate Array).

Um FPGA é um circuito integrado com blocos lógicos programáveis e interconexões que podem ser mudadas de acordo com a aplicação. Ele possui em geral um baixo consumo, um bom desempenho e a sua flexibilidade permite que recursos sejam adicionados a um projeto sem alterar qualquer parte que já tenha sido implementada (AAMODT, 2013).

FPGAs possuem uma performance, em geral, muito boa, devido conseguirem realizar suas funções através de Unidades Lógicas Aritméticas (ULAs), tal como um microprocessador comum, ou de Look Up Tables (LUTs) que tem os valores de uma tabela da verdade definidos no sistema. Um FPGA permite a execução paralela de suas funções, ou seja, diferentes partes dessas funções podem ser executadas simultaneamente, permitindo dessa forma que recursos como uma aceleração de hardwareseja possível. Sendo assim, o FPGA é uma boa alternativa para implementar algoritmos que utilizam como base os sinais extraídos do abdômen materno, através de sensores de ECG, e estimar a FHR para assim ser monitorada por um dispositivo Android, utilizando para isso uma parte da arquitetura implementada emsoftware e outra parte em hardwarededicado, sendo ambas executadas simultaneamente.

Tecnologias envolvidas com o uso crescente de aplicações emsmartphonesetablets

(20)

18 Capítulo 1. Introdução

tem ganhado destaque rapidamente e tem sido empregadas em diversas áreas, sejam elas voltadas ao mercado privado ou ao mercado profissional, principalmente pelo uso de aplicativos. Nesse contexto, um aplicativo pode ser usado como uma ferramenta de monitoramento da FHR e, através de uma interface com o usuário, apresentar o valor da mesma e emitir um alerta, caso ela esteja fora dos padrões esperados.

Comunicações sem fio podem ser usadas para que dispositivos móveis transmitam ou recebam informações provindas de outros dispositivos usando um protocolo de comu- nicação.Um FPGA oferece uma interface flexível que pode ser usada para transmissão de dados sem o uso de fios, através de um protocolo de comunicação, que deve ser escolhido e implementado. Um tipo de protocolo que pode ser usado em uma FPGA para comu- nicação sem fio com um dispositivo móvel é o Bluetooth. O Bluetooth é uma tecnologia bastante difundida e que pode ser encontrada em diversos dispositivos. O uso de um mó- dulo Bluetooth em conjunto com um FPGA é uma alternativa de comunicação de baixo custo que possibilita essa transmissão de informações (HUSEBY,2013).

1.2 Descrição do Problema

Os sinais obtidos através de sensores de ECG no abdômen da gestante contêm ruídos que podem inviabilizar sua análise completa. Tais ruídos estão diretamente relaci- onados com os equipamentos eletrônicos utilizados, problemas com interferência na linha de potência e sinais do ECG materno. Eles podem ser amenizados e atenuados com o uso de filtros que proporcionam uma melhora do sinal para uma análise adequada do mesmo.

Encontra-se em desenvolvimento na Faculdade do Gama da Universidade de Bra- sília um módulo estimador da FHR implementado em um FPGA com um processador embarcado. Esse módulo recebe como entrada os sinais obtidos no ECG abdominal e rea- liza o processamento, que consiste em separar o ECG do feto e estimar a FHR a partir das contagens dos picos do mesmo. O valor estimado da FHR, entretanto, deve ser analisado e apresentado ao usuário, para que um devido monitoramento seja efetuado. A proposta deste trabalho é projetar e implementar um bloco que permita essa comunicação e um aplicativo que analise o resultado e o apresente ao usuário, emitindo alertas caso alguma ação seja necessária. Para isso, é necessário utilizar um protocolo de comunicação que permita uma transmissão de informações de forma rápida e eficaz. Com o uso de fios e a dificuldade da mobilidade dos equipamentos necessários tanto para a aquisição de ECG quanto para o monitoramento da FHR, o sistema ficaria limitado a um ambiente restrito.

Por isso, foi escolhido um protocolo de comunicação sem fio. Devido às suas característi- cas, que atendem as especificações deste projeto, o protocoloBluetooth foi escolhido para realizar a comunicação entre o FPGA e um dispositivo móvel com sistema Android para o monitoramento da FHR.

(21)

1.3. Objetivos 19

1.3 Objetivos

1.3.1 Objetivo Geral

A proposta principal desse trabalho é realizar a transmissão viaBluetoothda FHR estimada através de algoritmos implementados em um FPGA para um dispositivo móvel com sistema Android, bem como desenvolver um aplicativo que analise a FHR e emita alarmes, caso a mesma ultrapasse limites predefinidos.

1.3.2 Objetivos Específicos

Com o intuito de se alcançar o objetivo principal do trabalho, os seguintes objetivos específicos foram definidos:

∙ Realizar estudos sobre a utilização de FPGAs e processadores embarcados, bem como sobre suas vantagens.

∙ Entender como funciona a comunicação e transmissão de dados entre dispositivos.

∙ Realizar estudos sobre a arquitetura do sistema Android e desenvolver aplicações no mesmo.

∙ Testar e implementar a comunicação entre o FPGA e o dispositivo Android usando um módulo Bluetooth.

1.4 Organização do Trabalho

Este trabalho foi divido em capítulos, conforme a descrição a seguir. O capítulo 1 contém a contextualização e problematização da proposta, bem como apresenta os objeti- vos da mesma. O capítulo 2 aborda os conceitos teóricos necessários para o entendimento do sistema que será implementado. O capítulo 3 descreve os aspectos metodológicos ado- tados, assim como as ferramentas de desenvolvimento que foram utilizadas. O capítulo 4 descreve o sistema proposto e sua arquitetura, bem como a implementação do sistema e como foram realizadas as etapas do projeto. O capítulo 5 apresenta os resultados obti- dos e as discussões realizadas sobre os resultados, contando com explicações dos testes e implementações realizadas para o desenvolvimento do sistema. Por último, o capítulo 6 contém a conclusão do trabalho com a revisão dos resultados e com novas propostas de trabalho futuro.

(22)
(23)

21

2 Fundamentação Teórica

Neste capítulo, a fundamentação teórica utilizada no presente trabalho é descrita, sendo que a mesma consiste em conceitos e teorias necessários para o entendimento do sistema a ser projetado e implementado.

2.1 Fisiologia Cardíaca e Eletrocardiograma (ECG)

Eletrocardiograma (ECG) é a representação da atividade elétrica nas células car- díacas e é medida e transposta em um gráfico tensão versus tempo. A medição da atividade das células cardíacas é feita por eletrodos colocados sobre a pele. Esses eletrodos são res- ponsáveis por detectar pequenas variações elétricas na pele por um padrão eletrofisiológico quando uma despolarização do músculo cardíaco acontece (PALANIAPPAN, 2010).

O coração possui quatro câmaras, as quais são responsáveis por transmitir para todo o corpo humano sangue oxigenado e receber o sangue exaurido de oxigênio. São elas: os átrios direito e esquerdo e os ventrículos direito e esquerdo. O coração pode ser observado segundo um padrão elétrico de funcionamento no qual ele passa a ser dividido em duas câmaras -superior e inferior. Na câmara superior, um impulso é gerado, fazendo com que os átrios apertem e empurrem o sangue para os ventrículos. Os ventrículos, por sua vez, contraem-se para bombear o sangue para o corpo e para os pulmões. Vale lembrar ainda que um pequeno atraso no preenchimento dos ventrículos ocorre antes da contração e distribuição (WEDRO; KULICK; DAVIS, 2016).

O coração possui um marca-passo chamado de sinoatrial ou nó sinoatrial, respon- sável por marcar o passo natural. A cada batida do coração, uma ordenada progressão de despolarização se inicia no nó sinoatrial e se espalha através do átrio enviando um esti- mulo elétrico para o nó atrioventricular. No nó atrioventricular, o estimulo sofre um atraso, possibilitando que os átrios se contraiam em um período pequeno anterior à contração dos ventrículos. O estimulo segue então para dentro do feixe His e nas fibras Purkinje, espalhando-se ao longo dos ventrículos. A característica do traço de um ECG se deve a essa ordem de despolarização do músculo cardíaco. A Figura1mostra um impulso elétrico que se propaga pelo coração quando registrado por um ECG (WIKIPEDIA, 2016).

A Figura 1 mostra a forma de onda de um ECG e possui regiões que ocorrem quando despolarizações e repolarizações são realizadas. Essas regiões são as sequências de onda P-Q-R-S-T, descritas a seguir:

P: A onda P é a despolarização do átrio e sua duração é de cerca de 60 a 110 ms.

(24)

22 Capítulo 2. Fundamentação Teórica

Figura 1: Forma de onda de um ECG (WIKIPEDIA,2016)

Intervalo PR: O intervalo PR é o atraso no nó atrioventricular e sua duração é de cerca de 120 a 200 ms.

Complexo QRS: O complexo QRS contém três picos que representam em um todo a despolarização dos ventrículos e sua duração é de cerca de 60 a 100 ms.

Intervalo QT: O intervalo QT é a despolarização e repolarização dos ventrículos e sua duração é de cerca de 80 ms.

T: A onda T é a repolarização dos ventrículos

2.2 Frequência Cardíaca Fetal e Eletrocardiograma Fetal (FECG)

A frequência cardíaca fetal, FHR (do inglês,Fetal Heart Rate), é uma medida dos batimentos por minuto do coração de um feto para obtenção de informações importantes sobre as condições do feto durante a gravidez e trabalho de parto através do sinal FECG (do inglês, fetal electrocardiogram). O sinal FECG é emitido pelo coração do feto e é ex- traído e detectado por sinais abdominais provindos da gestante. A forma de onda cardíaca obtida auxilia na observação das condições do estado do coração do feto, podendo apontar uma falha no coração, como a arritmia. O monitoramento da FHR tem sido bastante em- pregado nos últimos tempos para evitar problemas neurológicos permanentes e problemas no sistema nervoso do feto (HASAN; IBRAHIMY; REAZ, 2007).

Existem dois métodos principais que são utilizados para captação dos sinais do FECG: o não invasivo e o invasivo. O método não invasivo consiste no posicionamento de eletrodos no abdômen da gestante e o invasivo consiste no posicionamento de eletrodos dentro do útero da gestante, no couro cabeludo do feto durante o trabalho de parto. O

(25)

2.3. Plataformas de Hardware 23

método não invasivo se destaca sobre o invasivo por poder ser utilizado durante o tempo de gestação, gerando informações importantes sobre a saúde do feto. Porém, o sinal cap- turado pelos eletrodos frequentemente contém algum tipo de ruído em sua extração, o que dificulta não apenas a análise do FECG, mas também sua detecção e extração. Os principais ruídos que são obtidos pela extração não invasiva incluem o eletromiograma materno (EMG), interferência de potência de linha (PLI, do inglês, Power Line Interfe- rence), com frequência de 50/60 Hz (uma largura de banda pequena), ruídos eletrônicos e ECG materno (MECG) (LAMESGIN; KASSAW; ASSEFA, 2015).

O MECG é o principal ruído que dificulta a extração do FECG, devido ao fato de que o MECG possui em seu complexo QRS uma amplitude maior que a do feto, fazendo com que a visualização do complexo QRS do feto seja encoberto pelo complexo QRS materno. A Figura 2 mostra um sinal obtido através do método não invasivo utilizando o eletrocardiograma abdominal (AECG) e o modo como o MECG acoberta o FECG em algumas partes do sinal extraído.

Figura 2: Eletrocardiograma abdominal (AECG) (HASAN et al.,2009)

Os eletrodos são posicionados no abdômen da gestante de forma praticamente aleatória, não havendo uma universalização de onde os mesmos devem ser posicionados para que o FECG possa ser extraído com exatidão. Os posicionamentos dos eletrodos no abdômen da gestante são dispostos de forma a se obter a melhor configuração para extração do FECG, dependendo da posição na qual o feto se encontra e do tempo de gestação.

2.3 Plataformas de Hardware

2.3.1 FPGA - Field Programmable Gate Array

FPGAs são dispositivos semicondutores que são baseados em uma matriz de blocos lógicos configuráveis (CLBs) conectados por interconexões programáveis. Este recurso diferencia os FPGAs dos Circuitos Integrados para Aplicações Especificas (ASICs), os quais são produzidos para tarefas especificas (XILINX, 2016). A estrutura geral de um FPGA contém três componentes básicos: blocos de entrada e saída (I/O – in/out), blocos lógicos configuráveis e os switches ou interconexões programáveis. A estrutura geral de

(26)

24 Capítulo 2. Fundamentação Teórica

um FPGA pode ser vista na Figura3, na qual os componentes básicos são ilustrados de acordo com suas disposições na estrutura.

Figura 3: Arquitetura de um FPGA (ZEIDMAN, 2005)

Os blocos de entrada e saída (quadrados verdes na Figura 3) são interconectados aos CLBs via linhas de interconexão. Eles são dispostos nas extremidades do FPGA, facilitando o acesso à entrada, saída ou entrada e saída.

Os CLBs (quadrados laranjas na Figura 3) contêm elementos de processamento para desenvolvimento de lógicas combinacionais simples e também contêm flip-flops para implementações de lógica sequencias (HAUCK; DEHON, 2010). Na estrutura de um FPGA, os CLBs são dispostos em uma matriz bidimensional e as linhas de intercone- xão atuam como canais de roteamento horizontais e verticais, ligando os CLBs com os fios e switches programáveis.

Cada bloco lógico tem um número de entradas que resultam em saídas observadas por uma tabela verdade, que é considerada como o coração computacional do FPGA, pois através dela as funções de cada bloco são implementadas. Essa implementação é facilmente obtida através de um elemento dehardwarechamado LUT (do inglês,Look-Up Table). Uma LUT contém células de armazenamento e cada célula é capaz de guardar um valor lógico (HAUCK; DEHON, 2010).

Existem basicamente dois tipos de programação para FPGAs que são dominantes:

a baseada em SRAM (Static Random-Access Memory) e a baseada em antifusíveis. A primeira contém uma pequena memória RAM estática em cada elemento de programação, enquanto que a segunda consiste em estruturas microscópicas que, diferentemente de um fusível regular, normalmente não fazem conexão, mas, quando sendo programadas, uma pequena quantidade de corrente conecta as extremidades do antifusível (ZEIDMAN, 2005).

Pela Figura 4, podemos observar as vantagens e desvantagens entre os tipos de programação de FPGAs. Os FPGAs baseados na programação SRAM tem a vantagem de poder ser reprogramados tantas vezes quantas forem necessárias, permitindo que diversas

(27)

2.3. Plataformas de Hardware 25

Figura 4: Características dos tipos de Programação (ZEIDMAN, 2005)

aplicações sejam feitas, mesmo quando o sistema estiver operando. Porém, como possui uma memória volátil, suas informações são perdidas assim que a fonte de energia é per- dida. Os FPGAs baseados na programação antifusível tem a vantagem de não perder as informações gravadas, porém, quando programados uma vez, não podem ser mais repro- gramados. Existe ainda uma programação flash com características que mesclam os dois tipos de tecnologia, porém ela é mais lenta do que dispositivos baseados em tecnologia SRAM ou antifusível.

A vantagem em se utilizar FPGAs no desenvolvimento de projetos tecnológicos é a sua característica de circuito reconfigurável e baixo consumo combinados com sua alta funcionalidade de sistema como um todo. Com isso, os projetistas possuem uma flexibi- lidade quase ilimitada em seus projetos, já que os sistemas baseados em FPGA podem rearranjar as configurações internas de seu circuito. Outra vantagem é seu processamento por meio de paralelismo, isto é, diferentes operações podem utilizar os mesmos recursos de processamento sem que uma das operações interfira na outra, possibilitando que a ve- locidade de operação seja ainda maior. Por isso, os FPGAs possuem um bom desempenho em suas implementações e, quando algoritmos são endereçados a elas de forma paralela, explorando os mesmos recursos de processamento, os resultados para as operações dos algoritmos se dão de forma rápida e eficaz.

2.3.2 Processadores Embarcados

Processadores são normalmentechips que executam tarefas que foram solicitadas por meio de instruções e que processam esses dados através de operações. Eles são os componentes mais flexíveis em um sistema de projeto embarcado e tem se desenvolvido devido a avanços nos padrões de hardware e software. Um processador pode ser de ar- quitetura RISC ou de arquitetura CISC, sendo o primeiro a arquitetura mais utilizada pelos processadores atualmente (HARDING,2011). A manipulação de bits nos processa-

(28)

26 Capítulo 2. Fundamentação Teórica

dores dita o seu desempenho e a quantidade de dados que os circuitos dos processadores conseguem trabalhar por vez (ALECRIM, 2008).

Quando implementado em um FPGA, o processador embarcado pode escolher um dentre vários periféricos específicos para executar uma determinada aplicação, sendo a variedade de escolha da capacidade da memória outra grande vantagem. O processador embarcado pode ser implementado como soft, hard ou firm, conforme descrito a seguir:

Soft: implementação do processador em uma linguagem de descrição de hardware, HDL, e é construída usando a lógica de propósito geral da FPGA.

Firm: implementação feita em HDL igual ao soft, porém é utilizada para uma arquitetura especifica de FPGA.

Hard: processador construído de silício e fixado dentro do FPGA.

A Figura5mostra um exemplo de processadoreshard esoft em um FPGA (FLET- CHER, 2005).

Figura 5: Processadores hard e soft em uma FPGA (HARDING,2011)

Quando comparados com um microprocessador típico, por exemplo, os processa- dores embarcados em FPGA possuem outras vantagens, que incluem a sua customização, redução dos componentes e custo, aceleração de hardware e a capacidade de modificação tardia no ciclo do projeto (FLETCHER, 2005), conforme é detalhado a seguir:

Customização: o processador implementado tem a flexibilidade de escolher qual- quer que seja a combinação dos periféricos e controladores do FPGA, assim como a quantidade de memória e tipo que o projetista desejar. Além disso, há a possi- bilidade de criação de um novo periférico, que pode ser conectado diretamente no barramento do processador.

(29)

2.3. Plataformas de Hardware 27

Figura 6: Sistema do Processador NIOS II (ALTERA, 2016b)

Redução dos componentes e custo: por se tratar de uma única plataforma com diversos periféricos e controladores disponíveis, o FPGA tem o uso de componentes reduzido quando comparado com sistemas que utilizam diversos componentes, o que gera também uma redução no custo de desenvolvimento.

Aceleração de Hardware: O FPGA possui a habilidade de comutação entrehard- ware e software, o que otimiza a eficiência e o desempenho do sistema.

Capacidade de modificação tardia no ciclo do projeto: o processador em- barcado no FPGA tem a capacidade de sofrer alterações em sua estrutura, mesmo quando o ciclo do projeto já está em etapas adiantadas.

O FPGA utilizado para este trabalho é da marca Altera e por isso uma breve descrição do processador embarcado NIOS II é apresentado a seguir, assim como o pro- cessador MIPSfpga desenvolvido pela empresa Imagination Technologies.

2.3.3 NIOS II

O processador Nios II é um processador de propósito geral com arquitetura RISC de 32 bits. O sistema de processador Nios II é equivalente a um microcontrolador que inclui um processador e uma combinação de periféricos e memória em um único chip. A Figura 6mostra o sistema do processador Nios II (ALTERA, 2016b).

O sistema de processador Nios II é flexível e permite que sejam adicionados recur- sos e melhoramentos no desempenho do sistema de processador Nios II. A flexibilidade

(30)

28 Capítulo 2. Fundamentação Teórica

também permite que recursos e periféricos desnecessários sejam descartados, possibili- tando um design menor e um baixo custo do dispositivo.

2.3.4 MIPSfpga

2.3.4.1 Arquitetura MIPS

A arquitetura MIPS Microprocessor without Interlocked Pipeline Stage é uma ar- quitetura do tipo RISC baseada em registradores. Foi desenvolvida com o objetivo de revolucionar a eficiência das arquiteturas de computadores por meio de pesquisas na Stanford University, em 1981, tendo sua comercialização em 1984 pela empresa MIPS Computer Systems e, posteriormente, comprada pela Imaginaton Tehcnologies, em 2013.

Inicialmente a arquitetura MIPS possuia versões em 32-bit e atualmente já contam com versões de 64-bit. Por ser um microprocessdor simples, ele possui vantagens como confiabilidade e velocidade, tendo como variações mais simples o MIPS M4K, M14K e microAptive.

2.3.4.2 MIPSfpga

O MIPSfpga é um MIPS de 32-bit baseado na familia microAptive, que consiste de um processador embarcado compacto em tempo real com canal de comunicação em cinco estágios. Pode ser encontrado em difenteres áreas com aplicações em automotiva, comunicaçãowireless, controle industrial, etc. Sua codificação é em Verilog e, portanto, é considerado um soft core (IMAGINATION, 2015).

A Figura 7 mostra o núcleo do MIPSfpga e nele é apresentado o diagrama de funcionamento do mesmo. As unidades centrais do processador são:

GPR: Detem os registradores de propósito geral;

Execution Unit: Realiza as operações indicadas pela instrução;

Instrution Decoder: Recebe instruções e o sinal para a execução da intrução;

MDU(multiply/divide unit): Extensão da Execution Unit para realizar multi- plicação e divisão;

System Co-Processor: Gera os sinais utilizados iternamente no processador.

2.3.5 Escolha do Processador

O sistema que estimará a FHR será implementado tendo o processador MIPSfpga como plataforma desoftware, pois trata-se de um processador descrito em Verilog que pode ser implementado em plataformas FPGA de fabricantes diferentes, tais como a Altera e

(31)

2.4. Comunicação e Transmissão de Dados 29

Figura 7: Núcleo do MIPSfpga (IMAGINATION, 2015)

Xilinx. Se fosse escolhido o uso de processadores próprios das fabricantes, teríamos um sistema limitado ao uso de kits FPGAs daquele fabricante, como são os casos da NIOS II (Altera) e MicroBlaze (Xilinx), o que não acontece se utilizar o MIPSfpga, que nos fornece a versatilidade de implementar um único processador para fabricantes distintos.

2.4 Comunicação e Transmissão de Dados

A comunicação é o fluxo de informações entre um canal de transmissão e dois ou mais dispositivos que sejam interligados, sendo um dispositivo o emissor e o outro o receptor. Essas informações são elementos físicos nos quais um determinado sentido foi dado a eles (BORGES, 2013). A Figura 8 sugere como a comunicação entre um emissor e receptor pode ser realizada.

A transmissão de dados é a troca de informações realizada entre os dispositivos físicos, seguindo os parâmetros configurados, tais como a velocidade de transmissão e a quantidade de informação que deve ser trocada entre os dispositivos, sempre visando à melhor forma, evitando que as informações sejam perdidas ou degradadas (BORGES,

(32)

30 Capítulo 2. Fundamentação Teórica

Figura 8: Comunicação de dados (BORGES, 2013)

2013).

A transmissão de dados pode ser explorada de três formas: simplex, half-duplex e full-duplex. O modo mais simples de se transmitir uma informação é pela forma simplex, onde a transmissão é unidirecional, sendo suas estações exclusivamente emissores ou re- ceptores. Os modos half-duplex e full-duplex transmitem informações bidirecionalmente, mas com uma diferença no seu fluxo de transmissão entre emissor e receptor. O modo half-duplex alterna entre as estações, sendo ora emissor, ora receptor, de forma a não haver sobreposição na comunicação. O modo full-duplex funciona de forma simultânea, onde as estações são simultaneamente emissores e receptores, com as informações fluindo paralelamente em ambas as direções (DANTAS,2002). A Figura 9mostra os sentidos de transmissão dos dados.

Figura 9: Sentidos de transmissão de dados (DANTAS, 2002)

2.4.1 Transmissão Paralela e Serial

A transmissão de dados pode ser operada em paralelo ou em serial. Quando ope- rada em paralelo, os bits são transmitidos do emissor para o receptor simultaneamente, enquanto que na transmissão serial, os bits são transmitidos sucessivamente. Outras ca- racterísticas dessas transmissões são citadas a seguir (BORGES, 2013):

Transmissão paralela: menos comum, mas geralmente mais rápida que a serial.

(33)

2.4. Comunicação e Transmissão de Dados 31

A qualidade do sinal emitido ou recebido pode sofrer degradação. Utilizada princi- palmente para transferência de dados no mesmo local.

Transmissão serial:hardware de comunicação de baixo custo, quando relacionado ao paralelo. Transmissão de dados geralmente mais lenta. Utilizada para transmis- sões de grande distância.

2.4.2 UART - Universal Asynchronous Receiver/Transmitter

A UART é um protocolo utilizado para implementar uma comunicação serial, sendo que possui duas linhas de transmissão responsáveis pelo envio (TX) e recebimento (RX) dos dados. No envio de dados, a UART cria um pacote de dados – acrescentandobits pareados e sincronizados – e os envia para a linha TX com um tempo preciso, segundo a taxa de transmissão (baud rate). No recebimento dos dados, a UART amostra a linha RX em taxas de acordo com a taxa de transmissão estabelecida, pega os bits sincronizados e obtém o dado (INSTRUMENTS,2010).

Figura 10: Formato básico de uma UART (SUMAN, 2016)

A Figura10mostra o formato básico de uma UART contendo 8bits de dado, 1bit de início, 1bit de paridade (opcional) e umbit de parada. Osbitssão dispostos de maneira a serem enviados e recebidos serialmente, onde através dos bits recebidos é possível sua leitura de início e fim. O bit de início (start bit) indica ao receptor que o dado está se preparando para ser transmitido, e o bit de parada (stop bit) indica que a transmissão chegou ao fim. Obit de paridade (parity bit) é opcional e é usado para detecção e correção de erros.

2.4.3 SPI - Serial Peripheral Interface

SPI é um barramento de interface de comunicação serial síncrona usado para co- municação de curta distância, comumente usado em circuitos embarcados. O SPI utiliza tempos de relógio (clock) separados e linhas de dado juntamente com uma linha seletora para se comunicar com os dispositivos desejados utilizando uma comunicação full-duplex.

O modo full-duplex do SPI realiza uma arquitetura mestre-escravo com um único mestre, podendo a arquitetura ter mais de um escravo. A linha seletora é responsável por selecio-

(34)

32 Capítulo 2. Fundamentação Teórica

nar o escravo a ser usado e é ativa em nível lógico baixo (MICROSHIP,2016). As ligações de um SPI para comunicação são as seguintes:

MOSI – Master Output Slave Input: pino para envio de dado do mestre para o escravo.

MISO – Master Input Slave Output: pino para o envio de dado do escravo para o mestre.

SCLK – Serial Clock: tempo de relógio.

SS – Slave Select: seleção do escravo.

A Figura11mostra uma configuração para o SPI na qual um dispositivo mestre se comunica com 3 dispositivos escravos. A seleção dos escravos é feita por meio da linha de seleção, SS, e quando ativada em nível baixo o escravo recebe as informações do dispositivo mestre.

Figura 11: Mestre único e 3 escravos (SACCO, 2014)

A comunicação SPI foi utilizada no presente projeto para a comunicação inicial entre uma placa FPGA e um microcontrolador Arduino, que foi responsável pelo envio dos dados para um dispositivo móvel com sistema operacional Android através de um móduloBluetooth, tendo como preceito o objetivo de entender como funciona uma comu- nicação entre diferentes dispositivos. A escolha da utilização do SPI para a transferência de informações entre o Arduino e o FPGA foi devido à sua facilidade de implementação e também por apresentar uma comunicação full-duplex.

2.4.4 Comunicação Bluetooth

Bluetooth é um método para comunicação de dados de curta distância que não utiliza cabos para troca de informações entre os dispositivos conectados. Trata-se de uma

(35)

2.5. Software Embarcado 33

tecnologia de rádio frequência que opera na frequência de nível global sem restrições da Industrial, Scientific, and Medical (ISM), na faixa de 2.5 GHz. O hardware de um Bluetooth é projetado para ser de baixo custo e de baixo consumo, podendo ser utilizado para uma conexão de até 10 m ou de até 100 m, dependendo da potência do transmissor.

Segundo a sua topologia de rede, os dispositivos Bluetooth funcionam com o mé- todo de mestre-escravo. O dispositivo que inicia a conexão é tido como o mestre da comunicação e se comunica com outro dispositivo, que passa a ser tido como escravo.

O dispositivo mestre pode se comunicar com mais de um dispositivo escravo ao mesmo tempo por meio de redes ad-hoc, conhecidas como piconets. Quando várias dessas pico- nets estão ligadas, formando uma ponte entre os dispositivos, cria-se a scartternet. Por operar em uma faixa de frequência não licenciada da ISM, cada piconet do Bluetooth é sincronizada a uma frequência de salto padrão específica. Este padrão move-se atra- vés de 1600 frequências diferentes a cada segundo, únicas para cada piconet (SAIRAM;

GUNASEKARAN; REDD, 2002).

Existem diferentes versões de Bluetooth que podem ser encontrados no mercado atualmente, sendo que as diferenças principais de cada versão estão na qualidade de segurança da troca de informações entre os dispositivos pareados, velocidade da troca das informações e no seu consumo de energia. As versões mais populares são as 2.x, porém versões superiores a esta podem ser encontradas, tais como as 3.x e 4.x.

2.5 Software Embarcado

2.5.1 Android

Android é um sistema operacional móvel baseado no kernel do Linux e foi desenvol- vido primeiramente para dispositivos móveis, tais como celulares e tablets. Atualmente, o sistema Android é desenvolvido pela empresa Google Inc. e tem suas aplicações em diversas áreas, que exploram não somente a mobilidade de dispositivos, mas também de- senvolve aplicações para televisores, automóveis, relógios de pulso e outros eletrônicos. O código fonte do sistema Android é uma licença de software open source e representa uma atuação no mercado de 80.7% ao redor do mundo (GARTNER,2016). As aplicações para Android são escritas comumente na linguagem de programação Java, mas aplicações escri- tas em C++ e outras linguagens de programação também são encontradas (ANDROID, 2016c).

2.5.1.1 Arquitetura Android

A arquitetura do sistema Android é disposta em seis camadas, sendo que cada camada contém um número de serviços que são relacionados com a navegação no sistema

(36)

34 Capítulo 2. Fundamentação Teórica

Android, incluindo seus códigos, drivers e funcionalidades.

Figura 12: Arquitetura do Sistema Android (ANDROID, 2016a)

A Figura 12 mostra as seis camadas que compõem a arquitetura do sistema An- droid. A primeira camada, Application Framework, é relacionada com a estrutura das aplicações do sistema Android. É nessa camada que desenvolvedores acessam as APIs do sistema, podendo utilizar em suas aplicações os dispositivos de hardware e serviços de segundo plano. A segunda camada, Binder IPC Proxies, corresponde a um mecanismo que possibilita que a camada anterior, Application Framework, tenha acesso aos códigos de serviço do sistema Android, viabilizando que as APIs realizadas possam interagir com os serviços do sistema. A terceira camada,Android System Services, é relacionada com as funcionalidades do sistema Android e é dividida em dois grupos de serviços: media e sis- tema. É nessa camada que as APIs tem acesso aos componentes dehardware do sistema, assim como aos serviços por eles disponíveis. A quarta camada, HAL, é uma camada de abstração de hardware em que um método é fornecido para a criação de ganchos de software entre a pilha de plataforma Android e um hardware. A quinta camada, Linux Kernel, corresponde aos serviços de núcleo do sistema (ANDROID, 2016a).

(37)

2.5. Software Embarcado 35

2.5.1.2 Desenvolvimento de Aplicações Android

Os aplicativos do Android que são programados em Java necessitam, para sua execução, de uma máquina virtual chamada Dalvik, que é utilizada com base em registra- dores e otimizada para baixo consumo de memória. A Dalvik é responsável por agrupar informações a partir de classes Java de extensão .class compiladas em um arquivo de extensão .dex com tamanho menor do que os arquivos originais. Esta conversão é feita pelo Android SDK. As ferramentas Android SDK compilam o código em um arquivo de extensão .apk que possui todas as informações do aplicativo, tais como os recursos utili- zados e as classes necessárias para a aplicação (MONTEIRO,2012). A Figura 13 mostra o processo de geração de um aplicativo.

Figura 13: Processo de geração de um aplicativo (MONTEIRO, 2012)

Um aplicativo Android possui quatro tipos de componentes que são essenciais para a construção dos blocos de uma aplicação. Cada um desses componentes é de uso distinto e tem um ciclo de vida que define como o componente é criado e destruído. São eles (ANDROID, 2016b):

Atividades: uma atividade representa uma tela simples com uma interface de usuá- rio, capaz de fornecer uma interação. Uma atividade é implementada como uma subclasse de ACTIVITY.

Serviços: um serviço é um componente que funciona no segundo plano para traba- lhar em operações de longo tempo ou trabalhar em processos remotos e não dispõem de interface gráfica. Um serviço é implementado como uma subclasse de SERVICE.

Provedores de Conteúdo: um provedor de conteúdo gerencia um conjunto com- partilhado de dados de um aplicativo, permitindo o acesso e modificação de dados armazenados em um banco de dados, se assim o provedor permitir. Um provedor de conteúdo é implementado como uma subclasse de ContentProvider.

Receptores de Transmissão: um receptor de transmissão é um componente que responde a eventos de transmissão espalhados por todo o sistema Android. Mui- tas transmissões se originam do sistema (por exemplo, um anúncio de transmissão informando que a tela foi desligada ou a bateria está fraca).

(38)

36 Capítulo 2. Fundamentação Teórica

No próximo capítulo, a metodologia empregada e as ferramentas que foram uti- lizadas para este trabalho são apresentadas. As ferramentas que são utilizadas para o desenvolvimento do trabalho são descritas visando os aspectos dehardware e software.

(39)

37

3 Aspectos Metodológicos e Ferramentas

3.1 Ferramentas

As ferramentas que foram utilizadas para o desenvolvimento do trabalho são des- critas nesta seção, apresentando suas funções na construção de hardware e software do sistema de comunicação. Para a implementação do hardware do sistema, foram usados programas da Altera, para programar o FPGA e controlar o módulo Bluetooth. Para a parte de software do sistema, foram utilizados ambientes de desenvolvimento de aplica- ções Android e de implementação em C dos protocolos de comunicação no processador embarcado. Os itens a seguir contêm uma breve descrição dessas ferramentas.

3.1.1 Kit DE1-SoC Board

A placa de desenvolvimento FPGA escolhida para o trabalho foi a DE1-SoC Board, da Terasic (Figura 14). A placa é um hardware robusto, construído com base no FPGA Altera System-on-Chip. Os periféricos da placa estão posicionados nas extremidades, de maneira que seu acesso é fácil e rápido. A placa tem diversos recursos interessantes, que auxiliam na elaboração desde projetos simples a complexos. Alguns dos recursos que a placa contém estão listados a seguir:

Figura 14: Placa DE1-SoC (PROGRAM, 2015)

∙ Dispositivo System-on-Chip da família Cyclone V 5CSEMA5F31C6.

(40)

38 Capítulo 3. Aspectos Metodológicos e Ferramentas

∙ Dual-core ARM Cortex-A9 (HPS).

∙ 85K elementos lógicos programáveis.

∙ 64MB de memória SDRAM na FPGA.

∙ Conexão USB para UART no Hard Processor System (HPS).

∙ Conversores A/D com taxa de amostragem de 500 KSPS, resolução de 12 bits e taxa de entrada analógica de 0 4.096V.

A placa DE1-SoC, cujo diagrama de blocos está mostrado na Figura15, é dividida em duas partes: a FPGA e o HPS. Ambas contêm periféricos que são disponíveis a elas e que podem ser acessadas através de uma interconexão entre elas. O HPS é um sistema de processador baseado em arquitetura ARM (PROGRAM, 2015).

Figura 15: Diagrama de bloco da placa DE1-SoC (PROGRAM, 2015)

3.1.2 Quartus II Web Edition

A Altera disponibiliza em seu website uma versão gratuita do software de desen- volvimento Quartus II. Trata-se de uma versão que não necessita do uso de licenças para seu funcionamento. O Quartus II é utilizado para o desenvolvimento de projetos para FPGA programados em linguagem de descrição de hardware (HDL). A versão utilizada no projeto é a 15.0 da Quartus II Web Edition e pode ser utilizada em sistema opera- cionais Linux ou Windows. O Quartus II Web Edition inclui em seu pacote o Quartus II software, o Nios II Embedded Design Suit (ALTERA, 2016a) e o ModelSim - Altera Edition, descritos a seguir:

(41)

3.1. Ferramentas 39

Quartus II software: é o softwarede desenvolvimento de projetos da Altera para dispositivos lógico programáveis. Possibilita a análise e síntese de projetos utilizando VHDL ou Verilog, análises do desempenho do sistema, dos diagramas RTLs e da reação de diferentes estímulos a uma entrada.

Nios II Embedded Design Suit (EDS): é um pacote de desenvolvimento para o projeto de software do Nios II que contem, além de ferramentas para desenvolvi- mento, drivers de dispositivos, biblioteca para HAL e avaliação de um sistema de operação em tempo real.

ModelSim - Altera Edition: software que permite a simulação de projetos fei- tos no FPGA, apresentando quais são as respostas do sistema projetado a certos estímulos.

Mais informações sobre as ferramentas de desenvolvimento e seus recursos, tais como as que forem aqui apresentadas podem ser obtidas no website da Altera (ALTERA, 2016c).

3.1.3 Módulo Bluetooth HC-05

O HC-05 (Figura 16) é um módulo utilizado para conversão da porta serial para Bluetooth. Ele tem dois modos de funcionamento: ordem-resposta e de conexão auto- mática. No primeiro, o usuário envia comandos AT para o módulo para configurar os parâmetros de controle e enviar a ordem de controle. No segundo, o módulo permanece com a última configuração padrão efetuada para transmissão de informações automatica- mente.

O módulo HC-05 tem a flexibilidade de ser configurado como um dispositivo mestre ou como um dispositivo escravo (LINOTUX,2011). Neste trabalho, o dispositivo HC-05 é adotado como um dispositivo mestre, podendo ser pareado com qualquer dispositivo que queira se comunicar com ele.

Figura 16: Módulo Bluetooth HC-05 (CENTRE, 2016).

(42)

40 Capítulo 3. Aspectos Metodológicos e Ferramentas

3.1.4 MIT App Inventor 2

O software MIT App Inventor 2 é um ambiente de desenvolvimento para desen- volvimento de aplicativos para Android. Ele está disponível no website do próprio MIT App Inventor e pode ser baixado a qualquer tempo. Para a construção de um projeto de aplicativo Android, existem dois editores no software que são responsáveis por fazer a conexão entre a interface para o usuário com o comportamento do aplicativo. Estes edi- tores são o Designer Editor e o Blocks Editor. A interface gráfica do MIT App Inventor 2 apresenta fácil localização das ferramentas e uma estrutura bem definida para cada um dos editores usados na construção de um aplicativo.

Mais informações sobre o MIT App Inventor 2 podem ser obtidas no website (MIT, 2016).

3.1.5 Arduíno

O Arduíno é uma placa com um microcontrolador que tem seu uso bastante difun- dido para o uso em projetos microcontrolados. Esta placa possibilita que projetos baseados em microcontroladores sejam realizados facilmente, pois ela providencia em seuhardware perfiféricos que são capazes de leituras tanto digitais quanto analógicas. O Arduíno conta com sua própria IDE que é o Arduíno Software, onde a programação da placa se faz por meio de sketches, que são os textos editados com os comandos e salvos em um arquivo de extensão .ino. O Arduíno fornece a possibilidade de se utilizar a comunicação serial via UART com qualquer dispositivo que também utilize esse meio de comunicação, tendo seus pinos RX e TX expostos na placa e tendo na IDE um terminal serial que apresenta as entradas e saídas que ocorrem durante a transmissão. A placa utilizada neste trabalho foi o Arduíno Duemilanove.

Figura 17: Arduíno Duemilanove

(43)

3.2. Metodologia 41

Mais informações sobre o Arduíno e seus recursos podem ser encontrados em (AR- DUINO, 2016).

3.2 Metodologia

O desenvolvimento do trabalho deu início com o levantamento bibliográfico para compreender as fundamentações necessárias à extração e aquisição de sinais biológicos de células cardíacas. Técnicas envolvendo o eletrocardiograma e a sua relação com a FHR foram estudadas com a intenção de se obter as melhores informações para uma melhor aproximação entre um sistema desenvolvido e o resultado apresentado pelo mesmo.

A arquitetura de uma FPGA e suas vantagens de uso foram estudadas para a validação do sistema como um todo, pois uma das partes principais do trabalho se faz presente no desenvolvimento correto da descrição na FPGA. O uso do software Quartus II foi utilizado nesse intuito, onde um código em Verilog foi desenvolvido para funcionar como a UART-TX do sistema de comunicação entre a FPGA e o módulo Bluetooth HC- 05. Para o código descrito, simulações do comportamento foram realizadas no software ModelSim para que a posterior implementação na placa fosse coerente com o esperado.

Após as simulações e implementação na FPGA, o processador MIPSfpga foi es- tudado para utilização no kit DE1-SoC e para isso foi necessário a leitura do guia de usuário fornecido pela (IMAGINATION, 2015). A implementação desse processador foi realizada para a execução de códigos em C na FPGA. Como o foco deste trabalho está na comunicação entre a FPGA e o módulo Bluetooth e dispositivo Android, a FHR gerada em código C e processada pelo processador MIPSfpga foi utilizada de um trabalho já em andamento na Universidade de Brasília Campus Gama. Embora pequenas alterações, mas importantes, tenham sido realizadas nos códigos Verilog do processador, o processamento da FHR continua o mesmo.

Antes da implementação do processador na placa FPGA juntamente com a UART- TX descrita e acrescentada ao processador, simulações nosoftwareModelSim foram reali- zadas com o intuito de verificar se o sistema descrito funcionava de acordo com o esperado e após essa verificação, a implementação na placa FPGA foi realizada. Para o teste de hardware foram realizados pequenos testes utilizando a placa FPGA e um Arduíno. O anexo E traz os resultados destes testes.

Com a verificação da comunicação entre o FPGA e Arduíno, foi então desenvolvido um aplicativo para o recebimento da FHR através do módulo Bluetooth HC-05 utilizando para isso o software de desenvolvimento MIT App Inventor 2. Com a interface gráfica e as funções a serem executadas pelo aplicativo montadas foi então testado a parte final do trabalho, que é realizar a comunicação entre a placa FPGA e o dispositivo Android.

(44)

42 Capítulo 3. Aspectos Metodológicos e Ferramentas

A validação do sistema desenvolvido depende da boa comunicação entre a placa FPGA e o aplicativo no dispositivo Android. Portanto, todos os desenvolvimentos e im- plementações foram simulados e testados, afim de se evitar erros na comunicação que podem gerar perdas de informação.

(45)

43

4 Sistema Proposto e Implementação

4.1 Sistema Proposto

O foco deste trabalho está em implementar o protocolo de comunicação entre o FPGA e um módulo Bluetooth, e em desenvolver em um dispositivo móvel com Android um aplicativo que emitirá um alarme caso a FHR ultrapasse os limites predefinidos. A estimativa da FHR é feita no FPGA, através de algoritmos aplicados no sinal obtido do abdômen materno, utilizando a abordagem de co-projetohardware-software. A plataforma FPGA com o processador embarcado microAptive foi escolhida para executar os algorit- mos de estimação da FHR devido às vantagens citadas no Capítulo 2, e a implementação de toda a parte de processamento foi tema de outro trabalho de conclusão do curso de Engenharia Eletrônica da Faculdade do Gama, na Universidade de Brasília. A Figura 18 apresenta uma visão geral do sistema completo, incluindo sua comunicação via Bluetooth com um dispositivo móvel com Android. Como pode ser observado, o sistema possui três blocos, sendo os mesmos responsáveis, respectivamente, pela extração e aquisição do sinal de ECG abdominal, pela aceleração e otimização de algoritmos para módulo estimador da FHR e pelo envio de informações para um dispositivo móvel através de um módulo Bluetooth.

Figura 18: Visão geral do sistema de extração e comunicação. Figura adaptada de (LEUNG, 2013)

As funções do sistema podem ser resumidamente descritas da seguinte forma:

Aquisição de ECG abdominal: este bloco tem as funções de extração e aquisição do sinal de ECG por meio de eletrodos posicionados no abdômen da gestante.

(46)

44 Capítulo 4. Sistema Proposto e Implementação

Processamento: o kit com FPGA tem a função de fazer a aceleração e otimiza- ção de algoritmos para estimar a FHR a partir do sinal de ECG, e de enviar as informações extraídas para um módulo Bluetooth.

Comunicação: o módulo Bluetooth recebe as informações recebidas do FPGA e as transmite para um dispositivo com sistema Android.

Aplicativo: o dispositivo móvel recebe as informações, mostra a FHR estimada e emite um alarme caso a mesma ultrapasse os limites predefinidos.

4.2 Implementação

4.2.1 MIPSfpga

Para a implementação do MIPSfpga na placa FPGA foi utilizado o tutorial dispo- nibilizado pela ((IMAGINATION, 2015)). No entanto, o tutorial fora desenvolvido para implementação nos kits Nexys4 DDR e DE2-115, enquanto que o kit utilizado para este projeto é oDE1-SoC. Algumas modificações foram realizadas nos códigos fornecidos como pode ser visto a seguir:

∙ Um arquivoTop-Level foi criado para conectar o núcleo do MIPSfpga a placa FPGA.

O arquivo criado pode ser visto na Figura 19, onde fica visível a possibilidade de o MIPSfpga utilizar periféricos da placa, como os 10 switches, os 4 pushbuttons e os 10 LEDs vermelhos.

∙ O tamanho da memória RAM de reset e da usada nos programas do MIPSfpga foram diminuídas de acordo com o disponibilizado pelo kit DE1-SoC. Pelo arquivo mipsfpga ahb const o parâmetro da memória de reset foi diminuído de 15 para 14, o que significa que 214 palavras, ou 64KB, agora serão usadas. Já o parâmetro da memória usada nos programas foi diminuído de 16 para 15, ou seja, 215 palavras, representando 128KB.

∙ Um arquivoconstraintscontendo o mapeamento dos sinais aos seus respectivos pinos precisa ser criado. Para tanto foi gerado um arquivo *.qsf que utiliza o endereço dos pinos para mapear os sinais de acordo com o descrito.

Após as alterações realizadas e para efeito de teste, os arquivos ram reset init.txt e ram program init.txt, que são fornecidos, foram adicionados a pasta de arquivos do MIPSfpga e modificados. Estes arquivos são os responsáveis por informar ao processador MIPSfpga as instruções a serem executadas. Os testes realizados podem ser observados no Anexo A.

(47)

4.2. Implementação 45

Figura 19: Top-Level do MIPSfpga.

4.2.1.1 Adição de Periféricos ao MIPSfpga

Instruções de como adicionar periféricos ao MIPSfpga são nessa seção descritas. As instruções aqui contidas se limitam a adição dos displays de 7 segmentos, para amostragem da FHR estimada, e de um pino GPIO, que servirá como o pino TX da UART, mas elas podem ser utilizadas para acrescentar quaisquer outros periféricos disponíveis no DE1- SoC.

4.2.1.1.1 Modificação do top-level do MIPSfpga

O top-level do MIPSfpga é a parte de mais alto nível deste sistema e, portanto, é nela que se encontram os elementos de entrada e saída de acesso aos periféricos e ao processador. Para adicionar periféricos é necessário que se crie saídas para os displays de 7 segmentos e para o pinoGPIO. Tendo em vista que oDE1-SoC possui 6displays, foram criados 6 vetores de saída com 7 elementos cada: [6:0]HEX0 a [6:0]HEX5 e, como estamos interessados apenas no envio da informação através de um protocolo UART, foi criada uma saída TX para esse fim. O módulo mipsfpga sys é instanciado pelotop-level, o que nos refere a acrescentar as saídas criadas ao módulo instanciado. Já o módulo mipsfpga sys instancia o módulo mipsfpga ahb, o qual as saídas também devem ser acrescentadas.

Novamente há uma instanciação, mas agora para o módulo mipsfpga ahb gpio, ao qual

Referências

Documentos relacionados

Durante operação da Polícia Militar no muni- cípio de Itaipé, no sába- do (10/10), os militares prenderam em flagrante um cidadão por recepta- ção culposa ao adquirir um

Desta forma, a vidraria que foi exposta a esses materiais podem conter resíduos de substâncias perigosas, como produtos químicos ou agentes biológicos (fungos, vírus,

5 Cs e 1 contexto : uma experiência de ensino de português língua estrangeira conforme os parâmetros de ensino de língua norte-americanos – Standards for Foreign Language Learning

É perceptível, desta forma, o constante aumento do aprofundamento dos personagens: os “príncipes” têm agora não só nome e falas, mas personalidades bem desenvolvidas,

Com o estudo anterior (AMARAL, 2009) sobre a evolução da infografia no meio, surgiram dúvidas a respeito de alguns exemplos pesquisados. Percebemos que a fronteira

Recuperações Judiciais e Falências; Prestações de contas; Revisões de contratos; Operações financeiras, de crédito e bancárias; fusões e aquisições; avaliações de

The present study, inves- tigating the anterior segment parameters and corneal aberrations in patients with RP in comparison with healthy controls using Scheimpflug imaging,