ЭССОИ вар_3. Контрольная работа 1 по дисциплине Электронные средства сбора, обработки промышленной и деловой информации учебное пособие В. Л. Савчук Электронные средства сбора, обработки промышленной и деловой информации Часть 1
Скачать 1.1 Mb.
|
Томский межвузовский центр дистанционного образования Томский государственный университет систем управления и радиоэлектроники (ТУСУР) Кафедра промышленной электроники (ПрЭ) Контрольная работа №1 по дисциплине «Электронные средства сбора, обработки промышленной и деловой информации » учебное пособие В. Л. Савчук «Электронные средства сбора, обработки промышленной и деловой информации Часть 1» учебное методическое пособие В. Л. Савчук «Электронные средства сбора, обработки промышленной и деловой информации» Выполнил студент гр. специальности 210106 3 октября 2014 г. 2014 г. Задание Разработать декодер двуполярного двоичного беспаузного сигнала с проверкой на четность. Формат информационной части кода 8 бит. Режим асинхронный с одним стартовым и стоповым битом. Выполнение Для преобразования двуполярного беспаузного сигнала в цифровой код можно использовать аналогово-цифровые преобразователи кода АЦП. Рисунок 1 – Двуполярный беспаузный сигнал. Чтобы сформировать один кадр данных потребуется N = 11 бит данных в каждом кадре: N = 1 старт-бит + 8 информационных бит + 1 бит четности + 1 стоп бит, Поэтому разрядность АЦП должна составлять не менее 11 разрядов. Выберем в качестве микросхемы АЦП микросхему AD7321 ,которая имеет широкий диапазон входных аналоговых сигналов, в том числе имеет возможность приема биполярного сигнала на входе без дополнительных цепей с использованием внешнего опорного напряжения. Типичный кадр данных в асинхронном канале начинается со стартового бита, за которым следует 8 битов данных. Завершается такой кадр одним или двумя стоп-битами (в нашем случае одним). Стартовый бит имеет полярность противоположную пассивному состоянию линии и переводит приемник в активное состояние. Пример передачи такого кадра показан на рис. 2. Рис. 3. Пример передачи кадра в асинхронном режиме Одним из способов обеспечения надежной синхронизации является применение в приемнике частоты, например, в 8 раз больше частоты следования данных. При этом стробирование данных может производиться примерно в середине сигнала бита (см. рис. 4). Рис. 4 - Схема синхронизации и стробирования с 8-кратной тактовой частотой приемника Структурная схема декодирования: Рисунок 5 – Структурная схема декодирования сигнала Задача декодирования биполярного сигнала комплексная и достаточно сложная, поэтому удобнее решить ее аппаратно-программным способом с использованием микроконтроллера. Также для реализации данной задачи достаточно использовать один из простейших микроконтроллеров, например, МК51. Рассмотрим решение задачи на основе микроконтроллера К1816ВЕ51. Схема аппаратной реализации представлена на рисунке 6 и в приложении Б. Рисунок 6 – Аппаратная реализация декодера. Программный алгоритм решения задачи в виде блок-схемы алгоритма представлен на рисунке7. Листинг управляющей программы микроконтроллера представлен в приложении А. Рис 7. Блок-схема работы микроконтроллера. Поступающий в микроконтроллер последовательный сигнал на линию порта Р0 по интерфейсу SPI от АЦП дешифрируется в параллельный и осуществляется проверка на четность. Если код верен, то он выводится на порт P1 микроконтроллера. Счетчик проверки на четность инвертируется с приходом единицы и в результате при совпадении бита четности и счетчика четности код сообщения верен, иначе происходит ошибка. По приходу стопового бита программа “зацикливается” и ожидает прихода следующего стартового бита. В данной программе так же применено стробирование сигнала, т. е. При приходе стартового бита осуществляется задержка на пол такта и, если сигнал сохранился, то только в этом случае будет осуществлен выход из цикла и дешифрирование сообщения. Задержка на один и пол такта реализуется с учетом времени на выполнение операторов основной программы. Задержка может формироваться от 80 мкс до 20 мс. Вычисляется как: Т–(Т-35-7.5-17.5), где 35-время выполнения операторов основной программы, 7,5-время выполнения STOP TCNT, 17,5-время выполнения операторов подпрограммы задержки, и для Т/2–(Т/2-25-7.5-17.5), где 25-время выполнения операторов основной программы, 7,5-время выполнения STOP TCNT, 17,5-время выполнения операторов подпрограммы задержки. Времена даны для частоты тактового генератора 6 МГц. Максимальная частота преобразования 12.5 кГц, минимальная 50 Гц. Список используемой литературы Шарапов А.В.Цифровые и микропроцессорные устройства: Учебное пособие. – Томск:-2003. - 166 с. Савчук В.Л. Электронные средства сбора, обработки промышленной и деловой информации: Учебное методическое пособие. – Томск:-1997. – 19 с. Савчук В.Л. Электронные средства сбора, обработки промышленной и деловой информации: Учебное пособие. Часть 1: – Томск:-2002. – 76 с. Представление электрических сигналов в цифровой форме. - [Электронный источник] - http://book.itep.ru/2/22/pres_22.htm Однокристальные микроЭВМ. Справочник. М.: МИКАП, 1994, — 400 с. ПРИЛОЖЕНИЕ А Листинг 1 – Управляющая программа микроконтроллера DELAY: JNT0 DELAY ; Ждем стартовый импульс CALL DELAYX ; Стробирование стартового импульса JNT0 DELAY MOV R7, #8 ; Загрузим счетчик битов CLR A ; Очистим аккумулятор MOV P0, A ; Очистим порт P1 CLR F0 ; Сбросим счетчик четности CYCLE: CLR C ; Сбросим последовательный бит CALL DELAYT ; Задержка = период сигнала JT0 CHANGE ; Если нуль, то переход на CHANGE CPL F0 ; инверсия счетчика CPL C ; установка флага переноса CHANGE: RRC A DJNZ R7, CYCLE ; Если не конец, то повторяем CALL DELAYT ; Задержка = 1 такт JNT0 ODD ; Если бит четности = 1 то переход JF0 ERR ; Если счетчик четности = 1, то ошибка JMP OUT ; переход на вывод ODD: CPL F0 ; если счетчик четности = 1, то ошибка JF0 ERR OUT: CALL DELAYT ; Задержка в 1 такт JT0 ERR2 ; Если нет стартового бита, то ошибка OUTL P1, A ; Вывод числа на порт P1 CALL DELAYT ; Задержка в один такт JMP DELAY ERR: CALL DELAYT ; CALL DELAYT ; JMP DELAY ; ERR2: CALL DELAYT ; JMP DELAY ; DELAYX: MOV R6, A ; Подпрограмма задержки на пол такта MOV A, #NOT((T/2-25-7.5-17.5)/80-1) ; MOV T, A ; Загрузим таймер-счетчик STRT T ; Запуск таймера EN TCNTI ; Разрешаем прерывания MOV A, R6 ; Восстановим аккумулятор RET ; DELAYT: MOV R6, A ; Подпрограмма задержки на такт MOV A, #NOT((T-35-7.5-17.5)/80-1) ; MOV T, A ; Загрузка таймера STRT T ; Старт таймера EN TCNTI ; Разрешаем прерывания MOV A, R6 RET ; ПРИЛОЖЕНИЕ Б |