Ga naar inhoud


[Cam Algemeen] CAM/card programmeren for dummies


Gast

Aanbevolen berichten

@Milo en DrGalaxis,

 

Zo langzamerhand komen we ergens! Jullie hebben beter zicht op deze materie dan ik. Ik denk dat Dr.Galexis gelijk heeft dat er niet wordt geswitched. Ik heb daar ook niets over kunnen vinden. Waar je misschien wel een punt mee hebt, is dat je een CAM kunt benaderen in het PCMCIA slot van een notebook. Dan zal hij zich denk ik toch wel netjes aan de PCMCIA standaarden moeten houden...

 

Milo,

In EN50221 staat ook het gebruik van alle lijnen gespecificeerd van de pc-card interface, alsmede de electronische specificaties. Ik kon daar door mijn gebrek aan kennis van electronica niet zoveel van maken, maar misschien als jij het leest dat jij er wel wat uit kunt halen? Zit vooral in Annex A.5.

 

DrGalaxis,

Bedankt voor de uitleg van de TDA8002! Geweldig!!! Dat zijn antwoorden die ik tot op heden nog niet van iemand heb kunnen verkrijgen. Als je nu toch zo lekker bezig bent, zou ik je dan ook mogen vragen wat uit te leggen over de Xilinx? Ik kom niet veel verder dan het vage "dat het wat te maken heeft met de besturing van de Mpeg2 transportstream..."

 

Bedankt voor de hulp mannen! <img src="/ubbthreads/images/graemlins/xyxthumbs.gif" alt="" />

Hermanator

Link naar reactie
Delen op andere sites


Klopt wat al eerder gezegd werd, in EN50221 staat:

 

... The command interface uses the least significant byte of the data bus, together with the lower part of the address bus (A0-A14), and appropriate control signals. The command interface operates in I/O interface mode. The upper address lines (A15-A25), the most significant half of the data bus (D8-D15), and certain other control signals are redefined for the this interface variant...

 

Verder in het document staat dan ook dat de 'hoge' adreslijnen gaan werken als input en de 'hoge' datalijnen als output. Dit gebeurt pas na de configuratie - dus niet meteen na inpluggen/aanzetten. Pas als de module overtuigd is dat hij in een ontvanger steekt (en niet in een laptop, bijvoorbeeld) gaat hij in deze mode over. Dit betekent dus ook dat je een CAM module wel in een laptop kunt gebruiken (de command interface werkt gewoon), maar dat je 'm in een laptop nooit als decoder kunt gebruiken omdat je daarvoor je laptop hardware moet aanpassen.

 

Als ik de spec zo lees kun je heel interessante dingen met je CI doen. In principe kun je een 'netwerk'kaart (hoeft niet perse ethernet te zijn, mag ook USB ofzo zijn) maken, om data van de tuner naar je PC (en terug!) te streamen. Toepassingen van zo'n kaart (samen met je PC):

- PVR (opnemen, afspelen, time-shift)

- (Re)multiplexing (met meer tuners)

- Cardsharing

- "Control word sharing" (cardsharing een stapje verder - geen SECA meer nodig)

- Streaming (internet-TV, van schotel naar netwerk en van netwerk naar je tuner)

Enfin, ik sla op hol hiero. In principe is zo'n kaart niet eens zo heel moeilijk te bouwen, een prototype zou je thuis in elkaar kunnen zetten met VLSI componenten bijvoorbeeld.

Link naar reactie
Delen op andere sites

@Milo,

 

Goed werk! <img src="/ubbthreads/images/graemlins/xyxthumbs.gif" alt="" />

 

Citaat:
Verder in het document staat dan ook dat de 'hoge' adreslijnen gaan werken als input en de 'hoge' datalijnen als output. Dit gebeurt pas na de configuratie - dus niet meteen na inpluggen/aanzetten. Pas als de module overtuigd is dat hij in een ontvanger steekt (en niet in een laptop, bijvoorbeeld) gaat hij in deze mode over. Dit betekent dus ook dat je een CAM module wel in een laptop kunt gebruiken (de command interface werkt gewoon), maar dat je 'm in een laptop nooit als decoder kunt gebruiken omdat je daarvoor je laptop hardware moet aanpassen.

 

Ik zal dit stukje uitleg in het Camprog document opnemen! Thanx!!!

 

