Построение платформы системы сбора информации | Блог им. Catethysis

Построение платформы системы сбора информации

Изучение платформы для построения простой системы сбора данных STM32VLDISCOVERY.

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

Предлагается решение этой проблемы с меньшими затратами времени и материальных средств. Стоит оговориться, что это справедливо для систем с небольшим количеством контролируемых величин (до 12), и с медленным из­менением полезного сигнала (до 1 кГц).

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

Описание системы

Предлагаемая система состоит на аппаратном уровне из следующих ос­новных частей:

• Отладочной платы STM32VLDISCOVERY на базе микроконтроллера STM32F100RBT6B фирмы STMicroelectronics с ядром ARM Cortex М3;

• Преобразователя интерфейсов PL2303 USB <-► TTL на базе микросхемы PL2303HX фирмы Prolific;

• Переменного резистора имитирующего работу датчика.На программном уровне система состоит из двух программ:
• На стороне персонального компьютера — одна из стандартных программ терминалов последовательно порта RS232;
• На стороне микроконтроллера — управляющей программы по пересылке данных из регистров АЦП в модуль УАПП для отправки в персональный ком­пьютер.

Про отладочную плату STM32VLDISCOVERY и микроконтроллер STM32F100RBT6B написано в различных источниках уже достаточно [1], [2]. На применяемой для решения поставленной задачи периферии микроконтрол­ лера остановимся более подробно.

Основные возможности периферии микроконтроллера STM32F100RBT6B

Набор периферии микроконтроллера (МК) достаточно типичен для данного класса устройств [3]. Но есть среди этого многообразия и специфические для микроконтроллеров вещи, такие, например, как контроллер прямого доступа к памяти КПДП (Direct Memory Access DMA).

Применительно к нашей задаче, интерес представляют модуль универсаль­ного синхронного асинхронного приёмника передатчика УСАПП (Universal Synchronous Asynchronous Receiver Transmitter — USART) и модуль аналого- цифрового преобразователя АЦП (Analog-to-Digital converter, ADC). Оба этих модуля можно подсоединить к КПДП и сократить объём написанного кода про­ граммы для микроконтроллера. В дополнение к этим двум модулям может по­ требоваться применение, для запуска АЦП, таймера. Таймеры также, в доста­точном количестве, имеются в составе микроконтроллера.

Используемое АЦП является двенадцатиразрядным последовательного при­ближения, которое может работать на максимальной частоте в 12 МГц (что при минимальном времени выборки даёт время преобразования в 1,17 мкс). К нему можно подключить до 16 внешних каналов. Кроме этого, есть дополнительно два внутренних канала для оцифровки температуры кристалла микроконтроллера (сигнал датчика температуры и уровень опорного напряжения питания датчика).

Предусмотрена возможность запуска процесса преобразования на аппарат­ ном уровне от внешнего (подключаемого к выводу отладочной платы) источ­ника. Разнообразные режимы работы допускают задавать различные последо­вательности оцифровки каналов, что перекрывает большую часть задач по оцифровке данных. В наличии имеется аналоговое устройство контроля пре­вышения установленных порогов (в документации называемого Analog Watchdog), которое позволяет на аппаратном уровне отслеживать значения измеряемой величины на предмет выхода за установленные рамки, что очень по­ лезно для задач диагностики неисправностей внешнего датчика. Время выборки сигнала для каждого канала задается индивидуально и лежит в диапазоне от 1,5 до 239,5 тактовых импульсов работы АЦП. Кроме возможности подключения к КПДП каждое событие, возникающее внутри АЦП, может генерировать преры­вание. Для получения качественных результатов измерений перед включением АЦП необходимо однократно провести его калибровку. Более полную инфор­мацию по настройке АЦП можно получить, обратившись к документации [4], а узнать о характеристиках АЦП можно в [3].

Возможности УАПП также несколько шире стандартных и допускают рабо­ту по протоколу Smartcard, а также в сетях LIN и IrDA. Имеется возможность аппаратного управления потоком данных при помощи линий RTS и CTS. Среди необычного можно выделить применение числа с фиксированной запятой для задания скорости передачи данных. Это даёт меньшую ошибку при работе уст­ройства. Так же как и АЦП УАПП имеет возможность генерировать запросы к КПДП и контроллеру прерываний.

Для связи с преобразователем PL2303 USB <-> TTL нет необходимости прибе­гать ко всей этой функциональности, достаточно простого асинхронного ин­терфейса.

Преобразователь PL2303 USB <->TTL

На рынке существует достаточное количество подобных преобразователей, и этот вариант ничем не уступает им. Этот модуль приводится как пример по­ добных устройств и не выделяется чем-то особенно.

Как можно заметить этот модуль имеет два разъема: USB – для подключе­ния к персональному компьютеру и 4-х контактную штыревую линейку для связи с STM32DISCOVERY. Контакты штыревой линейки подписаны: «Усс» – питание +5 Вольт от шины USB персонального компьютера, «RXD» – вход при­емника преобразователя, «TXD» – выход передатчика преобразователя и «GND» – нулевой провод источника питания.

Изображение-преобразователь
Внешний вид преобразователя PL2303 USB TTL

На плате имеется лишь одна микросхема преобразователя PL2303HX фир­мы Prolific Technology, на которую имеется документация [6]. Все подобные преобразователи обычно строятся на таких микросхемах, которые значительно упрощают использование USB-порта. При подключении модуля к компьютеру и при отсутствии замыканий, на плате включается красный светодиод, сигнали­ зирующий о наличии питания по шине USB.

