Ядро AVR содержит мощный набор инструкций и 32 рабочих регистра общего назначения. Все 32 регистра напрямую подключены к арифметико - логическому устройству (АЛУ), что обеспечивает доступ к двум независимым регистрам при выполнении одной инструкции за один такт. В результате, данная архитектура имеет более высокую эффективность кода, при повышении пропускной способности, вплоть до 10 раз, по сравнению со стандартными микроконтроллерами CISC.
AT90S2313 имеет: 2 Кбайт Flash - памяти с поддержкой внутрисистемного программирования, 128 байт EEPROM, 15 линий I/O общего назначения, 32 рабочих регистра общего назначения, универсальные таймеры/ счетчики с режимами сравнения, внутренние и внешние прерывания, программируемый UART последовательного типа, программируемый следящий таймер с встроенным тактовым генератором и программируемый последовательный порт SPI для загрузки программ в Flash память, а также, два программно выбираемых режима экономии энергопотребления. Режим ожидания «Idle Mode» останавливает CPU, но позволяет функционировать SRAM, таймеру/ счетчикам, SPI порту и системе прерываний. Режим экономии энергопотребления «Power Down» сохраняет значения регистров, но останавливает тактовый генератор, отключая все остальные функции микроконтроллера, вплоть до следующего внешнего прерывания, или до аппаратной инициализации.
Устройство производится с применением технологи энергонезависимой памяти с высокой плотностью размещения, разработанной в корпорации Atmel. Встроенная Flash - память с поддержкой внутрисистемного программирования обеспечивает возможность перепрограммирования программного кода в составе системы, посредством SPI последовательного интерфейса, или с помощью стандартного программатора энергонезависимой памяти. Благодаря совмещению усовершенствованного 8-ми разрядного RISC CPU с Flash- памятью с поддержкой внутрисистемного программирования на одном кристалле получился высокопроизводительный микроконтроллер AT90S2313, обеспечивающий гибкое и экономически- высокоэффективное решение для многих приложений встраиваемых систем управления.
AVR AT90S2313 поддерживается полным набором программ и пакетов для разработки, включая: компиляторы С, макроассемблеры, отладчики/ симуляторы программ, внутрисхемные эмуляторы и наборы для макетирования.
4. Ассемблирование
Для ассемблирования спользуется макpоассемблеp MPASM, он содеpжит все необходимые нам возможности. MPASM входит в пакет программ Microchip MPLAB фирмы Microchip Technology.
В pезультате pаботы ассемблеpа создаются файлы со следующими pасшиpениями:
* HEX - объектный файл
* LST - файл листинга
* ERR - файл ошибок и пpедупpеждений
* COD
Объектный файл создается в 16-pичном фоpмате и содеpжит код, котоpый должен быть записан в микpосхему. Файл листинга содеpжит полный листинг пpогpаммы вместе с загpузочным кодом. В файл ошибок и пpедупpеждений записываются все ошибки и пpедупpеждения, возникающие в пpоцессе ассемблиpования. Они также пpисутствуют и в файле листинга.
После обpаботки нашей пpогpаммы ассемблеp должен был выдать сообщение "Assembly Successful", означающее, что ошибок обнаpужено не было. Файл ошибок не должен был создаться.
Листинг программы для велотренажера приведен в Приложении А.
5. Программирование микроконтроллера
После ассемблирования имеется объектный файл EXAMPLE.HEX, котоpый должен быть записан в микpосхему. Запись осуществляется пpи помощи пpогpамматоpа и пpогpаммы Pic-prog.
Микросхему микроконтроллера вставляется в панель программатора.
Программатор подключается к порту LPT1. Необходимо запустить программу Pic_prog.exe.
Подать питание на программатор.
Выполнить команду 'ЗАПИСАТЬ / ПАМЯТЬ ПРОГРАММ'.
В течении следующих нескольких секунд будит выполняться процесс программирования, а затем проверка правильности записанных в микроконтроллер данных.
Объектный файл приведен в Приложении Б.
6. Разработка алгоритма работы устройства
Рис.4. Структурная схема велотренажера (электронная часть)
6.Описание функциональных узлов МПС и алгоритма их взаимодействия
Рис. 5. Функциональная схема велотренажера
1.Герконовый датчик установлен на колесе велотренажера, взаимодействуя с МК.
2. Кварцевый резонатор выдает стабильную частоту на МК.
3. Светодиод информирует о работе устройства при вращении колеса велотренажера.
4. Регулятором R производится настройка.
5. Источник питания, батареи АА, для функционирования схемы.
6. Компьютер – производит сбор информации и включает, выключает работу системы компьютера, согласно программы Velo.
7. Описание выбора элементной базы и работы принципиальной схемы
Нарис. 6 изображена принципиальная схема устройства сопряжения компьютера и тренажера.
Основой схемы является микроконтроллер AT90S2313-10PI. С помощью геркона S1 микроконтроллер отслеживает каждый оборот педалей тренажера. Ротор резистора R1 сопрягается с регулятором нагрузки тренажера. На элементах R1,R3,R5,C5 выполнен своеобразный аналого-цифровой преобразователь. Микроконтроллер измеряет время разряда конденсатора С5 через резисторы R1,R3,R5. В результате положение ротора резистора R1 преобразуется в цифровой код. Светодиод VD1 индицирует каждый оборот кратковременной вспышкой. Передача данных в СОМ порт компьютера производится через оптрон D2. Протокол передачи данных очень простой - с каждым оборотом педалей в компьютер передается на скорости 9600 один байт, который представляет собой код положения ротора резистора R1. Большую часть времени микроконтроллер находится в спящем режиме, поэтому в схеме отсутствует выключатель питания. В режиме ожидания схема потребляет менее 1 мкА. При вращении педалей с частотой 1 оборот в секунду потребление составляет около 300 мкА. Питание осуществляется от двух батарей АА.
Рис.6. Схема сопряжения велотренажера с компьютером
В устройстве применены следующие элементы: микроконтроллер AT90S2313-10PI, оптрон 4N33, кварцевый резонатор на 4 МГц, постоянные резисторы мощностью 0,125 Вт, резистор R1 типа TELPOD WT-2712 или СПЗ-36. Конденсатор С5 желательно использовать с малой температурной зависимостью. Наилучший вариант - К10-43В, но и К73-9. К73-17 тоже можно использовать. Остальные конденсаторы керамические, любого типа. Разъем типа DB25F. Геркон любого подходящего по габаритам типа. Светодиод желательно использовать «сверхяркого» типа. К соединяющему кабелю особых требований не выдвигается - он может быть неэкранированным.
Правильно собранная конструкция в настройке не нуждается. Вращая педали тренажера нужно убедиться, что светодиод VD1 мигает при каждом обороте.
В тренажере ВЕ6200 имеется датчик оборотов, который состоит из постоянного магнита, закрепленного на «рабочем колесе», и геркона, закрепленного на неподвижном кронштейне. Закрепляем «наш» геркон возле «родного» геркона таким образом, чтобы он тоже попадал в поле вращающегося магнита. Регулятор нагрузки в ВЕ6200 управляет натяжением ременного тормоза. Между минимальной и максимальной нагрузкой ручка регулятора делает около шести полных оборотов.
Принципиальная схема синтезатора выполнена в САПР Accel Eda (Рис. 7).
Пришлось написать небольшую вспомогательную программу Velo к программе NikLock. Алгоритм их взаимодействия следующий - NikLock хранит свои настройки в реестре, Velo пишет результат своей работы в то же место реестра. Недостаток такого подхода всего один - заработанное «машинное время» добавляется не «на лету», а после перезагрузки компьютера. Скриншот программы Velo показан на рис.8.
Вначале инсталлируем программу NikLock V1.53 и настраиваем ее на ежедневное использование с начальным лимитом времени 15-30 минут. Далее настраиваем программу Velo. Устанавливаем нужный СОМ порт компьютера (к которому подключен разъем приставки). Затем необходимо произвести калибровку тренажера и нормирование труда. Для этих целей в дистрибутив программы
Рис. 7. Принципиальная схема велотренажера в Accel EDA
Принципиальная схема велотренажера приведена в Приложении В.
Velo входит файл Calibrare.xls. Вначале выкручиваем на тренажере регулятор нагрузки на минимум и смотрим после вращения педалей, какое значение индицируется в окне Byte. Затем повторяем эту процедуру для максимального уровня нагрузки. Вписываем эти значения в соответствующие поля файла Calibrate.xls. Далее нужно вписать в соответствующие поля два параметра по нормированию труда. Первый параметр - это стоимость (в секундах) одного оборота тренажера при минимальном положении регулятора нагрузки. Второй параметр - это коэффициент «утяжеления» занятий при максимальном положении регулятора. Эти два параметра определяются эмпирическим путем на основе личного педагогического опыта. После вписывания всех параметров MS Excel рассчитывает путем линейной интерполяции калибровочную таблицу, в которой отражена «цена» каждого принятого байта. Сохраняем эту таблицу в виде «Форматированный текст (разделители - пробелы)» в ту же папку, где лежит программа Velo. В результате получаем текстовый файл Calibrate.ргп, который программа Velo будет использовать. Этот файл, кстати, можно потом редактировать вручную в любом текстовом редакторе Теперь о повседневном использовании.Ребенок включает компьютер. Программа NikLock отмеряет ему (согласно настройке) небольшой начальный интервал времени. Его можно сразу истратить на компьютерные игры, либо, запустив программу Velo, заработать с помощью велотренажера себе еще некоторое количество «машинного времени». Когда начальный интервал времени истечет, компьютер нужно перезагрузить (или включить снова, если NikLock его уже выключил) и теперь программа NikLock отмерит заработанный интервал времени. Его можно использовать частично на игру, частично опять на заработок нового времени с помощью тренажера и программы Velo и т.д.