Forum: PC Hard- und Software Grundlegende Frage zu Windows CE


von Harald B. (haraldb)


Lesenswert?

Erstmal ein herzliches Hallo an alle Forumsmitglieder,

da ich für ein spezielles Projekt meine gewohnte Umgebung, die 
Programmierung mit C#, wohl teilweise verlassen muß, habe ich mich hier 
angemeldet in der Hoffnung Unterstützung zu meinen Fragen zu bekommen.
Zur Situation:
Ich möchte gerne eine art Datalogger entwickeln, mit dem ich insgesamt 
256 analoge Spannungen sowie 256 Taster mit den dazu gehörigen 
Zeitwerten aufzeichnen und später wieder genauso abspielen kann.
Als Zeitgeber muß ich SMPTE Timecode auslesen und diese Werte 
gleichzeitig anzeigen und auch als Wert speichern.
Da ich der Meinung bin dies ist mit einem normalen Windows und C# bzw. 
dem .net Framework nicht zu bewerkstelligen ist und auch das .net Micro 
Framework (hiermit habe ich schon kleinere Sachen gemacht), habe ich mir 
gedacht mit Windos Ce müßte ich wohl in die richtige Richtung gehen? 
(habe bei Keith & Koep das SPARK Kit für Windows Emmbedded Compact7 
bestellt )
Da ich für den Timecode Part diesen Chip hier ICS2008B 
www.idt.com/products/getDoc.cfm?docID=18700292 verwenden möchte und 
dieser keine SPI oder I2C Schnittstelle hat, beide Schnittstellen wären 
für Windows CE ja wohl kein Problem, sondern eher eine parallele 
Schnittstelle besitzt, und Windows CE Boards, soweit ich das bis jetzt 
gesehen habe eher mit wenigen IO Pins ausgestattet sind stellt sich für 
mich die Frage, ob ich vor den ICS2008B noch einen Microcontroller 
setzen muß/sollte, der sich um den Timecode Part kümmert? Für den Logger 
bräuchte ich ja eigentlich nur den Impuls, sobald ein neuer Frame 
eingegangen ist, sowie dessen Wert, um das Scannen der 256 ADC sowie der 
Taster (ich nehme an das macht man mit Schieberegistern) zu starten. Das 
Scannen möchte ich mit einem Schaltkreis aus Multiplexern , über 
SPI(Adressierung des jeweiligen Eingangskanals 8bit und  einlesen des 
dazugehörigen Wertes 10bit) aus Windows CE herraus bewerkstelligen. Da 
dies min. 30 mal pro sec geschehen muß, ist die Zeit halt etwas eng (ich 
hoffe nur aus meiner Sicht).
Das ich meine C# Welt teilweise verlassen und auch etwas in C/C++ und 
dann mit P/invoke oder ähnlichem machen muß ist wohl nicht zu umgehen, 
oder? Aber wie weit muß ich gehen?
Was ist mit Windows CE hardwarenah möglich? Muß ich teilweise, wie oben 
schon erwähnt mit einem anderen Prozessor zeitkritische Funktionen 
abhandeln?
Ich möchte das gesamte Projekt jetzt ersmal nicht weiter ausführen, um 
diesen ersten fragenden Beitrag nicht zu lang zu machen, aber wenn 
weitere Angaben benötigt werden kann ich diese gerne noch nachreichen.
Für Ratschläge und oder einer Einschätzung des Auswandes und der 
benötigen Technik (Hard- und Software) wäre ich sehr dankbar.

Gruß Harald

von Lukas K. (carrotindustries)


Lesenswert?

Weshalb genau brauchst du ein 'hohes' Betriebssystem, wie Windows CE? 
Alles was ich in deinem Beitrag lese, kann auch ein kleiner 8/16bit µC. 
Worauf soll denn aufgezeichnet werden?

von raketenfred (Gast)


Lesenswert?

Hast du mal ausgerechnet, wieviele Daten du da generiest?!

256*10bit die ADC+256*1bit die Taster
2816bit*30Hz=84.480bit/s

