Forum: Mikrocontroller und Digitale Elektronik TS Stream auswerten


von Dirk (Gast)


Lesenswert?

Hallo,

ich möchte einen "TS" Stream der aus einem SAT Empfänger (Modul von 
ALPS) kommt analysieren.
Es geht nicht um eine Video Ausgabe!
Ich will an alle Daten ran außer den Video Signalen.
Die Ausgabe der Texte erfolgt auf einem Display.
Mpeg und ACC Dekodierung (Audio) soll später auch rein.

Die Prozessor Leistung kann ich nur nicht abschätzen.
Wird wohl was größeres sein müssen und da ist das 2. Problem.
Ich will das Teil noch selber Löten können.

So ein OMAP3 wäre mit Sicherheit auch in der Lage Video mit zu machen 
aber, wie soll ich den auflöten?

Ob da nun Linux drauf läuft, ein FreeRTOS oder kein OS ist mir egal.

Hat da jemand schon mal was in diese Richtung gemacht und kann mir ein 
paar Tipps geben?

Dirk

von Peter II (Gast)


Lesenswert?

Wie viele Streams willst du gleichzeitig verarbeitet? Willst du also den 
kompletten Transponter auswerten order nur 1 aktiven Sender?

von Dirk (Gast)


Lesenswert?

Ein Sender, mehr muss es nicht sein.

von Peter II (Gast)


Lesenswert?

Dann sollte eigentlch jeden CPU reichen (erstmal ohne MPEG) denn das 
sind wirklich nicht viele Daten die da kommen. Wenn du später mit MPEG 
arbeiten willst, dann solltest du die CPU daran orientieren. Der Rest 
fällt dann mit ab.

von Bürovorsteher (Gast)


Lesenswert?

Die angemessene Lösung ist hier ein kleiner bis mittelgroßer FPGA 
(Spartan 3 S 50 oder 200), der mit einem mittelgroßen Controller (AT 
mega 128) zusammenarbeiten.
Da der TS heftig schnell kommt, machst du die Filterung nach PID im 
FPGA.
Dann im FPGA ein wenig puffern und mit dem Controller zur Anzeige 
bringen.
Für das was du vorhast, sollte diese Konfiguration reichen.
Die Datenstruktur des Programmstromes/Transportstromes kennst du?

von Dirk (Gast)


Lesenswert?

Was denn nun? Wenig oder viele Daten?

Wenn ich mich nur nach dem Mpeg richten brauche, würde ein Cortex M3 ja 
schon reichen.
Glaube ich aber nicht so richtig, wenn ich "Bürovorsteher" glauben darf.

Die Lösung mit einem FPGA ist sehr interessant, nur kenne ich mich mit 
einem FPGA absolut nicht aus. Habe nicht mal eine Idee was ich da wie 
rein bekommen kann.
Ein AVR ist zwar schön, habe auch alle Tools dafür.
Aber ich würde dann doch zur Sicherheit lieber einen ARM7 oder grösser 
nehmen.

Die Struktur kenne ich nicht auswendig habe aber passende Dokumente.
Fertige Software wäre zwar noch besser, aber man kann halt nicht alles 
haben.
Erst mal die Hardware bauen und wenn ich wirklich einen FPGA nehmen muss 
dann wird das ein längeres Projekt.

von Peter II (Gast)


Lesenswert?

Dirk schrieb:
> Was denn nun? Wenig oder viele Daten?

das kommt auf das "(Modul von ALPS)" an. Liefert das Modul den 
kommpletten Transponder oder kann man dem Modul sagen welche PID man 
haben will. Einmal kommen SEHR viele daten raus einmal nur die 
gewünschten.

von Dirk (Gast)


Lesenswert?

Es kommt alles raus, da ist kein Daten Filter drin.

von Peter II (Gast)


Lesenswert?

Dirk schrieb:
> Es kommt alles raus, da ist kein Daten Filter drin.

dann musst die CPU mit ca. 40Mbit/s zurechtkommen. Das ganze in form von 
188byte Paketen. Bei jeden Packet steht am Anfang die ID, daran kannst 
du erkennen ob du das Packet brauchst.

von Edward C. (teddy)


Lesenswert?

Fuer ein PID filter fuer ein/zwei/drei PIDs reicht schon ein CPLD.

Ed

von Bürovorsteher (Gast)


Lesenswert?

