Физическое кодирование, потенциальные и импульсные коды
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Физическое и логическое кодирование данных

Каждый вид компьютеров имеет свой внутренний вид кодирования для представления данных – символьной и текстовой информации. Наиболее часто используются коды ASCII (American Standard Code for Information Interchange, американский стандартный код для обмена информацией) и EBCDIC (Extended Binary Coded Decimal Interchange Code, расширенный двоично-десятичный код обмена информацией).

ASCII представляет собой 8-битную кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов. Первую половину кодовой таблицы (0 — 127) занимают символы US-ASCII, которые включают 95 печатаемых и 33 управляющих символа (разработана ANSI – Американским институтом национальных стандартов). Вторая половина таблицы (128 — 255) содержит национальные шрифты (кириллица) и символы псевдографики. Этот код используется в персональных компьютерах и в несовместимых с IBM больших машинах. На больших компьютерах (мейнфреймах) используется 8-битовый код EBCDIC, разработанный компанией IBM. При передаче данных от одного компьютера к другому может потребоваться перекодировка символов, которая осуществляется системным МО передающего или принимающего компьютеров. Эти действия являются функциями уровня представления модели OSI. Далее рассмотрим наиболее часто применяемые методы кодирования на физическом уровне.

Большинство компьютеров для представления «0» и «1» оперирует стандартными уровнями сигналов (логическими уровнями), которые определяются видом микросхем. TTL-логика представляет 0,5В как «0», и 5В как «1». ECL и CMOS-логики представляют -1,75В как «0», и -0,9В как «1». Для передачи данных, например, в оптоволоконных системах, в трансивере (приемопередатчике) устанавливается специальный чип, обрабатывающий любую логику и выдающий управляющий сигнал источнику света с конвертацией 0,5В и 5В TTL в 0 мA и 50 мА соответственно (включи свет, выключи свет).

В большинстве компьютерных сетей цифровые данные передаются при помощи цифрового сигнала, т.е. последовательностью импульсов. Для передачи данных может использоваться более двух уровней сигнала, при этом единичный импульс сигнала может представлять не один бит, а группу бит. Возможна обратная ситуация, когда для передачи одного бита может использоваться два импульса сигнала.

При цифровой передаче используют потенциальные и импульсные коды. В потенциальных кодах для представления логических единиц и нулей используется только значение сигнала в течение битового интервала, а фронты сигнала, формирующие законченные импульсы, во внимание не принимаются. Импульсные коды представляют логический ноль и логическую единицу перепадом потенциала определенного направления. В значение импульсного кода включается весь импульс вместе с его фронтами.

Сигнал в виде импульсной последовательности имеет бесконечный спектр. Основная энергия сигнала сосредоточена в диапазоне частот от нуля до частоты f=1/tо (первый лепесток энергетического спектра сигнала), где tо – бодовый интервал, то есть длительность единичного импульса линейного сигнала.

Теоретически в соответствии с пределом Найквиста максимально допустимая скорость изменения значений дискретного сигнала (B=1/tо, скорость передачи в Бодах) при передаче последовательности прямоугольных импульсов по каналу связи, эквивалентом которого является идеальный ФНЧ с прямоугольной АЧХ и линейной ФЧХ и с частотой среза fгр, равна Bmax=2fгр. Указанное ограничение связано с наличием переходных процессов на выходе ФНЧ, при этом время нарастания/спада фронта сигнала определяется как

При максимально допустимой скорости передачи сигнала tо=tн. Если интервал tо < tн, происходит недопустимое искажение формы сигнала на выходе канала и, как следствие, ошибки при приеме. Таким образом, скорость передачи информации N (Бит/с) зависит от скорости передачи сигнала В (Бод) и выбранного метода кодирования сигнала на физическом уровне.

Используемый метод физического цифрового кодирования должен достигать несколько целей:

Обеспечивать наименьшую ширину спектра сигнала при заданной скорости передачи информации N (Бит/с). Минимизировать величину постоянной составляющей в спектре линейного сигнала.

Обеспечивать приемнику возможность тактовой синхронизации (clocking). Так называемые самосинхронизирующиеся коды позволяют приемнику выделять из принимаемого цифрового потока колебание тактовой частоты и затем формировать из него тактовые импульсы при любой статистике битового потока на входе передатчика.

