MFM-кодирование
MFM-коди́рование (иногда в литературе встречаются названия «модифицированный код Миллера в квадрате», «МЧМ-кодирование»; англ. modified frequency modulation) — способ кодирования данных, один из способов физического кодирования (линейного кодирования, канального кодирования, цифрового кодирования, манипуляции сигнала). Служит для передачи цифровых данных от передатчика к приёмнику по последовательному интерфейсу. Является двуполярным двухуровневым (сигнал может принимать два значения, соответствующие низкому уровню и высокому уровню) кодом, в котором каждый информационный бит кодируется комбинацией из двух битов.
MFM-кодирование является модификацией частотной модуляции (англ. frequency modulation, FM). Применение MFM-кодирования при записи информации на гибкие диски позволяло увеличивать объём записываемой информации вдвое; такие диски назывались дисками двойной плотности («double density»). Для жёстких дисков вначале также использовалось MFM-кодирование, но вскоре был изобретён более эффективный метод кодирования информации RLL (run-length limited).
В случае с гибкими дисками новые методы уже не использовались в силу отсутствия необходимости в переносе больших объёмов данных на гибких дисках (это было бы недостаточно надёжно). Кроме того, в случае с гибкими дисками требуется совместимость новых стандартов кодирования и старых: любой современный дисковод может читать как FM-, так и MFM-кодированные диски, в то время как принцип RLL-кодирования принципиально отличается от двух предыдущих.
Кодирование
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/37/FM-MFM-Codierung-int.svg/220px-FM-MFM-Codierung-int.svg.png)
При 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 2 3 4 5 6 7 8 Данные: 1 0 1 0 0 0 0 1 ? Такт данных: ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Уровень сигнала: ‾‾|_______|‾‾‾‾‾|_______|‾‾‾‾‾|___?... Синхротакт: ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ В этом такте ^ переключение не происходит
Полученная таким образом последовательность уровней сигнала (4 полупериода одного уровня — 3 полупериода другого — 4 полупериода исходного уровня — 3 полупериода другого), с одной стороны, не противоречит требуемому по протоколу условию («уровень сигнала может оставаться неизменным на протяжении не более 4 полупериодов»), а с другой — никогда не встречается в потоке обычных записываемых данных (в котором сигнал, соответствующий этой последовательности бит, должен выглядеть как 4-3-2-2-3). Задача ещё более облегчается тем фактом, что несколько таких маркерных последовательностей располагаются одна за другой, и в этом случае отмеченный вопросительным знаком бит известен и равен 1. Таком образом, для обнаружения маркера во входящем потоке переключений достаточно отследить несколько повторений последовательности длительностей 4-3-4-3-2, без необходимости анализировать индивидуальные биты.
Применение
- В большинстве форматов записи на гибкие и жёсткие диски.
- В протоколе передачи RFID-меток[1]
- В протоколах передачи цифровых данных по каналу связи на физическом уровне
- В беспроводных технологиях передачи данных малого радиуса Near Field Communication
См. также
- RLL (run-length limited)
- Физическое кодирование
- Манипуляция
- Манчестер-II
- NRZ (прямой)
- NRZI код
- PAM-5
- MLT-3
Примечания
- ↑ Кодер/декодер Миллера (неопр.). Дата обращения: 26 июля 2017. Архивировано 16 августа 2015 года.
Литература
- Гольдштейн Б. С. Протоколы сети доступа. — БХВ-Петербург, 2005.
- Передача дискретных сообщений / В. П. Шувалов, Н. В. Захарченко, В. О. Шварцман и др. ; Под ред. В. П. Шувалова. — М. : Радио и связь, 1990. — 464 с. — ISBN 5-256-00852-8.
- Сухман С. М., Бернов А. В., Шевкопляс Б. В. Синхронизация в телекоммуникационных системах : Анализ инженерных решений. — М. : Эко-Трендз, 2003. — 272 с. — ISBN 5-88405-046-1.
- Слепов Н. Н. Синхронные цифровые сети SDH. — М. : Эко-Трендз, 1998. — 148 с. — ISBN 5-88405-002-X.