Для нормальной работы устройства в системе необходимо установить драйвер PL2303HX, дистрибутив которого можно найти на официальном сайте Prolific Technology [7]. Установка драйвера обычно не вызывает трудностей. После установки, в системе должен появиться новый виртуальный СОМ-порт,

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

Подключение преобразователя к отладочной плате можно осуществить при помощи соединительных проводов, доступных по небольшой цене [8]. Внешний вид таких проводов представлен на этом изображении:

Изображение-гибкая-шина
Гибкая шина для соединения плат

Для соединения с модулем понадобится только три провода. На плате мо­ дуля они должны быть подключены к выводам «TXD», «RXD» и «GND», а на отладочной плате к выводам обозначенным как «РАЮ» «РА9» и «GND», соот­ ветственно.

Сборка системы

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

Изображение-резистор
Переменный резистор (потенциометр)

Для данного типа резисторов характерна удачная конструкция выводов, ко­ торая обеспечивает хорошее соединение с указанными соединительными про­водниками.
Резистор следует подключить следующим образом: один из крайних выво­дов подключается, при помощи проводника, к выводу, обозначенному на отла­дочной плате «3V3», а другой, к выводу «GND». Средний контакт подключает­ ся к любому из выводов (в зависимости от используемого АЦП канала) РАО – РА7, РВО, РВ1, РСО – РС5 (соответствуют каналам с 0 по 15). Программой мик­роконтроллера используется вывод РА1. При подключении следует быть акку­ ратным, чтобы не использовать уже занятый вывод. Дело в том, что на плате STM32VLDISCOVERY уже произведены некоторые внутренние подключения выводов микроконтроллера, так, например, РАО используется для управления встроенной кнопкой, поэтому перед подключением следует ознакомиться с до­кументацией на плату STM32VLDISCOVERY.

Изображение-собранная-система
Собранная система сбора данных на базе платы STM32VLDISCOVERY

 

ТаблицаОписание подключения проводов к плате
Описание подключения проводов к плате STM32VLDISCOVERY

 

После подключения переменного резистора и преобразователя сборка аппаратной части системы заканчивается и можно приступать к программной части. Основная трудность заключается в написании программы для микрокон­ троллера и её отладке. По этот теме можно найти много литературы, в том чис­ле в интернете. Чтобы не писать про­грамму с самого начала, можно использовать уже имеющуюся заготовку про­граммы, которую можно получить от преподавателя.

Эта программа позволяет измерять напряжение с переменного резистора, подключённого к внешнему выводу РА1 микроконтроллера, и выводить дан­ные в компьютер через УАПП, при этом мигает светодиод на отладочной плате.

Для сбора данных со стороны персонального компьютера можно исполь­зовать любую программу терминал. В стандартной поставке операционной сис­ темы Windows в версиях до Windows 7 использовался для этих целей Hyper- Terminal, но в новых версиях его исключили из стандартной поставки. К счастью эта программа свободно распространяется в сети, откуда её можно легко загрузить на компьютер.

В сети интернет можно также найти другие программные продукты ана­логичные HyperTerminal. Среди них особо следует выделить бесплатную про­ грамму Terminal vl.9 от автора Вг@у++ [11]. Эта программа включает в себя удобный интерфейс по настройке параметров работы СОМ порта, а также рас­ ширенные возможности по управлению поступающим потоком данных из ком­муникационного порта. Внешний вид программы представлен на этом изображении:

изображение-терминад
Внешний вид программы Terminal v. 1.9 от автора Br@y++

Запуск системы, получение и обработка данных

Подключите преобразователь PL2303 USB <-> TTL к компьютеру. Если подключили преобразователь первый раз, то выполняется автоматическая уста­ новка драйверов из интернета, как показано на Рис. 18. Данное действие спра­ ведливо, если установлена Windows 7. Если, система Windows ХР, то необхо­димо скачать и установить драйвера вручную.

 

 

Изображение-Установка драйверов Установка драйверов преобразователя

Найдите, какой COM-порт появился в системе: Панель управления —► Диспетчер устройств —■>Порты (СОМ и LPT). На Рис. 19 это СОМЗЗ. Посколь­ку не все программы могут работать с большими номерами COM-портов, то лучше изменить номер на любой свободный от COM2 до СОМ6. Для этого дважды щёлкните на порте, номер которого хотите изменить. После этого пе­рейдите на вкладку «Параметры порта», нажмите «Дополнительно». В выпа­дающем меню измените номер. Например, на COM2. Если будет выдано ин­формационное сообщение, то нажмите «Да».

Изображение-номера-СОМ-порта
Определение номера СОМ порта

Убедитесь, что на STM32VLDISCOVERY перемычки CN3:1-CN3:2, CN3:3- CN3:4 установлены, а где CN2 SWD перемычек нет (Рис. 20).

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

При необходимости скомпилируйте и загрузите программу в STM32VLDISCOVERY. Запустите программу Terminal. Выберите нужный СОМ порт. Нажмите «Connect». Вы должны увидеть столбец с цифрами. По­скольку АЦП в МК 12-разрядный, то диапазон чисел будет от 0 до 4095. Выде­лите числа мышкой, нажмите правую кнопку мышки и выберите «Копировать».

Изображение-Положение перемычек
Положение перемычек
Изображение-Данные-с-АЦП-MK
Данные с АЦП MK

Вставьте данные из буфера обмена в Excel. Постройте график по полу­ченным данным. Пример подобного графика показан на изображении:

Изображение-Данные-АЦП-МК
Данные с АЦП МК и график изменения сигнала

После окончания работы обязательно отключите от USB STM32VLDISCOVERY и преобразователь.

Ссылка на основную публикацию