Информационно-вычислительная система анализа характеристик электрических сигналов

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,23 Мб
  • Опубликовано:
    2013-03-12
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Информационно-вычислительная система анализа характеристик электрических сигналов

Аннотация

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

Курсовой проект выполнен на 65-ти листах, содержит 3 чертежа.

Summary

the present coursework the six-channel data-processing system for electric signal analysis was developed. The constructed system realizes measuring of three analog and three digital signals, analog-digital conversion of the analog signals, display of results on the indicator, accumulation on each of channels with time averaging on an interval, definition of measured parameter’s effective value, data saving and data transfer under the standard protocol. The basis for development is the task for course designing.course project is executed on 65 sheets, contains of the 3 drawings.

Задание на курсовой проект “Информационно-вычислительная система анализа характеристик электрических сигналов”

Число входных сигналов

аналоговых

релейных


3

3

Величина входного аналогового напряжения


Максимальная основная частота входного сигнала

50Гц

Уровни релейных сигналов - совместимы с ТТЛ уровнями.

+

Ввод релейных сигналов реализовать через прерывание, асинхронно.

+

Максимальная длина проводников до источника первичного сигнала - не более

Вывод информации - на цифровое табло

Число строк

Число столбцов


3

8

Элементы индикации

7-сегментные

Время формирования сигнала на выходе - не более

Точность представления входной информации - не хуже

0.1%

Точность представления выходной информации - не хуже

1%

Частота измерения входного сигнала (ГОСТ 8-109-98)

 

Число отсчетов при одном измерении - не менее

20

Время изменения

24 часа

Функциональная клавиатура

16 клавиш

Объем памяти команд - не менее

16Кб


По результатам измерений за одну минуту вычисляются шесть параметров для каждого входного сигнала с указанной точностью (разрядностью), которые и записываются в память для хранения. После 24 часов измерений результаты документируются и обновляются.

Функции системы:

·        ввод сигналов;

·        накопление по каждому из каналов с усреднением во времени;

·        вывод результатов по стандартному интерфейсу на печать и индикацию.

Содержание

1. Разработка технического задания

. Техническое предложение и описание

.1 Прототип схемы измерения и отображения информации

.2 Прототип схемы подключения клавиатуры

.3 Прототип схемы сбора и накопления данных

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

.5 Проверочные расчеты

. Программная часть

.1 Описание алгоритма программы

Заключение

Список использованной литературы

Приложение

1. Разработка технического задания


Анализ задания на курсовое проектирование показывает, что по сути разрабатываемая система является шестиканальным цифровым вольтметром с тремя аналоговыми и тремя цифровыми входами, который дополнен системой сбора и накопления данных. Структурная схема такого прибора приведена на рис. 1.

Рис. 1. Структурная схема разрабатываемого прибора в первом приближении

Рассмотрим количественные характеристики проектируемой системы, следующие из задания на курсовой проект. Согласно рекомендациям к проекту, ширину спектра следует ограничить десятой гармоникой аналогового сигнала

.

Тогда для трёх мультиплексируемых аналоговых входа частота преобразования АЦП должна удовлетворять соотношению

 (1)

Поскольку современные АЦП, интегрированные на одном кристалле с микроконтроллером, имеют минимальную частоту эффективного аналогово-цифровых преобразования , то соотношение (1) удовлетворяется с очень большим запасом. Заметим, что для микроконтроллеров ATmega фирмы Atmel (см. напр. [1]), которые будут использоваться в данной работе, большинство операций происходит за один такт процессора, частота которого , т.е. операции пересылки и ввода-вывода происходят за время, много меньшее времени преобразования АЦП, так что временем выполнения этих операций можно пренебречь. Куда существенней оказывается вклад, обусловленный конечным количеством отсчётов, требуемых для измерений. Будем производить в течение одного измерения  выборки для накопления и последующего программного вычисления среднего значения измеряемого напряжения. Во-первых, это число больше 20-ти требуемых в задании отсчётов, во-вторых, деление числа на 32 сводится к сдвигу этого числа вправо на 5 бит, т.е. операция вычисления среднего значения сигнала по каждому из входов выполняется за 33 такта процессора - 32 сложения и 1 сдвиг вправо на 5 бит. Тогда частота, с которой производится  аналогово-цифровых преобразования для получения среднего значения по всем 3-м аналоговым входам составит

.

Таким образом, пренебрегая временем вычисления средних значений по всем трём аналоговым входам и временем пересылок из регистров процессора в память, которое составляет примерно

,

получим для времени измерения трёх аналоговых сигналов


По условию задания, частота измерения входного сигнала (ГОСТ 8-109-98) должна составлять

.

Т.е. по условию цикл опроса трёх аналоговых выходов должен занимать приблизительно 1 секунду, тогда как аппаратно возможно производить около 500 циклов опроса за ту же самую секунду. Таким образом, по времени измерения всех трёх входных аналоговых сигналов микроконтроллеры ATmega фирмы Atmel нам подходят.

Анализ существующих схем, описывающих работу требуемых по заданию подсистем, показывает, что для реализации всей системы требуется 25 линий микроконтроллера - шесть линий для входных аналоговых и цифровых сигналов, три линии для управления подсистемой индикации, девять линий для подключения клавиатуры (четыре строки, четыре столбца и вход прерывания), пять линий для чтения и записи данных на карту памяти SD и две линии для связи с персональным компьютером. Таким образом, можно использовать любой контроллер ATmega, начиная с модели ATmega16 (c 16 Кбайт встроенной памяти команд) и выше, имеющий встроенный АЦП. Из соображений возможности дальнейшей модернизации прибора и усложнения работы его программы, мы будем использовать микроконтроллер ATmega128. Кроме того, выбор именно этой модели контроллера обуславливается наличием у него поддержки семи внешних прерываний, а именно столько нам и нужно - одно прерывание будет обслуживать нажатие кнопки клавиатуры, а три остальных - ввод цифровых сигналов по трём линиям.

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

,

т.е. существенного вклада во время измерения цифровые сигналы не вносят. Тем более не вносит существенного вклада время прохождения сигнала по проводникам от источника первичного сигнала, которое составляет

,

где  максимальная длина проводника,

 скорость света.

Рассчитаем теперь разрядность АЦП , исходя из погрешности представления информации :


Выбор микроконтроллеров ATmega фирмы Atmel для проектирования прибора обусловлен также следующими фундаментальными факторами. Во-первых, микроконтроллеры ATmega имеют на кристалле интегрированный 10-разрядный АЦП, обеспечивающий преобразование до 8 каналов. Во-вторых, в микроконтроллеры ATmega встроена Flash-память команд, объёмом от 8 до 256кБ в зависимости от модели микроконтроллера. В-третьих, в зависимости от модели, микроконтроллер ATmega имеет от четырёх до шести 8-разарядных двунаправленных портов ввода-вывода. И, в-четвёртых, фирма Atmel предоставляет широчайший спектр инструментов для программирования микроконтроллеров, таких как Atmel AVR Studio 5 и WinAVR, причём прошивки контроллеров можно писать не только на ассемблере, но и на языках высокого уровня, таких как C и Basic.

Итак, техническое задание на разрабатываемый прибор можно сформулировать следующим образом.

Технические требования

. Состав изделия

Проектируемое изделие должно содержать следующие устройства:

Микроконтроллер со встроенными ОЗУ, ПЗУ и АЦП, табло из 6-ти 4-разрядных семисегментных светодиодных индикатора, кнопочную клавиатуру (16 клавиш), разъём карты SD и обеспечивать обработку 3-х аналоговых и 3-х цифровых сигналов.

2. Технические параметры

·        Величина входного аналогового напряжения .

·        Максимальная основная частота входного сигнала 50Гц

·        Время формирования сигнала на выходе - не более 0.1 сек

·        Точность представления информации - не хуже 1%

·        Объем памяти ПЗУ - не менее 16 Кбайт

·        Используемый тип микроконтроллера Atmel ATmega128

3. Принцип работы

