Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дипломн.проект.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
813.34 Кб
Скачать
  1. Программное обеспечение микроконтроллера

Проект для микроконтроллера создан в среде разработки Keil uVision4. При написании кода вначале были составлены отдельные проекты и проверена их работа из примеров STM32F4xx_USB_Exemple для работы с USB, составлен отдельный проект для проверки АЦП и вывода их значений в окно терминала по USART, проект для работы с Sim900 опробована отправка сообщений, проект для работы с однопроводным интерфейсом 1-Wire проверена работа считывания 64 битного ключа iButton и работа термодатчиков. Основным проектом стал проект работы ОСРВ FreeRTOS . В этот проект затем добавлялся код из всех остальных вышеописанных проектов. Основная проблема соединения проектов заключалась в том, что некоторые из проектов содержали разную настройку частоты тактирования периферии. В настоящий момент существует программное обеспечение STM32F4 CubeMX позволяющее настроить все используемые выводы на нужную периферию, задать настройки необходимых прерываний, добавить ОСРВ, включить в проект использование драйверов USB, при необходимости добавить стек протоколов TCP/IP LwIP, после чего данная программа сгенерирует готовый шаблон кода со всеми необходимыми настройками.

    1. Основная структура проекта

Проект содержит группу файлов распределенных по назначению Рис 4.1.1. Каждая группа хранится в отдельной папке.

Основные файлы проекта хранятся в папках STM32F4xx_StdPeriphDriver –хранятся основные функции и настройки управления для: _adc.c –аналогово-цифрового преобразования, _exit –внешние прерывания на выводах, _dma-управлением непрямого доступа к памяти минуя процессор (используем для копирования значений замеров по шлейфам в буфер), _usart –периферия для асинхронной передачи данных используя интерфейс RS232(используется два интерфейса один для управления GSM модулем Sim900, второй для вывода отладочной информации в окно терминала), _rcc-настройка тактовых частот периферийных шин, _tim-настройка и работа с таймером 1-wire устройств.

Рис 4.1.1 Структура проекта МК

Системные настройки находятся в папке STM32F4xx, это startup_stm32f4xx.s –ассемблерный файл содержит определение таблицы векторов прерываний, определение размера стека (для сохранения контекста при вызове функций и в нем же сохраняются значения СФР специальных функциональных регистров R0-R3,LR,PSR,PC ) и кучи (для работы с памятью используя memset, memcpy, malloc, для нужд ОСРВ выделяется отдельная куча из пространства RAM памяти) из этого файла вызывается вначале основная функция инициализации ядра void SystemInit(void) которая находится в файле system_stm32f4xx.c. Затем управление передается в main().

Для конфигурации USB содержится несколько папок. В нашем проекте используется конфигурация USB OTG Device Virtual Com Port (OTG-on-the-go подключение на ходу).Virtual COM Port –это отдельный подкласс USB устройств когда обмен выполняется по интерфейсу RS232, в этом случае STMElectronics поставляет уже готовый драйвер(VCP_V1.3.1.) под Windows 7 для работы с виртуальным портом. Это упрощает разработку устройства, так как в случае использования полноценного HID (Human interface devices) устройства необходимо описывать дескриптор устройств, интерфейса, конфигурации, конечных точек. Для непосредственной работы с данными служит файл usbd_cdc_vcp.c в папке App, этот файл согласно документации [4]-пользовательский уровень для интерфейса USB, папка USB Driver содержит файлы нижнего уровня где происходит взаимодействие рабочих регистров с функциями нижнего уровня. Взаимодействие пользовательских функций и обработка прерываний с драйверами нижнего уровня выполняется с помощью функций среднего уровня в папке USB Device. В папке USB Device в файле usbd_cdc_core.c содержутся основные дескрипторы устройства. Максимальная скорость передачи информации по USB в нашем случае состовляет 64Кб\сек, а само устройство определяется как FS (full speed) 12Мбит\с.

Папка RTOS содержит функции для работы ОСРВ. Файлы входящие в эту структуру: heap_4.c –содержит механизм выделения памяти для нужд FreeRTOS, tasks.c,queue.c, croutine.c – содержат реализацию механизма задач, реализация очередей и сопрограмм.

Папка User –содержит пользовательские файлы для работы с Sim900, 1-Wire устройствами и АЦП. Основной файл приложения, где начинается выполнение пользовательских задач –app.c.