Разработка кодека блочного кода на микроконтроллере
Оглавление
кодирование микроконтроллер информация помехоустойчивый
Введение
. Анализ задания
. Структурная схема кодека
. Карта памяти
. Структурная схема алгоритма кодирования и декодирования
. Схема подключения внешних портов ввода/вывода
. Код программы
Вывод
Список используемой литературы
Введение
Помехоустойчивое кодирование широко используется в системах передачи
информации для повышения достоверности. Введение избыточности позволяет
исправлять появляющиеся в линии связи ошибки.
Систематическим (n,k,d) кодом называется блочный код, у которого первые символов - информационные, а
остальные n-k - проверочные. Параметр является расстоянием Хемминга и
соответствует минимальному числу символов, на которое отличаются любые два
кодовых слова. Такой код может исправлять не менее (n-1)/2 ошибок.
Кодовое слово можно формально представить в виде многочлена степени (n-1)
от , причём коэффициенты при соответствующих
степенях являются символами кодового слова.
.
В систематическом коде коэффициенты при xn-1,….,xn-k
будут всегда выбираться в качестве информационных, а последние символов, т.е. коэффициенты при xn-k-1,xn-k-2,..,x0
в качестве проверочных символов (рис.1).
Рис.1 Расположение информационных и проверочных битов.
Представление кодового слова в виде многочлена степени (n-1) позволяет
характеризовать блочный циклический код также двумя многочленами: порождающим и проверочным . Действия над многочленами
выполняются в поле Галуа по модулю 2.
.
Степень многочлена меньше, чем , степень многочлена . Отсюда
и следовательно - кодовый многочлен (так как делится на порождающий
многочлен).
Так как степень меньше, чем , то все слагаемые в этом многочлене степеней и больше, равны нулю.
Следовательно, коэффициентами при членах высшего порядка в многочлене являются неизменные информационные
символы, а коэффициентами при членах низшего порядка -проверочные символы.
Если в качестве выбирать последовательно степени , то коэффициенты многочленов
являются кодовыми векторами, составляющими базис линейного векторного
пространства. Тогда из этих векторов при можно составить порождающую матрицу
линейного систематического блочного кода
,
где - единичная матрица размерности х, а -матрица коэффициентов многочленов -
остатков размерности (n-k)xk.
Процесс кодирования сводится к перемножению строки информационных
символов на порождаюцую матрицу
.
Код, порождаемый матрицей является также нулевым пространством матрицы
.
Следовательно, произведение кодового вектора на транспонированную матрицу приводит к нулевому вектору
,
.
Воздействие помех можно формально представить как прибавление по модулю 2
к передаваемому кодовому вектору вектора помех. Тогда принятый вектор
.
.
.
Следовательно, синдром определяется только вектором ошибок. Анализируя
синдром, можно определить позиции в кодовом векторе, где произошли ошибки.
Считается, что имеется синхронизация по кадрам и по тактам.
Рис. 2 Временная диаграмма поступления данных и информации на
микроконтроллер.
1.
Анализ задания
В данном курсовом проекте будет спроектирован кодек блочного кода на
микроконтроллере в соответствии с исходными данными:
Скорость передачи информационных символов равна 9600 Бод, длина кода n=21, длина информационного блока k=6, порождающий многочлен g(x)=.
Данные поступают в параллельном виде, передаются в параллельном.
Будет использован микроконтроллер Freescale M68HC11, регистр MM74C164.
. Структурная схема кодека
рис. 3
Структурная схема кодека, основанного на микроконтроллере M68HC11
Структурная схема восьми разрядного микроконтроллера M68HC11 приведена на рисунке 4.
Mode controlсхема
выбора режима
Timer systemсистема
таймера
Interrupt logicлогика
прерываний/D converter АЦП/Data Шина адреса/данных
Control
Регистр управления
CPU
Ядро
рис. 4 Структурная схема микроконтроллера M68HC11
рис. 5 Карта памяти микроконтроллера
5. Структурная
схема алгоритма кодирования и декодирования
На рисунке 6 изображены схемы кодирования и декодирования информации.
рис. 6 схема кодирования декодирования
6.
Схема подключения
внешних портов ввода/вывода
На рисунке 7 приведена схема подключения портов ввода и вывода
устройства. Где ША - шина адреса, ШД - шина данных.
рис. 7 Электрическая схема устройства
7.
Код программы
;кодирование
cpu6811;$00ee;вектор прерывания$d100;скачок на подпрограмму
прерывания$c800;основная программа#$d000;ячейка для использования индексной
;адресации x в дальнейшемd#$F774;запись правой части матрицы
std0,x;#$7BBA;,x;#$CAF8 ;,x;#$657C;,x;#$32BE;,x;#$EE6A
;,x;#$8000;,x;#$4000;,x;#$2000;,x;#$1000;,x;#$0800;,x;#$0400;,x;#$0200,x;#$0100,x;#$0080,x;#$0040,x;#$0020,x;#$0010,x;#$0008,x;#$0004,x;#$0002,x#$d00f$d011;счетчик
сli;разрешение прерываний*;замкнутый цикл$d100;подпрограмма прерывания
clr #$d010;создание и очистка кармана
ldaa#6$1F03;загрузка
информационного блока из ;порта в аккумулятор brolb;циклический сдвиг;проверка
1 или 0 во флаге переноса$d00f
;загрузка из кармана в аккумулятор,x;сумматор по модулю 2
staa $d00f$d0101,x
staa$d010;возвращение в карманinx;$d011;уменьшение содержимого ячейки на
1;если после 16 повторений цикла не 0, то ;возвращение на m2
inx
inx$d010;загрузка
содержимого кармана
staa$1F04;вывод проверочного блока
;декодирование$1F03;загрузка информационного блока из ;порта в
аккумулятор a$d200;копирование информационного блока в ;ячейку$1F04;загрузка
проверочного блока из порта в ;аккумулятор a$d202;копирование проверочного
блока в ;ячейку
ldaa#6;$d203;#5;$d204;
Вывод
С учетом всех циклов время выполнения программы будет составлять
,8(+/- 8,25) микросекунд или 167,5 (+/- 33) машинных тактов.
В этом расчете не учитывается время обработки прерывания, скорость
обработки данных будет выше 9600 бод, следовательно, требования выполняются.
Список используемой литературы
. С.Ф. Барретт, Д.Дж. Пак. Встраиваемые системы.
Проектирование приложений на микроконтроллерах семейства 68HC12 \HCS12 с применением языка С. - М.: Издательский дом
"ДМК-пресс", 2007.-640с.
. А.В. Микушин, А.М. Сажнев, И.В. Сединин. Цифровые
устройства и микропроцессоры: учебное пособие. - СПб.:БХВ- Петербург,
2010.-832с.: ил.
. Рабинер Л., Гоулд Б. Теория и применение цифровой обработки
сигналов.-М.: МИР,1978.
. Питерсон У., Уэлдон Э. Коды, исправляющие ошибки.-М.:
МИР,1976.
. О.Д. Вальпа. Полезные схемы с применением микроконтроллеров
и ПЛИС. М: Изд. дом "Додека - ХХ1",2006.
. Лекции по предмету ЦУМП.