Микропроцессоры и микроконтроллеры

 
 
 
«Программирование на С похоже на быстрые танцы на только что отполированном полу людей с острыми бритвами в руках»
Waldi Ravens.
Русский | Українська


Микропроцессоры и микроконтроллеры :: Каналы ввода-вывода на основе МК51 :: Базовые принципы проверки достоверности при передаче на основе МК51

Базовые принципы проверки достоверности при передаче на основе МК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.

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

Недостаток простейшего метода контроля по биту четности – невозможность определения сбойного разряда.

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