| 
 
   
  
 
 УДК 681.3-181.4
 
 М54
 Рецензенты:
 
 Кандидат физико-технических наук, генеральный директор
 
 ЗАО «ИНФОРМТЕК»
 
 М.В. Матвеичев
 
 
 Печатается по решению редакционно-издательского совета Муромского института
 
 
 М54 ПРОГРАММИРОВАНИЕ АППАРАТНЫХ СРЕДСТВ IBM PC
 
 И учебного стенда SDK -1.1
 
 : ” Персональные ЭВМ и Спец. ЭВМ " / Сост.: М.Н. Кулигин – Муром: Изд.- полиграфический центр МИ ВлГУ, 20011.– … с. - Библиогр.: 19 назв.
 
 Лабораторный практикум предназначен для студентов четвёртого курса, обучающихся по специальностям 230101 ”Вычислительные машины, комплексы, системы и сети”, 230105 ”Программное обеспечение вычислительной техники и автоматизированных систем ”. Он содержат варианты заданий для 5-и лабораторных работ и контрольные вопросы к ним, требования к оформлению отчётов, необходимый теоретический материал
 
 и примеры программ на языке ассемблера для домашней подготовки. В приложении приведено описание системных функций, необходимых для выполнения лабораторных работ.
 УДК 681.3-181.4
 
  Муромский институт (филиал)
 
 Владимирского государственного
 
 университета, 2011
 
 ОГЛАВЛЕНИЕ
 
 
 
 
 
  ВведениеПерсональные ЭВМ (персональные компьютеры) и спец. ЭВМ, построенные на базе современных микропроцессоров, представляют собой комплекс аппаратных и программных средств, для изучения которых лучше всего использовать “родной” язык микропроцессора (МП) – язык ассемблера.
 
 Он является “естественным” языком низкого уровня, на котором “разговаривает” программист с компьютером. Специализация ЭВМ достигается путем подключения к ней нестандартного оборудования с целью автоматизации управления этим оборудованием, поэтому при решении подобных задач язык ассемблера незаменим – с его помощью программист получает прямой доступ к аппаратным ресурсам компьютера.
 
 Для подключения к компьютеру нестандартных периферийных устройств (ПУ) необходимо овладеть методикой работы с этими устройствами на уровне регистров (портов) и прерываний. Поэтому лабораторные работы, описание которых представлено в данном пособии, рассчитаны как на изучение архитектуры базового микропроцессора IBM PC – совместимого компьютера, так и на приобретение навыков написания программ, работающих с аппаратурой компьютера через порты, прерывания и функции драйверов.
 
 Целью данного учебного пособия является методическое обеспечение по выполнению курса лабораторных работ. В описание каждой лабораторной работы включен необходимый теоретический материал, рассчитанный на самостоятельную домашнюю подготовку.
 
 Структура учебного пособия.
 
 Пособие содержит описания 5 лабораторных работ.
 
 
            Лабораторная работа №1 – изучение режимов работы, системы команд и дополнительных способов адресации процессоров семейства IA-32.
 
Лабораторная работа №2 – организация прерываний в IBM PC и программирование контроллера прерываний 8259А.
 
