1. Histórico
2. Conceitos básicos
3. Arquitetura
4. Camadas de rede
5. Mensagens - Tipos de quadros
6. Codificação, temporização e sincronização
7. Transferência de mensagens
8. Tratamento de erros
9. Dicionário de dados
10. Conclusão
11. Referências bibliográficas
12. Perguntas

6.Codificação, Temporização e Sincronização (Bit Timming)

6. Codificação, Temporização e Sincronização de Bits

6.1 Codificação

     Na camada de rede o protocolo CAN utiliza NRZ (Non Returno to Zero) como codificação de bit, onde os níveis lógicos são representados por níveis de tensão definidos e permanecem constantes por todo o período do bit. O fato de não haver essa mudança de estado no barramento dificulta a sincronização entre os nós.

     A técnica de violação de bits chamada de bit-stuffing, utilizada no CAN, considera como erro de transmissão quando mais de cinco bits consecutivos forem idênticos. Assim, a cada seis bits é possível prever qual o valor esperado. Além disso, essa regra é importante para a ressincronização dos nós. Caso o nó pretenda transmitir mais do que o permitido, são introduzidos stuff-bits de polaridade inversa (pela camada de ligação de dados), de forma a garantir que de fato não existam mais do que cinco bits com a mesma polaridade no barramento.



Figura 6.1 - Bit Stuffing numa stream de bits

     O CAN permite que o usuário defina a taxa que os bits são amostrados, de forma que seja possível otimizar a rede de acordo com a aplicação.

6.2 Temporização

     O tempo de transmissão do bit deve ser grande o suficiente para que a propagação do sinal aconteça do transmissor até o receptor e volte ao transmissor. O objetivo é que a integridade da comunicação com todos os nós lendo o mesmo valor no barramento seja garantida.

     Para isso, o Tempo de Bit Nominal (NBT), ou bit-time, é definido por segmentos não sobrepostos. Suas durações são múltiplos de unidades de tempo, que chamaremos de TQ. Eles são:



Figura 6.2 - Tempo de Bit

6.3 Sincronização

     "O CAN é um protocolo de comunicação serial síncrono. O sincronismo entre os módulos conectados a rede é feito em relação ao início de cada mensagem lançada ao barramento (evento que ocorre em intervalos de tempo conhecidos e regulares)" Guimarães

     Um nó sincronizado com o barramento está dessincronizado com o emissor. Isso acontece por conta dos tempos de propagação. Para garantir a coerência entre todos os nós da rede é necessário estender o bit-time.

     Os nós utilizam o segmento de sincronização para uma sincronização inicial. Ele é usado para compensar possíveis variações de estado do barramento que acontecem nesse período e também prevê atrasos de propagação e de processamento entre os nós. Todo esse esquema de temporização faz com que os nós esperem a estabilização dos bits levando em consideração seus atrasos para amostrar o barramento e determinar o bit que está no canal.

     Caso um nó verifique uma variação de nível do barramento fora do segmento de sincronização podem ser reprogramados os instantes de amostragem do segmento de fase. Por fim, a soma de todos os atrasos de propagação e processamento do nó mais distante deve ser menor que o segmento de propagação. Quanto maior for o barramento maior serão os atrasos de propagação e o bit-time, dessa forma o ritmo de transmissão máximo será reduzido.

Universidade Federal do Rio de Janeiro - UFRJ
Departamento de Engenharia Eletrônica e de Computação - DEL

Autores: Marina Lacerda, Tamine Alves e Yan Nascimento