Проектирование идентификатора каналов многожильного кабеля

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

мируемым усилением в 1, 10 или 200 крат (только в корпусе TQFP);

Байт-ориентированный 2-проводный последовательный интерфейс;

Программируемый последовательный USART;

Последовательный интерфейс SPI (ведущий/ведомый);

Программируемый сторожевой таймер с отдельным встроенным генератором;

Встроенный аналоговый компаратор;

Специальные микроконтроллерные функции

Сброс по подаче питания и программируемый детектор кратковременного снижения напряжения питания;

Встроенный калиброванный RC-генератор;

Внутренние и внешние источники прерываний;

Шесть режимов пониженного потребления: Idle, Power-save, Power-down, Standby, Extended Standby и снижения шумов ADC;

Выводы I/O и корпуса

23 программируемые линии ввода/вывода;

28-выводной корпус PDIP и 32-выводной корпус TQFP;

Рабочие напряжения 2,7 - 5,5 В

Рабочая частота 0 - 16 МГц

 

Структурная схема устройства и её описание. Структурная схема

 

Рис.

 

Назначение отдельных функциональных блоков

 

Назначение микроконтроллера ATmega8:

кодирование сигнала, означающего номер выбранного провода

выбор активного провода

Назначение демультиплексоров 74154:

Расширение количества доступных выводов

 

Описание принципа действия и общий алгоритм работы

 

Для решения данной задачи, нам нужно разрешить 2 проблемы: во первых, не существует контроллера с 80 выходами, поэтому требуется увеличение количества портов для подключения испытуемых проводов. Во вторых, нам нужно решить каким способом кодировать номер проводника. Мы выбрали метод кодирования последовательностью импульсов. Этот метод легко реализуется и позволяет достигнуть очень высокого уровня точности передачи. По сравнению, к примеру, с кодированием по длине импульса, этот метод имеет более высокую точность, из-за того, что измерение длительности импульса на приемном блоке может внести существенную погрешность. Так же помеха, прервавшая этот импульс, исказит результат полностью. Передача импульса, закодированного двоичным кодом числа более эффективна, но является более труднореализуемой, поскольку надо регистрировать не только единичный импульс, но и нулевой. Тогда пришлось бы вводить проводник для синхронизации, что усложнило бы схему, но упростило бы реализацию. В любом случае, нам нужно объединить земли 2 схем.

 

Разработка функциональной и принципиальной схем. Описание принципиальной схемы устройства

 

Принципиальная схема устройства:

 

Рис.

 

Описание принципиальной схемы устройства:

Основу схемы представляет собой микроконтроллер ATmega8. К портам C и D подключены адресные входы демультиплексоров. К порту C - 16-тиричный адрес, а к D - подключены входы выбора микросхемы. Таким образом, мы используем меньшее количество проводников, чем при подключение каждого мультиплексора в отдельности, а не к общей шине адреса. На порт B выводиться информация сигнал на провод, выбранный с помощью демультиплексора. Для защиты выходов демультиплексоров, установим резисторы (сборки) на выход каждого канала. Таким способом мы защитим от выгорания выходного каскада микросхемы при коротком замыкание или же ошибке оператора.

 

Описание функциональной схемы устройства

 

Функциональная схема:

 

Рис.

 

Описание схемы:

Выше представлена функциональная схема проектируемого устройства. Устройство управляется микроконтроллером ATmega8. После инициализации портов происходит последовательная подача сигнала на каждый из 80 выводов, образованных с помощью демультиплексоров.

 

Разработка рабочей программы МКУ. Блок-схемы алгоритмов и их описания

 

Блок схема работы передатчика:

 

Рис.

 

Описание алгоритма:

Сразу после включения устройства, микроконтроллер настроит порты B, C, D на выход. Далее по кругу будет передавать по проводнику последовательность, кодирующую его номер.

Как мы сказали раньше, номер будет кодироваться последовательностью импульсов, в связи с тем, что такое кодирование является самым простым и эффективным.

 

Временная диаграмма:

Поскольку время кодирования одного счетного импульса составляет десятки микросекунд, то за секунду возможно несколько проходов. Ниже приведем временную диаграмму, снимаемую одновременно с первого, второго и третьего проводов.

Шаг сетки в данном случае 100 микросекунд.

 

Рис.

 

При шаге сетки в 2 миллисекунды, сигнал на проводниках с последними номерами будет иметь вид:

 

Рис.

 

То есть, максимальный по длине последовательность импульсов будет меньше 12 миллисекунд, что обеспечивает удобство оператора в том, что ему не требуется держать щуп на проводе долгое время, так же это время влияет на общую скорость работы системы.

Текст программы

 

Исходный код прошивки микроконтроллера-передатчика sender_001.c

#define F_CPU 1000000UL

#include

#include char i, limit;char addr;main (void)

{= DDRD = DDRB = 0xFF;= 1;(;;addr++)

{= addr = 80 4));//H part of addr= addr + 1;(i = 0; i < limit; i++)

{^=1;

_delay_us(64);^=1;

_delay_us(64);

}

}0;

}

 

 

Моделирование

 

Для моделирования описанной электронной медицинской книжки была использована программа разработки электрических схем Proteus 7.10 Professional.

Для того чтобы смоделировать наше устройство потребовались следующие ко