Принцип работы данного устройства заключается в считывание информации в аналоговой форме по трём каналам и в цифровой форме по трём каналам, ее преобразовании, обработке (вычисление действующего (среднеквадратичного) значения, сохранении цифровых сигналов и выводом результатов на цифровое табло.

4. Условия эксплуатации

Разрабатываемый вычислитель на базе контроллера Atmel ATmega128 предполагается эксплуатировать в условиях УХЛ 4.2 ГОСТ 15150-69 при следующих условиях:

·        температура окружающей среды от 0 до +50°С

·        относительная влажность воздуха при температуре +50°С и ниже без конденсации влаги до 90%

·        циклическое воздействие температур от 0 до +50°С

·        атмосферное давление от 400 до 800 мм.рт.ст.

Примечание: механические воздействия в данной курсовой работе не рассматриваются.

Надежность - это свойство прибора выполнять заданные функции и при этом сохранять свои параметры в заданных условиях эксплуатации и в течение определенного промежутка времени. Показатели надежности прибора должны соответствовать ГОСТ 25359-82.

2. Техническое предложение и описание


В настоящее время существует множество схем, выполненных на микроконтроллерах, реализующих необходимый по заданию функционал. В данном разделе, рассматриваются некоторые из них.

 

.1 Прототип схемы измерения и отображения информации


Принципиальные схемы модуля измерения и передачи и модуля приёма и отображения многоканального дистанционного вольтметра, на основе которого мы будем строить свою систему, приведены на рис.2 и рис.3 (см. [2]).

Многоканальный дистанционный вольтметр является устройством, позволяющим удалённо измерять значения переменных синусоидальных напряжений от нескольких различных источников (шесть каналов в данной реализации) и представлять полученную информацию на шести трёхразрядных семисегментных индикаторах.

Разработка этого устройства была обусловлена необходимостью постоянного контроля энергоснабжения оборудования, расположенного на некотором удалении от места нахождения человека. В настоящее время устройство применяется для контроля трёх фаз входного напряжения и трёх фаз снимаемого напряжения. Расстояние от места измерения до места индикации составляет 800м.

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

Рис. 2. Принципиальная схема модуля измерения и передачи многоканального вольтметра

Рис. 3. Принципиальная схема модуля приёма и отображения многоканального вольтметра

Технические характеристики устройства:

·        Измеряемое напряжение: 100-330V AC, 50Hz;

·        Интервал между измерениями: 0.5 сек. (обновляются все 6 значений);

·        Напряжение питания модуля приёма и индикации: 7-25V DC;

·        Напряжение пробоя гальванической развязки модулей: 5.0kV;

·        Максимальная погрешность измерения: 1%.

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

Питание модуля измерения и передачи производится через бестрансформаторный блок питания от первого канала измеряемого напряжения. При падении напряжения на этом канале ниже уровня 90В модуль отключается. Светодиод  служит для индикации процесса передачи информации приёмному модулю.

Питание модуля приёма и индикации осуществляется от внешнего источника постоянного напряжения 7-25В.

В нормальном режиме на всех индикаторах отображаются значения измеряемого напряжения, соответствующие определённому каналу. При отсутствии пакетов от передатчика в течении более 2-х периодов обновления (примерно 1.4 сек.) на всех индикаторах отображается слово "Err", что сигнализирует о нарушении канала связи, либо неисправности передатчика. Индикация возвращается в нормальный режим после получения очередного пакета. Снижение входного напряжения на каком-либо из каналов, кроме первого, ниже уровня 100В приводит к индикации прочерка "---" на соответствующем индикаторе, информация остальных каналов отображается в нормальном режиме. Внешний вид модуля приёма и индикации представлен на рисунках ниже.

В данном исполнении вольтметра производится измерение исключительно сетевого переменного напряжения, однако внеся минимальные изменения в программную часть МК передающего модуля, а так же изменив номиналы резисторов делителей напряжения  и , возможно измерять и постоянное напряжение по всем или нескольким отдельным каналам.

Изменения, которые предлагается внести в базовую конфигурацию приведённой схемы многоканального вольтметра следующие:

·        во-первых, напряжение питания контроллера модуля измерений необходимо сделать независимым, т.е. запитывать схему через выпрямитель и стабилизатор напряжения L7805CV от отдельной линии, не связанной с линией измерения;

·        во-вторых, оставить три линии старшей тетрады порта PC для аналогово-цифрового преобразования (это верно для контроллера ATmega8; для другой модели контроллера ATmega порт назначения АЦП может быть другим). Три линии младшей тетрады этого порта зарезервировать для цифровых входов. Это можно сделать, т.к. линии портов в микроконтроллерах AVR программируются независимо.

·        в-третьих, по заданию на курсовое проектирование для отображения одного измеренного сигнала необходимо использовать четырехразрядные семисегментные индикаторы, а не трёхразрядные, как это сделано в схеме на рис. 3. Кроме того, в схеме на рис. 3 нужно зарезервировать ещё три линии порта PD микроконтроллера для выбора четвёртого разряда в каждой строке, состоящей их двух четырёхразрядных индикаторов. В такой схеме восемь линий порта PA и четыре линии порта PD будут обеспечивать выбор обновляемого разряда в группе, а восемь линий порта PB и восемь линий порта PC будут служить для выбора столбца, в котором находится четырёхразрядный индикатор. Таким образом, для организации динамической индикации необходимо 28 линий микроконтроллера, что представляется нерациональным.

·        в-четвёртых, для динамической индикации будем использовать схему с четырьмя сдвиговыми регистрами 74HC595, которая требует всего три линии микроконтроллера. 74HC595 - восьмиразрядный сдвиговый регистр с последовательным вводом, последовательным или параллельным выводом информации, с триггером-защелкой и тремя состояниями на выходе. Условное графическое обозначение (УГО) сдвигового регистра 74HC595 приведено на рис.4.

Рис. 4. УГО сдвигового регистра 74HC595.

Назначение выводов:

·        выходы микросхемы. Могут находиться в трех состояниях: логическая "1", логический "0" и высокоимпедансное состояние (HI- Z);

·        выход, предназначенный для последовательного соединения регистров;

·        вход тактовых импульсов;

·        вход "защелкивающий" данные;

·        вход данных;

·        сброс регистра;

·        вход, переводящий выходы в высокоимпедансное состояние;

·        питание +5В;

·        земля.

Принцип работы сдвигового регистра следующий (см. [3]). При появлении логической "1" на тактовом входе SH_CP в регистр считывается бит со входа данных DS, который записывается в самый младший разряд регистра. При поступлении на тактовый вход следующего импульса, все повторяется, только бит записанный ранее сдвигается на один разряд, а его место занимает вновь пришедший бит. Чтобы данные появились на выходах Q0…Q7 их нужно "защелкнуть". Для этого необходимо подать логическую единицу на вход ST_CP. Наличие триггера-защелки позволяет не беспокоиться о том, что при загрузке данных на выходе появятся ненужные промежуточные значения. Загрузили в сдвиговый регистр нужные данные, "защелкнули", и можем записывать следующие данные. И до тех пор, пока не будет подана логическая единица на вход ST_CP, на выходах будет находиться предыдущее значение. Вход MR осуществляет сброс регистра, устанавливая все выходы Q0... Q7 в состояние логического нуля. Для осуществления сброса необходимо подать логический "0" на этот вход, и подать тактовый импульс на вход SH_CP. При работе с регистром, на входе MR должна быть логическая единица. Логическая единица на входе OE переводит все выходы в высокоомное HI-Z состояние. Для того что бы перевести выходы в рабочее состояние, необходимо подать на этот вход логический ноль.

Рис. 5. Оригинальная схема подключения 4-разрядных семисегментных индикаторов к микроконтроллеру ATmega128

Принцип работы системы отображения информации, построенной на сдвиговых регистрах очень прост. Соединяем четыре сдвиговых регистра последовательно, коммутируя вывод Q7 каждого предыдущего регистра с выводом DS каждого последующего, получив в итоге 32-разрядный сдвиговый регистр (см. рис. 5). Вывод DS первого регистра присоединяем к выводу контроллера, по которому будут передаваться данные, вывод SH_CP- к выводу контроллера, по которому будут идти тактовые импульсы для записи в регистр, вывод ST_CP- к выводу, по которому передаётся импульс “защёлкивания данных”, и символ отображается на соответствующем индикаторе.

Разберем теперь алгоритм работы схемы. Допустим, необходимо зажечь цифру "3" в первом разряде левого нижнего индикатора.

.        Загружаем в регистр код первого разряда третьей строки индикаторов (&Bxxxx0010), где xxxx - безразличное состояние, которое в итоге окажется в четырёх старших, неиспользуемых разрядах регистра DDD5. Изначально код запишется в регистр DDD2, который управляет разрядами правого столбца, но так как регистр у нас с защелкой, то на выходе ничего не появится.

.        Загружаем в регистр нулевой код разрядов первой и второй строк (&B00000000) - мы не собираемся ничего зажигать в других строках. В результате 8 бит кода разрядов первой и второй строк “протолкнут” 8 бит первого разряда третьей строки индикаторов в регистр DDD3, а сами займут место в регистре DDD2.

.        Т.к. требуемый индикатор находится в первом столбце, загружаем в регистр код цифры “3” (&B01011101). В результате 8 бит цифры "протолкнут" 16 бит кодов разрядов индикаторов в регистры DD4 и DD3, а сами займут место в регистре DD2.

.        Загружаем в регистр нулевой байт (&B00000000), и таким образом, в регистре DDD5 оказывается код первого разряда третьей строки (&Bxxxx0010), в регистре DDD4 - нулевой код (&B00000000), в регистре DD3, который отвечает за отображение цифр в 1-м столбце, появится код цифры “3” (&B01011101), в регистре DDD2, который отвечает за отображение цифр во 2-м столбце, - нулевой код (&B0000000), поскольку во 2-м столбце мы ничего мы ничего не отображаем.

.        Останется "защелкнуть" данные, и они появятся на выходах.

Приведённая схема отображения результатов измерений позволит в итоге реализовать всю требуемую систему на всего одном микроконтроллере ATmega. При этом максимальная частота отображения всех разрядов составляет

.

Здесь 8МГц тактовая частота микроконтроллера,

 количество тактов, необходимых для обновления всех 24-х индикаторов.

Стоит особо отметить, что принципиальная схема, приведённая на рис. 5, является оригинальной, т.е. разработанной в рамках работы над данным курсовым проектом.

 

.2 Прототип схемы подключения клавиатуры


Схемы подключения 16-кнопочной клавиатуры и их описание приведены в источниках [4] и [5] (см. рис. 6).

Рис. 6. Схема подключения 16-кнопочной клавиатура к микроконтроллеру ATmega16.

Работает эта схема довольно просто. Линии сканирующего порта (столбцы) по умолчанию находятся состоянии, когда на всех линиях, кроме одной, установлен высокий логический уровень. Линия, на которой установлен низкий логический уровень является опрашиваемой в текущий момент, то есть определяет опрашиваемый столбец. Если какая либо кнопка этого столбца будет нажата, на соответствующей линии считывающего порта (строке) так же будет низкий логический уровень. Иными словами, замкнутая кнопка подтянет строку к потенциалу столбца, то есть к земле. Зная номер опрашиваемого столбца и номера линий считывающего порта, на которых установлен логический ноль, можно однозначно определить какие кнопки этого столбца нажаты.

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

Для случая, когда одновременно нажато несколько кнопок одного столбца будет установлено в логический ноль несколько битов считывающего порта одновременно. Но что произойдет, если будут замкнуты контакты нескольких кнопок из разных столбцов одной строки? Ведь в разных столбцах могут оказаться разные напряжения. Одновременное нажатие двух кнопок в одной строке привело бы к короткому замыканию и выжженным портам, если бы не диоды . Именно они защищают порты от короткого замыкания.

Микроконтроллеры серии AVR имеют в своем составе подтягивающие резисторы, поэтому внешних подтягивающих резисторов в схеме не требуется.

Приведённую схему можно (и нужно) модифицировать, организовав обработку нажатия кнопки по прерыванию. Для этого необходимо подключить линии строк к логическому элементу 4ИЛИ, выход которого подать на вход INT0 микроконтроллера. Такое решение предлагается в источнике [6] и, дополняя схему рис. 6 четырьмя диодами, базы которых присоединены к выводу INT0 микроконтроллера, а эмиттеры к соответствующим линиям строк клавиатуры, образуя таким образом логический элемент ИЛИ, получим оригинальную схему, разработанную в рамках данного курсового проекта, изображённую на рис. 7.

На вход INT0 подключен подтягивающий резистор 10 кОм к плюсу питания. Мы назначим четыре младших бита порта PB на выход, установив на них низкий уровень. Старшие 4 бита будут работать как входы, на них сделаем высокий уровень. Теперь, если нажать клавишу, возникнет соединение между каким-либо столбцом и строкой. Теперь на линии строки появится низкий уровень. Также низкий уровень появится и на строке с диодами, сработает элемент ИЛИ, и на входе INT0 также появится низкий уровень и вызовет прерывание.

В подпрограмме обработки прерывания мы опрашиваем состояние строк, чтобы узнать, на какой из них нажата клавиша. Теперь мы переназначаем младшие биты на вход, а старшие на выход и точно таким же образом определяем, на каком столбце нажата клавиша.

Рис. 7. Оригинальная схема подключения клавиатуры и индикаторов к микроконтроллеру ATmega128.

После этого выжидаем время "антидребезга". Зная теперь строку и столбец, несложно догадаться, что клавиша нажата на их пересечении. Делаем необходимые выводы, устанавливаем нужные параметры, и возвращаем состояние выводов порта к начальным значениям.

 

.3 Прототип схемы сбора и накопления данных


И, наконец, нам осталось рассмотреть систему сбора и накопления данных, подробное описание которой приведено в источнике [7] (см. рис. 8). Данные, получаемые от встроенного в микроконтроллер аналого-цифрового преобразователя, сохраняются на карте памяти microSD с файловой системой FAT32 в формате CSV. Устройство позволяет отслеживать 8 аналоговых каналов (именно столько имеет АЦП микроконтроллера), т.е. пользователи могут подключить к устройству до 8 аналоговых сенсоров. Устройство имеет часы реального времени с резервным источником питания, что позволяет записывать, помимо данных с АЦП, время получения данных. Такая функция может быть полезна при анализе данных и составления статистики изменения данных.

Настройка системы является очень простой и производится с персонального компьютера по интерфейсу RS-232. После настройки системы в подключении по RS-232 нет необходимости, однако данный интерфейс может использоваться для отладки.

Основой устройства является 8-разрядный микроконтроллер Atmel ATmega32, имеющий 32 КБайт Flash-памяти, 2 КБайт SRAM и богатую периферию. В данном устройстве микроконтроллер работает от внешнего кварцевого резонатора на частоте 16 МГц. Для реализации функции записи времени регистрации данных применена микросхема часов реального времени DS1307 с интерфейсом I2C. Следует отметить, что необходимо проверить правильность подключения часов реального времени к микроконтроллеру, иначе микроконтроллер может "зависнуть" на этапе получения данных по интерфейсу I2C.

Для подключения карты памяти к микроконтроллеру использовался специальный модуль с установленным слотом под карту.

Рис. 8. Принципиальная схема системы сбора информации.

Рис. 9. Оригинальная принципиальная схема прибора с системой отображения, регистрации и передачи данных, а также 16-кнопочной клавиатурой

Кроме того, модуль имеет установленный LDO регулятор напряжения 3.3В (LDO - с низким падением напряжения на регуляторе), микросхему преобразователя логических уровней 5 В - 3.3 В и некоторые защитные элементы. Данный модуль предоставляет более стабильный интерфейс и повышает надежность системы. Более подробная информация о подключении карт памяти SD и SDHC к микроконтроллерам ATmega приведена в источнике [8].

После изучения существующих схем, была разработана оригинальная принципиальная схема, приведённая на рис. 9, реализующая подключение подсистемы индикации, 16-кнопочной клавиатуры, SD карты памяти и обмен данными с персональным компьютером. Таким образом, нам осталось реализовать только подсистему подключения выходных сигналов к микроконтроллеру.

 

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


Рассмотрим обработку аналоговых сигналов в микроконтроллере. Сначала сигнал выпрямляется с помощью диодов  (см. принципиальную схему устройства, прилагаемую к проекту), т.е. если на базы диодов подаётся синусоидальное напряжение частотой , то на эмиттере диодов напряжение принимает вид, изображённый на рис. 10.

После этого, напряжение подаётся на делители напряжения, составленные из делителя напряжения ,  и  с коэффициентом деления , так что на вход АЦП (порты PA0 - PA2 микроконтроллера) поступает сигнал с максимальной амплитудой  имеющий форму, приведённую на рис.5.

Рис. 10. Форма напряжения после выпрямления на диодах

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

.

Таким образом, диапазон АЦП используется максимально эффективно.

После преобразования полученное 16-разарядное значение (старшие 6 бит старшего байта являются незначащими) пересылается в память, где обрабатывается по заданному алгоритму. Заметим, что при последовательной обработке трёх каналов АЦП для вычисления максимального значения, достаточно восьми байт памяти - шесть байт для хранения результатов по трём каналам и два байта - для промежуточных значений.

Цифровые сигналы обрабатываются намного проще. По прерыванию опрашивается соответствующий порт (у нас по прерыванию INT1 контроллера сканируется порт PD4, по прерыванию INT2 - порт PD5, по прерыванию INT3 - порт PD6). Полученное значение пересылается в память, где обрабатывается.

После обработки измерений через три канала PA0 - PA2 порта A результаты отображаются на шести 4-разрядных семисегментных индикатора и сохраняются на SD или microSD карте памяти, куда выводятся через порт PB.

Нажатие кнопки клавиатуры инициирует прерывание INT0, по которому сканируется состояние выводов порта PC и вычисляется, какая клавиша нажата.

Передача данных в персональный компьютер производится по запросу посредством интерфейса RS232 и универсального синхронного/асинхронного приёмопередатчика USART микроконтроллера ATmega 128.

.5 Проверочные расчеты

цифровой вольтметр сигнал микроконтроллер

Расчет потребляемой мощности производится по формуле:


где: Pi - мощность, потребляемая микросхемой или иной радиодеталью, Вт; n - количество радиодеталей.

Тип микросхемы

Потребляемая мощность, мВт

Количество корпусов

ATmega128

500

1

74HC595

500

4

LM1117

100

1

LM7805

1000

1

MAX232

440

2

КТ104Б

150

12



Полученное значение потребляемой мощности является приемлемым, однако согласно рекомендациям, на микросхему LM7805 следует поставить радиатор, рассеивающий тепловую мощность.

3. Программная часть

 

.1 Описание алгоритма программы


Перейдем к программной части. Сначала нам нужно инициализировать контроллер. Для этого линии PA0 - PA2 порта PA программируем на выход, линии PD4 - PD6 - на вход, линии PF0 - PF2 порта PF - на вход АЦП. Сигналы на используемые линии портов PB, PC и PE подаются, когда возникают внешние прерывания (для порта PC), инициируется чтение/запись на карту памяти (порт PC) или обмен данными по каналу USART(порт PE).

Рассмотрим, как инициализировать карту, и писать/читать из нее. Для перехода в режим SPI нужно дождаться, пока питающее напряжения на карте достигнет 3В (несколько миллисекунд, после включения) и подать более 74 импульса на выводе SCK, при высоком уровне на SS и MOSI выводах. После нужно выставить на SS нулевой уровень, далее карта входит в режим SPI, теперь для успешной работы следует подать команды сброса и инициализации CMD0, CMD1 прежде, чем мы сможем писать/читать данные из карты. Команд для карты довольно много, часть из них приведена в таблице ниже:


Команд много, но основанная масса работы производится командами CMD0, CMD1 (сброс и инициализация) CMD17 (чтение), CMD24 (запись).

Рассмотрим формат команды для SD карты.


Сперва идет индекс команды. Индекс команды в десятичном виде определяется как 64+имя команды. Далее следует 4 байта аргументов (данные, адрес), после следует 7-ми битная контрольная сумма. После успешной отправки команды следует послать байтовую паузу из 8*N тактовых импульсов (N - целое), после чего карта ответит. Ответ может быть типа R1,R2,R3. В нашем случае, ответы будут только типа R1. Поэтому рассмотрим только его.


Старший бит R1 всегда равен 0. Назначения остальных битов хорошо видно с рисунка.

Рассмотрим процесс инициализации карты памяти командами CMD0, CMD1. Сперва, при высоком уровне на выводах SS и MOSI подаем 80 тактовых импульсов на вывод SCK. Далее на все время работы с картой сажаем SS на землю, подаем команду CMD0, контрольная сумма для которой равна 0x95 (контрольная сумма в нашем случае нужна только для команды CMD0, в остальных случаях она не проверяется, поэтому все время будем использовать 0х95 как контрольную сумму). Далее, после байтовой паузы, карточка должна ответить 0х01, что означает, что она вошла в SPI режим и готова принимать команды. Теперь подаем команды CMD1, и после паузы ожидаем от карточки ответа 0х00, которые говорит о том, что карта готова к обмену данными.

Обмен данными между картой памяти и микроконтроллером будет производиться стандартными блоками по 512 байт. Адресация карты побайтная, начиная с нуля, но считывать данные можно только блоками. Адресом блока служит первый его байт. То есть 0-й блок имеет адрес 0х0000, 1-й блок - 0х0200, 2-й блок - 0х400 и т.д. (справедливо для размера блока 512 байт). В SDHC картах адресация поблочная, адресом блока служит его номер. Операция чтения блока производится в следующем порядке. Подается команда CMD17, байтовая пауза, если принимается ответ 0х00, то после еще одной байтовой паузы принимается блок данных, структура которого показана ниже.


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


Как видно, блок начинается с байта 0хFE (для команд CMD17/18, CMD24), далее идет 512 байт информации и 2 байта контрольной суммы (которая по умолчанию не используется). Операция записи производиться похоже, команда CMD24, пауза, ответ карты 0х00, и блок данных (так как контрольная сумма не проверяется, то ее поле можно заполнить случайно). Далее следует ответ карты про прием блока данных.


После чего busy состояние, когда карта записывает полученные данные. Временная диаграмма операции записи приведена ниже.


Исходная карта памяти может быть отформатирована в FAT16 или в FAT32 для FatFs это не имеет разницы, она умеет работать с обоими. Нам потребуется написать функции взаимодействия с носителем, в данном случае их будет шесть:

1) DSTATUS disk_initialize (BYTE Drive);

