Опыт и перспективы применения контроллеров семейства SDK

ОПЫТ И ПЕРСПЕКТИВЫ ПРИМЕНЕНИЯ КОНТРОЛЛЕРОВ

СЕМЕЙСТВА SDK Д.Р. Ковязина, Е.В. Петров Научный руководитель - к.т.н., доцент А.Е. Платунов

В статье обсуждаются опыт и перспективы применения контроллеров семейства SDK в учебном процессе, организованном согласно предлагаемой модели обучения, для подготовки специалиста в области микропроцессорных систем.

Введение

На сегодняшний день точка зрения о том, что эффективно разрабатывать микропроцессорные системы способен «интегральный» специалист, владеющий аппаратными и программными аспектами вычислительной техники [1], получает все больше подтверждений. Однако не все программы обучения специалистов в этой области отвечают потребностям рынка. В данной статье предлагается модель подготовки такого «интегрального» специалиста.

Одним из основных принципов предлагаемой модели обучения основам организации микропроцессорных систем (МПС) является параллельное освоение различных микропроцессорных ядер, периферийных блоков, инструментальных средств и средств проектирования [2].

Для эффективного освоения материала в рамках предложенной модели необходимы микропроцессорные стенды и инструментальные средства. В качестве стендового оборудования обычно используются либо платы развития (evaluation board), наборы прототипирования (development kit, starter kit), предоставляемые фирмами-производителями микропроцессорных компонентов для демонстрации их работы [3], либо специально созданные для учебного процесса учебно-лабораторные стенды [1]. Однако наборы прототипирования из первой группы в большинстве случаев не очень приспособлены для учебных целей, а учебные стенды предлагаются в ограниченной номенклатуре. В последнем случае исключением является семейство микропроцессорных стендов учебного назначения SDK, разрабатываемое фирмой ООО «ЛМТ» [1, 4, 5].

В данной статье обсуждаются опыт и перспективы применения данного семейства стендов в учебном процессе, организованном согласно предлагаемой модели обучения. Предлагаемая модель обучения находится на стадии формализации и развития в рамках научно-образовательного направления «Встроенные вычислительные системы» кафедры вычислительной техники СПбГУ ИТМО [6].

Модель обучения принципам организации МПС

Модель обучения включает три уровня:

1. базовые элементы и основы программирования микропроцессорных систем;

2. принципы организации и программирования микропроцессорных систем;

3. основы проектирования микропроцессорных систем.

Первый уровень предназначен для обучения студентов по направлению «Информатика и вычислительная техника» и смежным с ним направлениям на 3-4 курсе (до деления на специализации). Второй уровень может быть использован для профильной подготовки бакалавров по специализации «Информационно-управляющие системы» и смежным с ней специализациям. Третий уровень может быть использован в процессе подготовки магистров по специализации «Информационно-управляющие системы» и смежным с ней специализациям.

Цель - формирование целостного сквозного представления и глубокого понимания организации МПС.

Предлагаемая модель обучения имеет практический характер и представляет собой спектр тем, которые рассматриваются на каждом уровне и могут быть освоены с применением учебно-лабораторного комплекса SDK. Ее можно сравнить с моделью обучения какому-либо иностранному языку: первый уровень - алфавит, слоги, слова; второй уровень - предложения и правила их составления; третий уровень - рассказы, изложения на заданную тему. Как в случае с изучением иностранного языка необходимо знать родной, так и обучение по данной модели требует определенного уровня начальной подготовки (дискретная математика, основы схемотехники, программирование на языке Си, организация ЭВМ и др.).

Базовые элементы и основы программирования МПС

Основная тема - структурно-функциональная организация МПС. Сюда входят следующие разделы:

• знакомство с основными элементами современных МПС: вычислительное ядро (микроконтроллер), периферийные устройства и интерфейсы связи с ними;

• разработка драйверов периферийных устройств и программ с их использованием для решения простых прикладных задач;

• знакомство с инструментальными средствами и технологической цепочкой программирования МПС.

