РАСШИРЕНИЕ ВОЗМОЖНОСТЕЙ ЛАБОРАТОРНОГО
КОМПЛЕКСА SDK-1.1
А.Н. Лукичев
Рассматриваются области применения, проблемы использования и способы расширения возможностей лабораторного комплекса на основе контроллера-конструктора SDK-1.1.
Основу лабораторного комплекса составляет контроллер-конструктор (микропроцессорный стенд) SDK-1.1 на базе ОКЭВМ фирмы Analog Devices ADuC812. Сам лабораторный комплекс представляет собой совокупность контроллера-конструктора, подключенного к персональному компьютеру, и программного обеспечения для ПК и SDK-1.1. Подключение осуществляется к COM-порту ПК через кабель RS232, комплекс инструментальных программ обеспечивает весь процесс программирования SDK-1.1: компиляцию, доставку и запуск программ в SDK-1.1.
Контроллер-конструктор имеет в своем составе устройства для ввода и отображения информации, снабжен блоком питания и может работать автономно от ПК.
Основными областями использования комплекса являются:
• обучение основам вычислительной и микропроцессорной техники, систем управления;
• автоматизация простых технологических процессов и лабораторных исследований;
• макетирование микропроцессорных систем, отладка программного обеспечения для систем на базе широко распространенного ядра Intel MCS-51;
• радиолюбительство, управление бытовой техникой.
SDK-1.1 с успехом используются во многих университетах и колледжах России и стран СНГ. На кафедре ВТ СПбГИТМО(ТУ) SDK-1.1 составляют основу лабораторного практикума по таким специальным дисциплинам, как информационно-управляющие системы, системы ввода-вывода, операционные системы реального времени.
Контроллер SDK-1.1 оснащен устройствами для обработки и формирования аналоговых и дискретных сигналов, а также приспособлениями для замыкания выходных цепей на входные и симуляции внешних событий. Это дает возможность использовать SDK-1.1 для обучения основам цифровой обработки сигналов, в качестве контрольно-измерительной панели при проведении экспериментов в различных областях, при настройке оборудования и т.п., а также для формирования аналоговых и дискретных сигналов с заданными параметрами в процессе управления различными объектами. Контроллер может обеспечить первичную обработку и хранение результатов измерений с возможностью последующей передачи их на ПК.
Поскольку центральный вычислитель стенда, ОКЭВМ ADuC812, выполнен на базе вычислительного ядра Intel MCS-51 и полностью совместим с ним, SDK-1.1 может быть применен для разработки и отладки встроенного программного обеспечения систем на базе MCS-51. Использованию SDK-1.1 в качестве прототипа еще не созданной системы способствует также наличие в стенде устройств для симуляции входных воздействий, механизмов контроля реального времени, энергонезависимой памяти.
SDK-1.1 имеет дискретный 20-тиразрядный параллельный порт, позволяющий организовать взаимодействие с различными цифровыми устройствами. Он устроен таким образом, что позволяет независимо использовать 2 блока по 8 линий порта, а также каждую из 4 старших линий. Таким образом, стенд способен взаимодействовать как с 8-ми разрядными, так и с 16..20-ти разрядными устройствами. Кроме того, электрические параметры порта позволяют использовать его в "нестандартных"
решениях. В частности, имеется опыт организации параллельного взаимодействия с группой температурных датчиков DS18B20 (фирмы Dallas Semiconductor), подключенных к 8-ми младшим линиям порта, через интерфейс 1-Wire™. Каждый датчик был соединен 2 проводами: с соответствующей информационной линией ("разрядом") порта и с общей точкой. Питание каждого датчика осуществлялось непосредственно через информационную линию, обмен происходил через нее же. Во время получения текущего значения температуры датчик DS18B20 потребляет ток до 1.5 мА, соответственно, суммарный потребляемый в такой системе ток (вытекающий из порта) достигал 12 мА. Подключение такого рода устройств к SDK-1.1 позволяет использовать стенд в качестве управляющего блока в простых, собранных "на коленках" системах.
Однако главной областью применения микропроцессорного стенда SDK-1.1, безусловно, является обучение различным аспектам встраиваемой вычислительной техники. Студенты имеют возможность ознакомиться на практике с проектированием, программированием, отладкой и использованием создаваемой ими из "конструктора" SDK-1.1 системы, убедиться в сложности и научиться находить пути решения задачи эффективного управления ресурсами, освоить механизмы реального времени и многозадачности. Разнообразные устройства, входящие в состав стенда, позволяют изучить круг вопросов, связанных с организацией взаимодействия с ними через типичные интерфейсы, применяемые во встраиваемых вычислительных системах.
Структура стенда
В своем составе контроллер SDK-1.1 имеет:
• вычислительное ядро на основе ОКЭВМ ADuC812, FLASH-памяти (8 Кб) и внешнего ОЗУ объемом до 512Кб;
• гальванически изолированный порт RS232C для связи с ПК;
• 8, 16,.20-тиразрядный порт дискретного ввода-вывода;
• аналоговый порт ввода на базе 8-миканального 12-тиразрядного высокоскоростного АЦП со встроенным термодатчиком и возможностью работы в режиме ПДП;
• аналоговый порт вывода на основе двух 12-тиразрядных ЦАП;
• EEPROM-память емкостью 640 байт;
• второй блок EEPROM-памяти емкостью до 32 Кб, подключенный к вычислителю через интерфейс I2C;
• 3 16-тиразрядных таймера-счетчика с внешними счетными входами (возможностью подачи сигналов через переключатели стенда) и блоком захвата/сравнения для измерения параметров и/или формирования дискретных сигналов;
• сторожевой (Watchdog) таймер;
• жидкокристаллический индикатор для вывода текста с поддержкой русского алфавита (2 строки по 16 символов);
• линейку из 8 сигнальных светодиодов;
• акустический пьезокерамический излучатель;
• матричную клавиатуру на 16 клавиш;
• переключатели-стимуляторы 10-ти линий параллельного порта, сигналов от внешних источников прерываний, коммутаторы сигналов с выходов ЦАП на входы АЦП;
• часы/календарь с возможностью подключения внешней батареи питания.
Несмотря на обилие механизмов и устройств, входящих в SDK-1.1, контроллер имеет габариты 13 см х 12.5 см х 2 см, выполнен в прочном пластмассовом корпусе и
снабжен защитой от возможных повреждений, связанных с постоянным использованием студентами.
Программирование
Подготовка программ для микроконтроллера ADuC812 осуществляется на языке программирования Си на ПК в обычном текстовом редакторе или средах программирования, IDE, предназначенных для разработки программ для MCS-51, например в среде Keil д Vision. После этого программа компилируется в исполняемый модуль, который доставляется в стенд с помощью разработанного инструментального программного обеспечения.
Рис. 1. Процесс подготовки программ для ЭйК-И
Резидентное системное ПО стенда обеспечивает прием, развертывание исполняемого модуля в ОЗУ и запуск на исполнение принятой программы. Для размещения программ пользователя в 8БК-1.1 доступно 56 Кб ОЗУ. Остальная память (всего до 512 Кб) может быть использована как память данных.
Расширение возможностей
В ходе эксплуатации лабораторного комплекса ББК-1.1 удалось сформировать перечень предложений, направленных на преодоление ограничений и расширение его учебных и инструментальных возможностей, а также на его применение в смежных областях.
Во-первых, дискретный и аналоговый порты контроллера не снабжены гальванической изоляцией, что ограничивает их использование в области управления различными объектами. К этому же ограничению относятся и электрические параметры портов: аналоговый порт принимает (формирует) в качестве сигнала напряжение в диапазоне от 0 до +5В, дискретный порт способен формировать напряжение от 0 до +5В на старших 4 линиях и от 0 до +3.3 В на 16-ти остальных. В связи с этим было предложено спроектировать ряд типовых схем и аппаратных модулей сопряжения контроллера с датчиками и объектами управления.
Во-вторых, в процессе использования стенда часто возникала необходимость создания собственных цифровых устройств, которые бы взаимодействовали с SDK-1.1. Так как SDK-1.1 выполнен в достаточно компактном корпусе, а создаваемое устройство с большой вероятностью представляет собой несколько микросхем, разъемов и пассивных элементов и выполнено в лучшем случае на макетном поле ("слепыше") без корпуса, эксплуатация такого комплекса затруднена из-за постоянной необходимости подключения и отключения устройства от SDK-1.1 при переносе, хранении, начале и завершении использования. Это влечет за собой постоянные неудобства вроде обрывов проводников, срыва или повреждения элементов устройства. Для решения этой проблемы было предложено дополнить стенд достаточно объемным макетным полем, располагающемся в одном корпусе с печатной платой самого SDK-1.1 и допускающим установку микросхем как в DIP-, так и в SMD-корпусах.
В-третьих, при программировании SDK-1.1 иногда возникает необходимость сохранять программу и после выключения питания. Так как стенд создавался для массового использования студентами, такая возможность в базовой его конфигурации имеется лишь за счет замены содержимого FLASH-памяти вычислителя (программы пользователя обычно располагаются в ОЗУ стенда). Однако ее размер составляет всего 8 Кб, что не всегда достаточно для более-менее серьезных программ, таких как курсовые и дипломные проекты, бакалаврские и другие исследовательские работы. К тому же во FLASH-память ADuC812 может быть записан только один образ, т.е. либо одна программа, либо несколько программ, но скомпонованных в один файл. Это затрудняет обновление отдельной программы в наборе, так как, во-первых, для этого необходимо заново компоновать все программы из набора, во-вторых, невозможно перезаписать часть FLASH-памяти ADuC812 без стирания всего ее содержимого. В связи с этим было предложено:
а) рассмотреть возможность сохранения программ в энергонезависимой памяти (EEPROM) стенда, увеличив ее объем до 32 Кб;
б) модифицировать системное ПО стенда таким образом, чтобы оно могло обеспечить развертывание и запуск программ как из ПК, так и из EEPROM;
в) дополнить резидентное системное ПО библиотекой стандартных системных функций для работы с устройствами и механизмами стенда, "разгрузив" тем самым пользовательские программы и существенно уменьшив объем исполняемых модулей.
Результатом решения первой из вышеперечисленных задач явилось создание аппаратных модулей расширения серии SDX - модуля аналогового ввода-вывода SDX-06 и дискретного ввода-вывода SDX-03. SDX-03 имеет 8 оптически изолированных дискретных входов, 4 оптически изолированных транзисторных (коммутация напряжения до +30 В) выхода и 4 релейных выхода. Кроме того, модуль снабжен собственным блоком питания. SDX-06 позволяет обеспечить формирование напряжения в диапазоне -10..+10В для двух ЦАП, а также измерение напряжений -5..+5В для четырех каналов АЦП.
Кроме того, был разработан модуль сопряжения стенда SDK-1.1 с теплофизическими ячейками для получения в комплексе прибора для определения тепловых свойств твердых веществ. Контроллер обеспечивал управление цепями нагрева, снятие показаний датчиков и контроль времени эксперимента, а также первичную обработку и хранение результатов. Имелась возможность передачи результатов на ПК для последующего исследования. Данный прибор демонстрировался на выставке в рамках VII научно-методической конференции стран СНГ "Современный физический практикум - 2002".
Создана модификация стенда SDK-1.1/M, в состав которой входит дополнительно макетное поле размером 12 см х 10.2 см, размещенное в одном корпусе с печатной
платой SDK-1.1 и допускающее двусторонний монтаж компонент, в частности, монтаж микросхем в QFP- и DIP-корпусах.
Ведутся работы по созданию операционного окружения пользовательских программ на основе резидентной библиотеки системных функций, обеспечивающего управление ресурсами SDK-1.1, загрузку и запуск программ из ПК и serial EEPROM. Создана модификация стенда SDK-1.1/E, имеющая serial EEPROM емкостью 32 Кб. В состав операционного окружения включены функции простейшей файловой системы, базирующейся на serial EEPROM, позволяющие размещать в энергонезависимой памяти стенда не только исполняемые модули, но и файлы данных.
Постоянно создаются и совершенствуются методические материалы по применению SDK-1.1 в учебном процессе. В частности, разработаны курсы лабораторных работ с использованием SDK-1.1, снабженные методическими пособиями. Созданы примеры программ для работы с устройствами стенда в виде исходных текстов на языке Си. Инструментальное ПО стенда постоянно обновляется и доступно для загрузки через Интернет.
Заключение
На данный момент в области проектирования встроенных вычислительных систем число и квалификация российских разработчиков во многом уступают зарубежным. Сократить этот разрыв можно было бы за счет подготовки нового поколения российских специалистов и повышения квалификации имеющихся кадров. Разработанный коллективом лаборатории микропроцессорной техники кафедры ВТ СПбГИТМО(ТУ) учебный лабораторный комплекс SDK-1.1 в сочетании с учебно-методическими материалами уже несколько лет с успехом используется при подготовке специалистов в области проектирования встроенных вычислительных систем как в России, так и в других странах СНГ.
Литература
1. Ключев А.О., Кустарев П.В., Платунов А.Е. Инструментальные и учебные контроллеры семейства SDK. // Компоненты и технологии. 2002. №5. С. 96-99.
2. Ключев А.О., Платунов А. Е. Встроенные инструментальные средства современных микроконтроллеров. // Электронные компоненты. 2002. №7. С. 9497.
3. Сайт направления "Информационно-управляющие системы" кафедры вычислительной техники СПбГИТМО (ТУ). URL: http://embedded.ifmo.ru