Устройство дистанционного измерения параметров аналоговых сигналов

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

Устройство дистанционного измерения параметров аналоговых сигналов

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

"ИЖЕВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ М.Т. КАЛАШНИКОВА"

Кафедра "Мехатронные системы"




Курсовая работа

по направлению 220100.62

"Системный анализ и управление"

Устройство дистанционного измерения параметров аналоговых сигналов


Разработал студент гр.8-05-3

Б.П. Лазарев

Руководитель проекта

П.В. Лекомцев




Ижевск - 2013

Техническое задание на выполнение выпускной квалификационной работы

 

студенту Лазареву Борису Павловичу

1.      Тема работы: "Устройство дистанционного измерения параметров аналоговых сигналов".

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

2.1 Канал связи:

.1.1 Тип - беспроводной;

.1.2 Частота - 2,4 ГГц;

.1.3 Дальность передачи на открытом пространстве - до 15 м;

.1.4 Соответствие стандарту IEEE 802.15.1;

.2 Микропроцессорное устройство измерения параметров аналоговых сигналов:

.2.1 Габариты: не более чем 100х70х50 (мм);

.2.2 Напряжение питания: +5В пост. тока;

.2.3 Тип управления: от ЭВМ;

.2.4 Интерфейс связи с ЭВМ: Bluetooth 2.0, 3.0;

.2.5 Диапазон измеряемых напряжений: 0…3.3В;

.2.6 Частота измеряемого сигнала: макс.100 КГц;

.2.7 Количество измерительных каналов - 1;

2.3 Электронно-вычислительная машина:

2.3.1 Наличие установленных программных средств: ОС Windows NT; 2.3.2 Интерфейс Bluetooth 2.0 (3.0) для подключения периферийных устройств;

.3.3 Процессор: 1 ГГц IA-32 processor;

.3.4 Оперативная память (RAM): 2 Гб;

.3.5 Объем энергонезависимой памяти: 80 Гб;

.        Перечень подлежащих разработке конструкторско-технологических, расчетных и программных решений:

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

3.2    Разработка алгоритма и программы микропроцессорного устройства измерения параметров аналоговых сигналов и передачи измеренных величин по беспроводному каналу связи на ЭВМ;

.3      Разработка алгоритма и программы приема, анализа и обработки данных на ЭВМ;

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

.1      Схема электрическая принципиальная (А3);

4.2    Плата печатная (А3);

.3      Сборочный чертеж микропроцессорного устройства (А3);

5.      Дата выдачи задания: "___" __________ 2013 г.

Плановый срок сдачи законченного проекта: "___" __________ 2013 г.

программное обеспечение микропроцессорное устройство

Содержание

 

Введение

1. Разработка структурной схемы

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

2.1 Выбор микроконтроллера

2.2 Выбор микросхемы и интерфейса связи

2.3 Расчет минимальной ширины печатных проводников

2.4 Разработка печатной платы

2.5 Разработка сборочного чертежа

3. Разработка программного обеспечения для устройства измерения параметров аналоговых сигналов

3.1 Разработка программного обеспечения для управления устройством измерения параметров аналоговых сигналов для микроконтроллера

Разработка алгоритма

Выбор параметров работы периферийных модулей микроконтроллера

Разработка программы

3.2 Разработка программного обеспечения для управления устройством измерения параметров аналоговых сигналов с ЭВМ

Разработка алгоритма

Разработка программы

4. Результаты вычислительных экспериментов

Заключение

Список литературы

Приложения

Введение

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

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

Цель выпускной квалификационной работы это разработка микропроцессорного устройства измерения параметров аналоговых сигналов, создание конструкторской документации, соответствующей требованиям ГОСТ и ЕСКД, а так же получение практических навыков разработки устройства в программе Altium Designer.

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

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

Для разработки программы для микроконтроллера STM32F407VGT6 использовался пакет разработки MDK-ARM с интегрированной средой разработки CoIDE CooCox и набором компиляторов, а также официальный набор библиотек периферии для данного микроконтроллера.

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

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

В главе 4 представлены разработка алгоритмов и программ управления устройством измерения параметров аналоговых сигналов для микропроцессора и ЭВМ.

Пояснительная записка к выпускной квалификационной работе "Разработка устройства дистанционного измерения параметров аналоговых сигналов" состоит из 44 страниц машинописного текста, содержит 11 рисунков, 5 приложений, CD-диск. Список литературы состоит из 4 библиографических источников.

1. Разработка структурной схемы


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

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

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

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

Рисунок 1.1 - Схема структурная устройства дистанционного измерения параметров аналоговых сигналов

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


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

2.1 Выбор микроконтроллера


В качестве основы устройства был выбран микроконтроллер STM32F407VGT6 фирмы STMicroelectronics. Выбор был сделан в пользу этого микроконтроллера в виду достаточно низкой стоимости, при большой максимальной скорости работы ядра (max.168 MHz), большого количества периферийных модулей, необходимых для реализации устройства измерения параметров аналоговых сигналов (модули УАПП, ПДП, таймеры, АЦП, ЦАП). Технические характеристики данного микроконтроллера представлены в приложении Д.

2.2 Выбор микросхемы и интерфейса связи


В качестве интерфейса связи с ЭВМ в данной работе был выбран интерфейс UART (универсальный асинхронный приёмо-передатчик), так как для передачи данных используется Bluetooth модуль, который в свою очередь использует интерфейс UART. Плюсами выбора именно этого вида интерфейса связи ПК и микроконтроллерного устройства являются простота, возможность полнодуплексной передачи данных, и достаточная скорость передачи данных (max. до 115200 кбод).

2.3 Расчет минимальной ширины печатных проводников


Габариты разработанной печатной платы составляют 80*60мм.

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

 (2.3.1)

 (2.3.2)

 (2.3.3)

где b - ширина дорожки печатного проводника,

ρ - удельная теплоемкость меди;

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

q - плотность меди;

h - глубина дорожки печатного проводника;

∆t - оптимальный интервал температур для работы платы;

I - ток, на который рассчитана дорожка печатного проводника;

