Hallo, ich habe momentan ein kleines Problem, ich habe mir einen RFID Reader beschafft mit welchem ich Daten Aus einer Karte Auslesen will. Der Reader liefert recht viele Daten z.B. wenn ich Daten aus dem Tag lese. Da ich verschieden viele Daten erfassen will z.B. 250Byte brauche ich einen RX und einen TX Buffer in meinem Controller der das Managt. Die Daten kommen per UART rein bzw. Raus. Wie würdet ihr sowas angehen und wie gehe ich am besten vor um die Daten zu verarbeiten... Ich arbeite auf einem SAM3S1A mit 16k RAM. Dort läuft aber noch ein USB-CDC Drauf. Somit habe ich nicht all zuviel speicher frei. Anbei ein PDF welches die Daten erklärt.
Himmel, was machst du denn mit dem CDC, dass von 16K nicht mehr viel übrig bleibt. Allokier dir einfach den Buffern, den du brauchst und fertig. Wenn es eng wird, kannst du immer noch überlegen, wie du das optimieren willst. Grüße
Zunächst mal würde ich raten, dass Problem in den Details zu klären: 1. Wie viele Daten empfängst Du maximal von den Tags? Die Angabe "z.B. 250 Bytes" könnte bedeuten, dass auch mehr Daten ankommen können. 2. Wie viel RAM-Speicher hast Du noch übrig? Vielleicht reicht er ja. Ist das der Rohwert oder ist da Platz für Stack und sonstige Variablen abgezogen? Da Du uns die Beschreibung der Daten lieferst, liegt die Annahme nahe, das Du vermutest, Du könntest einige Daten beim Empfang gleich, sozusagen "wegwerfen". Das ist eine durchaus gute Idee. Sie setzt aber voraus, dass Du einen recht grossen Überschuss an Verarbeitungszeit übrig hast. Denn Du musst die Daten sofort oder jedenfalls rechtzeitig genug untersuchen können, um die Entscheidung zu treffen, was Du behälst und was nicht. Welche Daten allerdings DU genau aufheben willst und wie viele das sind, können wir nicht wissen. Daher 3. Was geschieht mit den Daten nach dem Empfang?
Hallo, Also 1. Momentan belege ich mit meiner Applikation ink. USB Stack 9964 bytes SRAM. Somit noch gut 6k über. 2. Maximal werde ich momentan ca 1k RX + TX Buffer benötigen um den Inhalt einer Karte zu verarbeiten. Also 1024Byte Nutzdaten von der Karte + 13 Byte Command. 3. USB benötige ich da ich eine Config Schnittelle brauche, momentan nutze ich die auch noch zum Debuggen. 4. Nach dem Empfangen der Daten rechne ich ein Paar Parameter gegeneinander die in den 1024 Byte versteckt sind und prüfe ob die Karten Daten OK sind, ist für ne Zugriffskontrolle. Besten Dank schon mal
Hm. Dann ist Dein Problem also nicht das Du zu wenig Speicher hast. Richtig? Sondern Du fragst danach, auf welche Weise Du Daten verarbeiten kannst. Richtig? Dann erkläre doch einmal was für ein spezifisches Problem Du damit hast. Mal ganz stumpf gesagt: An sich verarbeitet man Daten einfach in dem man eine oder mehrere Variablen miteinander verknüpft und das Ergebnis einer weiteren Variable zuweist.
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.