Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 11:53, курсовая работа
За последние годы в микроэлектронике бурное развитие получило направление, связанное с выпуском однокристальных микроконтроллеров, которые предназначены для «интеллектуализации» оборудования различного назначения. Однокристальные микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающие в себя все оставшиеся части "голой" микро-ЭВМ: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой. К настоящему времени более двух третей мирового рынка микропроцессорных средств составляют именно однокристальные микроконтроллеры.
1. Введение. 2
2. Обзор программаторов. 3
2.1. Программатор Громова. 4
2.2. STK200/300. 5
2.3. USBAsp. 6
3. Последовательное программирование AT89S52. 6
3.1. Алгоритм программирования. 6
3.2. Интерфейс программирования SPI. 7
4. Аппаратная реализация программатора. 8
4.1. Микросхема FT245BM. 9
5. Программная реализация. 10
5.3. Использование драйвера D2XX. 10
5.2. Bitbang. 10
0
1. Введение. 2
2. Обзор программаторов. 3
2.1. Программатор Громова. 4
2.2. STK200/300. 5
2.3. USBAsp. 6
3. Последовательное программирование AT89S52. 6
3.1. Алгоритм программирования. 6
3.2. Интерфейс программирования SPI. 7
4. Аппаратная реализация программатора. 8
4.1. Микросхема FT245BM. 9
5. Программная реализация. 10
5.3. Использование драйвера D2XX. 10
5.2. Bitbang. 10
Развитие микроэлектроники
и широкое применение ее изделий
в промышленном производстве, в устройствах
и системах управления самыми разнообразными
объектами и процессами является
в настоящее время одним из
основных направлений научно-
Использование микроконтроллеров
в изделиях производственного и
культурно-бытового назначения не только
приводит к повышению технико-
За последние годы в
микроэлектронике бурное развитие получило
направление, связанное с выпуском
однокристальных
Однако такие устройства
сами по себе являются чисто исполнительным.
Использование их для решения
конкретных задач требует написания
алгоритма программы, управляющей
микроконтроллером. Такая программа
загружается в ПЗУ
Таким образом, программирование микроконтроллеров является неотъемлемой частью разработки микроконтроллерной техники, а потому тема специализированных устройств – так называемых программаторов – и соответствующего программного обеспечения, стала актуальной с самого появления микроконтроллеров и остается таковой по сей день.
В данной работе исследовалась возможность программирования микроконтроллера Atmel AT89S52 через USB порт компьютера с использованием микросхемы FTDI FT245B.
Первые программаторы были автономными — для набора прошивки имелась клавиатура или коммутационная панель. С распространением ПК такие программаторы были полностью вытеснены подключаемыми к компьютеру — специальная программа (которая также называется программатором) передаёт прошивку с компьютера, а программатору остаётся только записать её в память микросхемы.
Для подключения программаторов могут применяться:
Стоит заметить, что в самых простых параллельных и последовательных программаторах управляющему ПО приходится напрямую управлять логическим уровнем на выводах порта (bitbang). Такое прямое управление в Windows NT запрещено, это обходится установкой специализированного драйвера; через адаптеры USB→COM bitbang-программаторы работают крайне медленно (единицы-десятки байт в секунду). Микроконтроллерные программаторы полностью поддерживают протокол COM- или LPT-порта и поэтому свободны от этих недостатков.
Специализированные платы изредка применялись до появления USB, так как позволяли достичь максимальных скоростей обмена данными. Впрочем, одновременно они делали программатор стационарным.
Современные программаторы подключаются через USB (лишь простые дешёвые конструкции используют COM- или LPT-порты). Высокопроизводительные промышленные программаторы используют Ethernet.
Помимо способа подключения
к компьютеру, программаторы различаются
по сложности. Если нужно запрограммировать
микроконтроллер единожды, радиолюбители
обходятся простейшими
Разработчики программ для
микроконтроллеров или своих
схем используют более сложные программаторы,
которые часто содержат свой микроконтроллер.
Такие программаторы позволяют
работать сразу с одним или
несколькими семействами
В конструкторских бюро и лабораториях используют универсальные программаторы. Поскольку в таких устройствах каждый из выводов разъёма (а этих выводов может быть до сотни) может подавать на микросхему напряжения от 0 до 27 В с точностью в 0,1 вольт и частотами до 40 МГц, универсальные программаторы бывают очень дороги — до нескольких тысяч долларов. Зато при появлении новой микросхемы достаточно добавить её поддержку на программном уровне.
Одним из простейших программаторов, используемых в настоящее время, является программатор Громова. Такой программатор представляет собой несколько проводов, резисторов и диодов. Его схема приведена на рисунке 1.
Рис. 1. Схема программатора Громова
Управляется такой программатор специальным ПО, которое эмулирует протокол SPI. Такие программы работают напрямую с линиями COM порта компьютера и управляют их состояниями.
Минусы:
Плюсы:
Программатор получил свое название от комплектующихся им отладочных плат фирмы ATMEL для быстрого начала работы с микроконтроллерами AT90S8515 и ATmega103 соответственно.
STK200/300 представляет собой
буферизованный адаптер.
Адаптер собран на основе шинного формирователя 74HC244 (рис. 2). Возможно также использование 555АП5 (74LS244) и 1533АП5 (74ALS244) либо, при соответствующем изменении схемы, любые другие неинвертирующие формирователи с тремя состояниями выходов. Применение буфера с третьим (высокоимпедансным) состоянием позволяет по окончании программирования снять сигнал разрешения выходов и, "отключив" адаптер от схемы, не влиять на её работу (за исключением паразитных емкостей между проводами шлейфа от адаптера до платы устройства).
Рисунок 2. Электронная схема адаптера STK200/300
Поскольку разводка рассчитана на установку LPT-разъема непосредственно на плату, для этих адаптеров рекомендуется изготовить удлиннитель порта LPT длиной 1.5-1.8м со всеми линиями и вывести с программатора шлейф до платы с микроконтроллером длиной 20-25 см.
Минусы:
Плюсы:
Данный программатор, в отличие в вышеприведенных, подключается к компьютеру через USB. Таким образом, он может работать с любым современным компьютером. Кроме того, микроконтроллер может программироваться на максимальных скоростях, т.к. скорость передачи данных по USB много больше.
Программирование микроконтроллера AT89S52 может осущесвляться через параллельный или последовательный интерфейсы. Поскольку параллельный интерфейс требует большого количества соединительных линий, в данной работе использовался последовательный режим программирования. Для его использование необходимо подать на вход микроконтроллера RST напряжение питания Vcc. Максимальная частота передачи данных не должна превышать 1/16 частоты осциллятора микроконтроллера. В использованном микроконтроллере частота осцилятора равна 12 МГц, потому частота тактирования программатора не может превышать 0,75 МГц.
Алгоритм программирования в последовательном режиме сводится к следующему. Сперва на микроконтроллер подается питание. Далее вход RST устанавливается в высокое положение. Если внешний осцилятор не подключен к входам XTAL1 и XTAL2, необходимо подать сигналы тактирования с частотой от 3 до 33 МГЦ на вход XTAL1 и подождать как минимум 10 миллисекунд.
Включение последовательного режима программирования осуществляется отправкой комманды "Programming Enable" на выход MOSI. "Programming Enable" должна предшествовать любой другой комманде (табл. 1).
Таблица 1. Набор инструкций последовательного режима программирования микроконтроллера AT89S52
Инструкция |
Формат инструкции |
Операция | |||
Байт 1 |
Байт 2 |
Байт 3 |
Байт 4 | ||
Programming Enable |
1010 1100 |
0101 0011 |
xxxx xxxx |
xxxx xxxx 0110 1001 (вывод на MISO) |
Включение последовательного режима программирования |
Chip Erase |
1010 1100 |
100x xxxx |
xxxx xxxx |
xxxx xxxx |
Стирание флэш-памяти |
Read Program Memory (байтовый режим) |
0010 0000 |
xxx |
|
|
Чтение данных памяти из ячейки с указанным адресом |
Write Program Memory (байтовый режим) |
0110 0000 |
xxx |
|
|
Запись данных в ячейку с указанным адресом |
Write Lock Bits |
1010 1100 |
1110 00 |
xxxx xxxx |
xxxx xxxx |
Запись lock-битов |
Read Lock Bits |
0010 0100 |
xxxx xxxx |
xxxx xxxx |
xxx xx |
Чтение lock-битов |
Read Signature Bytes |
0010 1000 |
xxx |
xxx xxx0 |
Signature Byte |
Чтение байта сигнатуры контроллера |
Read Program Memory (страничный режим) |
0010 0000 |
xxx |
Байт 0 |
Байт 1 … Байт 255 |
Чтение 256 байт с указанной страницы памяти |
Write Program Memory (страничный режим) |
0110 0000 |
xxx |
Байт 0 |
Байт 1 … Байт 255 |
Запись 256 байт на указанную страницу памяти |
Программирование происходит побайтно, как в байтовом, так и в страничном режимах. Цикл записи байта обычно занимает менее 0,5 мс при 5В. Таким же образом происходит и чтение данных из микроконтроллера, за исключением того, что данные передаются по линии MISO.
SPI (англ. Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, шина SPI) — последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырёхпроводным интерфейсом.
SPI является синхронным
интерфейсом, в котором любая
передача синхронизирована с
общим тактовым сигналом, генерируемым
ведущим устройством (
В SPI используются четыре цифровых сигнала:
Хотя SPI интерфейс и является четырехпроводным, для программирования микроконтроллера используется 3 линии. Линия выбора ведомого устройства не используется, т.к. программатор всегда является ведущим.
Передача байта программатором осуществляется выводом данных на MOSI линию и тактированием на линии SCK. В то же время микроконтроллер выводит данные на линию MISO. Первым передается старший бит (рис. ).
Рисунок. Волновые диаграммы приема/передачи байта данных по протоколу SPI
В данной работе программатор был реализован на основе лабораторного модуля, содержащего в себе печатную плату, на которой установлены микроконтроллер AT89S52 и микросхема FT245BM. Микросхема FT245BM установлена в готовом модуле фирмы DLP, состоящем из непосредственно самой микросхемы, USB порта и внешнего осциллятора. Принципиальная схема программатора приведена на рисунке.
Рисунок. Принципиальная схема программатора
Схема крайне проста в исполнении и требует минимальное количество соединений.
Микросхема FT245BM является ключевым компонентом. FT245B – устройство фирмы FTDI, представляющее собой аппаратный конвертер «USB <-> параллельный FIFO» второго поколения. Микросхема позволяет передавать данные со скоростью до 8 Мбит/c. Её физические размеры – 7x7 мм (9x9 включая ножки).