Das sind 10KB/s das ist nix- dafür würde ich mir nicht WindowsCE antun, 
sondern nen einfachen AVR+SD-Karte+Peripherie bauen

oder hast du andere Verpflichtungen wegen WinCE?!

von Harald B. (haraldb)


Lesenswert?

Hallo, und erstmal vielen Dank für die schnelle Rückmeldung (ich habe 
wohl schon mal die richtige Community gefunden!!!)
Warum Windows CE? ->
Da noch weitere Funktionen wie unterschiedliche Bildschirmausgaben, 
Kb/Mouse Steuerung mit GUI usw. hinzukommen und ich das ganze Gerät 
später vielleicht in Teilen auch als USB Device (Schnittstelle zur PC 
Welt) ansprechen will/muß, dachte ich diese Teile, da nicht zeitkritisch 
in meiner gewohnten Sprache C# schreiben zu können (Zeitersparniss). 
Deshalb habe ich mir Windows CE als Brücke zwischen den beiden Welten 
vorgestellt und ich hätte dann auch ein konfigurierbares Betriebssystem 
in dem der User nichts kaputt machen kann. Nicht das ich Angst vor C/C++ 
hätte, aber man muß ja nicht alles können. Ich habe mir hier die 
Tutorials zu AVR programmierung angeschaut und glaube ich würde das 
schon hinkriegen, aber halt nur in kleinen Happen, vorallem, da man wenn 
ich dass richtig verstanden habe den Code nicht so einfach debuggen 
kann, wie ich es z.B. aus Visual Studio gewohnt bin. Was ich da beim 
erstellen jetzt genau für was bräuchte und was es dann kostet bzw. was 
kostenlos ist habe ich bei der Fülle an Informationen auf dieser Seite 
leider noch nicht so ganz verstanden.
Worauf soll denn aufgezeichnet werden? ->
Ich dachte an USB Stick oder Karte, wobei, da nur 1-3h aufgezeichnet 
werden, die Daten auch erst nach Beendigung der Aufzeichnung auf ein 
nicht flüchtiges Medium geschrieben werden müßten, um sie später wieder 
einlesen zu können.

Gruß Harald

von Lukas K. (carrotindustries)


Lesenswert?

Mach's doch so: Lass einen AVR bzw. MSP430 die Aufzeichnung übernehmen 
und dein Embedded System macht nur die zeitunkritische Darstellung. Alle 
Tools zur Entwicklung mit den AVR bzw. MSP 430 sind kostenlos. Debuggen 
geht auch halbwegs komfortabel.  Spätestens wenn du ein Gerät mit 
Windows CE verkaufen willst, wird's teuer. Außerdem dürftest du in 
diesem Forum hier deutlich mehr Leute finden, die von embedded Linux 
Ahnung haben, als von CE.

von Harald B. (haraldb)


Lesenswert?

Hallo Luk4s K.,

... Windows CE verkaufen willst, wird's teuer.->
Nach Auskunft von Keith & Koep kostet mich so ein Trizeps IV - Marvell 
Xscale PXA270 Modul ca. 100,- € incl. BSP + max. 12,-€ CE-Licenz Kosten.
Ein Evaluation Board hätte ich ja mit dem Spark Kit für 126,-€ schon.
Damit könnte ich leben, da mein Gerät kein Massenprodukt werden soll und 
ich somit die Kosten weitergeben könnte (wenn ich es zu laufen bekommen 
würde). Da ich dann aber mit dem .net Compact Framework arbeiten 
kann(bekanntes Terrain), erspare ich mir eine Menge Lehrnarbeit. Einen 
Umstieg auf Linux stelle ich mir sehr zeitaufwendig vor (habe mich damit 
noch nie beschäftigt und auch mit Mono habe ich keine Erfahrung).
Oder, kann ich da bei den Kosten was falsch verstanden haben?

von Lukas K. (carrotindustries)


Lesenswert?

Ah, da bei dem Board CE schon mit dabei, dann geht's ja halbwegs. Du 
meintest was von Tastatur und Maus (Bildschirm dann auch?). Dann wäre so 
was wie das Pandaboard geschickter, da hat schon alle erdenklichen 
Schnittstellen. CE sollte auch drauf laufen.

