Разработка универсальной микропроцессорной системы сбора сигналов с заданными параметрами

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

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид дипломная работа
Язык русский
Дата добавления 07.07.2012
Размер файла 3,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

27

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «МАГНИТОГОРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМ. Г.И. НОСОВА»

ДИПЛОМНЫЙ ПРОЕКТ

Разработка универсальной микропроцессорной системы сбора сигналов с заданными параметрами

ЗАДАНИЕ

Тема: Разработка универсальной микропроцессорной системы сбора сигналов с заданными параметрами

Исходные данные к работе:

1) результаты прохождения преддипломной практики;

2) техническое задание на разработку универсальной микропроцессорной системы сбора данных;

3) структурные схемы известных систем детектирования шлака в струе металла;

4) техническая документация на контроллеры STM32F2xx;

5) стандарт UDP протокола.

Перечень вопросов, подлежащих разработке в дипломном проекте:

1) анализ функциональных возможностей платы TE-STM32F207;

2) разработка программного обеспечения для настройки периферии контроллера STM32F207;

3) применение известного TCP стека для реализации технического задания.

Графическая часть:

1) элементы системы детектирования шлака на конвертере;

2) элементы системы детектирования шлака на МНЛЗ;

3) вид чувствительного элемента вибрационной системы детектирования шлака;

4) внешний вид модуля TE-STM32F207;

5) архитектура микроконтроллера STM32F207;

6) характеристики модуля TE-STM32F207;

7) алгоритм работы микроконтроллера;

8) листинг программы настройки выводов общего назначения;

9) листинг программы настройки АЦП;

10) листинг программы настройки ПДП;

11) листинг программы настройки таймера.

РЕФЕРАТ

контроллер плата программное обеспечение

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

Микроконтроллер, вывод общего назначения, состояния сигналов, аналогово-цифровой преобразователь, прямой доступ к памяти, таймер, UDP, прерывание, Ethernet.

Целью проекта является разработка универсальной микропроцессорной системы сбора сигналов со следующими характеристиками: 8 каналов, частота опроса 10 кГц, Ethernet интерфейс, микроконтроллер STM32F207.

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

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

В третье главе рассмотрены нормы безопасности необходимые к соблюдению при проектировании и реализации данного проекта.

В четвертой главе был произведен анализ технико-экономических показателей и обоснование экономической целесообразности принятых в проекте решений.

СОДЕРЖАНИЕ

  • ВВЕДЕНИЕ
  • ГЛАВА 1. АНАЛИЗ ИЗВЕСТНЫХ МЕТОДОВ ОТСЕЧКИ ШЛАКА В ТЕХНОЛОГИЧЕСКОМ ПРОЦЕССЕ ПРОИЗВОДСТВА СТАЛЕЙ
    • 1.1 Шлаки сталеплавильных процессов
    • 1.2 Влияние шлака на качество процесса
    • 1.3 Известные методы детектирования шлака в струе металла
    • 1.4 Описание электромагнитной системы детектирования шлака
    • 1.5 Описание вибрационной системы детектирования шлака
    • 1.6 Анализ поставленной задачи
  • ГЛАВА 2. РАЗРАБОТКА УНИВЕРСАЛЬНОЙ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ СБОРА СИГНАЛОВ
    • 2.1 Анализ возможностей периферийных устройств контроллера STM32F207
    • 2.2 Описание алгоритма работы микроконтроллера
    • 2.3 Выводы общего назначения
    • 2.3.1 Описание выводов общего назначения
    • 2.3.2 Описание регистров выводов общего назначения
    • 2.3.3 Настройка выводов общего назначения
    • 2.4 Аналогово-цифровой преобразователь
    • 2.4.1 Характеристики АЦП
    • 2.4.2 Описание работы АЦП
    • 2.4.3 Описание регистров АЦП
    • 2.4.4 Настройка АЦП
    • 2.4.5 Обработчик прерываний АЦП
    • 2.5 Прямой доступ к памяти
    • 2.5.1 Описание работы ПДП
    • 2.5.2 Описание регистров ПДП
    • 2.5.3 Настройка ПДП
    • 2.6 Таймер
    • 2.6.1 Описание работы таймера
    • 2.6.2 Описание регистров таймера
    • 2.6.3 Настройка таймера
    • 2.6.4 Обработчик прерываний таймера
    • 2.7 UDP стек
    • 2.7.1Настройка UDP стека
    • 2.8 Основное тело программы
    • 2.9 Краткая инструкция по применению и настройке
  • ГЛАВА 3. БЕЗОПАСНОСТЬ И ЭКОЛОГИЧНОСТЬ
    • 3.1 Требования к помещениям при работе за компьютером
    • 3.2 Требования к микроклимату, ионному составу и концентрации вредных химических веществ в воздухе помещений
    • 3.3 Требования к освещению помещений и рабочих мест
    • 3.4 Требования к шуму и вибрации в помещениях
    • 3.5 Требования к организации и оборудованию рабочих мест
    • 3.6 Режим труда и отдыха при работе с компьютером
    • 3.7 Обеспечение электробезопасности и пожарной безопасности на рабочем месте
  • ГЛАВА 4. АНАЛИЗ ТЕХНИКО-ЭКОНОМИЧЕСКИХ ПОКАЗАТЕЛЕЙ И ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЦЕЛЕСООБРАЗНОСТИ ПРИНЯТЫХ В ПРОЕКТЕ РЕШЕНИЙ
    • 4.1 Расчет материальных затрат на необходимое дополнительное оборудование
    • 4.2 Расчет трудозатрат
    • 4.3 Расчёт заработной платы
    • 4.4 Смета затрат
    • 4.5 Амортизация
    • 4.6 Расчёт цены реализации разработки
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ А

ВВЕДЕНИЕ

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

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

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

Раннее обнаружение шлака и его своевременная отсечка позволяют добиться следующего:

· Уменьшение затрат алюминия.