Принципы организации и программирования МПС

Основная тема - архитектурные особенности и технологии программирования автономных и распределенных МПС. Основным отличием данного уровня от первого является выделение двух направлений обучения: МПС на базе микроконтроллеров и МПС на базе ПЛИС. По сравнению с первым уровнем осуществляется более глубокое изучение понятий архитектуры и программирования МПС посредством увеличения количества аспектов представления таких систем (надежностный, энергетический и др.). Кроме того, уделяется внимание методам отладки и тестирования (верификации) МПС, коммуникационным протоколам, технологиям проводной и беспроводной связи. Характерным для данного уровня является знакомство со стандартными решениями, готовыми компонентами и формирование навыков их эффективного использования.

Основы проектирования МПС

Основная тема - разработка МПС с учетом совокупности аспектов проектирования, в которой стенды SDK являются технической базой или полигоном для апробации своей системы. Основным отличием данного уровня является использование стандартных решений, технологий программирования и готовых компонентов, знания о которых были получены на предыдущих уровнях, в комплексе с самостоятельно разработанными компонентами системы (вычислительными, инструментальными, коммуникационными).

Совершенствование навыков разработки микропроцессорных систем и повышение уровня абстракции их представления может продолжаться и после освоения программы перечисленных уровней, так же как нет предела совершенствованию знаний иностранного языка.

Семейство учебных контроллеров SDK

Учебные стенды SDK (контроллеры), разработанные ООО «ЛМТ» [4, 5], представляют собой функционально законченные устройства, в которых есть вычислительное ядро, набор устройств ввода-вывода и средств общения с оператором, учебно-инструментальное программное обеспечение. Контроллеры могут работать с инструментальной ЭВМ (персональный компьютер) или в автономном режиме. Стенды выполнены в едином конструктиве, допускающем настольное использование или монтаж на DIN-рейку. Стенды комплектуются сетевыми блоками питания, инструментальными кабелями, пользовательской, учебно-методической и технической документацией, демонстрационными и инструментальными программами [1]. В семейство входит 5 стендов. В статье рассматриваются 3 модели семейства SDK, состав и основные характеристики которых представлены в таблице.

SDK-1.1 SDK-2.0 SDK-6.1

Тип МК/ПЛИС ADuC812 LPC2292 EP1C3

Внутренняя Flash 8Кб, Flash 256 Кб, -

память EEPROM 640 байт, RAM 256 байт RAM 16 Кб

Внешняя па- RAM до 512 Кб, RAM 512 Кб Flash 1 Мб,

мять EEPROM до 32 Кб EEPROM 256 байт, RAM 512 Кб

Дискретные входы/выходы 20 20 24

АЦП 8 8 -

ЦАП 2 2 -

Дисплей Симв. ЖКИ 16х2 Граф. ЖКИ 122х32 Симв. ЖКИ 16х2

Клавиатура Матричная 4*4 Матричная 4*4 8 + 1

Светодиоды 8 8 9

Часы реального PCF8583 В составе системно- -

времени го супервизора FM3104

Интерфейсы RS232C, JTAG RS232C, RS485, JTAG, CAN (2 шт.), Ethernet, IEEE 802.15.4/ZigBee RS232C, JTAG

Таблица. Основные представители семейства стендов SDK

В основу архитектуры стендов легли разработки систем промышленной автоматики. Предусмотрены стабилизатор и супервизор питания, схема сброса, сторожевой таймер, энергонезависимая память на базе EEPROM/FRAM и CMOS (RTC). Интерфейс RS232C имеет гальваническую изоляцию, что позволяет подключать и отключать стенды «на ходу», не опасаясь повреждения приемопередатчиков.

Отличительные особенности стенда SDK-1.1:

• простая архитектура на базе широко распространенного процессорного ядра MCS51;

• широкий набор периферийных блоков, включая часы реального времени, энергонезависимую память EEPROM, двустрочный ЖКИ, матричную клавиатуру;