Обладать способностью распознавать ошибки

Обладать низкой стоимостью реализации.

Рассмотрим методы физического цифрового кодирования сигналов.

Потенциальный код без возвращения к нулю NRZ (Non Return to Zero)

Сигнал в линии имеет два уровня: нулю соответствует нижний уровень, единице - верхний. Переходы происходят на границе битового интервала. При передаче последовательности единиц сигнал не возвращается к нулю в течение битового интервала.

Рассмотрим частные случаи передачи данных кодом NRZ (рис.4.1): чередующаяся последовательность нулей и единиц, последовательность нулей и последовательность единиц. Определим частоту основной гармоники спектра сигнала в каждом из этих случаев.

Рис.4.1. Кодирование по методу NRZ

При чередовании единиц и нулей и скорости передачи N (Бит/с) период основной гармоники в спектре сигнала равен T=2t0=2/N (с). Частота основной гармоники f0 равна fо=N/2 (Гц).

При передаче только единиц, или только нулей сигнал в линии представляет собой постоянный ток.

Спектр реального сигнала постоянно меняется в зависимости от того, какова структура данных, передаваемых по линии связи. При передаче длинных последовательностей нулей или единиц, спектр сигнала сдвигается в сторону низких частот. Линейный сигнал NRZ обычно содержит постоянную составляющую и не всегда обеспечивает приемнику возможность синхронизироваться с поступающим сигналом. С другой стороны код NRZ прост в реализации, обладает хорошей помехоустойчивостью (из-за двух резко отличающихся уровней сигнала). Основная энергия сигнала в коде NRZ сосредоточена на частотах от 0 до N/2 (Гц).

В чистом виде код NRZ в сетях не используется. Тем не менее, используются его различные модификации, в которых с успехом устраняют как плохую самосинхронизацию, так и наличие постоянной составляющей.

Потенциальный код с инверсией при единице NRZI (Non Return to Zero with ones Inverted, NRZI)

При этом методе кодирования передаче нуля соответствует уровень сигнала, который был установлен в предыдущем битовом интервале (уровень сигнала не меняется), а при передаче единицы – уровень изменяется на противоположный.

Код используется при передаче по оптоволоконным кабелям, где приемник устойчиво распознает два состояния сигнала - свет и темнота.

Рис.4.2. Кодирование по методу NRZI

Определим частоты основных гармоник линейного сигнала для частных случаев битовых последовательностей.

Для последовательности чередующихся единиц и нулей период сигнала равен T=4t0 (с), основная частота сигнала fо=N/4 (Гц), при последовательности единиц – fо=N/2 (Гц), при передаче последовательности нулей fо=0 - постоянный ток в линии (или отсутствие света).

Код NRZI использует только два уровня сигнала и поэтому обладает хорошей помехоустойчивостью. Максимальную энергию имеют спектральные составляющие сигнала около частоты N/4 (Гц). Следует отметить, что код NRZI стал основным при разработке улучшенных методов кодирования для систем передачи данных.

Метод биполярного кодирования с альтернативной инверсией (Bipolar Alternate Mark Inversion, AMI, квазитроичный код)

В этом методе используются три значения сигнала –«-1», «0» и «+1». Для различения трех уровней необходимо лучшее соотношение сигнал/шум на входе приемника. Дополнительный уровень требует увеличение мощности передатчика примерно на 3 дБ для обеспечения той же достоверности приема бит на линии. Это общий недостаток кодов с несколькими состояниями сигнала по сравнению с двухуровневыми кодами.

Для кодирования логического нуля используется нулевой потенциал, логическая единица кодируется попеременно либо положительным потенциалом, либо отрицательным.

Рис.4.3. Квазитроичное кодирование (AMI)

При передаче любой битовой последовательности сигнал в линии не содержит постоянную составляющую. При передаче единиц основная гармоника сигнала находится на частоте fo=N/2 (Гц). В случае чередующегося набора единиц и нулей основная гармоника находится на частоте fo=N/4 (Гц), что в два раза меньше чем у кода NRZ. Но остается проблема синхронизации при передаче последовательности нулей.

