Numerösa frågor angående ARINC429 protokoll [stängd]

0

Jag har nyligen gjort betydande framsteg i min förståelse av ARINC429 tack vare en användare på den här sidan, men jag kan ha förvirrat mig lite efter att ha läst mer om det. Vilken hjälp som helst på någon av följande frågor är mycket uppskattad.

  • Jag hittade en specifikation på internet, men det motsätter mig (tror jag) några av de andra uppgifter jag har fått. Länken till pdf är här . Är det säkert att anta att informationen är korrekt nog att lita på? Antag att denna bok är ett korrekt dokument på ARINC429-specifikationen
  • Om ovanstående är korrekt, är det korrekt att BNR-datafält representeras i positivt två komplement med bit 29 som anger dess tecken (positivt / negativt)? Skulle inte det bara vara vanligt binärt med bit 29 som anger värdesignalen?
  • Skalfaktorn gäller från och med MSB (bit 28) och fortsätter att halvera med varje bit mellan 27 och 11. Den faktiska värdetranslationen skulle applicera skalfaktorn till varje sigbit och lägga till värdena för alla sigbitarna tillsammans för att få det slutliga värdet och använda bit 29 för att identifiera om dess +/-. Är något av det korrekta alls?
  • Hur fungerar upplösningen? Jag blev förvirrad mycket av det. Vad är det? Hur påverkar det datafältet?
  • Kan någon förklara BNR-format för datafältet och hur översätter man det? Jag känner att jag kanske har läst för många olika källor och blev förvirrad av variansen i förklaringar .... haha
uppsättning woudie 28.06.2017 17:36

1 svar

3

Upplösningar i A429-specifikationen är ungefärliga, så beräkna dem själv.

Upplösning = Räckvidd / (2 ^ signifikanta bitar)

Här är ett sätt att göra det: Ladda dina 32 bitar i ett signerat 32-bitars heltal. Växla till vänster 3 så att teckenbiten nu är i bit 32. Skift höger (32 signifikanta bitar) -1 för att bilda ett 2: e komplement "fast punkt" -nummer. Konvertera till float och multiplicera med upplösningen. Gjort.

Observera att när ett signerat heltal används används teckenförhöjningen på skiftet till höger.

"Fix-point" är också känd som "skalad" i vissa cirklar. Det är en metod att lagra och utföra matte på ett riktigt tal med ett heltal istället för att använda en flottör. Upplösningen är vikten av en lsb-bit. Upplösningen dokumenteras någonstans och multipliceras med heltalet för att få floaten när felsökning och sådant, men maskinkoden "vet inte" att du tycker om det som en flotta.

Intervallet är nyckeln till fastpunktsantal eftersom det begränsar värdet. Antalet signifikanta bitar påverkar noggrannheten. Du kan använda fel antal signifikanta bitar och får fortfarande ett "användbart" nummer men med en eventuell förlust av noggrannhet om du väljer en som är för liten. Akta dig för att oanvända lågbitar ibland återställs för statusflaggor etc., så förvänta dig inte att dessa alltid är noll. Specifikationerna beskriver också en idealisk standard, men i den verkliga världen tas friheter med etiketter som återställs efter behov.

På grund av sättet 2 kompletterande heltal fungerar det maximala positiva värdet möjligt att vara intervallet minus upplösningen. Till exempel kan du få exakt -180 grader men inte riktigt +180 grader.

    
svaret ges 28.06.2017 21:07