> Fuer ein PID filter fuer ein/zwei/drei PIDs reicht schon ein CPLD.

Nein, du brauchst mindestens noch einen Pufferspeicher für die 
herausgefilterten Blöcke, die du dann ganz geruhsam mit dem Controller 
auslesen kannst. Ein Spartan XC3S50AN ist außerdem billiger als ein 
dafür ausreichender CPLD.

von Dirk (Gast)


Lesenswert?

Es sieht also so aus das ich mich in die wunderbare Welt der FPGA 
Programmierung einarbeiten darf.
Auf so was war ich jetzt nicht eingestellt, aber wenn es nicht anders 
geht muss ich da wohl oder übel durch.

Hoffe nur das das nicht so teuer wird, ein GCC wird es hierfür wohl 
nicht geben oder?

von Peter II (Gast)


Lesenswert?

Dirk schrieb:
> Es sieht also so aus das ich mich in die wunderbare Welt der FPGA
> Programmierung einarbeiten darf.
> Auf so was war ich jetzt nicht eingestellt, aber wenn es nicht anders
> geht muss ich da wohl oder übel durch.

warum? wenn die CPU schnell genug ist braucht man dafür keinen FPGA. das 
ist denn zwar kein µC mehr aber eine ebbended ARM sollte das ohne 
Probleme schaffen.

von Dirk (Gast)


Lesenswert?

Habe selber mal nach gerechnet.
40Mbit/s in Form von 188byte Paketen ist sportlich aber mir einer 
entsprechenden Hardware (UART  SPI  ?? ) auch von einem AVR gerade 
noch empfangbar (nix mit auswerten).

Wenn ich jetzt von Atmel einen ARM7 / Cortex M3 nehmen würde, wo könnte 
ich die Daten rein holen?

von Dirk (Gast)


Lesenswert?

Oh im Datenblatt (ALPS) steht die Pin Belegung.
Die Daten kommen 8 Bit Parallel raus mit Takt und allem was sonst so 
gebraucht wird. Da sollte ein DMA Transfer in den Prozessor möglich 
sein.

Muss doch noch mal das komplette Zeug mir ansehen. vielleicht ist ja 
doch ein Filter drin und ich habe den immer nur übersehen.

von Joerg L. (Firma: 100nF 0603 X7R) (joergl)


Lesenswert?

Die Tuner, die ich bisher in der Hand hatte, hatten nie einen Filter.
Da kommt der ganze Transponder "runter". Man konnte nur umschalten 
zwischen serieller oder 8-bit paralleler Ausgabe.
Das Demuxen und PIDs-filtern hat dann immer der angeschlossene 
Decoder-Chip gemacht. Das ist wirklich eine nette Aufgabe für ein FPGA.

Halt uns bitte auf dem Laufenden!

Gruß,
Jörg

von Dirk (Gast)


Lesenswert?

Das das eine super Aufgabe für einen FPGA ist Glaube ich dir sofort.
Nur leider kenne ich mich damit nicht aus.
Ich werde somit nicht um ein reines Prozessorsystem herum kommen.
Auch wenn die FPGA Lösung mich richtig reizen würde.
Aber ich wollte auch irgendwann damit fertig werden und nicht in 1/2 
Jahr das Projekt verzweifelt aufgeben. Nur weil ich dann immer noch 
nicht den FPGA fertig habe.
Da kommt lieber ein dicker ARM dran und gut ist.
Da kann ich wenigstens was machen und die Tools habe ich auch.

Gut fasse ich mal zusammen:
- Modul direkt anbinden (Passendes Hardware Interface aussuchen)
- Muss über DMA rein kommen
- Prozessor muss fix sein

Na da habe ich doch schon mal einige Aufgaben die ich abarbeiten muss.
Dann das Layout und dann wird es sowieso noch lustig mit der Software.

Mal sehen was ich so bei den Dreambox und Linux Herren so finde zu 
diesem Thema. Aber das kommt erst später dran, erst muss die Hardware 
auf dem Tisch liegen und die Daten gefiltert rein kommen.

von Peter II (Gast)


Lesenswert?

Sag uns doch mal um welchen DVB Chips von ALPS es hier geht. Ich hatte 
das ganze bis jetzt nur am PC gemacht - dort kommen die Daten von 
Treiber auch nur aus einem device, nur konnte man dem Treiber die PIDs 
mitgeben und er hat es schon gefiltert. Keine Ahnung ob das ganze in 
Hardware oder Software gemacht wurde.