• удобная работа с аналоговыми сигналами благодаря встроенным в микроконтроллер блокам АЦП и ЦАП.

Отличительные особенности стенда SDK-2.0:

• высокая производительность процессорного ядра ARM7 [7];

• большое разнообразие коммуникационных интерфейсов, как проводных (RS232C, RS485, CAN 2.0, Ethernet), так и беспроводных (IEEE 802.15.4);

• графическая консоль.

На рисунке приведен внешний вид стенда SDK-2.0.

Я

Рисунок. Учебный лабораторный стенд SDK-2.0

Отличительные особенности стенда SDK-6.1:

• в основе стенда - микросхема ПЛИС средней емкости;

• встроенная память (FLASH) для хранения нескольких конфигураций микросхемы ПЛИС;

• связь с ПК через интерфейс USB или RS-232 (с гальванической изоляцией).

В рамках предложенной модели обучения стенд SDK-1.1 может использоваться на первом уровне, стенд SDK-2.0 - на всех трех уровнях, стенд SDK-6.1 - на втором и третьем уровне. Далее приводятся конкретные примеры применения названных контроллеров семейства SDK в учебном процессе.

Учебный лабораторный стенд SDK-1.1

Для ознакомления с базовыми элементами и основами программирования микропроцессорных систем на первом уровне предлагаемой модели обучения с использованием учебного стенда SDK-1.1 могут проводиться следующие лабораторные работы.

1. Дискретные порты ввода-вывода.

2. Таймеры. Система прерываний.

3. Последовательный интерфейс.

4. Клавиатура.

5. АЦП. Прямой доступ к памяти.

6. Жидкокристаллический индикатор.

7. Последовательный интерфейс I2C.

Каждая работа включает в себя разработку драйвера периферийного устройства и выполнение с его использованием прикладной задачи, определенной вариантом задания. Подробное описание лабораторных работ представлено на сайте [8].

Перечисленные темы входят в комплекс лабораторных работ, проводимых на 4 курсе кафедры вычислительной техники СПбГУ ИТМО по дисциплинам «Интерфейсы

периферийных устройств» (лабораторные работы 1-4) и «Информационно-управляющие системы» (лабораторные работы 5-7) для студентов всех специализаций. В создании и ведении этих лабораторных работ принимали участие авторы статьи.

Далее приводятся краткие описания некоторых лабораторных работ.

1. Последовательный интерфейс.

Данная лабораторная работа посвящена изучению принципов работы с контроллером последовательного обмена - универсальным асинхронным приемопередатчиком (UART) микроконтроллера ADuC812. Модуль UART поддерживает протокол обмена для интерфейса RS232C. В работе требуется реализовать драйверы UART, работающие с использованием и без использования прерываний, с контролем ошибочных состояний. Драйвер UART, реализованный в режиме прерываний, использует программные буферы FIFO для организации взаимодействия процесса обработки прерывания и пользовательского процесса в виде API-функций.

В результате выполнения работы студент знакомится со следующими темами:

• организация работы с асинхронными процессами и устройствами, механизмы синхронизации (критические секции, взаимные исключения);

• организация последовательной передачи данных;

• стандарт RS232C;

• реализация гальванической изоляции последовательного интерфейса.

2. Клавиатура.

В работе требуется реализовать драйвер клавиатуры стенда SDK-1.1, работающего по таймеру микроконтроллера ADuC812, устраняющий эффект дребезга контактов. Драйвер клавиатуры должен определять факты нажатия и отпускания клавиш, идентифицировать скан-код нажатой клавиши и записывать его в программный буфер FIFO, иметь возможность настраивать задержку и скорость автоповтора передачи скан-кода нажатой клавиши в буфер.

В результате выполнения работы студент знакомится со следующими темами:

• организация работы с асинхронными процессами и устройствами, механизмы синхронизации (критические секции, взаимные исключения);

• принципы работы с матричной клавиатурой;

• методы сканирования клавиатуры, эффект дребезга контактов.

Учебный лабораторный стенд SDK-2.0