В целом, для различных комбинаций бит использование кода AMI приводит к более узкому спектру сигнала, чем для кода NRZ. Код AMI предоставляет также некоторые возможности по распознаванию ошибочных сигналов. Так, нарушение строгого чередования полярности сигналов говорит о ложном импульсе или исчезновении корректного импульса.

Манчестерский код (Manchester)

Манчестерский код относится к самосинхронизирующимся кодам и имеет два уровня, что обеспечивает хорошую помехозащищенность. Каждый битовый интервал делится на две части. Информация кодируется перепадом уровня, происходящим в середине каждого интервала.

Единица кодируется перепадом от высокого уровня сигнала к низкому, а ноль - обратным перепадом. В начале каждого битового интервала может происходить служебный перепад сигнала (при передаче несколько единиц или нулей подряд).

Рис.4.4. Манчестерское кодирование

При передаче любой битовой последовательности сигнал не содержит постоянную составляющую. Длительность единичного импульса линейного сигнала t0 равна половине битового интервала, то есть B=2N. Частота основной гармоники сигнала зависит от характера битовой последовательности и находится в диапазоне fо=N/2 – N (Гц).

Манчестерский код используется в сетях Ethernet со скоростью передачи 10 Мбит/с (спецификация 10Bаsе-Т).

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

Потенциальный код 2B1Q

Это потенциальный код с четырьмя уровнями сигнала для кодирования данных. Название отражает суть кодирования – каждые два бита (2В) передаются за один такт сигналом определенного уровня (1Q). Линейный сигнал имеет четыре состояния.

Дибиту «00» соответствует потенциал -2,5 В (-3), «01» - потенциал -0,833 В (-1), «11» - потенциал +0,833 В (+1), «10» - потенциал +2,5 В (+3). Скорость передачи сигнала В при таком кодировании в 2 раза меньше скорости передачи информации N. На рис.4.6 изображен сигнал, соответствующий последовательности бит: 01 01 10 00.

Рис.4.6. Сигнал в коде 2B1Q

Основная частота сигнала не превышает fо=N/4 Гц. Однако для реализации этого метода кодирования мощность передатчика должна быть выше, чтобы четыре значения потенциала четко различались приемником на фоне помех.

Код MLT3 (Multi Level Transmission - 3).

Используются три уровня линейного сигнала: «-1», «0», «+1». Логической единице соответствует обязательный переход с одного уровня сигнала на другой. При передаче логического нуля изменение уровня линейного сигнала не происходит.

При передаче последовательности единиц период изменения уровня сигнала включает четыре бита. В этом случае fо=N/4 (Гц). Это максимальная основная частота сигнала в коде MLT-3. В случае чередующейся последовательности нулей и единиц основная гармоника сигнала находится на частоте fо=N/8 (Гц).

Рис.4.7. Сигнал в коде MLT-3

Логическое кодирование выполняется передатчиком до физического кодирования, рассмотренного выше, обычно средствами физического уровня. На этапе логического кодирования борются с недостатками методов физического цифрового кодирования - отсутствие синхронизации, наличие постоянной составляющей. Таким образом, сначала с помощью средств логического кодирования формируются исправленные последовательности данных, которые потом с помощью методов физического кодирования передаются по линиям связи.

Логическое кодирование подразумевает замену бит исходной информационной последовательности новой последовательностью бит, несущей ту же информацию, но обладающей, кроме этого, дополнительными свойствами.

Различают два метода логического кодирования:

избыточные коды;

скремблирование.

Избыточные коды основаны на разбиении исходной последовательности бит на группы и замене каждой исходной группы в соответствии с заданной таблицей кодовым словом, которое содержит большее количество бит.

Логический код 4В/5В заменяет исходные группы (слова) длиной 4 бита словами длиной 5 бит. В результате, общее количество возможных битовых комбинаций 25=32 больше, чем для исходных групп 24=16. В кодовую таблицу включают 16 кодовых слов, которые не содержат более двух нулей подряд, и используют их для передачи данных. Код гарантирует, что при любом сочетании кодовых слов на линии не могут встретиться более трех нулей подряд.

