Диссертация
Cсылки
Обо мне
Библиотека
Циклический избыточный код

Для контроля правильности передаваемых по сети MicroLan данных применяется избыточный циклический код. Используемый код можно представить в виде следующей структурной схемы:

С использованием этой структурной схемы в подключенных к сети устройствах ведется аппаратное кодирование – декодирование информации. Данная структурная схема соответствует сдвиговому регистру. При этом используется следующее свойство циклического кода: если в регистре содержится контрольная сумма, то при подаче на регистр самой этой суммы, получим ноль. Таким образом достаточно легко реализуется процедура проверки полученных данных на правильность – принимаемые данные вместе с контрольной кодируются по приведенной схеме и если в результате в регистре находится ноль, то данные приняты правильно.

Программный подсчет контрольной суммы может быть произведен с помощью предлагаемой фирмой Dallas Semiconductor процедуры:

 DO_CRC:MOV B,#8 		;счетчик
 CRC_LOOP:XRL A, CRC		;очередной бит на вход
 RRC A				;если поданный бит = 1
				;установится флаг переноса
 MOV A,CRC			;копируем значение 
				;контрольной суммы
 JNC ZERO			;если на входе – нулевой бит,
				;то следующую команду 
				;выполнять не надо
 XRL A,#18H 			;если подан единичный бит
				;то выполняем операцию 
				;исключающее ИЛИ с учетом
				;того, что 18Н = 00011000В
 ZERO:RRC A			;выполняем сдвиг
 MOV CRC, A			;сохраняем новое значение
				;контрольной суммы
 POPACC				;получаем значение
 RRA				;следующего бита
 PUSHACC			; 
 DJNZB, CRC_LOOP 		;уменьшаем счетчик и  
				;проверяем на ноль
Предлагаемая процедура может быть усовершенствована следующим образом:
 DO_CRC:MOV B,#8 		;счетчик
 CRC_LOOP:XRL A, CRC		;очередной бит на вход
 RRC A				;если поданный бит = 1
				;установится флаг переноса
 JNC NEXT			;если на входе – нулевой бит,
				;то следующую команду 
				;выполнять не надо
 XRL A,#8C H			;если подан единичный бит
				;то выполняем операцию 
				;исключающее ИЛИ с учетом того,  
				;что 8C Н = 1 0001100В. Эта операция 
				;выполняется с уже сдвинутым  
				;регистром
 NEXT :MOV CRC, A		;сохраняем новое значение
				;контрольной суммы
 POPACC				;получаем значение
 RRA				;следующего бита
 PUSHACC			; 
 DJNZB, CRC_LOOP 		;уменьшаем счетчик и  
				;проверяем на ноль

Эта процедура является более быстродействующей по сравнению с первой, и может быть полезна в случае использования в качестве ведущего сети микроконтроллера с низкой тактовой частотой. Например, при использовании ВЕ48, выигрыш составляет около 0,5мкс на символ, при чтении 64-битового ПЗУ получаем экономию времени 32 мкс.


[Назад | Начало]
Технология MicroLAN
Анализ протокола
Число датчиков
Подключение датчиков
Биполярные ключи
Длина линии

Автор: Серебров Борис serebrov@skif.net