Темы лабораторных работ с использованием учебного стенда SDK-2.0 могут быть такими же, что и в лабораторном комплексе на базе SDK-1.1. Отличие заключается в более сложной архитектуре микропроцессорного ядра ARM7 в стенде SDK-2.0 по сравнению с архитектурой микроконтроллера MCS-51 стенда SDK-1.1, а также в наличии разнообразных коммуникационных интерфейсов. Предлагаемые лабораторные работы могут проводиться для ознакомления с принципами организации и программирования микропроцессорных систем на первых двух уровнях описанной модели обучения.

1. Порты ввода-вывода.

2. Таймер. Контроллер прерываний.

3. Последовательный канал.

4. АЦП и ШИМ.

5. Матричная клавиатура.

6. Графический ЖКИ.

7. Интерфейс I2C.

8. Системный супервизор. Часы реального времени.

9. Интерфейс RS485.

10. Интерфейс CAN-2.0.

11. Интерфейс Ethernet.

12. Беспроводной интерфейс IEEE 802.15.4.

Далее приводятся краткие описания некоторых лабораторных работ.

1. Таймер. Контроллер прерываний.

В работе требуется реализовать драйвер системного таймера, работающего по прерыванию. С помощью драйвера таймера предлагается реализовать динамическую индикацию линейки светодиодов и генерацию звука различных частот с помощью звукового пьезоизлучателя. В процессе выполнения лабораторной работы студент знакомится со следующими темами:

• режимы работы встроенных в ядро микропроцессора таймеров;

• организация векторного контроллера прерываний;

• особенности процедуры настройки прерываний от периферийных блоков микропроцессорного ядра ARM7.

2. Интерфейс Ethernet.

Задачей лабораторной работы является реализация драйвера контроллера Ethernet и осуществление обмена данными между двумя стендами SDK-2.0, объединенными в сеть типа «точка-точка» или «звезда» (в качестве центрального узла используется стандартный маршрутизатор). Целью лабораторной работы является приобретение навыков работы с интерфейсом Ethernet на канальном уровне стека протоколов TCP/IP.

Также стенд SDK-2.0 можно использовать как базу для выполнения курсовых проектов в рамках второго уровня описанной выше модели обучения, например, по следующим темам.

1. Построение контроллерной сети. Целью работы является построение сети контроллеров SDK-2.0, состоящей из 3-4 узлов, с гетерогенной средой передачи данных при помощи следующих интерфейсов: RS485, CAN-2.0, Ethernet, IEEE 802.15.4.

2. Создание Web-сервера. Целью работы является реализация Web-интерфейса, обеспечивающего отображение состояния периферийных блоков стенда SDK-2.0. Доступ к Web-серверу осуществляется по интерфейсу Ethernet.

3. Знакомство с технологией программирования в среде операционных систем реального времени (ОСРВ). Целью работы является адаптация (портирование) драйверов периферийных устройств стенда SDK-2.0 для работы под управлением ОСРВ и выполнение перечисленных выше лаборатоных работ в среде ОСРВ.

На третьем уровне модели обучения могут выполняться следующие курсовые работы.

1. Реализация многофункционального загрузчика. Целью работы является реализация загрузчика программ/данных, обеспечивающего программирование всех доступных ресурсов памяти (FLASH, FRAM, внутреннее ОЗУ, внешнее ОЗУ) и передачу управления в любую указанную область памяти (в которой возможно исполнение программ). Прием данных должен осуществляться по следующим интерфейсам: RS232C, CAN и IEEE 802.15.4.

2. Построение беспроводной сети с ячеистой топологией. Целью работы является изучение принципов построения самоорганизующихся беспроводных сетей. Особое внимание в работе должно быть уделено вопросам надежности передачи данных, а также минимизации потребления энергии узлами сети. На практике требуется построить сеть, включающую 5-8 контроллеров SDK-2.0. В качестве среды передачи данных используется радиоканал стандарта IEEE 802.15.4 (ZigBee).