· Увеличение срока службы футеровки ковша и шиберного механизма.

· Уменьшение затрат на шлакоотсекающие устройства.

· Улучшение качества металла.

В настоящее время на ОАО «ММК» и ОАО «Северсталь» проводятся исследования по возможности и эффективности применения электромагнитного и вибрационного способов детектирования шлака на различных стадиях технологического процесса производства сталей. Для выполнения этих исследований требуется разработка системы сбора данных, которая позволяет реализовать один из методов автоматического определения проникновения шлака в струю металла.

Работа включает в себя следующие этапы:

1. Оценка существующих методов автоматического определения проникновения шлака в струю металла, для определения параметров системы.

2. Оценка микроконтроллера, предоставленного для реализации данной системы.

3. Разработка алгоритма, обеспечивающего работу микропроцессора в соответствии с определенными параметрами.

4. Написание программного обеспечения по составленному алгоритму.

5. Подготовка краткого руководства по эксплуатации и настройке конечного устройства.

ГЛАВА 1. АНАЛИЗ ИЗВЕСТНЫХ МЕТОДОВ ОТСЕЧКИ ШЛАКА В ТЕХНОЛОГИЧЕСКОМ ПРОЦЕССЕ ПРОИЗВОДСТВА СТАЛЕЙ

1.1 Шлаки сталеплавильных процессов

Роль шлаков в процессе производства стали исключительно велика. Шлаковый режим, определяемый количеством и составами шлака, оказывает большое влияние на качество готовой стали, стойкость футеровки и производительность сталеплавильного агрегата. Шлак образуется в результате окисления составляющих части шихты, из оксидов футеровки печи, флюсов и руды. По свойствам шлакообразующие компоненты можно разделить на кислотные (SiO2; P2O5; TiO2; и др.), основные (CaO; MgO; FeO; MnO и др.) и амфотерные (Al2O3; Fe2O3; Cr2O3; и др.) оксиды. Важнейшими компонентами шлака, оказывающими основное влияние на его свойства, являются оксиды SiO2 и CaO.

Шлак выполняет несколько важных функций в процессе выплавки стали:

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

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

3. В мартеновских и дуговых сталеплавильных печах через шлак происходит передача тепла металлу;

4. Защищает металл от насыщения газами, содержащимися в атмосфере печи.

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

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

1.2 Влияние шлака на качество процесса

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

В качестве примера, можно привести влияние шлака, попадающего из конвертера в сталь ковш на основные показатели качества процесса:

· Толстый слой шлака на поверхности металла вызывает образование твердой корки, которая мешает проведению дополнительных операций по обработке (разогреву) металла в сталь-ковше;

· Высокий уровень FeO и MnO в шлаке приводит к высокому общему содержанию кислорода в стали. Неустойчивые оксиды в шлаке реагируют с алюминиевыми и другими добавками, что приводит к обеднению сплава

· Большое количество алюминия, требующееся из-за наличия оксидов, приводит к образованию включений оксида алюминия (Al2O3), которые засоряют выходной канал и шиберный затвор сталь-ковша;

· Фосфор, находящийся в шлаке, попадает в сталь во время подготовки (разогрева) сталь-ковша и ухудшает свойства стали;

· Находящийся в шлаке оксид железа (FeO) реагирует с огнеупорными материалами и разрушает их.

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

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

1.3 Известные методы детектирования шлака в струе металла

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

Электромагнитный метод предполагает установку в зоне струи металла чувствительного элемента, состоящего из одной или нескольких обмоток. Обмотка возбуждения создает электромагнитное поле и при изменениях в струе металла, связанные с проникновением в нее шлака, происходят изменения параметров поля, которые фиксируются измерительной обмоткой. Основным недостатком данного метода является необходимость располагать чувствительный элемент в горячей зоне (особенно в конверторе), что накладывает на него специальные требования. В настоящее время эта проблема решена при использовании специальных жаропрочных материалов. По данным фирмы Amepa за последние 10 лет системы обнаружения шлака, построенные с применением электромагнитного метода, установлены на 58 конвертерах, 7 электропечах и 1758 сталь-ковшах.

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

Электромагнитный способ детектирования шлака является наиболее эффективным и поэтому наиболее часто применяется.

Основные преимущества электромагнитного метода состоят в следующем:

· высокая точность и быстродействие измерений;

· независимость измерений от акустических и визуальных помех;

· работа, как при открытой, так и при закрытой разливочной трубой струе металла

1.4 Описание электромагнитной системы детектирования шлака

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

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

ь измерение сигнала содержания шлака в струе металла;

ь выдача звукового сигнала при появлении в струе шлака;

ь измерение угла наклона конвертера при сливе металла;

ь измерение времени слива металла;

ь автоматическая диагностика работы системы;

ь запись технологических архивов.

На рисунке 1 представлено расположение оборудования системы детектирования шлака на конвертере: 1 - датчик шлака (два чувствительных элемента), 2 - кросс-блок с датчиком угла наклона конвертера, 3 - устройство обработки сигналов, 4 - пульт оператора, 5 - станция технологического мониторинга.

Рисунок 1 - Структура системы детектирования шлака

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

На рисунке 2 представлена схема размещения двух чувствительных элементов в летке конвертера. 1 - чувствительные элементы, 2 - кольца выпускного канала, 3 - футеровочный материал, 4 - броня летки, 5 - дно летки.

Рисунок 2 - Схема размещения чувствительных элементов в летке конвертера

Датчик шлака состоит из двух одинаковых чувствительных элементов. На один из них подается переменное напряжение для создания электромагнитного поля в области струи металла. Струя металла влияет на величину и форму этого поля. При попадании в струю металла шлака, параметры электромагнитного поля меняются. Эти изменения фиксирует второй чувствительный элемент, сигнал которого усиливается, преобразуется в цифровую форму и обрабатывается в электронном блоке. В начале слива металла система автоматически производит калибровку сигнала по величине струи металла. Полученный после обработки и калибровки сигнал равен 0 % при отсутствии в струе шлака и равен 100 % в момент, когда в струе отсутствует сталь. При превышении сигнала установленного уровня «отсечки» на пульте оператора включается звуковая и визуальная сигнализация. Регулировкой уровня «отсечки» можно добиться срабатывания звукового сигнала при различном требуемом содержании шлака в струе металла.

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