von Arc N. (arc)


Lesenswert?

Luk4s K. schrieb:
> Ah, da bei dem Board CE schon mit dabei, dann geht's ja halbwegs. Du
> meintest was von Tastatur und Maus (Bildschirm dann auch?). Dann wäre so
> was wie das Pandaboard geschickter, da hat schon alle erdenklichen
> Schnittstellen. CE sollte auch drauf laufen.

Für den Preis (Gehäuse fehlt da noch) bekommt man auch einen Barebone 
mit Intel Atom + RAM und HDD (z.B. Foxconn nt425) oder nimmt für ~50€ 
ein Atom-Mini-ITX-Board und verpackt das (Vorteil: Ganz normaler PC, 
ADC/Timecode-Teil dann mit einem der üblichen Verdächtigen AVRs, PIC24, 
Cortex-Mx...)

von Harald B. (haraldb)


Lesenswert?

Ich mußte mir jetzt erstmal Gedanken zu dem Pandaboard bzw. einem 
Barebone Pc machen. Das Pandaboard wäre natürlich ideal, wenn ich das 
ganze mit Linux machen würde, für CE bräuchte ich ja ein BSP für dieses 
Board welches es wahrscheinlich nicht gibt und selber alle Treiber 
schreiben usw. würde wohl zu weit führen. Ja, einen Bildschirm müßte ich 
auch anschließen können und zusätzlich noch mindestens x 7-Segment 
Anzeigen für die Zeit.
Bei einem Barbone Pc müßte ich auf ein Windows Desktop Betriebssystem 
zurückgreifen, das kostet auch und ist kein Echtzeit System.
Die Steuerung des ICS2008B s.o. macht mir Sorgen, ich brauche ihn für 
die Syncronisation beim einspielen(neuer Frame value xy eingegangen -> 
Scannen los) und muß ihn auch bei einem anderen Vorgang Timecode 
generieren lassen und dafür muß ich ihm jedesmal den Wert geben usw. und 
ich weiß nicht, ob solche Operationen schwer zu schreiben sind auf einem 
AVR oder dergleichen. Deshalb dachte ich halt, ich mache soviel wie 
möglich mit C#, p/invoke mit einer C/C++ dll (die ich natürlich 
schreiben müßte) bzw.einem zusätzlichen Treiber für CE, sodass ich eine 
Grenze zwischen für mich Neuland und Altbekanntem bekomme. Allzuviele 
Funktionen wären ja für den ICS2008B nicht zu schreiben. Aber 
wahrscheinlich gehe ich das ja doch alles falsch an. Vielleicht könnte 
ja jemand netter weise mal einen kurzen geschulten Blick in das pdf des 
ICS2008B werfen
http:\\www.idt.com/products/getDoc.cfm?docID=18700292
und mir sagen, ob ich da richtig liege zu denken, den könnte ich mit 
zwei 8bit Schieberegistern (einer für IO, einer für die Steuerung, die 
Register mit SPI Schnittstelle) grundlegend bzw. vollständig bedienen.
Das wäre sehr sehr nett.
Denn, wenn dem so wäre würde ich halt dann, soweit möglich, das meiste 
über SPI vom Embedded System aus steuern (so meine Vorstellung). Da 
wären dann das Multiplex Board mit dem ADC, eins mit einem DAC zum 
abspielen, eins für die Taster und Leds und eins mit dem ICS2008B für 
den Timecode.
Ich hoffe das ist nicht allzu illusorisch gedacht.

von Lukas K. (carrotindustries)


Lesenswert?

Lass den ganzen Echtzeitkram doch einen kleinen 8-32bit µC(MSP430, AVR, 
PIC, ARM etc.) machen und der PC holt von dem µC gelegentlich die Daten 
(via USB oder so) ab und verarbeitet sie und so. Die 7-Segment-Anzeige 
macht de µC dann noch nebenher.

von Harald B. (haraldb)


Lesenswert?

