MFM-koodaus

MFM-koodaus (joskus kirjallisuudessa on nimiä "muokattu Miller-koodi neliössä", "MFM-koodaus"; englanninkielinen  modifioitu taajuusmodulaatio ) - menetelmä datan koodaus, yksi fyysisen koodauksen menetelmistä (linjakoodaus, kanavakoodaus, digitaalinen koodaus, avainsignaali ). Käytetään digitaalisen tiedon siirtämiseen lähettimestä vastaanottimeen sarjaliitännän kautta . Se on kaksinapainen kaksitasoinen (signaali voi ottaa kaksi arvoa, jotka vastaavat alhaista ja korkeaa tasoa) koodi, jossa jokainen informaatiobitti on koodattu kahden bitin yhdistelmällä.

MFM-koodaus on muunnos taajuusmodulaatiosta ( eng.  Frequency modulation , FM). Levykkeillä MFM:n käyttö kaksinkertaisti tallennetun tiedon määrän, tällaisia ​​levykkeitä kutsuttiin kaksitiheyksisiksi levyiksi (" double density "). MFM-koodausta käytetään magneettisissa levyasemissa. Kiintolevyille käytettiin aluksi myös MFM:ää, mutta pian keksittiin tehokkaampi menetelmä tiedon koodaamiseen RLL ( run-length limited ).

Levykkeiden kohdalla uusia menetelmiä ei enää käytetty, koska levykkeillä ei ollut tarvetta siirtää suuria tietomääriä (tämä ei olisi tarpeeksi luotettavaa). Lisäksi levykkeillä vaaditaan uusien koodausstandardien yhteensopivuutta vanhojen kanssa: mikä tahansa nykyaikainen asema pystyy lukemaan sekä FM- että MFM-koodattuja levyjä, kun taas RLL-koodauksen periaate eroaa olennaisesti kahdesta edellisestä.

Koodaus

MFM-koodauksessa tallennusvirran muutos tapahtuu intervallin (kellon) puolivälissä, jos lähetettävä bitti on 1, ja intervallin reunalla, jos molemmat vierekkäiset bitit ovat 0. Virran vaihdon suunnalla ei ole merkitystä.

Data … 0 0 … … 0 1 … … 1 0 … … 1 1 …
Kellon bittejä … ? yksi ? … … ? 0 0 … … 0 0? … … 0 0 0 …
MFM-koodi … ? 0 1 0 ? … … ? 0 0 1 0 … … 0 1 0 0 ? … … 0 1 0 1 0 …

Huomaa, että kellobitit ennen ja jälkeen sekvenssin ovat joskus tiedossa, ja joskus ne edellyttävät lisätietobittien tuntemista. Pidempi esimerkki (tietobitit lihavoitu, kellobitit lihavoitu):

Tiedot: 0 0 0 1 1 0 1 1 Kello: ? 1 1 0 0 0 0 0 0 Koodi: ? 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0

Ohjaimen synkronoimiseksi dataa luettaessa datalohkon alkuun kirjoitetaan erityinen merkki, joka on heksadesimaalinen tavu A1( 10100001), jossa nykyinen vaihto kahden nollabitin (viidennen ja kuudennen) välillä asetetaan protokollaa ei suoriteta.

Järjestysnumero 1 2 3 4 5 6 7 8 Tiedot: 1 0 1 0 0 0 0 1 ? Datakello: ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Signaalin taso: ‾‾|_______|‾‾‾‾‾|_______|‾‾‾‾‾|___?... Synkrobeat: ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Tässä syklissä ei ole vaihtoa ^

Tällä tavalla saatu signaalitasojen sarja (4 puolijaksoa yhtä tasoa - 3 puolijaksoa toisella - 4 puolijaksoa alkutasolla - 3 puolijaksoa toisella) ei toisaalta ole ristiriidassa protokollan vaatima ehto ("signaalin taso voi pysyä muuttumattomana enintään 4 puolijaksoa" ), ja toisaalta se ei koskaan esiinny normaalin kirjoitetun datan virrassa (jossa tätä bittiä vastaava signaali sekvenssin pitäisi näyttää tältä 4-3-2-2-3). Tehtävää helpottaa edelleen se, että useita tällaisia ​​merkkisekvenssejä sijaitsee peräkkäin, jolloin kysymysmerkillä merkitty bitti on tiedossa ja yhtä suuri kuin 1. Siten markkerin havaitsemiseksi saapuvassa kytkentävirrassa se on riittää seuraamaan useita toistoja kestojakson 4-3- 4-3-2 ilman yksittäisten bittien jäsentämistä.

Sovellus

Katso myös

Muistiinpanot

  1. Millerin kooderi/dekooderi . Haettu 26. heinäkuuta 2017. Arkistoitu alkuperäisestä 16. elokuuta 2015.

Kirjallisuus