Codificare MFM

Codare MFM (uneori în literatură există denumiri „cod Miller modificat într-un pătrat”, „codificare MFM”; modulație de frecvență modificată în engleză  ) - o metodă de codificare a datelor, una dintre metodele de codificare fizică (codificare linie, codificare canal, codificare digitală, semnal de tastare ). Folosit pentru a transmite date digitale de la un transmițător la un receptor printr- o interfață serială . Este un cod bipolar cu două niveluri (un semnal poate lua două valori corespunzătoare unui nivel scăzut și unui nivel înalt) în care fiecare bit de informație este codificat printr-o combinație de doi biți.

Codarea MFM este o modificare a modulației de frecvență ( eng.  modulația de frecvență , FM). Pentru dischete, utilizarea MFM a dublat cantitatea de informații înregistrate, astfel de dischete au fost numite discuri cu densitate dublă („ dublă densitate ”). Codarea MFM este utilizată în unitățile de disc magnetice. Pentru hard disk, a fost folosit și MFM la început, dar în curând a fost inventată o metodă mai eficientă de codificare a informațiilor RLL ( run-length limited ).

În cazul dischetelor, noile metode nu au mai fost folosite din lipsa necesității de a transfera cantități mari de date pe dischete (acest lucru nu ar fi suficient de fiabil). În plus, în cazul dischetelor, este necesară compatibilitatea noilor standarde de codare cu cele vechi: orice unitate modernă poate citi atât discuri codificate FM, cât și MFM, în timp ce principiul codării RLL este fundamental diferit de cele două anterioare.

Codificare

Cu codarea MFM, o modificare a curentului de înregistrare are loc la mijlocul intervalului (ceas) dacă bitul transmis este 1 și la marginea intervalului dacă ambii biți adiacenți sunt 0. Direcția comutării curentului nu contează.

Date … 0 0 … … 0 1 … … 1 0 … … 1 1 …
Biți de ceas … ? unu ? … … ? 0 0 … … 0 0 ? … … 0 0 0 …
Cod MFM … ? 0 1 0 ? … … ? 0 0 1 0 … … 0 1 0 0 ? … … 0 1 0 1 0 …

Rețineți că biții de ceas înainte și după secvență sunt uneori cunoscuți și uneori necesită cunoașterea biților de date suplimentari. Exemplu mai lung (biții de date cu caractere aldine, biții de ceas cu caractere aldine):

Date: 0 0 0 1 1 0 1 1 Ceas: ? 1 1 0 0 0 0 0 0 Codul: ? 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0

Pentru a sincroniza controlerul, la citirea datelor, la începutul blocului de date, se scrie un marker special, care este un octet hexazecimal A1( 10100001), în care comutarea curentă între doi biți zero (al cincilea și al șaselea) se stabilește conform protocolul nu este efectuat.

Numărul ordinal 1 2 3 4 5 6 7 8 Date: 1 0 1 0 0 0 0 1 ? Ceas de date: ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Nivelul semnalului: ‾‾|_______|‾‾‾‾‾|_______|‾‾‾‾‾|___?... Sincronizare: ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Nu există comutare în acest ciclu ^

Secvența nivelurilor de semnal obținute în acest fel (4 semicicluri ale unui nivel - 3 semicicluri ale altui - 4 semicicluri ale nivelului inițial - 3 semicicluri ale altuia), pe de o parte, nu contrazice condiția cerută de protocol („nivelul semnalului poate rămâne neschimbat pentru cel mult 4 semicicluri”) și, pe de altă parte, nu apare niciodată într-un flux de date normale scrise (în care semnalul corespunzător acestui bit secvența ar trebui să arate ca 4-3-2-2-3). Sarcina este facilitată în continuare de faptul că mai multe astfel de secvențe de markeri sunt situate una după alta, caz în care bitul marcat cu un semn de întrebare este cunoscut și egal cu 1. Astfel, pentru a detecta markerul în fluxul de comutare de intrare, acesta este suficient să urmăriți mai multe repetări ale secvenței de durate 4-3-4-3-2 fără a fi nevoie să analizați biții individuali.

Aplicație

Vezi și

Note

  1. Encoder/decodor Miller . Preluat la 26 iulie 2017. Arhivat din original la 16 august 2015.

Literatură