--PAGE_BREAK--
Продолжение таблици2
Описание выводов микроконтроллеров представлены в таблице 2
GND — земля
Port B (PB5..PB0) — Порт B является 6-битовым двунаправленным портом ввода/вывода с внутренними подтягивающими резисторами. Выходные буферы порта B могут поглощать ток до 20мА. Если выводы PB0..PB5 используются как входы и извне устанавливаются в низкое состояние, они являются источниками тока, если включены внутренние подтягивающие резисторы. Кроме того Порт B обслуживает некоторые специальные функции, которые будут описаны ниже.
Port С (PС5..PС0) — Порт С является 6-битовым двунаправленным портом ввода/вывода с внутренними подтягивающими резисторами. Выходные буферы порта С могут поглощать ток до 20мА. Если выводы PС0..PС5 используются как входы и извне устанавливаются в низкое состояние, они являются источниками тока, если включены внутренние подтягивающие резисторы. Кроме того Порт С обслуживает аналоговые входы АЦП.
Port D (PD5..PD0) — Порт D является 8-битовым двунаправленным портом ввода/вывода с внутренними подтягивающими резисторами. Выходные буферы порта B могут поглощать ток до 20мА. Если выводы PD0..PD7 используются как входы и извне устанавливаются в низкое состояние, они являются источниками тока, если включены внутренние подтягивающие резисторы. Кроме того Порт D обслуживает некоторые специальные функции, которые будут описаны ниже.
RESET— Вход сброса. Удержание на входе низкого уровня в течение двух машинных циклов (если работает тактовый генератор), сбрасывает ус-
тройство.
XTAL1 — Вход инвертирующего усилителя генератора и вход внешнего тактового сигнала.
XTAL2 — Выход инвертирующего усилителя генератора.
AVCC — Вывод источника питания АЦП. Этот вывод через фильтр низкой частоты должен быть подключен к выводу питания процессора.
AREF — Вход опорного напряжения АЦП. Напряжение, подаваемое на этот вывод лежит в пределах 2.7В...AVCC.
AGND — Если плата имеет отдельный слой аналоговой земли, к нему подключается этот вывод. В противном случае этот вывод соединяется с GND.
В состав AT90S2333/4433 входит универсальный асинхронный приемопередатчик (UART), его основные особенности:
— генерация произвольных значений скорости
— высокая скорость при низких тактовых частотах
— 8 или 9 бит данных
— фильтрация шума
— Определение переполнения
— Детектирование ошибки кадра
— Определение неверного стартового бита
— Три раздельных прерывания — завершение передачи, очистка регистра передачи и завершение приема.
— Режим мультипроцессорного обмена.
Передача данных инициируется записью передаваемых данных в регистр ввода/вывода данных UART — UDR. Данные пересылаются из UDR в сдвиговый регистр передатчика когда:
— новый символ записывается в UDR после того как был выдвинут стоповый бит для предыдущего символа. При этом сдвиговый регистр загружается сразу.
— новый символ записывается в UDR до того как выдвинут стоповый бит для предыдущего символа. При этом сдвиговый регистр записывается сразу после того, как будет выдвинут стоповый бит предыдущего символа.
При этом в регистре состояния UART — USR устанавливается бит-признак очистки регистра данных — UDRE/ Когда этот бит установлен, UART готов к приему следующего символа. При перезаписи UDR в 10(11)- разрядный сдвиговый регистр, бит 0 сдвигового регистра обнуляется (стартовый бит), а бит 9 или 10 устанавливается (стоповый бит). Если выбрано 9-битовое слово данных (установлен бит CHR9 в регистре UCR), бит TXB8 из UCR переписывается в 9-й бит сдвигового регистра передатчика.
После тактового импульса, следующего с частотой передачи, стартовый бит выдвигается на вывод TXD. Затем выдвигаются данные, начиная с младшего бита. После того как выдвинут стоповый бит, в сдвиговый регистр загружаются новые данные, если они были записаны в UDR во время передачи. При загрузке устанавливается бит UDRE. Если до выдвижения стопового бита в регистр UDR не поступают новые данные, UDRE остается установленным до последующей записи UDR. Если новые данные не поступили и на выводе TXD появляется стоповый бит, в регистре USR устанавливается флаг окончания передачи — TXC.
Установка бита TXEN в UCR разрешает работу передатчика. При очистке бита TXEN, вывод PD1 можно использовать для ввода/вывода данных. Если бит TXEN установлен, передатчик UART подключен к выводу PD1 независимо от установки бита DDD1 в регистре DDRD.
Прием данных
Логическая схема приемника обрабатывает сигнал на выводе RXD с частотой в 16 больше скорости передачи (для обработки одного бита принимаемой последовательности, производится 16 выборок входного сигнала). В состоянии ожидания одна выборка логического нуля интерпретируется как спадающий фронт стартового бита, после чего запускается последовательность обнаружения стартового бита. Если в первой выборке сигнала обнаружен нулевой отсчет, приемник обрабатывает 8, 9 и 10 выборки сигнала на выводе RXD. Если хотя бы две из трех выборок равны логической единице, стартовый бит считается шумом и приемник ждет следующего перехода из 1 в 0. Если обнаружен стартовый бит, начинается обработка бит данных. Решение об уровне данных также производится по 8, 9 и 10 выборкам входного сигнала, уровень входного сигнала определяется по равенству двух выборок. После того как уровень данных определен, данные вдвигаются в сдвиговый регистр приемника. Для определения стопового бита хотя бы две из трех выборок входного сигнала должны быть равны 1. Если это условие не выполняется, в регистре USR устанавливается флаг ошибки кадра FE. Перед чтением данных из регистра UDR пользователь должен проверять бит FE для обнаружения ошибок кадра. Независимо от принятия правильного стопового бита по окончанию приема символа принятые данные переписываются в UDR и устанавливается флаг RXC в регистре USR. Физически регистр UDR состоит из двух отдельных регистров, один используется для передачи данных, другой — для приема. При чтении UDR происходит доступ к регистру приемника, при записи — к регистру передатчика. При обмене 9-битовыми данными 9-й бит принятых данных записывается в бит RXB8 регистра UCR. Если при приеме символа из регистра UDR не был прочитан предыдущий символ, в регистре UCR устанавливается флаг переполнения — OR. Установка этого бита означает, что последний принятый байт данных не переписывается из сдвигового регистра в регистр UDR и будет потерян. Бит OR буферирован и обновляется при чтении правильных данных из UDR. Таким образом, пользователь всегда может проверить состояние OR после чтения UDR и обнаружить происшедшее переполнение. При сбросе бита RXEN в регистре UCR прием данных запрещается. При этом вывод PD0 можно использовать для ввода/вывода общего назначения. При установке RXEN, приемник подключен к выводу PD0 независимо от состояния бита DDD0 в регистре DDRD.
Режим мультипроцессорного обмена Режим многопроцессорного обмена позволяет нескольким ведомым процессорам принимать данные от ведущего. Для этого сначала декодируется адресный байт, который определяет к какому из процессоров обращается ведущий.
Если ведомый процессор принял правильный адрес, последующие
байты он принимает как данные, в то время как остальные ведомые процессоры игнорируют принимаемые байты до приема следующего адреса. Для работы в режиме ведущего процессор должен установить 9-битовый режим передачи (установлен бит CHR9 в UCSRB). Для передачи адресного байта девятый бит должен устанавливаться в 1, и сбрасываться для передачи байтов данных. В ведомых процессорах механизм приема слегка отличается для 8-ми и 9-ти битового режима приема. При приеме восьми бит (сброшен бит CHR9 в UCSRB), стоповый бит для адресного байта равен единице и равен нулю для байт данных. В 9-ти битовом режиме для адресного байта устанавливается 9-й бит, для байт данных он будет сброшен, стоповый бит всегда будет равен 1. Для обмена данными в многопроцессорном режиме необходимо выполнить следующую процедуру.
1. Все подчиненные процессоры устанавливают обмен в многопроцессорном режиме (установлен бит MPCM в UCSRA)
2. Ведущий процессор посылает адресный байт, все подчиненные процессоры читают и принимают этот байт. В ведомых процессорах устанавливается флаг RXC в UCSRA.
3. Каждый из ведомых процессоров читает регистр UDR и определяет был ли он выбран. Если процессор выбран, он сбрасывает флаг MPCM в UCSRA, иначе он будет ожидать следующего адресного байта.
4. Для каждого принятого байта данных в ведомом процессоре устанавливается флаг завершения приема (RXC в UCSRA). Кроме того в 8-битовом режиме будет генерироваться ошибка кадра (FE в UCSRA), поскольку стоповый бит будет равен 0. В других подчиненных процессорах
установлен бит MPCM, поэтому байты данных будут игнорироваться, регистр UDR не записывается, флаги RXC и FE не устанавливаются.
5. После передачи последнего байта данных процесс повторяется с шага 2.
АНАЛОГО-ЦИФРОВОЙ ПРЕОБРАЗОВАТЕЛЬ
Основные характеристики:
— разрешение 10 бит
— точность +- 1/2 младшего разряда
— время преобразования 65-260 uS
— 6 мультиплексирумых входов
— работа с полным размахом напряжения
— непрерывный режим или одиночные преобразования
— прерывание по завершению преобразования
— подавление шума в режиме Sleep
AT90S2333/4433 имеют 10-разрядный АЦП последовательного приближения. АЦП подключен к выходу шестивходового мультиплексора. Мультиплексор позволяет подключать на вход АЦП любой из входов порта C. В состав АЦП входит усилитель выборки-хранения, который позволяет сохранять на входе АЦП уровень напряжения постоянный за время преобразования.
АЦП имеет два отдельных вывода питания AVCC и AGND. ФПТВ должен подключаться к GND, напряжение на AVCC не должно отличаться от VCC более чем на +-0.3В. Внешнее опорное напряжение должно подаваться на вывод AREF. Это напряжение должно лежать в пределах AGND-AVCC.
АЦП может работать в двух режимах — одиночного преобразования и непрерывном. В режиме одиночного преобразование каждое преобразование инициируется пользователем. В непрерывном режиме АЦП производит непрерывную обработку входного сигнала и обновляет регистр данных АЦП. Переключение режимов осуществляется битом ADFR в регистре ADCSR. Регистр ADMUX выбирает один из шести входов подключаемый ко входу АЦП. Кроме того в качестве входа можно использовать фиксированное опорное напряжение. Работа АЦП разрешается записью логической «1» в бит разрешения АЦП (ADEN в ADCSR). Перед первым преобразованием после разрешения АЦП выполняется одно «пустое» преобразование инициализирующее АЦП. Для пользователя единственное отличие первого преобразования от последующих заключается в том, что оно занимает 25 тактовых импульсов вместо обычных 13.
Преобразование запускается записью логической 1 в бит запуска АЦП — ADCS. Этот бит остается установленным пока идет преобразование и аппаратно сбрасывается, когда преобразование завершается. Если во время преобразования происходит переключение канала, пред переключением АЦП завершает текущее преобразование.
Операция выборки-хранения занимает один цикл после запуска преобразования. Это позволяет пользователю устанавливать номер входного канала одновременно с запуском преобразования Поскольку результат преобразования занимает 10 разрядов, для хранения результата используется два регистра ADCH и ADCL, которые должны быть прочитаны для получения результата. Для защиты данных, чтобы обеспечить чтение результата одного преобразования из обоих регистров используется специальная логика защиты данных.
Этот механизм работает так:
При чтении данных первым должен читаться регистр ADCL. Доступ АЦП к регистру данных блокируется. Это приводит к тому, что если прочитан байт ADCL и преобразование завершилось до того как прочитан регистр ADCH, регистр данных не изменяется и результат преобразования будет потерян. Доступ АЦП к регистру данных разрешается после чтения ADCH. АЦП имеет собственное прерывание, которое выполняется по завершению преобразования. Если доступ АЦП к регистру данных запрещен (между чтением ADCL и ADCH), прерывание вызывается даже если данные потеряны. Предварительный делитель АЦП работает с тактовыми частотами в диапазоне 50-200 kHz. Для полного преобразования АЦП необходимо 13 тактов, т.е. преобразование занимает от 65 до 260 uS. Корректное значение выхода АЦП гарантируется только для тактовых частот не выходящих из приведенного диапазона. Для генерации тактовой частоты АЦП из тактовой частоты процессора выше 100 кГц используются биты ADPS0-ADPS2. Предварительный делитель начинает счет в момент разрешения АЦП установкой бита ADEN в ADCSR. Предварительный делитель продолжает работать до тех пор, пока установлен бит ADEN и непрерывно сбрасывается если бит ADEN сброшен. Функция подавления шумов АЦП Одна из особенностей АЦП — функция подавления шумов, АЦП может осуществлять преобразования в режиме холостого хода, это позволят уменьшить шумы, наводимые ядром процессора. Чтобы воспользоваться этой возможностью, необходимо произвести следующую процедуру:
1. Удостоверьтесь, что АЦП разрешен и не занят преобразованием. Необходимо выбрать режим одиночного преобразования и разрешить прерывания по окончанию преобразования .
ADEN=1
ADSC=0
ADFR=0
ADIE=1
2. Перейти в режим холостого хода. АЦП начнет преобразование после того как остановится процессор.
3. Если за время преобразования не произойдут другие прерывания, по окончанию преобразования процессор выйдет из режима холостого хода и выполнит прерывание по окончанию преобразования.
ЗАКЛЮЧЕНИЕ
В медицине и бытовой сфере проблема эффективного использования тепловой энергии — одна из важнейших. Ее решение возможно только при комплексной автоматизации всего теплотехнического оборудования с помощью различных цифровых приборов локального учета, контроля и управления (с возможностью соединения таких приборов в локальную вычислительную сеть для создания систем глобального регулирования всего объекта).
AVR-микроконтроллеры в сочетании с датчиками позволяют создавать эффективные системы контроля в бытовой и промышленной, а также в медицинской технике. Их главные достоинства — универсальность, программная гибкость, возможность цифровой обработки данных и реализации сложных алгоритмов управления. Интеграция в одном корпусе большого количества периферийных устройств обеспечивает компактность и низкую стоимость приборов в условиях сжатых сроков разработки и постановки изделий на производство. Однокристальная микро-ЭВМ (микроконтроллер) представляет собой, построенную вокруг микропроцессора вычислительную систему, которая выполнена на одном кристалле вместе с микропроцессором. В данной курсовой работе был исследован цифровой медицинский термометр с памятью на 5 измерений. Здесь использовался датчик температуры 10П. Данная схема имеет возможность подключения и других датчиков температуры. Устройство построено на контроллере AVR(Atmega103). В работе были учтены все требования. В частности нам нужно было измерять температуру с точностью 0,1, в связи с этим использовался внутренний аналого-цифровой преобразователь (10-ти разрядный).
продолжение
--PAGE_BREAK--