Da so oder so ein µC einen Teil der Arbeit machen muß, sollte ich mir ja 
erstmal ein Eval Board besorgen. Welchen µC sollte ich nehmen und 
welches Board dazu, wenn ich einigermassen zukunftssicher in Sachen 
Leistung des µC und komfortabelm Debuggen sein will. Der Preis ist 
erstmal zweitrangig, da Zeit Geld ist und ich glaube gerade am Anfang 
ist das Debuggen sehr wichtig (Einzelschritte beim Debuggen). Es sollte 
auch nicht zu kompliziert sein später den µC mit Usb von einem Pc oder 
Embedded System anzusprechen (vielleicht gibt es ja µCs die dafür 
besonders gut geignet sind). Auch hier gilt bei mir, dass der preis für 
den reinen µC nicht ausschlaggebend ist, da es eh kein Massenprodukt 
wird. Und er sollte natürlich für meine obigen Anforderungen tauglich 
sein mit Luft nach oben.
Ich habe mir das AVR Starterkit hier aus dem shop angeschaut und frage 
mich ob ich damit das gleiche machen kann wie z.B. mit dem AVR STK 500, 
vorallem was das Debugging angeht. Das Borad von Pollin soll ja nicht so 
toll zum Debuggen sein, wenn ich das richtig gelesen habe.

von Arc N. (arc)


Lesenswert?

Harald Becker schrieb:
> Da so oder so ein µC einen Teil der Arbeit machen muß, sollte ich mir ja
> erstmal ein Eval Board besorgen. Welchen µC sollte ich nehmen und
> welches Board dazu, wenn ich einigermassen zukunftssicher in Sachen
> Leistung des µC und komfortabelm Debuggen sein will. Der Preis ist
> erstmal zweitrangig, da Zeit Geld ist und ich glaube gerade am Anfang
> ist das Debuggen sehr wichtig (Einzelschritte beim Debuggen). Es sollte
> auch nicht zu kompliziert sein später den µC mit Usb von einem Pc oder
> Embedded System anzusprechen (vielleicht gibt es ja µCs die dafür
> besonders gut geignet sind). Auch hier gilt bei mir, dass der preis für
> den reinen µC nicht ausschlaggebend ist, da es eh kein Massenprodukt
> wird. Und er sollte natürlich für meine obigen Anforderungen tauglich
> sein mit Luft nach oben.

Für die Ansteuerung des ICS2008B würde ich einen Controller mit externem 
Speicherinterface bzw. dem für so was auch gut nutzbaren PMP (Parallel 
Master Port, Microchip) nehmen (auch wenn das jeder Controller mit 
seinen normalen Port-Pins ansteuern könnte). D.h. AT32UC3A0 o. 
AT32UC3A3, ATxmega...A1, ATmega, PIC24FJ...GB, PIC32MX.... oder je nach 
Vorlieben einen 8051er, Cortex-M3 etc.
Die genannten AVR32 (AT32...) haben allen USB integriert, ebenso wie die 
PIC24FJ...GB und der größte Teil der PIC32MX. Ansonsten könnte man das 
auch mit einem FT232R/FT245R o.ä. lösen.
Persönlich würde ich AVR32, PIC24 oder PIC32 nehmen, da diese imo die 
besseren Bibliotheken zur Ansteuerung der Peripherie (inkl. USB, 
Ethernet, TCP/IP etc.) direkt vom Hersteller haben.

> Ich habe mir das AVR Starterkit hier aus dem shop angeschaut und frage
> mich ob ich damit das gleiche machen kann wie z.B. mit dem AVR STK 500,
> vorallem was das Debugging angeht. Das Borad von Pollin soll ja nicht so
> toll zum Debuggen sein, wenn ich das richtig gelesen habe.

Ob der USBProg mittlerweile voll zum Debuggen geeignet ist -> Forum 
fragen
Günstig: AVR Dragon oder PICkit3, wenn Geld weniger eine Rolle spielt: 
AVR JTAGICE3, AVR ONE! bzw. ICD3, REALICE

von Harald B. (haraldb)


