hallo zusammen, mit geistert schon seit langem die idee im kopf rum ein externe festplatte ans LAN zu hängen. das ganze soll natürlich ohne konventionellen rechner passieren; sprich entweder den umweg von ethernet auf ide mittels "embadded-rechner" oder was eher interssant wäre über mikrocontroller. nun die eigentliche frage: gibt es so ein 'interface' auf mcontroller basis schon fertig zu kaufen oder muss ich das selbst basteln??? ps. endziel wäre ein gerät das man irgedwo ans lan hängt, via dhcp eine ip zuweist und ohne weiteren aufwand darauf zugreifen kann. thx in advance
>endziel wäre ein gerät das man irgedwo ans lan hängt, via dhcp >eine ip zuweist und ohne weiteren aufwand darauf zugreifen kann. Von wo aus oder mit welchem Protokoll willst du auf das Dateisystem zugreifen? Von Windows aus mit SMB oder Unix mit NFS. Auf alle Fälle solltest du dir mal diverse Angebote für ein fertiges NAS System anschauen. Zumindest bastelt man das nicht zwischen Frühstück und Mittag zusammen. Schau dir das mal an: http://home.cybervillage.de/heesch/ide.htm Ehrlich gesagt bezweifele ich das ein AVR genug Power hat um das zu schaffen. Gruss Cabal
@cabal protokoll: tcpip , will ja nen webserver laufen lassen. den zugriff auf das file-system (hatte an ext gedacht) erledigt der server. power: sollte ein 32bit controller nicht mit der datenmenge klarkommen (mega128 oder so)?
der atmega128 ist auch nur ein 8bit Controller. Bis auf etwas mehr flash und ein paar IO Ports nicht viel anders als ein 4433. Das Handling einer IDE Platte inclusive File System zu proggen stell ich mir grausam vor. Da kann man bestimmt erstmal 1 Jahr lang Bücher fressen. Wenn ich so etwas unbedingt bräuchte würde ichs entweder fertig kaufen oder wenn schon selbst bauen dann mit einem Embedded PC und Linux drauf. Aber hör dir ruhig noch ein paar andere Meinungen an vielleicht bin ich wieder mal zu pessimistisch. Gruss Cabal
@cabal ...du zerstörst meinen ganzen enthusiasmus ;) hab mir grad ein paar aktuelle mp3-projekte angesehen(mit hdd). http://www.beatbox2002.de/ger/bb_main.html die benutzen zb nen MC68332 von Motorola an dessen datenbus man direkt die platte hängen kann. da bräuchte man doch 'nur' noch das ethernet-interface mit drauf zu schnallen... thx
kommt darauf an, mit welcher Geschwindigkeit du auf die Festplatte zugreifen willst. Wenn dir ein paar kByte pro Sekunde reichen, schafft es auch ein MEGA128 aber für schnelle Zugriffe im MByte Bereich ist doch ein ganz erheblicher Hardwareaufwand erforderlich. Ein ausgemusterter, nicht zu langsamer PC dürfte hier wohl die preiswerteste Lösung sein, zumal hier jede Menge Software zur Verfügung steht.
das mit pc ist keine so gute idee. ich wollte das ding ja in der grössenordnung von einem 3,5" usb-hdd gehäuse haben. wenn man ein 10mbit leitung nimmt müsste das ding gut 500kb/s schaffen... ist schon eine imense datenmenge. gibts da so ne art statistik die beschreibt welche datenmenge von verscheidenen controllern bewältigt werden? ich lese nur immer was von operationen/sec!?!? thx in advance
Ist gibt zwar kleine embedded Instustrie PCs in Platinenform die deinen Wünschen gerecht werden, diese sind allerdings nicht gerade preiswert. Schau mal bei www.msc.de
> Das Handling einer IDE Platte inclusive File System zu proggen stell ich mir
grausam vor.
Ist gar nicht so schlimm, solange es normales Fat12-16 ist ists kein
Problem. Blöder wirds bei Fat32, weil man da ohne dynmische
Speicherverwaltung kaum auskommt.
500kB/s sollten aber mit 8/16-bit kaum möglich sein, weder auf der HD-
noch auf der Ethernet-Schnittstelle.
Zusammenfassung: solche Dinger gibts zu kaufen, also tu dir nen großen
Gefallen und bestell dir ein fertiges ;)
ich wollte eigentlich ohne fat auskommen! wieso ist die datenmenge kaum möglich(platte und ethernet kommen damit klar)? das nadelöhr ist doch der controller der die daten schaufelt, oder?
...ist eigentlich kein Problem. Der AVR schaufelt ohne Probleme Daten von einer Festplatte (auch FAT32!) in einen TCP/IP Controller (z.B. Seiko) oder eine einfache ISA-NE2000 Netzwerkkarte. Ist garnet so aufwendig. Habe (Mache es immer noch...) einen MP3-Player realisiert und da ist das kein Problem. Gruß Jonas
@ Jonas: und welche Datenrate bekommst? Der ideale Transfer: 1 Adressen des Kommandoregisters anlegen 2 Adressen anlegen 3 LBA schreiben #1 4 Write-Strobe 5 Adressen anlegen 6 LBA schreiben #2 7 Write-Strobe 8 Adressen anlegen 9 LBA schreiben #3 10 Write-Strobe 11 Adressen anlegen 12 LBA schreiben #4 13 Write-Strobe 14 Kommando schreiben 15 Write-Strobe 16 Adressen anlegen 17 Status-Register abfragen, ob Platte fertig 18 Adressen anlegen Also 18 + 256*(Datenbyte low lesen+Datenbyte high lesen) Cycles = 530 Cycles im ABSOLUTEN Minimun, davon ausgegangen, dass JEDER Befehl max. 1 Cycle braucht und die Platte wahnsinnig schnell ist. 530 Cycles * ca 100ns/Cycle (ziemlich schneller Controller!) = 53µs. Also braucht man ca. 100ns pro Byte, eine theoretische (!!) Übertragungsrate von 1 MB/s - real wird sie unmöglich zu erreichen sein. Dazu kommt, dass man ja auch wissen sollte, was und wo man liest, also einige Berechnungen mit DWORDs dazu - die dauern verdammt lang! Und so nebenbei sollte noch ein gesamter TCP/IP-Stack mit all seinen Timern und zyklischen Abfragen laufen - zusätzlich der Zugriff auf den externen Ethernet-Treiber, der den Bus sperrt! Mit nem MSP430 wurden über Ethernet ohne (!) zusätzliche Belastung ca. 50kByte/s erreicht, soweit ich das auswendig weiß - also sollte das mindestens ein Faktor 10 mehr sein, und dann noch nebenbei ne Festplatten-Ansteuerung dazu?! Zusammenfassend: Jonas, nett und schön, dass du nen MP3-Player bastelst, aber da sind im Maximum 320kBit/s / 8 = 40kByte/s nötig - ein ganzes Stück Unterschied!
Für nur 50-70 Euro gibts bei http://www.rabbitsemiconductor.com einige Mikroprozessormodule mit - CPU (Z180 Clone) - Netzwerkinterface (Realtek) - 128-512 KB RAM - 256-512 KB Flash-Rom - 2-4 serielle Schnittstellen - Frei programmierbare I/O´s - Uhr, Watchdogtimer etc. Das RCM2200 z.B. ist nur etwas größer als eine Streichholzschachtel und kommt mit Netzwerkinterface für 55 $. Der Haken : Du brauchst den C-Compiler und der ist im Developer-Paket drinne für 250-300 Euro :-( In der Packung is dann aber auch alles drin was man zum sofortigen loslegen braucht. Damit hast du dann die Netzwerkfunktionen in kürzester Zeit programmiert, da der Compiler TCP/IP und vieles vieles andere bereits kann.
Um das Geld kannst dir schon fast nen ARM auf nem Devel-Board zulegen, der je nach Ausführung auch einen Netzwerk-Controller drauf hat. Und daran ist die Festplatten-Anteuerung wieder eher kein Problem mehr!
Ja, leider. Würde die Firma den Compiler billig oder gratis anbieten, würden die Module sicher großen Anklang bei Hobby-Anwendern finden. Das Preis-Leistungsverhältniss der Module ist wirklich unschlagbar (abgesehen von den astronomischen Versandkosten des deutschen Distributors :-) )
Hi Leutz! eine IDE-Platte mit FAT32 an nem MC68332A mit 25 MHz zu betreiben ist gar kein Problem, wenn man sich mit C auskennt! Die erreichbaren Datenübertragungsraten sind (gemessene) 5,33 MByte/s. Programmiert wurde in C mit GNU Compiler mit aggressiven Optimierungen und teilweise von Hand Assembler-optimiert. Bei Anschluß an einen IP-Stack dürften sich wohl so um die 2 MByte/s realisieren lassen, inklusive der ganzen Rechnerei. Also Saft genug für ein 10 MBit LAN.
@Rainer: Deine Zahlen scheinen mir aber doch schwer untertrieben. Alte Sun-Workstationen mit 16MHz-68020ern konnten diese Geschwindigkeiten doch schon locker bringen inklusive Netzwerk und Multiuser/tasking. Zwar mit SCSI, aber heutige Atapi-Platten erfordern da auch nicht mehr Rechenleistung. Insofern sollte bei einem 68332er wesentlich mehr drin sein. Oder betreibst Du die Platte in einem lahmen PIO-Modus?
@Jürgen Hmm, man kann einen 68332 und einen 68020 nicht miteinander vergleichen. Sie besitzen zwar einen ähnlichen Core, haben aber unterschiedliche Busarchitekturen. Beim 68332 läuft der externe Datenbus mit halber Taktfrequenz und 3-Cycle Zugriffen. Somit ergeben sich bei 16 Bit Busbreite folgende maximale Zahlen: max_transfer_rate = ((25 MHz / 2) * 2 Byte) / 3 Zyklen/Zugriff = 8,33 MByte/s Diese Übertragungsrate kann aber nie erreicht werden, da der Bus ja auch RAM und ROM Zugriffe zu tätigen hat. Somit sind die gemessenen 5,33 MByte/s ein ganz guter Wert, wohlgemerkt, da stecken Festplattenzugriffszeit, LBA-Addressierung und ein bißchen Rechnerei drin!!!
@rainer danke erst mal für den tip! kennst du eine bezugsquelle für den controller, bzw infomaterial? thx in advance.
@Rainer: OK, Du hast mir die gewünschte Antwort gegeben, wenn auch indirekt. Du meinst also PIO. Warum aber die Platte nicht in einem DMA-Modus betreiben? Dann kommst Du auf wesentlich höhere Geschwindigkeiten bzw. der Prozi kann nebenbei noch jede Menge anderer Sachen machen. PIO kann man heutzutage nicht ernsthaft mehr in Erwägung ziehen. Das ist doch eine immense Ressourcenverschwendung!
Die Verwendung des PIO macht sehr wohl Sinn: 1. Da der 68332 keinerlei DMA SUpport bietet, würde man einen externen DMA-Controller benötigen (und auch noch Dual-Port-SRAM oder zusätzlichen DMA Speicher!!!). 2. Bei einem externen DMA Controller ergeben sich noch Schwierigkeiten in bezug auf Busarbitrierung und Speicherzugriffe. 3. PIO-Mode 4 bietet max. 16,6 MByte/s. Das ist schneller, als ich auf den RAM zugreifen kann! Warum sollte ich dann nach dem DMA-Modus streben???? 4. Der Einfluß der nötigen Prozessorlast während der Datenübertragung auf die Gesamtleistung ist verschwindend, im Vergleich zu dem Rechenaufwand, der nötig ist, um mit FAT32 und LBA auf die Platte zu kommen. Hier würde DMA nix bringen, insbesondere auch da alle IDE-Befehle zuerst mal im PIO-Mode übertragen werden (ja, auch bei heutigen Rechnern!!!!!!!!!!!!!!!!!!!!) nur Daten werden im DMA übertragen. Also: Es wird zusätzliche Hardware nötig, die nicht mehr so einfach einzubinden ist. Fazit: Mit dem gegebenen System ist eine noch höhere Datenrate nicht möglich, egal welche Verfahren ich verwende.
Bezgugsquellen für den Controller ist z.B www.Spoerle.de, aber nur in größeren Mengen. Infos (Datenblätter) gibts bei Motorola oder auf meiner Seite, www.beatbox2002.de Am besten ist aber wohl das NF300 Modul von www.elektronik.vhf.de geeignet. Es bietet 1MB ROM, 256kB RAM und kostet noch erträglich viel Geld. Fotos davon gibts bei vhf, oder auch auf meiner Seite. Viel Spaß damit :-)
hab mir gard mal die nf300 module angeschaut... sind aber mit guten 160 doch relativ teuer! könnte man nicht 'einfach' einen kompletten embedded rechner nehmen? zb: http://www.comp-mall.de/shop/detail.php3?db=sonderangb&prod_name=Wafer-4821 486/100MHz, LAN und IDE Interface (Preis: 135) wie schauts eigentlich mit der maximalen platten-grösse aus? das hängt doch letztendlich vom FS ab, oder?
Man kann schon nen embedded nehmen, linux oder auch windows drauf, fertig. Nur, dann muß ich nicht zwingend nen embedded nehmen, dann kann ich auch gleich nen alten PC nehmen, das ist noch billiger und vor allem komfortabler. Aber da hat man halt dann selber nicht mehr viel zu tun und es ist auch ein bißchen übertrieben, gleich für jedes kleine Problemchen einen PC zu benutzen. Nicht grade ne minimalistische Lösung, insbesondere, wenns auch noch tragbar sein soll. Außerdem find ich das programmieren und löten recht interessant :-)=) Die Plattengröße ist zunächst mal auf 128 GB begrenzt. Das liegt an der ATA-Spezifikation rev 5. Die erlaubt maximal 28 Bit Breite Sektoraddressen. Ergibt bei einer Sektorgröße von 512 Byte 128 GB Gesamt. Wenn man nun FAT16 verwenden sollte, hat man die Grenze von 2 GB pro Partition. Deshalb FAT32, da liegen die Grenzen bei 8 PetaByte. Somit völlig ausreichend für die maximal nutzbaren 128 GB, die die ATA rev 5 bietet. Das sollte eigentlich auch für alle embedded Anwendungen ausreichen. Und falls doch nicht, kann man ja ATA rev 6 programmieren, ist auch nicht viel mehr, und dann liegt man bei ~130000 Petabyte.
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.