Структура такой системы показана на рисунке 4: 1 - чувствительный элемент с термостойким кабелем, 2 - соединитель, 3 - технологический пульт, 4 - блок усиления сигналов, 5 - блок обработки сигналов и рабочая станция.

Рисунок 4 - Расположение элементов системы на машине непрерывного литья заготовок

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

1.5 Описание вибрационной системы детектирования шлака

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

На рисунке 5 изображен вид чувствительного элемента датчика шлака, устанавливаемого на манипулятор разливочного стакана.

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

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

Частота опроса аналоговых каналов - 10 кГц, для получения качественной картины оцифрованного сигнала.

Возможность передачи данных через Ethernet по UDP протоколу со скоростью 10/100 мбит/с.

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

1.6 Анализ поставленной задачи

Для реализации данного технического задания был предоставлен модуль TE-STM32F207 выполненный на основе 32-разрядного микроконтроллера STM32F207 компании STMicroelectronics. Примененный микроконтроллер имеет ядро Cortex-M3, порты USB OTG и Ethernet, два порта CAN. Максимальная тактовая частота микроконтроллера составляет 120 МГц.

Отличительные особенности:

· микроконтроллер STM32F207VGT6: 120 МГц Cortex-M3, 1 Mбайт Flash-памяти программ, 128 Кбайт ОЗУ, три 12-разрядных АЦП, два 12-разрядных ЦАП, Ethernet MAC 10/100, USB OTG, 2xCAN, 5хUSART, 3х SPI, I2C, SDIO, корпус LQFP100;

· SPI Flash-память AT45DB161D (16 Мбит);

· разъем и драйвер порта Ethernet;

· разъем порта USB OTG;

· 2 разъема и драйверы портов CAN;

· 2 разъема портов RS-232;

· разъем JTAG;

· аудио-усилитель и динамик;

· 31 линия портов микроконтроллера выведена на разъем;

· разъем питания +7,5 … 9,0 В

Данный микроконтроллер полностью удовлетворяет нашим задачам. Так как имеет два 12 разрядных АЦП с быстродействием 2 MSPS, разъем и драйвер порта Ethernet, приемлемую цену и малые габариты.

ГЛАВА 2. РАЗРАБОТКА УНИВЕРСАЛЬНОЙ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ СБОРА СИГНАЛОВ

2.1 Анализ возможностей периферийных устройств контроллера STM32F207

Микроконтроллеры STM32 выполнены на основе ядра Cortex, которое подключено к Flash памяти по отдельной шине инструкций. Шина данных и системная шина Cortex подключены к матрице высокоскоростных шин AHB. Внутреннее статическое ОЗУ подключено напрямую к матрице шин AHB, с которой также связан блок ПДП. Подключение встроенных УВВ распределено между двумя шинами APB. Каждая из шин связана с матрицей шин AHB посредством шинных преобразователей. Матрица шин AHB синхронизируется той же частотой, что и ядро Cortex. Однако, у шин AHB имеются отдельные предделители и, поэтому, в целях снижения энергопотребления их можно синхронизировать более низкими частотами. В качестве шинных мастеров могут выступать, как ЦПУ Cortex, так и блок ПДП. Благодаря свойственной матрице шин параллелизму, необходимость в арбитраже возникает только в случае попыток одновременного доступа обеих мастеров к статическому ОЗУ, шине APB1 или APB2. Тем не менее шинный арбитр гарантированно предоставляет 2/3 времени доступа для блока ПДП и 1/3 для ЦПУ Cortex.

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

У микроконтроллера STM32 предусмотрено до 80 двунаправленных линий ввода-вывода. Все линии ввода-вывода разделены на 5 портов по 16 линий ввода-вывода в каждой.

Данные порты называются A…E и совместимы с напряжением 5В. Многие из внешних выводов могут выполнять альтернативную функцию линии ввода-вывода, например, модуля УСАПП или I2C. Кроме того, 16 входных линий встроенного блока внешних прерываний могут быть соединены с любыми из портов ввода-вывода.

В микроконтроллере STM32 два аналогово-цифровых преобразователя. АЦП питаются отдельным напряжением, которое в зависимости типа корпуса может находиться в пределах 2.4…3.6 В. Источник опорного напряжения АЦП соединен либо с напряжением питания АЦП, либо со специальными внешними выводами. АЦП характеризуется 12-битной разрешающей способностью и частотой преобразования 1МГц. У него имеется до 18 мультиплексированных каналов, 16 из которых можно использовать для измерения внешних сигналов. Оставшиеся два канала связаны со встроенным датчиком температуры и внутренним ИОН.

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

Все блоки таймеров выполнены на основе 16-битного перезагружаемого счетчика, который синхронизируется с выхода 16-битного предделителя. Перезагружаемое значение хранится в отдельном регистре. Счет может быть прямой, обратный или двунаправленный (сначала прямой до определенного значения, а затем обратный). Вход синхронизации счетчика можно связать с одним из восьми различных источников. В их число входят: специальный сигнал синхронизации, производный от сигнала главной системной синхронизации; выходной сигнал синхронизации одного из других таймеров или внешний сигнал синхронизации, связанный с выводами захвата/сравнения.

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

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

Рисунок 8 - Блок-схема алгоритма работы микроконтроллера

Рисунок 8 - Блок-схема алгоритма работы микроконтроллера

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

2.3 Выводы общего назначения

2.3.1 Описание выводов общего назначения

