Wie finde ich eine eingebettete Plattform?

Ein bisschen Hintergrund: Wir haben ein System, das derzeit in Produktion ist, aber der ursprüngliche Programmierer ist verstorben, und der aktuelle Hardwarehersteller kann keine Hardware finden, um das (derzeit) DOS-System auszuführen, also muss ich dies in einer moderneren Plattform neu implementieren . Ich kann nur die Programmierung und die Motherboard-Hardware ändern.

Ich habe in StackOverflow nachgefragt und mir wurde vorgeschlagen, hier zu fragen.

Ich bin neu auf der Seite der Ortungshardware der eingebetteten Programmierung, und nachdem ich von all der Auswahl da draußen völlig überwältigt war (PC104, Arduino, Kaninchen, benutzerdefinierte Boards, eine Zillion Optionen für jedes Board, Beagle, Mengenrabatte, Entwicklungskits, ahhh! !) Ich bitte hier um eine Richtung, die ich aus Ihrer Erfahrung entlehne. (Was würden Sie tun?)

Grundsätzlich muss ich ein neues Motherboard finden und (höchstwahrscheinlich) die Programmlogik neu implementieren. Das Umschreiben in C/C++/Java/C#/Pascal/BASIC ist für mich kein Problem. Also ist mein eigentliches Problem, die Hardware zu finden. An dieses Motherboard werden mehrere andere Geräte angeschlossen. Hier ist eine Zusammenfassung dessen, was ich tun muss:

Softwareanforderungen: Sehr gering. Keine Notwendigkeit für RTOS oder Multitasking, sehr geringe CPU-Anforderungen, ich brauche nur etwas, das ich programmieren kann, und etwas, in das ich einen Remote-Update-Mechanismus einbauen kann (Updates des Codes werden vielleicht 1-4 Mal im Jahr über Modem heruntergeladen).

Erforderliche Hardware:

  • 2 serielle RS232-Ports (einer wird ständig für die primäre Benutzeroberfläche verwendet, der zweite nicht kontinuierlich [es ist ein serieller Drucker])
  • 1 Modem (9600+ Baud ok) [Modem wird gleichzeitig nur mit einem der Geräte mit serieller Schnittstelle (UI) verwendet, daher sind Interrupt-Sharing-Probleme mit einer seriellen Schnittstelle in Ordnung, aber nicht mit beiden]
  • Minimaler dauerhafter/langfristiger Speicher: Was auch immer das Betriebssystem erfordert + 1 MB (ausführbar) + 512 KB (Datendateien)
  • RAM: Minimal, was auch immer das Betriebssystem erfordert, plus vielleicht 1 MB für ausführbare Dateien.

Schön zu haben:

  • USB-Port(s)
  • Ethernet-Netzwerkanschluss
  • Drahtloses Netzwerk

Implementierungssprachen (jedes O/SI passt sich an):

  • Erste Wahl Java/C# (Mono ok)
  • Zweite Wahl ist C/C++/Pascal
  • Drittens ist BASIC

Ok, angesichts all dessen habe ich große Probleme, Hardware zu finden, die dies unterstützt, die kostengünstig ist. Jede Herstellerseite, die ich besuche, hat viele Optionen, und es ist schwer zu erkennen, ob ihr Angebot überhaupt meine Must-Have-Anforderungen erfüllt (zum Beispiel listen sie manchmal 3 "serielle Ports" auf, aber es scheint, dass nur einer der drei RS232 ist , und erwähnen Sie nicht, was die anderen beiden sind oder wie viel es kostet (oder überhaupt möglich ist), es RS232 zu machen). Die Einschränkung Nr. 1 sind die Kosten, Nr. 2 ist die Größe.

Kann mir jemand dabei helfen? Diese kleine Aufgabe hat mich denken lassen, ich hätte mich für EE und nicht für CS entscheiden sollen :-).

Bitte lassen Sie mich auch wissen, ob ich meine Frage besser formulieren kann.