;

;

.

 (2.3.4)

где t₂ - максимальная температура, при которой может работать плата;

t₁ - комнатная температура.

 =60°-20°=40°С

Расчет сигнальной цепи по максимальному току микроконтроллера.

При I=100мА .

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

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

2.4 Разработка печатной платы


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

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

Толщина ПП должна соответствовать одному из чисел ряда: 0.8; 1.0; 1.5; 2.0 в зависимости от площади ПП.

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

Диаметр монтажных отверстий, диаметры выводов микросхем колеблются в пределах 0,8…1,2 мм, а диаметры выводов резисторов колеблются около 0,66 мм. Для упрощения процесса изготовления, монтажные отверстия на плате имеют диаметр 0,8 и 1,2 мм. Шаг координатной сетки составляет 1,27 мм.

Паять элементы припоем ПОС-61. Материал платы стеклотекстолит фольгированный СТЭФ 2-1,5-50 по ГОСТ 10316-86.

2.5 Разработка сборочного чертежа


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

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

) в соответствии со схемой деления изделия на составные части присвоить обозначение сборочной единице и ее элементам по ГОСТ 2.201-68;

) проставить необходимые размеры согласно требованиям ГОСТ 2.109-73;

) заполнить спецификацию, выдерживая все требования ГОСТ 2.108-68;

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

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

3. Разработка программного обеспечения для устройства измерения параметров аналоговых сигналов


Разработка программного обеспечения для устройства измерения параметров аналоговых сигналов включает в себя разработку двух алгоритмов и, соответственно, двух программ управления устройством - программы для микроконтроллера и программы для ЭВМ.

 

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


Программа для микроконтроллера STM32F407VGT6 (так называемая программа "нижнего уровня") предназначена для организации взаимосвязанной работы различных периферийных модулей микроконтроллера (МК), для осуществления приёма/передачи данных между МК и ЭВМ, для непосредственного изменения параметров работы устройства измерения параметров аналоговых сигналов.

Данная программа разработана в программном обеспечении CoIDE CooCox, на языке программирования С++. В программе использована библиотека стандартной периферии (Standard Peripheral Library) предоставленная производителем (ST Microelectronics) микроконтроллера STM32F4o7VGT6 в свободном доступе на сайте производителя.

 

Разработка алгоритма

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

.        Порты ввода/вывода микроконтроллера, для осуществления передачи и приёма данных между микроконтроллером и устройством измерения аналоговых сигналов;

2.      Аналогово-цифровой преобразователь ADC для считывания величины аналогового сигнала.

.        Таймеры для управления частотой работы ADC

.        Контроллер прямого доступа к памяти DMA, для различных операций с получением, хранением и передачей данных.

.        Модуль UART (УАПП - универсальный асинхронный приёмо-передатчик) для передачи и приёма данных.

Более подробное описание настройки параметров используемых периферийных модулей микроконтроллера приведены в разделе 3.1.3 Схема алгоритма работы устройства представлена на рисунке 3.1.1.1.

Рисунок 3.1.1.1 - Схема алгоритма работы устройства дистанционного измерения параметров аналоговых сигналов

Рисунок 3.1.1.1 - Продолжение

Выбор параметров работы периферийных модулей микроконтроллера

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

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

Таким образом, за время равное 0.1 секунды устройство должно формировать кадр осциллограммы (состоящий из 250 измерений) и передать результаты измерений на ПК.