3. Проектирование элементов операционной системы реального времени. Целью работы является изучение и реализация основных компонентов операционной системы: переключатель задач, планировщик задач, средства межпроцессного взаимодействия и др.

Учебный лабораторный стенд SDK-6.1

Стенд SDK-6.1 предназначен для обучения основам проектирования современных электронных модулей на базе микросхем программируемой логики (ПЛИС) средней емкости.

Темы лабораторных работ с использованием стенда SDK-6.1, которые могут поводиться на втором уровне предлагаемой модели обучения.

1. Знакомство с архитектурой микросхем ПЛИС.

2. Устройства индикации. Кнопки.

3. Логические и арифметические структуры.

4. Внутрисхемная отладка через интерфейс JTAG.

5. Интерфейс RS232C.

6. Интерфейс I2C.

7. Память EEPROM и FLASH.

8. Алгоритмы и блоки сигнальной обработки данных.

Далее приводятся краткие описания некоторых лабораторных работ.

1. Логические и арифметические структуры.

В даннной работе предлагается реализовать один или несколько базовых блоков микропроцессорной техники, таких как триггеры, счетчики, сдвиговые регистры. Работу реализованных блоков необходимо проверить с помощью устройств ввода-вывода стенда SDK-6.1 (светодиодные индикаторы, кнопки, переключатели). В процессе выполнения лабораторной работы студент осваивает организацию базовых элементов микропроцессорной техники.

2. Интерфейс RS232C.

В работе нужно реализовать приемопередатчик последовательного асинхронного интерфейса RS232C с использованием библиотечных элементов САПР, и с помощью двух стендов SDK-6.1, соединенных между собой, убедиться в его работоспособности. В качестве линий передачи данных следует использовать дискретные порты ввода-вывода (в таком случае передача данных осуществляется на TTL-уровне сигналов). В ходе выполнения данной лабораторной работы студент должен ознакомиться со следующими темами:

• внутренняя организация асинхронного приемопередатчика последовательного интерфейса RS232C;

• построение самосинхронизирующихся интерфейсов.

Далее приведены возможные темы курсовых проектов, выполняющихся на базе стенда SDK-6.1 в рамках третьего уровня описанной модели обучения.

1. Проектирование простейшего процессора.

2. Проектирование блоков памяти.

3. Проектирование интерфейсов передачи данных.

4. Проектирование параллельных микропроцессорных систем.

Заключение

На сегодняшний день учебные лабораторные комплексы, разработанные в ООО «ЛМТ», используются в учебном процессе ряда вузов Российской Федерации и других государств, в том числе Санкт-Петербургского государственного университета инфор-

мационных технологий, механики и оптики, Санкт-Петербургского государственного политехнического университета, Гродненского государственного технического университета (Беларусь), Политехнического института Сибирского федерального университета (Красноярский государственный технический университет), Уральского государственного технического университета и др.

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

Литература

1. Ключев А.О., Кустарев П.В., Платунов А.Е. Инструментальные и учебные контроллеры семейства SDK // Компоненты и технологии. - 2002. - № 5. - С. 70-73.

2. Ключев А.О., Платунов А.Е. Встроенные инструментальные средства современных микроконтроллеров // Электронные компоненты. - 2002. - № 7. - С. 1-4.

3. Сайт компании «ЭФО». - Режим доступа: http://efo.ru

4. Сайт научно-производственной фирмы ООО «ЛМТ». - Режим доступа: http://lmt.ifmo.ru

5. Научно-производственная фирма ООО «ЛМТ» и ее продукция // Промышленные АСУ и контроллеры. - 2003. - № 2. - С. 24-26.

6. Сайт центра информационных систем кафедры вычислительной техники СПбГУ ИТМО. - Режим доступа: http://cis.ifmo.ru

7. ARM7TDMI-S. Technical Reference Manual // 2001 ARM Limited.

8. Сайт направления «Информационно-управляющие системы» кафедры вычислительной техники СПбГУ ИТМО. - Режим доступа: URL: http://emdedded.ifmo.ru