Etwas detaillierter, was Sie in Bezug auf Kosten / Größe suchen. Beispielsweise sind 200 Dollar für manche Leute billig, für andere sind 200 Dollar teuer. Und brauchen Sie es, um in einen 2-Zoll-Raum zu passen, oder wenn es 2 Fuß sind, ist das in Ordnung? Nur einige grobe Anforderungen helfen.
Einige weitere Fragen: Würde das Vorhandensein von Ethernet und/oder WiFi die Notwendigkeit eines Modems beseitigen? Fühlen Sie sich wohl dabei, Level-Shifter anzuschließen, um einen einfachen UART in einen RS232-kompatiblen Port zu verwandeln? Wie viele Module müssen Sie herstellen (wäre ein teureres, einfacher zu verwendendes System sinnvoller als ein Bare-Bones-Kit? Was ist wirklich Ihre Kostenbeschränkung (das ist sehr wichtig!)?
Wie hoch sind Ihre Zielkosten? Was ist Ihre Zielgröße? In welcher Umgebung soll das System funktionieren? Was muss das System eigentlich können? Es hört sich so an, als hätten Sie einen eingebetteten PC, den Sie ersetzen möchten. Sind Embedded-PCs für Ihre Anwendung zu teuer? USB kann ohne großen Aufwand auf RS232 umgestellt werden. Beim Modem bin ich mir nicht sicher. Habe lange nicht mehr gesucht.

Antworten (4)

Ich kenne keine genaue Übereinstimmung mit dieser Spezifikation, aber es gibt einige ziemlich nette eingebettete Linux-Karten, die Ihren Anforderungen entsprechen könnten.

Schauen Sie sich einfach diese Seite an: chiphacker.com - options-for-a-small-linux-hw-platform

Ein Bonus bei der Verwendung von Linux ist, dass Sie die meisten Sprachen verwenden können, aber ich würde die Verwendung von C oder C++ empfehlen. Vielleicht Java, wenn Sie einen JavaVM- Port für die von Ihnen ausgewählte Hardware finden können .

Sie könnten sogar Pascal verwenden, wenn Sie Lust dazu haben (siehe http://www.freepascal.org/ ), aber ich denke nicht, dass es eine gute Idee ist ...

Vielleicht können Sie einen ARM Cortex-M3 verwenden? Die Peripheriegeräte wären kein Problem, aber Ihre Codegröße/Speicheranforderungen könnten es sein. Werfen Sie einen Blick auf das mbed-Board . Es kostet 60 $ (DigiKey) oder 53 € (Farnell) und hat 3 serielle Ports und Ethernet. Es verfügt über 512 KB Flash-(Programm-)Speicher und 64 KB RAM.

Wenn Sie uns mehr Details über das zu ersetzende Gerät mitteilen können, können wir möglicherweise sagen, ob der Flash- und RAM-Speicher ausreicht oder ob Sie nach einem größeren Gerät suchen müssen.

PS. Ich werde versuchen, Ihnen so gut wie möglich zu helfen, aber falls Sie später entscheiden, dass Sie es nicht selbst tun möchten, können Sie sich gerne an mich wenden (ich kann sowohl mit der Hardware als auch mit der Software helfen).

Sie könnten eine JNIB von Ajile Systems ausprobieren.

Ein paar serielle Ports, Ethernet, USB, läuft Java.

http://www.ajile.com/index.php?option=com_content&task=view&id=23&Itemid=53

Ich habe ihre Prozessoren verwendet und sie sind sehr effektiv in der Entwicklung.

Ich verstehe nicht, warum es für Sie schwierig ist, Hardware zu finden, um ein vorhandenes DOS-System auszuführen? Einige ARM-Linux-SBCs könnten für weniger als 100 $ (plus externes Modem) gefunden werden, aber warum all die Probleme mit dem Plattformwechsel durchmachen, wenn die aktuelle Lösung gut läuft? Finden Sie ein x86-SBC-Board als vorübergehende Lösung und ändern Sie die Plattform nur, wenn Sie neue Funktionen benötigen, die mit DOS kaum erreichbar sind. Das Ändern der Plattform und das Neuschreiben von Grund auf ist sehr, sehr zeitaufwändig und kann das gesamte Budget verschlingen, wenn Sie keinen Backup-Plan haben. Und ich glaube, du hast einen. Nur das Googeln mit den Wörtern "kleinstes", "dos", "sbc" gibt genug Treffer, damit Sie anfangen können.