Varför sänds ARINC-etiketter först LSB?

4

Varför vänds ARINC-etiketterna innan de skickas till destinationen och LSB (mindre signifikant bit) överförs först:

  • Verklig etikett = 0x58: 0101 1000
  • Sänds som etikett = 0x1A: 0001 1010

Finns det någon särskild fördel jämfört med formell överföring och etikettomvandlad överföring?

Även alla system är konstruerade för udda paritet. Varför är det?

    
uppsättning Lucky 31.08.2015 12:04

2 svar

6

Reviderat svar

Rammen ARINC 429 består av 4 byte (32 bitar numrerade enligt konvention 1 till 32 från höger till vänster). Bits 11 till 29, som är ramens nyttolast, kan representera data som använder olika format, t.ex. binär eller BCD-data. Etiketten används för att indikera innehållet i datafältet och vilket format som används och är nödvändigt för att konvertera databitar till användbar information.


ARINC429-ramsomanvändsiBCD-format( källa )

Etiketten är vanligtvis stavad som en oktal kvantitet (i stället för decimal eller hexadecimal), t.ex. 01010110 2 kommer att stavas som 126 8 ( 01 010 110 ) i stället för 56 16 ( 0101 0110 ) eller 86 10 .

Hur bitarna numreras gör på något sätt etiketten den "minst signifikanta byte" och bit 1 den "minst signifikanta biten". Dock:

  • Formatet ovan är att namnge och beställa information, men berättar inte hur bitar verkligen lagras i komponentminne.

  • I digital teknik är bitar vanligtvis numrerade från 0 till 31, eftersom numret faktiskt anger bitens vikt: 0 är 2 0 (1), 4 är 2 4 (16). I denna konvention är bit 0 faktiskt mindre signifikant än bit 31.

ARINC 429 databussen består av 2 ledningar och markreferensen. När en ARINC-ram överförs på bussen måste den serialiseras, vilket innebär att man skickar bitar en åt gången. Överföringsordern är:

  • Märkbyte skickas först, "MSB" först: 8-7-6-5-4-3-2-1.
  • De andra bitarna överförs sedan "LSB" först: 9-10-11 ... 30-31-32.

Så, tillbaka till din fråga, varför använder du inte vänster till höger ordning för hela ramen? Eller åtminstone vänster till höger ordning för etiketten om den skickas först?

Från Wikipedia :

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

Så låt oss anta att det inte finns någon anledning att vända etikettbitarna, förutom historiska implementeringar som ville efterlikna CANs beteende. I den franska versionen av denna Wikipedia-artikel anges att denna omvändning hjälpte till att läsa etiketten när man tittat på en ram med ett oscilloskop. MSB ankommer först visas också till vänster på displayen (signalen på ett oscilloskop går vanligtvis till höger på skärmen och bläddrar åt vänster sida som en funktion av tiden):


ARINC429bitarsströmpåendataskope( källa )

Jag är lite förvirrad av denna förklaring, eftersom ingenjörer som arbetar med binära representationer används för att läsa dem är båda riktningarna ganska enkelt efter en kort tid.

Enligt Wikipedia är maskinvara som används för att serialisera och av-serialisera ARINC-ordet faktiskt okänsligt för etikettbitarnas ordning:

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."

Om ojämn paritet

Det är vanligt i digital seriekommunikation att använda datavärdesändringar (0 till 1 eller 1 till 0) för att få en klockningsledning för att säkerställa att mottagaren proverar linjespänningen vid rätt tidpunkt. Detta är billigare än att sända klocksignalen på en separat tråd. Eftersom varje bit varar samtidigt, använder mottagaren en lokal klocka som är ungefär synkroniserad med sändarklockan. För att faktiskt bibehålla synkroniseringen på lång sikt använder mottagaren signalens höjnings- och fallande kanter för att detektera bitgränser och fasjustera klockan.


Resynkroniseringavmottagarklockapåfrämreochbakrekanternaavsignalen

Detfungerarbraomförseningenmellankanternaärkort.Detbetyderattmanundvikerattskickalångaseriermed0eller1.Paritetsbitenkanhjälpatill.Fördatasombarainnehåller0bitar(eller1bitar)kommerdenojämndaparitetsbitenattvara1(eller0),förattförhindraattlånglösaströmmaruppträder.

IvissaanvändningaravARINC429överförsparitetsbiteninteochanvändsfördata,mendetverkardocköverflödigförsynkroniseringidethärfalleteftersomlänkprotokolletär3-nivåmedåtergångtillnoll,vilketgaranterartvåkanterförvarjebitavdata.


Återgåtillnollkodning( källa )

    
svaret ges 31.08.2015 15:23
0

Jag har en idé som används i vissa andra fall och jag tror att anledningen till detta arkiveras är också densamma. Antag att vi måste fatta beslut från inkommande kod eller nummer, vilken bit av nummer ger oss mer information, MSB eller LSB? Självklart har MSB mer information speciellt för uppskattning av storleken på det inkommande numret. I vissa mikroprocessorer visar de höga bitarna av instruktionskoder oss instruktionsgruppen. Till exempel, i Z80, om de första två MSB-bitarna av instruktionerna är 01 omedelbart, konstaterar vi att vi har ett register för registrering av dataöverföring (LD r, r ') och vi kan förbereda hårdvaran för att utföra instruktionen. Nu om vi behöver lite förberedelser för mottagarhårdvara innan du fyller i inkommande etikettbitar, så föredrar vi att ge MSB-bitarna först.

    
svaret ges 05.12.2018 19:39