Var börjar jag lära mig om avionikprogrammering? [stängd]

26

Jag är en student i sin sista termin som går för en B.S. i datavetenskap. Jag skulle vilja slutligen övergå till rymdutforskningsindustrin (NASA, SpaceX, Boeing, Lockheed Martin, etc). Jag vet ingenting om avionics och jag vill lära mig mer om ämnet, speciellt programvarans sida. Jag har hittat lite information online. Vänligen ge mig referensmaterial (böcker, webbplatser, etc.) för att lära dig mer om detta område. Din åsikt och ytterligare information välkomnas varmt.

    
uppsättning user2369869 04.12.2014 10:22

8 svar

19

Ok, jag postade detta som en kommentar men blev löjligt lång ...

Jag arbetade för det mesta av mitt yrkesliv på områden som på något sätt är relaterade. Jag kan se att det finns tre studieområden som hjälper dig mycket här.

Första: programmeringsspråk. Att veta ett språk som används i branschen är ett plus. Nu jobbar jag inom bilindustrin / transportbranschen; Jag arbetar inte med säkerhetskritisk material, så vi använder bara standard C / C ++. Även på den nivån är en bra kunskap om programmering och programvara på låg nivå (hur man skriver en enkel drivrutin, hur man interagerar med en enhet som använder ioctl, etc.). Det är mycket användbart.

Innan det arbetade jag på ett fält relaterat till programmeringsspråk och kompilatorer, särskilt om simulering och analys av samtidig kod. Bland de andra har jag kort interaktion med personer som arbetar för Airbus (professorer som är i akademin, men hjälper till att bygga verklig programvara). De ser fortfarande och använder mycket Ada där ute, så .. vet att det är bra :) Jag vet också för ett faktum att Java också används tillsammans med specialverktyg för verifiering av koden.

Som tar oss till det andra: Allt relaterat till verifiering av programvara , både från en teoretisk och praktisk synvinkel, hjälper dig enormt i denna bransch. Studie och övning med runtime monitorer och modell checkers, åtminstone. Lär dig om olika statiska analystekniker, som abstrakt tolkning. Ta klasser om det, om du kan på din skola.

Och tredje: studera och öva med inbyggda system och med (mer sällsynta) realtids OS och hur de fungerar (och hur du programmerar dem). Få dig en arduino eller en netduino (inte en hallon PI - för hög nivå, för många resurser där!) Och träna med dem. Lear om uboot.

    
svaret ges 04.12.2014 17:23
18

Jag misstänker att det enda svaret är "på jobbet".

Lär dig både C och C ++ och lite inbäddad programmering och försök att söka efter några junior positioner i företag som gör avionics som du hittar.

Mobiltelefoner kan egentligen inte betraktas som inbyggda mer, men du borde kunna hitta en kurs i robotik eller cybernetik (industriella kontroller) eller en praktik som involverar dem. En praktikplats med konsumentelektronik kan också hjälpa till.

Och glöm inte flygplanstillverkarna gör sig inte avionics själva utan köper standardmoduler från leverantörer som Garmin eller Honeywell eller underleverantör det till många konsultföretag. Och dessa företag gör ofta också andra typer av inbäddade (bilindustri, industri, etc.).

Anmärkningar: Jag känner fjärran till någon som gjorde avionics och jag tror inte att han specifikt riktade sig till det; han var bara bra C-programmerare och ansökt om ett jobb. Jag själv gjorde lite bilar, jag sökte just igen (junior, det var strax efter examen) C / C ++ jobb i ett konsultföretag som ursprungligen var mobilt och skiftades till bilindustrin, eftersom det ursprungliga projektet inte gick igång.

    
svaret ges 04.12.2014 11:58
8

För avionik kommer följande att vara avgörande för att få ditt CV betraktat: -

  • Goda färdigheter med C
  • Kontrollteori, särskilt statligt utrymme och bortom
  • Närstående till kontrollteori, en stark grund i matematik
  • Erfarenhet av hård realtidsbehandling
  • Upplev att arbeta med kodningsstandarder
  • Kännedom om granskningsprocesser

Följande skulle också vara användbart: -

  • Erfarenhet av Ada, och eventuellt C ++
  • Viss kunskap om säkerhetsrelaterade förfaranden (DO-178B, MISRA, etc.)
  • Kunskap om testdriven utveckling
  • Erfarenhet av gemensamma RTOSer som VxWorks
  • Erfarenhet av programmering på låg nivå på mikrokontroller

Med en BS (inte BIng) i datavetenskap (inte elektronikteknik) kan du vara nackdelen med något av detta. Du måste välja dina projekt för att få rätt erfarenhet du vill ta till arbetsgivare.

Självklart är du dock bara i början av ditt arbetsliv. En examen är bara början, och varje arbetsgivare som anställer akademiker kommer att veta att du behöver träna upp. En bra arbetsgivare kommer att se mer på hur ofta du verkar vara och hur bra de tycker att du kan hämta nya färdigheter. Om du spelar med teknik på fritiden är det förmodligen en bra sak att ta med till intervjuer också.

    
svaret ges 04.12.2014 19:07
7

