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

 
 
 
«Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.»
Brian W. Kernighan.
Русский | Українська


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

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

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

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