Þ Разработать формат передачи данных между ПК и микроконтроллером. Этот формат должен использовать восемь информационных битов.
Þ Разработать алгоритм записи программы, отлаженной на ПК, в память программ МК.
Þ Разработать алгоритм запуска программы в режиме реального времени.
Þ Разработать алгоритм выполнения программы в пошаговом режиме. В этом режиме микроконтроллер на каждом шагу программы должен передавать в персональный компьютер содержимое всех программных узлов, а также следующую команду из памяти программ. При необходимости, по запросу из персонального компьютера микроконтроллер должен передать содержимое любой ячейки памяти данных, или любого блока ячеек памяти данных. Кроме того микроконтроллер должен передавать в персональный компьютер содержимое ячеек памяти программ, если это необходимо. При необходимости должна обеспечиваться запись в программно доступные узлы микроконтроллера, в память программ и память данных. Алгоритм должен позволять запускать программу с любого адреса указанного пользователем, продолжать выполнение прерванной программы в пошаговом режиме, или в режиме реального времени.
Þ Разработать алгоритм записи информации в программно – доступные узлы микроконтроллера.
Þ Разработать алгоритм записи информации в память данных.
Þ Разработать алгоритм чтения информации из программно – доступных узлов микроконтроллера.
Þ Разработать алгоритм чтения информации из памяти данных.
Þ Разработать алгоритм чтения информации из памяти программ.
Þ Разработать алгоритм программы «Монитор». Программа «Монитор» должна обеспечивать запуск всех рассмотренных выше подпрограмм в зависимости от кода, переданного из персонального компьютера. Поэтому необходимо разработать управляющие слова, которые и будут задавать режим работы системы. Управляющие коды не должны превышать 8 бит. Для реализации гибкости системы, необходимо при получении неиспользуемых кодовых комбинаций обеспечить переход выполнения программы в область памяти программ на заранее зарезервированный адрес. Этот адрес можно хранить в памяти программ по строго определенному адресу. Чтобы избежать выполнение случайного кода, во время начальной установки необходимо установить по этому адресу, адрес в памяти программ, в котором находится команда возврата из подпрограммы.
Þ При переходе на разрабатываемые подпрограммы необходимо сохранить в стеке содержимое аккумулятора. Перед выходом из этих подпрограммы содержимое аккумулятора необходимо восстановить.
2. РАЗРАБОТКА ВОПРОСОВ АППАРАТНОГО И ПРОГРАММНОГО СОПРЯЖЕНИЯ
2.1 Аппаратное сопряжение ПК и микроконтроллера
Для решения задачи сопряжения ПК и микроконтроллера было решено использовать интерфейс RS-232C.
Последовательный порт используется в качестве универсального асинхронного приемопередатчика (УАПП) с фиксированной или переменной скоростью последовательного обмена информацией и возможностью дуплексного включения.
Последовательный интерфейс микроконтроллера МК-51 может работать в следующих четырех режимах:
¨ Режим 0. Информация передается и принимается через вход RxD приемника (вывод P3.0). Через выход передатчика TxD (вывод P3.1) выдаются импульсы синхронизации, стробирующие каждый передаваемый или принимаемый бит информации. Формат посылки – 8 бит. Частота приема и передачи – тактовая частота микроконтроллера.
¨ Режим 1. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки – 10 бит: старт-бит (ноль), восемь бит данных, программируемый девятый бит и стоп-бит (единица). Частота приема и передачи задается таймером/счетчиком 1.
¨ Режим 2. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки – 11 бит: старт-бит (ноль), восемь бит данных, программируемый девятый бит и 2 стоп-бита (единицы). Передаваемый девятый бит данных принимает значение бита ТВ8 из регистра специальных функций SCON. Бит ТВ8 в регистре SCON может быть программно установлен в «0» или в «1», или в него, к примеру, можно поместить значение бита Р из регистра PSW для повышения достоверности принимаемой информации (контроль по паритету). При приеме девятый бит данных принятой посылки поступает в бит RB8 регистра SCON. Частота приема и передачи в режиме 2 задается программно и может быть равна тактовой частоте микроконтроллера деленной на 32 или на 64.
¨ Режим 3. Режим 3 полностью идентичен режиму 2 за исключением частоты приема и передачи, которая в режиме 3 задается таймером/счетчиком 1.
Для реализации обмена информацией между ПК и микроконтроллером наиболее удобным является режим 2, т.к. для работы в этом режиме не требуется таймер/счетчик. Этот режим полностью удовлетворяет предъявленным требованиям.
2.1.1 Скорость приема/передачи
Скорость приема/передачи, т.е. частота работы универсального асинхронного приемопередатчика (УАПП) в режиме 2 зависит от значения управляющего бита SMOD в регистре специальных функций.
Частота передачи определяется выражением:
f=(2SMOD/64)fрез.
Иными словами, при SMOD=0 частота передачи равна (1/64)fрез, а при SMOD=1 равна (1/32)fрез.
Скорость приема/передачи должна быть кратна 115,2 Кбод [6].
Исходя из вышеизложенного, выберем частоту приема данных при SMOD=1. Если fрез=1,8432 МГц, тогда частота приема данных будет 57,6 КБод.
Другие значения частот кварца могут быть выбраны из таблиц в приложении 1 и приложении 2.
2.1.2 Разработка формата принимаемых и передаваемых данных
Формат принимаемых и передаваемых данных почти полностью описан режимом 2 работы последовательного интерфейса.
Формат должен состоять из 11 бит:
- стартовый бит – ноль;
- восемь бит данных;
- девятый бит – контроль по паритету, для повышения достоверности принимаемой информации;
- два стоповых бита – единицы.
2.1.3 Разработка схемы подключения микроконтроллера
При сопряжении интерфейса RS-232 со входами последовательного интерфейса микроконтроллера MCS-51, необходимо обеспечить согласование уровней сигналов. Стандартный уровень сигналов RS-232C – +12 и –12 В. Стандартный уровень сигналов асинхронного интерфейса микроконтроллера MCS-51 – +5 В.
В зависимости от требований, предъявляемых к проектируемой схеме, преобразователи уровней сигналов могут быть выполнены различными способами.
Приемники и передатчики выполненные на дискретных элементах имеют ряд недостатков:
- большие массогабаритные характеристики;
- высокая потребляемая мощность;
- недостаточная надежность;
- необходимость в дополнительных источниках питания;
- стоимость.
Рис. 1. Схема подключения микроконтроллера MCS-51 фирмы Intel к портам персонального компьютера.
Исходя из этих соображений, для организации сопряжения уровней портов ПК и микроконтроллера можно воспользоваться микросхемой ADM202 фирмы Analog Devices. Данная микросхема позволяет согласовать уровни сигналов, не требуя дополнительных источников питания [4].
Микроконтроллер принимает данные через вход приемника (вывод P3.0), а передает данные через выход передатчика (вывод P3.1). Микроконтроллер может запретить прием данных из ПК с помощью сигналов на выводе Р2.6. Это необходимо для сигнализации ПК о приеме ошибочных данных. В свою очередь ПК может запретить передачу данных из микроконтроллера с помощью сигналов на выводе Р2.7.
В зависимости от места установки, источником питания может служить либо блок питания ПК, либо отдельный блок питания, специально предназначенный для данной установки. В связи с тем, что данную установку планируется использовать в компьютерном классе, наиболее оптимальным вариантом является использование блока питания ПК. Напряжение источника питания +5V, необходимое для лабораторной установки, можно взять с внешнего разъема клавиатуры. Подключение контактов этого разъема представлено на рисунке 2.
Рис. 2. Разъем клавиатуры персонального компьютера.
Реализация подключения потребует изготовления специального переходного кабеля, входящего в состав лабораторной установки.
2.2 Подключение внешней памяти программ
Как уже отмечалось ранее, для организации обмена информацией между ПК и микроконтроллером целесообразно использовать в качестве внешней памяти программ ОЗУ. ОЗУ позволит быстро и многократно перепрограммировать микроконтроллер, что позволит использовать его как отладочный модуль, или как часто перепрограммируемое устройство управления (например, для управления различными лабораторными установками).
В качестве микросхемы ОЗУ можно использовать микросхему КР537РУ8. Объем памяти данной микросхемы составляет 2К. В связи с тем, что данная установка планируется как УМК в курсе «Микропроцессоры», то этого объема памяти вполне достаточно для размещения программы пользователя, т.к. программы, реализуемые в процессе лабораторных работ, как правило не превышают 100 команд. Объем таких программ не превышает 300 байт.
При записи программы пользователя в память программ, обращение к ОЗУ осуществляется как к памяти данных. Во время работы программы, как к памяти программ.
Рис. 3. Схема подключения внешней памяти программ к микроконтроллеру.
Подобная организация памяти программ позволит пользователю сделать программу более гибкой. Во время работы программы можно будет без особого труда изменять значение переменных, жестко – зашитых в программе.