В микроконтроллерах STM32 порты 16-разрядные, в зависимости от модели их может быть до 7.

Именуются они буквами A-G : PORTA, PORTB, PORTC, PORTD, PORTE, PORTF, PORTG.

Порты могут быть сконфигурированы как

· вход;

· выход.

Если порт настроен на ввод данных, возможны следующие режимы:

· аналоговый вход;

· цифровой вход.

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

Если порт настроен на вывод данных, то необходимо задать:

· максимальное быстродействие;

· режим выхода.

Максимальное быстродействие может иметь следующие значения: 2, 10, 50 MHz.

Режим выхода может быть следующим:

· двухтактный выход общего назначения;

· выход с открытым стоком общего назначения;

· двухтактный выход с альтернативной функцией;

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

Два последних режима используются, когда вывод используется каким-то периферийным устройством (например, выход USARTа).

Выход общего назначения симметричен. Логическая единица и ноль на выходе могут дать примерно одинаковый ток. А выход с открытым стоком предполагает, что на нем может появиться только «земля», когда транзистор выходного каскада вывода будет открыт. А чтобы на выходе была единица, необходим подтягивающий резистор. Благодаря этому можно объединять несколько выходов в одну точку.

Функциональная схема выводов общего назначения представлена на рисунке 9.

Рисунок 9 - Функциональная схема вывода общего назначения

Если вывод порта сконфигурирован как выход общего назначения, используются транзисторы P-MOS и N-MOS. Если на выходе нужна единица -- открывается транзистор P-MOS, если нужен ноль - N-MOS.

Если порт сконфигурирован как выход с открытым стоком, верхний транзистор не используется.

На схеме показаны резисторы, позволяющие подтянуть вывод, сконфигурированный как вход, к плюсу питания или земле.

Важный элемент -- защитные диоды. Они защищают контроллер от перенапряжений на входе. Этот узел является обычным для микроконтроллеров, но для микроконтроллеров данной серии есть одна особенность. Дело в том, что для них напряжение питания составляет 3.3 вольта. Но большинство устройств питаются от 5 вольт. Если соединить выход такого устройства со входом контроллера, 5 вольт с выхода устройства через защитный диод попадут на питание контроллера. Чтобы исключить такую проблему предусмотрены выводы двух типов: обычные, на которые можно подавать уровень не более напряжения питания контроллера, и выводы толерантные (терпимые) к 5 вольтам. В документации эти выводы обозначены буквами FT.

2.3.2 Описание регистров выводов общего назначения

Для конфигурирования портов и работы с ними на каждый порт выделено по семь регистров:

· GPIOx_CRL, GPIOx_CRH - задают режимы работы каждого бита порта;

· GPIOx_IDR - регистр, позволяющий читать физическое состояние выводов порта x;

· GPIOx_ODR -- позволяет записать данные непосредственно в порт;

· GPIOx_BSRR -- для сброса и установки отдельных битов порта;

· GPIOx_BRR -- для сброса битов порта;

· GPIOx_LCKR -- для блокировки выбранной конфигурации

где х -- это имя порта (A,B,C,D,E,F или G).

Рассмотрим подробнее особенности каждого регистра.

GPIOx_CRL, GPIOx_CRH - 32-х разрядные регистры, задающие режим работы каждого вывода порта.

Структура регистра GPIOx_CRL представлена на рисунке 10.

Рисунок 10 - Структура регистра GPIOx_CRL

Структура регистра GPIOx_CRH представлена на рисунке 11.

Рисунок 11 - Структура регистра GPIOx_CRH

Для того, чтобы задать режим одного вывода, необходимо четыре разряда. Так как порт имеет 16 разрядов, для конфигурации порта необходимо 64 разряда. Регистры микроконтроллера имею разрядность равную 32, поэтому для всего порта необходимо два конфигурационных регистра - GPIOx_CRL и GPIOx_CRH.

Регистр GPIOx_CRL конфигурирует первую половину выводов порта (разряды 0…7).

Регистр GPIOx_CRH конфигурирует вторую половину выводов порта (разряды 8…15).

Для конфигурирования одного вывода порта необходимо 4 разряда.

Назначение этих разрядов следующее:

· биты 0,1 (MODE) определяют направление вывода и скорость обмена в режиме выхода;

· биты 2,3 (CNF) задают конфигурацию выходного каскада.

Разряды MODE могут иметь следующее значение:

· MODE [1,0]=00 -- вывод сконфигурирован как вход;

· MODE [1,0]=01 -- вывод сконфигурирован как выход, максимальная скорость переключения -- 10 MHz;

· MODE [1,0]=10 -- вывод сконфигурирован как выход, максимальная скорость переключения -- 2 MHz;

· MODE [1,0]=11 -- вывод сконфигурирован как выход, максимальная скорость переключения -- 50 MHz;

Если вывод сконфигурирован как вход, назначение разрядов CNF следующее:

· CNF[1,0]=00 -- аналоговый вход;

· CNF[1,0]=01 -- цифровой вход в третьем состоянии;

· CNF[1,0]=10 -- цифровой вход с подтягивающим резистором ;

· CNF[1,0]=11 -- зарезервировано

Если вывод сконфигурирован как выход, назначение разрядов CNF следующее:

· CNF[1,0]=00 -- двухтактный выход общего назначения;

· CNF[1,0]=01 -- выход общего назначения с открытым стоком;

· CNF[1,0]=10 -- двухтактный выход с альтернативной функцией;

· CNF[1,0]=11 -- выход с альтернативной функцией с открытым стоком

Следующим идет регистр GPIOx_IDR.

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

Регистр GPIOx_ODR предназначен для непосредственной записи в порт. Он также 16-ти разрядный.

Следующий регистр - GPIOx_BSRR. Он предназначен для атомарного управления выходами. Его структура представлена на рисунке 12.

Рисунок 12 - Структура регистра GPIOx_BSRR

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

