Hallo, für mein neues Projekt muss ich vom PC aus Daten mit einer Übertragungsgeschwindigkeit von minimal 2 Mbyte\s zu einem Controller (wahrscheinlich AVR) übertragen, der sie dann auf eine HDD schreibt. Da bei solchen Geschwindigkeiten die Serielle Schnittstelle nicht mehr reicht, dachte ich an USB. Leider scheint das nicht so einfach zu sein, vor allem von den Treibern her. Hab mich bischen umgeschaut und bin auf den USBN9603 gestoßen, der einen parallelen Mikrocontroller Interface besitzt. Wäre der für meine Aufgabe geeignet und kann ich ihn aus meinen Java oder C Programmen ansprechen ohne mir selbst ein Treiber zu schreiben, denn damit habe ich gar keine Ahnung? Wäre für jeden Tipp dankbar MFG Tobias
> von minimal 2 Mbyte\s zu einem Controller > (wahrscheinlich AVR) übertragen Also gleichzeitig USB rein und IDE raus mit 2MB/sec. Du bist sicher, dass der AVR das hinbekommt?
Ich hab auf der Seite von National Semiconductor gesucht und eine App. Note gefunden ( http://www.national.com/an/AN/AN-1222.pdf ), in der ein Beispielprogramm is. Kanns sein, dass die schon die auf dem PC vorhandenen Treiber verwendet? MFG Tobias
Zwei MByte/sec kannst Du mit dem USBN9603 nicht übertragen, der ist nämlich nur ein USB1.1-Device-Controller. Und mit USB1.1 sind mehr als 12 MBit/sec Brutto nicht möglich. Um 2 MByte/sec zu übertragen musst Du schon USB2.0-Hardware verwenden Ein AVR würde eine derartige Datenrate allerdings sowieso nicht ansatzweise verarbeiten können. Selbst bei 16 MHz Takt hätte der AVR gerade mal 8 Takte pro übertragenem Byte zur Verfügung stehen. Wenn Du tatsächlich eine Festplatte via USB an einen PC anschließen möchtest und nicht auf eine der ungezählten fertigen Lösungen zurückgreifen möchtest, empfiehlt sich der Einsatz einer USB-zu-IDE-Bridge, wie dem CY7C68300, den man beispiel bei Segor beziehen kann. Wenn das betreffende Gerät vom PC getrennt ist, kann der '68300 den IDE-Bus freigeben, so daß Du mit einem Microcontroller auf die Festplatte zugreifen kannst. Das ist ein beispielsweise in einigen Festplatten-mp3-Playern angewandtes Konzept und bietet den Vorteil der sehr hohen Übertragungsgeschwindigkeit des '68300, der -sofern die Festplatte mitkommt- auch 20 MByte/sec übertragen kann. Obendrein ist keinerlei Devicetreiberentwicklung erforderlich, weil der '68300 die "USB Mass Storage Device Class" implementiert, die jedes anständige OS von Hause aus unterstützt. Was exakt möchtest Du Dir da bauen?
Danke für deinen Tipp!!! Das mit dem CY7C68300 is ne gute Idee, denn 15 Mbyte\s gibt meine Festplatte her und des wäre in bezug auf mehrere GB dann doch etwas schneller als die AVR Lösung. ;-) Wird dann die Festplatte mit irgendeinem FAT oder ähnlichem beschreiben/gelesen, oder kann ich die einzelnen Sektoren auf der HDD selber beschreiben und lesen? Bauen möchte ich für zu Hause eine Art Musikserver, der Musik an bis zu 4 Anlagen in CD-Qualität ausgeben kann. Da bei CD-Qualität große Datenmengen anfallen müsste ich halt schnell auf die Festplatte vom PC aus schreiben können, da sonst das laden von neuen CD´s ziemlich lange dauern könnte. MFG Tobias
Der PC gibt das verwendete Dateisystem vor; die USB-zu-IDE-Bridge stellt die Festplatte lediglich als blockorientiertes Gerät vor. Mit Spezialsoftware auf dem PC könntest Du also die Festplatte mit beliebigen eigenen "Dateisystemen" betreiben; sonderlich sinnvoll erscheint mir das aber nicht. Praktischer ist es sicherlich, ein übliches Dateisystem zu verwenden, das von jedem System ohne zusätzliche Software etc. verstanden wird. Das läuft auf FAT32 heraus; NTFS ist nicht wirklich dokumentiert; FAT16 kennt eine maximale Partitionsgröße von 2 GByte (in Ausnahmefällen auch 4, aber das ist sehr rar). FAT32 lässt sich allerdings aus nichttechnischen Gründen nicht ohne Hilfsmittel unter Windows2000/XP mit mehr als 32 GByte Größe anlegen, aber das ist eine reine Willkürgrenze, die auch nur beim Formatieren greift. Du solltest also auf Deinem System FAT32-Unterstützung implementieren. An was für einen Controller hast Du gedacht? Für einen AVR klingen die Anforderungen etwas zu heftig (vier CD-Audio-Streams simultan abspielen, das sind 4 * 174 kByte/sec ...).
Da bin ich auch noch am überlegen. Bis jetzt hab nur überlegt, was der "Server" können sollte und wollte erstmal wissen, ob des mit USB machbar is und jetzt such ich nach nem geeignetem Controller. Ein LPC 21xx wird wohl ned reichen, weil ich gehört hab, dass die vom in/out langsamer als die AVR sein sollen!? Wie wäre es mit einem SX28, die gibts ja bis 75Mhz, nur hab ich damit überhaupt keine Erfahrung. Was könntet ihr mir so empfehlen? MFG Tobias
Anstatt den ATA-Bridge-Chip zu kaufen, würde ich gleich eine fertige Bridge kaufen. Mit 2,5" Gehäuse kostet sowas bei reichelt etwa 10,- und funktioniert bereits. Die Platine dann einfach entnehmen, Gehäuse evtl. weg und dann gleich mit den Dingen in deinem Projekt fortfahren, die man nicht fertig kaufen kann. jörn
Bei der Verwendung einer fertig aufgebauten USB-zu-IDE-Bridge tritt das Problem auf, daß diese bei Nichtverbundensein mit dem PC die IDE-Schnittstelle in Ruhe lassen muss; nicht jeder USB-zu-IDE-Bridgecontroller sieht eine entsprechende Steuerleitung vor, mit der er seine Bustreiber in den Tristate schaltet. Ohne die müsste das aufwendig mit externen bidirektionalen Bustreibern nachgebildet werden, was das bei schnellerer IDE-Ansteuerung (UDMA-Modi) nicht ganz triviale Timing sicherlich durcheinanderbringen würde. Auch bekommt man nicht von jedem auf irgendwelchen Fertigplatinen verbauten Bridgecontrollern ein Datenblatt, um deren Verhalten überhaupt beschrieben zu sehen. Davon abgesehen ist das natürlich keine schlechte Idee ...
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.