Разработка устройства кодирования-декодирования 32-х разрядных слов методом Хемминга

СОДЕРЖАНИЕ
/> 
Введение
1 Анализ способовкодирования информации
1.1 Проверка чётности
1.2 Код CRC
1.3 Код Хэмминга
1.4 Код Рида – Соломона
2 Разработка стенда контроляпередаваемой информации
2.1 Разработкаустройства кодирования (кодера) информации методом Хемминга
2.2 Разработкаустройства декодирования (декодера) информации методом Хемминга
2.3 Реализация кодера –декодера на базе ИМС К555ВЖ1      
2.3.1 Цоколёвка ИМСК555ВЖ1 (SN74LS630)
2.3.2 Разработкапринципиальной схемы устройства      
2.3.3 Принцип работыустройства
3. Экономическая часть
4 Охрана труда и техникибезопасности
4.1 Потенциально опасныеи вредные производственные факторы
4.2 Обеспечениеэлектробезопасности
4.3 Обеспечениесанитарно-гигиенических требований к помещениям учебных лабораторий
4.4 Противопожарнаязащита      
Заключение
Список ссылок

Введение
Характернойчертой научно-технического прогресса, определяющей мощный дальнейший подъем    общественногопроизводства, является широкое внедрение электроники во все отрасли народногохозяйства. Стремительное развитие промышленности и технологий, определилодальнейшее развитие науки на несколько поколений вперёд. Одним из самыхприоритетных направлений науки является микроэлектроника, позволившая достичьвысочайших технологий, которые, в свою очередь, нашли широчайшее применение какв промышленности, так и в научной сфере. Стык этих двух сфер сформировалвеличайшее изобретение современности – цифровой электронный компьютер.
Парккомпьютеров разнообразного назначения растёт стремительными темпами. Внастоящее время персональный компьютер является неотъемлемой частью любогопредприятия, учебных заведений, вычислительных центров, и других учреждений. Скаждым днем растут объемы передаваемой и принимаемой информации. В связи с этимстановится особенно актуальной проблема сохранения целостности передаваемой иобрабатываемой информации. Память компьютера время от времени может делать ошибки из-за всплесковнапряжения на линии электропередачи и по другим причинам. Передача информациитакже сопряжена с различного рода ошибками. Чтобы бороться с такими ошибками,были разработаны специальные способы кодирования информации, позволяющиеобнаружить и исправить возможные ошибки. Существует большое количество видовпомехоустойчивого кодирования. Некоторые виды настолько сложны, что требуютсоздания специального математического аппарата, другие же, напротив, достаточнопросты и понятны. Эффективность разных способов кодирования существенноразличается. Изучение методов кодирования часто становится проблемой из-заизлишней математизированости материала и недостаточной наглядности. Между тем,возможно самостоятельное изготовление простого электрифицированного стенда, котороене приведет к значительным материальным затратам. Это позволяет сформулироватьрабочую гипотезу исследования: изготовление и использованиеэлектрифицированного учебного стенда позволит повысить наглядность работыустройств кодирования/декодирования и, как следствие, качество усвоенияматериала студентами, что говорит об актуальности выбранной темы.
Цельюдипломного проекта является разработка относительно недорогоэлектрифицированного стенда «Устройство кодирования – декодирования 32хразрядных слов методом Хэмминга». В ходе написания дипломного проектаиспользовались следующие методы: исследование проблемы, анализ возможных путейрешения, проектирование и модернизация стенда.

/>1 Анализ способов кодированияинформации
Историякодирования, контролирующего ошибки, началась в 1948 г. публикацией знаменитой статьи Клода Шеннона. Шеннон показал, что с каждым каналом связаноизмеряемое в битах в секунду и называемое пропускной способностью канала числоС, имеющее следующее значение. Если требуемая от системы связи скоростьпередачи информации R (измеряемая в битах в секунду) меньше С, то, используякоды, контролирующие ошибки, для данного канала можно построить такую системусвязи, что вероятность ошибки на выходе будет сколь угодно мала. Основной сдвигпроизошел, когда Боуз и Рой-Чоудхури и Хоквингем нашли большой класс кодов,исправляющих кратные ошибки (коды БЧХ), а Рид и Соломон нашли связанный скодами БЧХ класс кодов для недвоичных каналов. Хотя эти коды остаются среди наиболееважных классов кодов, общая теория блоковых кодов, контролирующих ошибки, с техпор успешно развивалась.
Кодесть форма представления сообщения, не зависящая от его физической сути. Этоотличает код от сигнала, который определяет физическое представление сообщения(и кода) в системе связи. На практике часто связывают абстрактную (символьную)форму кода с физическими сигналами, называя код частотным, временным, фазовым,амплитудным. Код представляют совокупностью (кодовых) символов; помехоустойчивыйкод позволяет обнаруживать или исправлять ошибки в совокупности кодовыхсимволов. Если сообщения обладают внутренними корреляционными связями, т. е.если одно сообщение некоторым образом зависит от другого, как это обычно бываетпри передаче текстов на естественных языках, то помехоустойчивость любого кодаможет быть повышена за счет статистических связей между сообщениями. Если этисвязи слабые, или неизвестны, или их нельзя использовать для повышенияпомехоустойчивости, то в этом случае форма представления сообщения должна бытьизбыточной; в частности, число символов в коде сообщения увеличивают, а междукодовыми символами вводят искусственные корреляционные связи. Поэтому внекоторых случаях помехоустойчивые коды называют избыточными. Введениеизбыточности в код позволяет помимо обнаружения и исправления ошибок повыситьэнергетическую эффективность линии связи, сузить частотный спектр передаваемогосигнала, сократить время вхождения в связь путем повышения помехозащищенноститракта синхронизации, улучшить корреляционные свойства ансамбля сигналов,простыми средствами реализовать разнесенный прием. Вид помехоустойчивого кодазависит от структуры системы связи, обобщенная схема которой приведена на рис.1.1. Рассматриваем системы связи, передающие только дискретные сообщения. Всовременных системах передачи дискретных сообщений последние поступают на входсистемы, как правило, от нескольких источников. Даже если внешний источникодин, сама система связи содержит источник сигналов служебной связи,телеуправления и телесигнализации (ТУ-ТС). Скорость поступления сообщений отразных источников может быть как одинаковой, так и различной синхронной ссобственной тактовой частотой аппаратуры связи или асинхронной с ней. Блокуплотнения (БУ) объединяет сообщения, поступающие от разных источников, вединую последовательность, как правило, двоичных символов с тактовой частотой,соответствующей скорости передачи системы связи.