Инициализирует носитель Drive и подготавливает его к операциям чтения/записи. Эту функцию не следует лишний раз вызывать из своей программы, иначе есть хорошая вероятность попортить все данные на карточке. В случае удачного вызова возвращает 0. В случае, если носитель не инициализировался, возвращает STA_NOINIT, а если носитель отсутствует - STA_NODISK.

2) DSTATUS disk_status (BYTE Drive);

Узнает статус носителя Drive. Возвращает STA_NOINIT если диск не инициализирован, а если носитель отсутствует - STA_NODISK. Также в случае, если носитель защищен от записи, то возвращается STA_PROTECTED.

3) DRESULT disk_read (BYTE Drive, BYTE* Buffer, DWORD SectorNumber, BYTE SectorCount);

Читает SectorCount из носителя Drive в буфер, на который указывает указатель Buffer начиная с сектора SectorNumber в LBA адресации. Возвращает DRESULT:

enum { //Статус дисковой операции_OK = 0, //Операция успешно завершена_ERROR, //Ошибка носителя_NOTRDY, //Носитель не готов

RES_PARERR //Ошибочный аргумент

} DRESULT;

Буфер должен иметь размер количество секторов для чтения * размер сектора в байтах. Количество считываемых за раз секторов SectorCount должно быть о 1 до 128.

