Hallo, im Rahmen eines größeren Projekts möchte ich Daten per CPFSK über eine DC-Stromleitung übertragen. Mittenfrequenz soll bei Fc = 40kHz liegen, der Modulationshub bei 2 2/3 kHz, was dann eine Symbolrate von 5 1/3 kHz ergibt. Für die Demodulation würde ich am liebsten das delay-Verfahren von Dennis Seguine nutzen, das die FSK in eine Amplitudenmodulation wandelt: https://dx.eng.uiowa.edu/eedesign/fskcorr.pdf. Der große Vorteil dieses Verfahrens gegenüber der klassichen synchronen Demodulation ist, dass es keine aufwändige Synchronisierung benötigt. Die Demodulation soll schematisch so ablaufen: Sampling mit 160 kHz (4*Fc), Multiplikation des Signals mit einer um (2n-1, n=1,2,3,..) Abtastschritte verzögerten Kopie von sich selbst, Tiefpassfilterung mit Eckfrequenz knapp über der halben Signalrate. Das Ergebnis kann dann mit einem Komparator digitalisiert und als Bitfoge ausgewertet werden. Ich habe das Verfahren in Matlab programmiert und mit diversen, real aufgenommenen Signalen getestet. Ich würde jetzt gerne eine Schaltung entwickeln, die die Decodierung - und die Codierung - ohne PC erledigen kann. Dabei soll unter anderem auf die Hardwarekosten und den Stromverbrauch geachtet werden. Ich habe mehrjährige Erfahrungen mit 8bit und 32bit Controllern aus der PIC-Familie und kenne mich in digitaler Signalverarbeitung gut aus, habe allerdings noch nie mit DSPs gearbeitet. Eine erste Schätzung ergab, dass ein 8bit Controller mit der Aufgabe höchstwahrscheinlich überfordert sein wird, vor allem wegen der langsamen Multiplikation und dem fehlenden DMA. Meiner Meinung nach wäre ein dsPIC für diese Aufgabe prädestiniert. Zudem gibt es hier Modelle mit DAC und PGA, Bauteile, die sonst extern angeschlossen werden müssten. Gibt es noch andere DSPs, die für ein derartiges Aufgabenspektrum geeignet sind, und auch preislich in einem ähnlichen Rahmen liegen? Und noch eine grundlegende Frage: Wie werden DSPs programmiert? Ist das wie gewohnt in C möglich oder muss ich dazu Assembler lernen?
Mike schrieb: > Wie werden DSPs programmiert? Ist das wie gewohnt in C möglich oder muss > ich dazu Assembler lernen? DSPs sind schwierig zu programmieren. Ich würde mir mal die ARMs anschauen, die sind schnell und günstig. Mike schrieb: > Ich habe das Verfahren in Matlab programmiert und mit diversen, real > aufgenommenen Signalen getestet. Einen µC oder einen FPGA, der zum Matlab-Codegenerator kompatibel ist?! Würde mir wirklich mal die ARM-µCs anschauen, bevor ich an DSPs denke...
ein dsPIC ist sicher die richtige Wahl. Und ja genau, es muss eine DMA Maschine sein. Nein, die sind nicht so schwierig.
dsPICs sind alles andere als sparsam beim Verheizen von Leistung. Da wuerde ich eher einen von TIs DSPs empfehlen (TMS320C5000). Davon gibt es einige auch in QFP falls BGA einem nicht so liegt. Solange die Algorithmen nicht allzu zeitkritsch sind, wird Mann sicher auch in C klarkommen. Richtig juckig macht Mann den DSP aber eher in Assembler, wenn Mann an so DSP-Features wie parallele Instruktionen und spezielle Adressierungsarten denkt.
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag #5034391: > Solange die Algorithmen nicht allzu zeitkritsch sind, wird Mann > sicher auch in C klarkommen. > Richtig juckig macht Mann den DSP aber eher in Assembler, > wenn Mann an so DSP-Features wie parallele Instruktionen und > spezielle Adressierungsarten denkt. Alles richtig, aber für sowas einfaches reicht auch ein normaler ARM-µC Einfacher zu programmieren, günstiger in der Anschaffung und immer noch schnell genug.
> für sowas einfaches reicht auch ein normaler ARM-µC Fuer > Sampling mit 160 kHz (4*Fc) > Multiplikation des Signals mit einer um > (2n-1, n=1,2,3,..) Abtastschritte verzögerten Kopie von sich selbst + Filter wird sich der TO schon Muehe geben muessen. Das N hat er ja gekonnt hinter einem .. versteckt. Vieles von dem, worum Mann sich in C auf einem ARM selber kuemmern muss, uebernimmt auf einem DSP die flexible Adressierungslogik die obendrein noch parallel zur Befehlsausfuehrung vor sich hinwerkelt. Vielleicht haelt uns ja der TO ueber seine Anstrengungen auf dem laufenden.
Moin, schau dir doch mal die Blackfin (ADSP-BF5xx) an. Bisher die IMHO pfiffigste Architektur in dem Bereich und was DMA und Stromsparen angeht immer noch sehr gut im Rennen im vgl. mit STM-Cortexen. Den BF529 gibt's ab 2 Dollar..
Der Nachteil der Blackfin ist der hohe Preis der Entwicklungsumgebung. Sonst sind sie super, was die Spezifikationen betrifft...
>schau dir doch mal die Blackfin (ADSP-BF5xx) an. Bisher die IMHO pfiffigste Architektur in dem Bereich und was DMA und Stromsparen angeht immer noch sehr gut im Rennen im vgl. mit STM-Cortexen. Den BF529 gibt's ab 2 Dollar.. Ja, Leistung und Features sind schon erstaunlich zu diesem Preis, für meine Zwecke aber schon eine Spatzen beschiessende Kanone. Die 2$ relativieren sich aber etwas, da der Blackfin weder DAC noch ADC enthält. Da dürften ca. 1-2$ für externe Bauteile hinzukommen. Ich werde mal mit der dsPIC33EPXXGS50X-Familie beginnen. Da ist so ziemlich alles drin wass ich brauche, u.a. auch ein PGA. Leider fehlt die DMA, bei 160 kS pro Sekunde müsste es aber auch noch per Interrupt gehen. Der Energieverbrauch ist mit 40 mA bei 70 MIPS erträglich, schliesslich ist die Kommunikation nicht permanent aktiv. Eventuell komme ich auch mit der halben Taktfrequenz hin. Als Alternative hätte ich noch die 56800er-Serie von NXP im Visier (stammt wohl noch von Motorola), von der Leistung her mit den dsPICs vergleichbar (eher etwas darunter).
Wenn das nicht auch einen Blick auf die PSoCs wert ist.? PSoC 5 LP zum Beispiel.
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag #5034499: >> Sampling mit 160 kHz (4*Fc) >> Multiplikation des Signals mit einer um >> (2n-1, n=1,2,3,..) Abtastschritte verzögerten Kopie von sich selbst > + Filter > > wird sich der TO schon Muehe geben muessen. Das N hat er ja > gekonnt hinter einem .. versteckt. Ammenmärchen. Die Zauberworte heißen "FPU" und "ausreichende Taktfrequenz". So einen Arm-µC kann man auch mit >100MHz laufen lassen, ohne dass der Stromverbrauch übermäßig hoch ist.
Chris K. schrieb: > Ich würde auch einen ARM vorschlagen. Gibt es auch mit eingebaueter > Floating Point Einheit. Wo braucht man denn bei dem was der OP vorhat Fließkommaberechnungen?
Sapperlot W. schrieb: > Der Nachteil der Blackfin ist der hohe Preis der > Entwicklungsumgebung. > Sonst sind sie super, was die Spezifikationen betrifft... GCC hat m.W. keinen hohen Preis und von VDSP++ sollte man wegen der verstümmelten ELF-Formats sowieso absehen.
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.