Если записать «1» в разряд BS0, вывод №0 порта будет установлен. Если записать «1» в разряд BR0, вывод №0 порта будет сброшен. Приоритет имеет BSx.

Регистр GPIOx_BRR предназначен для работы с отдельными битами порта. Но он 16-ти разрядный, и предназначен только для сброса выводов порта. Регистр GPIOx_LCKR предназначен для блокировки выбранной конфигурации. Его структура представлена на рисунке 13.

Рисунок 13 - Структура регистра GPIOx_BSRR

Чтобы защитить настройку выбранного разряда порта, необходимо установить соответствующий бит LCK. Сразу после этого выполнить последовательную запись в разряд LCKK 1 -- 0 -- 1.

2.3.3 Настройка выводов общего назначения

Сконфигурируем выводы в соответствии с поставленной задачей:

1. Подаем тактирование на порт А. Для этого устанавливанием бит IOPAEN регистра APB2ENR в «1».

RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;

2. Задаем режим работы соответствующих портов как аналоговый вход. Для этого устанавливаем биты MODEх[1:0] и CNFх[1:0] регистра CRL в «0».

GPIOA->CRL &= ~GPIO_CRL_MODE0;

GPIOA->CRL &= ~GPIO_CRL_MODE1;

GPIOA->CRL &= ~GPIO_CRL_MODE2;

GPIOA->CRL &= ~GPIO_CRL_MODE3;

GPIOA->CRL &= ~GPIO_CRL_MODE4;

GPIOA->CRL &= ~GPIO_CRL_MODE5;

GPIOA->CRL &= ~GPIO_CRL_MODE6;

GPIOA->CRL &= ~GPIO_CRL_MODE7;

GPIOA->CRL &= ~GPIO_CRL_CNF0;

GPIOA->CRL &= ~GPIO_CRL_CNF1;

GPIOA->CRL &= ~GPIO_CRL_CNF2;

GPIOA->CRL &= ~GPIO_CRL_CNF3;

GPIOA->CRL &= ~GPIO_CRL_CNF4;

GPIOA->CRL &= ~GPIO_CRL_CNF5;

GPIOA->CRL &= ~GPIO_CRL_CNF6;

GPIOA->CRL &= ~GPIO_CRL_CNF7;

2.4 Аналогово-цифровой преобразователь

2.4.1 Характеристики АЦП

Характеристики АЦП микроконтроллера STM32F207VGT6:

· 12-ти разрядная разрешающая способность;

· время преобразования -- 1 мs;

· 18 каналов, из которых 16 -- внешние;

· возможность задавать время преобразования индивидуально для каждого канала (8 дискретных значений);

· возможность задания одиночного или непрерывного преобразования;

· самокалибровка;

· наличие оконного компаратора;

· запуск преобразования от внешнего источника;

· работа с модулем DMA.

Структурная схема аналогово-цифрового преобразователя представлена на рисунке 14.

Analog MUX -- это селектор каналов. АЦП имеет 18 каналов (входов). 16 каналов - это выводы микроконтроллера, на которые подается измеряемый сигнал. Еще два канала задействованы под внутренние сигналы: один для подачи внутреннего образцового напряжения, второй для подключения датчика температуры, который расположен на кристалле.

Injected channels (инжектированные каналы) и Regular channels (регулярные каналы). Это две разновидности опроса каналов. Если нужно опрашивать несколько каналов, создается их список, и АЦП измеряет напряжение на каждом канале из этого списка последовательно друг за другом. К примеру, нужно измерять напряжение в такой последовательности: канал №2 - канал № 5 -- канал №1 - канал №1 - канал № 9. Эта последовательность записывается в специальный регистр, после чего запускается процесс преобразования. В результате все каналы будут последовательно опрошены.

Рисунок 14 - Функциональная схема аналогово-цифрового преобразователя

Не имеет значение порядок следования каналов, также один канал может опрашиваться несколько раз.

Регулярные каналы

Количество измерений в группе регулярных каналов может достигать 16. Возможно непрерывное измерение выбранных каналов (по окончанию измерения автоматически запустится новый цикл).

Инжектированные каналы

Максимальное количество измерений в группе инжектированных каналов равно четырем. Если запустить измерение инжектированных каналов, то измерение регулярных каналов будет приостановлено. Затем будет выполнено измерение заданных инжектированных каналов и вновь восстановлено измерение каналов регулярной группы.

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

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

Оконный компаратор

Оконный компаратор (Analog watchdog) имеет в своем составе два регистра.

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

Оконный компаратор может быть весьма полезным.

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

Если использовать оконный компаратор, от этого можно избавиться.

Выполнить инициализацию компаратора - задать пороговые уровни, включить этот канал в список регулярных каналов и разрешить прерывание от него.

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

Прерывания от АЦП

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

Сохранение результата преобразования

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

Для результатов преобразования регулярных каналов регистр один.

2.4.2 Описание работы АЦП

Режим одиночного преобразования

В этом режиме АЦП выполняет всего одно преобразование. Оно запускается после установки разряда ADON регистра ADC_CR2 (только для регулярных каналов) или от внешнего сигнала (для регулярного и инжектированного каналов). При этом разряд CONT регистра ADC_CR2 должен быть равен нулю.

После окончания преобразования в выбранном канале выполняется:

Для регулярного канала:

· Результат преобразования сохраняется в регистре ADC_DR

· Устанавливается флаг EOC

· Генерируется прерывание, если установлен разряд EOCIE

Для инжектированного канала:

· Результат преобразования сохраняется в регистре ADC_DRJ1

· Устанавливается флаг JEOC

· Генерируется прерывание, если установлен разряд JEOCIE

После этого АЦП останавливается

Режим непрерывного преобразования

В этом режиме АЦП начинает следующее преобразование, как только закончится первое.

Этот режим стартует от внешнего источника или при установке разряда ADON регистра ADC_CR2, при этом разряд CONT регистра ADC_CR2 должен быть равен единице.

