USB программатор МК AT89S52

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

_Курсовая.docx

— 200.46 Кб (Скачать файл)

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

 

 

1. Введение.

Развитие микроэлектроники и широкое применение ее изделий  в промышленном производстве, в устройствах  и системах управления самыми разнообразными объектами и процессами является в настоящее время одним из основных направлений научно-технического прогресса.

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

За последние годы в  микроэлектронике бурное развитие получило направление, связанное с выпуском однокристальных микроконтроллеров, которые предназначены для «интеллектуализации» оборудования различного назначения. Однокристальные микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающие в себя все оставшиеся части "голой" микро-ЭВМ: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой. К настоящему времени более двух третей мирового рынка микропроцессорных средств составляют именно однокристальные микроконтроллеры.

Однако такие устройства сами по себе являются чисто исполнительным. Использование их для решения  конкретных задач требует написания  алгоритма программы, управляющей  микроконтроллером. Такая программа  загружается в ПЗУ микроконтроллера, и этот процесс называется программированием  устройства.

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

В данной работе исследовалась  возможность программирования микроконтроллера Atmel AT89S52 через USB порт компьютера с использованием микросхемы FTDI FT245B.

 

 

2. Обзор программаторов.

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

Для подключения программаторов могут применяться:

  • последовательный порт;
  • параллельный порт;
  • специализированная интерфейсная плата (ISA или PCI);
  • USB;
  • Ethernet.

Стоит заметить, что в самых  простых параллельных и последовательных программаторах управляющему ПО приходится напрямую управлять логическим уровнем на выводах порта (bitbang). Такое прямое управление в Windows NT запрещено, это обходится установкой специализированного драйвера; через адаптеры USB→COM bitbang-программаторы работают крайне медленно (единицы-десятки байт в секунду). Микроконтроллерные программаторы полностью поддерживают протокол COM- или LPT-порта и поэтому свободны от этих недостатков.

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

Современные программаторы  подключаются через USB (лишь простые  дешёвые конструкции используют COM- или LPT-порты). Высокопроизводительные промышленные программаторы используют Ethernet.

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

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

В конструкторских бюро и  лабораториях используют универсальные  программаторы. Поскольку в таких  устройствах каждый из выводов разъёма (а этих выводов может быть до сотни) может подавать на микросхему напряжения от 0 до 27 В с точностью в 0,1 вольт и частотами до 40 МГц, универсальные программаторы бывают очень дороги — до нескольких тысяч долларов. Зато при появлении новой микросхемы достаточно добавить её поддержку на программном уровне.

2.1. Программатор Громова.

Одним из простейших программаторов, используемых в настоящее время, является программатор Громова. Такой программатор представляет собой несколько проводов, резисторов и диодов. Его схема приведена на рисунке 1.

Рис. 1. Схема программатора Громова

Управляется такой программатор специальным ПО, которое эмулирует протокол SPI. Такие программы работают напрямую с линиями COM порта компьютера и управляют их состояниями.

Минусы:

  • работа через COM порт
  • малая скорость программирования
  • невозможность работы через переходники USB-COM
  • требует специального ПО

Плюсы:

  • простота исполнения
  • состоит из пассивных элементов (не требует питания)
  • дешевизна

2.2. STK200/300.

Программатор получил  свое название от комплектующихся им отладочных плат фирмы ATMEL для быстрого начала работы с микроконтроллерами AT90S8515 и ATmega103 соответственно.

STK200/300 представляет собой  буферизованный адаптер. Буферизованные  адаптеры запитываются от платы с программируемым процессором, т.е. питание подаётся на программируемую плату, а с неё на адаптеры поступает через шлейф.

Адаптер собран на основе шинного  формирователя 74HC244 (рис. 2). Возможно также  использование 555АП5 (74LS244) и 1533АП5 (74ALS244) либо, при соответствующем изменении  схемы, любые другие неинвертирующие формирователи с тремя состояниями выходов. Применение буфера с третьим (высокоимпедансным) состоянием позволяет по окончании программирования снять сигнал разрешения выходов и, "отключив" адаптер от схемы, не влиять на её работу (за исключением паразитных емкостей между проводами шлейфа от адаптера до платы устройства).

Рисунок 2. Электронная схема адаптера STK200/300

Поскольку разводка рассчитана на установку LPT-разъема непосредственно  на плату, для этих адаптеров рекомендуется  изготовить удлиннитель порта LPT длиной 1.5-1.8м со всеми линиями и вывести с программатора шлейф до платы с микроконтроллером длиной 20-25 см.

Минусы:

  • подключение через LPT порт (устаревший интерфейс)

Плюсы:

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

2.3. USBAsp.

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

3. Последовательное программирование AT89S52.

Программирование  микроконтроллера AT89S52 может осущесвляться через параллельный или последовательный интерфейсы. Поскольку параллельный интерфейс требует большого количества соединительных линий, в данной работе использовался последовательный режим программирования. Для его использование необходимо подать на вход микроконтроллера RST напряжение питания Vcc. Максимальная частота передачи данных не должна превышать 1/16 частоты осциллятора микроконтроллера. В использованном микроконтроллере частота осцилятора равна 12 МГц, потому частота тактирования программатора не может превышать 0,75 МГц.

3.1. Алгоритм программирования.

Алгоритм программирования в последовательном режиме сводится к следующему. Сперва на микроконтроллер подается питание. Далее вход 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.

3.2. Интерфейс программирования SPI.

SPI (англ. Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, шина SPI) — последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырёхпроводным интерфейсом.

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

В SPI используются четыре цифровых сигнала:

  • MOSI или SI — выход ведущего, вход ведомого (англ. Master Out Slave In). Служит для передачи данных от ведущего устройства ведомому.
  • MISO или SO — вход ведущего, выход ведомого (англ. Master In Slave Out). Служит для передачи данных от ведомого устройства ведущему.
  • SCLK или SCK — последовательный тактовый сигнал (англ. Serial Clock). Служит для передачи тактового сигнала для ведомых устройств.
  • CS или SS — выбор микросхемы, выбор ведомого (англ. Chip Select, Slave Select).

Хотя SPI интерфейс и является четырехпроводным, для программирования микроконтроллера используется 3 линии. Линия выбора ведомого устройства не используется, т.к. программатор всегда является ведущим.

Передача байта программатором осуществляется выводом данных на MOSI линию и тактированием на линии SCK. В то же время микроконтроллер  выводит данные на линию MISO. Первым передается старший бит (рис. ).

Рисунок. Волновые диаграммы приема/передачи байта данных по протоколу SPI

4. Аппаратная реализация программатора.

В данной работе программатор был реализован на основе лабораторного модуля, содержащего  в себе печатную плату, на которой  установлены микроконтроллер AT89S52 и микросхема FT245BM. Микросхема FT245BM установлена в готовом модуле фирмы DLP, состоящем из непосредственно самой микросхемы, USB порта и внешнего осциллятора. Принципиальная схема программатора приведена на рисунке.

Рисунок. Принципиальная схема программатора

Схема крайне проста в исполнении и требует  минимальное количество соединений.

4.1. Микросхема FT245BM.

Микросхема FT245BM является ключевым компонентом. FT245B – устройство фирмы FTDI, представляющее собой аппаратный конвертер «USB <-> параллельный FIFO» второго поколения. Микросхема позволяет передавать данные со скоростью до 8 Мбит/c. Её физические размеры – 7x7 мм (9x9 включая ножки).

Информация о работе USB программатор МК AT89S52