4) DRESULT disk_write (BYTE Drive, const BYTE* Buffer, DWORD SectorNumber, BYTE SectorCount);

Полный аналог disk_read, только не считывает данные, а пишет их на карточку.

5) DRESULT disk_ioctl (BYTE Drive, BYTE Command, void* Buffer);

Довольно интересная функция, которая передает носителю Drive команду Command, а ответ на команду пишет в буфер, на который указывает Buffer. Таблица необходимых команд приведена ниже. Проконтролировать результат позволяет возвращаемое значение DRESULT.

6) DWORD get_fattime (void);

Возвращает текущее дату и время, представленное в виде двойного слова DWORD следующим образом::25 - года, начиная с 1980 (0..127):21 - месяца (1..12):16 - дни месяца (1..31):11 - часы (0..23):5 - минуты (0..59):0 - секунды деленные на 2 (0..29)

Если в системе не поддерживаются часы с реальным временем, то нужно возвращать какую-то реальную дату и время, потому что они нужны для маркировки времени изменения/создания файлов.

Заключение


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

Список использованной литературы

 

1.   Евстифеев А.В., Микроконтроллеры AVR семейств Tiny и Mega фирмы “ATMEL” - М.Ж Издательский дом “Додэка-XXI”, 2004. - 560с.

2.       #"598900.files/image072.gif">

Рис. 11. Расположение выводов у ATmega128

Рис. 12. Функциональная схема

содержит следующие элементы: 128 кбайт внутрисистемно программируемой флэш-памяти с поддержкой чтения во время записи, 4 кбайт ЭСППЗУ, 4 кбайт статического ОЗУ, 53 линии универсального ввода-вывода, 32 универсальных рабочих регистра, счетчик реального времени (RTC), четыре гибких таймера-счетчика с режимами сравнения и ШИМ, 2 УСАПП, двухпроводной последовательный интерфейс ориентированный на передачу байт, 8-канальный 10-разр. АЦП с опциональным дифференциальным входом с программируемым коэффициентом усиления, программируемый сторожевой таймер с внутренним генератором, последовательный порт SPI, испытательный интерфейс JTAG совместимый со стандартом IEEE 1149.1, который также используется для доступа к встроенной системе отладке и для программирования, а также шесть программно выбираемых режимов уменьшения мощности. Режим холостого хода (Idle) останавливает ЦПУ, но при этом поддерживая работу статического ОЗУ, таймеров-счетчиков, SPI-порта и системы прерываний. Режим выключения (Powerdown) позволяет сохранить содержимое регистров, при остановленном генераторе и выключении встроенных функций до следующего прерывания или аппаратного сброса. В экономичном режиме (Power-save) асинхронный таймер продолжает работу, позволяя пользователю сохранить функцию счета времени в то время, когда остальная часть контроллера находится в состоянии сна. Режим снижения шумов АЦП (ADC Noise Reduction) останавливает ЦПУ и все модули ввода-вывода, кроме асинхронного таймера и АЦП для минимизации импульсных шумов в процессе преобразования АЦП. В дежурном режиме (Standby) кварцевый/резонаторный генератор продолжают работу, а остальная часть микроконтроллера находится в режиме сна. Данный режим характеризуется малой потребляемой мощностью, но при этом позволяет достичь самого быстрого возврата в рабочий режим. В расширенном дежурном режиме (Extended Standby) основной генератор и асинхронный таймер продолжают работать.

