scieee AI-readable full text Open interactive document viewer

Auto-Sincronização em Sistemas de Controlo Distribuídos

Miguel Alberto Ribeiro de Freitas Rodas

Full text

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Auto-Sincronização em Sistemas de Controlo Distribuídos Miguel Alberto Ribeiro de Freitas Rodas Mestrado Integrado em Engenharia Electrotécnica e de Computadores Orientador: Luis Miguel Pinho de Almeida 19 de Abril de 2013 c Miguel Rodas, 2013 Resumo Os sistemas de controlo distribuído realizam malhas de controlo realimentado cujos dados circulam entre nodos distribuídos do sistema. Logo, os atrasos de rede influenciam diretamente os atrasos da malha de controlo e, consequentemente, a respetiva estabilidade e desempenho. Com frequência estes sistemas são compostos por vários processos periódicos que compõem a sensorização, o controlo e a atuação. Não havendo sincronização entre estes processos, o jitter de atuação e o atraso de ponta a ponta poderá ser excessivo para a capacidade de controlo do sistema. O objetivo desta dissertação é desenvolver um método de sincronização de processos periódicos em sistemas de controlo distribuídos com o intuito de minimizar o jitter de atuação, mantendo o atraso ponta-a-ponta limitado e tendencialmente baixo. Este processo deverá ser automático e adaptativo a diferentes tipos de rede e a carga variável na rede. O método estudado foi implementado sobre um sistema distribuído com microcontroladores PIC 18F258 executando um pequeno kernel multitasking de tempo-real, sendo interligados com uma rede CAN. Com a referida plataforma experimental foram efetuadas várias medidas que permitiram comparar o jitter de atuação e o atraso ponta a ponta obtidos com várias opções para as transações de controlo, nomeadamente event-triggered, cíclica e cíclica com sincronização. i ii Abstract The distributed control systems implement feedback control loops whose data move between various distributed nodes in the system. Therefore the network delays directly affect the control loop delays and therefore its stability and performance. Usually these systems have numerous periodic processes that are a part of the sensing, control and actuation. Without synchronization, the actuation jitter and the end-to-end delay could be excessive for the capacity of the control systems. The goal of this dissertation is to develop a method to synchronize the periodic processes in the distributed control system in order to minimize the actuation jitter, keeping the end-to-end delay limited and tendentially low. This method should be automatic and adaptive to different kinds of networks and to variable network loads. The method that was studied was implemented on a distributed system with PIC 18F258 microcontrollers executing a simple multitasking real-time kernel, connected with a CAN network. With the referred experimental platform, we carried out several measurements that allowed comparing the actuation jitter and the end-to-end delay achieved with different options for managing the control transactions, namely event-triggered, cyclic and cyclic with synchronization. iii iv Agradecimentos Não posso deixar de agradecer a todos os que muito me apoiaram nesta viagem e que sem os quais não teria conseguido: ao orientador, aos colegas, à família e ao amigos. Miguel Rodas v xii LISTA DE FIGURAS 4.15 Cadeia de Mensagens cíclica. Intervalos de tempo entre finalizações da tarefa em DETPICC(ms)................................... 24 4.16 Cadeia de Mensagens cíclica. Atrasos ponta-a-ponta (ms) . . . . . . . . . . . . . 25 4.17 Cadeia de Mensagens cíclica com sincronização. Intervalos de tempo entre finalizações da tarefa em DETPIC C (ms) . . . . . . . . . . . . . . . . . . . . . . . . 25 4.18 Cadeia de Mensagens cíclica com sincronização. Atrasos ponta-a-ponta (ms) . . 26 4.19 Cadeia de Mensagens Event-Triggered. Intervalos de tempo entre finalizações da tarefaemDETPICC(ms) ............................. 26 4.20 Cadeia de Mensagens Event-Triggered. Atrasos ponta-a-ponta (ms) . . . . . . . 27 4.21 Cadeia de Mensagens cíclica. Intervalos de tempo entre finalizações da tarefa em DETPICC(ms)................................... 27 4.22 Cadeia de Mensagens cíclica. Atrasos ponta-a-ponta (ms) . . . . . . . . . . . . . 28 4.23 Cadeia de Mensagens cíclica com sincronização. Intervalos de tempo entre finalizações da tarefa em DETPIC C (ms) . . . . . . . . . . . . . . . . . . . . . . . . 28 4.24 Cadeia de Mensagens cíclica com sincronização. Atrasos ponta-a-ponta (ms) . . 29 4.25 Esquema simplificado do atraso de ponta-a-ponta numa cadeia de mensagens com tarefascíclicas.................................... 31 Lista de Tabelas 4.1 Sumário dos resultados (ms) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 xiii xiv LISTA DE TABELAS Abreviaturas e Símbolos CAN Controller Area Network ID Identificação Kbit Kilobit Mbit Megabit MHz Megahertz TDMA Time division multiple access xv Capítulo 1 Introdução 1.1 Motivação Os sistemas (de controlo) distribuídos são cada vez mais comuns e importantes no mundo atual, estando presentes em diferentes áreas desde os transportes até ambientes industriais, passando pela agricultura e domótica. Os sistemas distribuídos são constituídos por vários nodos que executam diferentes tarefas com um objetivo comum. Frequentemente estes sistemas estão sujeito a restrições temporais. Um exemplo disso são os sistemas de controlo que realizam malhas de controlo realimentado e que são normalmente compostos por processos periódicos de sensorização, controlo e atuação, cujos dados circulam entre os nodos distribuídos do sistema. A transação destes dados está sujeita aos atrasos de ponta a ponta da rede que podem comprometer a controlabilidade do sistema [4]. A sincronização entre estes processos periódicos permitirá minimizar este efeito. 1.2 Objetivo Na presente dissertação propõe-se implementar um método de sincronização de processos periódicos em sistemas de controlo distribuídos que permite minimizar o jitter de atuação mantendo limitado o atraso de ponta a ponta. Este processo deverá ser automático e adaptativo a diferentes tipos de rede e a carga variável na rede. Este método será implementado numa rede CAN interligando pequenos sistemas chamados DETPIC baseados em microcontroladores de 8 bits, nomeadamente os PIC 18F258 da Microchip, e executando um simples kernel tempo-real mutlitasking. Com a referida implementação pretendese desenvolver uma análise experimental comparativa entre várias possibilidades de implementar as transações de controlo. 1 2Introdução 1.3 Estrutura da Dissertação Para além da introdução, esta dissertação contém mais 4 capítulos. No capítulo 2, são apresentados trabalhos relacionados. No capítulo 3, é descrito e explicado o sistema desenvolvido. No capítulo 4são apresentados e interpretados os resultados No capítulo 5são apresentadas as conclusões. Capítulo 2 Trabalho Relacionado Neste capítulo são dados a conhecer os pressupostos teóricos e tecnológicos da dissertação. Em primeiro lugar são expostos os conceitos de CAN mais importantes e relevantes para a dissertação. Em segundo lugar é apresentado apresentada a bibliografia que serve de base a esta dissertação. 2.1 Controller Area Network 2.1.1 Indrodução CAN (Controller Area Network) é um protocolo de comunicação série estandardizado como ISO 11898 e foi originalmente desenvolvido para a indústria automóvel pela Bosch GmbH. As principais vantagens do CAN são o baixo custo dos dispositivos, o comportamento determinístico, grande fiabilidade e a capacidade de deteção de erros e de retransmissão. São permitidas velocidades de transmissão entre 20Kbits/s e 1Mbit/s Este protocolo é do tipo CSMA/CD+AMP (Carrier Sense Multiple Access with Collision Detection and Arbitration on Message Priority), ou seja, permite o múltiplo acesso ao meio com deteção de colisões tendo em conta a prioridade das mensagens. 3 4Trabalho Relacionado Figura 2.1: Modelo OSI do ISO 11898 [1] 2.1.2 Formato das Tramas Existem dois tipos de trama em CAN: standard e extended. A standard tem um campo de identificação com 11 bits e a extended tem 29 bits. O formato da trama standard em CAN é apresentado na figura 2.2. Figura 2.2: Trama CAN Standard [1] Os campos da trama têm a seguinte função/descrição: •SOF – Início da mensagem (Start of Frame) •Identifier – Identificação, inclui a prioridade da mensagem •RTR - remote transmission request, é dominante quando requer informação de outro elemento. •IDE - Identifier extension, é dominante quando a trama não é extended •r0 – reserved bit •DLC - data length code, tamanha dos dados •Data - Dados •CRC - cyclic redundancy check •ACK – acknowledge 2.1 Controller Area Network 5 •EOF – end of frame, fim da trama •IFS – Interframe space, espaço inter-tramas O formato da trama standard em CAN é apresentado na figura 2.3. Figura 2.3: Trama CAN Extended [1] Campos extra: •SRR - substitute remote request •IDE - identifier extension 2.1.3 Arbitragem do meio Se vários dispositivos tentam transmitir ao mesmo tempo, o dispositivo com a maior prioridade (menor identificação) ganha o acesso ao meio. Os dispositivos com menor prioridade que não ganharam acesso ao meio ficam à espera até que o barramento fique livre para tentarem transmitir outra vez. Figura 2.4: Arbitragem do meio 2.1.4 Filtro de mensagens As mensagens recebidas são filtradas através de mascaras e de filtros pré-definidos. Só as mensagens que passarem por esses filtros é que chegam aos buffers. Normalmente os controladores CAN possibilitam que os diferentes buffers de receção tenham diferentes filtros associados. A figura 2.5 explica o procedimento. 12 Caracterização do Sistema 3.4 Metodologia 3.4.1 Testes e medições efetuados 3.4.1.1 Testes Normalmente, três dos DETPICs são usados para implementar diferentes cenários e configurações e o restante DETPIC é usado como logger e/ou para fazer variadas medições (Figura 3.3). Figura 3.3: Esquema do hardware Na configuração de hardware descrita anteriormente são efetuados três tipos de testes: •Cadeia de Mensagens com tarefas Event-Triggered. O DETPIC A tem uma tarefa periódica com período T que envia mensagens com ID:1, DETPIC B tem uma tarefa event-triggered que sempre que recebe uma mensagem de A envia uma mensagem ID:2, o DETPIC C tem uma tarefa event-triggered que sempre que recebe uma mensagem de B envia uma mensagem ID:3. •Cadeia de Mensagens com tarefas Cíclicas. O DETPIC A tem uma tarefa com um período T que envia mensagens com ID:1, DETPIC B tem uma tarefa periódica (período T) que espera por uma mensagem de A e nesse caso envia uma mensagem ID:2, o DETPIC C tem uma tarefa periódica (período T) que espera por uma mensagem de B e nesse caso envia uma mensagem ID:3. •Cadeia de Mensagens com tarefas Cíclicas com sincronização. É semelhante à cadeia de mensagens cíclicas mas as tarefas periódicas em DETPIC B e C, seguem o método de sincronização descrito no capítulo anterior. Nestes três tipos de testes são efetuadas as seguintes versões: •Sem tarefas nem mensagens adicionais •Com mensagens adicionais O DETPIC A para além da tarefa principal tem outra tarefa periódica com um período de 6 ms que envia três mensagens consecutivas com um ID:0. •Com tarefas adicionais Em DETPIC B e C existem duas tarefas periódicas adicionais. Uma tarefa periódica tem 3.4 Metodologia 13 um período de 8ms e a outra tem um período de 12 ms e ambas tem um tempo de execução de 1,2 ms. As duas tarefas extra têm maior prioridade do que a tarefa principal. •Com mensagens e tarefas adicionais Com as mesmas características das duas descrições anteriores. Todas as mensagens CAN trocadas são do tipo standard, têm 8 bytes de dados (0x8181818181818181) e com velocidade de transmissão de 250 kbit/s, sendo o tempo de transmissão 0,432 ms. 3.4.1.2 Medições Nestes testes são efetuados dois tipos de medições: •Atrasos de ponta-a-ponta. Intervalo de tempo desde que uma mensagem é enviada no DETPIC A até a tarefa de receção ser terminada no DETPIC C. Este intervalo de tempo é calculado num DETPIC L da seguinte maneira: quando DETPIC A envia uma mensagem, é ativado uma saída digital que por sua vez está ligado ao interrupt externo do DETPIC L, o DETPIC C tem uma ligação semelhante ao outro interrupt externo que é ativado sempre que a tarefa de receção é terminada. O atraso de ponta-a-ponta é então calculado pela diferença de tempo em que os interrupts são disparados em DETPIC L. •Intervalos de tempos entre finalizações da tarefa no final da cadeia. Sempre que a tarefa em DETPIC C termina é ativado uma saída digital que está ligada a um interrupt externo em DETPIC L. O DETPIC L calcula os intervalos entre interrupts consecutivos. Os intervalos de tempo são calculados em DETPIC L usando um timer deste micocontrolador. Otimer utilizado (Timer1) é configurado em modo free run e com um pre-scaler de 1:8. Sempre que é detetado um interrupt correspondente ao início do intervalo esse timer é colocado a zero e quando for detetado o interrupt correspondente ao final do intervalo o valor do timer é registado nesse instante. Cada tick do timer tem uma duração de 0,8 µs. Ttick =1 10MHz 8 =0,8µs Sendo 10MHz a frequência de oscilação do microcontrolador e 8 o valor do pre-sclaler do timer. O intervalo de tempo é então calculado multiplicando o valor do timer pelo Ttick. 14 Caracterização do Sistema Figura 3.4: Esquema simplificado da cadeia de mensagens com tarefas event-triggered 3.4.2 Análise de resultados 3.4.2.1 Cadeia de Mensagens com tarefas Event-Triggered O emissor (DETPIC A) tem uma tarefa periódica que transmite mensagens. Como o acesso ao BUS não é imediato existe então um jitter (JT) no período (T) desde que a transmissão é despoletada até que é realmente iniciada. Caso o conteúdo da mensagem seja variável, existe ainda um jitter (JC) no tempo de transmissão (C). No DETPIC B existe um jitter (Jk) na ativação da tarefa, devido a, por exemplo, tarefas ainda em execução. Esta tarefa demora O a ser executada. A sequência do DETPIC B para o DETPIC C é semelhante à anterior. O atraso de ponta-a-ponta, desde que a tarefa em DETPIC A é ativada até que a tarefa em DETPIC C também é terminada, é dado por D O intervalo de tempo entre finalizações da tarefa em DETPIC C é dado por W 3.4.2.2 Cadeia de Mensagens com tarefas cíclicas Até a mensagem chegar a DETPIC B o procedimento é o mesmo do anterior. No DETPIC B existe um jitter (Jk) na ativação da tarefa, devido a, por exemplo, tarefas ainda em execução. Esta tarefa demora O a ser executada, o tempo de execução sofre de um jitter (JO) devido à espera que a tarefa faz pela receção da mensagem (JO). O atraso de ponta-a-ponta, desde que a tarefa em DETPIC A é ativada até que a tarefa em DETPIC C também é terminada, é dado por D O intervalo de tempo entre finalizações da tarefa em DETPIC C é dado por W 3.4.2.3 Cadeia de Mensagens com tarefas cíclicas com sincronização O procedimento é muito semelhante à cadeia de mensagens cíclicas, mas neste caso é aplicado o método de sincronização. Em DETPIC B e C quando uma tarefa bloqueia ’S’ tempo à espera da 3.4 Metodologia 15 Figura 3.5: Esquema simplificado da cadeia de mensagens com tarefas cíclicas Figura 3.6: Esquema simplificado da cadeia de mensagens com tarefas cíclicas com sincronização mensagem da sequência anterior, a próxima ativação dessa tarefa não será no período normal mas sim com um atraso de ’S’. 16 Caracterização do Sistema Capítulo 4 Apresentação e Análise dos Testes Neste capítulo são apresentados os resultados dos testes descritos no capítulo anterior. 4.1 Testes sem tarefas nem mensagens adicionais 4.1.1 Cadeia de Mensagens Event-Triggered DETPIC A envia mensagens com um período de 20ms. No gráfico da figura 4.1 estão representados os intervalos de tempo entre finalizações da tarefa em DETPIC C. A média de intervalos de tempo é 20,070 ms, o máximo é 20,542 e mínimo 20,599. Figura 4.1: Cadeia de Mensagens Event-Triggered. Intervalos de tempo entre finalizações da tarefa em DETPIC C (ms) No gráfico da figura 4.2 estão traçados os atrasos de ponta-a-ponta. A média de intervalos de tempo é 1,903 ms, o máximo é 2,357 ms e o mínimo é 1,859 ms. 17 18 Apresentação e Análise dos Testes Figura 4.2: Cadeia de Mensagens Event-Triggered. Atrasos ponta-a-ponta (ms) 4.1.2 Cadeia de Mensagens cíclica DETPIC A envia mensagens com um período de 20ms. No gráfico da figura 4.3 estão representados os intervalos de tempo entre finalizações da tarefa em DETPIC C. A média de intervalos de tempo é 20,078 ms, o máximo é 20,0712 ms e mínimo é 20,030. Figura 4.3: Cadeia de Mensagens cíclica. Intervalos de tempo entre finalizações da tarefa em DETPIC C (ms) No gráfico da figura 4.4 estão representados os atrasos de ponta-a-ponta. O máximo é 20,085 ms e o mínimo é 0,003 ms. 4.1 Testes sem tarefas nem mensagens adicionais 19 Figura 4.4: Cadeia de Mensagens cíclica. Atrasos ponta-a-ponta (ms) 4.1.3 Cadeia de Mensagens cíclica com sincronização DETPIC A envia mensagens com um período de 20ms. No gráfico da figura 4.5 estão representados os intervalos de tempo entre finalizações da tarefa em DETPIC C. A média de intervalos de tempo é 20,070 ms, o máximo é 20,115 ms e o mínimo é 20,026 ms. Figura 4.5: Cadeia de Mensagens cíclica com sincronização. Intervalos de tempo entre finalizações da tarefa em DETPIC C (ms) No gráfico da figura 4.6 está traçado os atrasos de ponta-a-ponta. A média de intervalos de tempo é 1,526 ms, o máximo é 1,568 ms e o mínimo é 1,511 ms. 20 Apresentação e Análise dos Testes Figura 4.6: Cadeia de Mensagens cíclica com sincronização. Atrasos ponta-a-ponta (ms) 4.2 Testes com mensagens adicionais O DETPIC A para além da tarefa principal tem outra tarefa periódica com um período de 6 ms que envia três mensagens consecutivas com um ID:0. 4.2.1 Cadeia de Mensagens Event-Triggered DETPIC A envia mensagens com um período de 20ms. No gráfico da figura 4.7 estão representados os intervalos de tempo entre finalizações da tarefa em DETPIC C. A média de intervalos de tempo é 20,070 ms, o máximo é 21,510 e mínimo 18,629. Figura 4.7: Cadeia de Mensagens Event-Triggered. Intervalos de tempo entre finalizações da tarefa em DETPIC C (ms) 4.2 Testes com mensagens adicionais 21 No gráfico da figura 4.8 estão traçados os atrasos de ponta-a-ponta. A média de intervalos de tempo é 2,205 ms, o máximo é 3,357 ms e o mínimo é 1,859 ms. Figura 4.8: Cadeia de Mensagens Event-Triggered. Atrasos ponta-a-ponta (ms) 4.2.2 Cadeia de Mensagens cíclica DETPIC A envia mensagens com um período de 20ms. No gráfico da figura 4.9 estão representados os intervalos de tempo entre finalizações da tarefa em DETPIC C. A média de intervalos de tempo é 20,070ms, o máximo é 21,520 ms e mínimo é 18,621. Figura 4.9: Cadeia de Mensagens cíclica. Intervalos de tempo entre finalizações da tarefa em DETPIC C (ms) No gráfico da figura 4.10 estão representados os atrasos de ponta-a-ponta. 28 Apresentação e Análise dos Testes Figura 4.22: Cadeia de Mensagens cíclica. Atrasos ponta-a-ponta (ms) 4.4.3 Cadeia de Mensagens cíclica com sincronização DETPIC A envia mensagens com um período de 20ms. No gráfico da figura 4.23 estão representados os intervalos de tempo entre finalizações da tarefa em DETPIC C. A média de intervalos de tempo é 20,070ms, o máximo é 21,303 ms e o mínimo é 18,843ms. Figura 4.23: Cadeia de Mensagens cíclica com sincronização. Intervalos de tempo entre finalizações da tarefa em DETPIC C (ms) No gráfico da figura 4.24 está traçado os atrasos de ponta-a-ponta. A média de intervalos de tempo é 1,935 ms, o máximo é 2,726 ms e o mínimo é 1,504 ms. 4.4 Testes com mensagens e tarefas adicionais 29 Figura 4.24: Cadeia de Mensagens cíclica com sincronização. Atrasos ponta-a-ponta (ms) 30 Apresentação e Análise dos Testes 4.5 Análise dos Resultados 4.5.1 Resumo dos resultados Na Tabela 4.1 são apresentados as médias, os máximos e os mínimos dos testes apresentados anteriormente. Jitter diz respeito ao Jitter de atuação, ou seja, aos intervalos de tempo entre finalizações da tarefa em DETPIC C. Atraso diz respeito ao atraso de ponta-a-ponta. Tabela 4.1: Sumário dos resultados (ms) Testes Event-triggered Cíclica Cíclica c/ Sincronização Jitter s/ extras Média 20,070 20,078 20,070 Máximo 20,542 20,118 20,115 Mínimo 19,599 20,030 20,026 Atraso s/ extras Média 1,903 18,529 1,526 Máximo 2,357 20,085 1,568 Mínimo 1,879 0,003 1,511 Jitter c/ mensagens Média 20,070 20,070 20,070 Máximo 21,510 21,520 21,299 Mínimo 18,629 18,621 18,842 Atraso c/ mensagens Média 2,205 1,903 Máximo 3,325 2,715 Mínimo 1,859 1,496 Jitter c/ tarefas Média 20,070 20,070 20,070 Máximo 22,726 22,966 22,956 Mínimo 17,886 17,176 17,185 Atraso c/ tarefas Média 3,049 1,908 Máximo 4,571 2,714 Mínimo 1,912 1,496 Jitter c/ mensagens+tarefas Média 20,070 20,070 20,070 Máximo 23,586 22,956 21,303 Mínimo 16,877 17,098 18,843 Atraso c/ mensagens+tarefas Média 3,235 1,935 Máximo 5,412 2,726 Mínimo 1,893 1,504 4.5.2 Análise sumária dos resultados A variação dos dados entre as várias experiências pode ser explicada pela presença das mensagens e/ou das tarefas extra. No caso das mensagens extra estas fazem variar os valores até 1,296 ms, devido às três mensagens extra de 0,432 de tempo de transmissão. No caso das tarefas extra os valores podes variar até 2,4 ms, devido às duas tarefas extra com um tempo de execução de 1,2 ms. 4.5 Análise dos Resultados 31 Em relação aos atrasos de ponta-a-ponta nos testes das cadeias de mensagens com tarefas cíclicas, o atraso varia entre 0 e os 20 ms. Como os relógios das DETPICs são independentes, os períodos efetivos não são exatamente iguais. Logo ao longo do tempo, as fase das ativações das tarefas vão deslizando e ao medir um intervalo de tempo iniciado por um DETPIC e terminado por outro, esse intervalo vai aumentar. O atraso de ponta-a-ponta vai aumentando até ao ponto em que a tarefa recetora que vai sendo ativada cada vez mais tarde, a certa altura é ativada depois de chegar a mensagem seguinte, o que corresponde a perder uma mensagem. Na figura 4.25 é possível ver estes fenómeno. Figura 4.25: Esquema simplificado do atraso de ponta-a-ponta numa cadeia de mensagens com tarefas cíclicas O atraso de ponta-a-ponta (D) vai aumentando de D1 até D4. D4 é aproximadamente igual a um período. Entre D4 e D5 é possível verificar a perda de uma mensagem. Comparando os resultados de atraso ponta-a-ponta em event-triggered e com transmissão cíclica sincronizada, nota-se que os segundos são mais reduzidos do que os primeiros. Isto deve-se ao facto de que no modo event-triggered as tarefas recetoras estão em sleep e têm de ser ativadas quando chega uma mensagem, enquanto no modo cíclico com sincronização, as tarefas estão ativas, à espera da chegada da mensagem, logo resultando em menor overhead e por isso num menor atraso. Em geral, conforme esperado, as transações cíclicas sincronizadas conseguem gerar atrasos menores de ponta-a-ponta e com menor jitter do que as outras formas de transação consideradas. 32 Apresentação e Análise dos Testes Capítulo 5 Conclusões 5.1 Conclusão No final da dissertação foi implementado um método de sincronização de processos periódicos, automático e adaptativo a carga variável na rede. Com base em testes efectuados sobre um sistema distribuído com microcontroladores (PIC 18F258) executando um pequeno kernel multitasking de tempo-real, interligados com uma rede CAN e utilizando diferentes tipos de transações de controlo (event-triggered, cíclica e cíclica com sincronização), foi possível verificar que este método permite minimizar o jitter de atuação mantendo limitado o atraso de ponta a ponta. 5.2 Trabalho Futuro Seria interessante executar mais testes com o método implementado em diferentes condições. Existem alguns aspetos em que o método pode ser melhorado, acrescentando novas funcionalidades, nomeadamente: capacidade de lidar mais eficazmente com o drift dos relógios dos microcontroladores; e a capacidade de detetar e ultrapassar falhas na comunicação (por exemplo uma mensagem não chegar). O próximo passo desta dissertação seria a implementação e teste deste método de sincronização noutros protocolos de comunicação. 33 34 Conclusões Referências [1] Steven Corrigan. Introduction to the Controller Area Network (CAN). Application Report, Texas Instruments, 2002. [2] Marco Di Natale. Understanding and using the controller area network. inst. eecs. berkeley. edu/˜ ee249/fa08/Lectures/handout_canbus2. pdf, 2008. [3] Frederico Santos, Luís Almeida, Paulo Pedreiras, L Seabra Lopes, e Tullio Facchinetti. An adaptive tdma protocol for soft real-time wireless communication among mobile autonomous agents. Em Proc. of the Int. Workshop on Architecture for Cooperative Embedded Real-Time Systems, WACERTS, volume 2004, páginas 657–665, 2004. [4] Bruno Sinopoli, Cory Sharp, Luca Schenato, Shawn Schaffert, e S Shankar Sastry. Distributed control applications within sensor networks. Proceedings of the IEEE, 91(8):1235–1246, 2003. [5] A Burns e Y Chen. Implementing transactions in a distributed real-time system without global time. Work-In-Progress Proceedings, página 69, 2009. [6] Microchip PIC. 18fxx2 datasheet, 2002. [7] Pedro Leite e Ricardo Marau. Rtkpic18 - breve manual, 2004. 35