Forum: Mikrocontroller und Digitale Elektronik Zugriff auf SD-Karte von zwei Geräten gleichzeitig


von Mario B. (Gast)


Lesenswert?

Hallo...
Mich würde sehr interessieren ob es schoneinmal jemandem gelungen ist 
eine SD-Karte von zwei Geräten gleichzeitig zu Nutzen.
Ich habe vor eine SD-Karte einseitig am Bifferboard zu mounten, um den 
Zugiff aus dem Netzwerk oder Internet zu haben und die gleiche Karte an 
einem Medienendgerät zu betreiben (über usb Cardreader).
Da es in letzter Zeit viele Geräte mit USB Interface gibt wäre es toll 
wenn diese "Netzwerkfähig" bzw. W-Lan oder über VPN Verbindung aus dem 
Internet nutzbar gemacht werden könnten (Inhalt des Speichers).
Ursprünglich dachte Ich daran die Karte einfach über ein Relay (bei 
USB-Stick wären das nur 2 Leitungen) über die GPIO´s vom Biff zu 
schalten..
Anwendungen dafür gäb es beinahe unendlich viele..

leider bin ich noch nicht der Crack was Die Adressierung von SD-Karten 
angeht.. Bekommt die Karte ein Clock Signal von ihrer Quelle??
Könnte man nicht einen µC als Puffer an die Karte hängen der nach Aussen 
hin ein Doppeltes SD-Karten Interface bereitstellt. Im Fall das 
gleichzeitig auf Daten zugegriffen wird könnte er dann sozusagen ein 
writeprotect simulieren.

Danke für Infos falls vorhanden ;-)

Mario

von auchstudent (Gast)


Lesenswert?

sdkarten benutzen den spi bus. les dich ein.

multimaster sollte gehen, takt gibt es da extra, sollte durchaus möglich 
sein mit 2 mastern auf 1 karte (abwechselnd) zuzgreifen.

von Peter II (Gast)


Lesenswert?

es wird an den höheren Protokollen scheitern, sinnvollerweise werden die 
FAT Einträge gecacht, wenn beide System nichts voneindern wissen dann 
zerlegt sich das Filesystem. Wenn man es richtig machen will, müssten 
man ein clusterfähiges Filesystem verwenden.

von Lukas K. (carrotindustries)


Lesenswert?

auchstudent schrieb:
> sdkarten benutzen den spi bus. les dich ein.
Usb Kartenleser und Bifferboard verwenden beide das native SD-Karten 
Protokoll, weleches komplizierter als SPI ist.
Du kannst natürlich die SD-Karte ganz stumpf mit Multiplexern zwischen 
den 2 Hosts umschalten. Dann bekommst du auch keine Probleme mit der 
Datenintegrität.

von Mario B. (Gast)


Lesenswert?

Darauf wird es wohl hinauslaufen.. Werde evtl. jeh nach Clockquelle 
umschalten und das Endgerät nur im Read only (ist ja sowieso meistens 
so) betreiben.. Dann kann auch das Filesystem (Fat32) nicht zerbombt 
werden..
Danke für die schnelle Hilfe...

mfg Mario

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Luk4s K. schrieb:
> Du kannst natürlich die SD-Karte ganz stumpf mit Multiplexern zwischen
> den 2 Hosts umschalten. Dann bekommst du auch keine Probleme mit der
> Datenintegrität.

Nur, wenn die Hosts auch jeweils mitbekommen, daß ihnen die SD-Karte 
"entrissen" wurde, sonst geht die Datenintegrität mit ziemlich hoher 
Wahrscheinlichkeit flöten.

von Peter II (Gast)


Lesenswert?

Mario B. schrieb:
> und das Endgerät nur im Read only (ist ja sowieso meistens
> so) betreiben.. Dann kann auch das Filesystem (Fat32) nicht zerbombt
> werden..
aber was hast du dann davon, wenn das system die FAT ausließt und sieht 
das die karte leer ist, dann hilft es auch nicht wenn der andere die 
Karte beschreibt. Das Readonly system wird einfach nichts auf die Idee 
kommen nach neuem Inhalt zu suchen.

von Mario B. (Gast)


Lesenswert?

Also die Sache wird doch wieder komplizierter..
Naja.. werde wohl nach jedem Schreiben die Karte am Engerät neu anmelden 
lassen.. So würde bestimmt auch jede China Hinterhofklitsche das Problem 
lösen :-)