После каждого преобразования выполняется:

Для регулярного канала:

· Результат преобразования сохраняется в регистре ADC_DR

· Устанавливается флаг EOC

· Генерируется прерывание, если установлен разряд EOCIE

Для инжектированного канала:

· Результат преобразования сохраняется в регистре ADC_DRJ1

· Устанавливается флаг JEOC

· Генерируется прерывание, если установлен разряд JEOCIE

Режим сканирования

Этот режим используется для сканирования группы каналов.

Он выбирается установкой разряда SCAN регистра ADC_CR1. Если этот разряд установлен, АЦП сканирует все каналы, выбранные в регистрах ADC_SQRx (для регулярных каналов) или регистре ADC_JSQR (для инжектированных каналов). Для каждого канала группы выполняется одно преобразование. После окончания преобразования следующий канал (его преобразование) запускается автоматически. Если разряд CONT установлен, то преобразование не останавливается на последнем канале, а вновь запускается с первого канала.

Если установлен разряд DMA, контроллер прямого доступа к памяти используется для передачи результата в память после окончания каждого преобразования (после установки разряда EOC).

В инжектированных каналах результат сохраняется в регистрах ADC_JDRx.

2.4.3 Описание регистров АЦП

Структура регистров аналогово-цифрового преобразователя представлена на рисунке 16.

1. SR - содержит флаги, указывающие на состояние АЦП.

2. CR1, CR2 - управляющие регистры, задают режим работы.

3. SMPR1, SMPR2 - задают время преобразования.

4. JOFR1…JOFR2 - определяют смещение данных в инжектированной группе (ух, как сложно воспринимается при первом прочтении).

5. HTR, LTR - задают верхнее и нижнее значение срабатывания оконного компаратора.

6. SQR1…SQR3 - задают последовательность каналов регулярной группы.

7. JSQR - задает последовательность каналов инжектированной группы.

8. JDR1…JDR4 - регистры данных инжектированной группы.

9. DR - регистр данных регулярной группы.

Рассмотрим подробнее каждую группу регистров АЦП. Если в контроллере два модуля АЦП, названия регистров будут одинаковые, за исключением приставки: ADC1 и ADC2.

Регистр SR

Структура регистра SR представлена на рисунке 15.

Рисунок 15 - Структура регистра SR

Этот регистр содержит флаги, которые устанавливаются аппаратно. Очищаются они программно, записью нуля (программист должен сделать это). Флаг EOC можно также очистить, прочитав регистр DR. Назначение флагов следующее:

· STRT -- устанавливается при старте преобразования регулярного канала;

· JSTRT -- устанавливается при старте преобразования инжектированного канала;

· JEOC -- окончание преобразования инжектированного канала;

· EOC -- окончание преобразования регулярного или инжектированного канала;

· AWD -- устанавливается при срабатывании оконного компаратора.

Рисунок 16 - Регистры аналогово-цифрового преобразователя

Регистр CR1

Структура регистра CR1 представлена на рисунке 16.

Рисунок 17 - Структура регистра CR1

· AWDEN -- управляет оконным компаратором регулярного канала (1-вкл, 0 -- выкл);

· JAWDEN -- управляет оконным компаратором инжектированного канала (1-вкл, 0 -- выкл);

· JEOCIE -- разрешает/запрещает прерывания для инжектированных каналов;

· AWDIE -- разрешает/запрещает прерывания от оконного компаратора АЦП;

· EOCIE -- разрешает/запрещает прерывания по окончанию преобразования в регулярной или инжектированной группе;

· AWDCH[4:0] -- определяет номер канала, к которому подключен оконный компаратор;

Регистр CR2

Структура регистра CR2 представлена на рисунке 18.

Рисунок 18 - Структура регистра CR2

TSVREFE - подключает датчик температуры, расположенный на кристалле;

· SWSTART -- запускает преобразование в регулярном канале (если разряды EXTSEL[2:0] = 111). Устанавливается программно. Сбрасывается аппаратно, после начала преобразования;

· JSWSTART -- запускает преобразование в инжектированном канале (если разряды JEXTSEL[2:0] = 111). Устанавливается программно. Сбрасывается аппаратно, после начала преобразования;

· EXTTRIG -- разрешает/запрещает использовать внешнее события для запуска преобразования в регулярном канале;

· EXTSEL[2:0] -- определяет источник, который будет запускать преобразование в регулярном канале. Для ADC1 и ADC2:

1. EXTSEL[2:0] = 000 -- Timer 1 CC1;

2. EXTSEL[2:0] = 001 -- Timer 1 CC2;

3. EXTSEL[2:0] = 010 -- Timer 1 CC3;

4. EXTSEL[2:0] = 011 -- Timer 2 CC2;

5. EXTSEL[2:0] = 100 -- Timer 3 TRGO;

6. EXTSEL[2:0] = 101 -- Timer 4 CC4;

7. EXTSEL[2:0] = 110 -- EXTI line11/TIM8_TRGO;

8. EXTSEL[2:0] = 111 -- SWSTART;

· JEXTTRIG -- разрешает/запрещает использовать внешнее события для запуска преобразования в инжектированном канале;

· JEXTSEL[2:0] -- определяет источник, который будет запускать преобразование в инжектированном канале. Для ADC1 и ADC2:

1. JEXTSEL[2:0] = 000 -- Timer 1 TRGO;

2. JEXTSEL[2:0] = 001 -- Timer 1 CC4;

3. JEXTSEL[2:0] = 010 -- Timer 2 TRGO;

4. JEXTSEL[2:0] = 011 -- Timer 2 CC1;

5. JEXTSEL[2:0] = 100 -- Timer 3 CC4;

6. JEXTSEL[2:0] = 101 -- Timer 4 TRGO;

7. JEXTSEL[2:0] = 110 -- EXTI line15/TIM8_CC4;

8. JEXTSEL[2:0] = 111 -- JSWSTART;