Лабораторная работа №3 – программирование таймера 8254 и генерация звука в IBM PC.
 
 - Лабораторная работа №4 – проектирование программного обеспечения систем управления на базе учебного лабораторного комплекса SDK -1.1.
 
 
            Лабораторная работа №5 – изучение возможностей последовательного интерфейса RS-232 и программирование его контроллера.
 
 Описание лабораторной работы включает задание для домашней подготовки, контрольные вопросы, лабораторное задание и необходимый теоретический материал для домашней подготовки.
 Основные термины и определения
 
 Интерфейс - это совокупность унифицированных аппаратных, программных и конструктивных средств, необходимых для реализации взаимодействия различных функциональных элементов в системах при условиях, предписанных стандартом и направленных на обеспечение информационной, электрической и конструктивной совместимости указанных элементов.
 
 Устройства сопряжения и интерфейсные устройства предназначены для управления вводом и выводом информации и согласования интерфейсов компьютера с одной стороны и внешних устройств и объекта управления с другой стороны. Конструктивно эти устройства могут выполняться в виде одной БИС, нескольких БИС или в виде отдельной платы. Устройства сопряжения и интерфейсные устройства могут иметь достаточно сложную структуру Выполняемые ими функции могут программироваться, в ряде случаев в состав таких устройств входит микропроцессор. Устройства сопряжения и интерфейсные устройства со сложной структурой иногда называют контроллерами.
 
 Процессор – основная часть ЭВМ, непосредственно осуществляющая процесс обработки данных и управляющая этим процессом.
 
 Микропроцессор (МП) – программно управляемое устройство, осуществляющее процесс обработки цифровой информации и управления им построенное на одной или нескольких интегральных микросхемах. Иными словами микропроцессор это процессор, реализованный на одной или нескольких СБИС.
 
 Оперативная память – память, предназначенная для временного хранения данных и команд, необходимых процессору для выполнения им операций.
 
 Постоянная память - это память, используемая для хранения информации, которая не должна изменяться в ходе работы компьютера.
 
 Прерывание – это аппаратная функция, вызывающая приостановку операций процессора, запоминание его состояния и выполнение специальной программы, которая называется программой обработки прерывания или обработчиком прерывания (ISR).
 
 
 
 
            Общие сведения об архитектуре персонального компьютера и
 
 архитектуре стенда SDK 1.1
 
 Персональный компьютер типа IBM PC имеет традиционную архитектуру микропроцессорной системы и содержит все обычные функциональные узлы: процессор, постоянную и оперативную память, устройства ввода/вывода, системную шину, источник питания (рис.1.1). Основные особенности архитектуры персональных компьютеров сводятся к принципам компоновки аппаратуры, а также к выбранному набору системных аппаратных средств.
 
  Рис. 1.1. Архитектура персонального компьютера типа IBM PC
 Функции основных узлов компьютера следующие:
 
 
            Центральный процессор - это микропроцессор со всеми необходимыми вспомогательными микросхемами, включая внешнюю кэш-память и контроллер системной шины. В большинстве случаев именно центральный процессор осуществляет обмен по системной шине.
 
Оперативная память может занимать почти все адресуемое пространство памяти процессора. Однако чаще всего ее объем гораздо меньше. В современных персональных компьютерах стандартный объем системной памяти составляет, как правило, от 512 Мбайт до 2 Гбайт. Оперативная память компьютера выполняется на микросхемах динамической памяти и поэтому требует регенерации.
 
Постоянная память (ROM BIOS — Base Input/Output System) имеет небольшой объем (до 128 Кбайт), содержит программу начального запуска, описание конфигурации системы, а также драйверы (программы нижнего уровня) для взаимодействия с системными устройствами.
 
Контроллер прерываний (описание функций этого контроллера приведено в разделе 2.2). Все режимы функционирования контроллера прерываний задаются программно процессором перед началом работы.
 
Контроллер прямого доступа к памяти принимает запрос на ПДП из системной магистрали, передает его процессору, а после предоставления процессором магистрали производит пересылку данных между памятью и устройством ввода/вывода. Все режимы функционирования контроллера ПДП задаются программно процессором перед началом работы. Использование встроенных в компьютер контроллеров прерываний и ПДП позволяет существенно упростить аппаратуру применяемых плат расширения.
 
Контроллер регенерации осуществляет периодическое обновление информации в динамической оперативной памяти путем проведения по шине специальных циклов регенерации. На время циклов регенерации он становится хозяином (задатчиком) шины.
 
Часы реального времени и таймер-счетчик - это устройства для внутреннего контроля времени и даты, а также для программной выдержки временных интервалов, программного задания частоты и т.д.
 
Системные устройства ввода/вывода - это те устройства, которые необходимы для работы компьютера и взаимодействия со стандартными внешними устройствами по параллельному и последовательному интерфейсам. Они могут быть выполнены на материнской плате, а могут располагаться на платах расширения.
 