Jag har en vän som arbetar i Avionics-programvara. Inklusive rymdprojekt.

Han gick in i det genom att söka jobb på företag som arbetar inom det området eller liknande, innan han inte hade någon speciell avionikutbildning eller erfarenhet.

Avionics arbete tenderar att göra mer användning av programmeringsspråk som inte är vanliga. Jag tror att det finns mycket inbyggd C (så allmänna C-färdigheter kan vara användbara), men också processorspecifika montering och språk som Ada (kanske mer för försvarsavionics).

Du är mycket sannolikt att rikta in ett realtidsoperativsystem (RTOS) eller mikrokontroller. Så kunskap om dessa kan vara en fördel. Du kan behöva skriva enhetsdrivrutiner och porta dem till nya plattformar (t.ex. från en mikroprocessor till en annan). Det kan hända att du måste programmera mikrokontroller (t.ex. 8051) i montering eller C.

Det är troligt att du kommer att stöta på en mycket högre stränghet när det gäller att skriva och / eller använda enhetstest, testverktyg, täckningsverktyg, integrationstestning och noggrann formell dokumentation och granskning av allt.

    
svaret ges 04.12.2014 17:56
6

Jag arbetar inte med avionics, men jag har arbetat med fjärranalys i sammanhanget av jordvetenskap.

Jag tror att dessa material kan vara till viss hjälp förutom vad andra har föreslagit, esp. om du råkar vara intresserad av vetenskapliga aspekter (ledsen kan svaret vara något fritt ämne om du inte är).

  • programmering

    Förutom C används Fortran fortfarande mycket för att implementera olika algoritmer och modeller. För mindre uppgifter och visualisering, folk använder ofta Python ( numpy , < a href="http://www.scipy.org/"> scipy , pandas , matplotlib ) och R (R är ett utmärkt statistiskt programmeringsspråk, något du skulle använda istället för Excel för allvarliga saker).

    När det gäller C verkar ingen att säkra kodning verkligen är nödvändigt för sådana höga spelapplikationer. Seacord, 2013 är en stor boka för detta ändamål.

    • Chapman, Stephen J. Fortran 95/2003 för forskare och ingenjörer. McGraw-Hill, 2008.

    • Seacord, Robert. Säker kodning i C och C ++ (2: a upplagan) (SEI-serien inom programvaruteknik). Addison-Wesley Professional, 2013.

    • Matloff, Norman. Art of R Programmering. No Starch Press, 2011.

  • fysik

    Goda grundämnen i fysiken är verkligen avgörande för utforskningen av rymden.

    Många mätningar gjorda i rymden har att göra med strålning, så jag lägger till en referens till det.

  • matematik

    Analys är förmodligen det viktigaste, då linjär algebra.

    Många problem inom design och fysik har att göra med statistik och optimering.

  • Unix / Linux

    Unix operativsystem används mycket i tillämpad vetenskap, inbäddad system och superdatorer.

    • Kerrisk, M. Linux-programmeringsgränssnittet: En Linux- och UNIX-systemprogrammeringshandbok. No Starch Press, 2010.

    • Lucas, MW. Absolut FreeBSD: Den fullständiga guiden till FreeBSD. No Starch Press, 2007.

    • många andra böcker, t.ex. som publicerats av O'Reilly

Vissa dagliga läsningar: phys.org/space-news/ (-;

    
svaret ges 05.12.2014 21:27
5

Lärande C och C ++ har redan föreslagits, och jag skulle också lägga till Ada programmeringsspråk till den listan. Många avionics-programvara är skrivet på de tre programmeringsspråken.

Medan du lär dig C / C ++ kan det också vara till hjälp att lära dig att koda ordentligt enligt kodningsstandarder för flygprogramvara.

Jag rekommenderar att du läser:

Om du vill leka med den faktiska avionikprogrammeringen kan du vara intresserad av att få en öppen källkvadron (som den från AeroQuad ) som en leksak och experimenterar med sin programvara.

    
svaret ges 04.12.2014 17:11
2

Jag föreslår starkt att man tittar på en programvaraanalys och lär sig ett provningssystem som PVS. Jag gick tillbaka till skolan efter 14 år i olika mjukvaruindustrier, och den programvaruanalys som jag tagit har lätt varit den mest ögonöppnade. Det hade inte varit så mycket meningsfullt när jag var i skolan, men efter att ha arbetat i många år klickade materialet. Det var aldrig ett ämne som jag kände att jag skulle njuta av, och det kan vara lite torrt, men när du förstår det ser du aldrig programmering på samma sätt,

    
svaret ges 06.12.2014 02:53
0

Från en liten sökning på nätet har jag hittat den här boken: Utveckling av säkerhetskritisk programvara: En praktisk guide från Aviation Software - Rierson .

    
svaret ges 07.01.2016 17:54