/>
Рис.1.1 — Схема системы связи
·         ИИ — источникинформации;
·         БУ — блокуплотнения сообщений;
·         КДШ, КДВ — кодерывнешний, внутренний;
·         ПРШ, ПРВ — перемежители внешний, внутренний;
·         М — модулятор;
·         ПД — передатчик;
·         ЛС — линия связи;
·         ПР — приемник;
·         Д — демодулятор;
·         АЦП — аналого-цифровой преобразователь;
·         БДС, БПС, БЛС — блоки додетекторного, последетекторного, логического сложения;
·         ДПШ, ДПВ — деперемежители внешний, внутренний;
·         ДКШ, ДКВ — декодер внешний, внутренний;
·         БР-блокразуплотнения сообщений;
·         ПИ-получательинформации;
·         КОС — каналобратной связи
Еслискорости поступления сообщений от источников асинхронны по отношению ксобственной тактовой частоте системы связи, БУ осуществляет асинхронный вводсообщений. Для того чтобы при временном уплотнении различить сообщения настороне приема, БУ формирует маркер, обозначающий место первого источника вобщем цифровом потоке. Маркер повторяется периодически, образуя сигнал цикловойсинхронизации. Кодер вводит избыточность в передаваемый поток двоичныхсимволов, причем кодирование сообщений в зависимости от требуемой степениповышения помехоустойчивости может выполняться поэтапно и соответственно этапамразличными кодерами. Первый после БУ кодер называют внешним (КДШ), последний — внутренним (КДВ). Сформированный кодером поток символов поступает вперемежитель. Во многих случаях ошибка в одном символе кода влечет за собойошибки и в других смежных с ним символах той же последовательности, вызываяпоявление пакета ошибок на входе декодера, исправляющего ошибки. Если кодрассчитан на исправление m ошибок на интервале из n смежных символов, а пакетошибок вызывает больше чем m ложных символов, ошибка декодером не будетисправлена. Перемежитель разносит во времени смежные символы исходной кодовойпоследовательности более чем на n символов. При деперемежении на стороне приемаразнесенные символы вновь собирают вместе; одновременно ошибки в пакете будутразнесены деперемежителем во времени более чем на n символов, и соответствующийдеперемежителю декодер такие разнесенные ошибки сможет исправить. Перемеженнаяпоследовательность кодированных символов поступает в общем случае в нескольковетвей разнесения, каждая из которых содержит модулятор, передатчик, линиюсвязи и приемник. В системах с линиями радиосвязи для борьбы с замираниями иузкополосными помехами, действующими в части частотного диапазона, применяютпрограммную (или, как ее иногда называют, псевдослучайную) перестройку рабочихчастот (ППРЧ), соответствующие устройства входят в состав передатчика иприемника.
Сложениесигналов в разнесенных ветвях на стороне приема может производиться как навходе демодулятора (додетекторное сложение), так и на его выходе(последетекторное сложение). В частности, если сигналы в ветвях некогерентны,последетекторное сложение называют квадратичным. Сравнительно недавно всистемах связи с кодированными сигналами стали применять логическое объединениеветвей разнесения, реализующее последетекторный автовыбор ветви с наименьшимчислом ошибок. Демодулятор (Д) производит оптимальную обработку элементасигнала, заканчивающуюся обычно интегрированием со сбросом интегратора вопределенный тактовый момент времени. Тем самым демодулятор дискретизирует вовремени смесь огибающей сигнала с шумом. Формирование тактовых импульсовосуществляют устройства тактовой синхронизации, входящие в состав демодулятора.Аналого-цифровой преобразователь (АЦП) на выходе демодулятора дискретизирует(квантует) смесь огибающей сигнала с шумом по уровню. При квантовании на двауровня декодируется двоичный сигнал. Максимальное число уровней квантования,как правило, не превышает 16. Обычно число уровней равно 2, 4, 8 или 16.Декодер, работающий с двоичным сигналом, называют жестким, с недвоичным — мягким. Для работы декодера необходимы специфические (групповые) тактовыеимпульсы, формируемые в тракте групповой синхронизации, входящем в составдекодера. Назначение декодера состоит в уменьшении числа ошибок в сообщениях,выдаваемых системой связи, путем использования избыточности, заложенной в символьныйпоток кодером. Часть системы связи, включающая линию (радио- или проводную),называется каналом. Часть системы от выхода модулятора до входа АЦП образуетканал передачи-приема сигнала, непрерывного по уровню (но дискретного повремени). Часть системы от выхода модулятора до выхода АЦП образует канал свходным сигналом, непрерывным по уровню и времени, и с выходным дискретнымсигналом. От входа модулятора до выхода АЦП имеем дискретный (по времени иуровню) канал. В двунаправленной системе связи обычно создают канал обратнойсвязи, по которому осуществляют управление работой системы.
Схемана рис. 1.1 может видоизменяться в зависимости от конкретной реализации системысвязи. В каналах действуют искажения сигналов, шумы, помехи, которые вдискретном канале проявляются в виде перехода одного значения символа в другое- ложное (событие, состоящее в появлении ошибки) или неиспользуемое (событие,которое называют стиранием). В зависимости от характера ошибок различаютдискретные каналы: симметричный (все ложные значения символов равновероятны),асимметричный (некоторые ложные значения символов обладают большейвероятностью), без памяти (искажение символа не зависит статистически отискажения другого выходного символа), с памятью (искажение символа выходной последовательностизависит статистически от искажения другого символа той же последовательности),со стираниями (наряду с ошибками имеют место стирания символов).
Любойканал связи с ограниченными полосой частот, временем передачи и динамическимдиапазоном (значений амплитуд) обладает конечной пропускной способностью.Теоретически пропускная способность — это максимальное число переданныхдвоичных единиц (бит) в единицу времени при сколь угодно малой вероятностиошибок. Реально получаемое число передаваемых бит в единицу времени называютскоростью передачи. При неограниченно малой вероятности ошибок скоростьпередачи всегда меньше пропускной способности. В канале с ошибками максимальноезначение скорости получают путем использования помехоустойчивого кодирования.Последнее требует введения избыточности в передаваемый сигнал: по времени,частоте или амплитуде. Если код согласован с каналом, т. е. код позволяетисправлять наиболее вероятные ошибки, введенная избыточность становитсяоправданной. Если код не согласован с каналом, ошибки могут быть не только неисправлены, но и размножены кодом. В этом случае применение помехоустойчивогокодирования принесет не пользу, а вред. Для согласования кода с каналом связинеобходимо иметь максимальный объем сведений о возможных мешающих влияниях вканалах.
/>
Рис.1.2 — Классификация помехоустойчивых кодов
Кнастоящему времени разработано иного различных помехоустойчивых кодов,отличающихся друг от друга основанием, расстоянием, избыточностью, структурой,функциональным назначением, энергетической эффективностью, корреляционнымисвойствами, алгоритмами кодирования и декодирования, формой частотного спектра.На рис 1.2 приведены типы кодов, различающиеся по особенностям структуры,функциональному назначению, физическим свойствам кода как сигнала. />Наиболееважный подкласс непрерывных кодов образуют сверточные коды, отличающиеся отдругих непрерывных кодов методом построения и более широкой областьюприменения. В общем случае чем длиннее код при фиксированной избыточности, тембольше расстояние и тем выше помехоустойчивость кода. Однако длинные кодысложно реализуются. Составные коды дают компромиссное решение задачи, из нихосновное значение имеют каскадные коды и коды произведения./> Какправило, каскадный код состоит из двух ступеней (каскадов): внутренней ивнешней. По линии связи сигналы передают внутренним кодом nвт,символьные слова которого являются символами внешнего кода длины nвш.Основание внешнего кода равно qвтk./> Кодыпроизведения строят в виде матрицы, в которой строки суть слова одного кода, астолбцы — того же или другого кода. При формировании каскадного кода входнуюинформационную последовательность символов разбивают на блоки по kвтсимволов в каждом, каждый блок сопоставляют с информационным символом внешнегокода из алфавита, содержащего qвтk значений символов.Затем kвш информационных символов внешнего кода преобразуют в блокииз nвш символов внешнего кода и, наконец, блоки из kвтинформационных символов внутреннего кода преобразуют в блоки из nвтсимволов внутреннего кода. Возможны различные варианты: внешний и внутреннийкоды — блочные, внешний блочный — внутренний сверточный, внешний сверточный — внутренний блочный, внешний и внутренний сверточные.
Одиниз наиболее распространенных методов формирования кода произведения заключаетсяв последовательной записи по k1 символов входной информационнойпоследовательности в k2 строк матрицы (например, в ячейки памятиОЗУ), добавлении избыточных символов по n1-k1 в каждуюстроку и по n2-k2 в каждый столбец, после чего впоследовательность символов кода считывают по строкам или столбцам из матрицы.Физическим аналогом кода произведения является, в частности, частотно-временнойкод, у которого строки располагаются вдоль оси времени, а столбцы — по осичастот.
Параметрысоставных кодов: каскадных — n=nвшnвт, k=kвшkвт,d=dвшdвт; произведения — n=n1n2,k=k1k2, d=d1d2. />Производныекоды строят на основе некоторого исходного кода, к которому либо добавляютсимволы, увеличивая расстояние (расширенный код), либо сокращают частьинформационных символов без изменения расстояния (укороченный код), либовыбрасывают (выкалывают) некоторые символы (выколотый, или перфорированныйкод). Код Хэмминга дает пример процедуры расширения, увеличивающей расстояниекода с 3 до 4. Необходимость в выкалывании возникает в результате построения наоснове исходного кода другого, менее мощного, более короткого кода с тем жерасстоянием. При более широкой трактовке термина «производный код» кэтому классу можно отнести все коды, полученные из исходного добавлением илиисключением как символов, так и слов.
/>Формально деление кодов на двоичные и недвоичные носитискусственный характер; по аналогии следует выделять троичные, четверичные идругие коды большего основания. Оправдывается такое деление усложнениемалгоритмов построения, кодирования и декодирования недвоичных кодов. При прочихравных условиях желательно, чтобы информационные и избыточные символы располагалисьотдельно. В систематических />кодах это условие выполняется. Вциклических кодах каждое слово содержит все свои циклические перестановки. Всеn циклических перестановок (слова длины n) образуют цикл. В квазициклическихкодах цикл образуется на числе символов n-1 или, реже, n 2. />Циклическиекоды важны как с точки зрения математического описания, так и для построения иреализации кода.
Ошибкив каналах связи имеют самое различное распределение, однако для выборапомехоустойчивого кода целесообразно разделить все возможные конфигурацииошибок на независимые (некоррелированные) и пакеты (коррелированные ошибки). Напрактике приходится учитывать качество интервалов между пакетами: они могутбыть свободными от ошибок или же содержать случайные независимые ошибки. Подкорреляционными />подразумевают коды, обладающие хорошимикорреляционными свойствами, важными при передаче сигналов вхождения в связь,для повышения защищенности от некоторых видов помех, извлечения сигналов изинтенсивных шумов, обеспечения многостанционного доступа, построенияасинхронно-адресных систем связи. Корреляционные коды включают в себя парыпротивоположных сигналов с хорошей функцией автокорреляции (методвнутриимпульсной модуляции), импульсно-интервальные коды, имеющие на фиксированноминтервале времени постоянное для всех слов кода число импульсов снеперекрывающимися (при любом взаимном сдвиге слов во времени) значениямиинтервалов между импульсами, ансамбли сигналов с хорошими взаимокорреляционнымисвойствами.
Особыйкласс образуют частотно-компактные/> коды, предназначенные длясосредоточения энергии сигнала в возможно более узкой полосе частот. Стольобщая постановка задачи понимается в различных системах связи по-разному: впроводных линиях и линейных трактах, содержащих полосно-ограничивающие фильтрыс крутыми фронтами, необходимо основную энергию сигналa «отодвинуть»от крайних частот к центру полосы пропускания целью уменьшения межсимвольныхискажений; в сетях радиосвязи с жесткими ограничениями по электромагнитной совместимостирадиосредств от кода требуется значительно (на десятки децибел) уменьшитьуровень внеполосных излучений. Построение кодирование и декодированиечастотно-компактных кодов существенно зависят от метода модуляции.
Арифметические/>коды служат для борьбы с ошибками при выполнении арифметическихопераций в процессоре ЭВМ.
Такжевыделены еще два типа кодов: блоковые/> и древовидные.Определяющее различие между кодерами для кодов этих двух типов состоит вналичии или отсутствии памяти. Кодер для блокового кода является устройствомбез памяти, отображающим последовательности из k входных символов впоследовательности из n выходных символов. Термин «без памяти»указывает, что каждый блок из n символов зависит только от соответствующего блокаиз k символов и не зависит от других блоков. Это не означает, что кодер несодержит элементов памяти. Важными параметрами блокового кода являются n, k,R=k/n и dmin. На практике значения k лежат между 3 и несколькимисотнями, a R= =1/4 …7/8. Значения, лежащие вне этих пределов, являютсявозможными, но часто приводят к некоторым практическим трудностям. Входные ивыходные последовательности обычно состоят из двоичных символов, но иногдамогут состоять из элементов некоторого алфавита большего объема. Кодер для древовидногокода является устройством с памятью, в которое поступают наборы из m двоичныхвходных символов, а на выходе появляются наборы из n двоичных выходныхсимволов. Каждый набор n выходных символов зависит от текущего входного набораи от v предыдущих входных символов. Таким образом, память кодера должнасодержать v+m входных символов. Параметр v+m часто называют длиной кодовогоограничения данного кода и обозначают k=v+m (не следует путать с параметром kдля блокового кода). Длиной кодового ограничения будем называть величину v.Типичные значения параметров древовидных кодов таковы: m, n=1…8, R= 1/4…7/8, v=2…60.
Придругом подходе коды можно разделить на линейные и нелинейные. Линейные />коды образуют векторное пространство и обладают следующим важнымсвойством: два кодовых слова можно сложить, используя подходящее определениесуммы, и получить третье кодовое слово. В случае обычных двоичных кодов этаоперация является посимвольным сложением двух кодовых слов по модулю 2 (т. е.1+1=0, 1+0=1, 0+0=0). Это свойство приводит к двум важным следствиям. Первое изних состоит в том, что линейность существенно упрощает процедуры кодирования идекодирования, позволяя выразить каждое кодовое слово в виде«линейной» комбинации небольшого числа выделенных кодовых слов, такназываемых базисных векторов. Второе свойство состоит в том, что линейностьсущественно упрощает задачу вычисления параметров кода, поскольку расстояниемежду двумя кодовыми словами при этом эквивалентно расстоянию между кодовымсловом, состоящим целиком из нулей, и некоторым другим кодовым словом. Такимобразом, при вычислении параметров линейного кода достаточно рассмотреть, чтопроисходит при передаче кодового слова, состоящего целиком из нулей. Вычислениепараметров упрощается еще и потому, что расстояние Хемминга между даннымкодовым словом и нулевым кодовым словом равно числу ненулевых элементов данногокoдового слова. Это число часто называют весом Хемминга данного слова, исписок, содержащий число кодовых слов каждого веса, можно использовать длявычисления характеристик кода с помощью аддитивной границы. Такой списокназывают спектром кода. Линейные коды отличаются от нелинейных замкнутостьюкодового множества относительно некоторого линейного оператора, напримерсложения или умножения слов кода, рассматриваемых как векторы пространства,состоящего из кодовых слов — векторов. Линейность кода упрощает его построениеи реализацию. При большой длине практически могут быть использованы тольколинейные коды. Вместе с тем часто нелинейные коды обладают лучшими параметрамипо сравнению с линейными. Для относительно коротких кодов сложность построенияи реализации линейных и нелинейных кодов примерно одинакова. Как линейные, таки нелинейные коды образуют обширные классы, содержащие много различныхконкретных видов помехоустойчивых кодов. Среди линейных блочных наибольшеезначение имеют коды с одной проверкой на четность, M-коды (симплексные),ортогональные, биортогональные, Хэмминга, Боуза-Чоудхури-Хоквингема, Голея,квадратично-вычетные (KB), Рида-Соломона. К нелинейным относят коды сконтрольной суммой, инверсные, Нордстрома-Робинсона (HP), с постоянным весом,перестановочные с повторением и без повторения символов (полные кодыортогональных таблиц, проективных групп, групп Матье и других группперестановок). Почти все схемы кодирования, применяемые на практике, основанына линейных кодах. Двойные линейные блоковые коды часто называют групповымикодами, поскольку кодовые слова образуют математическую структуру, называемуюгруппой. Линейные древовидные коды обычно называют сверточными кодами,поскольку операцию кодирования можно рассматривать как дискретную сверткувходной последовательности с импульсным откликом кодера.
Наконец,коды можно разбить на коды, исправляющие случайные ошибки/>, икоды, исправляющие пакеты ошибок. В основном будем иметь дело с кодами,предназначенными для исправления случайных, или независимых, ошибок. Дляисправления пакетов ошибок/> было создано много кодов, имеющиххорошие параметры. Однако при наличии пачек ошибок часто оказывается болеевыгодным использовать коды, исправляющие случайные ошибки, вместе с устройствомперемежения восстановления. Такой подход включает в себя процедуруперемешивания порядка символов в закодированной последовательности перед передачейи восстановлением исходного порядка символов после приема с тем, чтобырандомизировать ошибки, объединенные в пакеты.
/> 
1.1Проверка чётности
Контрольчетности или коррекция ошибок (ECC (код исправления ошибок)) используется восновном только в жизненно важных компьютерных системах, где недопустима дажеодна ошибка в несколько десятилетий. Проверка четности – довольно простой методобнаружения ошибок памяти, без возможности восстановления. Каждый байт данныхсвязан с одним битом четности или так называемым паритетным битом. Этот битустанавливается во время записи, и затем рассчитывается и сравнивается во времячтения. Изменение состояния этого бита говорит о возникшей ошибке. Этот методограничен определением изменения состояния одиночного бита в байте. В случаеизменения состояния двух битов, возможна ситуация, когда вычисление паритетногобита совпадет с записанным. В этом случае система не определит ошибку, ипроизойдет экстренная остановка системы. Так как приблизительно 90% всехнерегулярных ошибок происходит именно с одиночным разрядом, проверки четностибывает достаточно для большинства ситуаций. К сожалению необходимость вдополнительных вычислениях паритетного бита требует некоторых затрат процессорноговремени, что несколько снижает производительность всей системы. Болееинтересным методом проверки ошибок работы памяти является т.н. ECC иликоррекция ошибок или код исправления ошибок. Этот метод включает определениеошибки не только в одиночном разряде, но и двух, трех и четырех разрядах. Крометого ECC может также исправлять ошибку в одиночном разряде. ECC может бытьреализован или на модуле памяти (ECC – on – Simm, или EOS) или в чипсете.Однако модули EOS встречаются крайне редко. ECC основывается на алгоритме«хешинга», который работает одновременно с 8 байтами (64 бита), и размещаетрезультат в 8-ми разрядное ECC слово. Во время считывания результат ECC словасравнивается с рассчитанным, подобно тому, как происходит в методе проверки четности.Основное различие состоит в том, что в проверке четности каждый бит связан содним байтом, в то время как ECC слово связана со всеми 8 байтами. Этоозначает, что разрядные значения для ECC не будут теми же, что и индивидуальныебиты для проверки четности для тех же восьми байтов, поэтому модули ECC немогут использоваться в режиме четности (однако, паритетные модули, могутиспользоваться в режиме ECC, как описано ниже). ECC модули могут использоватьсяна не паритетный и на ECC/ non-ECC платах. Модуль ECC не может использоваться врежиме проверки четности. Причина этого является схемотехническая реализациямодуля ECC. Он не может устанавливать отдельные биты, поэтому чипсет не будетзаписывать правильные данные в ECC слово.
/> 
1.2Код CRC
Методыобнаружения ошибок предназначены для выявления повреждений со общений при ихпередаче по зашумленным каналам (вносящих эти ошибки). Для этого передающее устройствосоздает некоторое число, называемое контрольной суммой и являющееся функциейсообщения, и добавляет его к этому сообщению. Приемное устройство, используятот же самый алгоритм, рассчитывает контрольную сумму принятого сообщения и сравниваетее с переданным значением. Например, если для расчета контрольной суммы используемпростое сложение байтов сообщения по модулю 256, то может возникнуть примерно следующаяситуация. (Все числа примера десятичные.)
Сообщение:6 23 4
Сообщениес контрольной суммой: 6 23 4 33
Сообщениепосле передачи: 6 27 4 33
Каквидно, второй байт сообщения при передаче оказался измененным с 23 на 27. Приемникможет обнаружить ошибку, сравнивая переданную контрольную сумму (33) срассчитанной им самим: 6 + 27 + 4 = 37. Если при правильной передаче сообщенияокажется поврежденной сама контрольная сумма, то такое сообщение будет неверно интерпретировано,как искаженное. Однако, это не самая плохая ситуация. Более опасно, одновременноеповреждение сообщения и контрольной суммы таким образом, что все сообщениеможно посчитать достоверным. К сожалению, исключить такую ситуацию невозможно,и лучшее, чего можно добиться, это снизить вероятность ее появления, увеличиваяколичество информации в контрольной сумме (например, расширив ее с одного до 2байт).
Ошибкииного рода возникают при сложных преобразованиях сообщения для удаления из негоизбыточной информации. Однако, данная статья посвящена только расчетам CRC,которые относятся к классу алгоритмов, не затрагивающих само го сообщения илишь добавляющих в его конце контрольную сумму:

