Разработка блока АЦП на МК

Автор: Пользователь скрыл имя, 11 Сентября 2011 в 13:18, курсовая работа

Описание работы

Целью данной курсовой работы является разработка устройства аналого-цифрового преобразования, использующего микроконтроллер. Областью применения результатов данной работы может быть любое устройство, анализирующее или обрабатывающее аналоговый сигнал в цифровом представлении.

Содержание

Введение 4

1 Описание принципов работы объекта 5

1.1 АЦП параллельного приближения 6

1.2 АЦП последовательного приближения 7

1.3 АЦП последовательно-параллельного приближения 8

2 Разработка функциональной схемы АЦП 9

2.1 Алгоритм аналого-цифрового преобразования 9

2.2 Описание работы программы. 10

3 Обоснование выбора МК и схем сопряжения с внешними устройствами 10

3.1 Обоснование выбора МК 10

3.1.1 Микроконтроллеры семейства Mcs51 фирмы Intel 10

3.1.2 Микроконтроллеры семейства С500 фирмы Siemens 11

3.1.3 Семейство Microconverter фирмы Analog Devices 11

3.1.4 Микроконтроллеры Xemics. Семейство XE8000 11

3.1.5 PIC микроконтроллеры компании MICROCHIP 12

3.1.6 Микроконтроллеры Scenix Sem. SX 13

3.1.7 Микроконтроллеры Ангстрем, выпускаемые ОАО "АНГСТРЕМ" 14

3.1.8 Микроконтроллеры фирмы Atmel 15

3.1.9 Описание выбранного микроконтроллера 16

3.2 Обоснование выбора схемы сопряжения 19

3.3 Возможности доработки и развития данной схемы 20

3.4 Разработка фрагмента программы для выбранного МК 20

Заключение 23

Приложение

Работа содержит 1 файл

Курсовой проект.docx

