Zitat:
Ein Problem könntest Du mit der PC Schnittstelle kriegen - wie schnell geht die denn maximal ?
Druckbare Version
Zitat:
Ein Problem könntest Du mit der PC Schnittstelle kriegen - wie schnell geht die denn maximal ?
Ich meinte damit natürlich die serielle COM Schnittstelle.Zitat:
Ein Problem könntest Du mit der PC Schnittstelle kriegen - wie schnell geht die denn maximal ?
Die lässt sich bei den meisten PC's maximal auf 115200Bit/sek einstellen und das wäre ja dann zu wenig.
Je höher die Datenübertragungsrate deines Controllers um so kürzer müssen die Ausarbeitungsroutinen und die Datenversorgungsroutinen für die serielle Schnittstelle werden.
Wenn alle Möglichkeiten ausgereitzt sind bleibt noch diese Routinen in Assembler zu schreiben, oder den Code anderweitig zu optimieren.
das ist leider zu wenig für meine Bedürfnisse :( ,schadeZitat:
Ich meinte damit natürlich die serielle COM Schnittstelle.
Die lässt sich bei den meisten PC's maximal auf 115200Bit/sek einstellen und das wäre ja dann zu wenig.
gibt's da eventuell noch ne andere Möglichkeit?
Deine Lösung könnte unter Umständen FT232RL heissen.
Im Datenblatt dieses IC steht:
The FT232R supports all standard baud rates and non-standard baud rates from 300 Baud up to 3 Megabaud. Achievable non-standard baud rates are calculated as follows -
Baud Rate = 3000000 / (n + x)
Und das sollte mehr als ausreichend sein.
Auf welche Geschwindigkeiten sich die beiden verfügbaren Treiber einstellen lassen ist wiederum ein anderes Thema.
Der Treiber arbeitet dann auf einen RS485 Transceiverbaustein ( z.B. SN75176 ), der sein Gegenstück beim Microcontroller findet.
Ich würde aber fast eine Vierdrahtverbindung zwischen Controller und PC machen, weil die RS232 ja auch full Duplex fähig ist.
Was für Daten sind denn das ? Nicht wegen der Neugierde, sondern weil es schon verschieden Komprimierungsmöglichkeiten gibt, wo du dir einiges ersparen kannst.
zu wkrug:
das ganze klingt ja nicht schlecht, aber kann ich damit auch mit den 3 Megabaud mit dem PC kommunizieren?
Es sind wie gesagt Integers im Bereich von 0 bis 255. Ich werde das ganze aber in der Auflösung zurüchschrauben. Das heißt von 0 bis 127, oder sogar nur bis 63, obwohl das schon ziemlich ungenau wird.Zitat:
Zitat von PicNick
Ich könnte also die Übertragung schon beschleunigen, indem ich statt 8 Datenbit nur 7 ober 6 sende.
Wie ich das noch komprimieren kann weiß ich leider nicht.
Eine Möglichkeit, die man auch einem µC zutrauen kann, ist ein verwursteltes Huffmannverfahren. z.B, ganz primitiv:
Ist das nächste Bit ein 0, dann sind die nächsten 6 Bit eine Zahl (0-63)
ist es 1, dann kommen 8 Bit (0-255)
das kann man erweitern, indem man z.B. nur die Differenz zum vorherigen Byte überträgt.
Gibt noch mehr, aber es kommt eben auf die Statistik an.
Das kann ich Dir leider auch nicht beantworten, das ist eine Frage der Treiber und des PC's. Die Bausteine auf jeden Fall können diese Geschwindigkeiten.Zitat:
das ganze klingt ja nicht schlecht, aber kann ich damit auch mit den 3 Megabaud mit dem PC kommunizieren?
Alles in allem kann ich also meine 16kByte ohne Probleme mit Hilfe von RS485 übertragen.
Nur wenn ich das ganze auch noch mit dem Computer verbinden will, siht das schon wieder schlecht aus. :(
Was Währe denn, wenn ich die Daten nicht direkt zum PC sende, sondern zu einem weiteren µC.
Ist es möglich von dem µC aus dann die Daten z.B. über die parallele Schnittstelle zum PC zu senden? Ist die Parallele Schnittstelle dafür schnell genug? Und was fast noch wichtiger ist: Kann ich die parallele Schnittstelle mit Delphi genauso einfach auslesen, wie RS232?
Es gibt von FTDI eine Application Note zu dem Thema Geschwindigkeit.
http://www.ftdichip.com/Documents/Ap..._BaudRates.pdf
Lesen kannst Du ja selber...