Микроконтроллер производится по технологии высокоплотной энергонезависимой памяти компании Atmel. Встроенная внутрисистемно программируемая флэш-память позволяет перепрограммировать память программ непосредственно внутри системы через последовательный интерфейс SPI с помощью простого программатора или с помощью автономной программы в загрузочном секторе. Загрузочная программа может использовать любой интерфейс для загрузки прикладной программы во флэш-память. Программа в загрузочном секторе продолжает работу в процессе обновления прикладной секции флэш-памяти, тем самым поддерживая двухоперационность: чтение во время записи. За счет сочетания 8-разр. RISC ЦПУ с внутрисистемно самопрограммируемой флэш-памятью в одной микросхеме ATmega128 является мощным микроконтроллером, позволяющим достичь высокой степени гибкости и эффективной стоимости при проектировании большинства приложений встроенного управления.поддерживается полным набором программных и аппаратных средств для проектирования, в т.ч.: Си-компиляторы, макроассемблеры, программные отладчики/симуляторы, внутрисистемные эмуляторы и оценочные наборы.

Описание выводов

VCC

Напряжение питания цифровых элементов

GND

Общий

Порт A (PA7..PA0)

Порт A - 8-разр. порт двунаправленного ввода-вывода с внутренними подтягивающими к плюсу резисторами (выбираются раздельно для каждого разряда). Выходные буферы порта A имеют симметричную выходную характеристику с одинаковыми втекающим и вытекающим токами. При вводе, линии порта А будут действовать как источник тока, если внешне действует низкий уровень и включены подтягивающие резисторы. Выводы порта A находятся в третьем (высокоимпедансном) состоянии при выполнении условия сброса, даже если синхронизация не запущена. Порт А также выполняет некоторые специальные функции ATmega128, описываемых далее.

Порт В (PВ7..PВ0)

Порт B - 8-разр. порт двунаправленного ввода-вывода с внутренними подтягивающими к плюсу резисторами (выбираются раздельно для каждого разряда). Выходные буферы порта В имеют симметричную выходную характеристику с одинаковыми втекающим и вытекающим токами. При вводе, линии по9рта B будут действовать как источник тока, если внешне действует низкий уровень и включены подтягивающие резисторы. Выводы порта B находятся в третьем (высокоимпедансном) состоянии при выполнении условия сброса, даже если синхронизация не запущена. Порт В также выполняет некоторые специальные функции ATmega128, описываемых далее.

Порт C (PC7..PC0)

Порт C - 8-разр. порт двунаправленного ввода-вывода с внутренними подтягивающими к плюсу резисторами (выбираются раздельно для каждого разряда). Выходные буферы порта C имеют симметричную выходную характеристику с одинаковыми втекающим и вытекающим токами. При вводе, линии порта C будут действовать как источник тока, если внешне действует низкий уровень и включены подтягивающие резисторы. Выводы порта C находятся в третьем (высокоимпедансном) состоянии при выполнении условия сброса, даже если синхронизация не запущена. Порт C также выполняет некоторые специальные функции ATmega128, описываемых далее. В режиме совместимости с ATmega103 порт C действует только на вывод, а при выполнении условия сброса линии порта C не переходят в третье состояние.

Порт D (PD7..PD0)

Порт D - 8-разр. порт двунаправленного ввода-вывода с внутренними подтягивающими к плюсу резисторами (выбираются раздельно для каждого разряда). Выходные буферы порта D имеют симметричную выходную характеристику с одинаковыми втекающим и вытекающим токами. При вводе, линии порта D будут действовать как источник тока, если внешне действует низкий уровень и включены подтягивающие резисторы. Выводы порта D находятся в третьем (высокоимпедансном) состоянии при выполнении условия сброса, даже если синхронизация не запущена. Порт D также выполняет некоторые специальные функции ATmega128, описываемых далее.

Порт E (PE7..PE0)

Порт E - 8-разр. порт двунаправленного ввода-вывода с внутренними подтягивающими к плюсу резисторами (выбираются раздельно для каждого разряда). Выходные буферы порта E имеют симметричную выходную характеристику с одинаковыми втекающим и вытекающим токами. При вводе, линии порта E будут действовать как источник тока, если внешне действует низкий уровень и включены подтягивающие резисторы. Выводы порта E находятся в третьем (высокоимпедансном) состоянии при выполнении условия сброса, даже если синхронизация не запущена. Порт E также выполняет некоторые специальные функции ATmega128, описываемых далее.

Порт F (PF7..PF0)

Порт F действует как аналоговый ввод аналогово-цифрового преобразователя. Порт F также может использоваться как 8-разр. порт двунаправленного ввода-вывода, если АЦП не используется. К каждой линии порта может быть подключен встроенный подтягивающий к плюсу резистор (выбирается раздельно для каждого бита). Выходные буферы порта F имеют симметричную выходную характеристику с одинаковыми втекающим и вытекающим токами. При вводе, линии порта F будут действовать как источник тока, если внешне действует низкий уровень и включены подтягивающие резисторы. Выводы порта F находятся в третьем (высокоимпедансном) состоянии при выполнении условия сброса, даже если синхронизация не запущена. Если активизирован интерфейс JTAG, то подтягивающие резисторы на линиях PF7(TDI), PF5(TMS) и PF4(TCK) будут подключены, даже если выполняется Сброс. Вывод TDO находится в третьем состоянии, если не введено состояние TAP, при котором сдвигаются выводимые данные. Порт F также выполняет функции интерфейса JTAG. В режиме совместимости с ATmega103 порт F действует только на ввод.

Порт G (PG4..PG0)

Порт G - 5-разр. порт двунаправленного ввода-вывода с внутренними подтягивающими к плюсу резисторами (выбираются раздельно для каждого разряда). Выходные буферы порта G имеют симметричную выходную характеристику с одинаковыми втекающим и вытекающим токами. При вводе, линии порта G будут действовать как источник тока, если внешне действует низкий уровень и включены подтягивающие резисторы. Выводы порта G находятся в третьем (высокоимпедансном) состоянии при выполнении условия сброса, даже если синхронизация не запущена. Порт G также выполняет некоторые специальные функции ATmega128. В режиме совместим9ости с ATmega103 данные выводы используются как стробирующие сигналы интерфейса внешней памяти, а также как вход генератора 32 кГц, а при действии сброса они асинхронно принимают следующие состояния: PG0 = 1, PG1 = 1 и PG2 = 0, даже если синхронизация не запущена. PG3 и PG4 - выводы генератора.

RESET

вход сброса. Если на этот вход приложить низкий уровень длительностью более минимально необходимой будет генерирован сброс независимо от работы синхронизации. Минимальная длительность внешнего импульса сброса приведена в таблице 19. Действие импульса меньшей продолжительности не гарантирует генерацию сброса.

XTAL1

вход инвертирующего усилителя генератора и вход внешней синхронизации.

XTAL2

выход инвертирующего усилителя генератора.

AVCC

вход питания порта F и аналогово-цифрового преобразователя. Он должен быть внешне связан с VCC, даже если АЦП не используется. При использовании АЦП этот вывод связан с VCC через фильтр низких частот.

AREF

вход подключения источника опорного напряжения АЦП.

PEN

вход разрешения программирования для режима последовательного программирования через интерфейс SPI. Если во время действия сброса при подаче питания на этот вход подать низкий уровень, то микроконтроллер переходит в режим последовательного программирования через SPI. В рабочем режиме PEN не выполняет никаких функций.

Альтернативные функции порта

Большинство выводов поддерживают альтернативные функции в дополнение к универсальному цифровому вводу-выводу. Управляющие сигналы могут быть отключены альтернативными функциями.

Рис. 13. Альтернативные функции порта

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

Таблица 1. Общее описание отключающих сигналов для активизации альтернативных функций

Наименование сигнала

Полное наименование

Описание

PUOE

Разрешение альтернативного управления подтягиванием

Если данный сигнал установлен, то подключение подтягивающего резистора определяется значением сигнала PUOV. Если данный сигнал сброшен, то подтягивающий резистор подключается, если {DDxn, PORTxn, PUD} = 0b010.

PUOV

Альтернативное управление подтягиванием

Если PUOE установлен, то подтягивающий резистор подключается/отключается, если PUOV установлен/сброшен независимо от состояния регистровых бит DDxn, PORTxn и PUD.

DDOE

Разрешение задания альтернативного направления

Если этот сигнал установлен, то разрешение работы выходного драйвера определяется значением сигнала DDOV. Если этот сигнал сброшен, то работа выходного драйвера разрешается регистровым битом DDxn.

DDOV

Значение альтернативного направления

Если DDOE установлен, то работа выходного драйвера разрешается/запрещается, когда DDOV устанавливается/ сбрасывается независимо от состояния регистрового бита DDxn.

PVOE

Разрешение задания альтернативного выходного состояния порта

