Часть II. Ввод-вывод в МК «Миландр» - 1 |
92 |
Исследуем состав демонстрационного проекта. Первое, что мы видим в рабочем пространстве - это дерево, привычное по структуре каталогов жесткого диска (ЖД), но эта структура может не соответствовать структуре файлов и папок на ЖД, где хранятся файлы проекта. В корне имя проекта, далее расположены группы файлов (желтая иконка папки). Программный модуль, как правило, состоит из двух файлов с расширениями name.с и name.h. Программный модуль может использовать функции, переменные, и т.д... другого программного модуля, что приводит к иерархичности и взаимосвязи модулей всего проекта.
Самым близким к железу, являются модули, реализующие драйвера отдельных модулей МК. Они находятся в группе MDR32F9Qx_FWLib. Развернув группу, мы увидим файлы реализующие функции для работы различных устройств МК. Названия файлов говорят сами за себя. Достаточно лишь знать структурный состав МК. Например, MDR32F9Qx_adc.c и MDR32F9Qx_adc.h это драйвер модуля АЦП, в котором реализованы все необходимые функции для работы АЦП данного МК.
ВСледующих группах MDR32F9Qx_FatFsLib, MDR32F9Qx_USBLib располагаются модули для реализации файловой системы на флеш-носителях типа «Micro-SD» и модули для обеспечения работы контроллера USB-шины.
Вгруппе Target находятся файлы инициализации конкретного МК и конфигурация линковщика.
Вгруппе Users находятся «прикладные» или «пользовательские» функции, реализующие уже непосредственно те задачи, которые закладываются в техзадании на разработку ПО.
ТУСУР, "Миландр" |
Каф. ЭСАУ |
Недяк С.П., Шаропин Ю.Б |
Февраль 2017 г. |
|
Часть II. Ввод-вывод в МК «Миландр» - 1 |
93 |
|
|
|
|
|
|
|
|
|
Рисунок 2 — Внешний вид окна IDE с открытым проектом MDR32F9Qx_Demo
Описанная структура групп и файлов выбирается на усмотрение программиста или группы программистов. Мы описанную организацию не считаем достаточно логичной и удобной и навяжем вам свою точку зрения. Вот список рекомендуемых групп:
1HL_Appl — прикладные функции верхнего уровня проекта, соответствует группе Users.
2MCU_drv — драйвера устройств микроконтроллера, содержащие подгруппы:
2.1Config – где находятся файлы конфигурации проекта : *.icf —
конфигурация ликовщика, platform_config.h — привязка к конкретному железу, допустим содержащая строки #define LCD_PORT PORTA.
2.2 Interrupts – логично собрать все обработчики прерывания в одном месте. Подумайте почему ?
ТУСУР, "Миландр" |
Каф. ЭСАУ |
Недяк С.П., Шаропин Ю.Б |
Февраль 2017 г. |
Часть II. Ввод-вывод в МК «Миландр» - 1 |
94 |
2.3Std_Lib – стандартные библиотеки ввода-вывода, соответствует
MDR32F9Qx_FWLib
2.4И далее фалы, в которых содержится прикладной функционал ввода-вывода (АЦП, ЦАП, ШИМ, SPI, ...)
3Protocols – протокол(ы) обмена данными с другими ЭВМ, если есть обмен с другими ЭВМ.
4Doc или txt — текстовые файлы описания проекта. Данную группу нужно исключить из обработки компилятором в свойствах группы.
5Unit_drv – МК как, правило, всегда работает в связке с другими микросхемами или электронными модулями, здесь и располагаются драйвера внешних по отношению к МК устройств (например дисплей, клавиатура, цифровой датчик...).
6 Файл main.c, реализующий бесконечный основной цикл работы МК.
7Файл includes.h – общий для всех прикладных модулей, в котором подключаются через директиву #include заголовочные файлы других модулей проекта, тем самым реализуется сквозная взаимосвязь модулей и группируются общие для всего проекта определения, макросы, псевдофункции.
Для изучения проекта наиболее эффективно его выполнить в пошаговом режиме отладки и проследить, как работают отдельные функции и операторы.
Документация по демопроекту находится в файле MDR32F9Qx_Demo.chm, который генерируется автоматически при помощи ПО DoxyGen см. раздел 2.2.2 .
1.Титульный лист.
2.Цель работы.
3.Теоретические основы по работе.
4.Структурная(ые) схема(ы) участка устройства, изучаемого в работе.
5.Исходный текст модифицируемых Вами участков кода и сопутствующего контекста.
6.Список допущенных ошибок их анализ!
7.Выводы по лабораторной работе.
8.Отчет разместить Redmine, проект зафиксировать в репозитории Subvertion с заполненным комментарием. Комментарий обязательно должен содержать: Номер ЛР, ФИО, группа и описание изменений в коде.
1.Джозеф Ю. Ядро Cortex-M3 компании ARM: полное руководство : [перевод]. - ДодэкаXXI, 2012 — 535 с.
2.Мартин Т., Микроконтроллеры фирмы STMicroelectronics на базе ядра Cortex-M3. Серия STM32. Москва: Техносфера, 2009 — 168 с.
3.Документация на библиотеку CMSIS – CMSIS-SP-00300-r3p1-00rel0. URL: www.arm.com (требуется регистрация).
ТУСУР, "Миландр" |
Каф. ЭСАУ |
Недяк С.П., Шаропин Ю.Б |
Февраль 2017 г. |
Часть II. Ввод-вывод в МК «Миландр» - 2 |
95 |
2Пользовательский ввод-вывод информации в малых вычислительных системах.
Лабораторная работа № 7
Внекоторых устройствах на основе МК используются клавиатуры и индикаторы или дисплеи, т.е. эти устройства предназначены для работы с человеком. Конечно же есть и устройства где не предполагается никакого непосредственного интерфейса с человеком. Подумайте и назовите примеры разных устройств на основе МК.
Целью лабораторной работы, является изучение основ ввода-вывода пользовательской информации и программного управления этим процессом в «малых» или встраиваемых (embedded) вычислительных системах.
2.1Ввод-вывод двоичной информации
Самый простой и необходимый ввод-вывод в микроконтроллерных системах – это обмен двоичной информацией через порты общего назначения, которые подключены к «ножкам» МК. Обычно программист знакомящейся с новым МК пишет первую программу мигания светодиодом, при этом он должен изучить систему тактирования МК, организацию вывода двоичной информации и оценить нагрузочную способность порта вывода. С проектом мигания светодиодом («привет мир») вы уже знакомы, он находится по адресу svn://esau.tusur.ru/_labs/laba0/Trunk/test1.
В статье «ARM Cortex-M3 на пальцах: порты ввода-вывода (GPIO)» находящейся по адресу http://freehabr.ru/blog/technology/765.html достаточно хорошо описана работа с отдельными портами ввода-вывода для МК STM32F1xxx.
Для «отличного» понимания работы порта ввода-вывода, поясним схему отдельного порта, приведенную в технической документации на стр. 188, рисунок 32.
Начнем справа налево или снаружи внутрь. PAD – одна «ножка» (вывод) МК. Два защитных диода включенных последовательно между самым низким потенциалом и самым высоким потенциалом схемы, и соединенных с выводом МК. Защитный резистор ESD_R от которого идут два сигнала на аналоговые блоки. Два коммутируемых резистора, программно подключаемых к низкому потенциалу и к высокому, в документации они называются резисторами «подтяжки» (PULL_UP и PULL_DOWN). Два треугольника TX и RX программно управляемые усилители-формирователи выходного и входного сигналов. MUX мультиплексоры, обеспечивающие подключение различных функций и переключение режимов порта. К входам мультиплексоров подключены различные управляющие триггеры, описание которых нужно смотреть в тексте документации.
Сэтой задачей большинство студентов должно быть уже знакомо из первого проекта «привет мир» svn://esau.tusur.ru/_labs/laba0/Trunk/test1, с которого начинается практический курс освоения МК фирмы «Миландр». На «отлично» стоит освоить особый режим доступа к битам порта: «bit-banding». Для этого нужно прочитать раздел «Bit-band регионы» в
спецификации на стр. 30., а также соответствующий раздел в [1,2] в предыдущей части пособия 1.5 .
Под двоичным датчиком мы будем понимать устройство на выходе, которого формируется «логическая единица» или «ноль». Это могут быть различные «концевики»,
ТУСУР, "Миландр" |
Каф. ЭСАУ |
Недяк С.П., Шаропин Ю.Б |
Февраль 2017 г. |
Часть II. Ввод-вывод в МК «Миландр» - 2 |
96 |
контакторы, переключатели… и просто кнопки. На первый взгляд может показаться, что опрос двоичного датчика дело крайне простое, конечно, так оно и есть! Но не для новичка… Дело в том, что любая неидеальная система, обладает некоторыми нежелательными свойствами. В случае с механическими коммутаторами – это механические, резонансные колебания и возможно искровые и тепловые явления приводящие к многократному переходу сигнала с коммутатора из одного состояния в другое. Это явление получило название «дребезг контактов». Как с ним бороться придумает, найдет или вспомнит любой студент четвертого курса. Укажем лишь, что борьба с этим явлением ведется, как на аппаратном уровне, так и на программном. Также обратите свое внимание на схему отладочной платы!!
Приведите или придумайте пример двоичного датчика, не обладающего эффектом дребезга контактов?
Прежде всего, следует вспомнить (из предшествующих тем электроники и вычислительной техники) виды представления информации в ЭВМ, а также узнать и вспомнить какие виды электронных приборов предназначены для этого.
Таблица 1 — Устройства вывода информации
Тип информации |
Устройство |
|
|
Битовая (логическая) информация |
Светодиод, лампа.. |
|
|
Цифровая двоичная |
Линейка светодиодов, ламп |
|
|
Цифры десятичные, |
Семисегментный индикатор |
шестнадцатеричные... |
|
|
|
Символы алфавита (ASCII – символы). |
Алфавитный-цифровой индикатор |
|
|
Графическая информация |
Графический индикатор (дисплей) |
|
|
Основные физические принципы лежащие в основе построения индикаторов:
1.Лампа накаливания
2.Газоразрядная лампа
3.Электронно-лучевая трубка (люминесценсия при бомбардировки электронами)
4.Излучение светодиода (LED, СИД)
5.Поляризация света жидкими кристаллами (LCD, ЖК)
6.Излучение органического светодиода (OLED)
7.Добавить самим.
ТУСУР, "Миландр" |
Каф. ЭСАУ |
Недяк С.П., Шаропин Ю.Б |
Февраль 2017 г. |