Forum: Mikrocontroller und Digitale Elektronik embadded webserver IDE/LAN


von ugly_dan (Gast)


Lesenswert?

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

von Cabal2002 (Gast)


Lesenswert?

>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

von ugly_dan (Gast)


Lesenswert?

@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)?

von Cabal2002 (Gast)


Lesenswert?

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

von ugly_dan (Gast)


Lesenswert?

@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

von mikki merten (Gast)


Lesenswert?

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.

von ugly_dan (Gast)


Lesenswert?

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

von mikki merten (Gast)


Lesenswert?

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

von Popei (Gast)


Lesenswert?

eine alternative wäre der ipc@chip von beck
www.bcl-online.de

von Rainer (Gast)


Lesenswert?

> 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 ;)

von ugly_dan (Gast)


Lesenswert?

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?

von Jonas Hilt (Gast)


Lesenswert?

...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

von Rainer (Gast)


Lesenswert?

@ 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!

von Andreas Jakob (Gast)


Lesenswert?

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.

von Rainer (Gast)


Lesenswert?

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!

von Andreas Jakob (Gast)


Lesenswert?

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 :-) )

von Rainer Kürner (Gast)


Lesenswert?

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.

von Jürgen (Gast)


Lesenswert?

@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?

von Rainer Kürner (Gast)


Lesenswert?

@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!!!

von ugly_dan (Gast)


Lesenswert?

@rainer

danke erst mal für den tip!

kennst du eine bezugsquelle für den controller, bzw infomaterial?

thx in advance.

von Jürgen (Gast)


Lesenswert?

@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!

von Rainer Kürner (Gast)


Lesenswert?

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.

von Rainer Kürner (Gast)


Lesenswert?

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 :-)

von ugly_dan (Gast)


Lesenswert?

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?

von Rainer Kürner (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.