Если данный сигнал установлен и разрешена работа выходного драйвера, то состояние на выходе порта определяется сигналом PVOV. Если PVOE сброшен и разрешена работа выходного драйвера, то состояние на выходе порта определяется регистровым битом PORTxn.

PVOV

Альтернативное выходное состояние порта

Если PVOE установлен, то выход порта принимает состояние PVOV независимо от установки регистрового бита PORTxn.

DIEOE

Разрешение альтернативного цифрового ввода

Если данный бит установлен, то функция разрешения цифрового передается сигналу DIEOV. Если данный сигнал сброшен, то разрешение цифрового ввода определяется состоянием микроконтроллера (нормальный режим, режимы сна).

DIEOV

Альтернативное состояние цифрового ввода

Если DIEOE установлен, то цифровой ввод разрешен/запрещен, если DIEOV установлен/сброшен независимо от состояния микроконтроллера (нормальный режим, режимы сна).

DI

Цифровой ввод

Сигнал цифрового ввода для альтернативных функций. На рисунке сигнал подключен к выходу триггера Шмита перед синхронизатором. Если цифровой ввод используется как источник синхронизации, то модуль с альтернативной функцией будет использовать свой собственный синхронизатор.

AIO

Аналоговый ввод-вывод

Сигнал аналогового ввода/вывода к_модулю/из_модуля с альтернативной функцией. Сигнал подключается непосредственно к контактной площадке и может использоваться двунаправлено.

В следующих подразделах коротко описываются альтернативные функции для каждого порта и связь отключающих сигналов с альтернативными функциями выводов.

Регистр специальных функций ввода-вывода - SFIOR

Разряд 2 - PUD: Отключение всех подтягивающих резисторов

Если в данный разряд записать лог. 1, то подтягивающие резисторы на всех портах будет отключены, даже если регистры DDxn и PORTxn настроены на их подключение ({DDxn, PORTxn} = 0b01).

Альтернативные функции порта A

Альтернативной функцией порта А является мультиплексированная младшая шина адреса/шина данных внешнего интерфейса памяти.

Таблица 2. Альтернативные функции выводов порта А

Вывод порта

Альтернативная функция

PA7

PA6

AD6 (Разряд 6 шины адреса и шины данных внешнего интерфейса памяти)

PA5

AD5 (Разряд 5 шины адреса и шины данных внешнего интерфейса памяти)

PA4

AD4 (Разряд 4 шины адреса и шины данных внешнего интерфейса памяти)

PA3

AD3 (Разряд 3 шины адреса и шины данных внешнего интерфейса памяти)

PA2

AD2 (Разряд 2 шины адреса и шины данных внешнего интерфейса памяти)

PA1

AD1 (Разряд 1 шины адреса и шины данных внешнего интерфейса памяти)

PA0

AD0 (Разряд 0 шины адреса и шины данных внешнего интерфейса памяти)

Альтернативные функции порта В

Выводы порта В с альтернативными функциями показаны в таблице 3.

Таблица 3. Альтернативные функции порта В

Вывод порта

Альтернативная функция

PB7

OC2/OC1C(1) (выход компаратора и выход ШИМ таймера-счетчика 2 или выход С компаратора и ШИМ таймера-счетчика 1)

PB6

OC1B (выход В компаратора и ШИМ таймера-счетчика 1)

PB5

OC1A (выход A компаратора и ШИМ таймера-счетчика 1)

PB4

OC0 (Выход компаратора и ШИМ таймера-счетчика 0)

PB3

MISO (Ввод для ведущей/вывод для подчиненной шины SPI)

PB2

MOSI (Вывод для ведущей/ввод для подчиненной шины SPI)

PB1

SCK (Синхронизация последовательной связи шины SPI)

PB0

SS (вход выбора подчиненного режима интерфейса SPI)

/OC1C, разряд 7

OC2 - выход компаратора таймера-счетчика 2. Для выполнения данной функции вывод PB7 конфигурируется как выход (DDB7 = 1). Вывод OC2 также выполняет функцию выхода, когда таймер переводится в режим ШИМ.C - выход компаратора С таймера-счетчика 1. Для выполнения данной функции вывод PB7 настраивается как выход (DDB7 = 1). Вывод OC1C также выполняет функцию выхода, когда таймер переведен в режим ШИМ.

OC1B, разряд 6

OC1B - выход компаратора B таймера-счетчика 1. Для выполнения данной функции вывод PB6 настраивается как выход (DDB6 = 1). Вывод OC1B также выполняет функцию выхода, когда таймер переведен в режим ШИМ.

OC1A, разряд 5

OC1A - выход компаратора A таймера-счетчика 1. Для выполнения данной функции вывод PB5 настраивается как выход (DDB5 = 1). Вывод OC1A также выполняет функцию выхода, когда таймер переведен в режим ШИМ.

OC0, разряд 4

OC0 - выход компаратора таймера-счетчика 0. Для выполнения данной функции вывод PB4 настраивается как выход (DDB4 = 1). Вывод OC0 также выполняет функцию выхода, когда таймер переведен в режим ШИМ.

MISO - порт B, разряд 3

MISO - ввод данных в режиме ведущего, вывод данных в режиме подчиненного интерфейса SPI. Если разрешена работа SPI как ведущего (мастера), то данный вывод настраивается на ввод независимо от состояния DDB3. Если работа SPI разрешена как подчиненного, то направление передачи данных задается DDB3. Если вывод принудительно настраивается на ввод, то подключение подтягивающего резистора останется под управлением бита PORTB3.

MOSI - порт B, разряд 2

MOSI - вывод данных в режиме ведущего, ввод данных в режиме подчиненного интерфейса SPI. Если работа SPI разрешена как подчиненного, то данный вывод настраивается на ввод независимо от значения DDB2. Если работа SPI разрешена как ведущего (мастера), направление передачи данных определяется DDB2. Если вывод принудительно настраивается как вход, то подключение подтягивающего резистора останется под управлением PORTB2.

SCK - порт B, разряд 1

SCK - выход синхронизации в режиме ведущего, вход синхронизации в режиме подчиненного интерфейса SPI. Если работа SPI разрешена как подчиненного, то данный вывод настраивается как вход независимо от состояния DDB1. Если работа SPI разрешена как ведущего, то направление передачи данных управляется DDB1. Если вывод принудительно настроен на ввод, то управление подтягивающими резисторами осуществляется битом PORTB1.

SS - порт B, разряд 0

SS - вход выбора подчиненного порта. Если работа SPI разрешена как подчиненного, то данный вывод настраивается на ввод независимо от установки DDB0. Работа SPI как подчиненного активизируется, если подать низкий уровень на этот вход. Если работа SPI разрешена как ведущего, то направление передачи данных на этом выводе задается DDB0. Если вывод принудительно настроить как вход, то подключение подтягивающего резистора управляется битом PORTB0.

Альтернативные функции порта C

Альтернативной функцией порта С является старшая шина адреса внешнего интерфейса памяти.

Таблица 4. Альтернативные функции выводов порта С

Вывод порта

Альтернативная функция

PС7

A15 (Разряд 15 шины адреса внешнего интерфейса памяти)

PС6

A14 (Разряд 14 шины адреса внешнего интерфейса памяти)

PС5

A13 (Разряд 13 шины адреса внешнего интерфейса памяти)

PС4

A12 (Разряд 12 шины адреса внешнего интерфейса памяти)

PС3

A11 (Разряд 11 шины адреса внешнего интерфейса памяти)

PС2

A10 (Разряд 10 шины адреса внешнего интерфейса памяти)

PС1

A9 (Разряд 9 шины адреса внешнего интерфейса памяти)

PС0

A8 (Разряд 8 шины адреса внешнего интерфейса памяти)

Альтернативные функции порта D

Выводы порта D с альтернативными функциями представлены в таблице 36.

Таблица 5. Альтернативные функции выводов порта D

Вывод порта

Альтернативная функция

PD7

T2 (вход синхронизации таймера-счетчика 2)

PD6

T1 (вход синхронизации таймера-счетчика 1)

PD5

XCK1(1) (вход/выход внешней синхронизации УСАПП1)

PD4

IC1 (вход триггера захвата фронта таймера-счетчика 1)

PD3

INT3/TXD1(1) (вход внешнего прерывания 3 или выход передачи УАПП1)

PD2

INT2/RXD1(1) (вход внешнего прерывания 2 или вход приема УАПП1)

PD1

INT1/SDA(1) (вход внешнего прерывания 1 или ввод/вывод последовательных данных TWI)

PD0

INT0/SCL(1) (вход внешнего прерывания 0 или синхронизация последовательной связи TWI)

Ниже приведены альтернативные конфигурации выводов порта:

T2 - порт D, разряд 7

T2 - счетный вход таймера-счетчика 2.

T1 - порт D, разряд 6

T1 - счетный вход таймера-счетчика 1.

XCK1 - порт D, разряд 4