Платы расширения устанавливаются в слоты (разъемы) системной магистрали и могут содержать оперативную память и устройства ввода-вывода. Они могут обмениваться данными с другими устройствами на шине в режиме программного обмена, в режиме прерываний и в режиме ПДП. Предусмотрена также возможность захвата шины, то есть полного отключения от шины всех системных устройств на некоторое время.
 
 Важная особенность подобной архитектуры - ее открытость, то есть возможность включения в компьютер дополнительных устройств, причем как системных устройств, так и разнообразных плат расширения. Открытость предполагает также возможность простого встраивания программ пользователя на любом уровне программного обеспечения компьютера.
 
 Учебные микропроцессорные комплексы (стенды) на базе микроконтроллеров предназначены для изучения принципов организации и работы микропроцессорной элементной базы, вспомогательных элементов (память, контроллеры ввода-вывода и др.),получения навыков проектирования и программирования микропроцессорных систем различного назначения.
 
 Внимания заслуживает опыт ООО «ЛМТ» (Санкт-Петербург), которое разработало и последовательно развивает семейство микропроцессорных стендов инструментального и учебного назначения - SDK.
 
 Основу лабораторного комплекса составляет контроллер-конструктор (микропроцессорный стенд) SDK-1.1на базе ОКЭВМ фирмы Analog Devices ADuC812. Сам лабораторный комплекс представляет собой совокупность контроллера-конструктора, подключенного к персональному компьютеру, и программного обеспечения для ПК и SDK-.1.1.
 
 Подключение осуществляется к СОМ-порту ПК через кабель RS232, комплекс инструментальных программ
 
 обеспечивает весь процесс программирования SDK-1.1: компиляцию, доставку
 
 и запуск программ в SDK-1.1.
 
 Главной областью применения микропроцессорного стенда SDK-1.1, безусловно, является обучение различным аспектам встраиваемой вычислительной техники. Студенты имеют возможность ознакомиться на практике с проектированием, программированием, отладкой и использованием создаваемой ими из "конструктора" SDK-1.1. Разнообразные устройства, входящие в состав стенда, позволяют изучить круг вопросов, связанных с организацией взаимодействия
 
 с ними через типичные интерфейсы, применяемые во встраиваемых вычислительных системах.
 Микропроцессорный стенд SDK-1.1 построен на базе однокристальной микро-ЭВМ фирмы Analog Device типа ADuC812 (вычислительное ядро MCS-51) и имеет в своем составе разнообразные устройства, предназначенные для ввода, обработки и вывода информации в цифровом и аналоговом виде:
 
 
            8-ми канальный аналого-цифровой преобразователь:
 
2-х канальный цифроаналоговый преобразователь;
 
устройства ввода и отображения информации (матричная клавиатура 4x4 клавиши, текстовый жидкокристаллический дисплей, пьезокерамический
 акустический излучатель, набор сигнальных светодиодов и переключателей);
 
параллельный 16..20-ти разрядный порт:
 
часы/календарь реального времени:
 
электрически стираемое программируемое ПЗУ (EEPROM) на кристалле ADuC812 (640 байт):
 
внешняя память - EEPROM емкостью 128 байт.
 
 Стенд SDK-1.1 может работать полностью автономно от ПК.
 
 Лабораторный комплекс предназначен для освоения студентами архитектуры и методов проектирования:
 
 
            систем на базе микропроцессоров и однокристальных микро-ЭВМ;
 
встраиваемых контроллеров и систем сбора данных:
 
периферийных блоков вычислительных систем:
 
подсистем ввода-вывода встраиваемых вычислительных систем.
 
 Подготовки программ для микроконтроллера ADuC812 осуществляется на языке программирования Си или Ассемблера (рис. 1.2) на ПК в обычном текстовом редакторе (или средах программирования, IDE, предназначенных для разработки программ под ядро MCS-51), далее программа компилируется в исполняемый модуль, доставляемый в стенд через СОМ-порт ПК с помощью специального программного обеспечения, входящего в состав стенда.
 
 
  
 Рисунок 1.2 - Процесс написания программ для SDK-1.1
 Программы для стенда располагаются во внешней памяти программ/данных – внешнем ОЗУ объемом 512 Кб. Из этих 512 Кб как память программ (особенности MCS-51) могут использоваться лишь 56 Кб (в стенде первые 8 Кб памяти программ заняты ПЗУ, в котором располагается системное программное обеспечение, отсюда 64 Кб - 8 Кб = 56 Кб). Однако, как показывает практика, программы такого размера для стенда подготавливать не требуется.
 
 В процессе обучения с использованием SDK-1.1 студенты могут на практике ознакомиться с управлением периферийными устройствами, взаимодействующими с вычислителем посредством различных интерфейсов, освоить некоторые специфические аспекты программирования встраиваемых вычислительных систем, эффективного управления ресурсами. В стенде предусмотрена возможность симулировать некоторые внешние сигналы без использования дополнительного оборудования: сигналы внешних прерываний, счетные импульсы таймеров, аналоговые сигналы на входах АЦП. Интересно отметить возможность программного инициирования прерываний, не предусмотренную в MCS-51. однако реализованную в стенде через механизм программного управления состоянием входа внешнего прерывания INT0 ADuC812.
 
 ПЗУ с резидентным программным обеспечением реализовано на кристалле ОЭВМ ADuC812 по технологии FLASH/ЕЕ и может быть перепрограммировано через интерфейс RS232C с обычного ПК. Новые версии резидентного ПО могут доставляться в стенд без использования специальных программаторов, а тем более новых микросхем ПЗУ - достаточно иметь лишь образ доставляемой программы в виде файла и специальную утилиту на ПК.
 
 Некоторые устройства стенда подключены к вычислителю через периферийный расширитель, реализованный на базе ПЛИС небольшой емкости, перепрограммируемой через имеемый в SDK-1.1 JTAG-порт, что дает возможность при желании изменять механизмы работы с этими устройствами.
 
 
 
 |