Danke erstmal für die Anregungen..

von Lukas K. (carrotindustries)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Nur, wenn die Hosts auch jeweils mitbekommen, daß ihnen die SD-Karte
> "entrissen" wurde, sonst geht die Datenintegrität mit ziemlich hoher
> Wahrscheinlichkeit flöten
Das ist mit dem Bifferboard zu bewerkstelligen. Dem 'Medienendgerät' 
verbietet man einfach auf die SD-Karte zu schreiben 
(Schreibschutzschalter im SD-Karten Slot verbiegen)

von Mario B. (Gast)


Lesenswert?

@ Peter II

Das ist wahrscheinlich auch der Grund warum es keine Festplatten gibt 
die sich selbst defragmentieren wenn se mal langeweile haben :)

von Peter II (Gast)


Lesenswert?

Mario B. schrieb:
> Das ist wahrscheinlich auch der Grund warum es keine Festplatten gibt
> die sich selbst defragmentieren wenn se mal langeweile haben :)

das wird ehere daran liegen, das eine Festplatte noch nie etwas von 
Dateien gehört hat.

von Klaus (Gast)


Lesenswert?

Mario B. schrieb:
> Mich würde sehr interessieren ob es schoneinmal jemandem gelungen ist
> eine SD-Karte von zwei Geräten gleichzeitig zu Nutzen.
> Ich habe vor eine SD-Karte einseitig am Bifferboard zu mounten, um den
> Zugiff aus dem Netzwerk oder Internet zu haben und die gleiche Karte an
> einem Medienendgerät zu betreiben (über usb Cardreader).
> Da es in letzter Zeit viele Geräte mit USB Interface gibt wäre es toll
> wenn diese "Netzwerkfähig" bzw. W-Lan oder über VPN Verbindung aus dem
> Internet nutzbar gemacht werden könnten (Inhalt des Speichers).
> Ursprünglich dachte Ich daran die Karte einfach über ein Relay (bei
> USB-Stick wären das nur 2 Leitungen) über die GPIO´s vom Biff zu
> schalten..
> Anwendungen dafür gäb es beinahe unendlich viele..
>
> leider bin ich noch nicht der Crack was Die Adressierung von SD-Karten
> angeht.. Bekommt die Karte ein Clock Signal von ihrer Quelle??
> Könnte man nicht einen µC als Puffer an die Karte hängen der nach Aussen
> hin ein Doppeltes SD-Karten Interface bereitstellt. Im Fall das
> gleichzeitig auf Daten zugegriffen wird könnte er dann sozusagen ein
> writeprotect simulieren.

Das ist alles nicht so einfach. Zu Relay/Multiplexer Ansätzen: Du kann 
die Karte nur zwischen Transmission umschalten. Das mußt du 
synchronisieren. Des Weiteren muß jedem Gerät bewußt sein, wann es 
Zugriff auf die Karte nehmen kann und wann nicht (weil es gerade 
abgeklemmt ist). Auch muss ein Gerät wissen ob es die Karte 
initialisieren kann/darf - dies sollte nur ein Gerät tun. Dein USB 
Cardreader wird darauf bestehen dies immer zu tun, sodass dies Probleme 
geben kann. Auch mußt du bedenken, dass der Controller des Cardreaders 
einen Cache beinhalten kann. Der Controller muss die Chance haben seinen 
Cache auf die Karte zu schreiben bevor sie abgeklemmt wird. Bei einem 
Cardreader gehe ich auch davon aus, dass der native Ansteuermodus der SD 
Karte benutzt wird und kein SPI. Du hast hier mehr zum multiplexen. 
Außerdem denke ich dass du in jedem Fall mindestens 3 Leitungen (CLK, 
MOSI und CS) multiplexen oder als Open Collector zusammenschalten mußt.

...kurz um, so wie du es beschrieben hast würde ich sagen: Vergiß es!

von Sönke (Gast)


Lesenswert?

Moin,

würde das Thema gerne wieder aufgreifen.
Ich würde auch gerne eine SD Karte von 2 Geräten aus nutzen.

Hab echt schon lange gesucht, aber nichts gefunden.
Gibt es da keine Möglichkeit?

Z.b. Kartenleser so umbauen, das er an beiden PC's angeschlossen ist.
Und dann vielleicht per Raspberry steuern welcher PC gerade 
lesen/sachreiben darf.

