Использование платформы ЪТМЫУЬВтСОУЕКТ для построения простой системы сбора и обработки данных
А.В. Ескин, А.Л. Печников, В.Г. Трубин ФГБОУВПО НГТУ
Аннотация: Для применения
эффективного алгоритма управления системой автоматического регулирования важно изучение свойств объекта управления до построения самой системы. Эту задачу обычно решают системы сбора и обработки данных (ССОД), которые, зачастую реализованы на печатных платах в корпусе персонального компьютера или в виде отдельные устройства. Стоимость таких плат достаточно высока и иногда применение их неоправданно для простых объектов регулирования. Предложено решение этой задачи с меньшими затратами времени и материальных средств. Это справедливо для систем с небольшим количеством контролируемых величин (до 12), и с медленным изменением полезного сигнала (до 1 кГц). Данное решение будет полезно на этапе создания прототипов устройств с цифровым управлением, где требуется наличие возможности сохранять показания датчиков от времени в текстовом виде для последующей обработки (например, построении графиков в Excel).
Ключевые слова: система сбора и обработки данных, АЦП, компьютер, измерения, микроконтроллер,
микропроцессор.
ВВЕДЕНИЕ
В статье предлагается простое решение создания системы сбора и обработки данных (ССОД) на основе платформы, название которой вынесено в заголовок.
Предлагаемая система состоит на аппаратном уровне из следующих основных частей:
- Отладочной платы STM32VLDISCOVERY на базе микроконтроллера STM32F100RBT6B фирмы STMicroelectronics с ядром ARM Cortex M3;
- Преобразователя интерфейсов PL2303 USB ^ TTL на базе микросхемы PL2303HX фирмы Prolific;
- Переменного резистора имитирующего работу датчика.
На программном уровне система состоит из двух программ:
- На стороне персонального компьютера: одна из стандартных программ терминалов последовательно порта RS232;
- На стороне микроконтроллера: управляющей программы по пересылке данных из регистров АЦП в модуль УАПП для отправки в персональный компьютер.
Про отладочную плату STM32VLDISCOVERY и микроконтроллер STM32F100RBT6B написано в различных источниках уже достаточно [1], [2]. На периферии микроконтроллера, применяемой для решения поставленной задачи, остановимся более подробно.
1. ОСНОВНЫЕ ВОЗМОЖНОСТИ ПЕРИФЕРИИ МИКРОКОНТРОЛЛЕРА S TM32F100RBT6B
Набор периферии микроконтроллера (МК) достаточно типичен для данного класса устройств [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 нет необходимости прибегать ко всему описанному набору функций, достаточно простого асинхронного интерфейса.
2. ПРЕОБРАЗОВАТЕЛЬ PL2303 USB ~
TTL
Описанный вариант практически ничем не уступает подобным преобразователям этого класса, предлагаемым на рынке. Его внешний вид представлен на Рис. 1 [5].
Как можно заметить этот модуль имеет два разъема: USB для подключения к персональному компьютеру и 4-х контактную штыревую линейку для связи с STM32DISCOVERY. Контакты штыревой линейки подписаны: «Vcc» - питание +5 В от шины USB персонального компьютера, «RXD» -вход приемника преобразователя, «TXD» -
выход передатчика преобразователя и «GND» -нулевой провод источника питания.
Рис. 1. Внешний вид преобразователя PL2303 USB ^
TTL
На плате имеется лишь одна микросхема преобразователя PL2303HX фирмы Prolific Technology, на которую имеется документация [6]. Все подобные преобразователи обычно строятся на таких микросхемах, которые значительно упрощают использование USB порта. При подключении модуля к компьютеру и при отсутствии замыканий, на плате загорается красный светодиод,
сигнализирующий о наличии питания по шине USB.
Для нормальной работы устройства в системе необходимо установить драйвер PL2303HX, дистрибутив которого можно найти на сайте Prolific Technology [7]. Установка драйвера обычно не вызывает трудностей. После установки, в системе должен появиться новый виртуальный COM-порт, наличие которого для операционных систем Windows, можно проверить в диспетчере устройств. Подключение преобразователя к отладочной плате можно осуществить при помощи стандартных соединительных проводов [8]. Для соединения с модулем понадобится только три провода. На плате модуля они должны быть подключены к выводам «TXD», «RXD» и «GND», а на отладочной плате к выводам обозначенным как «PA10» «PA9» и «GND» соответственно.
3. СБОРКА СИСТЕМЫ
В качестве датчика можно использовать обычный переменный резистор, который, как и преобразователь, подключается с помощью соединительных проводов к плате STM32VLDISCOVERY. Для этих целей хорошо подходят переменные резисторы. Резистор следует подключить следующим образом: один из крайних выводов подключается, при помощи проводника, к выводу, обозначенному на отладочной плате «3V3», а другой, к выводу «GND». Средний контакт подключается к любому из выводов (в зависимости от используемого АЦП канала) PA0 - PA7, PB0, PB 1, PC0 - PC5 (соответствуют каналам с 0 по
15). Программой микроконтроллера используется вывод PA1. При подключении следует быть аккуратным, чтобы не использовать уже занятый вывод. Дело в том, что на плате STM3 2 VLDISCO VER Y уже произведены некоторые внутренние подключения выводов микроконтроллера, так, например, PA0 используется для управления
встроенной кнопкой, поэтому перед подключением следует ознакомиться с документацией на плату БТМЫУЬЫБСОУЕЯУ [9].
В результате всех подключений должна получиться конструкция изображённая на Рис. 2.
Рис. 2. Собранная система сбора данных на базе платы 8ТМ32УЬ018С0УЕЯУ
Таблица подключения проводов приведена можно вывести из строя плату. Все коммутации
в Таблице 1. Обязательно следует проверить следует осуществлять при выключенном
правильность подключения проводов, питании устройств.
поскольку при неправильном подключении
Таблица 1
Описание подключения проводов к плате БТМ^УЬВТБСОУЕЯУ
STM32 VLDISCO VERY PL2303 USB ^ TTL / Переменный резистор Описание / примечание
PA10 PL2303 USB ~ TTL TXD Линия приёма данных с точки зрения МК
PA9 PL2303 USB ~ TTL RXD Линия передачи данных с точки зрения МК
GND PL2303 USB ~ TTL GND Общий
3V3 Крайний вывод переменного резистора Любой
PA1 Средний вывод переменного резистора Вход канала 1 АЦП МК
GND Крайний вывод переменного резистора Любой
После подключения переменного резистора и преобразователя сборка аппаратной части системы заканчивается и можно приступать к программной части. Основная трудность заключается в написании программы для микроконтроллера и её отладке. По этот теме можно найти много литературы, в том числе в интернете, но как вариант, обратиться к статье [1]. Чтобы не писать программу с самого начала, уже имеется заготовка программы, которую можно получить от преподавателя.
Эта программа позволяет измерять напряжение с переменного резистора,
подключённого к внешнему выводу PA 1 микроконтроллера, и выводить данные в компьютер через УАПП, при этом мигает светодиод на отладочной плате.
Для сбора данных со стороны персонального компьютера можно использовать любую программу - терминал. В стандартной поставке операционной системы Windows в версиях до Windows 7 использовался для этих целей HyperTerminal, но в новых версиях его исключили из стандартной поставки [10]. К счастью эта программа свободно распространяется в сети, откуда её можно легко
загрузить на свои компьютер.
В сети интернет можно также наИти другие программные продукты аналогичные HyperTerminal. Среди них особо хочется выделить бесплатную программу Terminal vi.9 от автора Br@y++ [11]. Эта программа включает
в себя удобный интерфейс по настройке параметров работы СОМ-порта, а также расширенные возможности по управлению поступающим потоком данных из коммуникационного порта. Внешний вид программы представлен на Рис. 3.
Рис. 3. Внешний вид программы Terminal м 1.9 от автора Br@y++
4. ЗАПУСК СИСТЕМЫ, ПОЛУЧЕНИЕ И ОБРАБОТКА ПОЛУЧЕННЫХ ДАННЫХ
Для запуска системы следует подключить преобразователь PL2303 USB ^ TTL к компьютеру. Если преобразователь подключен в первый раз, то выполняется автоматическая установка драйверов из интернета, как показано на Рис. 4. Данное действие справедливо, если у пользователя установлена система Windows 7. Если же у пользователя установлена система Windows XP, то необходимо скачать и установить драйверы вручную.
Далее следует определить, какой COM-порт
появился в системе: Панель управления ^ Диспетчер устройств ^ Порты (COM и LPT).
На Рис. 5 таким портом является COM33. Поскольку не все программы могут работать с большими номерами COM-портов, то лучше изменить номер на любой свободный от COM2 до COM6. Для этого достаточно дважды щёлкнуть на иконке порта, номер которого требуется изменить. После этого можно переходить на вкладку «Параметры порта», нажать «Дополнительно». В выпадающем меню можно изменить номер. Если будет выдано информационное сообщение, то следует нажать «Да».
Рис. 4. Установка драйверов преобразователя
Диспетчер устройств Файл Действие Вид Справка
Ф» Н| В Н| ¡S
а
i 5¡l AMD-Ш
DVD и CD-ROM дисководы £3 IDE ATA/ATAPI контроллеры
Батареи ^ Видеоадаптеры Lj Дисковые устройства |> \ Звуковые, видео и игровые устройства Клавиатуры lQ Компьютер ф Контроллеры USB -Ü^l Мониторы
^ Мыши и иные указывающие устройства л f Порты (СОМ и LPT)
V Prolific USB to Serial Comm Pcft (СОМЗЗ) "7 Порт принтера (LPT1} ■* ;Г Последовательный порт (COMI) О Процессоры у3 Сетевые адаптеры |Q Системные устройства á^j Устройства HID (Human Interface Devices) ■ iss> Устройства чтения смарт-карт
Рис. 5. Определение
Далее следует убедиться, что на ЗТМ2УЬОШСОУЕт перемычки СШ3:1-СШ3:2, СШ3:3-СШ3:4 установлены, а там, где СШ SWD, перемычек нет, как показано на Рис. 6. Также
номера COM-порта
требуется подключить устройство к USB. Появившееся при автостарте окно можно просто закрыть.
Рис. 6. Положение перемычек
При необходимости требуется
компилировать и загрузить программу в STM32VLDISCOVERY. После этого необходимо запустить программу Terminal. Следует выберать нужный COM-порт, нажать «Connect». Пользователь должен увидеть столбец с
цифрами. Поскольку АЦП в МК двенадцатиразрядный, то диапазон чисел будет от 0 до 4095. Далее достаточно выделить числа мышкой, нажать правую кнопку мышки и выбрать «Копировать».
Д Terminal vL9b - 20060920Я - by Br@y+ +
CQM Port Baud rate JcOM£Г 600 Г 14400 Г 57600
|. •■'!:' ГУ
BeScan
Help About..
Quit
COMs
r
Г
~r
Г Г
G 10
Г 1200 Г 19200 Г 115200
Г 2400 Г 2S800 С 128000
Г 4800 Г 38400 Г 256000
<î 9600 С 56000 С custom
¡Data bits
Г I
Г 6 С 7 & 3
Parity <• none Г odd even С mark С space
Settings
Set font
Auto Dis/Connect J"~ Auto Start Script
Time Stream log Г CR=LF Г Stay on Top -B0°
custom BR Rh Clear
27
ASCII t
Gra
Receive
CLEAR Reset Countei
13
Counter = 511
Г
HEX
ARni
Г JZ.
Dec
Hpv_
Bin
03436 G3437
Рис. 7. Данные с АЦП МК
Полученные данные можно вставить из буфера обмена, например, в таблицу Excel. Это
позволяет построить график по полученным данным, например, как показано на Рис. 8.
Рис. 8. Данные с АЦП МК и график изменения сигнала
После окончания работы обязательно
следует отключить от USB
STM32VLDISCOVERY и преобразователь.
ЛИТЕРАТУРА
[1] А.В. Ескин, В. А. Жмудь, В.Г. Трубин STM32VLDISCOVERY - средство для быстрой разработки опытных образцов цифровых систем управления ФГБОУ ВПО НГТУ, Новосибирск, Россия. Автоматика и программная инженерия. 2013. №3 (5). С. 32-39. ФГБОУ ВПО НГТУ (Новосибирск, Россия). URL: http://www.nips.ru/images/stories/zhournal-
AIPI/6/aipi-3 -2013-6.pdf
[2] Ванцев Д.В. Демонстрационная плата STM32VL-DISCOVERY. Руководство пользователя. URL: http://mcu.ucoz.ru/publ/stm32/stm32_apparatnoe_ob espechenie/demonstracionnaja_plata_stm32vl_discov ery_rukovodstvo_polzovatelja/28-1-0-19 (дата обращения 5.02.14).
[3] DS6517: Low & medium-density value line, advanced ARM-based 32-bit MCU with 16 to 128 KB Flash, 12 timers, ADC, DAC & 8 comm interfaces. Datasheet production data. URL: http://www. st. com/ st-web-
ui/static/active/en/resource/technical/document/datas heet/CD00251732.pdf (дата обращения 5.02.14).
[4] RM0041: STM32F100xx advanced ARM-based 32bit MCUs. URL: http://www.st.com/st-web-ui/static/active/en/resource/technical/document/refere nce_manual/CD00246267.pdf (дата обращения 5.02.14).
[5] PL2303 USB To TTL Module Model: IM120525011. ITEAD Intelligent Systems Co.Ltd. URL: http://imall.iteadstudio.com/im120525011.html (дата обращения 5.02.14).
[6] PL-2303HX Edition (Chip Rev D)USB to Serial Bridge Controller. Product Datasheet. URL: http://www.prolific.com.tw/UserFiles/files/ds_pl2303 HXD_v1_4_4.pdf (дата обращения 5.02.14).
[7] Prolific Technology Inc. Smart I/O > Serial / Parallel. URL:
[8]
http://www.prolific.com.tw/US/ShowProduct.aspx7p cid=41 &showlevel=0017-003 7-0041 (дата
обращения 5.02.14).
Ebay. 40PCS Dupont Wire Color Jumper Cable 2.54mm 1P-1P Female to Female For Arduino. URL: http://www.ebay.com/itm/40PCS-Dupont-Wire-Color-Jumper-Cable-2-54mm-1P-1P-Female-to-Female-For-Arduino-
/4005559806587pt=LH_DefaultDomain_0&hash=ite m5d42ff3772. (дата обращения 5.02.14).
[9] UM0919: STM32VLDISCOVERY STM32 value line Discovery. URL: http://www.st.com/st-web-ui/static/active/en/resource/technical/ document/user_manual/CD00267113 .pdf. (дата обращения 5.02.14).
[10] Справка Microsoft Windows. Что произошло с программой HyperTerminal URL: http://windows.microsoft.com/ru-ru/windows/what-happened-hyperterminal# 1 TC=windows-7. (дата обращения 5.02.14).
[11] Terminal. Com port development tool. URL: https://sites.google.com/site/terminalbpp/. (дата обращения 5.02.14).
Алексей Викторович Ескин -ведущий инженер ООО «КБ
Автоматика», E-mail: [email protected]
Печников Андрей
Львович, вед. инженер ООО «КБ Автоматика». Сфера интересов - разработка специализированной электроники.
Виталий Геннадьевич
Трубин, зав. лаб. кафедры Автоматики НГТУ, директор ООО «КБ Автоматика». E-mail: [email protected]
The Use of Platform STM32VLDISCOVERY for Making of Simple Data Acquisition System
A.V. ESKIN, A.L. PECHNIKOV, V.G. TRUBIN
Abstract: In order to apply an effective control algorithm of the automatic control system, it is important to study the properties of the control object to design the whole system. This problem is
usually solved by data acquisition system (DAS), which are often implemented on circuit boards in the body of a personal computer or as a separate device. The cost of these boards is rather high and sometimes use of them is unnecessarily for control of simple objects. The paper proposes a solution of this problem with takes less time and less material resources. This is true for systems with a small number of controlled values (not more then 12), and with a slow variation of the useful signal (1 kHz). This decision will be useful at the stage of prototyping devices with digital control, where it is required the possibility of sensor readings from time to time in text format for further processing (for egxample, for curves plotting in Excel).
Key words: data acquisition system, ADC, computer, measurement, microcontroller, microprocessor.