O padrão de comunicação STX/ETX que se destaca com as seguintes característica:
-> Master-Slave,
-> comunicação serial ponto a ponto,
-> framing binário assíncrono,
-> byte-oriented, segmentação por delimitadores de dados e comprimento de frames variável.
Tratando-se de um protocolo flexível e fácil de implementação dentro do padrão de sistema de segurança presentes no mercado.
A aplicação de demonstração consiste por parte do Master enviar comandos para Slave. A aplicação desenvolvida para o Master, é uma aplicação para desktop. Que por sua vez interage com o usuario para montar a mensagem a ser enviada para o Slave. A aplicação desenvolvida para o Slave, é um firmware para STM32F0DISCOVERY, trata-se de kit de desenvolvimento para o microcontrolador STM32F0 que por sua vez é baseado arquitetura ARM Cortex-MO. Os comandos proposto para a aplicação limita-se em acionar os LED’s presente na STM32F0DISCOVERY e ler o status do USER Button.
O Master por sua vez tem como funcionalidade interagir com o usuário a fim de construir a mensagem a ser enviado para o Slave, obedecendo a regra demonstrada na figura a abaixo.
O frame da mensagem é composta por 03 partes, o cabeçalho, conteúdo da mensagem e byte de encerramento (Fim de Mensagem). O cabeçalho basicamente é utilizado para sincronismo, informando ao slave que se tratra de mensagem válida. O conteúdo da mensagem, é mensagem propriamente dita a ser enviado ao slave. Para essa aplicação de demonstração a mensagem é composta pelo os seguintes itens; número de bytes que contém o MSG Data, o número do comando, MSG Data que é utilizado para informações variáveis, limitado a 04 bytes e por fim o Checksum, que por sua vez é calculado em cima do conteúdo da MSG. O byte de encerramento é byte que sinaliza o fim da mensagem.
A interação com o usuário é bem intuitiva conforme pode ser vista nas figuras abaixo:
Comando para acionar o LED Blue
Comando para acionar o LED Green
Comando para ler o status do User Button
A aplicação desenvolvida para o slave consiste em ler os dados recebidos pelo barramento serial (UART), reconstruir a mensagem e tomar as ações de acordo com as mensagem recebidas. A aplicação foi desenvolvida utilizado o FreeRTOS. O algoritmo foi dividido em 03 tarefas (task / thread). Como pode ser vista na figura abaixo.