Требованиясложности
Вышепоказано, что повреждение сообщения может быть обнаружено, используя в качествеалгоритма контроля простое суммирование байтов сообщения по модулю 256:
Сообщение:6 23 4
Сообщениес контрольной суммой: 6 23 4 33
Сообщениепосле передачи: 6 27 4 33
Недостатокэтого алгоритма в том, что он слишком прост. Если произойдет несколькоискажений, то в 1 случае из 256 не сможем их обнаружить. Например:
Сообщение:6 23 4
Сообщениес контрольной суммой: 6 23 4 33
Сообщениепосле передачи: 8 20 5 33
Дляповышения надежности можно было бы изменить размер регистра с 8 битного на 16битный (то есть суммировать по модулю 65536 вместо модуля 256), что скореевсего снизит вероятность ошибки с 1/256 до 1/65536. Хотя это и неплохая идея,однако, она имеет тот недостаток, что применяемая формула расчета не«случайна» в должной степени — каждый суммируемый байт оказывает влияниелишь на один байт суммирующего регистра, при этом ширина самого регистра не имеетникакого значения. Например, во втором случае суммирующий регистр мог бы иметьширину хоть мегабайт, однако ошибка все равно не была бы обнаружена. Проблемаможет быть решена лишь заменой простого суммирования более сложной функцией,чтобы каждый новый байт оказывал влияние на весь регистр контрольной суммы.
Такимобразом, сформулировано 2 требования для формирования надежной контрольнойсуммы:
Ширина:Размер регистра для вычислений должен обеспечивать изначальную низкуювероятность ошибки (например, 32 байтный регистр обеспечивает вероятностьошибки 1/232).
Случайность:Необходим такой алгоритм расчета, когда каждый новый байт может оказать влияниена любые биты регистра.
Обратимвнимание, что термин «контрольная сумма» изначально описывал достаточнопростые суммирующие алгоритмы, однако, в настоящее время он используется вболее широком смысле для обозначения сложных алгоритмов рас чета, таких какCRC. Алгоритмы CRC, которые и будем рассматривать в дальнейшем, очень хорошоудовлетворяют второму условию и, кроме того, могут быть адаптированы для работыс различной шириной контрольной суммы.
Контрольнаясумма (Checksum) – Число, которое является функцией некоторого сообщения. Буквальнаяинтерпретация данного слова указывает на то, что выполняется простое суммированиебайтов сообщения, что, по видимому, и делалось в ран них реализациях расчетов. Однако,на сегодняшний момент, несмотря на использование более сложных схем, данныйтермин все имеет широкое применение.
Еслисложение, очевидно, не пригодно для формирования эффективной контрольной суммы,то таким действием вполне может оказаться деление при условии, что делительимеет ширину регистра контрольной суммы.
Основнаяидея алгоритма CRC состоит в представлении сообщения виде огромного двоичногочисла, делении его на другое фиксированное двоичное число и использованииостатка этого деления в качестве контрольной суммы. Получив сообщение, приемникможет выполнить аналогичное действие и сравнить полученный остаток с«контрольной суммой» (переданным остатком).
Пример:
Предположим,что сообщение состоит из 2 байт (6, 23), как и в предыдущем примере. Их можно рассматривать,как шестнадцатеричное число 0167h, или как двоичное число 0000 0110 0001 0111. Предположим,что ширина регистра контрольной суммы составляет 1 байт, а в качестве делителяиспользуется 1001, тогда сама контрольная сумма будет равна остатку от деления0000 0110 0001 0111 на 1001. Хотя в данной ситуации деление может быть выполненос использованием стандартных 32 битных регистров, в общем случае это не верно. Поэтомувоспользуемся делением «в столбик». Только на этот раз, оно будетвыполняться в двоичной системе счисления:
…0000010101101= 00AD = 173 =
—-_—_—_—_
9=1001 ) 0000011000010111 = 0617 = 1559 =
0000.,,….,.,,,
—-.,,….,.,,,
0000,,….,.,,,
0000,,….,.,,,
—-,,….,.,,,
0001,….,.,,,
0000,….,.,,,
—-,….,.,,,
0011….,.,,,
0000….,.,,,
—-….,.,,,
0110…,.,,,
0000…,.,,,
—-…,.,,,
1100..,.,,,
1001..,.,,,
====..,.,,,
0110.,.,,,
0000.,.,,,
—-.,.,,,
1100,.,,,
1001,.,,,
====,.,,,
0111.,,,
0000.,,,
—-.,,,
1110,,,
1001,,,
====,,,
1011,,
1001,,
====,,
0101,
0000,
—-
1011
1001
====
0010= 02 = 2
Вдесятичном виде это будет звучать так: «частное от деления 1559 на 9 равно173 и 2 в остатке».
Хотявлияние каждого бита исходного сообщения на частное не столь существенно,однако 4 битный остаток во время вычислений может радикально измениться, и чембольше байтов имеется в исходной сообщении (в делимом), тем сильнее меняетсякаждый раз величина остатка. Вот почему деление оказывается применимым там, гдеобычное сложение работать отказывается.
Внашем случае передача сообщения вместе с 4 битной контрольной суммой выгляделабы (в шестнадцатеричном виде) следующим образом: 06172, где 0617 – это самосообщение, а 2 – контрольная сумма. Приемник, получив сообщение, мог бывыполнить аналогичное деление и проверить, равен ли остаток переданномузначению (2).
Хотяарифметическое деление, описанное выше, очень похоже на схему расчетаконтрольной суммы, называемой CRC, сам же алгоритм CRC несколько более сложен,и, чтобы понять его, необходимо окунуться в теорию целых чисел.
Полином(Polynomial) – Полином является делителем CRC алгоритма.
ВсеCRC алгоритмы основаны на полиномиальных вычислениях, и для любого алгоритмаCRC можно указать, какой полином он использует.
Вместопредставления делителя, делимого (сообщения), частного и остатка в виде положительныхцелых чисел можно представить их в виде полиномов с двоичными коэффициентамиили в виде строки бит, каждый из которых является коэффициентом полинома. Например,десятичное число 23 в шестнадцатеричной системе счисления имеет вид 17, а вдвоичном – 10111, что совпадает с полиномом:
1*x^4+ 0*x^3 + 1*x^2 + 1*x^1 + 1*x^0
или,упрощенно:
x^4+ x^2 + x^1 + x^0
Исообщение, и делитель могут быть представлены в виде полиномов, с которыми каки раньше можно выполнять любые арифметические действия. Предположим, что хотимперемножить, например, 1101 и 1011. Это можно выполнить, как умножениеполиномов:
(x^3+ x^2 + x^0)(x^3 + x^1 + x^0)
=(x^6 + x^4 + x^3
+x^5 + x^3 + x^2
+x^3 + x^1 + x^0) = x^6 + x^5 + x^4 + 3*x^3 + x^2 + x^1 + x^0
Теперьдля получения правильного ответа необходимо указать, что Х равен 2, и выполнитьперенос бита от члена 3*x^3.
Врезультате получим:
x^7+ x^3 + x^2 + x^1 + x^0
Всеэто очень похоже на обычную арифметику, с той лишь разницей, что основание унас лишь предполагается, а не строго задано. Если «X» неизвестен, тоне можем выполнить перенос. Неизвестно, что 3*x^3 – это то же самое, что и x^4+ x^3, так как не знаем, что X=2. В полиномиальной арифметике связи междукоэффициентами не установлены, и, поэтому, коэффициенты при каждом члене полиномастановятся строго типизированными — коэффициент при x^2 имеет иной тип, чем приx^3.
Есликоэффициенты каждого члена полинома совершенно изолированы друг от друга, томожно работать с любыми видами полиномиальной арифметики, просто меняя правила,по которым коэффициенты работают. Одна из таких схем для нас чрезвычайно интересна,а именно, когда коэффициенты складываются по модулю 2 без переноса – то естькоэффициенты могут иметь значения лишь 0 или 1, перенос не учитывается. Этоназывается «полиномиальная арифметика по модулю 2».
Возвращаяськ предыдущему примеру:
(x^3+ x^2 + x^0)(x^3 + x^1 + x^0)
=(x^6 + x^4 + x^3
+x^5 + x^3 + x^2
+x^3 + x^1 + x^0)
= x^6+ x^5 + x^4 + 3*x^3 + x^2 + x^1 + x^0
Поправилам обычной арифметики, коэффициент члена 3*x^3 распределяется по другим членамполинома, используя механизм переноса и предполагая, что X = 2. В «полиномиальнойарифметике по модулю 2» не известно, чему равен «X», переносовздесь не существует, а все коэффициенты рассчитываются по модулю 2. Врезультате получаем:
=x^6 + x^5 + x^4 + x^3 + x^2 + x^1 + x^0
Такимобразом, полиномиальная арифметика по модулю 2 – это фактически двоичная арифметикапо модулю 2 без учета переносов. Хотя полиномы имеют удобные математическиесредства для анализа CRC алгоритмов и алгоритмов коррекции ошибок, дляупрощения дальнейшего обсуждения они будут заменены, на непосредственныеарифметические действия в системе, с которой они изоморфны, а именно в системедвоичной арифметики без переносов.
Двоичнаяарифметика без учета переносов
Оставимполиномы вне поля нашего внимания, и сфокусируем его на обычной арифметике, таккак действия, выполняемые во время вычисления CRC, являются арифметическимиоперациями без учета переносов. Эта арифметическая система является ключевойчастью расчетов CRC.
Сложениедвух чисел в CRC арифметике полностью аналогично обычному арифметическому действиюза исключением отсутствия переносов из разряда в разряд. Это означает, чтокаждая пара битов определяет результат своего разряда вне зависимости отрезультатов других пар. Например:
10011011
+11001010
——–
01010001
Длякаждой пары битов возможны 4 варианта:
0+0=0
0+1=1
1+0=1
1+1=0( )
Тоже самое справедливо и для вычитания:
10011011
-11001010
——–
01010001
когдаимеются также 4 возможные комбинации:
0-0=0
0-1=1( )
1-0=1
1-1=0
Фактически,как операция сложения, так и операция вычитания в CRC арифметике идентичныоперации «Исключающее ИЛИ» (eXclusive OR – XOR), что позволяетзаменить 2 операции первого уровня (сложение и вычитание) одним действием,которое, одновременно, оказывается инверсным самому себе. Очень удобноесвойство такой арифметики.
Сгруппировавсложение и вычитание в одно единое действие, CRC арифметика исключает из полясвоего внимания все величины, лежащие за пределами самого старшего своего бита.Хотя совершенно ясно, что значение 1010 больше, чем 10, это оказывается не так,когда говорят, что 1010 должно быть больше, чем 1001.
Чтобыпонять почему, попытайтесь получить из 1010 значение 1001, отняв или прибавив кнему одну и ту же величину:
1001= 1010 + 0011
1001= 1010 – 0011
Этосводит на нет всякое представление о порядке. Определив действие сложения, перейдемк умножению и делению. Умножение, как и в обычной арифметике, считается суммойзначений первого сомножителя, сдвинутых в соответствии со значением второгосомножителя.
1101x
1011
—-
1101
1101.
0000..
1101…
——-
1111111
Обратимвнимание: при суммировании используется CRC сложение.
Делениенесколько сложнее, так как требуется знать, когда «одно число превращаетсяв другое ». Чтобы сделать это, необходимо ввести слабое понятиеразмерности: число X больше или равно Y, если позиция самого старшегоединичного бита числа X более значима (или соответствует) позиции самогостаршего единичного бита числа Y. Ниже приведен пример деления:
1100001010
————————————————
10011) 11010110110000
10011,,.,,….
—–,,.,,….
10011,.,,….
10011,.,,….
—–,.,,….
00001.,,….
00000.,,….
—–.,,….
00010,,….
00000,,….
—–,,….
00101,….
00000,….
—–,….
01011….
00000….
—–….
10110…
10011…
—–…
01010..
00000..
—–..
10100.
10011.
—–.
01110
00000
—–
1110=
Этотак и есть. Однако, прежде, чем идти дальше, стоит еще немного задержаться наэтих действиях.
Зная,что действия сложения и вычитания в нашей арифметике – это одно и то же. Втаком случае, A+0=A и A-0=A.
Есличисло A получено умножением числа B, то в CRC арифметике это означает, чтосуществует возможность сконструировать число A из нуля, применяя операцию XOR кчислу B, сдвинутому, на различное количество позиций. Например, если A равно0111010110, а B – 11, то может сконструировать A из B следующим способом:
0111010110
=…….11.
+….11….
+…11…..
11…….
Однако,если бы A было бы равно 0111010111, то не удалось составить его с помощьюразличных сдвигов числа поэтому говорят, что в CRC арифметике оно не делится наB.
Такимобразом, видно, что CRC арифметика сводится главным образом к операции «ИсключающееИЛИ» некоторого значения при различных величинах сдвига.
Определиввсе правила CRC арифметики, можно теперь охарактеризовать вычисление CRC какпростое деление, чем оно фактически и является. Чтобы выполнить вычисление CRC,необходимо выбрать делитель. Говоря математическим языком, делитель называетсягенераторным полиномом (generator polinomial), или просто полиномом, и это ключевоеслово любого CRC алгоритма. Для простоты будет называть CRC полином простополиномом. Можно выбрать и использовать в CRC любой полином. Степень полинома W(Width – ширина) (позиция самого старшего единичного бита) чрезвычайно важна,так как от нее зависят все остальные расчеты. Обычно выбирается степень 16 ил 32,так как это облегчает реализацию алгоритма на со временных компьютерах. Степеньполинома – это действительная позиция старшего бита, например, степень полинома10011 равна 4, а не 5.
Степень(Width) – Степень (или ширина) CRC алгоритма соответствует степе нииспользуемого полинома (или длине полинома минус единица). Например, еслииспользуется полином 11010, то степень алгоритма равна 4. Обычно используетсястепень, кратная 8
Выбравполином приступим к расчетам. Это будет простое деление (в терминах CRCарифметики) сообщения на наш полином. Единственное, что надо будет сделать доначала работы, так это дополнить сообщение W нулевыми битами. Итак, начнем.
Исходноесообщение: 1101011011
Полином:10011
Сообщение,дополненное W битами: 11010110110000
Теперьпросто поделим сообщение на полином, используя правила CRC арифметики. Ранееуже рассматривалось это действие.
1100001010= ( )
—————
10011) 11010110110000 = выровненное сообщение (1101011011 + 0000)
=#,,.,.,,.,,….
10011,,.,,….
—–,,.,,….
10011,.,,….
10011,.,,….
—–,.,,….
00001.,,….
00000.,,….
—–.,,….
00010,,….
00000,,….
—–,,….
00101,….
00000,….
—–,….
01011….
00000….
—–….
10110…
10011…
—–…
01010..
00000..
—–..
10100.
10011.
—–.
01110
00000
—–
1110
Врезультате получаем частное, которое нас не интересует и, поэтому,отбрасывается за ненадобностью, и остаток, который и используется в качествеконтрольной суммы. Расчет закончен. Как правило, контрольная сумма добавляетсяк сообщению и вместе с ним передается по каналам связи. В нашем случае будетпередано следующее сообщение:
11010110111110
Надругом конце канала приемник может сделать одно из равноценных действий:
1.Выделить текст собственно сообщения, вычислить для него контрольную сумму (незабыв при этом дополнить сообщение W битами), и сравнить ее с переданной.
2.Вычислить контрольную сумму для всего переданного сообщения (без добавлениянулей), и посмотреть, получится ли в результате нулевой остаток.
Обаэти варианта совершенно равноправны.
Такимобразом, при вычислении CRC необходимо выполнить следующие действия:
1.Выбрать степень полинома W и полином G (степени W).
2.Добавить к сообщению W нулевых битов. Назовем полученную строку M’.
3.Поделим M’ на G с использованием правил CRC арифметики. Полученный остаток ибудет контрольной суммой.
Надоотметить, что переданное сообщение T является произведением полинома. Чтобыпонять это, обратите внимание, что 1) последние W бит сообщения – это остатокот деления дополненного нулями исходного сообщения на выбранный полином, и 2)сложение равносильно вычитанию, поэтому прибавление остатка дополняет значениесообщения до следующего полного произведения. Теперь смотрите, если сообщениепри передаче было повреждено, то получим со общение T E, где E – это векторошибки, а ‘ ‘ – это CRC сложение (или операция XOR). Получив сообщение,приемник делит T E на G. Так как T mod G = 0, (T E) mod G = E mod G. Следовательно,качество полинома, который выбираем для перехвата некоторых определенных видов ошибок,будет определяться набором произведений G, так как в случае, когда E такжеявляется произведением G, такая ошибка выявлена не будет. Следовательно, нашазадача состоит в том, чтобы найти такие классы G, произведения которых будуткак можно меньше похожи на шумы в канале передачи (которые и вызываютповреждение сообщения). Рассмотрим, какие типы шумов в канале передачи можеможидать.
Однобитовыеошибки. Ошибка такого рода означает, что E=1000…0000. Можем гарантировать,что ошибки этого класса всегда будет распознаны при условии, что в G по крайнеймере 2 бита установлены в «1». Любое произведение G может бытьсконструировано операциями сдвига и сложения, и, в тоже время, невозможно получитьзначение с 1 единичным битом сдвигая и складывая величину, имеющую более 1единичного бита, так как в результате всегда будет присутствовать по крайнеймере 2 бита.
Двухбитовые ошибки. Для обнаружения любых ошибок вида 100…000100…000 (то естькогда E содержит по крайней мере 2 единичных бита) необходимо выбрать такое G,которые бы не имело множителей 11, 101, 1001, 10001, и так далее. Такие полиномыдолжны существовать — полином с единичными битами в позициях 15, 14 и 1,который не может быть делителем ни одно числа меньше 1…1, где «…» 32767нулей.
Ошибкис нечетным количеством бит. Может перехватить любые повреждения, когда E имеетнечетное число бит, выбрав полином G таким, чтобы он имел четное количествобит. 1) CRC умножение является простой операцией XOR постоянного регистровогозначения с различными смещениями; 2) XOR – это всего-навсего операцияпереключения битов; и 3) если применяется в регистре операция XOR к величине счетным числом битов, четность количества единичные битов в регистре останетсянеизменной. На пример, начнем с E=111 и попытаемся сбросить все 3 бита в«0» последовательным выполнением операции XOR с величиной 11 и одним из2 вариантов сдвигов (то есть, «E=E XOR 011» и «E=E XOR110»). Это аналогично задаче о перевертывании стаканов, когда за однодействие можно перевернуть одновременно любые два стакана. Большинствопопулярных CRC полиномов содержат четное количество единичных битов.
Пакетныеошибки. Пакетная ошибка выглядит как E=000…000111…11110000…00, то есть Eсостоит из нулей за исключением группы единиц где то в середине. Эту величину можнопреобразовать в E=(10000…00)(1111111…111), где имеется z нулей в левойчасти и n единиц в правой. Для выявления этих ошибок необходимо установитьмладший бит G в 1. При этом необходимо, чтобы левая часть не была множителем G.При этом всегда, пока G шире правой части, ошибка всегда будет распознана.
Вотнесколько популярных полиномов:
16битные: (16,12,5,0) [стандарт «X25»]
(16,15,2,0)[«CRC 16»]
32битные: (32,26,23,22,16,12,11,10,8,7,5,4,2,1,0) [Ethernet]
/> 

