Базовые принципы проверки достоверности при передаче на основе МК51
Все методы контроля достоверности передачи информации и защиты от сбоев основаны на принципе информационной избыточности, т.е. к передаваемым информационным битам добавляется некоторое количество дополнительных разрядов, с помощью которых обеспечивается контроль достоверности. Значения контрольных разрядов формируются по различным алгоритмам.
Простейший и легко реализуемый метод контроля - формирование и проверка признака чётности количества единиц в байте, который передается.
Для реализации этого метода МК-передатчик и МК-приёмник должны быть настроены на режим УАПП – 9 бит (режим 2 или 3).
Принцип формирования и анализа информации, которая передается, изображен в виде условной схемы на рис.20.2.
Программа формирования признака чётности для МК-передатчика.
Пусть передаваемый байт находится в ячейке РПД с именем Sbyte:
MOV A, Sbyte ; Формирование признака чётности (P) - PSW.0.
MOV C, P ; Передача признака (P) в разряд TB8.
MOV TB8, C
MOV SBUF, A ; Начало передачи кодовой посылки: <SBUF><TB8>
Программа проверки достоверности принятого байта.
Эта программа реализуется в МК-приёмнике. Пусть принятый байт следует разместить в ячейке РПД с именем Rbyte. В случае выявления сбоя установить флаг (определенный бит) и обнулить принятую информацию.
BadS equ F0 ; Объявление флага приема байта с ошибкой (бит F0)
org 0023H ; Вектор перехода на обработчик прерывания от УАПП
JMP Read_S ; Переход на процедуру обработки прерывания от УАПП
...
SETB REN ; Запуск приемника УАПП.
... ; Команды основной программы, которые выполнятся
... ; до завершения приема, то есть к моменту
... ; формирования запроса прерывания RI=1.
; Процедура обработки прерывания от УАПП
org ...
Read_S:
PUSH ACC ; Сохранение текущего содержимого аккумулятора,
MOV A, SBUF ; чтение SBUF, формирование признака чётности.
CLR BadS ; Сброс флага "Ошибка".
JB P, rs_P1 ; Сравнение признака чётности, который сформирован
JNB RB8, rs_N ; в МК-приёмнике (P), с признаком чётности,
JMP rs_B ; полученным в девятом бите кодовой
rs_P1: JB RB8, rs_N ; посылки и находящемся в разряде RB8.
rs_B: CLR A ; Признаки P и RB8 не равны - ОШИБКА - обнуление
SETB BadS ; принятой информации, установка флага "Ошибка".
rs_N: MOV Rbyte, A ; Пересылка принятого байта по адресу Rbyte.
CLR RI ; Разрешение приема следующего байта.
POP ACC ; Восстановление содержимого аккумулятора.
RETI ; Возвраn из процедуры обработки прерывания
; со снятием блокировки запроса RI.
Самостоятельно составить блок-схему программы приема байта.
Недостаток простейшего метода контроля по биту четности – невозможность определения сбойного разряда.
Еще одним простейшим методом контроля является повторная передача каждого байта и их сравнение в приемнике. Студентам предлагается самостоятельно разработать протокол обмена и программную реализацию.
|