Over die speculatie wat er meer nog mogelijk zou zijn, kan ik niets zinnigs zeggen. Je zou dan denk ik toch weer een "uitgang" op de cam nodig hebben? Je stopt de cam in de ontvanger waarmee de pccard interface wordt gebruik voor de command interface en de transportstream interface. De enige "uitgang" die je dan nog hebt is de smartcard interface en die is te langzaam. Of begrijp ik je concept verkeerd?

 

Hermanator

Link naar reactie
Delen op andere sites

Mijn op hol geslagen CAM idee (misschien een goeie naam: "Stampede CAM") is in de praktijk:

 

Een redelijk normale CAM module, die je in de ontvanger steekt.

 

In plaats van een cardreader heeft deze CAM een ethernet (of USB of ...) aansluiting. Hierop sluit je je PC aan met een passende kabel.

 

De CAM stuurt binnenkomende commando's (command interface) via netwerk naar de PC, en krijgt zo ook de 'antwoorden' terug, die ook via de command interface naar de ontvanger gaan. De CAM is dus een ontzettend dom ding die niks anders doet dan doorsturen van informatie van ontvanger naar PC en terug.

 

De transportstream wordt ook doorgestuurd naar de PC. De PC stuurt een transportstream terug, die via de CAM naar de ontvanger gaat.

 

Voor een netwerkinterface is het vrij eenvoudig om deze streams te scheiden (door netwerk 'poorten' te gebruiken).

 

Op je PC draait software die de data van en naar de CAM regelt, en waar je met een soort software plug-ins de leuke dingen doet (descramblen, PVR en cardsharing bijvoorbeeld).

Link naar reactie
Delen op andere sites

Even over hoe lastig zo'n 60 bits codeword te kraken is...

 

Als je per seconde 1000 codes kunt uitproberen, dan doe je er 36558901 jaar over om ze allemaal uit te proberen. Een twee keer zo snelle PC heeft niet zoveel nut dus, met zo'n 20 miljoen PCs kun je een codeword dus in een jaar ontdekken (verwachtingswaarde). En dan heb je dus 2 tot 10 seconden video uitgepakt...

Link naar reactie
Delen op andere sites

@Milo,

 

Ik vraag me af of je met zo'n satelietkaart in je pc niet hetzelfde kan. Ik weet alleen niet in welke mate je software kunt ontwikkelen voor zo'n kaart. Moet ik me ook nog eens in verdiepen. Maar goed, in jouw concept hou je dan natuurlijk gewoon je ontvanger en wordt de pc een extra optie in plaats van een vervanging van de ontvanger.

Link naar reactie
Delen op andere sites

Zijn er nu nog mensen die hiermee daadwerkelijk aan de slag willen? Als je niet van scratch af aan wilt gaan schrijven, kun je van mij natuurlijk ook de sourcefiles krijgen (scheelt een hoop gehannes met overtypen, of kopieren uit het document).

 

Hermanator

Link naar reactie
Delen op andere sites

Misschien zou je een sourceforge (of vergelijkbaar iets) project moeten starten. Een heuse GPL CAM lijkt me wel iets.

 

Enfin, ik heb voorlopig geen tijd om me er serieus in te verdiepen. Een paar minuutjes hier en daar wel.

Link naar reactie
Delen op andere sites

@Milo,

 

Het is voor mij een zelfstudie traject waarvan ik de resultaten hier neerzet in de hoop dat anderen er lol van hebben en er iets mee kunnen. Een dergelijk project gaat mij te ver. Wel jammer dat je geen tijd hebt om er ook wat mee te doen. Hopelijk zijn er wel anderen die het oppakken...

 

Hermanator

Link naar reactie
Delen op andere sites

@Hermanator,

 

 

Ondertussen ben ik natuurlijk ook nog steeds aan het spitten en wordt zo langzamerhand alweer gek van de gatalletje's <img src="/ubbthreads/images/graemlins/dogeyes.gif" alt="" /> .

 

------------------------------->>>>>>>>>>>>>>>>>>>>>>>>>>

"Mijn eerste indruk is dat het pakketje van 132 byte's wel eens het C1 3C commando kan zijn waarna na een berekening de C1 3A komt , gr.

 

Zilverster. "

-------------------------------<<<<<<<<<<<<<<<<<<<<<<<<<<

 

 

Voorals nog lijkt het erop dat er een gedeelte van het serial en de ppua in verweven zit <img src="/ubbthreads/images/graemlins/shocked.gif" alt="" />. De bedoeling is om wat meer gemaakte logs te gaan vergelijken om zo hopelijk vaste positie's te gaan bepalen. Ik hoop zo een oplossing te vinden voor het verspringen in de tabellen wat normaal het geval is.

 

