darkg skrev: I Differential Manchester encoding som mer eller mindre verkar vara vad S/PDIF använder motsvaras inte ettor och nollor – bittillstånd – av höga respektive låga spänningar utan av övergång (hög→låg eller låg→hög) respektive icke-övergång. Timingen för dessa övergångar (eller icke-övergångar), klockan, bestäms av tidpunkterna för mellanliggande övergångar på samma lina.
Det är en smula förvirrande, men ändå ganska vackert. Tyvärr begriper jag ännu inte var jitter kommer in och förstör. Även om mottagaren, som ju kollar om det blir nån övergång eller inte, inte vet exakt när den där övergången ska komma borde mottagaren veta på ett ungefär. Och det borde räcka. Om man inte vet exakt när bussen går kommer man ju några minuter innan tabelltid och väntar till några minuter efter. Det blir bekymmersamt bara om bussarna går så tätt att man med sina marginaler hamnar på föregående eller efterföljande buss. Vanligt förekommande jitter innebär, som jag förstår det, inte sådan risk. Det vill säga, om bussarna går varje hel timme ±4 minuter och man är där fem i till fem över så finns ingen risk för fel.
Mottagaren bör, tänker jag, bilda sig en uppfattning om rätt timing (ställa sin egen klocka) genom typ glidande medelvärde och buffra lite för att inte få slut på data om sändaren saktar ned, eller inte hinna omvandla om den snabbar på. I sin egen välinformerade takt lastar den sen in bitpaket [sampelvärden] i omvandlaren som omvandlar.
Det är något jag missar.
Jag har nämnt detta tidigare i ett av mina inlägg. Kravet på överföring av data på S/Pdiff är att data skall vara okänsligt, dels för DC och offsett dels för polaritetsvändning. DC påverkar omslagspunkten mellan 1 och 0. Polaritet påverkar data om 1 skall läsas som 1 och inte som 0 samt att 0 skall läsas som 0 och inte som 1.
Därför har man gått över till differentiellt bitflöde och symmetriskt. Men det finns ett litet aber. I övergångar från ett frame till nästa frame måste ett slags data införas som markör för ett nytt frame. Denna markör är differentiell men inte symmetrisk. Det är ett otillåtet data på S/Pdiff som används för att markera gränsen mellan 2 ord. Sedan införs ett otillåtet date till för att markera gränsen mellan 2 frames. Jag tror det kallas för frame om jag minns rätt. Jag har för mig att S/Pdiff har denna typ av kodning.
Men det är så att koden räknas om till ny kod i sändaren som skall avkodas i mottagaren. För att komplicera det hela i S/Pdiff så skall musikdata samt övriga data samt bitklocka överföras seriellt och parallellt i ett och samma dataflöde och en och samma kabel. Sedan skall det extraheras.
Jag kan redan nu förbereda er på att musikdata går i en buss som kallas I2S och övriga data går i en buss som kallas I2C. Så, in till S/Pdiff går I2S och I2C och blir till en och endast en S/Pdiff i sändaren och där klockfrekvensen ingår i paketet.
Man paketerar således om den digitala informationen i sändaren.
Därefter förs detta nya paket över till mottagaren/avkodaren av S/Pdiff. Då extraheras I2S och I2C från varandra och via en PLL i mottagardelen skapas en ny oscillator med klockfrekvens, dock så att den nyskapade oscillatorn är synkron med sändaroscillatorns fas (PLL = Phase-Locked Loop). Detta för att slip d v s datafel skall undvikas. Det kallas synkron överföring och är ett kännetecken för S/Pdiff. För att skapa en viss känsla för tekniken så vill jag redan nu nämna att jitter = fasbrus + short term instability. Det betyder att beroende på hur PLL fungerar så flir fasbruset olika. Kan vara bra att veta. Det är nämligen den nya klockan som sköter hela timingen i D/A-processen. Det betyder att om jitter på sändardelen skulle vara = 0 så är det inte så på mottagardelen efter PLL. Det betyder även att om det finns en massa jitter i sändardelen så finns möjligheten via en finurligt utformad PLL att minska eller nolla detta jitter med bibehållen sample to sample korrekthet.
Redan här bör man förstå att varje digitalt steg behöver en klocka för att skyffla data. Det betyder att i varje sådant steg finns det ett ? gällande fasbrus på klocka och jitter. För att förtydliga ännu ett steg så måste man förstå att jitter kan vara helt stokastiskt eller ha vissa deterministiska störningar. Dessa störningar kan vara datasignalberoende och det betyder att musikkoden i sig modulerar fasbrus. Men även HF + annat skräp sätter sin prägel på fasbruset. Fasbrus är ett amplitudbrus som skiftar omslagsögonblicket från 0 till 1 och från 1 till 0 i tiden. Det är alltså ett tidsfel inom 1 period och därmed ett fasfel.
Sedan finns det asynkron överföring och då jobbar man med att lagra en viss del datamängd i ett minne som klockas ut på nytt. Det betyder att sändarens klocka och mottagarens klocka ar asynkrona gentemot varandra.
3e alternativet är synkron överföring av data men där masterklockan ligger i mottagaren och överförs bakåt i systemet, Fördelen med detta är att man kan på D/A-omvandlarsidan kan rekonstruera data med exakt tid och fas utan att behöva extra minne.
Så, vid överföring av data från sändare till mottagare i synkront mode så finns en master/slave funktion där antingen givaren är master eller mottagaren. I princip är det alltid så att i S/Pdiff går mottagaren som slave. Detta är en viktig ingrediens vid digital överföring av musiksignal med S/Pdiff.
Jag vill alltså först försöka förmedla djupare kunskaper i ämnet innan jag kommer till pudelns kärna.
Jag stannar här. Behöver sova.
Med vänlig hälsning
Peter
VD Bremen Production AB + Ortho-Reality AB; Grundare av Ljudbutiken AB; Fd import av hifi; Konstruktör av LICENCE No1 D/A, Bremen No1 D/A, Forsell D/A, SMS FrameSound, Bremen 3D8 m.fl.