MFM-кодирование

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

MFM-коди́рование (иногда в литературе встречается название модифицированный код Миллера в квадрате, МЧМ-кодирование; англ. Modified Frequency Modulation) — способ кодирования данных, один из способов линейного кодирования (физического кодирования, канального кодирования, цифрового кодирования, манипуляция сигнала). Служит для передачи цифровых данных, от передатчика к приемнику, по последовательному интерфейсу. Является двуполярным двухуровневым (сигнала может принимать два значения, соответствующие низкому ровню и высокому уровню) кодом, в котором каждый информационный бит кодируется комбинацией из двух битов.

MFM-кодирование является модификацией частотной модуляции (англ. frequency modulation, FM). Для гибких дисков применение MFM поднимало объём записываемой информации в два раза, такие гибкие диски назывались дисками двойной плотности («double density»). MFM-кодирование используется в дисководах на магнитных дисках. Для жёстких дисков сначала также использовался MFM, но вскоре был изобретён более эффективный метод кодирования информации RLL (Run length limited).

В случае с гибкими дисками новые методы уже не использовались в силу отсутствия необходимости в переносе больших объёмов данных на гибких дисках (это было бы недостаточно надёжно). Кроме того, в случае с гибкими дисками требуется совместимость новых стандартов кодирования и старых: любой современный дисковод может читать как FM-, так и MFM-кодированные диски, в то время как принцип RLL-кодирования принципиально отличается от двух предыдущих.

Основная статья: физическое кодирование

Кодирование[править | править вики-текст]

При MFM-кодировании изменение тока записи происходит в середине интервала (такта), если передаваемый бит равен 1, и на границе интервала, если оба соседних бита равны 0. Направление переключения тока не имеет значения.

Данные 0 0 0 1 1 0 1 1
Тактовые биты ? 1 ? ? 0 0 0 0 ? 0 0 0
MFM-код ?010? ?0010 0100? 01010

Заметим, что тактовые биты, идущие до и после последовательности, иногда известны, а иногда требуют знания дополнительных бит данных. Более длинный пример (полужирным выделены биты данных, остальные — тактовые):

Данные:    0 0 0 1 1 0 1 1
Тактовые: ? 1 1 0 0 0 0 0 0
Код:      ?0101001010001010

С целью синхронизации контроллера при считывании данных в начале блока данных записывается специальный маркер, представляющий собой шестнадцатеричный байт A1 (10100001) с пропущенным переключением тока между пятым и шестым битами; полученная таким образом последовательность переключений тока никогда не встречается в потоке обычных записываемых данных.

Данные:       1 0 1 0 0 0 0 1
Тактовые:      0 0 0 1 1 1 0
Код:          100010010101001
Такт маркера:  0 0 0 1 0 1 0
Код маркера:  100010010001001
                       ^ Отсутствующий тактовый бит

Применение[править | править вики-текст]

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]

Литература[править | править вики-текст]

  • Гольдштейн Борис Соломонович. Протоколы сети доступа. — БХВ-Петербург. — 2005.
  • Передача дискретных сообщений: Учебник для вузов/ В. П. Шувалов, Н. В. Захарченко, В. О. Шварцман и др. ; Под ред. В. П. Шувалова. — М.: Радио и связь, —1990—464 ISBN 5-256-00852-8
  • Сухман С. М., Бернов А. В., Шевкопляс Б. В. Синхронизация в телекоммуникационных системах: Анализ инженерных решений. — М.: Эко-Тренз, — 2003, 272с. ISBN 5-88405-046-1
  • Слепов Н. Н. Синхронные цифровые сети SDH. — М.: Эко-Трендз, −1998, 148c. ISBN — 5-88405-002-X