· ALIGN -- выравнивание результата (0 -- по правому краю, 1 -- по левому);

· DMA -- разрешает/запрещает использовать модуль DMA;

· RSTCAL -- сброс калибровки;

· CAL -- запускает калибровку АЦП (записали 1 -- калибровка пошла, по окончании сбросится аппаратно);

· CONT -- установка этого разряда запускает непрерывное преобразование;

· ADON -- включает/отключает модуль АЦП;

Регистры SMPRх

Регистры SMPR1 и SMPR2 (sample time register) задают время преобразования в каждом канале. Их структура представлена на рисунках 19 и 20.

Рисунок 19 - Структура регистра ADC_SMPR1

Рисунок 20 - Структура регистра ADC_SMPR2

Для каждого канала выделено по 3 разряда, что позволяет задать 8 значений времени преобразования:

000 - 1.5 цикла;

001 - 7.5 цикла;

010 - 13.5 цикла;

011 - 28.5 цикла;

100 - 41.5 цикла;

101 - 55.5 цикла;

110 - 71.5 цикла;

111 - 239.5 цикла

Регистры JOFRx

Регистры смещения для каждого канала инжектированной группы (JOFR1, JOFR2, JOFR3, JOFR4).

В регистр смещения можно запрограммировать 12-битное значение, которое автоматически вычитается из результата преобразования АЦП. Если результирующее значение -- отрицательное, то регистр результата инжектированной группы дополняется знаком.

Регистры LTR и HTR

Эти регистры содержат по 12 разрядов, в которые записывается верхнее и нижнее значение оконного компаратора.

Регистры SQRх

В этих регистрах задаются номера каналов, которые будут опрашиваться в регулярной группе, и задается общее количество каналов. Этих регистров три. Ниже они изображены в следующей последовательности: SQR1, SQR2, SQR3. Их структура представлена на рисунках 21-23.

Рисунок 21 - Структура регистра SQR1

Рисунок 22 - Структура регистра SQR2

Рисунок 23 - Структура регистра SQR3

Разряды SQx[4:0] задают номер канала, где х - это номер преобразования.

Задается список каналов. По этому списку производится опрос каналов АЦП (можно задать от 1 до 18 каналов).

Например, необходимо циклически измерять напряжение в такой последовательности: канал №3 - канал №1 - канал №5 - канал №1 - канал №8 -- канал №8 -канал №1 (7 каналов).

Для этого необходимо записать в регистр SQR3 следующие значения:

SQ1[4:0] = 3; SQ2[4:0] = 1; SQ3[4:0] = 5; SQ4[4:0] = 1; SQ5[4:0] = 8; SQ6[4:0] = 8

А в разряды SQ7 регистра SQR2 запишем 1. И задаем количество каналов регулярной группы: L[3:0] = 6

Каналы можно опрашивать в любой последовательности. Любой канал можно опрашивать несколько раз.

Количество каналов в этом списке задается разрядами L[3:0] регистра SQR1.

Регистр JSQR

Структура регистра JSQR представлена на рисунке 24

Рисунок 24 - Структура регистра JSQR

Этот регистр, подобно регистрам SQRx, задает последовательность каналов и их количество. Но не для регулярной группы, а для инжектированной.

Как видно из структуры регистра, максимальное количество преобразований в инжектированной группе равно четырем (это количество задается в разрядах JL[1:0]).

Регистр JDRx

Структура регистра JDRx представлена на рисунке 25.

Рисунок 25 - Структура регистра JDRx

JDRx - это регистр данных каналов инжектированной группы. Максимальное количество каналов в инжектированной группе равно четырем, соответственно имеется 4 регистра данных - JDR1, JDR2, JDR3 и JDR4. В эти регистры помещается результат преобразований в каждом выбранном канале.

Регистры 16-ти разрядные, хотя АЦП 12-ти разрядный. Предусмотрено выравнивание результата измерения по левому или по правому краю.

Регистр DR

Структура регистра DR представлена на рисунке 26.

Рисунок 26 - Структура регистра DR

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

Его структура подобна регистрам JDRx, за исключением старших 16-ти разрядов 16…31. Эти разряды используются при работе АЦП в сдвоенном режиме (совместно с ADC2).

2.4.4 Настройка АЦП

Сконфигурируем наш блок АЦП в соответствии с поставленной задачей:

1. Подаем тактирование на АЦП. Для этого устанавливанием бит ADC1EN регистра APB2ENR в «1».

RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;

2. Так как будем использовать DMA для записи результатов преобразования в память, разрешаем DMA для ADC1. Для этого устанавливаем бит DMA регистра CR2 в «1».

ADC1->CR2 |= ADC_CR2_DMA;

3. Включаем прерывание от АЦП. Для этого устанавливаем бит EOCIE регистра CR1 в «1».

ADC1->CR1 |= ADC_CR1_EOCIE;

4. Запускаем калибровку АЦП и ждем ее окончания. Для этого устанавливаем бит CAL регистра CR2 в «1» и ждем его аппаратного сброса.

ADC1->CR2 |= ADC_CR2_CAL;

while (!(ADC1->CR2 & ADC_CR2_CAL)){};

5. Задаем источник запуска преобразования. В нашем случае это будет бит SWSTART. Для этого устанавливаем бит EXTSEL регистра CR2 в «1»

ADC1->CR2 |= ADC_CR2_EXTSEL;

6. Разрешаем запуск преобразования от внешнего источника. Для этого устанавливаем бит EXTTRIG регистра CR2 в «1».

ADC1->CR2 |= ADC_CR2_EXTTRIG;

7. Задаем время преобразования для каждого канала. Установим его равным 239,5 циклов. Для этого устанавливаем биты SMPх (где х - номер канала) регистра SMPR1 в «1».

ADC1->SMPR1 |= ADC_SMPR1_SMP0;

ADC1->SMPR1 |= ADC_SMPR1_SMP1;