von Dirk (Gast)


Lesenswert?

DVB-S2 Digital BS Tuner  BSBE2 Series

von MaWin (Gast)


Lesenswert?

> Ich will das Teil noch selber Löten können.

Wozu löten ?

Es gibt doch ausreichend viele Set-Top-Boxen für kleines Geld
mit ausreichend leistungsfähigem Prozessor und Linux als
modifizierbarem System, ich sag mal DreamBox.


Das ganze hat auch noch den Vorteil, daß man neben dem
Erkennnisgewinn was nützlches draus machen könnte.

von Dirk (Gast)


Lesenswert?

Thema Verfehlt!
Um so was geht es halt nicht.

von Dirk (Gast)


Lesenswert?

Ich habe gestern mich weiter schlau gemacht, weil mit die Idee mit dem 
FPGA nicht aus dem Kopf gehen wollte.
Kann man nicht gleich alles im FPGA machen?

Es gibt anscheinend etliche fertige Module die man nur irgendwie 
zusammen bauen muss.
Wie gesagt habe ich davon noch keine Ahnung, aber es wäre schon super 
wenn die ganzen Zeitkritischen Bereiche sozusagen in Hardware ablaufen.
Dann noch ein kleiner AVR mit drauf um das ganze zu steuern.

Stellt sich dann nur die Fragen wo das rein passt (Lötkolben kompatibel) 
und die man das programmiert?

Was meint Ihr ist das machbar oder sollte man als noch leihe lieber die 
Finger lassen.

VG, Dirk

von Bürovorsteher (Gast)


Lesenswert?

> Kann man nicht gleich alles im FPGA machen?

Die Auswertung der ganzen Tabellen, wo was im PS/TS zu finden/suchen 
ist, sollte man besser einem Controller überlassen, schon weil dessen SW 
einzeln und harwareunabhängig entstört werden kann. Ganz tolle Hirsche 
(dazu gehöre ich allerdings nicht), implementieren den Controller 
natürlich im FPGA.

> Es gibt anscheinend etliche fertige Module die man nur irgendwie
> zusammen bauen muss.

Darin besteht im allgemeinen die Tätigkeit des gemeinen Ingenieurs.

> Stellt sich dann nur die Fragen wo das rein passt (Lötkolben kompatibel)
> und die man das programmiert?

Das habe ich dir schon gesagt.

Zieh dir als erstes mal die Empfehlung H.222 der ITU-T bzw. ISO/IEC 
13818-1
rein. Das ist nur der Anfang. Dann gibt es noch massenweise Empfehlungen 
der ETSI. Wenn du gut bist und viel Zeit hast, könntest du irgendwann zu 
irgendwelchen Resultaten kommen.

Programmierung, FPGA-Entwurf und parallel dazu Detailkenntnis der 
Dokumentation halte ich für ein sehr ehrgeiziges Projekt für einen 
Anfänger.
Andererseits - irgendwomit muss man ja anfangen.

von Käsekuchen (Gast)


Lesenswert?

Bürovorsteher schrieb:
> Zieh dir als erstes mal die Empfehlung H.222 der ITU-T bzw. ISO/IEC
> 13818-1
> rein.
Vorsicht: Lang und ziemlich unverdaulich!

von Dirk (Gast)


Lesenswert?

Habe fast alle wichtigen Dokumente, nur noch nicht alle gelesen.

Nun ja, Anfänger bei FPGA bin ich.
Aber mache seit 25Jahren Software und Hardware, sollte damit nicht ganz 
als unerfahren durch gehen.

Auf der anderen Seite, ach habt gewonnen, warum sich das leben schwer 
machen.

Die FPGA Sachen laufen mir nicht weg und ist dann für ein privates 
Spielprojekt zu aufwendig. Wenn alles läuft kann ich immer noch mich 
daransetzen und was optimieren mit einem FPGA.

Melde mich so in ca. 3-5 Monaten wenn ich was vorzuweisen habe.

Danke,
Dirk

von Bürovorsteher (Gast)


Lesenswert?

> Aber mache seit 25Jahren Software und Hardware, sollte damit nicht ganz
> als unerfahren durch gehen.

