Receção de dados
Last updated
Comunicação assíncrona (i.e. não há transmissão do relógio)
O transmissor e o recetor têm relógios locais (independentes)
Os instantes de amostragem no recetor são sincronizados no início da receção de cada nova trama, sinalizado pelo start bit:
transição de "1" para "0" na linha após um período de inatividade, por exemplo depois da receção completa de uma trama
Este método é robusto (dentro de certos limites) a diferenças de frequência entre os relógios do transmissor e do recetor
Para que a comunicação se processe corretamente, o transmissor e o recetor têm que estar configurados com os mesmos parâmetros:
Baudrate (relógios com a mesma frequência)
Estrutura da trama: nº de bits de dados, tipo de paridade, número de stop bits
O recetor deve sincronizar-se pelo flanco negativo (transição do nível lógico "1" para o nível lógico "0") da linha (Start bit) e, idealmente, fazer as leituras a meio do intervalo reservado a cada bit
Exemplo da receção do valor 0x43: estrutura da trama 7, O, 2 (7 data bits, odd parity, 2 stop bits); 0x43:
Entre instantes de sincronização o desvio de frequência dos relógios depende da estabilidade/precisão dos relógios de transmissor e do recetor
Neste exemplo a receção não é corretamente realizada devido a um desvio da frequência dos relógios do transmissor e do recetor (frequência do recetor > frequência do transmissor)
Neste exemplo o recetor detetaria dois erros:
Parity Error (se o bit D6 for detetado como 1): o bit de paridade devia ser 0 e é lido como 1
Framing Error: é detetado o nível lógico 0 no instante em que era esperado um stop bit (nível lógico 1)
No recetor é gerado um relógio com uma frequência N vezes superior ao relógio do transmissor (sincroniza a receção a partir desse relógio)
N típicos: 4, 8, 16, 64
Se N = 16
"Start bit", validado ao fim de 8 ciclos de relógio
Restantes bits validados a cada 16 ciclos de relógio
Como referência, a máxima discrepância que poderá ser tolerada entre os relógios do transmissor e do recetor é ∆f ≈ ±3.0%
Exemplo: taxa de transmissão de 115200 bps. Para que a comunicação se processe sem erros:
Frequência ideal no recetor:
Desvio aceitável (∆f ≈ ±3.0%):