XCK1 - внешняя синхронизация УСАПП1. Регистр направления данных (DDD4) задает является ли синхронизация выходной (DDD4=1) или входной (DDD4=0). Вывод XCK1 активен только если УСАПП1 работает в синхронном режиме.

IC1 - порт D, разряд 4

IC1 - вход захвата фронта таймера-счетчика 1.

INT3/TXD1 - порт D, разряд 3

INT3 - источник внешнего прерывания 3. Вывод PD3 может использоваться как источник внешнего прерывания микроконтроллера.- передача данных (вывод данных для УСАПП1). Если работа передатчика УСАПП1 разрешена, то данный вывод настраивается как выход независимо от значения DDD3.

INT2/RXD1 - порт D, разряд 2

INT2 - источник внешнего прерывания 2. Вывод PD2 может использоваться как источник внешнего прерывания микроконтроллера.- прием данных (ввод данных для УСАПП1). Если работа приемника УСАПП1 разрешена, то данный вывод настраивается на ввод независимо от значения DDD2. После перевода УСАППом данного вывода на вход, управление подтягивающим резистором осуществляется битом PORTD2.

INT1/SDA - порт D, разряд 1

INT1 - источник внешнего прерывания 1. Вывод PD1 может использоваться как источник внешнего прерывания микроконтроллера.- ввод-вывод данных двухпроводного последовательного интерфейса TWI. После установки бита TWEN в регистре TWCR разрешается работа двухпроводного последовательного интерфейса, вывод PD1 отключается от порта и становится линией ввода-вывода последовательных данных двухпроводного последовательного интерфейса. В этом режиме на входе активизируется помехоподавляющий фильтр, который не реагирует на входные импульсы длительностью менее 50 нс, а передача организована драйвером с открытым стоком и ограниченной скоростью изменения сигнала.

INT0/SCL - порт D, разряд 0

INT0 - источник внешнего прерывания 0. Вывод PD0 может использоваться как источник внешнего прерывания микроконтроллера.- синхронизация двухпроводного последовательного интерфейса. Если установлен бит TWEN в регистре TWCR, то разрешается работа двухпроводного последовательного интерфейса, вывод PD0 отключается от порта и становится входом/выходом синхронизации последовательной связи двухпроводного последовательного интерфейса. В этом режиме на входе активизируется помехоподавляющий фильтр, который не реагирует на входные импульсы длительностью менее 50 нс, а передача организована драйвером с открытым стоком и ограниченной скоростью изменения сигнала.

Таблица 6. Отключающие сигналы для разрешения альтернативных функций на PD7.PD4

Наименование сигнала

PD7/T2

PD6/T1

PD5/XCK1

PD4/IC1

PUOE

0

0

0

0

PUOV

0

0

0

0

DDOE

0

0

0

0

DDOV

0

0

0

0

PVOE

0

0

UMSEL1

0

PVOV

0

0

XCK1 OUTPUT

0

DIEOE

0

0

0

0

DIEOV

0

0

0

0

DI

T2 INPUT

T1 INPUT

XCK1 INPUT

IC1 INPUT

AIO

-

-

-

-


Альтернативные функции порта E

Альтернативные функции порта Е представлены в таблице 7.

Таблица 7. Альтернативные функции выводов порта Е

Вывод порта

Альтернативная функция

PE7

INT7/IC3(1) (вход внешнего прерывания 7 или вход триггера захвата фронта таймера-счетчика 3)

PE6

INT6/ T3(1) (вход внешнего прерывания 6 или вход синхронизации таймера-счетчика 3)

PE5

INT5/OC3C(1) (вход внешнего прерывания 5 или выход С компаратора и ШИМ таймера-счетчика 3)

PE4

INT4/OC3B(1) (вход внешнего прерывания 4 или выход B компаратора и ШИМ таймера-счетчика 3)

PE3

AIN1/OC3A (1) (инвертирующий вход аналогового компаратора или выход A компаратора и ШИМ таймера-счетчика 3)

PE2

AIN0/XCK0(1) (неинвертирующий вход аналогового компаратора или вход/выход внешний синхронизации УСАПП0)

PE1

PDO/TXD0 (вывод программируемых данных или вывод передачи УАПП0)

PE0

PDI/RXD0 (ввод программируемых данных или вывод приема УАПП0)

/IC3 - Порт E, разряд 7

INT7 - Источник внешнего прерывания 7. Вывод PE7 может выполнять функцию источника внешнего прерывания микроконтроллера.- вход захвата фронтов таймера-счетчика 3.

INT6/T3 - Порт E, разряд 6

INT6 - Источник внешнего прерывания 6. Вывод PE6 может выполнять функцию источника внешнего прерывания микроконтроллера.- Счетный вход таймера-счетчика 3.

INT5/OC3C - Порт E, разряд 5

INT5 - Источник внешнего прерывания 5. Вывод PE5 может выполнять функцию источника внешнего прерывания микроконтроллера.C - выход компаратора С таймера-счетчика 3. Для выполнения данной функции вывод должен быть настроен как выход (DDE5 =1). Вывод OC3С также выполняет функцию выхода, когда таймер переведен в режим ШИМ.

INT4/OC3B - Порт E, разряд 4

INT4 - Источник внешнего прерывания 4. Вывод PE4 может выполнять функцию источника внешнего прерывания микроконтроллера.B - выход компаратора B таймера-счетчика 3. Для выполнения данной функции вывод должен быть настроен как выход (DDE4 =1). Вывод OC3B также выполняет функцию выхода, когда таймер переведен в режим ШИМ.

AIN1/OC3A - Порт E, разряд 3

AIN1 - инвертирующий вход аналогового компаратора. Данный вывод непосредственно подключен к инвертирующему входу аналогового компаратора.A - выход компаратора A таймера-счетчика 3. Для выполнения данной функции вывод должен быть настроен как выход (DDE3 =1). Вывод OC3A также выполняет функцию выхода, когда таймер переведен в режим ШИМ.

AIN0/XCK0 - Порт E, разряд 2

AIN0 - неинвертирующий вход аналогового компаратора. Данный вывод непосредственно подключен к неинвертирующему входу аналогового компаратора., USART0 - внешняя синхронизация. Регистр направления данных (DDE2) задает, является ли синхронизация выходной (DDE2=1) или входной (DDE2=0). Вывод XCK0 активен только тогда, когда УСАПП0 работает в синхронном режиме.

PDO/TXD0 - Порт E, разряд 1

PDO - вывод последовательно программируемых через SPI данных. В процессе последовательного программирования данный вывод используется как линия вывода данных из ATmega128.- вывод передачи УАПП0.

PDI/RXD0 - Порт E, разряд 0

PDI - ввод последовательно программируемых через SPI данных. В процессе последовательного программирования данный вывод используется как линия ввода данных в ATmega128.- Вывод приема данных УСАПП0. Если разрешена работа приемника УСАПП0, то данный вывод настраивается как вход независимо от состояния DDRE0. После того, как УСАПП0 настроит данный вывод как вход, запись лог. 1 в PORTE0 включит подтягивающий резистор на данном выводе.

Альтернативные функции порта F

Альтернативной функцией порта F является аналоговый ввод к АЦП.

Если некоторые выводы порта F используются как выходы, то необходимо следить, чтобы во время преобразования АЦП не происходило их переключение. Иначе, результат преобразования может быть некорректным. Если разрешена работа интерфейса JTAG, то подтягивающие резисторы на выводах PF7(TDI), PF5(TMS) и PF4(TCK) остаются подключенными, даже если микроконтроллер переведен в состояние сброса.

Таблица 8. Альтернативные функции выводов порта F

Вывод порта

Альтернативная функция

PF7

ADC7/TDI (Вход канала 7 АЦП или ввод данных при JTAG тестировании)

PF6

ADC6/TDO (Вход канала 6 АЦП или вывод данных при JTAG тестировании)

PF5

ADC5/TMS (Вход канала 5 АЦП или выбор режима JTAG тестирования)

PF4

ADC4/TCK (Вход канала 4 АЦП или синхронизация JTAG тестирования)

PF3

ADC3 (Вход канала 3 АЦП)

PF2

ADC2 (Вход канала 2 АЦП)

PF1

ADC1 (Вход канала 1 АЦП)

PF0

ADC0 (Вход канала 0 АЦП)

TDI, ADC7 - Порт F, разряд 7

ADC7 - Аналогово-цифровой преобразователь, канал 7.- Ввод данных при JTAG-тестировании. Последовательный ввод данных происходит в регистр инструкций или регистр данных (сканируемые звенья). После разрешения работы JTAG-интерфейса данный вывод не может использоваться в качестве линии ввода-вывода.

TDO, ADC6 - Порт F, разряд 6

ADC6 - Аналогово-цифровой преобразователь, канал 6.- вывод данных при JTAG-тестировании. Последовательный вывод данных из регистра инструкции или регистра данных. После разрешения работы JTAG-интерфейса данный вывод не может использоваться в качестве линии ввода-вывода. Вывод TDO становится тристабильным, если введено состояние TAP, при котором происходит сдвиг выводимых данных.