Lesenswert?

Hallo,
ich habe mich jetzt schon mal auf AVR festgelegt und habe nach 
recherchieren doch noch eine Frage zum Entwicklungskit.
Möglichkeiten:
1. EVK1100 + AVR Dragon, dann hätte ich einen Programmer und könnte den 
AT32UC3A bedienen, aber der scheint ja auch für mein Vorhaben mehr als 
genug zu können.
2. STK600 + ATSTK600-UC3-144 Adapter + µC , dann hätte ich jedoch 
erstmal nur die 8 Taster und Leds und müßte die Peripherie aufbauen.
Verstehe ich es richtig, dass das STK600 ein AVR Dragon vollwertig 
ersezt? Hätte ich damit alles, was man so braucht?
Vorteil von 2. sehe ich in der Anzahl der unterstützten µC.

von Arc N. (arc)


Lesenswert?

Harald Becker schrieb:
> Hallo,
> ich habe mich jetzt schon mal auf AVR festgelegt und habe nach
> recherchieren doch noch eine Frage zum Entwicklungskit.
> Möglichkeiten:
> 1. EVK1100 + AVR Dragon, dann hätte ich einen Programmer und könnte den
> AT32UC3A bedienen, aber der scheint ja auch für mein Vorhaben mehr als
> genug zu können.

Der könnte alles erledigen...(Rechenleistung ist deutlich höher als beim 
A4000T, falls den noch jemand kennt...).

> 2. STK600 + ATSTK600-UC3-144 Adapter + µC , dann hätte ich jedoch
> erstmal nur die 8 Taster und Leds und müßte die Peripherie aufbauen.
> Verstehe ich es richtig, dass das STK600 ein AVR Dragon vollwertig
> ersezt? Hätte ich damit alles, was man so braucht?

Wenn In-Circuit-Debugging genutzt werden soll, nein. Das STK600 kann die 
Controller nur programmieren, debuggen nur ganz klassisch über Port-Pins 
und Ausgaben auf die seriellen etc. Schnittstellen.

> Vorteil von 2. sehe ich in der Anzahl der unterstützten µC.

von Harald B. (haraldb)


Lesenswert?

An Arc Net,
danke da hätte ich schon wieder was übersehen.
Also ein AVR Dragon brauche ich wenn ich vernüftig debuggen will in 
jedem Fall?
Liegt der Unterschied zu den teureren Varianten One!, JTAGICE3 nur in 
der Geschwindigkeit?
Was wäre eine vernünftige Lösung für ca. 200,- bis 400,- euro?
p.s.: ich habe mir hier die Einführungen angeschaut und beschäftige mich 
jetzt drei Tagen mit der Zusammenstellung der Entwicklungsumgebung, ist 
dass normal? (bei Windows CE war es ähnlich)

von Lukas K. (carrotindustries)


Lesenswert?

Harald Becker schrieb:
> auf AVR festgelegt

Die AT32* sind AVR32, die haben außer den Namen nichts mit den 8 Bit 
AVRs gemein.

von Harald B. (haraldb)


Lesenswert?

Ok, ich meinte allgemein die Produkte von Atmel (AVR + AVR32) und habe 
mich falsch ausgedrückt.
Ich werde mir jetz wohl ein STK600 + AVR Dragon besorgen und erstmal mit 
dem beiliegendem ATmega2560 anfangen.
Das ist aber eine vernünftige Lösung, oder?
Aufjedenfall schonmal ein großes dankeschön an die die mir hier 
geantwortet haben!

von Arc N. (arc)


Lesenswert?

Harald Becker schrieb:
> Ok, ich meinte allgemein die Produkte von Atmel (AVR + AVR32) und habe
> mich falsch ausgedrückt.
> Ich werde mir jetz wohl ein STK600 + AVR Dragon besorgen und erstmal mit
> dem beiliegendem ATmega2560 anfangen.

der 2560 hat kein USB...

> Das ist aber eine vernünftige Lösung, oder?
> Aufjedenfall schonmal ein großes dankeschön an die die mir hier
> geantwortet haben!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.