— 652.97 Кб (Скачать)

    Восьмиразрядный двоичный код, поданный на ЦАП, масштабирует опорный ток () от 0 до 255, который преобразуется в ток на выходе ЦАП () от 0 до . Напряжение на выходе определяется как ток на выходе ЦАП () умноженный на значение резистора () преобразователя тока в напряжение. Номинальное значение напряжения на выходе: .

    Поскольку при напряжении питания AT90S8535 равном В потребление тока составляет , номинальное значение R1 составит .

    Для подавления помех в цепи питания  как можно ближе к выводам  питания микроконтроллера следует  подсоединять керамический (лучше танталовый) конденсатор емкостью 0,01-0,1 мкФ.

    Использование кварцевого резонатора – наиболее распространённый способ включения  внешней схемы тактового генератора.  Эта схема требует дополнительно  два конденсатора емкостью от 22 до 33 пФ, чтобы облегчить запуск тактового  генератора. Резонатор и конденсаторы должны быть расположены как можно  ближе к микроконтроллеру, а линии соединения как можно короче.

    3.3 Возможности доработки и развития данной схемы

          Одной из причин, по которой была выбрана именно эта  серия микроконтроллеров, является наличие встроенного АЦП последовательного  приближения (для решения задачи, поставленной в техническом задании, не обязательно использовать микроконтроллер  без встроенного АЦП). Использование  этой  особенности микроконтроллеров  позволит значительно минимизировать аппаратные и, как следствие, экономические, и энергетические затраты. С другой стороны, если использование микроконтроллера без АЦП имеет принципиальное значение, то возможна замена данного  микроконтроллера на любой аналогичный, имеющий встроенный аналоговый компаратор.

    4  Разработка фрагмента  программы для  выбранного МК

    Разработанная программа работает со следующими регистрами: ACSR (регистр статуса и управления аналогового компаратора) и WDTCR (регистр управления сторожевым таймером). Биты регистров представлены на рисунке 7 (ACSR) и рисунке 8 (WDTCR).

    

    Рисунок 7 – Регистр ACSR 

    

    Рисунок 8 – Регистр WDTCR

    На  рисунках обозначены:

    • R/W – возможны чтение и запись в данный бит;
    • 0 – начальное состояние бита регистра;
    • ACD – при установленном в состояние 1 аналоговый компаратор запрещён. Для выключения аналогового компаратора установку данного бита можно производить в любое время. Отключение аналогового компаратора позволяет снизить потребление электроэнергии;
    • ACO – бит связан непосредственно с выходом компаратора;
    • ACI – бит флага прерывания по аналоговому компаратору;
    • WDTOE – бит разрешения отключения сторожевого таймера. Должен быть в состояние 1;
    • WDE – бит разрешения сторожевого таймера. Если бит в состояние 1, сторожевой таймер разрешён, в противном случае сторожевой таймер запрещён.
    • WDP2-WDP0 – биты установки коэффициента предварительного деления сторожевого таймера. Длительности сторожевого таймера в зависимости от значений битов WDP2-WDP0 представлена в таблице 2.

    Таблица 2 – Выбор коэффициента предварительного деления тактовой частоты сторожевого  таймера 

    

    Сторожевой  таймер используется для предотвращения возникновения ситуации «зависания»  программы. Таймер тактируется отдельным  встроенным генератором, работающем на частоте 1 МГц. Установкой коэффициента предварительного деления тактовой частоты сторожевого таймера  можно изменить длительность интервала  до сброса от 16 до 2048 мс. Поскольку задержка аналогового компаратора составляет 500 нс., то работа остальных элементов  по сравнению с ним не значительна. При длительности интервала до сброса в 16 мс сторожевой таймер обеспечит необходимый временной интервал для выполнения программы и срабатывания аналогового компаратора. Процедура задержки (wait) обеспечивает выполнение 5000 операций декремента, выполняемых за один такт микроконтроллера. Длительность такта микроконтроллера составляет 0,125 нс (1/8 МГц), длительность процедуры Wait составляет 625 нс, обеспечивая тем самым срабатывание аналогового компаратора.

    Промежуточные значения переменных хранятся в регистрах 22-24.

    Ключевым  моментом в алгоритме преобразования аналогового сигнала в двоичный код является функция последовательного  установления бит на порте вывода и сравнения уровня входного сигнала  с уровнем сигнала на выходе ЦАП. При этом важную роль играет правильное  установление режимов работы портов, таймеров и компараторов.

 

    Для более подробного рассмотрения приводятся функция реализации алгоритма последовательного  пересчёта.

    START_BIT:

    mov A,N  ;занесение в переменную A номера тестируемого бита

    or A,D   ;А=А or D

    ldi temp,A  ;занесение в переменную Temp результата А or D

    sbi ACSR,ACD  ;включение аналогового компаратора

    rcall wait  ;ожидание срабатывание аналогового компаратора

    cbi ACSR,ACD  ;отключение аналогового компаратора

    mov SC, C  ;сохранение значение C, N и D

    mov SN, N

    mov SD, D

    ror N   ;циклический сдвиг вправо с переносом -

    ;–  переход на следующий бит

    inc C   ;увеличение на единицу C – подсчёт количества

                            ;обработанных бит

    cpi C,$08  ;сравнение C c 8 – конец байта

    brne START_BIT ;если не равно (не конец байта), то переход на START_BIT. 
 

 

     Заключение

    В ходе работы была разобрана классификация  АЦП и разработан АЦП последовательного  приближения на микроконтроллере AT90S8535 фирмы Atmel. Подробно разобраны архитектура МК, назначение выводов и основные режимы его работы для возможной дальнейшей модернизации устройства. Приведен фрагмент программы управления микроконтроллером на языке Assembler. Микроконтроллеры семейства AVR поставляются в очищенном состоянии – содержимое и Flash памяти программ и ЭСППЗУ данных находится в состоянии FF и готово к программированию. Семейство обеспечено комплектом программ и системами отладки, включающими: макро-ассемблеры, отладчики/симуляторы программ, внутрисхемные эмуляторы, и отладочные устройства, без которых управление МК невозможно, т.к. оно определяет алгоритм и режим работы всего устройства преобразования.

    Основными достоинствами блока являются относительная  простота реализации, хорошие технико-экономические  показатели, высокая скорость преобразования и широкая область применения. Продолжением данной темы может стать разработка устройств не только преобразования аналогового сигнала, но и некоторого его анализа. Возможна замена МК на аналог, т.к. приборы семейства AVR совместимы по исходным кодам и тактированию.

 