1.3Код Хэмминга
Предположим,что слово состоит из mбитов данных, к которым прибавляем г дополнительных битов (контрольныхразрядов). Пусть общая длина слова будет n (то есть n-m+г). п-битнуюединицу, содержащую m битов данных и гконтрольных разрядов, часто называют кодированным словом. Для любых двухкодированных слов, например 10001001 и 10110001, можно определить, сколькосоответствующих битов в них различается. В данном примере таких бита три. Чтобыопределить количество различающихся битов, нужно над двумя кодированнымисловами произвести логическую операцию ИСКЛЮЧАЮЩЕЕ ИЛИ и сосчитать число битовсо значением 1 в полученном результате. Число битовых позиций, по которымразличаются два слова, называется интервалом Хэмминга. Если интервал Хэммингадля двух слов равен d, это значит, чтодостаточно d битовых ошибок, чтобы превратитьодно слово в другое. Например, интервал Хэмминга кодированных слов 11110001 и00110000 равен 3, поскольку для превращения первого слова во второе достаточно3 ошибок в битах. Память состоит из m-битных слов, и следовательно, существует 2m вариантов сочетания битов. Кодированные слова состоятиз n битов, но из-за способа подсчета контрольных разрядов допустимы только 2тиз 2″ кодированных слов. Если в памяти обнаруживается недопустимоекодированное слово, компьютер знает, что произошла ошибка. При наличииалгоритма для подсчета контрольных разрядов можно составить полный списокдопустимых кодированных слов и из этого списка найти два слова, для которыхинтервал Хэмминга будет минимальным. Это интервал Хэмминга полного кода.Свойства проверки и исправления ошибок определенного кода зависят от егоинтервала Хэмминга… Чтобы обнаружить d ошибок в битах, необходим код с интервалом d+1, поскольку dошибок не могут изменить одно допустимое кодированное слово на другоедопустимое кодированное слово. Соответственно, чтобы исправить d ошибок в битах, необходим код синтервалом 2d+l, поскольку в этом случае допустимые кодированные слова таксильно отличаются друг от друга, что даже если произойдет d изменений, изначальное кодированноеслово будет ближе к ошибочному, чем любое другое кодированное слово, поэтомуего без труда можно будет определить.
Вкачестве простого примера кода с обнаружением ошибок рассмотрим код, в которомк данным присоединяется один бит четности. Бит четности выбирается такимобразом, что число битов со значением 1 в кодированном слове четное (илинечетное). Интервал этого кода равен 2, поскольку любая ошибка в битах приводитк кодированному слову с неправильной четностью. Другими словами, достаточнодвух ошибок в битах для перехода от одного допустимого кодированного слова кдругому допустимому слову. Такой код может использоваться для обнаружения одиночныхошибок. Если из памяти считывается слово, содержащее неверную четность,поступает сигнал об ошибке. Программа не сможет продолжаться, но зато не будетневерных результатов.
Вкачестве простого примера кода с исправлением ошибок рассмотрим код с четырьмядопустимыми кодированными словами:
0000000000,0000011111, 1111100000 и 1111111111
Интервалэтого кода равен 5. Это значит, что он может исправлять двойные ошибки. Еслипоявляется кодированное слово 0000000111, компьютер знает, что изначальноеслово должно быть 0000011111 (если произошло не более двух ошибок). При наличиитрех ошибок, если, например, слово 0000000000 изменилось на 0000000111, этотметод недопустим. Представим, что хотим разработать код с m битами данных и г контрольныхразрядов, который позволил бы исправлять все ошибки в битах. Каждое из 2r допустимых слов имеет n недопустимыхкодированных слов, которые отличаются от допустимого одним битом. Ониобразуются инвертированием каждого из n битов в n-битном кодированном слове. Следовательно, каждое из 2r допустимых слов требует п+1возможных сочетаний битов, приписываемых этому слову (п возможных ошибочныхвариантов и один правильный). Поскольку общее число различных сочетаний битовравно 2n, то (n+l)2m
Таккак n=m+r, следовательно,(m+r+1)
Табл.1.1— Размерность кодаРазмер слова Кол-во контроль разрядов Общий размер % увеличения длины слова
8
16
32
64
128
256
512
4
5
6
7
8
9
10
12
21
38
71
136
265
522
50
31
19
11
6
4
2
Этоготеоретического нижнего предела можно достичь, используя метод Ричарда Хэмминга.В коде Хэмминга к слову, состоящему из m битов, добавляется r битов четности, при этом образуется слово длиной m+r битов. Биты нумеруются с единицы (а не с нуля), причемпервым считается крайний левый. Все биты, номера которых — степени двойки,являются битами четности; остальные используются для данных. Например, к16-битному слову нужно добавить 5 битов четности. Биты с номерами 1, 2, 4, 8 и16 — биты четности, а все остальные — биты данных. Всего слово содержит 21 бит(16 битов данных и 5 битов четности). В рассматриваемом примере будем использоватьположительную четность (выбор произвольный). Каждый бит четности проверяетопределенные битовые позиции. Общее число битов со значением 1 в проверяемыхпозициях должно быть четным. Ниже указаны позиции проверки для каждого битачетности:
Бит1 проверяет биты 1,3,5,7,9,11,13,15,17,19,21.
Бит2 проверяет биты 2,3,6,7,10, 11, 14,15,18,19.
Бит4 проверяет биты 4,5,6,7,12,13,14,15,20,21.
Бит8 проверяет биты 8,9, 10, 11,12,13,14,15.
Бит16 проверяет биты 16,17,18,19,20,21.
Вобщем случае бит b проверяетсябитами b1, b2,…, bj, такими что b1+b2+…+bj=b.
Например,бит 5 проверяется битами 1 и 4, поскольку 1+4-5. Бит 6 проверяется битами 2 и4, поскольку 2+4=6 и т. д.
Нарис. 1.3 показано построение кода Хэмминга для 16-битного слова1111000010101110. Соответствующим 21-битным кодированным словом является 001011100000101101110. Чтобы увидеть, как происходит исправление ошибок, рассмотрим,что произойдет, если бит 5 изменит значение из-за резкого скачка напряжения налинии электропередачи. В результате вместо кодированного слова001011100000101101110 получится 001001100000101101110. Будут проверены 5 битовчетности. Вот результаты проверки:
Битчетности 1 неправильный (биты 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 содержатпять единиц).
Битчетности 2 правильный (биты 2,3,6,7,10,11,14,15,18,19 содержат шесть единиц).
Битчетности 4 неправильный (биты 4,5,6,7,12,13,14,15,20,21 содержат пять единиц).
Битчетности 8 правильный (биты 8,9,10,11,12,13,14,15 содержат две единицы).
Битчетности 16 правильный (биты 16,17,18,19,20,21 содержат четыре единицы).
Общеечисло единиц в битах 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 и 21 должно быть четным,поскольку в данном случае используется положительная четность. Неправильнымдолжен быть один из битов, проверяемых битом четности 1 (а именно1,3,5,7,9,11,13,15,17,19 и 21). Бит четности 4 тоже неправильный. Это значит,что изменил значение один из следующих битов: 4,5,6,7,12,13,14,15,20,21. Ошибкадолжна быть в бите, который содержится в обоих списках. В данном случае общимиявляются биты 5,7,13,15 и 21. Поскольку бит четности 2 правильный, биты 7 и 15исключаются. Правильность бита четности 8 исключает наличие ошибки в бите 13.Наконец, бит 21 также исключается, поскольку бит четности 16 правильный. Витоге остается бит 5, в котором и содержится ошибка. Поскольку этот бит имеетзначение 1, он должен принять значение 0. Именно таким образом исправляютсяошибки.
/>
Рис.1.3 — Построение кода Хэмминга для слова 1111000010101110с помощью добавления 5контрольных разрядов к битам данных
Чтобынайти неправильный бит, сначала нужно подсчитать все биты четности. Если ониправильные, ошибки нет (или есть, но больше одной). Если обнаружилисьнеправильные биты четности, то нужно сложить их номера. Сумма, полученная врезультате, даст номер позиции неправильного бита. Например, если биты четности1 и 4 неправильные, а 2, 8 и 16 правильные, то ошибка произошла в бите 5 (1+4)
/> 