Остальные комбинации кода используются для передачи служебных сигналов (синхронизация передачи, начало блока данных, конец блока данных, управление передачей). Неиспользуемые кодовые слова могут быть задействованы приемником для обнаружения ошибок в потоке данных. Цена за полученные достоинства при таком способе кодирования данных - снижение скорости передачи полезной информации на 25%.

Имеются также коды и с тремя состояниями сигнала, например, в коде 8В/6Т для кодирования 8 бит исходной информации используются кодовые слова из 6 элементов, каждый из которых может принимать одно из трех значений. Избыточность кода 8В/6Т выше, чем кода 4В/5В, так как на 28=256 исходных комбинаций приходится 36=729 результирующих комбинаций.

В коде 8B/10В каждые 8 бит исходной последовательности заменяются десятью битами кодового слова. При этом на 256 исходных комбинаций приходится 1024 результирующих комбинаций. При замене в соответствии с кодовой таблицей соблюдаются следующие правила:

ни одна результирующая комбинация не должна иметь более 4-х одинаковых бит подряд;

ни одна результирующая комбинация не должна содержать более 6 нулей или 6 единиц;

Все рассмотренные избыточные коды применяются в сетях Ethernet, которые нашли самое широкое распространение. Так, код 4B/5B используется в стандартах 100Base-TX/FX, а код 8B/6T — в стандарте 100Base-T4, который в настоящее время практически уже не используется. Код 8B/10В используется в стандарте 1000Base-Х, код 64/66 в стандарте 10 GbE (когда в качестве среды передачи данных используется оптоволокно).

Осуществляют логическое кодирование сетевые адаптеры. Поскольку, использование таблицы перекодировки является очень простой операцией, метод логического кодирования избыточными кодами не усложняет функциональные требования к этому оборудованию.

Для обеспечения заданной пропускной способности линии передатчик, использующий избыточный код, должен работать с повышенной скоростью (тактовой частотой). Так, для обеспечения скорости передачи информации 100 Мбит/с с использованием кодирования 4В/5В + NRZI передатчик должен работать на скорости 125 МБод. При этом спектр линейного сигнала расширяется. Тем не менее, спектр сигнала избыточного потенциального кода уже спектра сигнала в манчестерском коде, что оправдывает дополнительный этап логического кодирования, а также работу приемника и передатчика на повышенной скорости.

Скремблирование представляет собой "перемешивание" исходной последовательности данных таким образом, чтобы вероятность появления единиц и нулей на линии становилась близкой 0,5. Устройства (или программные модули), выполняющие такую операцию, называются скремблерами (scramble - свалка, беспорядочная сборка).

Скремблер в передатчике выполняет преобразование структуры исходного цифрового потока. Дескремблер в приемнике восстанавливает исходную последовательность бит. Практически единственной операцией, используемой в скремблерах и дескремблерах, является XOR - "побитное исключающее ИЛИ" (сложение по модулю 2).

Рис.4.8. Вариант реализации скремблирования

Пусть, например, скремблер реализует соотношение Вi=Ai+Bi-5+Bi-7.

Здесь Bi – бит результирующего кода, полученный на i-м такте работы скремблера; Ai – бит исходного кода, поступающий в передатчике на вход скремблера на i-м такте; Bi-5 и Bi-7 – биты результирующего кода, полученные на предыдущих тактах работы скремблера, соответственно на «i-5» и «i-7» тактах.

Дескремблер в приемнике восстанавливает исходную последовательность, используя соотношение Ci=Bi+Bi-5+Bi-7=(Ai+Bi-5+Bi-7 )+Bi-5+Bi-7=Ai

Выводы

В сетях высокоскоростной передачи данных используются различные виды логического и физического кодирования данных. Логическое кодирование выполняется передатчиком до физического кодирования средствами физического уровня. На этапе логического кодирования борются с недостатками методов физического цифрового кодирования - отсутствие синхронизации, наличие постоянной составляющей. Сформированные исправленные последовательности данных затем с помощью методов физического кодирования передаются по линиям связи.

В большинстве компьютерных сетей цифровые данные передаются при помощи цифрового сигнала, т.е. последовательностью импульсов. Для передачи данных может использоваться более двух уровней сигнала, при этом единичный импульс сигнала может представлять не один бит, а группу бит. Возможна обратная ситуация, когда для передачи одного бита может использоваться два импульса сигнала.

