Por que os rótulos ARINC são transmitidos primeiro pelo LSB?

4

Por que as etiquetas ARINC são invertidas antes de serem transmitidas para o destino e o LSB (bit menos significativo) é transmitido primeiro:

  • Rótulo real = 0x58: 0101 1000
  • Transmitido como rótulo = 0x1A: 0001 1010

Existe alguma vantagem específica sobre a transmissão formal e a transmissão reversa de rótulos?

Além disso, todos os sistemas são projetados para paridade ímpar. Por que isso?

    
por Lucky 31.08.2015 / 12:04

2 respostas

Resposta revisada

O quadro ARINC 429 é composto de 4 bytes (32 bits numerados pela convenção 1 a 32 da direita para a esquerda). Os bits 11 a 29, que são a carga útil do quadro, podem representar dados usando formatos diferentes, por ex. dados binários ou BCD. O rótulo é usado para indicar o conteúdo do campo de dados e qual formato é usado e é necessário converter os bits de dados em informações úteis.


ARINC 429 frame usado no formato BCD ( source )

A etiqueta é normalmente escrita como uma quantidade octal (em vez de decimal ou hexadecimal), e. 01010110 2 será escrito como 126 8 ( 01 010 110 ) em vez de 56 16 ( 0101 0110 ) ou 86 10 .

A forma como os bits são numerados de alguma forma torna o rótulo o "byte menos significativo" e o bit 1 o "bit menos significativo". No entanto:

  • O formato acima é para nomear e ordenar informações, mas não informa como os bits são realmente armazenados na memória dos componentes.

  • Na engenharia digital, os bits geralmente são numerados de 0 a 31, já que o número realmente indica o peso do bit: 0 é 2 0 (1), 4 é 2 4 (16). Nesta convenção, o bit 0 é de fato menos significativo que o bit 31.

O barramento de dados ARINC 429 é composto de 2 fios e a referência de terra. Quando um quadro ARINC é transmitido no barramento, ele deve ser serializado, o que significa enviar bits um de cada vez. A ordem de transmissão é:

  • O byte de rótulo transmitido primeiro, "MSB" primeiro: 8-7-6-5-4-3-2-1.
  • Os outros bits são transmitidos primeiro "LSB": 9-10-11 ... 30-31-32.

Então, voltando à sua pergunta, por que não usar a ordem da esquerda para a direita para o quadro inteiro? Ou pelo menos a ordem da esquerda para a direita para o rótulo, se ele for enviado primeiro?

Em Wikipédia :

Like CAN Protocol Identifier Fields, ARINC 429 label fields are transmitted most significant bit first. [...] This notional reversal also reflects historical implementation details.

Portanto, vamos supor que não há razão para inverter os bits de rótulo, além das implementações históricas que desejavam imitar o comportamento do CAN. Na versão francesa deste artigo da Wikipédia, afirma-se que essa inversão ajudou a ler o rótulo ao olhar para um quadro usando um osciloscópio. O MSB que chega primeiro também aparece à esquerda do display (o sinal em um osciloscópio geralmente entra à direita da tela e rola para o lado esquerdo como uma função do tempo):


ARINC 429 bit stream em um datascope ( source )

Estou um pouco perplexo com essa explicação, pois os engenheiros que trabalham com representações binárias são usados para lê-los em ambas as direções com bastante facilidade após um curto período de tempo.

Ainda de acordo com a Wikipedia, o hardware usado para serializar e desserializar a palavra ARINC era realmente insensível à ordem dos bits da etiqueta:

ARINC 429 transceivers have been implemented with 32-bit shift registers. Parallel access to that shift register is often octet-oriented. As such, the bit order of the octet access is the bit order of the accessing device, which is usually LSB 0; and serial transmission is arranged such that the least significant bit of each octet is transmitted first. So, in common practice, the accessing device wrote or read a "reversed label" (for example, to transmit a Label 2138 [or 8B16] the bit-reversed value D116 is written to the Label octet). Newer or "enhanced" transceivers may be configured to reverse the Label field bit order "in hardware."

Sobre paridade ímpar

É usual na comunicação serial digital usar as mudanças no valor dos dados (0 a 1 ou 1 a 0) para derivar uma pista de cronometragem a fim de garantir que o receptor faça a amostragem da tensão da linha no momento certo. Isso é menos caro do que transmitir o sinal do relógio em um fio separado. Como cada bit dura o mesmo tempo, o receptor usa um relógio local que está aproximadamente em sincronia com o relógio de transmissão. Para realmente manter a sincronização a longo prazo, o receptor usa as bordas de subida e descida do sinal para detectar bordas de bit e alinhar fase com seu relógio.


Ressincronização do clock do receptor nas bordas frontal e traseira do sinal

Isso funciona bem se o atraso entre as bordas for curto. Isso significa evitar o envio de séries longas de 0 ou 1. O bit de paridade pode ajudar. Para dados contendo apenas 0 bits (ou 1 bits), o bit de paridade ímpar será 1 (ou 0), evitando que surjam longos fluxos de edgeless.

Em alguns usos de ARINC 429, o bit de paridade não é transmitido e é usado para dados, mas, no entanto, parece supérfluo para sincronização, já que o protocolo de link é de 3 níveis com retorno a zero, assegurando duas arestas para cada bit de dados.


Retornar para código zero ( source )

    
31.08.2015 / 15:23

Eu tenho uma idéia que é usada em outros casos e acho que o motivo neste campo também é o mesmo. Suponha que devemos tomar uma decisão a partir do código ou número de entrada, qual bit de número nos dá mais informações, MSB ou LSB? Claro MSB tem mais informações, especialmente para estimativa de magnitude do número de entrada. Em alguns microprocessadores, os altos bits de códigos de instruções nos mostram o grupo de instruções. Como exemplo, no Z80, se os dois primeiros bits de instrução MSB forem 01 imediatamente, concluímos que temos um registrador para registrar a transferência de dados (LD r, r ’) e podemos preparar o hardware para executar a instrução. Agora, se precisarmos de alguma preparação para o hardware do receptor antes da conclusão dos bits de etiqueta de entrada, preferimos dar os bits MSB no primeiro.

    
05.12.2018 / 19:39