1.4Код Рида – Соломона
КодРида-Соломона позволяет скорректировать одну ошибку в одном блоке данных. Приего использовании к каждому блоку информации прибавляются дополнительные дваэлемента X и Y, значение которых находятся исходя из условий:
длятрёх единиц информации (байт): байт1 + байт2 + байт3 + X + Y = 0
байт1+ 2 * байт2 + 3 * байт3 + 4 * X + 5 * Y = 0
длярасчета конкретных значений X и Y для кодирования трёх байт:
Y= 3 * байт1 + 2 * байт2 + байт3X = -4 * байт1 — 3 * байт2 — 2 * байт3
Теперьдля выяснения ошибки и её коррекции применяем следующие расчеты:
Значение_ошибки= байт1 + байт2 + байт3 + X + Y
Таккак ранее (до возникновения ошибки) эта сумма была равна 0, то теперь она равнанепосредственно значению ошибки, которое достаточно просто вычесть изнедоброкачественного байта. В случае если блок принят безошибочно, тоЗначение_ошибки = 0. Теперь найдём байт который надо исправлять:
N= байт1 + 2 * байт2 + 3 * байт3 + 4 * X + 5 * Y
Номер_ошибочного_ байта = N / Значение_ ошибки
Приреализации этого в реальный алгоритм необходимо обязательно осуществлятьпроверку на то существует ошибка в блоке или нет, то есть Значение_ошибки = 0или нет, иначе получаем деление на ноль.
Еслинеобходимо защитить кодом Рида-Соломона блок данных более 3х байт, то формулырасчета корректирующих значений лишь немного изменяются (для 16 байт):
Y= 16 * байт1 + 15 * байт2 + 14 * байт3 +… + байт16X = -17 * байт1 — 16 **байт2 — 15 * байт3 — … — 2 * байт16
Значение_ошибки= байт1 + байт2 + байт3 +… + X + YN = байт1 + 2 * *байт2 + 3 * байт3 +… +16 * байт16 + 17 * X + 18 * Y
Даннымкодом неудобно защищать блоки информации менее 4 байт, так как длиннаконтрольных параметров X и Y должна быть как минимум 4 байта
2байта (DW) для X и 2 байта на Y, то есть получается. что к блоку данных из 4байт будет добавлен корректирующий блок из 4 байт.
Ночто делать, если возникло две или более ошибок в блоке ?
Какодин из признаков возникновения двух ошибок можно считать получения в качественомер ошибочного байта дробного числа, например если в блоке из нулейвстретится 2 единицы (две ошибки), в третьем и четвёртом байтах, то Номерошибочного байта = 3.5 но если 4 единицы, соответственно в 3, 4 и 5 байтах тоНомер ошибочного байта = 4.
/> 

