Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Schreibgeschwindigkeit SD-Card Kategorie: Programmierung C (von UlliS - 3.09.2015 14:14)
Als Antwort auf Re: Schreibgeschwindigkeit SD-Card von Volker - 3.09.2015 0:10

> > > > > > > > Hallo,
> > > > > > > >
> > > > > > > > ich verwende den Mega128CAN mit SD-Kartenmodul, Display usw.
> > > > > > > > Bei meiner Anwendung werden alle 10ms 5 Bytes vom CAN gelesen und mit 5 weiteren Bytes (also
> > > > > > > > insgesamt 10 Bytes) in ein ge├Âffnetes File der SD-Karte geschrieben. Das funktioniert auch
> > > > > > > > f├╝r ein paar Sekunden, dann dauert der Schreibvorgang ├╝ber 10ms und das gesamte Programm kommt
> > > > > > > > durcheiander. Ich vermute das passiert immer wenn 512 Bytes voll sind und der Sektor physikalisch
> > > > > > > > geschrieben wird.
> > > > > > > > Ich habe den SPI-Bus auf max Datenrate konfiguriert (fosz/4). Damit m├╝ssten bei 16MHz 4 kByte/ms
> > > > > > > > ├╝bertragen werden. Ich habe schon alle m├Âglichen Abl├Ąufe mit SDC_FSync (auch nach jedem 10 Byte-
> > > > > > > > Paket) versucht. Damit kann ich zwar die ├ťbertragungszeit beeinflussen, komme jedoch nicht unter
> > > > > > > > 10ms.
> > > > > > > > Es kann doch nicht sein, dass f├╝r schlappe 512Bytes mehr als 40kBytes Strukturdaten gesendet werden -
> > > > > > > > oder mache ich einen Granatenfehler???
> > > > > > > >
> > > > > > > > Ich bin f├╝r jede Hilfe dankbar - mir gehen echt die Ideen aus!
> > > > > > > >
> > > > > > > > Danke im Voraus
> > > > > > > > Volker
> > > > > > > >
> > > > > > >
> > > > > > > Hallo Voker
> > > > > > > speichere deine Daten doch erst mal im RAM.
> > > > > > > Wenn dann mal Zeit ist, k├Ânnen die Daten auf die SD geschrieben werden.
> > > > > > > Gru├č Daneie
> > > > > >
> > > > > > Hallo Daneie,
> > > > > >
> > > > > > danke f├╝r den Tip. Es fallen jedoch zu viele Daten f├╝r das RAM an: Die Messung muss bis 20Min ohne
> > > > > > Unterbrechung funktionieren. D.h. es fallen bei 10Bytes/10ms -> 1kBytes/Sec -> 60kBytes/min ->
> > > > > > 1,2MBytes/20Min an. Deshalb kam ich auf die Idee mit der SD-Card. Dass die Daten├╝bertragung so lange
> > > > > > dauert hatte ich mir jedoch nicht tr├Ąumen lassen.
> > > > > > Gru├č Volker
> > > > >
> > > > > Hallo,
> > > > >
> > > > > und wie ist das, wenn man immer 512Byte im RAM sammelt und die Daten in einem thread oder verschickt?
> > > > >
> > > > > Gr├╝├če Joerg
> > > >
> > > > Hallo,
> > > > wie sehen deine Daten aus?
> > > > Ändern die sich alle 10ms oder hast du auch 50-mal hintereinander den gleichen Wert.
> > > > Wenn das so ist k├Ânntest du die Daten komprimieren.
> > > > Man kann 50-mal eine Null (50 Byte) senden oder man kann sagen jetzt kommen 50 Nullen (5 Byte).
> > > > Das gleiche geht auch mit gleichen Datenfolgen.
> > > > Gru├č Daneie
> > > >
> > > Hallo Joerg und Daneie,
> > > bei dem Ger├Ąt handelt es sich um einen sogen. Tripmaster, der in einem Rallye-Fahrzeug dem Beifahrer
> > > haupts├Ąchlich Wegstrecken, Zeit und einige Stoppuhren zur Verf├╝gnung stellt. Nebenbei will ich
> > > Betriebsdaten vom CAN mitloggen. Diese Daten sind also nicht konstant. Es w├╝rde vielleicht reichen
> > > nur alle 100ms zu speichern, aber auch daf├╝r reicht das RAM nicht ├╝ber die Messzeit.
> > > An das ├ťbertragen in einem separaten Threat habe ich auch schon gedacht jedoch bisher noch nie mit
> > > Threats gearbeitet. So wie ich das verstanden habe kann man jedoch nicht in den gleichen 10ms
> > > in einem Threat die Daten erfassen und die Anzeige bedienen und im zweiten Threat Daten ├╝bertragen.
> > > Die Datenerfassung muss aber zwingend alle 10ms erfolgen sonst stimmen Uhren und Strecken nicht.
> > > Wenn jedoch in den gleichen 10ms zwei Threats bearbeitet werden k├Ânnten w├Ąre das die L├Âsung - nur
> > > brauche ich dazu einen Tip ob das geht. Sonst f├Ąllt mir nur noch ein die Daten mit einem selbst
> > > programmierten Protokoll an die SD-Card zu schicken. Sie l├Ągen dann aber nicht in einem FAT-System
> > > vor und w├Ąren nicht mit Windows auslesbar.
> > >
> > > Also wenn Euch noch etwas einf├Ąllt - Danke!
> > > Volker
> >
> > SD-Karten und Timing ist immer problematisch.
> > Schau dir mal SPI SRAM Bausteine an z. B.
> >
> > http://www.conrad.de/ce/de/product/651222/NVSRAM-nichtfluechtiges-SRAM-23LCV1024-IST-
> > TSSOP-8-Microchip-Technology?ref=searchDetail
> >
> Hallo Ulli,
> gute Idee. Muss dann zwar die Datenrate reduzieren um 20 Min messen zu k├Ânnen und das Layout
> ├╝berarbeiten aber so kann es gehen.
> Ich danke Euch allen f├╝r Eure Tipps. Schade finde ich nur, dass sich vom Entwicklerteam niemand
> meldet. Die m├╝ssten doch wissen was an Daten ausgetauscht wird. Mit einer kurzen Antwort w├Ąre dann
> klar ob ich den aktuellen Weg verlassen muss. Aber irgendwie habe ich den Eindruck die C-Control
> stirbt aus.
> Volker

Hi Volker,

in der C-Control wir eine Art von http://elm-chan.org/fsw/ff/00index_e.html SD-Card Lib. verwendet.
Leider sind die Timings bei SD-Cards unterschiedlich und f├╝r deine Anwendung nicht so wirklich geeignet.
Ich w├╝rde den "Umweg" ├╝ber den SRAM machen, evtl. auch nur um die Daten zu puffern (Ringpuffer).
SD-Cards halten auch nicht wirklich lange, wenn Sie so oft beschrieben werden. In den meisten Anwendungen
werden die Daten nur 1x am Tag auf die SD geschrieben (Langzeit Aufzeichnungen).



    Antwort schreiben


Antworten:

Re: Schreibgeschwindigkeit SD-Card (von Joerg - 4.09.2015 14:09)
    Re: Schreibgeschwindigkeit SD-Card (von UlliS - 4.09.2015 16:24)