Дипломная работа: Особенности разработки микропроцессорной системы и устройства для чтения электронных книг
Описание:
AT90S8515 является 8-ми разрядным CMOS микроконтроллером с низким уровнем энергопотребления, основанным на усовершенствованной AVR RISC архитектуре. Благодаря выполнению высокопроизводительных инструкций за один период тактового сигнала, AT90S8515 достигает производительности, приближающейся к уровню 1 MIPS на МГц, обеспечивая разработчику возможность оптимизировать уровень энергопотребления в соответствии с необходимой вычислительной производительностью.
Ядро AVR содержит мощный набор инструкций и 32 рабочих регистра общего назначения. Все 32 регистра напрямую подключены к арифметико - логическому устройству (АЛУ), что обеспечивает доступ к двум независимым регистрам при выполнении одной инструкции за один такт. В результате, данная архитектура имеет более высокую эффективность кода, при повышении пропускной способности, вплоть до 10 раз, по сравнению со стандартными микроконтроллерами CISC.
AT90S8515 имеет: 8 Кбайт Flash - памяти с поддержкой внутрисистемного программирования, 512 байт EEPROM, 512 байт SRAM, 32 линий I/O общего назначения, 32 рабочих регистра общего назначения, универсальные таймеры/ счетчики с режимами сравнения, внутренние и внешние прерывания, программируемый UART последовательного типа, программируемый следящий таймер с встроенным тактовым генератором и программируемый последовательный порт SPI, а также, два программно выбираемых режима экономии энергопотребления. Режим ожидания «Idle Mode» останавливает CPU, но позволяет функционировать SRAM, таймеру/ счетчикам, SPI порту и системе прерываний. Режим экономии энергопотребления «Power Down» сохраняет значения регистров, но останавливает тактовый генератор, отключая все остальные функции микроконтроллера, вплоть до следующего внешнего прерывания, или до аппаратной инициализации.
Устройство производится с применением технологи энергонезависимой памяти с высокой плотностью размещения, разработанной в корпорации Atmel. Встроенная Flash - память с поддержкой внутрисистемного программирования обеспечивает возможность перепрограммирования программного кода в составе системы, посредством SPI последовательного интерфейса, или с помощью стандартного программатора энергонезависимой памяти. Благодаря совмещению усовершенствованного 8-ми разрядного RISC CPU с Flash- памятью с поддержкой внутрисистемного программирования на одном кристалле получился высокопроизводительный микроконтроллер AT90S8515, обеспечивающий гибкое и экономически- высокоэффективное решение для многих приложений встраиваемых систем управления.
AVR AT90S8515 поддерживается полным набором программ и пакетов для разработки, включая: компиляторы С, макроассемблеры, отладчики/ симуляторы программ, внутрисхемные эмуляторы и наборы для макетирования.
2.4 Разработка функциональной схемы устройства
Теперь, когда мы составили структурную схему разрабатываемого устройства, зная тип микроконтроллера, мы можем приступить к построению функциональной схемы устройства для чтения электронных книг (Рисунок 2.3).
|
|
|
|
С COM-порта во flash-память
Рисунок 2.3 – Функциональная схема устройства для чтения электронных книг
2.5 Разработка программного обеспечения микроконтроллера
Несвязанное с компьютером устройство может только считывать записанную в него книгу. Для стирания памяти либо записи в неё надо выбрать пункт меню: "Связь с ЭВМ", непосредственно затем послать либо число 0x5e, либо 0xe5. В первом случае устройсво перейдёт в командный режим, во втором - в отладочный, когда принимаемый от компьютера символ будет просто отображаться на экране.
Команды, подаваемые на устройство, таковы:
10 - стереть первую МС памяти,
20 - стереть вторую МС памяти,
30 - записать в память данные,
40 - считать из памяти начиная с текущего адреса,
50 - выставить текущий адрес.
Последние две команды являются также отладочными и не используются в обычном нормальном функционировании устройства. Первые две не требуют никаких дальнейших действий кроме ожидания сообщения на экране устройства, что память стёрта. Команда записи в память потребует сначала ввести заголовок данной книги (то есть автора и название, это нужно для дальнейшей идентификации текста при использовании устройства), завершив его посылкой символа 0x07, а затем передать массив текста. После окончания цикла записи символа в память устройство подтверждает приём, посылая этот же символ в компьютер, что позволяет контролировать скорость передачи данных, и не потерять данные при записи. Передача текста также финишируется посылкой кода 0x07. Этот код был выбран потому, что является управляющим и обозначает звонок, писк на динамике компьютера (bell), то есть принципиально не может встретиться в текстовых файлах.
Файлы программ находятся в приложениях А-З:
reader.asm – Приложение А;
rus.inc – Приложение Б;
reader.hex – Приложение В;
reader.cpp – Приложение Д;
reader.exe – Приложение Ж;
reader.ini – Приложение З.
Первый файл, reader.asm (Приложение А), содержит собственно код для AT90S8515, следующий файл содержит эквиваленты русских букв (AVR Studio традиционно некорректно работает с неанглийскими символами, причём проблема эта прекрасно известна программистам Atmel), reader.hex (Приложение В) - откомпилированный код, прошивка того, что получилось. Далее содержится пример программы для компьютера, написанной на языке Си под DOS, позволяющей записывать текстовые файлы - reader.cpp (Приложение Д), reader.exe (Приложение Ж) - это соответственно откомпилированный reader.cpp, а reader.ini (Приложение З) - файл настроек для программы. Настроек, собственно, две: это на какой порт подключено устройство (в примере поддерживаются только COM1 и COM2, впрочем, легко добавить в исходник программы и остальные порты) и кодировка записываемого текста (WIN или DOS). Само устройство отображает текст, который записан в него только в кодировке WIN, но поскольку очень много текстов в Интернете, доставшихся в наследство ещё от FIDO, имеют кодировку DOS, то программа позволяет перекодировать при записи, на лету, освобождая пользователя от этой предварительной процедуры. Также программа отфильтровывает "лишние" пробелы, получившиеся при форматировании текста, убирает переносы, оставляя нетонутыми дефисы и тире перед фразами речи. Для программы при запуске существуют два возожных параметра - либо "reader.exe e", означающий стирание памяти, либо "reader.exe w <имя_файла>", позволяющее записать файл. При записи программа попросит ввести имя автора и название книги.
2.6 Выбор элементной базы