2.1 Аппаратное сопряжение ПК и микроконтроллера
Для решения задачи сопряжения ПК и микроконтроллера было решено использовать интерфейс RS-232C.
Последовательный порт используется в качестве универсального асинхронного приемопередатчика (УАПП) с фиксированной или переменной скоростью последовательного обмена информацией и возможностью дуплексного включения.
Последовательный интерфейс микроконтроллера МК-51 может работать в следующих четырех режимах: o Режим 0. Информация передается и принимается через вход RxD приемника (вывод P3.0). Через выход передатчика TxD (вывод P3.1) выдаются импульсы синхронизации, стробирующие каждый передаваемый или принимаемый бит информации. Формат посылки – 8 бит. Частота приема и передачи – тактовая частота микроконтроллера. o Режим 1. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки – 10 бит: старт-бит (ноль), восемь бит данных, программируемый девятый бит и стоп-бит (единица). Частота приема и передачи задается таймером/счетчиком 1. o Режим 2. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки – 11 бит: старт-бит (ноль), восемь бит данных, программируемый девятый бит и
2 стоп-бита (единицы). Передаваемый девятый бит данных принимает значение бита ТВ8 из регистра специальных функций SCON. Бит ТВ8 в регистре SCON может быть программно установлен в «0» или в «1», или в него, к примеру, можно поместить значение бита Р из регистра
PSW для повышения достоверности принимаемой информации (контроль по паритету). При приеме девятый бит данных принятой посылки поступает в бит RB8 регистра SCON. Частота приема и передачи в режиме 2 задается программно и может быть равна тактовой частоте микроконтроллера деленной на 32 или на 64. o Режим 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.
2.1.4 Выбор источника питания
В зависимости от места установки, источником питания может служить либо блок питания ПК, либо отдельный блок питания, специально предназначенный для данной установки. В связи с тем, что данную установку планируется использовать в компьютерном классе, наиболее оптимальным вариантом является использование блока питания ПК. Напряжение источника питания +5V, необходимое для лабораторной установки, можно взять с внешнего разъема клавиатуры. Подключение контактов этого разъема представлено на рисунке 2.
Рис. 2. Разъем клавиатуры персонального компьютера.
Реализация подключения потребует изготовления специального переходного кабеля, входящего в состав лабораторной установки.
2.2 Подключение внешней памяти программ
Как уже отмечалось ранее, для организации обмена информацией между ПК и микроконтроллером целесообразно использовать в качестве внешней памяти программ ОЗУ. ОЗУ позволит быстро и многократно перепрограммировать микроконтроллер, что позволит использовать его как отладочный модуль, или как часто перепрограммируемое устройство управления (например, для управления различными лабораторными установками).
В качестве микросхемы ОЗУ можно использовать микросхему КР537РУ8. Объем памяти данной микросхемы составляет 2К. В связи с тем, что данная установка планируется как УМК в курсе «Микропроцессоры», то этого объема памяти вполне достаточно для размещения программы пользователя, т.к. программы, реализуемые в процессе лабораторных работ, как правило не превышают 100 команд. Объем таких программ не превышает 300 байт.
При записи программы пользователя в память программ, обращение к ОЗУ осуществляется как к памяти данных. Во время работы программы, как к памяти программ.
Рис. 3. Схема подключения внешней памяти программ к микроконтроллеру.
Подобная организация памяти программ позволит пользователю сделать программу более гибкой. Во время работы программы можно будет без особого труда изменять значение переменных, жестко – зашитых в программе.
2.3 Программное сопряжение микроконтроллера и ПК
2.3.1 Начальная установка MCS-51
Инициализация (сброс) микросхемы осуществляется подачей сигнала RST (высокий уровень напряжения) при подключенном кварце. Вход RST – внутренний триггер Шмидта. Состояние RST проверяется в фазе S5P2 каждого машинного цикла. Пока уровень RST высокий, ALE и PME тоже имеют высокий уровень. Их установка происходит после установки «0» на RST. Внутренний алгоритм при подаче сигнала «СБРОС» производит следующие действия:
V устанавливает счетчик команд и все регистры специальных функций, кроме портов – защелок Р0 – Р3, указателя стека и регистра SBUF в ноль;
V указатель стека принимает значение равное 07Н;
V запрещает все источники прерываний, работу таймеров – счетчиков и последовательного порта;
V выбирает БАНК 0 памяти данных, подготавливает порты Р0 – Р3 для приема данных и определяет выводы ALE и PME, как входы для внешней синхронизации;
V в регистрах специальных функций PCON, IP и IE резервные биты принимают случайные значения;
V устанавливает фиксаторы – защелки портов Р0 – Р3 в «1».
Сигнал RST не влияет на внутреннюю память данных микроконтроллера. После включения питания содержимое ячеек внутренней памяти данных принимает случайные значения.
2.3.2 Программное обеспечение организации обмена информацией между МК и ПК
2.3.2.1 Программа «Монитор»
Как уже отмечалось, программное обеспечение организации обмена информацией между микроконтроллером и ПК должно обеспечивать:
. запись программы пользователя в память программ МК;
. запись информации в программно – доступные узлы МК;
. чтение информации из памяти программ МК;
. чтение информации из программно – доступных узлов МК;
. запуск программы пользователя в режиме реального времени;
. запуск программы пользователя в пошаговом режиме.
Все эти функции выполняет программ «Монитор».
В начале работы программы «Монитор» происходит начальная установка. Эту установка должна произвести следующие действия:
V выбрать БАНК 2 памяти данных микроконтроллера, для хранения временных переменных, необходимых для работы программы «Монитор»;
V установить значение управляющего бита SMOD в регистре специальных функций в 1;
V выдать сообщение ПК о начале работы программы «Монитор».
Рис. 4. Алгоритм программы «Монитор»
Программа «Монитор» принимает от ПК код выполняемой операции, декодирует его и запускает соответствующую подпрограмму.
Подпрограмма приема одного байта данных ожидает прихода информации, проверяет правильность данных и заносит принятый байт в регистр R0. Если данные были приняты не верно, то подпрограмма приема одного байта данных заносит в регистр R4 нулевое значение.
В случае не верно принятого кода операции микроконтроллер предлагает ПК повторно передать команду.
Рис. 5. Алгоритм декодирования кода операции в программе «Монитор»
После выполнения выбранной подпрограммы, программа «Монитор» снова переходит к режиму ожидания очередного кода операции.
Алгоритм выбора подпрограммы показан на рисунке 5.
В программе «Монитор» зарезервированы следующие коды операций: o 01h - подпрограмма 1 - подпрограмма запуска программы пользователя в режиме реального времени; o 02h - подпрограмма 2 - подпрограмма запуска программы пользователя в пошаговом режиме; o 03h - подпрограмма 3 - подпрограмма записи программы пользователя в память программ МК; o 04h - подпрограмма 4 - подпрограмма записи информации в программно – доступные узлы МК; o 05h - подпрограмма 5 - подпрограмма чтения из памяти программ МК; o 06h - подпрограмма 6 - подпрограмма чтения программно – доступных узлов МК; o другие - подпрограмма 7 - зарезервированные коды операций для запуска подпрограмм пользователя.
2.3.2.2 Подпрограмма запуска программы пользователя в режиме реального времени
Страницы: 1, 2, 3, 4