При цифровой передаче используют потенциальные и импульсные коды. В потенциальных кодах для представления логических единиц и нулей используется только значение сигнала в течение битового интервала, а фронты сигнала, формирующие законченные импульсы, во внимание не принимаются. Импульсные коды представляют логический ноль и логическую единицу перепадом потенциала определенного направления. В значение импульсного кода включается весь импульс вместе с его фронтами.

Сигнал в виде импульсной последовательности имеет бесконечный спектр. Основная энергия сигнала сосредоточена в диапазоне частот от нуля до частоты f=1/tо (первый лепесток энергетического спектра сигнала), где tо – бодовый интервал, то есть длительность единичного импульса линейного сигнала.

Теоретически в соответствии с пределом Найквиста максимально допустимая скорость изменения значений дискретного сигнала (B=1/tо, скорость передачи в Бодах) при передаче последовательности прямоугольных импульсов по каналу связи, эквивалентом которого является идеальный ФНЧ с прямоугольной АЧХ и линейной ФЧХ и с частотой среза fгр, равна Bmax=2fгр. Указанное ограничение связано с наличием переходных процессов на выходе ФНЧ, при этом время нарастания/спада фронта сигнала определяется как

При максимально допустимой скорости передачи сигнала tо=tн. Если интервал tо < tн, происходит недопустимое искажение формы сигнала на выходе канала и, как следствие, ошибки при приеме. Таким образом, скорость передачи информации N (Бит/с) зависит от скорости передачи сигнала В (Бод) и выбранного метода кодирования сигнала на физическом уровне.

Используемый метод физического цифрового кодирования должен достигать несколько целей:

1. Обеспечивать наименьшую ширину спектра сигнала при заданной скорости передачи информации N (Бит/с). Минимизировать величину постоянной составляющей в спектре линейного сигнала.

2. Обеспечивать приемнику возможность тактовой синхронизации (clocking). Так называемые самосинхронизирующиеся коды позволяют приемнику выделять из принимаемого цифрового потока колебание тактовой частоты и затем формировать из него тактовые импульсы при любой статистике битового потока на входе передатчика.

3. Обладать способностью распознавать ошибки

4. Обладать низкой стоимостью реализации.

3.Синхронизация приемника с передатчиком.

Рис 4 Синхронизация приемника и передатчика на небольших расстояниях

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

так что информация снимается с линии данных только в момент прихода тактового импульса. В сетях использование этой схемы вызывает трудности из-за неоднородности характеристик проводников в кабелях. На больших расстояниях неравномерность скорости распространения сигнала может привести к тому, что тактовый импульс придет настолько позже или раньше соответствующего сигнала данных, что бит данных будет пропущен или считан повторно. Другой причиной, по которой в сетях отказываются от использования тактирующих импульсов, является экономия проводников в дорогостоящих кабелях.

Поэтому в сетях применяются так называемые самосинхронизирующиеся коды, сигналы которых несут для передатчика указания о том, в какой момент времени нужно осуществлять распознавание очередного бита (или нескольких бит, если код ориентирован более чем на два состояния сигнала). Любой резкий перепад сигнала - так называемый фронт - может служить хорошим указанием для синхронизации приемника с передатчиком.

а) Потенциальный код без возвращения к нулю (Non Return to Zero, NRZ): При передаче длинной последовательности единиц или нулей сигнал на линии не изменяется, поэтому приемник лишен возможности определять по входному сигналу моменты времени, когда нужно в очередной раз считывать данные. Поэтому при высоких скоростях и длинных последовательностях единиц или нулей может привести к считыванию некорректного значения бита.

б) метод биполярного кодирования с альтернативной инверсией (Bipolar Alternate Mark Inversion, AMI). В этом методе используются три уровня потенциала - отрицательный, нулевой и положительный. 0 – это нулевой потенциал, а логическая 1 кодируется либо положительным потенциалом, либо отрицательным, при этом потенциал каждой новой единицы противоположен потенциалу предыдущей. Длинные последовательности нулей также опасны для кода AMI, как и для кода NRZ. Второй разновидностью такого метода является Потенциальный код с инверсией при единице (Non Return to Zero with ones Inverted, NRZI) При передаче нуля он передает потенциал, который был установлен в предыдущем такте (то есть не меняет его), а при передаче единицы потенциал инвертируется на противоположный