Приложение  А

(справочное)

    Алгоритм  аналого-цифрового  преобразования

 

Приложение Б

(обязательное)

Схема электрическая принципиальная

 

 

Приложение  В

(справочное)

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

        include "8535def.inc"  ; подключение файла описания МК

        .device AT90S8535   ; задание конкретного МК

        .def C = r16    ; назначение регистру r16 символического имени C

        .def A = r17    ; назначение регистру r17 символического имени A

        .def N = r18    ; назначение регистру r18 символического имени N

        .def D = r19    ; назначение регистру r19 символического имени D 

        .def SC = r22    ; назначение регистру r22 символического имени SC

        .def SN = r23    ; назначение регистру r23 символического имени SN

        .def SD = r24    ; назначение регистру r24 символического имени SD 

        .def Temp = r20    ; назначение регистру r20 символического имени Temp 

        .cseg    ; установка адреса памяти программ 

        .org 0  ; прерывание номер 0 – сброс по выводу и прерывание от  сторожевого таймера

        rjmp RESET    ; переход на метку RESET

        rjmp START_BIT  ; переход на метку START_BIT

        reti    ; возврат из прерывания 

        .org 002E    ; прерывание номер 2Е - от аналогового компаратора

        rjmp Ana_Comp   ; переход на метку Ana_Comp

        reti    ; возврат из прерывания 

        ------------------------------------------------------------------------------- 

        MAIN:    ; основная процедура

        Mov SC,$00   ; установка начальных значений 

        Mov SN,$07

        Mov SD,$00

        sbr WDTCR,WDTOE  ; настройка сторожевого таймера (описана в пункте 4)

        cbr WDTCR,WDE  ; сброс бита WDE регистра WDTCR

        sbr WDTCR,WDE  ; установка бита WDE регистра WDTCR

        sbr WDTCR,WDP0  ; установка WDP0 регистра WDTCR

        sbr WDTCR,WDP1  ; установка WDP1 регистра WDTCR

        sbr WDTCR,WDP2  ; установка WDP2 регистра WDTCR

        rcall RESET    ; вызов процедуры RESET 

        START_BAIT:   ; процедура обработки байта

        clr C     ; установка начальных значений 

        ldi N,$07

        clr D

 

        START_BIT:   ; процедура обработки бита

        mov A,N    ; занесение в переменную A номера тестируемого бита

        or A,D    ; А=А or D

        ldi temp,A   ; занесение в переменную temp результата операции А or D

        сbi ACSR,ACD   ; включение аналогового компаратора

        rcall wait    ; ожидание срабатывание аналогового компаратора

        sbi ACSR,ACD   ; отключение аналогового компаратора

        mov SC,C   ; сохранение значения C

        mov SN,N   ; сохранение значения N

        mov SD,D   ; сохранение значения D

              ror N  ; циклический сдвиг вправо с переносом – переход на следующий бит

              inc C  ; увеличение на единицу C – подсчёт количества обработанных бит

        cpi C, $08   ; сравнение C c 8 – конец байта

        brne START_BIT  ; если не равно (не конец байта), то переход на START_BIT

        rjmp START_BAIT 

        ------------------------------------------------------------------------------- 

        RESET:

Информация о работе Разработка блока АЦП на МК