   
            
           
           
          УДК 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-порт, что дает возможность при желании изменять механизмы работы с этими устройствами. 
           
           
         |