2 Разработкастенда контроля передаваемой информации
Длявизуализации процесса помехоустойчивого кодирования можно разработатьустройство, которое поможет понять принцип работы метода Хэмминга. Кодер –декодер будем разрабатывать на основе ИМС К555ВЖ1.
/> 
2.1Разработка устройства кодирования информации методом Хемминга
Кодер,преобразует 32х битное слово в 38ми разрядный код Хэмминга, после чего словохранится в памяти или передаётся по шинам и т.д. В процессе передачи илихранения в слове может произойти ошибка, поэтому декодер не просто декодируетслово, но и исправляет единичные ошибки. Процесс кодирования и декодированияможно представить в виде блок-схемы приведенной ниже.
/>
Рис.2.1 блок схема кодирования

/>
Рис.2.2 — Схема кодера
Навходы а1, а2…а32 подаётся кодируемое слово. Блоки (элементы) KR1, KR2, KR4, KR8, KR16 и KR32 формируютконтрольные разряды (биты чётности). Весь процесс кодирования сводится кформированию контрольных разрядов и сдвигу имеющихся разрядов. Так, 1й битслова становится 3м битом кода, а 2й – 5м, 1,2,4,8,16,32 биты – контрольные. Врезультате кодирования 32х битное слово становится 38ми битным.

/>
Рис2.3 — Схема блоков KR1 – KR32
БлокиKR1, KR2, KR4, KR8, KR16 и KR32 собраныэлементах исключающее ИЛИ. Итак:
БлокKR1 формирует 1й контрольный разрядподсчитывая чётность 3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35 и 37 битов,если количество единиц в этих разрядах чётное, то контрольный бит равен нулю,если нечётное – единица.
Аналогичноблок KR2 формирует 2й контрольный разряд,подсчитывая чётность 3,6,7,10,11,14,15,18,19,22,23,26,27,30,31,34,35 и 38битов, если количество единиц в этих разрядах чётное, то контрольный бит равеннулю, если нечётное – единица.
БлокKR4 формирует 4й контрольный битпроверяя 5,6,7,12,13,14,15,20,21,22,23,28,29,30,31,36,37 и 38 биты.
БлокKR8 формирует 8й контрольный битпроверяя 9,10,11,12,13,14,15,24,25,26,27,28,29,30 и 31 биты.
БлокKR16 формирует 16й контрольный битпроверяя 17,18,19,20,21,22,23,24,25,26,27,28,29,30 и 31 биты.
БлокKR32 формирует 32й контрольный битпроверяя 33,34,35,36,37 и 38 биты.
/> 
2.2Разработка устройства декодирования информации методом Хемминга
/>
Рис.2.4— Схема декодера
Схемадекодера состоит из 3х основных блоков: блока анализа, блока управления и блокаисправления. Декодер осуществляет декодирование с исправлением произошедшейошибки.

/>
Рис.2.5 — Схема блока анализа
Блоканализа с помощью блоков KR1, KR2, KR4, KR8, KR16 и KR32 заново проверяет чётность выше упомянутых разрядов и спомощью 6 и элементов исключающее ИЛИ сравнивает с пришедшими по шинеконтрольными разрядами. Если контрольные разряды нарушены, то формируются 6сигналов ошибки, которые передаются в блок управления. Так же блок анализаизымает из 38ми битного слова биты чётности и передаёт 32х битное слово в блокисправления.

/>
Рис.2.6 — Схема блока управления
Блокуправления представляет дешифратор 6/32, собранный на базе элементов И. Всоответствии с комбинацией входных сигналов, блок управления активирует тот илииной управляемый инвертор блока исправления.
/>
Рис2.7 — Схема блока исправления ошибок
Блокисправления непосредственно производит исправление слова пришедшего из блокаанализа в соответствии с сигналами блока управления. Он представляет собой 32управляемых инвертора, на информационные входы которых подаётся слово сошибкой, а на управляющие код из блока управления. В соответствии с поданнымсигналом активируется тот или иной инвертор, который и исправляет ошибку, ислово выводится из дешифратора.
/>
Рис.2.8— Схема управляемого инвертора
Управляемыйинвертор собран на базе 2х элементов НЕ, элемента И, и элемента исключающееИЛИ-НЕ. Является непосредственно исполнителем исправления ошибки. Его таблицаистинности приведена ниже.
Табл.2.1 — таблица истинности управляемого инвертораВХОД УПР.СИГНАЛ ВЫХОД 1 1 1 1 1 1
/> 

2.3Реализация кодера – декодера на базе ИМС К555ВЖ1
/>
Рис2.9 — Блок схема
32хбитное слово разделяется на два слова по 16 бит. Далее каждая из половинпопадает в свой 16битный кодер. Генерируются контрольные биты, и на линиюпередач выводятся два 22х битных кода Хэмминга. На линии передачи естьвозможность внести ошибку. Далее 22х битный код считывается декодером.Проверяется на наличие ошибок. Если найдены ошибки, они исправляются, ивыводятся два слова по 16 бит, которые и составляют переданное 32х битноеслово.
 

2.3.1Цоколёвка ИМС К555ВЖ1 (SN74LS630)
/>
Рис.2.10 — Цоколёвка ИМС К555ВЖ1 (SN74LS630)
·         D0-D15 — входы/выходы данных;
·         CB0-CB5 — входы/выходы синдрома;
·         S0,S1 — входыуправления;
·         SEF — флагошибки;
·         DEF — флагнекорректируемой ошибки.
·         Все выходы стремя состояниями
Схемаиспользует модифицированный код Хэмминга, чтобы генерировать 6-битовый синдромдля 16-разрядного слова. Одиночные ошибки схемой исправляются; двойные ошибкитолько обнаруживаются, ошибки типа всех нулей или всех единиц тожеобнаруживаются, тройные и большие ошибки могут быть не обнаружены. В случаедвойной ошибки, оба бита могут быть в слове памяти, обе в слове синдрома, илипо одному биту в слове памяти и слове синдрома. В течении цикла записи, схемаформирует 6-разрядное проверочное слово из 16-разрядного слова данных.Коррекция ошибки выполняется идентификацией неправильного бита и инверсией его.Когда исправленное слово выдается из порта данных, из порта CBi выдаетсясиндром, указывающий на неправильный бит.

Табл.2.2 — Функции схемы исправления ошибокЦикл памяти  Упр S1 S0 Функция БИС Шина данных Шина синдрома Флаги SEF DEF ЗАПИСЬ L L Генерировать контрольное слово Входные данные Выходное контрольное слово L L ЧТЕНИЕ L H Читать данные и контрольное слово Входные данные Входное контрольное слово L L ЧТЕНИЕ H H Защелкнуть и разрешить флаги Защелкнутые данные Защелкнутое контрольное слово Разрешено ЧТЕНИЕ H L Корректировать данные и генерировать синдром Выходные корректированные данные Выходной синдром Разрешено
Табл.2.3 — Таблица ошибокКонтрольное 16-разрядное слово данных слово 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CB0 * * * * * * * * CB1 * * * * * * * * CB2 * * * * * * * * CB3 * * * * * * * * CB4 * * * * * * * * CB5 * * * * * * * *
Табл. 2.4 — Синдромы ошибокЯчейка ошибки Код синдрома ошибки CB0 CB1 CB2 CB3 CB4 CB5 D0 L L H L H H D1 L H L L H H D2 H L L L H H D3 L L H H L H D4 L H L H L H D5 H L L H L H D6 H L H L L H D7 H H L L L H D8 L L H H H L D9 L H L H H L D10 L H H L H L D11 H L H L H L D12 H H L L H L D13 L H H H L L D14 H L H H L L D15 H H L H L L CB0 L H H H H H CB1 H L H H H H CB2 H H L H H H CB3 H H H L H H CB4 H H H H L H CB5 H H H H H L Нет ошибки H H H H H H
Табл.2.5 — ИсправлениеПолное число ошибок Флаги ошибок Исправление данных 16-битовые данные 6-битовое контрольное слово SEF DEF L L Не применимо 1 H L Коррекция 1 H L Коррекция 1 1 H H Прерывание 2 H H Прерывание 2 H H Прерывание
 

2.3.2Разработка принципиальной схемы устройства
/>
Рис.2.11 — Принципиальная схема устройства

Нарисунке представлена принципиальная схема стенда, собранного на следующих радиоэлементах:
МикросхемаК555ВЖ1 – 4шт
МикросхемаК555ЛН2 – 1шт
Джамперана 2 штырька – 47шт
Джамперана 3 штырька – 47шт
Диодныемосты на 0.75А – 2шт
Конденсаторы222мФ – 2шт
Резисторы2.2кОм – 16шт
Трансформатор– 1шт
Светодиодыкрасные – 84шт
Светодиодыжелтые – 17шт
Светодиодызелёные – 24шт
 
2.3.3Принцип работы устройства
Верхнийряд джамперов и микросхем является кодером. Нижний ряд микросхем – декодер.Средний ряд джамперов – линии передач. С помощью джамперов 0 – 31 вводится 32хбитное слово. При подаче логический 0 на входы управления S1 и S0 кодера, происходит считывание словаи формирование контрольных разрядов. 32х битное слово преобразованное в 48мибитный код выводится на верхний ряд светодиодов.
Посредствамряда джамперов или микросхемы инвертора генерируем ошибку на линии передач.
Чтобысчитать код с линии передач, подаём на входы управления декодера S1 логический0 и на S0 логическую 1.Далее подаём на S1 и S0 логическую 1, тем самым записывая код в буфер микросхемы.Чтобы получить скорректированное (без ошибки) слово, необходимо подать на S1логическую 1 и на S0 логический 0., и исходное слово появится на нижнем рядусветодиодов.