Es sollen ja nicht beide PC's gleichzeitig drauf zugreifen dürfen, 
sondern es reicht, wenn nur einer zur Zeit zugriff hat.

Jemand eine Idee?

von Karl H. (kbuchegg)


Lesenswert?

Sönke schrieb:

> Jemand eine Idee?

Kauf dir einen 2.ten Kartenleser und steck die Karte um.
Ist billiger, einfacher und funktioniert.

von Michael S. (mikel_x)


Lesenswert?

...der eine PC verwaltet die Karte dediziert und stellt dem anderen nach 
Anforderung ein aktuelles Snapshot bzw. Image zur Vefügung... letztlich 
geht es um die Synchronisierung der Daten und nicht um die 
harwaremässige Doppel-Verwaltung der Karte.
Prinzip: Datenbankengine mit definierbaren Zugriffsprioritäten.

von Dimitri S. (dimitri_s322)


Lesenswert?

Wie wäre es, wenn die Karte von einem Gerät, z. B. einer Kamera, 
gesteuert und befüllt wird, und ich zur gleichen Zeit Fotos mit Hilfe 
von SPI auslese?

von Oliver R. (orb)


Lesenswert?

Nicht anders als vor 10 Jahren, als dieser Thread aktuell war. SPI, 
Multimaster und so.
Und jetzt lass die Leiche ruhen.

von Peter N. (alv)


Lesenswert?

Wie funktioniert das denn? Bekommt der µC eine Rückmeldung, daß die 
Karte bereit ist?

Dann könnte man eine Schaltung bauen, die einem µC nur Zugriff auf die 
Karte erlaubt, wenn CS high ist und dem anderen µC den Zugriff 
sperren...?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter N. schrieb:
> und dem anderen µC den Zugriff sperren...?
Einfach noch einen winzig kleinen Schritt weiterdenken: wie soll denn 
dieses "Sperren" gehen, wenn das ein gekauftes Fertiggerät z.B. eine 
Kamera mit fertiger Software ist?

> Dann könnte man eine Schaltung bauen, die einem µC nur Zugriff auf die
> Karte erlaubt, wenn CS high ist
Lies dich doch einfach mal in das entsprechende Protokoll ein. Da ist 
noch mindestens eine Protokollebene über dem CS. Was, wenn der Eine in 
einem CS-Zyklus das **Kommando** zum Schreiben gibst und mit dem 
nächsten CS-Zyklus die **Daten** schreiben will, aber in der CS-Pause 
zwischendurch der Andere mit dem Kommando **Lesen** loslegt?

Und darüber gibt es dann noch Protokolebenen, wo der Treiber im 
Betriebssystem interne Zustände auf dem Rechner abbildet und 
entsprechend reagiert. Und natürlich falsch reagiert, wenn die Karte 
nicht in dem Zustand ist, der für sie vermutet wird.

Fazit: schon der dritte Post in diesem Thread sagt im Grunde alles.

Dimitri S. schrieb:
> Wie wäre es, wenn die Karte von einem Gerät, z. B. einer Kamera,
> gesteuert und befüllt wird, und ich zur gleichen Zeit Fotos mit Hilfe
> von SPI auslese?
Probiers doch einfach aus. Du wirst einiges dabei lernen. Und du wirst 
herausfinden: das geht nicht. Die Produkte, auf die man anscheinend 
gleichzeitig von 2 Seiten Zugreifen kann (USB-Sticks oder SD-Karten mit 
WLAN) haben intern extra einen Contreoller, der die Zugriffe auf den 
gemeinsamen Speicher verwaltet.

BTW: man muss für so eine Frage nicht einen uralten Zombie ausgraben. 
Und man muss die Frage eigentlich gar nicht stellen, wenn man sich wie 
gesagt selber nur einen Hauch eines Gedanken macht. Oder wenigstens das, 
unter das man seinen neuen Post geschrieben hat, auch mal 
**durchliest**.

: Bearbeitet durch Moderator
von Rüdiger B. (rbruns)


Lesenswert?

Lothar M. schrieb:
> Die Produkte, auf die man anscheinend
> gleichzeitig von 2 Seiten Zugreifen kann (USB-Sticks oder SD-Karten mit
> WLAN) haben intern extra einen Contreoller

Das wre auch meine Lösung.

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.