Изучение платформы для построения простой системы сбора данных 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» – нулевой провод источника питания.
На плате имеется лишь одна микросхема преобразователя 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.
После подключения переменного резистора и преобразователя сборка аппаратной части системы заканчивается и можно приступать к программной части. Основная трудность заключается в написании программы для микрокон троллера и её отладке. По этот теме можно найти много литературы, в том числе в интернете. Чтобы не писать программу с самого начала, можно использовать уже имеющуюся заготовку программы, которую можно получить от преподавателя.
Эта программа позволяет измерять напряжение с переменного резистора, подключённого к внешнему выводу РА1 микроконтроллера, и выводить данные в компьютер через УАПП, при этом мигает светодиод на отладочной плате.
Для сбора данных со стороны персонального компьютера можно использовать любую программу терминал. В стандартной поставке операционной сис темы Windows в версиях до Windows 7 использовался для этих целей Hyper- Terminal, но в новых версиях его исключили из стандартной поставки. К счастью эта программа свободно распространяется в сети, откуда её можно легко загрузить на компьютер.
В сети интернет можно также найти другие программные продукты аналогичные HyperTerminal. Среди них особо следует выделить бесплатную про грамму Terminal vl.9 от автора Вг@у++ [11]. Эта программа включает в себя удобный интерфейс по настройке параметров работы СОМ порта, а также рас ширенные возможности по управлению поступающим потоком данных из коммуникационного порта. Внешний вид программы представлен на этом изображении:
Запуск системы, получение и обработка данных
Подключите преобразователь 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. Выделите числа мышкой, нажмите правую кнопку мышки и выберите «Копировать».
Вставьте данные из буфера обмена в Excel. Постройте график по полученным данным. Пример подобного графика показан на изображении:
После окончания работы обязательно отключите от USB STM32VLDISCOVERY и преобразователь.