Ik heb net een bevestiging gekregen waaruit blijkt dat de begin waarde en de eindwaarde's gelijk zijn en dus niet kaart afhankelijk <img src="/ubbthreads/images/graemlins/grin.gif" alt="" /> , als dat bij jou ook zo is hebben we een sterk punt. Dat de tussen liggende waardes anders zijn is normaal omdat het in dat geval ook om een andere kaart gaat met andere kaart gegevens en er dus een berekening plaats vindt met een andere uitkomst <img src="/ubbthreads/images/graemlins/biggthumpup.gif" alt="" /> , gr.

 

Zilverster.

You are "The last in line" - Ronnie James Dio R.I.P.

Link naar reactie
Delen op andere sites

Citaat:
@Milo,

Het is voor mij een zelfstudie traject waarvan ik de resultaten hier neerzet in de hoop dat anderen er lol van hebben en er iets mee kunnen. Een dergelijk project gaat mij te ver. Wel jammer dat je geen tijd hebt om er ook wat mee te doen. Hopelijk zijn er wel anderen die het oppakken...

Hermanator

Ik heb wel interesse, maar ik moet eerst nog wat hardware kopen (cas2, season interface). Is het mogelijk dat je de sourcecode hier in het forum als bijlage toevoegd, anders heb ik wel interesse in een PM.
Ik zal er dus niet gelijk mee beginnen, ik moet eerst eens alles werkend krijgen <img src="/ubbthreads/images/graemlins/lezen.gif" alt="" />
Link naar reactie
Delen op andere sites

Je mag mij ook de sources eens sturen (mike at milosoftware.com), misschien komt er nog wel spontaan iets uit mijn embedded trukendoos dat ik in een half uurtje kan bijhacken.

 

Voor de toekomst zie ik deze CAM trouwens helemaal zitten. M'n Joker cammetje wordt toch nutteloos volgende maand, dus misschien vind ik nog een satter die hem tegen een MR kan ruilen. Kan ik ook van iemand wat vrije tijd lenen?

Link naar reactie
Delen op andere sites

@all,

 

Ik heb de mensen die mij hier en per pm om sources hebben verzocht hiervan voorzien. Ik hoop dat iedereen zijn bevindingen en eventuele vragen ook hier in het draadje plaatst. Zo krijgen we hopelijk een ontwikkel (sub)forum waarin we ervaringen uitwisselen en allemaal wat kunnen leren!

 

Hermanator

Link naar reactie
Delen op andere sites

Here a small Code snippet to read a SECA1 Card without error handling etc:

 

void SCard_Info(void)

{

unsigned long rc;

unsigned long *SCard_base;

char temp[12];

unsigned int i;

SCard_base = (unsigned long *) scardInterfaceBase;

//Inizialize Smart Card

rc = scardInit (SCARDs_NUM_CARD);

if(rc == OK){

options.ATR = atr;

options.baudRate = SCARD_BAUD_9600; // 9600 bps

options.ATRLength = 14; // SECA1 Card

scardStateGet(0, &cardState);

// if(cardState == SCARD_INSERTED);

rc = scardOpen (SCARDs_NUM_CARD, &options);

scardStateGet(0, &cardState);

 

sprintf(menu_option[6][2],"%08lx",(long) cardState);

sprintf(menu_option[6][3],"rc %08lx",rc);

sprintf(menu_option[6][4],"atr %02lx %02lx %02lx %02lx",(long) atr[0],(long) atr[1],(long) atr[2],(long) atr[3] );

sprintf(menu_option[6][5],"atr %02lx",(long) atr[4] );

sprintf(menu_option[6][6],"cS %02lx",SCard_base[5] );// status register card, magic 0xc0/0x80, matrix 0x00/0x40 card ins/extracted

// get Card Serial

scardByteWrite(SCARDs_NUM_CARD,0xc1);

scardByteWrite(SCARDs_NUM_CARD,0x0e);

scardByteWrite(SCARDs_NUM_CARD,0x00);

scardByteWrite(SCARDs_NUM_CARD,0x00);

scardByteWrite(SCARDs_NUM_CARD,0x08);

for(i=0;i<11;i++) scardByteRead(SCARDs_NUM_CARD,&temp);

sprintf(menu_option[6][7],"SN %02lx %02lx %02lx %02lx",(long) temp[5],(long) temp[6],(long) temp[7],(long) temp[8] );

 

} else {

sprintf(menu_option[6][3],"bad rc %08lx",rc);

};

 

}

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...