Non-Return-to-Zero Pulse Code
Non-Return-to-Zero Pulse Code (NRZ, код без возврата к нулю) — это метод физического кодирования (линейного кодирования) цифровых сигналов, при котором уровень сигнала (напряжение или ток) остаётся постоянным на протяжении всего битового интервала. В отличие от кодов с возвратом к нулю (RZ), в NRZ сигнал не возвращается к нулевому уровню между передачей двух последовательных битов с одинаковым значением. Это один из простейших и наиболее распространённых способов представления двоичных данных в виде электрических или оптических сигналов.
Принцип действия
В основе NRZ-кодирования лежит прямое отображение логических уровней на физические параметры сигнала. Обычно логической единице («1») соответствует высокий уровень напряжения (например, +5 В или +3,3 В), а логическому нулю («0») — низкий уровень (0 В или -5 В). В некоторых вариантах, например, в дифференциальных схемах, используется перепад полярности.
Ключевая особенность NRZ — отсутствие обязательного перехода сигнала через нулевой уровень в каждом такте. Если передаётся длинная последовательность одинаковых битов (например, «111111» или «000000»), сигнал остаётся на одном уровне в течение нескольких тактовых интервалов. Это приводит к двум основным проблемам: потере синхронизации и накоплению постоянной составляющей.
Разновидности NRZ
NRZ-L (Non-Return-to-Zero Level)
Наиболее распространённая разновидность. Уровень сигнала прямо соответствует логическому значению бита. Высокий уровень — «1», низкий — «0» (или наоборот, в зависимости от полярности). Используется в интерфейсах RS-232, UART, а также в некоторых вариантах Ethernet (10BASE-T).
NRZ-I (Non-Return-to-Zero Inverted)
В этом варианте кодирование происходит не по уровню, а по наличию или отсутствию перепада сигнала в начале битового интервала. Логическая «1» кодируется сменой уровня (переходом с высокого на низкий или наоборот), а логический «0» — отсутствием перехода. NRZ-I позволяет частично решить проблему синхронизации при длинных последовательностях нулей, но не решает её для последовательностей единиц. Применяется в некоторых протоколах последовательной передачи данных, например, в USB (Low-Speed и Full-Speed) и в Fibre Channel.
Дифференциальный NRZ (Differential NRZ)
Вариант, в котором информация кодируется не абсолютным уровнем, а изменением уровня относительно предыдущего состояния. Используется в интерфейсах с гальванической развязкой или в системах, где важна помехоустойчивость к синфазным помехам.
Характеристики
Преимущества
- Простота реализации: NRZ-кодеры и декодеры требуют минимального количества логических элементов.
- Высокая скорость передачи: Поскольку сигнал не требует возврата к нулю, теоретическая пропускная способность канала равна тактовой частоте. Для NRZ полоса пропускания, необходимая для передачи сигнала, составляет примерно половину от тактовой частоты (для кода RZ она равна тактовой частоте).
- Низкое энергопотребление: При передаче длинных последовательностей одинаковых битов переключения сигнала не происходит, что снижает динамические потери.
Недостатки
- Проблема синхронизации: При длинных сериях одинаковых битов (особенно нулей в NRZ-L или единиц в NRZ-I) сигнал не меняется, и приёмник теряет тактовую синхронизацию. Для восстановления синхронизации требуется использование дополнительных методов, таких как скремблирование данных или вставка служебных битов (например, в протоколе USB используется бит-стаффинг).
- Наличие постоянной составляющей: Если количество единиц и нулей в передаваемом потоке не сбалансировано, в сигнале возникает постоянная составляющая (DC-компонента). Это затрудняет передачу через трансформаторы, конденсаторы и другие элементы с гальванической развязкой, а также может вызывать дрейф нуля в усилителях.
- Чувствительность к помехам: Поскольку информация кодируется абсолютным уровнем, NRZ-L более подвержен влиянию помех и дрейфа уровней, чем дифференциальные схемы.
Применение
NRZ-кодирование широко используется в различных областях цифровой передачи данных:
- Последовательные интерфейсы: RS-232, RS-422, RS-485, UART, I²C (с некоторыми оговорками), SPI.
- Локальные вычислительные сети: 10BASE-T (Ethernet на витой паре) использует манчестерский код, но некоторые ранние реализации Ethernet (например, 10BASE5 на толстом коаксиале) применяли NRZ. В современных стандартах Ethernet (100BASE-TX, 1000BASE-T) используется более сложное кодирование (4B/5B + MLT-3, PAM-5), но на физическом уровне они также основаны на принципах NRZ.
- Оптические системы связи: В волоконно-оптических линиях связи (ВОЛС) NRZ является одним из основных форматов модуляции, особенно на скоростях до 10 Гбит/с. На более высоких скоростях (40 Гбит/с и выше) часто используются более сложные форматы, такие как RZ-DPSK.
- Системы хранения данных: В интерфейсах жёстких дисков (SATA, SAS) и твердотельных накопителей (NVMe) используется NRZ-кодирование на физическом уровне.
- Радиосвязь: В некоторых системах цифровой радиосвязи (например, в протоколах с частотной манипуляцией FSK) NRZ используется для модуляции несущей.
Сравнение с другими методами кодирования
| Характеристика | NRZ | RZ | Манчестерский код |
|---|---|---|---|
| Полоса пропускания | ~0.5 * f_такта | f_такта | f_такта |
| Наличие постоянной составляющей | Да | Нет (в среднем) | Нет |
| Самосинхронизация | Нет | Частичная | Да |
| Сложность реализации | Низкая | Средняя | Средняя |
| Устойчивость к помехам | Низкая | Средняя | Высокая |
Интересные факты
- Термин «Non-Return-to-Zero» возник в контексте магнитной записи, где сигнал не возвращался к нулевому уровню между битами, в отличие от кода RZ, используемого в ранних системах.
- В некоторых источниках NRZ называют «кодом без возврата к нулю» или «потенциальным кодом».
- Для борьбы с проблемой синхронизации в NRZ часто применяют скремблирование — псевдослучайное перемешивание битов перед передачей. Это позволяет избежать длинных последовательностей одинаковых символов.
- В современных высокоскоростных интерфейсах (например, PCI Express, USB 3.0) используется более сложное кодирование, такое как 8b/10b или 128b/130b, которое обеспечивает баланс постоянной составляющей и достаточное количество перепадов для синхронизации, но на физическом уровне они часто основаны на NRZ-модуляции.
Источники
- Таненбаум Э., Уэзеролл Д. «Компьютерные сети». 5-е изд. — СПб.: Питер, 2012.
- Олифер В. Г., Олифер Н. А. «Компьютерные сети. Принципы, технологии, протоколы». 4-е изд. — СПб.: Питер, 2010.
- Stallings W. «Data and Computer Communications». 10th ed. — Pearson, 2013.
- IEEE Standard for Ethernet (IEEE Std 802.3-2018).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →