Hallo Ich habe gerade bei Reichelt den AT 89C5131-S3SIL ersichtet. Dieser hat ein integriertes USB-module und ist der "2.0 Full Speed Compliant". So weit ich weiss müssten dann also die maximale Datenübertragung so um die 480 Mbits/sec sein, also 60Mbytes/sec. Schafft der das wirklich? Ich kenne mich leider mit usb noch nicht sehr viel aus. Deshalb noch folgenden Frage: -Was ist denn die eigentliche Datenübertragungsrate also die reine Datentransfermenge, wenn man die Synchronisationskommunication (ack,etc..) nicht mitzählt? -Ist USB seitens PC Echtzeitfähig? Damit meine ich auch wirklich harte Echtzeit auf Treiberniveau, wo nichts anderes mehr lauft (auch kein anderer interrupt) und wo zum Schwankungungen in der Datenübertragungsrate nicht tolerierbar sind. Weiss jemand was davon? MfG im voraus
Hi Der CPU-Kern läuft mit maximal 24MHz im X2-Mode. Macht bei 6 Takten pro Instruktion 4MIPS max. Würdest du jetzt bei jedem Takt ein Byte auf den USB bekommen sinds also maximal 4MBit was die CPU auf den USB schaufeln kann. Im Datenblatt steht außerdem USB-Full-Speed was 12MBit entspricht. 480MBit sind dann High-Speed. USB Full-Speed schafft erfahrungsgemäß etwa 1MByte/s realen Datendurchsatz. Wo das theoretische Maximum liegt kann ich dir aber auch nicht sagen. Mit einem Isochronous Transfer wird dir AFAIK eine gewisse Bandbreite auf dem Bus garantiert. Da aber schon das OS mit dem man USB typischerweise benutzt (das aus Redmond) nicht Echtzeitfähig ist nützt einem das prinzipiell nichts. Aber hier kommt es dann doch stark auf den Einsatzzweck und die Anwendung an ob das Gesamtsystem als Echtzeitsystem angesehen werden kann oder nicht. Matthias
Vielen Dank Matthias Deine Erklärungen sind sehr aufschlussreich. Die Sache hat sich mit dem zu geringen Datendurchsatz erledigt. Übrigens arbeite ich unter Linux das zwar nicht Echtzeitfähig ist, aber man kann ja einen Treiber schreiben der den Computer monopolisiert und so mit der Brechstange Echtzeitfähig macht. Danke Stephan
"Übrigens arbeite ich unter Linux das zwar nicht Echtzeitfähig ist, aber man kann ja einen Treiber schreiben der den Computer monopolisiert und so mit der Brechstange Echtzeitfähig macht." Linux erlaubt immerhin weiche Echtzeitprozesse. Prozesse policy SCHED_RR oder SCHED_FIFO mit hoher statische Priorität sind für die meisten "weichen" Echtzeitanwendungen völlig ausreichend. Sie werden vor normalen Prozessen immer bevorzugt. Wenn du wirklich harte Echtzeit brauchst, dann nutze RTLinux.
Echtzeit ist eigentlich ein ziemlich schwammiges Wort. Echtzeit in 1 sec, 1 milisec oder 1 microsec Verzögerung kann entsprechend nach Anforderung gedehnt werden. Im Sachen RTLLinux gebe ich dir vollkommen recht. Wobei die RTLinux Threads von der funktionsweise genauso in die module richtung geht. Ich schreibe lieber nur einen Treiber der die Sache löst als das ich ein ganzes System installiere.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.