ADC1->SMPR1 |= ADC_SMPR1_SMP2;

ADC1->SMPR1 |= ADC_SMPR1_SMP3;

ADC1->SMPR1 |= ADC_SMPR1_SMP4;

ADC1->SMPR1 |= ADC_SMPR1_SMP5;

ADC1->SMPR1 |= ADC_SMPR1_SMP6;

ADC1->SMPR1 |= ADC_SMPR1_SMP7;

8. Составляем таблицу каналов, для которых нужно производить преобразования. И задаем количество этих каналов. Для этого в биты SQх[4:0] регистра SQR3 записываем номера каналов, а в бит L регистра SQR1 количество этих каналов. Нулевой канал АЦП не задаем, так как по умолчанию в биты SQ1[4:0] записаны нули.

ADC1->SQR3 |= ADC_SQR3_SQ2_0;

ADC1->SQR3 |= ADC_SQR3_SQ3_1;

ADC1->SQR3 |= ADC_SQR3_SQ4_0;

ADC1->SQR3 |= ADC_SQR3_SQ4_1;

ADC1->SQR3 |= ADC_SQR3_SQ5_2;

ADC1->SQR3 |= ADC_SQR3_SQ6_0;

ADC1->SQR3 |= ADC_SQR3_SQ6_2;

ADC1->SQR3 |= ADC_SQR3_SQ7_1;

ADC1->SQR3 |= ADC_SQR3_SQ7_2;

ADC1->SQR3 |= ADC_SQR3_SQ8_0;

ADC1->SQR3 |= ADC_SQR3_SQ8_1;

ADC1->SQR3 |= ADC_SQR3_SQ8_2;

ADC1->SQR1 |= ADC_SQR1_L_3;

9. Включаем АЦП. Для этого в бит ADON регистра CR2 записываем «1».

ADC1->CR2 |= ADC_CR2_ADON;

2.4.5 Обработчик прерываний АЦП

По окончанию преобразования каналов регулярной группы срабатывает прерывание АЦП, по которому нужно собрать и отправить UDP пакет. Однако, минимальный размер пакета по умолчанию равняется 1492 байта, из которых (не считая 28 байт заголовков) фактические данные буду нести только 16 байт (8 каналов по 16 бит). В этих условия можно не уложиться в пропускную способность сети. Чтобы избежать этого, будем собирать 80 результатов преобразований регулярной группы, и отправлять 1280 байт фактической информации.

Реализация в программном коде:

void ADC1_2_IRQHandler (void)

{

schetchik = schetchik + 1

if (schetchik = 80)

{

schetchik = 0

struct udp_pcb *upcb;

struct pbuf *p;

struct ip_addr DestIPaddr;

unsigned char tdata[1280] = BuffTxd[1280];

char *data = tdata;

upcb = udp_new();

IP4_ADDR( &DestIPaddr, DEST_IP_ADDR0, DEST_IP_ADDR1, DEST_IP_ADDR2, DEST_IP_ADDR3 );

udp_connect(upcb, &DestIPaddr, UDP_SERVER_PORT);

p = pbuf_alloc(PBUF_TRANSPORT,strlen((char*)data), PBUF_POOL);

pbuf_take(p, (char*)data, strlen((char*)data));

udp_send(upcb, p);

udp_disconnect(upcb);

pbuf_free(p);

}

}

2.5 Прямой доступ к памяти

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

Благодаря контроллеру DMA данные могут быть быстро перемещены, без каких либо действий ЦПУ, что сэкономит его ресурсы для других операций. Получается, что в микроконтроллере помимо центрального процессорного устройства, которое работает с памятью и периферийными устройствами, имеется контроллер DMA, который по заданию ЦПУ может перемещать данные от куда-то. Функциональная схема работы контроллера ПДП представлена на рисунке 27.


Подобные документы

  • Разработка микропроцессорной системы управления технологическим объектом. Выбор и расчет элементов системы, разработка ее программного обеспечения. Составление структурных, функциональных и принципиальных схем микроконтроллеров семейства MCS-51.

    курсовая работа [579,0 K], добавлен 20.09.2012

  • Рассмотрение аппаратных принципов построения устройств микропроцессорной техники и их программного обеспечения. Структурная схема микропроцессора К1821ВМ85А. Карта распределения адресного пространства памяти. Расчет потребляемой устройством мощности.

    курсовая работа [2,4 M], добавлен 26.11.2012

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

    курсовая работа [822,8 K], добавлен 08.02.2014

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

    курсовая работа [3,3 M], добавлен 26.06.2016

  • Выбор программного обеспечения. Построение функциональной модели. Тестирование программного описания автомата. Проектирование общей схемы сборки проекта из отдельных фрагментов. Нормы затрат на проектирование и внедрение микропроцессорной системы.

    дипломная работа [348,1 K], добавлен 05.05.2015

  • Методы реализации цифровых фильтров сжатия и их сравнение. Разработка модуля сжатия сложных сигналов. Разработка структурной схемы модуля и выбор элементной базы. Анализ работы и оценка быстродействия. Программирование и конфигурирование микросхем.

    дипломная работа [5,7 M], добавлен 07.07.2012

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

    курсовая работа [1,1 M], добавлен 27.05.2013

  • Обзор генераторов сигналов. Структурная схема и элементная база устройства. Разработка печатной платы модуля для изучения генератора сигналов на базе прямого цифрового синтеза. Выбор технологии производства. Конструкторский расчет; алгоритм программы.

    дипломная работа [1,7 M], добавлен 25.04.2015

  • Аппаратные принципы построения устройств микропроцессорной техники и приобретение практических навыков по разработке микропроцессорных систем. Техническая характеристика микропроцессора ATmega и анализ микросхемы памяти. Схема микропроцессорной системы.

    курсовая работа [1,6 M], добавлен 19.11.2011

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

    курсовая работа [37,0 K], добавлен 12.05.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.