/>3. Экономическая часть
Послерассмотрения вариантов технологических процессов, обеспечивающие примерноодинаковое качество изделия, соответствующие требованиям задания необходимовыбрать наиболее экономичный из возможных вариантов и только после этогопроизвести детальную разработку устройств. Для этого необходимо предварительнооценить прогрессивность выбираемого технологического процесса с помощьюразличных технико-экономических показателей, в той или иной степени влияющих наэкономическую эффективность.
Суммаменяющихся при изменении технологического варианта затрат носит названиетехнологической себестоимости. Входящие в технологическую себестоимость затратыделятся на переменные (условно пропорциональные) и условно постоянные.Переменные затраты — расходы на сырьё, материалы на ремонт и содержанияоборудования, быстро изнашивающийся инструмент, силовую энергию,амортизационные отчисления. Они изменяются примерно пропорционально изменениюобъему выпускаемой продукции. Условно постоянные затраты — это расходы насодержание персонала, отопление, освещение – не зависят от объема производства.Сравнительный анализ ведётся по приведенным затратам и выбирается вариант,обеспечивающий минимальное значение:
STI+ENKIMIN
STI-технологическая себестоимость;
KI-удельное капитальное вложение;
EN-нормативный коэффициент экономической эффективности;
Вболее сложных случаях решение задач выбора оптимальных вариантов технологийшироко применяются методы прикладной математики, в частности математическоепрограммирование.
Далеепроизводится расчет производственной себестоимости устройства.
Себестоимостьустройства включает в себя:
1.   Стоимость сырья и основных материалов
2.   Стоимость покупных изделий иполуфабрикатов
3.   Заработную плату производственныхрабочих
4.   Отчисления на социальное страхование
5.   Накладные расходы
Расчетстоимости материалов сведен в таблицу 3.
Таблица3.1 Расчет стоимости материаловМатериалы Кол-во Единица измерения Цена за единицу (грн./ед.) Сумма (грн.) Припой ПОС-61 0,2 кг 20 4 Провода 10 М 0.50 5 Канифоль 0.005 кг 50 0,25
Гетинакс фольгированный
Раствор хлорного железа
250*350
0,5
Мм2
л
——-
——-
18
5 Итого: 32,25
Транспортныерасходы составляют 10 % от стоимости материалов и равны 3,20 грн.
Такимобразом, затраты на материалы составляют ~.36грн.
Расчетзатрат на покупные изделия приведены в таблице 3.2.
Таблица3.2 Расчет затрат на покупные изделия.Наименование Цена/шт.(грн.) Кол-во(шт.) Цена (грн.) Микросхемы: К555ВЖ1 4 4 16 К555ЛН2 2 1 2 Джамперы: На 2 штырька 0,30 47 14,1 На 3 штырька 0,40 37 14,8 Диодный мост 1,5 2 3 Конденсатор 222мФ 0,7 2 1,4 Резисторы 0,15 16 2,4 Светодиоды: Красные 0,2 84 16,8 Желтые 0,2 17 3,4 Зелёные 0,2 24 4,8 Панельки под ИМС: На 28 ножек 4 2 8 На 14 ножек 1 1 1 Трансформатор: 15 1 15 Итого: 102,7
Стоимостьразработки равна
Sраз.=Bосн.×N×(1+Wс+Wд), где                                                                   (3.1)
Sраз. — стоимость разработки, грн.
Bосн. — заработная плата разработчика, грн. в месяц
N- количество месяцев разработки
Wс — отчисления на социальное страхование
Wд — дополнительная заработная плата.
Sраз.= 32*1×(1+0,41+0,08)= 32*1,49 = 47,68 грн.                        (3.2)
Всвязи с тем, что устройство было изготовлено без сторонних рабочих, своимисилами, то себестоимость устройства не включает расходы на заработную плату инакладные расходы.
Sп=Sраз + Sм +Sтр+ Sпк=47,68+32,25+3,20+102,7=185,83грн.             (3.3)
Sраз. — стоимость разработки, грн.
Sм-затраты на материалы, грн.
Sтр-транспортные расходы, грн.
Sпк-затраты на покупные изделия, грн.
Наосновании проведенных выше расчетов определим цену устройства табл.5.
Таблица3.3 Расчёт цены устройства.N п/п Статьи расходов Сумма (грн.) 1 Основные материалы 32,25 2 Покупные изделия и полуфабрикаты 102,7,4 3 Заработная плата производственных рабочих 4 Отчисления на социальное страхование 5 Накладные расходы, включая затраты на разработку 47,68 6 Производственная себестоимость: 182,63 Цена устройства 182,63
Такимобразом, цена устройства составляет 185 грн. Аналогичные устройства пооснащенности, которые можно приобрести только под заказ, будут стоить какминимум в два раза выше, без учета затрат на транспортировку.
/> 