в) Биполярный импульсный код, в котором единица представлена импульсом одной полярности, а ноль – другой. Каждый импульс длится половину такта, а вторую половину такта импульс отсутствует. Такой код обладает отличными самосинхронизирующими свойствами, но из-за слишком широкого спектра биполярный импульсный код используется редко.

г) Манчестерский код. В локальных сетях Ethernet и Token Ring.он является самым распространенным методом кодирования. В нем для кодирования единиц и нулей используется перепад потенциала. При кодировании каждый такт делится на две части. Первая часть используется для передачи значения бита, а вторая – противоположным значением (перепадом потенциала). Так как сигнал изменяется по крайней мере один раз за такт передачи одного бита данных, то манчестерский код обладает хорошими самосинхронизирующими свойствами. Полоса пропускания манчестерского кода уже, чем у биполярного импульсного. Манчестерский код имеет еще одно преимущество перед биполярным импульсным кодом: в нем используются не три уровня сигнала, а два.

д) Потенциальный код 2B1Q

На рис. 5- д показан потенциальный код с четырьмя уровнями сигнала для кодирования данных. Это код 2B1Q, название которого отражает его суть - каждые два бита (2В) передаются за один такт сигналом, имеющим четыре состояния (1Q), Паре бит 00 соответствует потенциал -2,5 В, паре бит 01 соответствует потенциал -0,833 В, паре 11 - потенциал +0,833 В, а паре 10 - потенциал +2,5 В. При этом способе кодирования требуются дополнительные меры по борьбе с длинными последовательностями одинаковых пар бит, так как при этом сигнал превращается в постоянную составляющую. При случайном чередовании бит спектр сигнала в два раза уже, чем у кода NRZ, так как при той же битовой скорости длительность такта увеличивается в два раза. Таким образом, с помощью кода 2B1Q можно по одной и той же линии передавать данные в два раза быстрее, чем с помощью кода AMI или NRZI. Однако для его реализации мощность передатчика должна быть выше, чтобы четыре уровня четко различались приемником на фоне помех.

 

Существуют и другие методы кодирования, которые улучшают синхронизацию, а также улучшают контроль передачи данных. Например, методы кодирования с избыточными кодами. Избыточные коды основаны на разбиении исходной последовательности бит на порции, которые часто называют символами. Затем каждый исходный символ заменяется на новый, который имеет большее количество бит, чем исходный. Например, логический код 4В/5В, используемый в технологиях FDDI и Fast Ethernet, заменяет исходные символы длиной в 4 бита на символы длиной в 5 бит. Соответствие исходных и результирующих кодов 4В/5В представлено ниже на Рис.6.

 

Рис.6. Кдирование 4В/5В

Такое дополнение 1 битом позволяет не только улучшить синхронизацию (5-й бит добавляется так, чтобы не было длинных последовательностей 1 или 0), но и определить разрешенные комбинации из 5 бит. В таблице представлено 16 комбинаций ( а существует всего 32). Если приемник получает неразрешенную комбинацию, то это для него сигнал о неверно принятых данных.

Использование таблицы перекодировки является очень простой операцией, поэтому этот подход не усложняет сетевые адаптеры и интерфейсные блоки коммутаторов и маршрутизаторов.

Для обеспечения заданной пропускной способности линии передатчик, использующий избыточный код, должен работать с повышенной тактовой частотой. Так, для передачи кодов 4В/5В со скоростью 100 Мб/с передатчик должен работать с тактовой частотой 125 МГц. При этом спектр сигнала на линии расширяется по сравнению со случаем, когда по линии передается чистый, не избыточный код. Тем не менее спектр избыточного потенциального кода оказывается уже спектра манчестерского кода, что оправдывает дополнительный этап логического кодирования, а также работу приемника и передатчика на повышенной тактовой частоте.

Дата: 2019-05-28, просмотров: 626.