Максимальная частота изменения аналогового сигнала ограничена техническим заданием и равняется 100кГц. Следовательно, для корректной работы устройства частота производимых измерений, в этом случае, не должна быть строго большей 200кГЦ (согласно теореме Котельникова, если аналоговый сигнал <#"670180.files/image014.gif">имеет финитный (ограниченный по ширине) спектр <#"670180.files/image015.gif">

Рисунок 3.2.1.1 - Схема алгоритма программы приёма/передачи данных между цифровой измерительной системой и ПК

Рисунок 3.2.1.1 - Продолжение

Разработка программы

В соответствии с техническим заданием и схемой алгоритма была разработана программа приёма/передачи данных между устройством дистанционного измерения параметров аналоговых сигналов и ПК. Программа представляет собой 1 окно с набором кнопок для установления соединения с устройством измерения и настройки параметров его работы (для настройки частоты дискретизации измерительной системы), а так же набор кнопок для настройки частоты генерируемого сигнала. На рисунках 3.2.2.1 и 3.2.2.2 представлены окно программы и окно справки.

 

Рисунок 3.2.2.1 - Окно программы приёма/передачи данных между устройством дистанционного измерения параметров аналоговых сигналов и ПК

Рисунок 3.2.2.2 - Окно справки программы приёма/передачи данных между устройством дистанционного измерения параметров аналоговых сигналов и ПК

Окно программы содержит 3 блока кнопок:

. Блок управления включением/выключением канала связи и отображением принятых данных ("Work settings”);

. Блок управления частотой дискретизации ЦИС ("Oscilloscope settings”);

. Блок управления частой генерируемого сигнала ("Generator settings”).

Текст программы представлен в приложении Б.

4. Результаты вычислительных экспериментов


После разработки алгоритмов и программ для микроконтроллера и ПК с целью подтверждения корректности работы устройства были проведены вычислительные эксперименты. В качестве генератора исследуемого сигнала, для простоты отладки, используется сигнал, генерируемый цифро-аналоговым преобразователем входящим в состав микроконтроллера, следовательно для проведения вычислительного эксперимента необходимо вход аналого-цифрового преобразователя соединить с выходом цифро-аналогового преобразователя. Результаты вычислительных экспериментов (работы программы по приёму/передаче данных между устройством дистанционного измерения параметров аналоговых сигналов и ПК) 1,2 и 3 представлены на рисунках 4.1,4.2 и 4.3 соответственно.

Рисунок 4.1 - Программа приёма/передачи данных между устройством дистанционного измерения параметров аналоговых сигналов и ПК

Условия проведения вычислительного эксперимента: частота дискретизации устройства равна 60кГц, горизонтальная развёртка - 0.00041667сек/дел. Частота исследуемого сигнала - 1кГц.

Рисунок 4.2 - Программа приёма/передачи данных между устройством дистанционного измерения параметров аналоговых сигналов и ПК

Условия проведения вычислительного эксперимента: частота дискретизации устройства равна 10кГц, горизонтальная развёртка - 0.0025сек/дел. Частота генерируемого сигнала - 1кГц.

Рисунок 4.3 - Программа приёма/передачи данных между устройством дистанционного измерения параметров аналоговых сигналов и ПК

Заключение


В результате выполнения выпускной квалификационной работы на тему: "Устройство дистанционного измерения параметров аналоговых сигналов" было разработано микропроцессорное устройство дистанционного измерения параметров аналоговых сигналов, с передачей данных измерений по каналу связи Bluetooth, были приобретены навыки в создании конструкторской документации, соответствующей требованиям ГОСТ и ЕСКД, были получены практические навыки разработки устройства в программе Altium Designer. Параметры разработанного устройства:

Диапазон измеряемых напряжений: 0-3.3В;

-       Частота сигнала на канал: макс.100 КГц;

-       Количество каналов - 1;

-       Напряжение питания микропроцессорного устройства - 5 В;

-       Потребляемая мощность устройства - не более 2х ватт;

Габариты разрабатываемого устройства - 52,5х46,5мм.

Были приобретены навыки работы в ПО CoIDE CooCox при написании программы для микроконтроллера STM32F407VGT6.

При выполнении курсовой работы были разработаны:

-       конструкторская документация микропроцессорного устройства измерения аналоговых сигналов:

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

-       перечень элементов к схеме электрической принципиальной;

-       печатная плата;

-       сборочный чертеж;

-       спецификация к сборочному чертежу.

-       схема алгоритма работы микропроцессорного устройства измерения аналоговых сигналов;

-       программа работы микропроцессорного устройства измерения аналоговых сигналов.

Список литературы


1.      Горячев Н.В.: Типовой маршрут проектирования печатной платы и структура проекта в САПР. Altium Designer - Пенза: "ПГУ", 2011. - 300с.

2.      Сабунин А.Е.: Altium Designer. Новые решения в проектировании электронных устройств - Москва: ”СОЛОН-ПРЕСС”, 2009. - 425с.

.        Суходольский В.Ю.: Altium Designer. Проектирование функциональных узлов РЭС на печатных платах - Санкт-Петербург: "БХВ-Петербург", 2010. - 500с.

.        Характеристики микроконтроллера STM32F407VGT6: [Электронный ресурс] URL: http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN11/PF252140 (Дата обращения: 18.04.2013).

Приложения


Приложение А

 

Конструкторская документация

В ходе курсовой работы была разработана конструкторская документация:

А.1. Схема электрическая принципиальная МС427110.001 Э3 (А3).

А.2. Перечень элементов схемы электрической принципиальной МС741000.001 ПЭ.

А.3. Чертеж печатной платы устройства управления МС427110.002 (А3).

А.4. Сборочный чертеж устройства управления МС427110.003 СБ (А3).

А.5. Спецификация устройства управления МС427110.003 СП.

А.6 CD-диск МС427110.004

Приложение Б

 

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

Текст программы управления устройством измерения параметров аналоговых сигналов для микроконтроллера представлен на рисунке ПБ.1.

#include "stm32f4xx. h"_InitTypeDef gpio_struct;_InitTypeDef usart_struct;_TimeBaseInitTypeDef timer2_base;_TimeBaseInitTypeDef timer3_base;_TimeBaseInitTypeDef timer6_base;_InitTypeDef adc1_init_struct;_InitTypeDef adc2_init_struct;_CommonInitTypeDef adc_common_init_struct;_InitTypeDef dac_struct;_InitTypeDef dma2_struct;_InitTypeDef dma1_struct;_ClocksTypeDef SYSCLK_Frequency;HSEStartUpStatus;_t sync1 = 0;_t sync2 = 0;_t i = 0;

uint8_t flag = 0;_t counter = 0;

uint8_t buffer [250];_t recived_data [2];_t sin [16] = {127, 176, 218, 245, 255, 245, 218, 176, 127, 79, 37, 10, 0,10, 37, 79};

const uint8_t Escalator8bit [6] = {0x0, 0x33, 0x66, 0x99, 0xCC, 0xFF};

void RCC_Configuration (void)

{ RCC_HSEConfig (RCC_HSE_ON);= RCC_WaitForHSEStartUp ();

if (HSEStartUpStatus == SUCCESS)

{_PrefetchBufferCmd (ENABLE);_SetLatency (FLASH_Latency_5);_HCLKConfig (RCC_SYSCLK_Div1);_PCLK2Config (RCC_HCLK_Div2);_PCLK1Config (RCC_HCLK_Div4);

#define PLL_M 8

#define PLL_N 336

#define PLL_P 2

#define PLL_Q 7_PLLConfig (RCC_PLLSource_HSE, PLL_M, PLL_N, PLL_P, PLL_Q);_PLLCmd (ENABLE);

while (RCC_GetFlagStatus (RCC_FLAG_PLLRDY) == RESET) { }_SYSCLKConfig (RCC_SYSCLKSource_PLLCLK);

while (RCC_GetSYSCLKSource ()! = 0x08) { }

Рисунок ПБ.1 - Текст программы(); }_GetClocksFreq (&SYSCLK_Frequency);_AHB1PeriphClockCmd (RCC_AHB1Periph_DMA1|RCC_AHB1Periph_DMA2|RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOC, ENABLE); RCC_APB1PeriphClockCmd (RCC_APB1Periph_DAC|RCC_APB1Periph_TIM2|RCC_APB1Periph_TIM3|RCC_APB1Periph_TIM6|RCC_APB1Periph_USART3, ENABLE);_APB2PeriphClockCmd (RCC_APB2Periph_ADC1, ENABLE); }

void GPIO_Configuration (void)

{ gpio_struct. GPIO_Pin = GPIO_Pin_10;_struct. GPIO_Speed = GPIO_Speed_100MHz;_struct. GPIO_OType = GPIO_OType_PP;_struct. GPIO_PuPd = GPIO_PuPd_UP;_struct. GPIO_Mode = GPIO_Mode_AF;_Init (GPIOC, &gpio_struct);_PinAFConfig (GPIOC, GPIO_PinSource10, GPIO_AF_USART3);_struct. GPIO_Pin = GPIO_Pin_11;_struct. GPIO_Mode = GPIO_Mode_AF;_Init (GPIOC, &gpio_struct);_PinAFConfig (GPIOC, GPIO_PinSource11, GPIO_AF_USART3);_struct. GPIO_Pin = GPIO_Pin_0;_struct. GPIO_Mode = GPIO_Mode_AN;

gpio_struct. GPIO_PuPd = GPIO_PuPd_NOPULL;_Init (GPIOA, &gpio_struct);_struct. GPIO_Pin = GPIO_Pin_1;_struct. GPIO_Mode = GPIO_Mode_AN;

gpio_struct. GPIO_PuPd = GPIO_PuPd_NOPULL;_Init (GPIOA, &gpio_struct);_struct. GPIO_Pin = GPIO_Pin_5;_struct. GPIO_Mode = GPIO_Mode_AN;

gpio_struct. GPIO_PuPd = GPIO_PuPd_NOPULL;_Init (GPIOA, &gpio_struct); }

void Timer_Snapshot_Configuration (void)

{timer3_base. TIM_Period = 48000-1;_base. TIM_Prescaler = 100-1;_base. TIM_ClockDivision = 0;_base. TIM_CounterMode = TIM_CounterMode_Up;_TimeBaseInit (TIM3, &timer3_base);_EnableIRQ (TIM3_IRQn);_ITConfig (TIM3, TIM_IT_Update, ENABLE);_Cmd (TIM3, ENABLE); }

void Timer_Adc_Configuration (uint32_t period)

{timer2_base. TIM_Prescaler = 0;_base. TIM_Period = period-1;_base. TIM_ClockDivision = 0;_base. TIM_CounterMode = TIM_CounterMode_Up;_TimeBaseInit (TIM2, &timer2_base); }

void Timer_Dac_Configuration (uint32_t period)

{timer6_base. TIM_Prescaler = 0;_base. TIM_Period = period-1;_base. TIM_ClockDivision = 0;_base. TIM_CounterMode = TIM_CounterMode_Up;_TimeBaseInit (TIM6, &timer6_base);_SelectOutputTrigger (TIM6, TIM_TRGOSource_Update); TIM_Cmd (TIM6, ENABLE); }

void USART3_Configuration (void)

{usart_struct. USART_BaudRate = 115200;_struct. USART_WordLength = USART_WordLength_8b;_struct. USART_StopBits = USART_StopBits_1;_struct. USART_Parity = USART_Parity_No;_struct. USART_HardwareFlowControl = USART_HardwareFlowControl_None;_struct. USART_Mode = USART_Mode_Rx | USART_Mode_Tx;_Init (USART3, &usart_struct);_DMACmd (USART3, USART_DMAReq_Tx, ENABLE);_DMACmd (USART3, USART_DMAReq_Rx, ENABLE);_Cmd (USART3, ENABLE); }

Рисунок ПБ.1 - Продолжение

void DMA2_Stream0_Chanel0_Configuration (void)

{DMA_DeInit (DMA2_Stream0);_struct. DMA_Channel = DMA_Channel_0;_struct. DMA_PeripheralBaseAddr = (uint32_t) (&ADC1->DR);_struct. DMA_Memory0BaseAddr = (uint32_t) buffer;_struct. DMA_DIR = DMA_DIR_PeripheralToMemory;_struct. DMA_BufferSize = sizeof (buffer);_struct. DMA_PeripheralInc = DMA_PeripheralInc_Disable;_struct. DMA_MemoryInc = DMA_MemoryInc_Enable;_struct. DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;_struct. DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;_struct. DMA_Mode = DMA_Mode_Circular;_struct. DMA_Priority = DMA_Priority_High;_struct. DMA_FIFOMode = DMA_FIFOMode_Disable;_struct. DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;_struct. DMA_MemoryBurst = DMA_MemoryBurst_Single;_struct. DMA_PeripheralBurst = DMA_PeripheralBurst_Single;_Init (DMA2_Stream0, &dma2_struct);_Cmd (DMA2_Stream0, ENABLE);

}

void ADC1_Configuration (void)

{ADC_DeInit ();_common_init_struct. ADC_Mode = ADC_Mode_Independent; // _common_init_struct. ADC_Prescaler = ADC_Prescaler_Div2;_CommonInit (&adc_common_init_struct);_init_struct. ADC_Resolution = ADC_Resolution_8b;_init_struct. ADC_ScanConvMode = DISABLE;_init_struct. ADC_ContinuousConvMode = DISABLE;_init_struct. ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_Rising;_init_struct. ADC_ExternalTrigConv = ADC_ExternalTrigConv_T2_TRGO;_init_struct. ADC_DataAlign = ADC_DataAlign_Right;_init_struct. ADC_NbrOfConversion = 0;_Init (ADC1, &adc1_init_struct); ADC_RegularChannelConfig (ADC1, ADC_Channel_0, 1, ADC_SampleTime_3Cycles);_EnableIRQ (ADC_IRQn);_ITConfig (ADC1, ADC_IT_EOC, ENABLE);_Cmd (ADC1, ENABLE); }

void DMA1_Stream6_Chanel7_Configuration (void)

{DMA_DeInit (DMA1_Stream6);_struct. DMA_Channel = DMA_Channel_7;_struct. DMA_PeripheralBaseAddr = (uint32_t) & (DAC->DHR8R2);_struct. DMA_Memory0BaseAddr = (uint32_t) sin; // Escalator8bit;_struct. DMA_DIR = DMA_DIR_MemoryToPeripheral;_struct. DMA_BufferSize = sizeof (sin); // ) Escalator8bit;_struct. DMA_PeripheralInc = DMA_PeripheralInc_Disable;_struct. DMA_MemoryInc = DMA_MemoryInc_Enable;_struct. DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;_struct. DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;_struct. DMA_Mode = DMA_Mode_Circular;_struct. DMA_Priority = DMA_Priority_High;_struct. DMA_FIFOMode = DMA_FIFOMode_Disable;_struct. DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;_struct. DMA_MemoryBurst = DMA_MemoryBurst_Single;_struct. DMA_PeripheralBurst = DMA_PeripheralBurst_Single;_Init (DMA1_Stream6, &dma1_struct);_Cmd (DMA1_Stream6, ENABLE); }

void DAC_Chanel2_Configuration (void)

{dac_struct. DAC_Trigger = DAC_Trigger_T6_TRGO;_struct. DAC_WaveGeneration = DAC_WaveGeneration_None;_struct. DAC_OutputBuffer = DAC_OutputBuffer_Disable;_Init (DAC_Channel_2, &dac_struct);_Cmd (DAC_Channel_2, ENABLE);_DMACmd (DAC_Channel_2, ENABLE); }

Рисунок ПБ.1 - Продолжение

void DMA1_Stream3_Chanel4_Configuration (void)

{DMA_DeInit (DMA1_Stream3);_struct. DMA_Channel = DMA_Channel_4;_struct. DMA_PeripheralBaseAddr = (uint32_t) (&USART3->DR);_struct. DMA_Memory0BaseAddr = (uint32_t) buffer;_struct. DMA_DIR = DMA_DIR_MemoryToPeripheral;_struct. DMA_BufferSize = sizeof (buffer);_struct. DMA_PeripheralInc = DMA_PeripheralInc_Disable;_struct. DMA_MemoryInc = DMA_MemoryInc_Enable;_struct. DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;_struct. DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;_struct. DMA_Mode = DMA_Mode_Normal;_struct. DMA_Priority = DMA_Priority_High;_struct. DMA_FIFOMode = DMA_FIFOMode_Disable;_struct. DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;_struct. DMA_MemoryBurst = DMA_MemoryBurst_Single;_struct. DMA_PeripheralBurst = DMA_PeripheralBurst_Single;_Init (DMA1_Stream3, &dma1_struct);_Cmd (DMA1_Stream3, ENABLE); }

void DMA1_Stream1_Chanel4_Configuration (void)

{DMA_DeInit (DMA1_Stream1);_struct. DMA_Channel = DMA_Channel_4;_struct. DMA_PeripheralBaseAddr = (uint32_t) (&USART3->DR);_struct. DMA_Memory0BaseAddr = (uint32_t) recived_data;_struct. DMA_DIR = DMA_DIR_PeripheralToMemory;_struct. DMA_BufferSize = sizeof (recived_data);_struct. DMA_PeripheralInc = DMA_PeripheralInc_Disable;_struct. DMA_MemoryInc = DMA_MemoryInc_Enable;_struct. DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;_struct. DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;_struct. DMA_Mode = DMA_Mode_Circular;_struct. DMA_Priority = DMA_Priority_High;_struct. DMA_FIFOMode = DMA_FIFOMode_Disable;_struct. DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;_struct. DMA_MemoryBurst = DMA_MemoryBurst_Single;_struct. DMA_PeripheralBurst = DMA_PeripheralBurst_Single;_Init (DMA1_Stream1, &dma1_struct);_EnableIRQ (DMA1_Stream1_IRQn);_ITConfig (DMA1_Stream1, DMA_IT_TC, ENABLE);_Cmd (DMA1_Stream1, ENABLE); }

int main (void)

{RCC_Configuration ();_Configuration ();_Snapshot_Configuration ();_Adc_Configuration (9600);_SelectOutputTrigger (TIM2, TIM_TRGOSource_Update);_Dac_Configuration (3000);_Configuration ();_Stream1_Chanel4_Configuration ();_Configuration ();_Stream6_Chanel7_Configuration ();_Chanel2_Configuration ();

while (1) {} }

void DMA1_Stream1_IRQHandler (void)

{

if (DMA_GetITStatus (DMA1_Stream1, DMA_IT_TCIF1)! = RESET)

{ switch (recived_data [0])

{

case ('1'):

{

switch (recived_data [1])

{case ('1'):

{_RegularChannelConfig (ADC1, ADC_Channel_0, 1, ADC_SampleTime_3Cycles); // total conv. time = 3+8 = 11cycle at 36MHz (ADC freq.) = 0.305 uS

break; // 3 278 688 Hz

}

Рисунок ПБ.1 - Продолжение

case ('2'):

{_RegularChannelConfig (ADC1, ADC_Channel_0, 1, ADC_SampleTime_15Cycles); // total conv. time = 15+8 = 23cycle at 36MHz (ADC freq.) = 0.638 uS

break;

}

case ('3'):

{_RegularChannelConfig (ADC1, ADC_Channel_0, 1, ADC_SampleTime_28Cycles); // total conv. time = 28+8 = 36cycle at 36MHz (ADC freq.) = 1 uS

break;

}

case ('4'):

{_RegularChannelConfig (ADC1, ADC_Channel_0, 1, ADC_SampleTime_56Cycles); // total conv. time = 56+8 = 64cycle at 36MHz (ADC freq.) = 1.7 uS

break;

}

case ('5'):

{_RegularChannelConfig (ADC1, ADC_Channel_0, 1, ADC_SampleTime_84Cycles); // total conv. time = 84+8 = 92cycle at 36MHz (ADC freq.) = 2.5 uS

break;

}

case ('6'):

{_RegularChannelConfig (ADC1, ADC_Channel_0, 1, ADC_SampleTime_112Cycles); // total conv. time = 112+8 = 120cycle at 36MHz (ADC freq.) = 3.33 uS

break;

}

case ('7'):

{_RegularChannelConfig (ADC1, ADC_Channel_0, 1, ADC_SampleTime_144Cycles); // total conv. time = 144+8 = 152cycle at 36MHz (ADC freq.) = 4.2 uS

break;

}

case ('8'):

{_RegularChannelConfig (ADC1, ADC_Channel_0, 1, ADC_SampleTime_480Cycles); // total conv. time = 480+8 = 488cycle at 36MHz (ADC freq.) = 13.5 uS

break; // 74 074 Hz

}

}

}

break;

case ('2'): // подстройка с верхнего уровня периода таймера генератора

{

switch (recived_data [1])

{

case ('1'):

{ // для режима Triger посмотреть задержку (порядка 1 цикла?)

Timer_Dac_Configuration (40);

}

break;

case ('2'):

{_Dac_Configuration (50);

}

break;

case ('3'):

{_Dac_Configuration (125);

}

break;

Рисунок ПБ.1 - Продолжение

case ('4'):

{_Dac_Configuration (250);

}

break;

case ('5'):

{_Dac_Configuration (500);

}

break;

case ('6'):

{_Dac_Configuration (1000);

}

break;

case ('7'):

{_Dac_Configuration (2000);

}

break;

case ('8'):

{_Dac_Configuration (3000);

}

break;

}

}

break;

case ('3'): // подстройка с верхнего уровня частоты старта измерений

{

switch (recived_data [1])

{

case ('1'):

{_Adc_Configuration (64);

}

break;

case ('2'):

{_Adc_Configuration (80);

}

break;

case ('3'):

{_Adc_Configuration (200);

}

break;

case ('4'):

{_Adc_Configuration (400);

break;

case ('5'):

{_Adc_Configuration (800);

break;

case ('6'):

{_Adc_Configuration (1600); }

break;

case ('7'):

{Timer_Adc_Configuration (3200);

}

break;

Рисунок ПБ.1 - Продолжение

case ('8'):

{_Adc_Configuration (4800);

}

break; }}break; }_ClearITPendingBit (DMA1_Stream1, DMA_IT_TCIF1);

}

}

void ADC_IRQHandler (void)

{

if (ADC_GetITStatus (ADC1, ADC_IT_EOC)! = RESET)

{

if (i==0)

{= ADC_GetConversionValue (ADC1);++;

}

else if (i==1)

{= ADC_GetConversionValue (ADC1);=0;

if (sync2 == 50 && sync2 > sync1)

{_DisableIRQ (ADC_IRQn);_ITConfig (ADC1, ADC_IT_EOC, DISABLE);_Stream0_Chanel0_Configuration ();_DMARequestAfterLastTransferCmd (ADC1, ENABLE);_DMACmd (ADC1, ENABLE);= 1;

}= 0;= 0;

}_ClearITPendingBit (ADC1, ADC_IT_EOC); }}

void TIM3_IRQHandler (void)

{

if (TIM_GetITStatus (TIM3, TIM_IT_Update)! = RESET)

{= 0;

if (flag ==1)

{ DMA2_Stream0_Chanel0_Configuration (); }_SoftwareStartConv (ADC1);_EnableIRQ (TIM2_IRQn);_ITConfig (TIM2, TIM_IT_Update, ENABLE);_Cmd (TIM2, ENABLE);_ClearITPendingBit (TIM3, TIM_IT_Update); }}

void TIM2_IRQHandler (void)

{

if (TIM_GetITStatus (TIM2, TIM_IT_Update)! = RESET)

{

if (counter == 251)

{ TIM_Cmd (TIM2, DISABLE);_Cmd (DMA2_Stream0, DISABLE);_Stream3_Chanel4_Configuration ();

}++;_ClearITPendingBit (TIM2, TIM_IT_Update); }}

Рисунок ПБ.1 - Продолжение

Текст программы для управления устройством измерения параметров аналоговых сигналов с ЭВМ. Текст программы представлен на рисунке ПБ.2.

using System;

using System. Collections. Generic;System.componentModel;System. Data;System. Drawing;System. Linq;System. Text;System. Windows. Forms;System. IO. Ports;ZedGraph;bluetooth

{partial class View: Form

{int SnapshotLenght = 250;double Vref = 3.3;ADC_Period;T3_Period;V3_Freq;SecondPerDivision;Tgen_Period;Vgen_Freq;byte [] ByteArray = new byte [SnapshotLenght];double [] IntArray = new double [SnapshotLenght];str_Rx;port = new SerialPort ("COM18", 115200, Parity. None, 8, StopBits. One);View ()

{();_1_1. Enabled = false;_1_2. Enabled = false;_1_3. Enabled = false;_1_4. Enabled = false;_1_5. Enabled = false;_1_6. Enabled = false;_1_7. Enabled = false;_1_8. Enabled = false;

}void View_Load (object sender, EventArgs e)

{. ZoomEvent += new ZedGraphControl. ZoomEventHandler (zedGraph_ZoomEvent);

}void OpenSpButton_Click (object sender, EventArgs e)

{();

}void reDraw ()

{();();

}

Рисунок ПБ.2 - Текст программыvoid CloseSpButoon_Click (object sender, EventArgs e)

{();

}void closeButton_Click (object sender, EventArgs e)

{();

}zedGraph_ZoomEvent (ZedGraphControl sender, ZoomState oldState, ZoomState newState)

{pane = sender. GraphPane;(pane. XAxis. Scale. Min <= 0)

{. XAxis. Scale. Min = 0;

}(pane. XAxis. Scale. Max >= 12)

{. XAxis. Scale. Max = 12;

}(pane. YAxis. Scale. Min <= 0)

{. YAxis. Scale. Min = 0;

}(pane. YAxis. Scale. Max >= Vref + 2)

{. YAxis. Scale. Max = Vref + 2;

}

}void openSerialPort ()

{. ReadBufferSize = 250;. ReceivedBytesThreshold = 250;. DataReceived += new SerialDataReceivedEventHandler (DataReceivedHandler);. Open ();

}void DataReceivedHandler (object sender, SerialDataReceivedEventArgs e)

{sp = (SerialPort) sender;. Read (ByteArray, 0, ByteArray. Length);

}void sendStrToPort (string str1)

{. Write (str1);

}void closeSerialPort ()

{. Close ();

}void changeInterval ()

{(int i = 0; i < ByteArray. Length; i++)

{[i] = Convert. ToDouble (ByteArray [i]);[i] = ( (IntArray [i] / SnapshotLenght) * Vref); // входной интервал - [0; 255], выходной интервал - [0; 3.3]

}}string convertByteToStr ()

{str_Rx = null;(int i = 0; i < ByteArray. Length; i++)

{str_Rx += i + ")" + " " + Convert. ToString (IntArray [i]) +

Рисунок ПБ.2 - Продолжение. NewLine; }str_Rx; }void DrawGraph ()

{panel = zedGraph. GraphPanelist = new PointPairList ();. CurveList. Clear ();y = 0;(double x = 0; x < 10-0.04; x +=0.04, y += 1)

{. Add (x, IntArray [y]);

}myCurve = panel. AddCurve ("ADC", list, Color. Red, SymbolType. None);. AxisChange ();. Invalidate ();

}void timer1_Tick (object sender, EventArgs e)

{();

}void pause_Click (object sender, EventArgs e)

{. Stop ();

}void start_Click (object sender, EventArgs e)

{. Start ();

}void button_1_1_Click (object sender, EventArgs e)

{("11");_Period = 1.17; // *SnapshotLenght;. Text = Convert. ToString (ADC_Period);

}void button_1_2_Click (object sender, EventArgs e)

{("12");_Period = 1.67; // *SnapshotLenght;. Text = Convert. ToString (ADC_Period);

}void button_1_3_Click (object sender, EventArgs e)

{("13");_Period = 2.17; // *SnapshotLenght;. Text = Convert. ToString (ADC_Period);

}void button_1_4_Click (object sender, EventArgs e)

{("14");_Period = 3.417; // *SnapshotLenght;. Text = Convert. ToString (ADC_Period); }void button_1_5_Click (object sender, EventArgs e)

{("15");_Period = 4.5; // *SnapshotLenght;. Text = Convert. ToString (ADC_Period);

}void button_1_6_Click (object sender, EventArgs e)

{ sendStrToPort ("16");_Period = 5.67; // *SnapshotLenght;. Text = Convert. ToString (ADC_Period); }

Рисунок ПБ.2 - Продолжениеvoid button_1_7_Click (object sender, EventArgs e)

{("17");_Period = 7; // *SnapshotLenght;. Text = Convert. ToString (ADC_Period);

}void button_1_8_Click (object sender, EventArgs e)

{("18");_Period = 21; // *SnapshotLenght;. Text = Convert. ToString (ADC_Period);

}void button_2_1_Click (object sender, EventArgs e)

{("21");_Period = 13.34; // *SnapshotLenght;_Freq = 75;. Text = Convert. ToString (Vgen_Freq);. Text = Convert. ToString (Tgen_Period);

}void button_2_2_Click (object sender, EventArgs e)

{("22");_Period = 16.67; // *SnapshotLenght;_Freq = 60;. Text = Convert. ToString (Vgen_Freq);. Text = Convert. ToString (Tgen_Period);

}void button_2_3_Click (object sender, EventArgs e)

{("23");_Period = 41.67; // *SnapshotLenght;_Freq = 24;. Text = Convert. ToString (Vgen_Freq);. Text = Convert. ToString (Tgen_Period);

}void button_2_4_Click (object sender, EventArgs e)

{("24");_Period = 83.34; // *SnapshotLenght;_Freq = 12;. Text = Convert. ToString (Vgen_Freq);. Text = Convert. ToString (Tgen_Period);

}void button_2_5_Click (object sender, EventArgs e)

{("25");_Period = 166.67; // *SnapshotLenght;_Freq = 6;. Text = Convert. ToString (Vgen_Freq);. Text = Convert. ToString (Tgen_Period);

}void button_2_6_Click (object sender, EventArgs e)

{("26");_Period = 333.34; // *SnapshotLenght;_Freq = 3;. Text = Convert. ToString (Vgen_Freq);. Text = Convert. ToString (Tgen_Period);

}

Рисунок ПБ.2 - Продолжениеvoid button_2_7_Click (object sender, EventArgs e)

{("27");_Period = 666.67; // *SnapshotLenght;_Freq = 1.5;. Text = Convert. ToString (Vgen_Freq);. Text = Convert. ToString (Tgen_Period);

}void button_2_8_Click (object sender, EventArgs e)

{("28");_Period = 1000; // *SnapshotLenght;_Freq = 1;. Text = Convert. ToString (Vgen_Freq);. Text = Convert. ToString (Tgen_Period);

}void button_3_1_Click (object sender, EventArgs e)

{("31");_Period = 1.33; // *SnapshotLenght;_Freq = 750;= Math. Round ( (25/ (V3_Freq * 1000)),

);. Text = Convert. ToString (SecondPerDivision);. Text = Convert. ToString (V3_Freq);. Text = Convert. ToString (T3_Period);

}void button_3_2_Click (object sender, EventArgs e)

{("32");_Period = 1.66; // *SnapshotLenght;_Freq = 600;= Math. Round ( (25/ (V3_Freq * 1000)),8);. Text = Convert. ToString (SecondPerDivision);. Text = Convert. ToString (V3_Freq);. Text = Convert. ToString (T3_Period); }void button_3_3_Click (object sender, EventArgs e)

{("33");_Period = 4.16; // *SnapshotLenght;_Freq = 240;= Math. Round ( (25/ (V3_Freq * 1000)),

);. Text = Convert. ToString (SecondPerDivision);. Text = Convert. ToString (V3_Freq);. Text = Convert. ToString (T3_Period); }void button_3_4_Click (object sender, EventArgs e)

{("34");_Period = 8.33; // *SnapshotLenght;_Freq = 120;= Math. Round ( (25/ (V3_Freq * 1000)),

);. Text = Convert. ToString (SecondPerDivision);. Text = Convert. ToString (V3_Freq);. Text = Convert. ToString (T3_Period); }void button_3_5_Click (object sender, EventArgs e)

{sendStrToPort ("35");_Period = 16.66; // *SnapshotLenght;_Freq = 60;= Math. Round ( (25/ (V3_Freq * 1000)),

);. Text = Convert. ToString (SecondPerDivision);. Text = Convert. ToString (V3_Freq);

Рисунок ПБ.2 - Продолжение

textBox3. Text = Convert. ToString (T3_Period);

}void button_3_6_Click (object sender, EventArgs e)

{("36");_Period = 33.33; // *SnapshotLenght;_Freq = 30;= Math. Round ( (25/ (V3_Freq * 1000)),

);. Text = Convert. ToString (SecondPerDivision);. Text = Convert. ToString (V3_Freq);. Text = Convert. ToString (T3_Period);

}void button_3_7_Click (object sender, EventArgs e)

{("37");_Period = 66.66; // *SnapshotLenght;_Freq = 15;= Math. Round ( (25/ (V3_Freq * 1000)),

);. Text = Convert. ToString (SecondPerDivision);. Text = Convert. ToString (V3_Freq);. Text = Convert. ToString (T3_Period);

}void button_3_8_Click (object sender, EventArgs e)

{("38");_Period = 100; // *SnapshotLenght;_Freq = 10;= Math. Round ( (25/ (V3_Freq * 1000)),

);. Text = Convert. ToString (SecondPerDivision);. Text = Convert. ToString (V3_Freq);. Text = Convert. ToString (T3_Period);

}}}

Рисунок ПБ.2 - Продолжение

Приложение В

Руководство оператора

Назначение кнопок блока управления "Graphic settings":

·        OpenSP - открытие беспроводного канала связи Bluetooth с цифровой измерительной системой

·        CloseSP - закрытие беспроводного канала связи Bluetooth с цифровой измерительной системой

·        Close - закрытие программы

·        Start - запуск обновления изображения

·        Pause - остановка обновления изображения

Назначение кнопок блока управления частотными параметрами генератора сигнала "Generator settings":

·        1kHz - установление частоты генерируемого сигнала в 1kHz

·        1.5kHz - установление частоты генерируемого сигнала в 1.5kHz

·        3kHz - установление частоты генерируемого сигнала в 3kHz

·        6kHz - установление частоты генерируемого сигнала в 6kHz

·        12kHz - установление частоты генерируемого сигнала в 12kHz

·        24kHz - установление частоты генерируемого сигнала в 24kHz

·        60kHz - установление частоты генерируемого сигнала в 60kHz

·        75kHz - установление частоты генерируемого сигнала в 75kHz

Назначение кнопок блока управления частотными параметрами цифровой измерительной системы (ЦИС)"Oscilloscope settings":

·        10kHz - установление частоты измерений ЦИС в 10kHz

·        15kHz - установление частоты измерений ЦИС в 15kHz

·        30kHz - установление частоты измерений ЦИС в 30kHz

·        60kHz - установление частоты измерений ЦИС сигнала в 60kHz

·        120kHz - установление частоты измерений ЦИС в 120kHz

·        240kHz - установление частоты измерений ЦИС в 240kHz

·        600kHz - установление частоты измерений ЦИС в 600kHz

·        750kHz - установление частоты измерений ЦИС в 750kHz

Приложение Г

 

Руководство программиста

Список используемых переменных, массивов и объектов:

·        SnapshotLenght - переменная, в которой хранится количество измерений, производимых для формирования кадра изображения

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

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

·        V3_Freq - переменная, используемая для отображения текущей частоты измерений цифровой измерительной системы

·        SecondPerDivision - переменная, используемая для отображения текущего соотношения времени на деление графика

·        Tgen_Period - переменная, используемая для отображения текущего периода генерируемого сигнала

·        Vgen_Freq - переменная, используемая для отображения текущей частоты генерируемого сигнала

·        Str1 - локальная строковая переменная, используемая для отправки данных цифровой измерительной системе

·        ByteArray - массив, используемый для хранения принятых данных измерений цифровой измерительной системы

·        IntArray - массив, используемый для отображения принятых данных измерений цифровой измерительной системы

·        Port - объект класса SerialPort, используемый для настройки канала связи между ПК и цифровой измерительной системой

Список используемых пользовательских функций:

·        DrawGraph - функция построения графика по принятым данным от цифровой измерительной системы

·        sendStrToPort (string str1) - функция отправки данных цифровой измерительной системе

·        closeSerialPort - функция закрытия канала связи с цифровой измерительной системой

·        openSerialPort - функция открытия канала связи с цифровой измерительной системой

·        changeInterval - функция преобразования массива ByteArray для отображения принятых данных

Список используемых пространств имён:

·        System;

·        System. Collections. Generic;

·        System.componentModel;

·        System. Data;

·        System. Drawing;

·        System. Linq;

·        System. Text;

·        System. Windows. Forms;

·        System. IO. Ports;

·        ZedGraph;

Приложение Д

 

Технические характеристики

Основные характеристики микроконтроллера STM32F407VGT6:

Производитель:

 ST Microelectronics

Корпус

LQFP-100

Ядро

ARM Cortex-M4, 32-бит

Flash-память

1 МБайт

RAM-память

192 КБайт

Аппаратное управление дисплеем

6800/8080

Кол-во каналов АЦП

24

Разрешение АЦП

12

Макс. Частота АЦП

2.4 МГц

Кол-во каналов ЦАП

2

Разрешение ЦАП

12

Разрешение ШИМ

16

Сторожевой таймер

2

Часы реального времени

1

Кол-во интерфейсов UART

6

Кол-во интерфейсов CAN

2

Кол-во интерфейсов USB-хост

2

Кол-во интерфейсов USB-устройство

2

Кол-во интерфейсов ETHERNET

1

Напряжение питания периферии

1.8.3.6 В

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

-40.85°C


Дополнительную информацию о характеристиках микроконтроллера можно найти на сайте производителя данного микроконтроллера: [электронный ресурс], режим доступа - http://www.st.com.

Похожие работы на - Устройство дистанционного измерения параметров аналоговых сигналов

 

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