4 Охрана труда и техники безопасности
/> 
4.1 Потенциально опасные и вредные производственные факторы
Имеющийсяв настоящее время в нашей стране комплекс разработанных организационныхмероприятий и технических средств защиты, накопленный передовой опыт работыряда учебных заведений показывает, что имеется возможность добиться значительнобольших успехов в деле устранения воздействия на работающих опасных и вредных производственныхфакторов. Однако состояние условий труда и его безопасности в ряде учебныхзаведений еще не удовлетворяют современным требованиям. Курсанты, студенты,преподаватели и другие работники колледжа еще сталкиваются с воздействием такихфизически опасных и вредных производственных факторов, как повышенный уровеньшума, повышенная температура внешней среды, отсутствие или недостаточная освещенностьрабочей зоны, электрический ток, статическое электричество и другие.
Многиекурсанты и студенты связаны с воздействием таких психофизических факторов, какумственное перенапряжение, перенапряжение зрительных и слуховых анализаторов,монотонность труда, эмоциональные перегрузки. Воздействие указанныхнеблагоприятных факторов приводит к снижению работоспособности, вызванноеразвивающимся утомлением. Появление и развитие утомления связано с изменениями,возникающими во время работы в центральной нервной системе, с тормознымипроцессами в коре головного мозга. Например, сильный шум вызывает трудности сраспознанием цветовых сигналов, снижает быстроту восприятия цвета, остротузрения, зрительную адаптацию, нарушает восприятие визуальной информации, уменьшаетна 5-12 % производительность труда. Длительное воздействие шума с уровнемзвукового давления 90 дБ снижает производительность труда на 30-60 %.
Медицинскиеобследования курсантов и студентов показали, что помимо сниженияпроизводительности труда, высокие уровни шума приводят к ухудшению слуха.Длительное нахождение человека в зоне комбинированного воздействия различныхнеблагоприятных факторов может привести к профессиональному заболеванию. Анализтравматизма среди курсантов и студентов показывает, что в основном несчастныеслучаи происходят от воздействия физически опасных производственных факторовтаких как: выполнении несвойственных им работ, выполнение работ без спец одеждыили не исправным инструментом. На втором месте случаи, связанные с воздействиемэлектрического тока.
/> 
4.2Обеспечение электробезопасности
Электрическиеустановки, к которым относится практически все оборудование ЭВМ, представляютдля человека большую потенциальную опасность, так как в процессе эксплуатацииили проведении профилактических работ человек может коснуться частей,находящихся под напряжением. Специфическая опасность электроустановок:токоведущие проводники, корпуса ЭВМ и прочего оборудования, оказавшегося поднапряжением в результате повреждения (пробоя) изоляции, не подают каких-либосигналов, которые предупреждают человека об опасности. Реакция человека наэлектрический ток возникает лишь при протекании последнего через тело человека.Исключительно важное значение для предотвращения электротравматизма имеетправильная организация обслуживания действующих электроустановок учебныхлабораторий, проведения ремонтных, монтажных и профилактических работ. При этомпод правильной организацией понимается строгое выполнение ряда организационныхи технических мероприятий и средств, установленных действующими “Правиламитехнической эксплуатации электроустановок потребителей и правила техникибезопасности при эксплуатации электроустановок потребителей” (ПТЭ и ПТБпотребителей) и “Правила установки электроустановок” (ПУЭ). В зависимости откатегории помещения необходимо принять определенные меры, обеспечивающиедостаточную электробезопасность при эксплуатации и ремонте электрооборудования.Так, в помещениях с повышенной опасностью электроинструменты, переносныесветильники должны быть выполнены с двойной изоляцией или их напряжение питанияне должно превышать 42В. В учебных заведениях к таким помещениям могут бытьотнесены помещения машинного зала, помещения для размещения сервисной ипериферийной аппаратуры. В особо опасных же помещениях напряжение питанияпереносных светильников не должно превышать 12В, а работа с напряжением не выше42В разрешается только с применением СИЗ (диэлектрических перчаток, ковриков ит.п.). Работы без снятия напряжения на токоведущих частях и вблизи них, работыпроводимые непосредственно на этих частях или при приближении к ним нарасстояние менее установленного ПЭУ. К этим работам можно отнести работы поналадке отдельных узлов, блоков. При выполнении такого рода работ вэлектроустановках до 1000В необходимо применение определенных технических иорганизационных мер, таких как:
·    ограждения,расположенные вблизи рабочего места и других токоведущих частей, к которымвозможно случайное прикосновение;
·    работа вдиэлектрических перчатках, или стоя на диэлектрическом коврике;
·    применениеинструмента с изолирующими рукоятками, при отсутствии такого инструментаследует пользоваться диэлектрическими перчатками.
Работыэтого вида должны выполнятся не менее чем двумя курсантами или под присмотромпреподавателя.
Всоответствии с ПТЭ и ПТВ потребителям и обслуживающему персоналуэлектроустановок предъявляются следующие требования:
·    лица, недостигшие 18-летнего возраста, не могут быть допущены к работам в электроустановках;
·    лица не должныиметь увечий и болезней, мешающих производственной работе;
·    лица должны послесоответствующей теоретической и практической подготовки пройти проверку знанийи иметь удостоверение на доступ к работам в электроустановках.
Вучебных лабораториях разрядные токи статического электричества чаще всеговозникают при прикосновении к любому из элементов ЭВМ. Такие разряды опасностидля человека не представляют, но кроме неприятных ощущений они могут привести квыходу из строя ЭВМ. Для снижения величины возникающих зарядов статическогоэлектричества в учебных лабораториях покрытие технологических полов следуетвыполнять из однослойного поливинилхлоридного антистатического линолеума.Другим методом защиты является нейтрализация заряда статического электричестваионизированным газом. К общим мерам защиты от статического электричества вучебных лабораториях можно отнести общие и местное увлажнение воздуха.
/> 
4.3Обеспечение санитарно-гигиенических требований к помещениям учебных лабораторий
Помещенияучебных лабораторий, их размеры (площадь, объем) должны в первую очередьсоответствовать количеству работающих и размещаемому в них комплектутехнических средств. В них предусматриваются соответствующие параметрытемпературы, освещения, чистоты воздуха, обеспечивают изоляцию, отпроизводственных шумов и т.п. Для обеспечения нормальных условий трудасанитарные нормы СН 245-71 устанавливают на одного работающего, объем помещенияне менее 15 м3, площадь помещения выгороженного стенами или глухимиперегородками не менее 4,5 м3.
Дляэксплуатации ЭВМ следует предусматривать следующие помещения:
·    машинный зал,помещение для размещения сервисной и периферийной аппаратуры, помещение дляхранения запасных деталей, инструментов, приборов (ЗИП);
·    помещения дляразмещения приточно-вытяжных вентиляторов;
·    помещение дляперсонала;
·    помещение дляприема-выдачи информации.
Основныепомещения учебных лабораторий располагаются в непосредственной близости друг отдруга. Их оборудуют вентиляцией и искусственным освещением. К помещениюмашинного зала предъявляются особые требования. Площадь машинного зала должнасоответствовать площади, необходимой по заводским техническим условиям данноготипа ЭВМ.
Высотазала над технологическим полом до подвесного потолка должна быть 3-3,5м.Расстояние между подвесным и основным потолками при этом должно быть 0,5-0,8м.Высоту подпольного пространства принимают равной 0,2-0,6м.
Вучебных лабораториях, как правило, применяется боковое естественное освещение.Рабочие комнаты и кабинеты должны иметь естественное освещение. В остальныхпомещениях допускается искусственное освещение.
Втех случаях, когда одного естественного освещения не хватает, устанавливаетсясовмещенное освещение. При этом дополнительное искусственное освещениеприменяется не только в темное, но и в светлое время суток.
Искусственноеосвещение по характеру выполняемых задач делится на рабочее, аварийное, эвакуационное.
Рациональноецветовое оформление помещения направлено на улучшение санитарно-гигиеническихусловий труда, повышение его производительности и безопасности. Окраскапомещений учебных лабораториях влияет на нервную систему человека, егонастроение, и в конечном счете на производительность труда. Основныепроизводственные помещения целесообразно окрашивать в соответствии с цветомтехнических средств. Освещение помещения и оборудования должно быть мягким, безблеска.
Снижениешума, создаваемого на рабочих местах учебных лабораторий внутреннимиисточниками, а также шума, проникающего извне, является очень важной задачей.Снижение шума в источнике излучения можно обеспечить применением упругихпрокладок между основанием машины, прибора и опорной поверхностью. В качествепрокладок используются резина, войлок, пробка, различной конструкцииамортизаторы. Под настольные шумящие аппараты можно подкладывать мягкие коврикииз синтетических материалов, а под ножки столов, на которых они установлены прокладкииз мягкой резины, войлока, толщиной 6-8мм. Крепление прокладок возможно путемприклейки их к опорным частям.
Возможнотакже применение звукоизолирующих кожухов, которые не мешают технологическомупроцессу. Не менее важным для снижения шума в процессе эксплуатации являетсявопрос правильной и своевременной регулировки, смазывания и замены механическихузлов шумящего оборудования.
Рациональнаяпланировка помещения, размещения оборудования в учебных лабораториях являетсяважным фактором, позволяющим снизить шум при существующем оборудовании ЭВМ. Припланировке учебных лабораторий машинный зал и помещение для сервиснойаппаратуры необходимо располагать вдали от шумящего и вибрирующегооборудования.
Снижениеуровня шума, проникающего в помещение извне, может быть достигнуто увеличениемзвукоизоляции ограждающих конструкций, уплотнением по периметру притворов окон,дверей.
Такимобразом, для снижения шума создаваемого на рабочих местах внутреннимиисточниками, а также шума, проникающего извне, следует:
·    ослабить шумсамих источников (применение экранов, звукоизолирующих кожухов);
·    снизить эффектсуммарного воздействия отраженных звуковых волн (звукопоглощающие поверхностиконструкций);
·    применятьрациональное расположение оборудования;
·    использоватьархитектурно-планировочные и технологические решения изоляции источников шума.
/> 
4.4Противопожарная защита
Пожарыв учебных лабораториях представляют особую опасность, так как сопряжены сбольшими материальными потерями. Характерная особенность учебных лабораторий — небольшие площади помещений. Как известно, пожар может возникнуть привзаимодействии горючих веществ, окисления и источников зажигания. В помещенияхучебных лабораторий присутствуют все три основные фактора, необходимые длявозникновения пожара.
Горючимикомпонентами на учебных лабораториях являются: строительные материалы дляакустической и эстетической отделки помещений, перегородки, двери, полы,перфокарты и перфоленты, изоляция кабелей и др.
Противопожарнаязащита — это комплекс организационных и технических мероприятий, направленныхна обеспечение безопасности людей, на предотвращение пожара, ограничение егораспространения, а также на создание условий для успешного тушения пожара.
Источникамизажигания в учебных лабораториях могут быть электронные схемы от ЭВМ, приборы,применяемые для технического обслуживания, устройства электропитания,кондиционирования воздуха, где в результате различных нарушений образуютсяперегретые элементы, электрические искры и дуги, способные вызвать возгораниегорючих материалов.
Всовременных ЭВМ имеет место быть очень высокая плотность размещения элементовэлектронных схем. В непосредственной близости друг от друга располагаютсясоединительные провода, кабели. При протекании по ним электрического токавыделяется значительное количество теплоты. При этом возможно оплавлениеизоляции. Для отвода избыточной теплоты от ЭВМ служат системы вентиляции икондиционирования воздуха. При постоянном действии эти системы представляютсобой дополнительную пожарную опасность.
Энергоснабжениеучебных лабораторий осуществляется от трансформаторной станции. На трансформаторныхподстанциях особую опасность представляют трансформаторы с маслянымохлаждением. В связи с этим предпочтение следует отдавать сухимтрансформаторам.
Длябезопасной работы необходим правильный расчет и выбор аппаратов защиты. Припроведении обслуживающих, ремонтных и профилактических работ используютсяразличные смазочные вещества, легковоспламеняющиеся жидкости, прокладываютсявременные электропроводки, ведется пайка и чистка отдельных узлов. Возникаетдополнительная пожарная опасность, требующая дополнительных мер пожарнойзащиты. В частности, при работе с паяльником следует использовать несгораемуюподставку с несложными приспособлениями для уменьшения потребляемой мощности внерабочем состоянии.
Длябольшинства помещений учебных лабораторий установлена категория пожарнойопасности В.
Однойиз наиболее важных задач пожарной защиты является защита строительных помещенийот разрушений и обеспечение их достаточной прочности в условиях воздействиявысоких температур при пожаре. Учитывая высокую стоимость электронногооборудования учебных лабораторий, а также категорию его пожарной опасности,здания для учебных лабораторий и части здания другого назначения, в которыхпредусмотрено размещение ЭВМ, должны быть 1 и 2 степени огнестойкости.
Дляизготовления строительных конструкций используются, как правило, кирпич,железобетон, стекло, металл и другие негорючие материалы. Применение деревадолжно быть ограничено, а в случае использования, необходимо пропитывать егоогнезащитными составами. В учебных лабораторий противопожарные преграды в видеперегородок из несгораемых материалов устанавливают между машинными залами.
Ксредствам тушения пожара, предназначенных для локализации небольших возгораний,относятся пожарные стволы, внутренние пожарные водопроводы, огнетушители, сухойпесок, асбестовые одеяла и т. п.
Взданиях учебных заведений пожарные краны устанавливаются в коридорах, наплощадках лестничных клеток и входов. Вода используется для тушения пожаров впомещениях программистов, библиотеках, вспомогательных и служебных помещениях.Применение воды в машинных залах ЭВМ, помещениях контрольно-измерительныхприборов ввиду опасности повреждения или полного выхода из строя дорогостоящегооборудования возможно в исключительных случаях, когда пожар принимает угрожающекрупные размеры. При этом количество воды должно быть минимальным, а устройстваЭВМ необходимо защитить от попадания воды, накрывая их брезентом или полотном.
Длятушения пожаров на начальных стадиях широко применяются огнетушители. По видуиспользуемого вещества огнетушители подразделяются на следующие основныегруппы:
·    Пенныеогнетушители, применяются для тушения горящих жидкостей, различных материалов,конструктивных элементов и оборудования, кроме электрооборудования,находящегося под напряжением.
·    Газовыеогнетушители, применяются для тушения жидких и твердых веществ, а такжеэлектроустановок, находящихся под напряжением.
·    Впроизводственных помещениях учебных заведений применяются главным образомуглекислотные огнетушители, достоинством которых является высокая эффективностьтушения пожара, сохранность электронного оборудования, диэлектрические свойствауглекислого газа, что позволяет использовать эти огнетушители даже в томслучае, когда не удается обесточить электроустановку сразу.
Дляобнаружения начальной стадии загорания и оповещения службы пожарной охраныиспользуют системы автоматической пожарной сигнализации (АПС). Кроме того, онимогут самостоятельно приводить в действие установки пожаротушения, когда пожареще не достиг больших размеров. Системы АПС состоят из пожарных извещателей,линий связи и приемных пультов (станций).
Эффективностьприменения систем АПС определяется правильным выбором типа извещателей и местих установки. При выборе пожарных извещателей необходимо учитывать конкретныеусловия их эксплуатации: особенности помещения и воздушной среды, наличиепожарных материалов, характер возможного горения, специфику технологическогопроцесса и т.п.
Всоответствии с “Типовыми правилами пожарной безопасности для промышленныхпредприятий”, залы ЭВМ, помещения для внешних, подготовки данных, сервиснойаппаратуры, архивов, копировально-множительного оборудования и т.п. необходимооборудовать дымовыми пожарными извещателями. В этих помещениях в начале пожарапри горении различных пластмассовых, изоляционных материалов и бумажных изделийвыделяется значительное количество дыма и мало теплоты.
Вдругих помещениях учебных заведений допускается применение тепловых пожарных извещателей.
Объекты,учебных заведений, крайне опасные с точки зрения противопожарной безопасности,необходимо оборудовать установками стационарного автоматического пожаротушения.Наиболее целесообразно применять в установки газового тушения пожара, действиекоторых основано на быстром заполнении помещения огнетушащим газовым веществомс резким снижением содержания в воздухе кислорода.
Пожарамв учебных заведений должно уделяться особое внимание, так как пожары в учебныхзаведений сопряжены с опасностью для человеческой жизни и большимиматериальными потерями.

/>Заключение
Сувеличением количества компьютеров стало увеличиваться количество передаваемойинформации. Появилась необходимость контроля и защиты от ошибок. Для повышениянаглядности при изучении базовых принципов кодирования применяютсяэлектрифицированные стенды. В данной работе показывается актуальностьразработки подобного электрифицированного стенда — «Устройство кодирования –декодирования 32х разрядных слов методом Хэмминга», который достаточно простодемонстрирует алгоритм кодирования.
Вработе приведена классификация видов помехоустойчивого кодирования,представлены распространенные алгоритмы кодирования.
Также,в работе приведены расчеты принципиальной логической схемы каждого блока в ElectronicWorkbench, что позволяет эмулировать работукаждого блока в этой среде.
Расчетсебестоимости данного устройства показал экономическую целесообразность даннойработы.

/>Список ссылок
1 Э. ТаненбаумАрхитектура Компьютера «ПИТЕР» 2006 г.
2 Ю. І. ЯкименкоМікропроцесорна техніка «КИЇВ» 2004 г.
3 Е. Угрюмов Цифроваясхемотехника «БХВ – Санкт-Петербург» 2001 г.
Проф.В.Г.ГерасимоваОсновы промышленной электроники Москва «Высшая школа» 1978г.
4 О.Г. Верховцев, К.П.Лютов Практические советы мастеру – любителю по электротехнике и электронике«Энергоатомиздат» 1984г.
5 А.Медведев Технологияпроизводства печатных плат «Техносфера» 2005г.
6 В.С. ГутниковИнтегральная электроника в измерительных устройствах, Л.: Энргоатомиздат, 1988
7 А.Л. Булычев, В.И.ГалкинАналоговые интегральные схемы, Мн.: Беларусь, 1994
8 М.И. Богданович, И.Н. ГрельЦифровые интегральные микросхемы: справочник, Mн.: Беларусь, 1991
9 В.Л. Шило Популярныецифровые микросхемы: справочник, М.: Радио и связь, 1987