Материал: 6798

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Часть II. Ввод-вывод в МК «Миландр» - 1

92

Исследуем состав демонстрационного проекта. Первое, что мы видим в рабочем пространстве - это дерево, привычное по структуре каталогов жесткого диска (ЖД), но эта структура может не соответствовать структуре файлов и папок на ЖД, где хранятся файлы проекта. В корне имя проекта, далее расположены группы файлов (желтая иконка папки). Программный модуль, как правило, состоит из двух файлов с расширениями name.с и name.h. Программный модуль может использовать функции, переменные, и т.д... другого программного модуля, что приводит к иерархичности и взаимосвязи модулей всего проекта.

1.3.1Иерархичность проекта MDR32F9Qx_Demo

Самым близким к железу, являются модули, реализующие драйвера отдельных модулей МК. Они находятся в группе 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.4Требования к содержанию отчета

1.Титульный лист.

2.Цель работы.

3.Теоретические основы по работе.

4.Структурная(ые) схема(ы) участка устройства, изучаемого в работе.

5.Исходный текст модифицируемых Вами участков кода и сопутствующего контекста.

6.Список допущенных ошибок их анализ!

7.Выводы по лабораторной работе.

8.Отчет разместить Redmine, проект зафиксировать в репозитории Subvertion с заполненным комментарием. Комментарий обязательно должен содержать: Номер ЛР, ФИО, группа и описание изменений в коде.

1.5Литература

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 мультиплексоры, обеспечивающие подключение различных функций и переключение режимов порта. К входам мультиплексоров подключены различные управляющие триггеры, описание которых нужно смотреть в тексте документации.

2.1.1Работа с отдельными портами. Вывод информации.

Сэтой задачей большинство студентов должно быть уже знакомо из первого проекта «привет мир» svn://esau.tusur.ru/_labs/laba0/Trunk/test1, с которого начинается практический курс освоения МК фирмы «Миландр». На «отлично» стоит освоить особый режим доступа к битам порта: «bit-banding». Для этого нужно прочитать раздел «Bit-band регионы» в

спецификации на стр. 30., а также соответствующий раздел в [1,2] в предыдущей части пособия 1.5 .

2.1.2Опрос двоичного датчика. Ввод информации.

Под двоичным датчиком мы будем понимать устройство на выходе, которого формируется «логическая единица» или «ноль». Это могут быть различные «концевики»,

ТУСУР, "Миландр"

Каф. ЭСАУ

Недяк С.П., Шаропин Ю.Б

Февраль 2017 г.

Часть II. Ввод-вывод в МК «Миландр» - 2

96

контакторы, переключатели… и просто кнопки. На первый взгляд может показаться, что опрос двоичного датчика дело крайне простое, конечно, так оно и есть! Но не для новичка… Дело в том, что любая неидеальная система, обладает некоторыми нежелательными свойствами. В случае с механическими коммутаторами – это механические, резонансные колебания и возможно искровые и тепловые явления приводящие к многократному переходу сигнала с коммутатора из одного состояния в другое. Это явление получило название «дребезг контактов». Как с ним бороться придумает, найдет или вспомнит любой студент четвертого курса. Укажем лишь, что борьба с этим явлением ведется, как на аппаратном уровне, так и на программном. Также обратите свое внимание на схему отладочной платы!!

Приведите или придумайте пример двоичного датчика, не обладающего эффектом дребезга контактов?

2.2Вывод символьной информации

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

Таблица 1 — Устройства вывода информации

Тип информации

Устройство

 

 

Битовая (логическая) информация

Светодиод, лампа..

 

 

Цифровая двоичная

Линейка светодиодов, ламп

 

 

Цифры десятичные,

Семисегментный индикатор

шестнадцатеричные...

 

 

 

Символы алфавита (ASCII – символы).

Алфавитный-цифровой индикатор

 

 

Графическая информация

Графический индикатор (дисплей)

 

 

Основные физические принципы лежащие в основе построения индикаторов:

1.Лампа накаливания

2.Газоразрядная лампа

3.Электронно-лучевая трубка (люминесценсия при бомбардировки электронами)

4.Излучение светодиода (LED, СИД)

5.Поляризация света жидкими кристаллами (LCD, ЖК)

6.Излучение органического светодиода (OLED)

7.Добавить самим.

ТУСУР, "Миландр"

Каф. ЭСАУ

Недяк С.П., Шаропин Ю.Б

Февраль 2017 г.

Источник: https://studfile.net/preview/16438538/