Sag das gefälligst gleich! Sonst hält man dich für völlig ahnungslos.
Ich habe das PS/TS-Fernsehzeugs ziemlich lange (15 Jahre) seit den 
Ur-anfängen (Anfang der 90er) gemacht und empfinde es in Nachhinein als 
ziemlich öde.
Zumal - am Ende stellst du fest, das im billigsten Fernseher von Aldi 
bereits alles drin ist.

Meine Empfehlung: FPGA! Faszinierend, was du dort mit wenigen Zeilen in 
VHDL alles für Unheil anrichten kannst.

von dvbbla (Gast)


Lesenswert?

Das Problem ohne FPGA ist schlicht und einfach, dass man in gängigen 
Controllern keine dedizierte Hardware-Unit hat, die sich um das Einlesen 
und buffering der TS-Daten kümmern könnte.
D.h. man muss das in Software machen und das geht nicht so einfach, weil 
der Stream halt so schnell ist, dass dein ganzes TS-Paket fürn Müll ist 
wenn da irgendwann mal ein Interrupt dazwischenfunkt.
Annahme: 40MBit, parallel, 8Bit. Macht 5MHz. Dann gibts da (neben sync) 
noch den TS_clock vom tuner, den du mit dem controller mit >=10MHz 
samplen musst um zu entscheiden, wann die Daten gültig sind.
Mit einem Cortex-M3 auf 70MHz hast Du da gerade noch 7 Takte zwischen 2 
samples für Auswertung/Verarbeitung/etc. - ARM mit 100MHz macht die 
Sache auch nicht realisierbarer ohne dedizierte Hardware (FPGA).

von Peter II (Gast)


Lesenswert?

dvbbla schrieb:
> Annahme: 40MBit, parallel, 8Bit. Macht 5MHz. Dann gibts da (neben sync)
> noch den TS_clock vom tuner, den du mit dem controller mit >=10MHz
> samplen musst um zu entscheiden, wann die Daten gültig sind.
> Mit einem Cortex-M3 auf 70MHz hast Du da gerade noch 7 Takte zwischen 2
> samples für Auswertung/Verarbeitung/etc.

das vesteht ich nicht, wenn die Daten parallel ankommen mit 5Mhz dann 
habe ich auch auch mehr als 10Takte zeit für ein byte. und das nur zum 
ablegen in einem buffer. Auswerten kann ich es ja asyn in der zeit wo 
man auf das nächste byte wartet. Das mit dem Clock sollte man doch mit 
externen beschaltung so hinbekommen, das man bei jeden senkrechten 
Flankte 8bit übernehmen kann.

viele Controller haben doch schon einen DMA modus, das muss man sich 
auch nicht mehr um ein einzelnes byte kümmern.

von Dirk (Gast)


Lesenswert?

@Bürovorsteher
Man muss ja nicht immer alles gleich verraten.

Ohne DMA Eingang klappt das nicht, so viel ist klar.
Jedes einzelne Byte selber abholen geht beim besten nicht.
Wenn ein Datenblock drin ist den Puffer umschalten und dann hat man 
wieder etwas Zeit die Daten sich anzusehen.
Anders hat man keine Chance das mit einem Prozessor zu machen.

Ob ein Cortex 3 dafür reicht wird das Datenblatt und Tests zeigen.
Nach oben gibt es zum Glück noch einige Modelle die ich nehmen kann.

Vielleicht brauche ich auch 2 Prozessoren um den FPGA in Software zu 
bauen.
Dann hätte ich einen der die Daten Filtert und einen der die Daten 
auswertet.
Ist auch noch eine Möglichkeit.
Diesen Bus kann man dann auch auf 32bit bauen um mehr Performance zu 
bekommen.

Es gibt somit noch genug Potenzial.

von Dirk (Gast)


Lesenswert?

Ich werde mir doch mal die FPGA Sachen ansehen.

Hier gibt es ein nettes Board das ich mir mal aufbauen werde.
Beitrag "Meinung zu meinem Spartan 3 Eval Board"

Wenn ich merke das ich nicht zurecht komme oder ich keine guten Tools 
finde oder sonst was damit ist, verfolge ich wieder die 1-2 Prozessor 
Strategie.

VG, Dirk

von Dirk (Gast)


Lesenswert?

Was haltet Ihr von diesem Prozessor AT32UC3A0512 für diese Aufgabe?

Die Atmel Cortex m3 habe alle kein Ethernet, und einen normalen ARM7 
traue ich das Thema nicht zu.
Alternativ würde ich einen ARM9 nehmen.

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.