Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мет.проект5г.doc
Скачиваний:
57
Добавлен:
15.06.2014
Размер:
407.04 Кб
Скачать

2 Разработка алгоритмов для контроля передачи данных

2.1 Кодирование двоичных данных кодом с проверкой на четность

Для кодирования N-разрядного двоичного слова необходимо вычислить (N+1)-й разряд по правилу четности.

Пусть исходное слово - это массив А из N-разрядов, тогда массив-код будет содержать (N+1)-разряд. Для определения четности можно использовать операцию сложения по модулю два, либо подсчитать сумму единиц в массиве A, а затем определить, четна она или нет. Если сумма четна, то A[N+1]=0, в противном случае A[N+1]=1.

В данной работе для реализации выбран последний способ. Тогда схема алгоритма (СА) вычисления контрольного разряда имеет вид рис. 2.2.

Дополнительно на СА (см. рис. 2.1) введены обозначения: i - номер разряда, S - сумма единиц слова.

После ввода самого N-разрядного слова A (бл. 2) вычисляется значение (N+1)-го контрольного бита (бл. 3-5), затем печатается или выводится в канал ПД весь (N+1)-разрядный код (бл. 6).

Рисунок В. 2.2  СА кодирования двоичного слова

2.2 Декодирование данных

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

Здесь С  массив-код из М=N+1 элементов, S  сумма единиц кода. После ввода разрядности слов в коде (М) и самого слова (бл.1) вычисляется сумма единиц в коде (бл. 2, 3). Затем производится проверка: если сумма равна нулю, то ошибок не произошло (бл. 5) в принятом из ка­нала передачи данных коде, далее выдается ин-формационная часть кода (без контрольного бита) (бл. 6) для дальнейшей обработки. В случае обнаружения ошибки выдается соответствующее сообщение.

Рисунок В. 2.3  СА декодирования кода

2.3 Универсальный алгоритм кодирования-декодирования

Анализ СА (см. рис. 2.2. и рис. 2.3.) показывают, что в обоих случаях вычисляется сум­ма, т.е. есть общая часть. Поэтому возможно объединение алгоритмов кодирования и декодирования в единый алгоритм. При этом вычисление суммы следует выделить в подпрограмму, тогда универсальный алгоритм примет вид рис. 2.3, на котором использованы следующие обозначения:

М  разрядность кода или слова;

R  режим (R=1  кодирование, R=2  декодирование),

C[1..M]  код для декодирования,

C[1..M]  слово из М информационных разрядов для кодирования

РисунокВ. 2.4Схема универсального алгоритма

3 Особенности разработки программы

Для программной реализации алгоритма рис. 2.4. выбран универсальный язык программирования Turbo Pascal [6]. Программа разработана в строгом соответствии со СА и представлена файлом на дискете. Она занимает 16 байт в памяти и состоит из 40 строк.

Соседние файлы в предмете Технология программирования