2010-02-02 10 views
5

Voglio creare un sistema embedded usando Linux simile a E book reader usando il processore ARM9. Non sono un esperto di elettronica ma mi piacerebbe impararlo. Conosco le basi dell'elettronica come transistor, flip-flop, multiplexer. ecc. Adoro il software e vorrei creare qualcosa come un lettore di E-book. È possibile per un ingegnere del software creare un sistema embedded? Non voglio comprare un computer single board disponibile sul mercato, voglio crearlo da solo.Un ingegnere software può creare un sistema embedded?

  • Dove posso ottenere una sorta di tutorial?
  • La mia conoscenza dei sistemi operativi è sufficiente per creare un tale sistema?
+2

Non avete detto * nulla * sulla vostra "conoscenza dei sistemi operativi". – pavium

+0

Conosco il funzionamento di base di ogni sistema operativo ... Quindi posso creare i driver di periferica per Linux. – Sphinx

+0

Probabilmente otterrai i driver di dispositivo dai fornitori della piattaforma. –

risposta

9

La creazione di un sistema richiede la conoscenza di più discipline ingegneristiche. È possibile raggiungere tale obiettivo solo acquistando componenti modulari pronti per l'uso e assemblandoli, e nel caso di un e-book assemblare i componenti modulari non sarà piacevole.

Anche l'apprendimento di una qualsiasi delle singole discipline necessarie richiederà uno sforzo lungo e concentrato.

A (vagamente) indicano le aree problematiche:

  1. hai bisogno di una piattaforma di calcolo del diritto form-factor con tutti i chipset di destra (Apple integrare la propria singola CPU, come di recente, utilizzando hardware disegni di più aziende). Non troverai una piattaforma di calcolo adeguata con il giusto fattore di forma (Ingegnere elettronico: Digitial designer, Analog Designer)

  2. Devi provare a collegare un LCD alla piattaforma giusta e altre periferiche come USB/porta di ricarica/WIFI ecc. ecc. (Ingegnere elettronico, progettista del prodotto)

  3. È necessario creare una custodia per la piattaforma. (Product Designer)

  4. È necessario disporre di un sistema operativo incorporato (potenzialmente in tempo reale) (funzionante sulla piattaforma) adatto alle proprie esigenze. (Programmatore incorporato, Programmatore kernel)

  5. È necessario estendere il sistema operativo in questione per comportarsi nel modo desiderato. (Application Programmer, programmatore Graphics)

La parte più importante è la piattaforma, e ottenere una adatta è molto difficile e molto costoso. L'iphone originale aveva una piattaforma creata da una terza parte acquistata da Apple e utilizzata per applicare i punti 2-5 - e ancora i loro migliori ingegneri impiegarono molto tempo per realizzare un prototipo.

+3

+1 Potresti costruire il tuo lettore di E-Book, ma quando finirai li distribuiranno gratuitamente. –

+0

Hai dimenticato di creare una toolchain gcc per la piattaforma di elaborazione. – mouviciel

+0

@mouviciel aggiunto (funzionante sulla tua piattaforma) al punto 4. –

2

La creazione di hardware incorporato da zero richiede molte competenze e risorse. Sarebbe meglio iniziare con una scheda di valutazione a basso costo per apprendere le basi della programmazione e dell'interfaccia embedded. Questo dovrebbe tenerti occupato per alcuni mesi. Oltre a ciò, i fornitori di CPU incorporati in genere dispongono di progetti di riferimento che è possibile incorporare nel proprio prodotto incorporato, ma a questo punto sarà necessario iniziare a investire un sacco di tempo, sforzi e denaro per realizzare strumenti per la progettazione e lo sviluppo dell'hardware.

0

È possibile acquistare hardware per scaffale per lo sviluppo di software embedded.

PC 104 Boards

+0

Il PC 104 è obsoleto, e sono una maledizione dal punto di vista dell'affidabilità ... quei connettori impilabili si allentano se c'è qualche vibrazione, anche se si blocca le tavole insieme. –

+0

@Andrew quindi hai una raccomandazione? – PeanutPower

+2

Dipende da ciò che vuoi. Routerboard e Ubiquiti sono dei veri e propri router. Il Beagleboard è bello per i lettori multimediali e le cose con l'interfaccia utente, Gumstix è bello se il Beagleboard è troppo grande. Gli Arduino sono buoni se riesci a farla franca con un AVR a 20 MHz. Per le cose più grandi, ci sono molte belle schede basate su Atom da gente come Supermicro e Advantech. –

5
Non

davvero; l'ingegneria dell'hardware è una materia a livello di laurea a sé stante, e per svolgere questo tipo di lavoro sono necessarie almeno tre specialità diverse. Senza contare che il software CAD e le macchine CNC costano molto di più rispetto a gcc, quindi i costi generali degli ingegneri hardware sono enormi.

Tuttavia, è possibile noleggiare quello fatto, per una tassa sostanziale. Oppure puoi utilizzare le schede incorporate e ottenere il design del case fatto per te.

Ad esempio, a beagleboard con these accessories in un caso personalizzato.

Oppure, un Gumstix overo con one of these e one of these in un caso personalizzato.

In entrambi i casi, con alcuni linux incorporati.

Le schede di sviluppo consentono di risparmiare un sacco di tempo e denaro, ma in entrambi i casi, se si dispone del capitale, è possibile ridurle in una scheda personalizzata che farà esattamente ciò che è necessario per la propria applicazione e costa meno in grandi numeri.

Non sottovalutare il design del case; stai guardando la parte più spessa di centomila dollari solo per gli utensili per fabbricare un metallo plastico pressofuso o una cassa di metallo stampato, senza pagare per il lavoro di progettazione.

1

Non è praticamente necessario creare (intendo per saldare) il sistema incorporato. Un buon approccio potrebbe essere quello di acquistare alcune schede controller come thisthis o this. Devi stare attento con la lavagna ma non c'è nulla a riguardo che un software engineer non possa gestire; ha le familiari porte seriali, USB e RJ45 e normalmente avvia già Linux. Trovare la custodia, collegare le periferiche (inclusi i convertitori analogico/digitale o aggiungere alcuni relè alle porte di uscita) è pienamente nella gamma di funzionalità di qualcuno che vuole anche lavorare con l'hardware. Aspettatevi di sviluppare in C.

Problemi correlati