TMS, ADC5 - Порт F, разряд 5

ADC5 - Аналогово-цифровой преобразователь, канал 5.- Выбор режима JTAG тестирования. Данный вывод используется для управления цифровым автоматом TAP-контроллера. После разрешения работы JTAG-интерфейса данный вывод не может использоваться в качестве линии ввода-вывода.

TCK, ADC4 - Порт F, разряд 4

ADC4 - Аналогово-цифровой преобразователь, канал 4.- синхронизация JTAG-тестирования. Работа интерфейса JTAG синхронизирована с TCK. После разрешения работы JTAG-интерфейса данный вывод не может использоваться в качестве линии ввода-вывода.

ADC3 - ADC0 - Порт F, разряды 3..0

ADC7 - Аналогово-цифровой преобразователь, каналы 3…0.

Альтернативные функции порта G

В таблице 9 приведены альтернативные функции порта G.

Таблица 9. Альтернативные функции выводов порта G

Вывод порта

Альтернативная функция

PG4

TOSC1 (Генератор часов реального времени таймера-счетчика 0)

PG3

TOSC2 (Генератор часов реального времени таймера-счетчика 0)

PG2

(Разрешение фиксации адреса внешней памяти)

PG1

RD (Строб чтения внешней памяти)

PG0

WR (Строб записи внешней памяти)

- Порт G, разряд 4

TOSC1 - 1-ый вывод генератора таймера. После установки бита AS0 в регистре ASSR разрешается работа асинхронного тактирования таймера-счетчика 0, а вывод PG4 отключается от порта и становится входом инвертирующего усилителя генератора. В этом режиме кварцевый резонатор подключен к выводу PG4, который теперь не может использоваться как линия ввода-вывода.

TOSC2 - Порт G, разряд 3

TOSC2 - 2-ой вывод генератора таймера. После установки бита AS0 в регистре ASSR разрешается работа асинхронного тактирования таймера-счетчика 0, а вывод PG3 отключается от порта и становится инвертированным выходом усилителя генератора. В этом режиме кварцевый резонатор подключен к выводу PG3, который теперь не может использоваться как линия ввода-вывода.

ALE - Порт G, разряд 2

ALE - сигнал разрешения фиксации адреса внешней памяти.

RD - Порт G, разряд 1

RD - строб управления чтением данных внешней памяти.

WR - Порт G, разряд 0

WR - строб управления записью во внешнюю память.

Электрические характеристики

Предельно-допустимые параметры*

Рабочая температура

-55°C…+125°C

Температура хранения

-65°C…+150°C

Напряжение на любом выводе по отношению к общему питания, кроме RESET

-1.0В … VCC+0.5В

Напряжение на выводе сброса RESET по отношению к общему

-1.0В … +13.0В

Максимальное рабочее напряжение

6.0В

Постоянный ток через линию ввода-вывода

40.0 мА

Постоянный ток через выводы VCC и GND

200.0 мА

ПРЕДУПРЕЖДЕНИЕ:

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

Статические характеристики

Если условия измерения не указаны, то полагается:окр.ср. = -40°C…+85°C, VCC = 2.7В…5.5В.

Обозн.

Параметр

Условия измерения

Мин.

Ном.

Макс.

Ед. изм.

VIL

Входное напряжение низкого уровня

Кроме выводов XTAL1 и RESET

-0.5

 

0.2 VCC(1)

В

VIL1

Входное напряжение низкого уровня

вывод XTAL1, выбрана внешняя синхронизация

-0.5

 

0.1 VCC(1)

В

VIL2

Входное напряжение низкого уровня

вывод сброса RESET

-0.5

 

0.2 VCC(1)

В

VIH

Входное напряжение высокого уровня

Кроме выводов XTAL1, RESET

0.6 VCC (2)

 

VCC + 0.5

В

VIH1

Входное напряжение высокого уровня

Вывод XTAL1, выбрана внешняя синхронизация

0.7 VCC (2)

 

VCC + 0.5

В

VIH2

Входное напряжение высокого уровня

Вывод сброса RESET

0.85 VCC (2)

 

VCC + 0.5

В

VOL

Выходное напряжение низкого уровня (3)(порты A,B,C,D, E, F, G)

IOL = 20 мА, VCC = 5В IOL = 10 мА, VCC = 3В

 

 

0.7 0.5

В

VOH

Выходное напряжение высокого уровня (4)(порты A,B,C,D)

IOH = -20 мА, VCC = 5В IOH = -10 мА, VCC = 3В

4.0 2.2

 

 

В

IIL

Входной ток утечки через линию ввода-вывода

Vcc = 5.5В, лог. 0 (абс. значение)

 

 

8.0

мкА

Входной ток утечки через линию ввода-вывода

Vcc = 5.5В, лог. 1 (абс. значение)

 

 

8.0

мкА

RRST

Сопротивление подтягивающего резистора на входе сброса

 

30

 

100

кОм

RPEN

Сопротивление подтягивающего резистора на входе PEN

 

25

 

100

кОм

RPU

Сопротивление подтягивающего резистора на линиях ввода-вывода

 

20

 

100

кОм

ICC

Потребляемый ток

4 МГц, VCC = 3В, активный режим (ATmega128L)

 

 

5

мА



8 МГц, VCC = 5В, активный режим (ATmega128)

 

 

20

мА



4 МГц, VCC = 3В, режим холостого хода (ATmega128L)

 

 

2

мА



8 МГц, VCC = 5В, режим холостого хода (ATmega128)

 

 

12

мА


Режим выключения (Power-down)(5)

Стор. таймер включен, VCC = 3В

 

< 25

40

мкА



Стор. таймер отключен, VCC = 3В

 

< 10

25

мкА

VACIO

Входное напряжение смещения аналогового компаратора

VCC = 5В Vвх = VCC/2

 

 

40

мВ

IACLK

Входной ток утечки аналогового компаратора

VCC = 5В Vвх = VCC/2

-50

 

50

нА

tACID

Задержка на инициализацию аналогового компаратора

VCC = 2.7В VCC = 5.0В

750 500

 

 

нс

tACID

Задержка распространению сигнала в аналоговом компараторе

VCC = 2.7В VCC = 5.0В

750500

 

 

нс

Примечания:

1.   "Макс." означает наибольшее значение напряжения, приложенное к выводу, которое гарантированно распознается как логический 0.

2.       "Мин." означает наименьшее значение напряжения, приложенное к выводу, которое гарантированно распознается как логическая 1.

.        Несмотря на то, что каждая линия ввода-вывода может быть нагружена втекающим током более, чем показано в условиях испытания (20 мА при питании VCC = 5В, 10 мА при питании VCC = 3В) в статическом состоянии (не переходном), необходимо учесть следующее:

Корпуса TQFP и MLF:

·        Суммарные токи IOL всех линий ввода-вывода не должны превышать 400 мА.

·        Суммарные токи IOL всех линий ввода-вывода A0 - A7, G2, C3 - C7 не должны превышать 300 мА.

·        Суммарные токи IOL всех линий ввода-вывода C0 - C2, G0 - G1, D0 - D7, XTAL2 не должны превышать 150 мА.

·        Суммарные токи IOL всех линий ввода-вывода B0 - B7, G3 - G4, E0 - E7 не должны превышать 150 мА.

·        Суммарные токи IOL всех линий ввода-вывода F0 - F7 не должны превышать 200 мА. Если IOL превышает условия испытания, то VOL может также увеличиться. Для выводов не гарантируется втекающий ток выше приведенного в условиях испытания.

4.   Несмотря на то, что каждая линия ввода-вывода может быть нагружена вытекающим током больше, чем показано в условиях испытания (20 мА при Vcc = 5В, 10 мА при Vcc = 3В) в статическом состоянии (не переходном), необходимо учесть следующее:

Корпус TQFP и MLF:

·        Суммарные токи IOН всех линий ввода-вывода не должны превышать 400 мА.

·        Суммарные токи IOН всех линий ввода-вывода A0 - A7, G2, C3 - C7 не должны превышать 300 мА.

·        Суммарные токи IOН всех линий ввода-вывода C0 - C2, G0 - G1, D0 - D7, XTAL2 не должны превышать 150 мА.

·        Суммарные токи IOН всех линий ввода-вывода B0 - B7, G3 - G4, E0 - E7 не должны превышать 150 мА.

·        Суммарные токи IOН всех линий ввода-вывода F0 - F7 не должны превышать 200 мА. Если IOН превышает условия испытания, то VOН также может выйти за указанные значения. Для выводов не гарантируется вытекающий ток выше приведенного в условиях испытания.

.        Минимальное VCC для режима выключения: 2.5В.

Похожие работы на - Информационно-вычислительная система анализа характеристик электрических сигналов

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!