Справочник от Автор24
Поделись лекцией за скидку на Автор24

Микропроцессорные информационно-управляющие системы железнодорожного транспорта

  • ⌛ 2010 год
  • 👀 1965 просмотров
  • 📌 1890 загрузок
  • 🏢️ МИИТ
Выбери формат для чтения
Статья: Микропроцессорные информационно-управляющие системы железнодорожного транспорта
Найди решение своей задачи среди 1 000 000 ответов
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Микропроцессорные информационно-управляющие системы железнодорожного транспорта» doc
А.В.Горелик, В.Ю.Горелик, А.Е.Ермаков, О.П.Ермакова МИКРОПРОЦЕССОРНЫЕ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИЕ СИТЕМЫ ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА Москва – 2010 ББК УДК Г Рецензенты: главный научный сотрудник НИИАС, д.т.н., проф. Кнышев И.П., профессор кафедры ВТ РОАТ, д.т.н., проф. Самме Г.В. Горелик А.В., Горелик В.Ю., Ермаков А.Е., Ермакова О.П. Микропроцессорные информационно-управляющие системы железнодорожного транспорта. Учебное пособие./Под ред. А.В.Горелика – М.: МИИТ, 2010. – с. В учебном пособии приведена структурная схема микропроцессорной системы, рассмотрена временная диаграмма ее работы, представлены принципы организации подсистем памяти и прерывания. Вторая, третья и четвертые главы пособия посвящены восьми разрядным микропроцессорам и микроконтроллерам. Рассмотрены вопросы, связанные с расширением памяти микропроцессорной системы и портов ввода/вывода. Значительное внимание в учебном пособии уделено разработке прикладного программного обеспечения на языке Ассемблер. Для каждого из рассмотренных микропроцессоров приведены примеры микропрограмм с подробными комментариями. В заключительной главе даны примеры микропроцессорных систем, используемых в автоматизированных системах управления и контроля движения поездов, диспетчерского контроля и информационных систем обслуживания пассажиров. Учебное пособие предназначено для студентов вузов железнодорожного транспорта и может быть полезным инженерно-техническим работникам, связанных с эксплуатацией оборудования построенного на микропроцессорах и микроконтроллерах. © ОГЛАВЛЕНИЕ 1. ОРГАНИЗАЦИЯ МИКРОПРОЦЕССОРОВ И МИКРОПРОЦЕССОРНЫХ СИСТЕМ 6 1.1. Общие сведения о микропроцессорах 6 1.2. Понятие микропроцессорного комплекта БИС. Классификация микропроцессоров и их основные характеристики 7 1.3. Структура микропроцессорного устройства (системы) 11 1.4. Принципы построения устройств памяти 15 1.5. Организация системы прерывания программ 19 1.6. Представление чисел в микропроцессорах 25 1.7. Выполнение арифметических операций 28 2. МИКРОПРЦЕССОРНЫЕ СИСТЕМЫ НА ОСНОВЕ МИКРОПРОЦЕССОРНОГО КОМПЛЕКТА СЕРИИ К580 33 2.1. Состав микропроцессорного комплекта 33 2.2. Структурная схема микропроцессора 34 2.2.1. Арифметико-логическое устройство 37 2.2.2. Блок регистров 39 2.2.4. Буферные схемы 40 2.2.5. Управляющее устройство 40 2.3. Система команд микропроцессора 41 2.3.1. Команды пересылки данных 45 2.3.2. Команды арифметических операций 45 2.3.3. Команды логических операций 46 2.3.4. Команды ветвления и переходов 47 2.3.5. Команды управления, ввода/вывода и работы со стеком 49 2.4. Временная диаграмма работы микропроцессора 50 3. Микроконтроллер КМ1816ВЕ48 55 3.1. Структурная схема микроконтроллера КМ1816ВЕ48 55 3.1.1 Арифметико-логический блок 57 3.1.2 Память микроконтроллера 59 3.1.3 Организация ввода-вывода информации в МК 63 3.1.4 Таймер-счетчик 65 3.1.5 Система прерываний 67 3.1.6 Устройство управления и синхронизации 68 3.2 Система команд микроконтроллера КМ1816ВЕ48 70 3.2.1 Группа команд пересылки данных 71 3.2.2 Команды арифметических операций 72 3.2.3 Команды логических операций 73 3.2.4 Группа команд передачи управления 74 3.2.5 Группа команд управления режимом работы микроконтроллера 77 4. Микроконтроллеры серии 1830ВЕ51 80 4.1. Структурная схема микроконтроллера 1830ВЕ51 80 4.1.1. Блок управления 83 4.1.2. Арифметико-логический блок 85 4.1.3. Организация памяти программ 87 4.1.4. Резидентная память данных 88 4.1.5. Счетчик команд и регистр указателя данных 89 4.1.6. Регистр указателя стека 90 4.1.7. Таймеры/счетчики 90 4.1.8. Блок последовательного интерфейса и прерываний 96 4.1.9. Порты МК51 102 4.1.10. Начальная установка и режимы работы МК51 103 4.2. Система команд микроконтроллера 1830ВЕ51 105 4.2.1. Команды пересылки данных 107 4.2.2. Команды арифметических операций 109 4.2.3. Команды логических операций 110 4.2.4. Команды операций над битами 111 4.2.5. Команды передачи управления 111 4.3. Структурная организация систем на основе микроконтроллеров 114 4.3.1. Подключение внешней памяти 114 4.3.2. Расширение каналов ввода/вывода информации 118 5. Программная реализация типовых вычислительных процедур 122 5.1 Типовые структуры схем алгоритмов обработки данных 122 5.2 Приемы программирования 125 5.3 Примеры программ обработки данных в МП К580 127 5.3.1 Примеры использования команд передачи данных 127 5.3.2. Примеры использования арифметических и логических команд 127 5.3.2. Примеры использования команд ветвления и переходов 129 5.4 Примеры программ обработки данных в МК48 130 5.4.1 Примеры использования команд передачи данных 130 5.4.2. Примеры использования команд арифметических операций 131 5.4.3 Примеры использования команд логических операций 132 5.4.4 Примеры использования команд передачи управления и команд управления режимом МК 133 5.5 Примеры программ обработки данных в МК51 134 5.5.1 Примеры использования команд передачи данных 134 5.5.2 Примеры использования команд арифметических операций 135 5.5.3 Примеры использования команд логических операций 137 6. Применение микропроцессорных информационно-управляющих систем на железнодорожном транспорте 138 6.1. Классификация микропроцессорных информационно-управляющих систем на железнодорожном транспорте 138 6.2 Автоматизированные системы управления и контроля движения поездов 138 6.3 Автоматизированные системы диспетчерского контроля 165 6.4 Информационные системы обслуживания пассажиров 173 ЛИТЕРАТУРА 182 ВВЕДЕНИЕ Микроэлектроника - одно из самых динамичных направлений развития науки и техники, на базе которого с помощью сложного комплекса физических, химических, схемотехнических, технологических методов и приемов решается проблема создания микроминиатюрных схем и устройств, самым массовым из которых являются интегральные микросхемы. Среди массовых изделий электроники особая роль принадлежит микропроцессорам, в которых нашли свое отражение передовые научно-технические достижения в области физики, радиотехники, электроники, автоматики, кибернетики, машиностроения. За все время существования и применения электронно-вычислительных машин (ЭВМ) их важнейшие параметры быстродействие, потребляемая мощность, надежность, стоимость и др. определялись, прежде всего, применяемой элементной базой. Рост степени интеграции позволил разместить на кристалле микросхемы уже не отдельные простые узлы или фрагменты устройств ЭВМ, а целые устройства, совокупность устройств и даже целиком ЭВМ. Это привело к созданию микропроцессора - изделия микроэлектроники и вычислительной техники принципиально нового класса, способного вести обработку и хранение информации в одном или нескольких корпусах интегральных микросхем. Использование микропроцессорных информационно-управляющих систем и устройств в структуре железнодорожного транспорта обусловлено широким применением микропроцессорных контроллеров, предназначенных для управления отдельными технологическими операциями, связанными с управлением и безопасностью движения поездов. 1. ОРГАНИЗАЦИЯ МИКРОПРОЦЕССОРОВ И МИКРОПРОЦЕССОРНЫХ СИСТЕМ 1.1. Общие сведения о микропроцессорах Развитие интегральной технологии и схемотехники цифровых электронных схем привело к созданию интегральных микросхем с большой и сверхбольшой степенью интеграции (БИС и СБИС). Это позволило разместить на одном или нескольких кристаллах все блоки, необходимые для программной реализации алгоритмов. На основе таких схем и были созданы микропроцессоры. Микропроцессор (МП) – это программно-управляемое устройство, предназначенное для обработки цифровой или аналоговой информации и выполненное в виде одной или нескольких интегральных схем. По мере совершенствования микроэлектронной технологии производительность микропроцессоров и их функциональные возможности непрерывно возрастают. Уже начиная с 80-х годов, у наиболее развитых микропроцессоров эти характеристики не уступают по своим значениям аналогичным параметрам мини ЭВМ средней вычислительной мощности. Малые габаритные размеры, универсальность, способность реализовать сложные функции обработки данных и управления позволяют на их основе строить различные микро-ЭВМ, персональные компьютеры, микропроцессорные устройства и системы управления. Однако процессоры современных ЭВМ не могут быть реализованы в виде одной БИС. В связи с этим логическая схема процессора разбивается на отдельные функционально-законченные блоки, которые реализуются в виде отдельных БИС. Совокупность таких БИС, выполненных по одной технологии и реализующих единую систему команд получили название микропроцессорных комплектов БИС (МПК). Микропроцессорный комплект помимо самого микропроцессора содержит микросхемы, поддерживающие функционирование микропроцессора и расширяющие его логические возможности. Необходимость выполнения сложных функций управления привели к созданию микроконтроллеров (МК) управляющих устройств, выполненных на одном или нескольких кристаллах. В сравнении с универсальными микро-ЭВМ микроконтроллеры проще, так как имеют небольшой объем памяти и менее разнообразный состав внешних устройств. Поэтому более 30 лет тому назад оказалось возможным разместить практически всю схемотехнику МК на одном кристалле, что и дало начало их развитию. Вторым названием МК стало название однокристальная микро-ЭВМ. Еще одним направлением развития микропроцессоров является создание специализированных БИС для цифровой обработки сигналов. Быстрое преобразование Фурье, лежащее в основе большинства алгоритмов цифровой обработки сигналов, предполагает выполнение операции умножения и запоминания большого количества промежуточных результатов. В связи с этим на кристалле таких БИС располагают матричный умножитель, позволяющий для выбранной технологии изготовления выполнять операцию умножения с максимальной скоростью, и блок регистров общего назначения. Такие МП, ориентированные на выполнение быстрого преобразования Фурье, получили название цифровых процессоров обработки сигналов (ЦПОС). Развитие микропроцессоров общего применения происходило в направлении расширения набора команд и реализации многих функций аппаратными способами. Однако во многих практических применениях частота использования простых команд значительно выше, чем сложных. Это обстоятельство послужило толчком для создания микропроцессоров с сокращенным набором команд или RISC компьютеров (reduced instruction set computer). Благодаря небольшому набору команд упрощаются аппаратные средства, появляется возможность размещения на кристалле процессора памяти для хранения большого объема данных, увеличивается скорость выполнения команд, а время их выполнения становится примерно одинаковым. 1.2. Понятие микропроцессорного комплекта БИС. Классификация микропроцессоров и их основные характеристики Процессоры современных ЭВМ имеют сложную функциональную структуру, содержат большое количество электронных элементов и множество разветвленных связей. Реализовать процессор в одной БИС довольно сложно из-за физических ограничений интегральной технологии (число элементов на кристалле, количество внешних выводов, мощность рассеивания и т.д.). Для того чтобы обойти эти ограничения был использован следующий подход: структура процессора разбивается на функционально законченные блоки, такие как операционный, управляющий, интерфейсный, которые и реализуются в виде отдельных БИС. Функциональная законченность БИС означает, что она выполняет заранее определенные функции и может работать автономно, а для построения процессора не требуется организации большого количества новых связей. На рис.1.1 условно показано разбиение структуры процессора при создании трехкристального микропроцессора. Рис. 1.1. Функциональное разбиение процессора Операционный процессор (ОП) служит для обработки данных, управляющий процессор (УП) выполняет функции выборки, декодирования и вычисления адресов операндов, а также генерирует последовательность микрокоманд. Автономность работы и большое быстродействие БИС УП позволяет выбирать команды из памяти с большей скоростью, чем скорость их исполнения БИС ОП. При этом в УП образуется очередь еще не исполненных команд, а также заранее подготавливаются те данные, которые потребуются ОП в следующих циклах работы. Такая опережающая выборка команд экономит время ОП на ожидание операндов, необходимых для выполнения команд программ. Выбираемые из памяти команды распознаются и выполняются каждой частью микропроцессора автономно, и поэтому может быть обеспечен режим одновременной работы всех БИС МП, т.е. конвейерный поточный режим исполнения последовательности команд программы (выполнение последовательности с небольшим временным сдвигом). Такой режим работы значительно повышает производительность микропроцессора. Интерфейсный процессор (ИП) позволяет подключить память и периферийные средства к микропроцессору; по существу, является сложным контроллером для устройств ввода/вывода информации и служит для управления обменом информации между процессором и периферийными устройствами и памятью ЭВМ. БИС ИП выполняет также функции канала прямого доступа к памяти. Приведенный пример разбиения логической структуры процессора ЭВМ является далеко не единственным. Например, интерфейсный процессор может быть выполнен в виде двух БИС - контроллера прямого доступа к памяти и контроллера ввода/вывода. Операционный процессор также может быть реализован в виде нескольких БИС - универсального микропроцессора и арифметического сопроцессора. Совокупность функционально и конструктивно законченных частей процессора, выполненных в виде отдельных ИС, образуют микропроцессорный комплект БИС (МПК). Все многообразие выпускаемых микропроцессоров можно классифицировать по следующим признакам: 1) по числу БИС в микропроцессорном комплекте различают однокристальный и многокристальные МПК. Однокристальные микропроцессоры получаются при реализации всех аппаратурных средств процессора в виде одной БИС или СБИС. Для получения многокристального микропроцессора необходимо провести разбиение его логической структуры на функционально законченные части и реализовать их в виде отдельных БИС (СБИС); 2) по назначению различают универсальные и специализированные МП. Универсальные могут быть использованы в различных видах вычислительной техники и цифровой автоматики. Среди специализированных МП можно выделить различные микроконтроллеры, ориентированные на выполнение сложных последовательностей логических операций, математические МП, МП для обработки данных и другие; 3) по разрядности данных, обрабатываемых микросхемой все МПК можно разделить на 2-разрядные (серия 589), 4-разрядные (серии 582, 1804 и другие), 8-разрядные (серии 580, 1816, 1830 и другие), 16-разрядные (серии 581, 1810, 1811 и другие), 32-разрядные (I80386 ), 64-разрядные (Pentium); 4) по виду обрабатываемой информации МП могут быть разделены на цифровые и аналоговые. В цифровых микропроцессорах прием, обработка и выдача информации ведется в цифровой форме. В аналоговых МП информация на вход поступает в аналоговой форме, а затем преобразуется в цифровую форму и в таком виде обрабатывается микропроцессором. Результаты обработки преобразуются в аналоговую форму и поступают в таком виде на выход (пример, серия 1813); 5) по виду временной организации работы МПК делятся на синхронные и асинхронные. В синхронных МП начало, и конец выполнения операции задаются устройством управления. Время выполнения команды в этом случае не зависит от вида и величины операндов. В асинхронных микропроцессорах начало выполнения каждой следующей команды определяется по сигналу фактического выполнения предыдущей операции. Для более эффективного использования каждого устройства микропроцессорные системы в состав асинхронно работающих БИС вводят специальные цепи, формирующие сигналы запроса на получение следующей команды. При этом роль естественного распределителя работы принимает на себя память, которая в соответствии с установленными правилами обслуживает запросы остальных устройств по обеспечению их командной информацией и данными; 6) по количеству выполняемых программ различают одно и многопрограммные МП. В однопрограммных МП выполняется только одна программа. Переход к выполнению следующей программы происходит после завершения текущей программы. В много или мультипрограммных МП одновременно выполняется несколько программ. Организация мультипрограммной работы МП управляющих систем позволяет осуществить управление большим числом управляемых объектов. Как и любые другие, функционально-сложные изделия МП характеризуются параметрами функционирования, основными из которых являются: • разрядность шины данных; • разрядность шины адреса; • разрядность команды; • число команд; • коэффициент функциональной мощности команды для выполнения операции формата регистр-регистр, который определяется минимальным числом команд, необходимых для реализации указанной операции (коэффициент функциональной мощности для выполнения операций формата регистр-память, умножение и другие). С другой стороны МП – это интегральная схема, которая характеризуется параметрами, имеющими размерность напряжения, тока, время, сопротивления и т.д. К основным техническим характеристикам МП относятся: • напряжение питания; • уровень входных и выходных напряжений; • токи потребления (статические и динамические); • входные токи; • токи нагрузки по выходам при высоком и низком уровнях напряжения; • токи утечки на выходах с тремя состояниями; • времена задержки распространения сигнала от входов до выходов; • времена установления и удержания сигналов; • период тактовой частоты; • временные параметры тактовых сигналов (длительности низких и высоких уровней); • входные и выходные емкости ИС; • максимальная емкость нагрузки. 1.3. Структура микропроцессорного устройства (системы) Структура процессора микро-ЭВМ строится с учетом стремления разработчиков МП объединить на кристалле БИС максимально-возможное количество функций при ограниченном числе внешних контактов корпуса БИС. Реализовать принципиальную схему обычного процессора в виде одной или нескольких БИС практически невозможно. Поэтому необходимо изменять структуру процессора так, чтобы полная принципиальная схема или ее части имели количество элементов и связей, совместимое с возможностями БИС. При этом микропроцессоры приобретают внутреннюю магистральную структуру, т. е. в них к единой внутренней информационной магистрали подключаются все основные функциональные блоки (арифметико-логический, рабочих регистров, стека, прерываний, интерфейса, управления и синхронизации и др.). Наиболее распространенной является схема микропроцессорной системы, имеющая две или три шины, по которым в зависимости от сигналов управления передается информация от тех или иных узлов микропроцессорной системы. Такая организация требует минимального числа внешних контактов, однако обмен информацией между узлами и блоками микропроцессорной системы должен осуществляться в определенной последовательности. На рис. 1.2. приведена стандартная структура микропроцессорной системы, предназначенной для обработки данных или управления некоторым процессом. Примерно такую же структуру имеют микро-ЭВМ широкого назначения. Рис. 1.2. Структура микропроцессорной системы или микро-ЭВМ Центральное место в этой структуре занимает микропроцессор, который подобно процессору обычных ЭВМ, выполняет арифметические и логические операции над данными, осуществляет программное управление процессом обработки информации, организует взаимодействие всех устройств, входящих в систему. Работа микропроцессора происходит под воздействием сигналов схемы синхронизации часто выполненной в виде отдельной БИС. Для микропроцессоров характерна трехшинная структура (рис.1.2), содержащая шину адреса (ША), двунаправленную шину данных (ШД) и шину управления (ШУ). Шина данных осуществляет передачу информации как от процессора к памяти и периферийным устройствам, так и для передачи в обратном направлении. Память представляет собой единую совокупность ячеек для хранения данных. Каждой ячейке присвоен адрес. Шина для передачи адресов называется шиной адреса и является выходной по отношению к процессору. Если обозначить разрядность шины адреса n, то наибольшее число адресов, к которым можно обращаться по этой шине, равно . В интерфейсе периферийного устройства имеются области, предназначенные для ввода и вывода данных. Первая из них называется портом ввода, вторая – портом вывода. Для обращения к портам ввода/вывода существуют два способа: • изолированный ввод/вывод; • ввод/вывод с отображением на память. При первом способе память и порты ввода/вывода используются как различные устройства. Порту ввода и порту вывода присваиваются номера, не зависящие от адреса памяти. Для указания номера порта также используются адресные сигналы. Однако, например, если нет необходимости использовать все 16 бит адреса, для этой цели можно взять только восемь младших разрядов. Во втором способе память и порты ввода/вывода используются как одинаковые устройства. Для этого часть адресов, не распределенная в памяти, приписывается портам ввода/вывода. Поэтому эти порты можно считать частью памяти. Для их адресации используются полные адресные сигналы. Шина управления служит для передачи различных управляющих сигналов. Конкретный состав этих сигналов зависит от типа процессора. Основными сигналами, передаваемыми по этой шине, являются сигналы управления записью/чтением из памяти и сигналы управления вводом/выводом данных из соответствующего порта. Причем, когда применяется способ изолированного ввода/вывода, передаются четыре управляющих сигнала: 1. - чтение данных из памяти; 2. - запись данных в память; 3. - ввод данных из порта ввода; 4. - вывод данных в порт вывода. В случае ввода/вывода с отображением адресов на память можно использовать два сигнала управления и . Временная диаграмма работы стандартной шины представлена на рис. 1.3. Рис.1.3.Временная диаграмма Время осуществления однократного считывания, записи, ввода или вывода данных называется циклом шины. Процессор управляет работой шины синхронно с входной тактовой частотой. В рассматриваемом примере, каждый цикл шины содержит четыре периода тактовой частоты. Сигналы управления, как правило, являются активно низкими (т.е. наличие низкого уровня разрешает работу того или иного устройства). Рассмотрим работу шины в цикле считывания данных из памяти (рис. 1.4). Рис.1.4. Работа шины в цикле считывания данных из памяти В начале цикла процессор вырабатывает адресный сигнал, который дешифрируется дешифратором адреса, и указанная ячейка памяти подключается к линиям . В первой половине такта сигнал переходит на низкий уровень, а во второй половине такта он возвращается на высокий уровень. Низкий уровень этого сигнала переводит вентиль из третьего состояния в активное состояние и сигналы поступают на шину данных. По заднему фронту положительного импульса такта содержимое шины данных записывается в процессор. Аналогичным образом шина работает в цикле записи данных в память и циклах ввода/вывода информации из портов ввода/вывода. Следует отметить, что порт вывода представляет собой регистр, запись информации в который происходит по тактовому сигналу C. Этот сигнал обычно вырабатывается из младших разрядов адресных сигналов и тактовых сигналов процессора. В рассмотренном примере работы шины, данные никогда одновременно не поступают из/в памяти и портов ввода/вывода. Это обстоятельство позволяет осуществить управление работой шины тремя сигналами , , . Сигнал указывает какое из устройств (память или порт ввода/вывода) подключено к шине данных. Сигналы и указывают, происходит ли чтение данных в процессор или запись данных в память или порт ввода/вывода. В рассмотренной выше стандартной временной диаграмме работы шины временные соотношения в циклах записи/считывания полностью задаются процессором. При такой временной диаграмме работы память и порты ввода/вывода должны постоянно находиться в рабочем состоянии, что нежелательно. Для исключения указанной ситуации в систему вводятся дополнительные сигналы управления, позволяющие произвольно увеличивать длительность циклов записи/чтения. Обычно такие сигналы называются (готовность), (ожидание), TRANSFER ACNOWLEDGE (подтверждение передачи). Эти сигналы подтверждают окончание цикла. 1.4. Принципы построения устройств памяти Памятью МП системы называются совокупность устройств, служащих для запоминания, хранения и выдачи информации. Основными операциями в памяти в общем случае являются занесение информации в память – запись и выборка информации из памяти - считывание. Обе эти операции называются обращением к памяти. При обращении к памяти производится считывание или запись некоторой единицы данных – различной для устройств разного типа. Такой единицей может быть, например, байт, машинное слово, блок данных. Важнейшими характеристиками памяти являются емкость памяти, быстродействие, организация памяти. Емкость памяти определяется максимальным количеством данных, которые могут в ней храниться. Емкость памяти измеряется в двоичных единицах (битах), машинных словах, но большей частью в байтах (1байт = 8бит). Быстродействие памяти определяется продолжительностью операции обращения, т.е. временем, потраченным на поиск нужной информации в памяти и на ее считывание (время обращения при считывании), или временем на поиск места в памяти для записи информации, и на ее запись в память (время обращения при записи). Организация памяти определяется количеством и разрядностью хранимых слов (произведение хранимых слов на их разрядность). Например, указание емкости памяти в виде 8К8 означает, что в памяти емкостью 64Кбит хранятся 8К слов по 8 разрядов. Память любого типа состоит из запоминающего массива, хранящего информацию, и блоков, служащих для поиска в массиве, записи и считывания информации. В зависимости от методов размещения и поиска информации в запоминающем массиве различают адресную и стековую память. В памяти с адресной организацией размещение и поиск информации в запоминающем массиве основаны на использовании адреса хранения слова (числа, команды и т.п.). Адресом служит номер ячейки запоминающего массива, в которой это слова размещается. При записи/считывании слова в запоминающем массиве инициализирующая эту операцию команда должна указывать адрес (номер) ячейки по которому производится запись/считывание. Типичная структура адресной памяти, показанная на рис.1.5, содержит запоминающий массив из m - разрядных ячеек и его аппаратурное обрамление, включающее в себя дешифраторы строк и столбцов, входные и выходные формирователи, мультиплексор столбцов, схему управления памятью. Рис.1.5. Структура адресной памяти с произвольным обращением Входные формирователи преобразуют адресный код во внутренние сигналы управления, которые подаются на дешифраторы строк и столбцов (ДШ строк) и (ДШ столбцов). Дешифраторы строк возбуждают одну из строк, к которой может быть подключено до ячеек памяти. В зависимости от типа запоминающего элемента, используемого в ячейке памяти, на вход мультиплексора столбцов поступают либо логические «0», либо логические «1». Дешифратор столбцов вырабатывает адресный код одного из столбцов, и мультиплексор передает на выходные формирователи информацию, записанную в выбранной ячейке памяти. Схема управления позволяет перевести внутренние блоки памяти в режим малого потребления тока и выходные формирователи – в третье состояние или состояние логической «1». Адресная память делится на две группы: постоянную (ПЗУ) и оперативную (ОЗУ) или память с произвольной выборкой. Постоянная память предназначена для хранения программ, констант, таблиц элементарных функций и т.д. Запись в постоянную память производится в процессе ее изготовления или настройки. Содержимое такой памяти либо никогда не изменяется или изменяется, но редко и в специальном режиме. Для рабочего режима это «память только для чтения». Существуют четыре разновидности ПЗУ: • масочные ПЗУ, информация в которых записывается в процессе производства; • однократно программируемые ПЗУ (ППЗУ), информация в которых может быть записана пользователем или в процессе производства; • стираемые ППЗУ (СППЗУ), информация в которых может быть записана и стираема пользователем. Данные, расположенные в СППЗУ могут быть стерты ультрафиолетовым облучением; • стираемые ППЗУ (ЭСППЗУ), информация в которых может быть записана и стираема пользователем. Данные, расположенные в ЭСППЗУ могут быть стерты электрическими сигналами. Оперативная память предназначена для хранения данных и программ, участвующих в текущих вычислениях, а также промежуточных и конечных результатов обработки. Оперативная память делится на две группы: • статическое ОЗУ содержит в качестве элементарных ячеек памяти триггеры, сохраняющие свое состояние до тех пор, пока схема находится под питанием, и нет новой записи данных; • динамическое ОЗУ основано на свойствах электрической емкости. Данные в них хранятся в виде зарядов на конденсаторах, образуемых элементами МОП - структур. Саморазряд конденсатора ведет к разрушению данных, поэтому они должны периодически (каждые несколько миллисекунд) регенерироваться. Стековая память, реализует безадресное задание операндов. В общем случае стек представляет собой группу последовательно пронумерованных регистров (аппаратурный стек) или ячеек памяти, снабженных указателем стека (обычно регистром) (УС), в котором автоматически при записи и считывании устанавливается номер (адрес) последней занятой ячейки стека («вершины стека»). При операции помещения в стек слово помещается в следующую по порядку свободную ячейку стека, а при считывании из стека – извлекается последнее, поступившее в него слово. Таким образом, в стеке реализуется дисциплина обслуживания «последний пришел – первый вышел». Эта дисциплина при обращении к стеку реализуется автоматически. Поэтому при операциях со стеком возможно безадресное задание операнда – команда не содержит адреса ячейки стека, но содержит адрес ячейки памяти или регистра, откуда слово передается в стек или куда загружается из стека. Механизм стековой адресации поясняется на рис.1.6. При выполнении команды передачи в стек слова из регистра или ячейки оперативной памяти сначала указатель стека увеличивается на 1, а затем слово помещается в ячейку стека, указанную УС. При команде загрузки из стека регистра или ячейки памяти сначала слово извлекается из вершины стека, а затем указатель стека уменьшается на 1. Рис. 1.6. Стековая адресация а, в – исходное состояние стека; б – стек после выполнения команды «Заслать в стек»; г – стек после выполнения команды «Загрузить из стека» В современной архитектуре процессоров и микропроцессоров стек и стековая адресация широко используется при организации переходов к подпрограммам и возврат из них, а также в системах прерывания. 1.5. Организация системы прерывания программ Во время выполнения микропроцессором текущей программы внутри системы и связанной с ней внешней среде (например, в технологическом процессе, управляемом МП системой) могут возникать события, требующие немедленной реакции на них со стороны микропроцессора. Реакция состоит в том, что микропроцессор прерывает обработку текущей программы и переходит к выполнению некоторой другой программы, специально предназначенной для данного события. По завершению этой программы микропроцессор возвращается к выполнению прерванной программы. Рассмотренный процесс называется прерыванием программы. Каждое событие, требующее прерывание программы, сопровождается сигналом, оповещающим микропроцессор, который называется запросом прерывания (). Программа, затребованная запросом прерывания, называется прерывающей программой. Чтобы микропроцессорная система могла реализовать прерывания программ ей необходимо иметь соответствующие аппаратные и программные средства, совокупность которых получила название системы прерывания программ или контроллера прерываний. Основное назначение системы прерывания – это автоматическое прерывание программ с целью увеличения его скорости переключения. Основными функциями системы прерывания являются: запоминание состояния прерываемой программы, идентификация прерывающего устройства и осуществления перехода к прерывающей программе, а также восстановление состояния прерванной программы и возврат к ней. Практически в каждом микропроцессоре реализована особая структура системы прерываний, а программируемые БИС управления прерываниями еще более увеличивают число разновидностей этой структуры. Однако общая последовательность реакции различных микропроцессоров на сигнал прерывания примерно одинакова и содержит следующие действия: • устройство генерирует сигнал прерывания, который подается на вход прерывания микропроцессора (INT); на этой линии по схеме ИЛИ объединяются запросы всех устройств, работающих в режиме прерывания; • микропроцессор завершает текущую команду и, если прерывания разрешены (не замаскированы), формируют сигнал INTA подтверждения прерывания; до получения этого сигнала устройство сохраняет активный уровень сигнала INT; • осуществляется запоминание содержимого программного счетчика и некоторых РОН в стеке; • микропроцессор идентифицирует прерывающее устройство для перехода к соответствующей подпрограмме обслуживания; • выполняется короткая (30-50 байт) подпрограмма обслуживания прерывания, в которой запрограммированы действия по передаче данных, модификации указателей, проверке окончания операций ввода-вывода и др.; • восстанавливается состояние прерванной программы, для чего запомненное содержимое регистров извлекаются из стека; • возобновляется выполнение прерываемой программы; это действие инициируется командой возврата из прерывания, являющейся последней командой подпрограммы обслуживания прерывания. При наличии нескольких источников запросов прерывания между запросами должны быть установлены приоритетные соотношения, определяющие, какой из нескольких поступающих запросов подлежит обработке в первую очередь, и устанавливающие, имеет право или нет, данный запрос прерывать ту или иную программу. Для оценки эффективности систем прерывания могут быть использованы следующие характеристики. Время реакции - время между появлением сигнала прерывания и началом выполнения прерывающей программы (включая время выполнения цикла прерывания микропроцессора). Время обслуживания есть сумма времени, затраченной на сохранение состояния прерванной программы, и времени на возврат к ней: Глубина прерывания – максимальное число программ, которые могут прерывать друг друга. Если после перехода к прерывающей программе и вплоть до ее окончания прием других запросов прерываний запрещен, то система имеет глубину прерывания равную 1. Глубина равна , если допускается последовательное прерывание до программ. Глубина прерываний обычно совпадает с числом уровней приоритета в системе прерываний. Если время реакции системы прерываний настолько велико, что запрос оказывается не обслуженным до момента прихода нового запроса от того же источника, то возникает насыщение системы прерывания. В этом случае предыдущий запрос прерывания от данного источника будет системой утрачен. Быстродействие микропроцессора, логические возможности системы прерывания и количество источников прерывания должны быть согласованы таким образом, чтобы насыщение было невозможным. Число уровней (классов) прерывания – совокупность запросов, инициирующих одну и ту же прерывающую программу. Существуют два основных вида прерывания: программное прерывание и аппаратное прерывание. Программное прерывание реализуется введением специальных команд прерывания в систему команд процессора. Введение таких специальных команд позволяет создавать гибкие и мощные программные средства (например, операционные системы). Аппаратные прерывания могут инициироваться как операционными блоками микропроцессора, так и устройствами внешними по отношению к нему. Аппаратные прерывания подразделяются на маскируемые прерывания и немаскируемые прерывания. Маскируемые прерывания реализуется только при условии разрешения прерывания. Процессор реагирует на запросы маскируемых прерываний по линии INT, если установлен внутренний триггер разрешения прерываний INTE, называемой также маской. На рис.1.7 приведена функциональная внутренняя схема прерываний. Рис. 1.7. Внутренняя схема прерываний Состояние триггера разрешения прерывания INTE идентифицируется выходным сигналом разрешения прерывания с такой же мнемоникой INTE. Если INTE=0, прерывания запрещены (замаскированы) и процессор не реагирует на сигнал INT=1. С помощью команд разрешения EI и запрещения DI прерываний можно программно управлять состоянием триггера INTE, и пользователь может защитить от прерываний критические сегменты прикладной программы. При восприятии прерывания триггер прерывания IFF переводиться в нулевое состояние, что приводит к запрещению инкремента программного счетчика и генерированию сигнала подтверждения прерывания INTA. При этом сбрасывается триггер INTE и в дальнейшем разрешить прерывание можно только командой EI. Для программного управления ПУ в их регистрах управления и состояния предусмотрен специальный бит INTEN разрешения прерывания (маска). Иногда биты масок всех устройств объединяются в специальный регистр. Наконец, в некоторых микропроцессорах бит маскирования прерывания входит в слово состояния процессора PSW. Немаскируемые прерывания реализуют режим безусловного прерывания. Микропроцессор воспринимает запросы прерывания независимо от того, в каком состоянии находится триггер разрешения прерывания. Эти прерывания должны отражать ситуации, в которых желательно немедленное прерывание (например, ошибка аппаратуры контроля, уменьшение напряжения сети до критического уровня и т.д.). Одним из распространенных способов организации системы прерывания является векторное приоритетное прерывание. Этот способ реализуется с помощью дополнительных аппаратных средств в виде интерфейсных БИС, которые называются контроллерами прерываний. Система прерывания при такой организации имеет несколько уровней прерываний (линий запросов прерываний), к которым могут подключаться различные устройства, причем каждый уровень имеет свой вектор прерывания. Для реализации векторного приоритетного прерывания необходимо распределить приоритеты между уровнями и обеспечить механизм взаимодействия подпрограмм обслуживания прерывания соответствующих уровней. Распределение приоритетов между уровнями могут реализовываться различными способами. Одним из этих способов является векторное прерывание с фиксированным приоритетом. Каждому уровню (входу) запросов прерывания присваивается фиксированный приоритет в порядке возрастания. Запрос с более высоким приоритетом прерывает обслуживание прерывания с меньшим приоритетом. Вторым способом является векторное прерывание с циклическим приоритетом. Каждому входу, как и в предыдущем случае, присваивается фиксированный приоритет. После запроса прерывания и выполнения соответствующей подпрограммы обслуживания приоритеты изменяются в круговом порядке таким образом, что последний обслуженный вход будет иметь низший приоритет. Этот способ характерен для таких применений, в которых устройства имеют одинаковый приоритет и ни одному из них нельзя отдать предпочтения. Реализация векторного прерывания с адресуемым приоритетом аналогична второму способу, но допускает программное определение уровня запросов прерывания, которому назначается низший приоритет. Запрещение прерывания на время обслуживания любого устройства может привести к потере запросов прерываний высокоприоритетных устройств, появляющихся при обслуживании устройств с меньшими приоритетами. Для исключения такой ситуации возникает необходимость использования механизма вложения прерываний, который позволит обеспечить взаимодействие подпрограмм обслуживания соответствующих уровней между собой. Прерывание подпрограмм обслуживания прерываний называется вложенным прерыванием. Для того чтобы процессор реагировал на запросы прерываний в начале каждой подпрограммы обслуживания их необходимо разрешать командой EI. Для организации вложенных прерываний в каждой подпрограмме обслуживания прерываний необходимо выполнить следующие действия: • разрешить прерывание; • временно запомнить приоритет прерванной программы; • загрузить в схему приоритетных прерываний новый текущий приоритет; • собственно обслужить прерывание; • восстановить прежний приоритет; • возобновить прерванную программу с помощью команды RTI. При определении приоритета прерывания программ различают два его значения: приоритет между запросами прерывания и приоритет между прерывающими программами. Приоритет между запросами прерываний устанавливает очередность восприятия запросов, поступивших одновременно от различных уровней. Такой приоритет может быть реализован способами, которые указаны выше при организации векторного приоритетного прерывания. Приоритет между прерывающими программами устанавливает старшинство в выполнении прерывающих программ разных уровней. Он определяет фактический порядок, в котором программы будут использоваться. Обычно этот приоритет реализуется как программно - управляемый на основе маски прерывания. Маска прерывания представляет собой двоичный код, разряды которого поставлены в соответствие уровням или источникам прерывания. Маска загружается командой программы в регистр маски. Состояние "1" в данном разряде регистра маски разрешает, а "0" запрещает (маскирует) прерывание текущей программы от запросов соответствующего уровня или источника прерывания. Порядок расположения разрядов в регистре маски и нумерация уровней не имеют значения. Для каждой прерывающей программы может быть установлена своя маска. И, наконец, программа, изменяя биты в регистре маски, может устанавливать произвольные приоритетные соотношения между уровнями с любыми номерами без коммутации линий, по которым поступают запросы прерывания. Таким образом, используя различные виды и способы организации прерываний, можно строить гибкие в то же время сложные системы многоуровневых прерываний, которые позволят подключать значительное число периферийных устройств с различным быстродействием. 1.6. Представление чисел в микропроцессорах В зависимости от специфики применения МП числа в них могут быть представлены в разнообразных форматах. Рассмотрим представление чисел на примере восьмиразрядных процессоров. В простейших применениях управляющих МП систем широко используется способ представления целых чисел без знака в двоичном коде (рис.1.5,а). Диапазон представления чисел невелик и составляет от 0 до . В МП системах, ориентированных на обработку данных, в которых, кроме логических операций, выполняются также операции сложения и вычитания, используется представление чисел со знаком (рис.1.5,б). При этом способе старший бит отводится для знака числа (S=1 – число отрицательное, S=0 – число положительное). Положительные числа представляются модулем, а отрицательные – дополнительным кодом. Числа в этом случае могут находиться в диапазоне от до . Аналогично представляются числа двойной длины (двухбайтовые числа). Знаковый разряд располагается при этом в бите старшего байта. Диапазон представления чисел расширяется до . В МП системах, требующих выполнения операций над числами по правилам десятичной арифметики, используется десятичный двоично-кодированный формат (двоично-десятичные числа) (рис.1.5,в), в котором каждый байт условно разбивается на две тетрады, в каждой из которых кодируется десятичное число. Рис.1.5. Форматы представления однобайтных чисел В случаях, когда МП система требует расширенного диапазона представления чисел, применяются многобайтные коды. На рис.1.6,а показан пример размещения в памяти МП системы 32-битного двоичного целого числа со знаком. Обработка таких многобайтных чисел, расположенных в смежных ячейках, осуществляется в МП по байтно, начиная с младшего байта, путем вызова соответствующей подпрограммы обработки и трехкратной модификации (инкрементирования) указателя стека. Если в МП системе необходимо выполнить обработку десятичных чисел со знаком, то такие многобайтные числа представляются в десятичном дополнительном коде. При этом старшая тетрада старшего байта числа используется для кодирования знака числа, а остальные тетрады содержат двоичные коды десятичных цифр (рис.1.6,б). Положительное число в знаковой тетраде кодируется четырьмя нулями, а для представления знака «минус» используется код 1001 (девятка). Для представления дробных чисел в МП может использоваться формат с плавающей точкой. Как правило, при этом два или три младших байта отводятся для представления мантиссы, а старший байт – для представления порядка числа и его знака. При этом бит определяет знак порядка: при отрицательном порядке и при положительном. Порядок p представляется обычно смещенным кодом со смещением 64 и занимает биты . Значение порядка лежит в пределах , что соответствует . Бит в старшем байте задает знак числа: 0 соответствует плюсу, 1 – минусу (рис.1.6, в). Мантисса m представляется либо прямым, либо дополнительным кодом и должна быть нормализованной, т.е. иметь значащую старшую цифру (находиться по модулю в диапазоне от до 1). Если в процессе вычислений мантисса денормализуется, число подвергается процедуре нормализации: сдвигу мантиссы влево (или вправо) с одновременным уменьшением (или увеличением) порядка. Число с плавающей точкой определяется как , что позволяет перекрывать диапазон модулей от до . Использование в МП системах многобайтных чисел приводит к резкому снижению производительности. Чем в большей степени формат обрабатываемых чисел (а на него нет никаких ограничений) превышает собственный формат МП (разрядность шины данных), тем значительнее снижается быстродействие обработки данных в МП системе. Рис.1.6. Форматы представления многобайтных чисел 1.7. Выполнение арифметических операций Основной операцией, которая используется в цифровых устройствах при различных вычислениях, является операция алгебраического сложения чисел (сложения в котором могут участвовать как положительные, так и отрицательные числа). Такие операции как умножение и деление также выполняются с помощью операции сложения и некоторых логических операций (например, сдвига результата сложения). Поэтому с операции сложения начнем рассмотрение выполнения арифметических операций микропроцессором. Сложение положительных двоичных чисел. Выполнение этой операции покажем на примере: Цифры разрядов суммы формируются последовательно, начиная с младшего разряда. Цифра младшего разряда суммы получается суммированием цифр младших разрядов слагаемых. При этом, кроме цифры разряда суммы формируется цифра переноса в следующий более старший разряд. Таким образом, в разрядах, начиная со второго, суммируются три цифры: цифры соответствующего разряда слагаемых и перенос, поступающий в данный разряд из предыдущего. Перенос равен 1 во всех случаях, когда результат суммирования цифр в разряде равен или больше (основание системы счисления). При этом в разряд суммы записывается цифра на единиц (т.е. на 2 единицы) меньшая результата сложения. Алгебраическое сложение с использованием дополнительного кода. Для пояснения сущности излагаемого метода рассмотрим следующий пример. Пусть необходимо сложить два десятичных числа и . Так как второе слагаемое отрицательное число, то согласно приему, известному из школьной программы, для получения цифр суммы потребуется заем из старших разрядов. В цифровом устройстве эту операцию выполнять не обязательно. Искомый результат может быть получен, если отрицательное число преобразовать в дополнительный код и выполнить операцию поразрядного сложения (как при сложении положительных чисел). При сложении складываются и двоичные цифры знаковых разрядов с отбрасыванием возникающего из этого разряда переноса. Дополнительный код отрицательного числа формируется по следующему правилу: инвертируются (производится замена 0 на 1 и 1 на 0) цифры всех разрядов отрицательного числа, кроме знакового разряда, и в младший разряд прибавляется 1. Например, если , то . Обратное преобразование из дополнительного кода в прямой код производится по тому же правилу. Рассмотрим примеры выполнения операции сложения. Пример 1. Пусть и Как указывалось выше, перенос из знакового разряда отбрасывается. Пример 2. Изменим знаки слагаемых (по отношению к предыдущему примеру) и . Таким образом, если результат сложения есть отрицательное число, то оно оказывается представленным в дополнительном коде. Сложение десятичных чисел. Двоично-десятичные числа суммируются по правилам сложения двоичных чисел. Если при суммировании цифр тетрады полученная сумма больше девяти или формируется перенос из старшего разряда тетрады, то выполняется коррекция результата. При этом к полученной сумме прибавляется число шесть. Пример 1. Сложить десятичные числа А=18 и В=19. При суммировании отрицательных десятичных чисел отрицательные числа должны быть представлены в дополнительном коде. Дополнительный код отрицательного десятичного числа получается путем замены цифр разрядов (кроме знакового разряда) их дополнением до 9 и прибавлением затем в младший разряд 1. Например, если , то . При представлении десятичных чисел двоично-десятичным кодом дополнительный код получается следующим образом: сначала во все тетрады добавляется 01102 (6), затем все цифры разрядов (кроме знакового разряда) инвертируются, и к младшему разряду прибавляется 1 Пример 2. Сложить десятичные числа А=836 и В=-256. Умножение двоичных чисел. Операция умножения включает определение знака и абсолютного значения произведения. Знаковый разряд произведения может быть получен суммированием по модулю 2 знаковых разрядов сомножителей. Абсолютное значение произведения получается путем перемножения чисел без учета их знаков. Пусть производится умножение чисел и Как видно из примера, операция умножения состоит из ряда последовательных операций сложения частичных произведений. Операциями сложения управляют разряды множителя: если в каком-то разряде множителя находится единица, то к сумме частичных произведений добавляется множимое с соответствующим сдвигом; если в разряде множителя – нуль, то множимое не прибавляется. Процесс суммирования можно начинать с младшего либо старшего частичного произведения. Ниже показаны процессы при умножении с суммированием частичных произведений, начиная со старшего (используется приведенный выше пример умножения чисел и ). При умножении целых чисел для фиксации произведения в разрядной сетке должно предусматриваться число разрядов, равное сумме чисел разрядов множимого и множителя. 2. МИКРОПРЦЕССОРНЫЕ СИСТЕМЫ НА ОСНОВЕ МИКРОПРОЦЕССОРНОГО КОМПЛЕКТА СЕРИИ К580 2.1. Состав микропроцессорного комплекта МПК серии К580 содержит набор БИС для построения микропроцессорных систем невысокого быстродействия, работающих с тактовой частотой до 2,5 МГц. С использованием этого МПК строятся микропроцессорные системы (МПС), решающие задачи управления различными технологическими процессами. Комплект имеет следующие особенности. В нем предусмотрена БИС центрального процессора, содержащая в одной микросхеме операционное и управляющее устройства, что существенно упрощает построение микропроцессорной системы. Кроме того, для облегчения программирования при управлении микросхемами МПК применяется фиксированный набор команд, что приводит к снижению быстродействия микропроцессорной системы. Это связано с тем, что предложенный набор команд может оказаться недостаточным для решения конкретной задачи. Ряд микросхем, входящих в состав МПК, выполнены по n-МОП технологии, другие - по технологии ТТЛШ. Однако независимо от технологии изготовления все входные и выходные сигналы микросхем серии К580 соответствуют уровням логических схем ТТЛ – технологии, что упрощает согласование с микросхемами ТТЛ – технологии любых серий. Все микросхемы МПК могут работать в диапазоне температур от -10° С до + 70° С. Микросхема К580ВМ80А требует трех источников напряжения :питания: +5 В, -5 В и +12 В, микросхема К580ГФ24 – двух источников: +5 В и +12 В, остальные микросхемы – одного источника: +5 В. В табл. 2.1 приведен состав микропроцессорного комплекта серии К580. Таблица 2.1 Состав микропроцессорного комплекта Обозначение микросхемы Назначение Выполняемая функция К580ВМ80А Параллельный центральный процессор Центральный процессор с фиксированной системой команд для обработки параллельной 8-разрядной информации К580ВВ51А Универсальный синхронно/асинхронный приемопередатчик 8-разрядное универсальное синхронно/асинхронное приемо-передающее устройство последовательной связи К580ВИ53 8 или 16-разрядный таймер Формирует программно-управляемые временные задержки для синхронизации управляемых объектов в реальном масштабе времени К580ВВ55А 8-разрядный параллельный порт Программируемый ввод-вывод параллельной информации К580ВТ57 8 или 16-разрядный контроллер прямого доступа к памяти Высокоскоростной обмен информацией между памятью МПС и периферийными устройствами К580ВН59 Контроллер прерываний Обслуживает до восьми запросов на прерывания от внешних устройств К580ВВ79 8-разрядный интерфейс клавиатуры и дисплея Контроллер ввода-вывода для клавиатуры и дисплея К580ВГ75 8 или 16-разрядный интерфейс электронно-лучевой трубки Контроллер вывода информации из памяти МПС на экран электронно-лучевой трубки К580ВК91А Интерфейс канала Устройство сопряжения микропроцессора с информационно-измерительной системой К580ВА93 Приемопередатчик канала Приемопередатчик микропроцессор - канал общего пользования К580ГФ24 Генератор тактовых импульсов Формирует две последовательности тактовых импульсов, необходимые для работы центрального процессора К580ВК28 К580ВК38 Системный контроллер и шинный формирователь Формирует сигналы управления различными устройствами, входящими в МПС К580ИР82 К580ИР83 Буферный регистр 8-разрядный буферный регистр с тремя состояниями К580ВА86 К580ВА87 Шинный формирователь Двунаправленный 8-разрядный шинный формирователь с высокой нагрузочной способностью и тремя состояниями 2.2. Структурная схема микропроцессора Организация микропроцессора К580ВМ80А (аналог Intel 8080) имеет следующие основные особенности: • трехшинная структура с шинами данных, адреса и управления; • магистральный принцип связей, реализованный в виде связывающей основные узлы микропроцессора двунаправленной шиной данных. • наличие регистровой памяти, образованной программно-доступными общими и специализированными регистрами (счетчик команд, указатель стека, регистры общего назначения), а также регистрами временного хранения; • наличие средств организации стековой памяти (регистр – указатель стека, схемы выполнения операции инкремент – декремент, специальных команд, стековых операций); • наличие 16-разрядной шины адреса, обеспечивающей возможность прямой адресации любого байта в памяти емкостью 64 Кбайт; • наличие операций над двухбайтными словами, что обеспечивается специальными командами, тандемными передачами; • использование трех форматов команд (однобайтного, двухбайтного, трехбайтного) и разнообразных способов адресации (подразумеваемой, прямой, регистровой, косвенной, непосредственной, стековой), позволяющих при 8-разрядном слове иметь достаточно гибкую систему команд; • возможность реализации векторного многоуровневого приоритетного прерывания путем подключения к МП специальной дополнительной БИС (контроллер прерываний); • возможность реализации в МП режима прямого доступа к памяти путем подключения специальной БИС (контроллера прямого доступа к памяти); • наличие эффективных средств работы с подпрограммами и обработки запросов прерываний (стековая память, специальные команды вызова подпрограмм и возврата из подпрограмм). На рис. 2.1 показано назначение выводов корпуса микропроцессора, а в и табл.2.2 их описание. Структурная схема микропроцессора К580ВМ80А приведена на рис. 2.2. Рис.2.1. Назначение выводов корпуса микропроцессора К580ВМ80А Таблица 2.2 Описание выводов МП К580 Номер вывода Обозначение Назначение 1 25…35 37…40 A0…A15 Шина адреса 2 ОБЩ Общий вывод 3…10 D0…D7 Шина данных 11 -5 В Напряжение питания 12 RESET Сброс 13 HOLD Требование захвата 14 INT Запрос прерывания 15 С2 Выводы для подключения внешнего генератора тактовых импульсов 22 С1 16 INTE Разрешение прерывания 17 DBIN Управление чтением 18 WR Управление записью 19 SYNG Сигнал синхронизации внешнего тактового генератора 20 +5 В Напряжение питания 21 HLDA Подтверждение состояния захвата 23 READY Готовность к приему (выдаче) данных 24 WAIT Состояние ожидания 36 +12 В Напряжение питания На структурные решения определенное влияние оказало ограниченное число выводов корпуса МП (в данном случае их 40). МП имеет три шины: 8-разрядную двунаправленную внутреннюю шину данных (ШД), 16-разрядную шину адреса (ША) и шину управления (ШУ). Шина адреса обеспечивает прямую адресацию внешней памяти объемом до 65536 байт, 256 устройств ввода и 256 устройств вывода. Внутренняя шина данных является магистралью, по которой могут обмениваться данными все подключаемые к ней блоки (узлы) МП. Одновременно по шине данных осуществляется обмен только между двумя блоками МП. Таким образом, узлы МП, подключенные к шине данных, разделяют эту шину во времени. Шина управления содержит линии для передачи управляющих сигналов, признаков состояния процессора и периферийных устройств, в том числе линии синхронизации передачи и идентификации информации, передаваемой по шине данных; сигналов информирующих МП о готовности периферийных устройств; сигнала запроса прерывания от периферийных устройств и сигнала разрешения прерывания и др. В состав микропроцессора входят следующие основные блоки: арифметико-логическое устройство (АЛУ), блок регистров, буферные схемы, управляющее устройство. Рис.2.2. Структурная схема микропроцессора К580ВМ80А 2.2.1. Арифметико-логическое устройство Арифметико-логический блок реализует простейшие арифметические и логические операции (сложение, вычитание, сдвиги, сравнение, логическое умножение и т.д.). Все более сложные операции (умножение, деление, вычисление элементарных функций и др.) выполняются по подпрограммам. В его состав входят следующие основные узлы: • 8-разрядная схема АЛУ предназначенная для выполнения арифметических и логических операций над двоичными данными, представленными в дополнительном коде или двоично-десятичными данными; • аккумулятор (A), подключаемый к одному из входов схемы АЛУ, представляет собой 8-разрядный регистр и предназначен для хранения одного из операндов АЛУ, а также для запоминания результата операции; • буферный регистр (T), подключенный к другому входу схемы АЛУ, служит для временного хранения второго операнда АЛУ (программно не доступен). Он позволяет избежать возникновения «гонок», когда какой-либо из регистров общего назначения (РОН) используется в одной операции и в качестве регистра – операнда и в качестве регистра - результата; • схема десятичной коррекции предназначенная для коррекции результата при выполнении операции сложения двоично-десятичных данных. Для этого к старшей тетраде в схеме десятичной коррекции прибавляется число 6, если (A7…A4) > 9 или C = 1. К младшей тетраде (A3…A0) одновременно также прибавляется число 6, кроме случая отсутствия переноса из младшей тетрады, содержащей число от 0 до 9; • регистр признаков (FLAG) – пятиразрядный регистр признаков, предназначенный для хранения флагов, вырабатываемых АЛУ. При выполнении арифметических и некоторых других операций АЛУ вырабатывает следующие пять признаков: 1. С (Carry) - признак переноса. Устанавливается в «1», если при выполнении операции возник перенос из седьмого разряда сумматора или потребовался заем в седьмой разряд; 2. AC (Auxiliary Carry) – признак вспомогательного переноса. Устанавливается в «1», если при выполнении операции был перенос из третьего разряда сумматора в четвертый; 3. S (Sign) – признак знака. Устанавливается в «1», если старший значащий разряд результата равен единице, т.е. результат операции – отрицательное число; 4. Z (Zero) – признак нуля. Устанавливается в «1», если результат операции равен нулю; 5. P (Parity) – признак четности. Устанавливается в «1», если число единиц результата операции четное. На рис. 2.4 показан формат регистра признаков. Рис. 2.2. Формат регистра признаков 2.2.2. Блок регистров Микропроцессор К580 содержит программно-доступные 8-разрядные регистры общего назначения (РОН) и 16-разрядные специализированные регистры: счетчик команд и регистр-указатель стека. Кроме того, имеются непосредственно недоступные программе регистры: 8-разрядные регистры временного хранения W, Z и 16-разрядный регистр адреса. Регистры общего назначения B, C, D, E, H, L используются для хранения операндов, промежуточных и конечных результатов, а также адресов и индексов при косвенной и индексной адресации. Для выполнения операций со словами двойной длины и операций формирования и пересылок двухбайтных адресов имеется возможность оперировать с содержимым пар регистров BC, DE, HL. Особенность блока регистров МП является наличие в его составе схемы инкремента/декремента (INC/DEC), которая производит над содержимым счетчика команд (PC) и регистра-указателя стека (SP) операцию прибавления/вычитания 1 без привлечения АЛУ. Счетчик команд (16-ти разрядный регистр) предназначен для хранения адреса команды; после выборки из оперативной памяти текущей команды содержимое счетчика увеличивается на единицу и таким образом формируется адрес очередной команды (при отсутствии безусловных и условных переходов). Указатель стека (16-ти разрядный регистр) служит для адресации стековой памяти. В МП К580 используется «перевернутый» стек, т.е. при передаче в стек слова значение указателя стека (адрес вершины стека) уменьшается, а при извлечении слова из стека увеличивается. Стековая адресация широко используется при работе с подпрограммами и в процедурах прерывания. Для кратковременного хранения некоторых операндов и результатов выполнения операций служат регистры временного хранения данных W, Z. Использование регистров временного хранения позволяет МП за один цикл выполнения команды реализовать, например, такую операцию, как обмен содержимым двух регистров. В состав блока регистров входит регистр адреса памяти (RA), предназначенный для хранения адреса ячейки памяти, в которой записана текущая команда. Регистр адреса недоступен программисту. Однако любая пара регистров (BC, DE, HL) может быть использована для задания адресов команд и данных в программе. 2.2.4. Буферные схемы Двунаправленный буфер шины данных предназначен для логического и электрического разделения внутрипроцессорной шины данных и внешней, системной шины данных. Буфер состоит из регистра-защелки и выходной схемы с тремя состояниями, т.е. схемы обеспечивающей на выходе состояния 0, 1 и полное отключение от нагрузки (высокоимпедансное состояние). В режиме ввода информации внутренняя шина данных подключается к регистру-защелке буфера, загрузку которого из внешней шины производит буферная схема под управлением команды. В режиме вывода информации буферная схема передает в шину данных содержимое буферного регистра-защелки, на вход которого по внутренней шине с одного из регистров загружена информация, подлежащая выдаче. Во время выполнения операций в МП, не связанных с процедурами обмена с внешними устройствами буферная схема отключается от шины данных. Во время выполнения операций в МП не связанных с процедурами обмена с внешними по отношению к МП устройствами системы, буферная схема отключается от шины данных, т.е. переходит в высокоимпедансное состояние (не нуль, не один). Буферная схема шины адреса – однонаправленная и обеспечивает передачу адресов команд и данных, а также номеров периферийных устройств от МП в систему. Выход буфера адреса, точно также как и буфера данных может переходить в отключенное состояние. 2.2.5. Управляющее устройство Блок управления включает: • 8-ми разрядный регистр команд (RK), предназначенный для приема и хранения кода операции; • устройства управления и синхронизации (CU), формирующего управляющие сигналы для всех внутренних регистров и блоков МП, а также его выходные сигналы управления; • управляющей памяти, выполненной на программируемой логической матрице, в которой хранятся микропрограммы отдельных операций. Пользователь не может изменить содержимого управляющей памяти, а, следовательно, и состава команд. 2.3. Система команд микропроцессора Система команд микропроцессора К580 состоит из 78 базовых команд. В системе команд имеются однобайтовые, двухбайтовые и трехбайтовые команды. Форматы команд показаны на рис. 2.3. Первый байт всегда является кодом операции (КОП), который уточняет характер выполняемой МП операции. Состав команд, на которые МП реагирует, постоянно определен свойствами и структурой кристалла. Для выполнения какой-либо операции в команде должно содержаться указание вида операции, а также, откуда берутся участвующие в операции данные, и куда помещается результат выполняемой операции (т.е. указание об источниках и приемниках операндов). Способы указания источников и приемников операндов называют способами адресации. МП К580 использует пять способов адресации, а именно: неявную, регистровую, прямую, непосредственную и косвенную регистровую. Регистровая адресация. При этом способе адресом операнда является указанный в команде (в байте кода операции) адрес регистра микропроцессора. В кодовой комбинации команды 01DDDSSS два старших разряда (01) определяют вид операции (операция пересылки содержимого одного регистра в другой) в последующих 3-разрядных группах приведены адреса регистров назначения (DDD) и источника (SSS). Адреса регистров приведены в табл.2.3. Таблица 2.3 Адреса регистров Регистр Адрес регистра A 111 B 000 C 001 D 010 E 011 H 100 L 101 Команды регистровой адресации очень эффективны, так как используют только один байт памяти программ. Они быстро выполнимы, так как не используют операцию извлечения данных из памяти. Непосредственная адресация. При этом способе адресации операнды (один или два) задаются непосредственно в команде вслед за байтом кода операции во втором байте либо во втором и третьем байтах команды. Все команды непосредственной адресации МП К580 за исключением двух (MVI и LXI), используют аккумулятор как неявный операнд. Прямая адресация. При этом способе адресации адрес операнда задается в команде вслед за байтом кода операции во втором и третьем байтах. Рис.2.3. Форматы команд МП К580 Команды с прямой адресацией занимают много места в памяти и затрачивают много времени на выполнение из-за многократных обращений к памяти. Поэтому по возможности следует стремиться к использованию команд с непосредственной и косвенной регистровой адресацией. Косвенная регистровая адресация. При этом способе адресации в команде отмечается пара регистров (RP) блока РОН (путем указания адреса одного из регистров этой пары), содержимое которой служит адресом, по которому в оперативной памяти находится операнд. Адреса пары регистров приведены в табл.2.4. Таблица 2.4 Адреса пары регистров Адрес пары регистров (RP) Пара регистров 00 01 10 11 BC DE HL SP Косвенная регистровая адресация требует предварительной загрузки адреса в регистр косвенного адреса. Поэтому косвенная регистровая адресация оказывается эффективной при обработке списочных структур данных, когда после загрузки косвенного адреса он многократно модифицируется командами инкремент и декремент. Неявная адресация. При этом способе адресации команда воздействует только на регистр признаков, но не на другие регистры и память. Например, команда STC устанавливает в регистре признаков разряд переноса. Систему команд микропроцессора можно разделить на пять групп в соответствии с их функциональным назначением: 1. Группа пересылки данных - используются для передачи данных между регистрами или ячейками памяти и регистрами. Она содержит передачи, загрузку, размещения и обмены данных; 2. Арифметическая группа – используются для сложения, вычитания, инкремента или декремента содержимого регистра или ячейки памяти; 3. Логическая группа выполняет операции «И», «ИЛИ», «Исключающее ИЛИ», сравнений, сдвигов и инвертирования данных в регистрах или между данными в памяти и регистре; 4. Группа ветвления и переходов – используются для условных и безусловных ветвлений (переходов), вызова подпрограмм и выхода из них; 5. Группа управления, ввода/вывода и работы со стеком – используются для управления прерыванием, регистром признаков, ввода и вывода информации и операций со стеком. 2.3.1. Команды пересылки данных Команды пересылки данных обеспечивают выполнение операций размещения, обмена, загрузки и перемещения данных. Среди всех команд микропроцессора эти команды используются наиболее часто. Признаки условия не устанавливаются командами этой группы. В табл.2.5 приведены команды пересылки данных. Таблица 2.5 Команды пересылки данных Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия MOV R1, R2 01DDDSSS 1 1 (R1) ¬ (R2) MOV R, M 01DDD110 1 2 (R) ¬ M(HL) MOV M, R 01110SSS 1 2 M(HL) ¬ (R) MVI R, data 00DDD110 2 2 (R) ¬ (байт2) MVI M, data 00110110 2 3 M(HL) ¬ (байт2) LXI RP, data 00RP0001 2 3 (RH) ¬ (байт3); (RL) ¬ (байт2). LDA addr 00111010 3 4 (A) ¬ ((байт3)(байт2)) LHLD addr 00101010 3 5 L ¬ ((байт3)(байт2)); H ¬ ((байт3)(байт2)+1). LDAX RP 00RP1010 1 2 (A) ¬ (M) XCHG 11101011 1 1 (H) « (D); (L) « (E) STA addr 00110010 3 4 ((байт3)(байт2)) ¬ (A) SHLD addr 00110010 3 5 ((байт3)(байт2)) ¬ (L); ((байт3)(байт2)+1) ¬ (H) STAX RP 00RP0010 1 2 M(RP) ¬ (A) Команда пересылки с регистровой адресацией MOV A, D) осуществляет передачу содержимого регистра D в аккумулятор. Команда с непосредственной адресацией MVI D, 4Е16 производит пересылку числа, приведенного во втором байте команды (в примере число 4Е16), в регистр D, адрес которого указан в разрядах 5…3 первого байта команды. Команда с прямой адресацией LDA 020016 производит передачу содержимого ячейки памяти, адрес которой указан во втором и третьем байтах команды (020016), в аккумулятор. Команда LDAX BC загружается содержимое ячейки оперативной памяти, адресом которой служит содержимое пары регистров BC в аккумулятор. 2.3.2. Команды арифметических операций Команды арифметических операций предназначены для выполнения операций сложения, сложения с переносом, вычитания, вычитания с заемом, инкрементирования, декрементирования, десятичной коррекции аккумулятора. Эти команды оперируют с данными в памяти и регистрах. Во всех случаях (кроме указанных исключений) устанавливаются признаки (флаги) нуля Z, знака S, четности P, переноса C и вспомогательного переноса AC. Все операции вычитания выполняются с использованием дополнительного кода, устанавливают 1 в разряде переноса для указания переноса и сбрасывают его для указания отсутствия переноса. В табл.2.6 приведены команды арифметических операций. Таблица 2.6 Команды арифметических операций Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия ADD R 10000SSS 1 1 (A) ¬ (A)+(R) ADD M 10000110 1 2 (A) ¬ (A)+M(HL) ADI data 11000110 2 2 (A) ¬ (A)+(байт2). ADC R 10001SSS 1 1 (A) ¬ (A)+(R)+(C) ADC M 10001110 1 2 (A) ¬ (A)+M(HL)+(C). ACI data 11001110 2 2 (A) ¬ (A)+(байт2)+(C) DAD RP 00RP1101 1 3 (HL) ¬ (HL)+(RP). Устанавливается только флаг C. DAA 00100111 1 1 Десятичная коррекция (A) SUB R 10010SSS 1 1 (A) ¬ (A)-(R). SUB M 10010110 1 2 (A) ¬ (A)-M(HL) SUI data 11010110 2 2 A) ¬ (A)-(байт2). SBB R 10011SSS 1 1 (A) ¬ (A)-(R)-(C) SBB M 10011110 1 2 (A) ¬ (A)-M(HL)-(C) SBI data 11011110 2 2 (A) ¬ (A)-(байт2)-(C). INR R 00DDD100 1 1 (R) ¬ (R)+1. Флаг C не устанавливается INR M 00110100 1 3 M(HL) ¬ M(HL)+1. Флаг C не устанавливается INX RP 00RP0011 1 1 (RP) ¬ (RP)+1. Флаги не устанавливается DCR R 00DDD101 1 1 (R) ¬ (R)-1. Флаг C не устанавливается DCR M 00110101 1 3 M(HL) ¬ M(HL)-1. Флаг C не устанавливается DCX RP 00RP1011 1 1 (RP) ¬ (RP)-1 Флаги не устанавливается 2.3.3. Команды логических операций Задачей этих команд является выполнение логических операций И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ, сравнения, сдвига и инвертирования. Эти команды выполняют логические операции над данными в памяти или регистрах и признаках. В табл.2.7 приведены команды логических операций. Таблица 2.7 Команды логических операций Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия ANA R 10100SSS 1 1 (A) ¬ (A)Ù(R). Устанавливаются флаги – Z, S, P, AC. ANA M 10100110 1 2 (A) ¬ (A)ÙM(HL). Устанавливаются флаги – Z, S, P, AC. ANI data 10101SSS 2 2 (A) ¬ (A)Ù(байт2). Устанавливаются флаги – Z, S, P, AC. XRA R 10101SSS 1 1 (A) ¬ (A)Å(R). Устанавливаются флаги – Z, S, P. XRA M 10101110 1 2 (A) ¬ (A)ÅM(HL). Устанавливаются флаги – Z, S, P. XRI data 11101110 2 2 (A) ¬ (A)Å(байт2). Устанавливаются флаги – Z, S, P. ORA R 10110SS 1 1 (A) ¬ (A)Ú(R). Устанавливаются флаги – Z, S, P. ORA M 10110110 1 2 (A) ¬ (A)ÚM(HL). Устанавливаются флаги – Z, S, P. ORI data 11110110 2 2 (A) ¬ (A)Ú(байт2). Устанавливаются флаги – Z, S, P. CMP R 10111SSS 1 1 (A)-(R). Флаги – Z=1, если (A)=(R), C=1, если (A)<(R). CMP M 10111110 1 2 (A)-M(HL). Флаги – Z=1, если (A)=(M), C=1, если (A)<(M). CPI data 11111110 2 2 (A)-(байт2). Флаги – Z=1, если (A)=(байт2), C=1, если (A)<(байт2). RLC 00000111 1 1 Сдвиг влево (A ) ¬ (2A). Устанавливается флаг C. RRC 00001111 1 1 Сдвиг вправо. (A) ¬ (A/2). Устанавливается флаг C. RAL 00010111 1 1 Циклический сдвиг влево. Устанавливается флаг C. RAR 00011111 1 1 Циклический сдвиг вправо. Устанавливается флаг C. CMA 00101111 1 1 CMC 00111111 1 1 STC 00110111 1 1 (C) ¬ 1. 2.3.4. Команды ветвления и переходов Данная группа команд содержит команды переходов, вызова, возврата и повторного запуска (рестарт). Эта группа команд изменяет нормальный (последовательный) ход программы. Она включает команды двух типов: условного и безусловного переходов. Безусловные переходы выполняют операцию, определенную счетчиком команд; условные – проверяют состояние одного из признаков МП для определения целесообразности задаваемого ветвления. В командах условного перехода 3-разрядный указатель перехода (cnd) задает условие передачи управления по адресу, указанному в команде. Возможны задания восьми вариантов условия перехода: по наличию переноса, отсутствию переноса, нулевому, ненулевому, положительному, отрицательному, четному и нечетному результату. В табл.2.8 приведены коды условий (cnd), используемых в командах условного перехода, вызова подпрограмм и возврата из них. Таблица 2.8 Коды условий (cnd) Код Мнемоника Условия 000 NZ Не ноль (Z = 0) 001 Z Ноль (Z = 1) 010 NC Нет переноса (C = 0) 011 C Есть перенос (C = 1) 100 P0 Нечетный результат (P = 0) 101 PE Четный результат (P = 1) 110 P Результат положительный (S = 0) 111 M Результат отрицательный (S = 1) В табл.2.9 приведены команды ветвления и переходов. Таблица 2.9 Команды ветвления и переходов Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия JMP addr 11000011 3 3 Ветвление. (PC) ¬ (байт3)(байт2). Jcnd addr 11cnd010 3 5 Условное ветвление. Если (cnd), то (PC) ¬ ((байт3)(байт2). Иначе (PC) ¬ (PC)+1 CALL addr 11001101 - 3 Вызов подпрограммы. M(SP-1) ¬ (PCH), M(SP-2) ¬ (PCL), (SP) ¬ (SP)-2); (PC) ¬ (байт3)байт2). Ccnd addr 11cnd100 3 5 Если условие выполняется, то действия те же, что и в команде CALL, иначе (PC) ¬ (PC)+1 RET 11001001 1 3 Возврат из полпрограммы. M(SP)¬ (PCL); M(SP+1) ¬ (PCH); (SP) ¬ (SP)+2. Rcnd 11cnd000 1 3 Условный возврат из подпрограммы. Если условие выполняется, то действия те же, что и в RET, иначе (PC) ¬ (PC)+1 RST N 11NNN111 1 3 Рестарт. M(SP)-1) ¬ (PCH), M(SP-2) ¬ (PCL), (SP) ¬ ((SP)-2); (PC) ¬ (NNN´8). PCHL 11101001 1 1 Косвенный переход по адресу, указанному в паре регистров HL. (PCH) ¬ (H); (PCL) ¬ (L). 2.3.5. Команды управления, ввода/вывода и работы со стеком Команды этой группы выполняют операции помещения в стек и извлечения из него, ввода и вывода данных, обмена данными, разрешения и запрещения прерываний, содержит команды отсутствия операций и останова. В табл.2.10 приведены команды управления, ввода/вывода и работы со стеком. Таблица 2.10 Команды управления, ввода/вывода и работы со стеком Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия IN port 11011011 2 3 Ввести данные (A) ¬ (port) OUT port 11010011 2 3 Вывести данные (port) ¬ (A) PUSH RP 11RP0101 1 3 Загрузить в стек содержимое пары регистров. M(SP-1) ¬ (RH); M(SP-2) ) ¬ (RL); (SP) ¬ (SP-2). PUSH PSW 11110101 1 3 Загрузить в стек содержимое регистра флагов. M(SP-1) ¬ (A); M(SP-2) ¬ PSW; (SP) ¬ (SP-2). POP RP 11RP0001 1 3 Считать из стека содержимое пары регистров. (RL) ¬ M(SP); (RH) ¬ M(SP+1); (SP) ¬ ((SP)+2). POP PSW 11110001 1 3 Считать из стека содержимое регистра флагов. (PSW) ¬ M(SP); (A) ¬ M(SP+1)); (SP) ¬ (SP)+2). XTHL 11100011 1 3 Обмен содержимым верхушки стека и пары регистров HL. (L) « M(SP); (H) « M(SP+1) SPHL 11111001 1 3 (SP) ¬ (HL). EI 11111011 1 1 Разрешение прерываний после выполнения следующей команды. DI 11110011 1 1 Запрещение прерываний после выполнения следующей команды. HLT 01110110 1 1 Останов. Процессор останавливается. NOP 00000000 1 1 Нет операций. Не выполняется никаких операций. 2.4. Временная диаграмма работы микропроцессора Выполнение каждой команды производится МП в строго определенной последовательности, определяемой кодом команды, и синхронизируется во времени сигналами C1, C2 тактового генератора. Период синхросигналов C1, C2 называется машинным тактом (T). Длительность такта может быть равна от 0,5 до 2 мкс. Время, требуемое для извлечения из памяти одного байта информации или выполнения команды, называется машинным циклом. Машинный цикл может состоять из 3…5 машинных тактов. При включении питания на вход RESET микропроцессора подается высокий уровень напряжения, который устанавливает его в исходное состояние. В такте T1 МП выдает на шину адреса адрес ячейки памяти, в которой хранится первая команда программы, а на шину данных – информацию состояния, которая и определяет действия МП в конкретном машинном цикле. Следует подчеркнуть, что информация состояния выдается на шину данных в каждом такте T1 любого машинного цикла. Эта информация используется для выработки сигналов управления запоминающим устройством (ЗУ), портов ввода/вывода, а также для организации различных режимов работы МП. В зависимости от сочетания сигналов состояния, выдаваемых в конкретном цикле, машинные циклы можно разделить на десять типов: 1. Цикл М1 – прием первого байта команды в регистр команд; 2. Цикл чтения из ЗУ – чтение ЗУ по содержимому счетчика команд или адресу, записанному в пару регистров BC, DE, HL; 3. Цикл записи в ЗУ – запись в ЗУ по адресу, содержащемуся в паре регистров BC, DE, HL. 4. Цикл чтения стека – чтение ЗУ по содержимому указателя стека; 5. Цикл записи в стек – запись в ЗУ по содержимому указателя стека; 6. Цикл ввода – ввод информации в аккумулятор из порта; 7. Цикл вывода – вывод информации из аккумулятора в порт; 8. Цикл прерывания – прием кода команды RST или CALL из контроллера прерываний; 9. Цикл останова; 10. Цикл прерывания при останове – прием кода команды RST или CALL при выводе МП из режима ”Останов” по прерыванию. Наименования сигналов состояния и соответствие их разрядам шины данных приведены в табл.2.11. В табл.2.12 приведено соответствие этих сигналов типам машинных циклов. Таблица 2.11 Соответствие сигналов состояния разрядам шины данных Разряд шины данных Наименование сигналов состояния Подтверждение прерывания. Запись/вывод. Уровень лог. «0» означает, что происходит запись в ОЗУ или вывод информации из микропроцессора; уровень лог. «1» - чтение из ОЗУ или ввод информации в микропроцессор. Стек. На адресной шине установлено содержимое указателя стека. Подтверждение останова. Вывод. На адресной шине установлен номер внешнего устройства и осуществляется вывод содержимого аккумулятора. М1. Микропроцессор принимает первый байт команды Ввод. На адресной шине установлен номер устройства ввода и осуществляется ввод информации в аккумулятор микропроцессора. Чтение. Производится чтение из памяти в микропроцессор. Таблица 2.12 Соответствие сигналов типам машинных циклов Вид цикла Разряды шины данных Выборка первого байта команды М1 1 1 1 Чтение из памяти 1 1 Запись в память Чтение стека 1 1 1 Запись в стек 1 Ввод из порта 1 1 Вывод в порт 1 Прерывание 1 1 Останов 1 1 1 1 Прерывание при останове 1 1 1 1 1 Поскольку слово состояния выдается в такте Т1, а используется на протяжении всего машинного цикла, то его необходимо запоминать во внешнем регистре слова состояния (РСС). На рис. 2.4 показана упрощенная схема подключения РСС к МП. Рис.2.4.Схема подключения РСС Рассмотрим временные диаграммы работы МП при различных машинных циклах (рис.2.5, 2.6). Рис.2.5.Временная диаграмма извлечения кода команды или данных В первом такте синхронизации Т1 микропроцессор выставляет на шину адреса адрес очередной команды, а на шину данных – слово состояние. По положительному фронту тактового сигнала С2 формируется сигнал SYNG, который используется для синхронизации тактового генератора РФ24. В такте Т2 сигналом STSTB слово состояния записывается во внешний регистр ИС ВК28, по положительному фронту сигнала С2 формируется сигнал DBIN и микропроцессор переводит буфер данных в режим ввода. Кроме этого он осуществляет проверку готовности внешнего устройства к обмену. При этом схема INC/DEC увеличивает содержимое счетчика команд на 1. По переднему фронту сигнала С2 формируется сигнал SYNG и выдается слово состояния на шину данных. В такте Т2 слово состояния записывается в РSW. По переднему фронту сигнала С2 формируется сигнал DBIN, который разрешает прохождение данных в МП через системный контроллер. Сигнал на выходе ВК28 становится активно низким и разрешает чтение данных из памяти, которые запишутся во внутренние регистры микропроцессора в такте Т3. Если в такте Т3 сигнал на входе READY равен 1, то микропроцессор принимает информацию по каналу данных, анализирует состояние сигнала на входе HLDA и, если этот сигнал равен 1, то после окончания такта Т3 переходит в режим захвата. В зависимости от кода операции машинный цикл завершается после выполнения тактов Т3, Т4, Т5. Рис.2.6. .Временная диаграмма работы МП при выполнении команды ввода При выполнении микрокоманд микропроцессор может переходить в одно из трех состояний: «ожидание», «захват» и «останов», длительность которых определяется внешними управляющими сигналами. Сигнал высокого уровня на входе READY обеспечивает автоматическое выполнение команд программы микропроцессора с частотой тактовых сигналов. Если же на вход READY подан низкий уровень напряжения, то микропроцессор переходит в режим «ожидание» и формирует на выходе WAIT сигнал высокого уровня. При подаче на вход HLD высокого уровня напряжения микропроцессор переходит в режим «захват» и подтверждает переход в это состояние формированием сигнала высокого уровня на выходе HLDA. Буферные схемы канала адреса и шины данных переходят в третье состояние, а выходные управляющие сигналы – в низкий уровень, за исключением HLDA и WR. МП переходит в состояние «захват». 3. Микроконтроллер КМ1816ВЕ48 Особенностью построения современных технических систем является автоматизация процессов контроля их состояния и управления их состоянием с помощью контроллеров (устройств управления). Для уменьшения аппаратных затрат при построении контроллеров и снижения их стоимости применяются однокристальные микроконтроллеры (серий 1816, 1830). Микросхемы серии 1816 выполнены по n-МОП технологии, 1830 – по КМОП, поэтому они имеют низкое энергопотребление. Различают два типа семейства 8-разрядных микроконтроллеров МК 48 и МК 51. В настоящее время широко используются микроконтроллеры семейства МК 51. В пределах каждого семейства микросхемы имеют одинаковые структурную организацию, систему команд, разводку выводов и, таким образом полностью совместимы. Микросхемы семейства МК51 по сравнению с МК48 имеют более сложную структурную организацию, больший объем памяти, быстродействие, последовательный интерфейс (для ввода и вывода данных в последовательной форме), расширенную систему команд (включающей команды по выполнению таких операций, как вычитание, умножение, деление и др.), большим числом портов для обмена данными с другими устройствами. 3.1. Структурная схема микроконтроллера КМ1816ВЕ48 Микроконтроллер конструктивно выполнен в корпусе БИС с 40 внешними выводами, которые совместимы с элементами ТТЛ. Назначение выводов корпуса МК48 показано на рис. 3.1, а в табл. 3.1 приведено их описание. Структурная схема микроконтроллера приведена на рис. 3.2. Рис.3.1 Назначение выводов корпуса КМ1816ВЕ48 Таблица 3.1 Описание выводов МК48 Номер вывода Обозначение Назначение 1 T0 Тестируемый вход T0 используется при выполнении условного перехода JT0 и JNT0; после выполнения команды ENT0 CLK используется как выход тактовых сигналов; а также как вывод при программировании и проверке СППЗУ 2 X1 Выводы для подключения кварцевого резонатора 3 X2 4 Сброс 5 Пошаговое выполнение команд 6 Прерывание 7 EA Переключение на режим работы с внешней памятью 8 Разрешение чтения внешней памяти данных 9 Разрешение чтения внешней памяти программ 10 Разрешение записи во внешнюю память данных 11 ALE Разрешение фиксации адреса 12…19 DB0…DB7 Порт BUS 20 GND Общий вывод 21…24 35…38 P2.0…P2.7 Порт P2 25 PROG Выход строба для расширителя ввода-вывода; используется при программировании СППЗУ 26 UCC Напряжение резервного питания ПЗУ; вход установки режима микропотребления 27…34 P1.0…P1.7 Порт P1 39 T1 Тестируемый вход T1 используется при выполнении команд условного перехода JT1 и JNT1 и как вход счетчика внешних событий после выполнения команды STRT CNT 40 UCC Напряжение питания Рис.3.2. Структурная схема микроконтроллера КМ1816ВЕ48 Обмен информацией между всеми узлами внутри микроконтроллера происходит по внутренней 8-разрядной шине. Рассмотрим функции, выполняемые отдельными узлами микроконтроллера. 3.1.1 Арифметико-логический блок В состав арифметико-логического блока входят следующие устройства: 1. Аккумулятор (А) представляет собой 8-ми разрядный регистр, предназначенный для записи и хранения данных, подаваемых с внутренней шины. Результат выполнения операции АЛУ всегда заносится через шину в аккумулятор. Выход аккумулятора связан со входом регистра аккумулятора – 8-ми разрядного регистра предназначенного для записи и хранения одного из операндов, над которыми производятся операции в АЛУ. Сигналы с выхода регистра аккумулятора непосредственно подаются на вход первого операнда АЛУ; 2. Регистр временного хранения (РВ) представляет собой 8-ми разрядный регистр и предназначен для записи и хранения второго операнда при выполнении операций в АЛУ. Вход регистра связан шиной данных с выходом памяти программ. Сигналы с выхода временного хранения непосредственно подаются на вход регистра второго операнда АЛУ. Регистр программно недоступен 3. АЛУ позволяет выполнять арифметические, логические операции и операции сдвига над 8-разрядными двоичными и двоично-десятичными данными; 4. Схема десятичной коррекции предназначена для обработки данных, представленных в двоично-десятичном коде. В состав схемы входят узлы анализа содержимого полубайта (4 разряда старших или младших) аккумулятора, триггер основного и дополнительного переносов и схема формирования корректирующей поправки. Схема десятичной коррекции содержит также и ПЗУ констант 00, 06, 60, 66 (шестнадцатеричный код), которые в зависимости от значения младшего и старшего полубайтов и основного и дополнительного переносов подаются через регистр РВ на вход АЛУ; 5. Регистр состояния программы (регистр признаков) PSW предназначен для хранения данных о состоянии микроконтроллера. Назначение разрядов регистра PSW (формат PSW показан на рис.3.3) следующее: • разряды 0 ... 2 - разряды указателя стека (S0 ... S2); • разряд 3 не используется (при чтении всегда "1") • разряд 4 - разряд, указывающий используемый банк рабочих регистров общего назначения (BS); • разряд 5 – флаг пользователя (F0), используется по команде условного перехода; • разряд 6 – разряд дополнительного переноса (АС), используется по команде десятичной коррекции; • разряд 7 - перенос (С), указывающий на переполнение аккумулятора после предыдущей операции. Рис.3.3. Формат регистра слова состояния Регистр РSW может программно проверяться, модифицироваться полностью или поразрядно. При обращении к подпрограмме содержимое старшей тетрады PSW (разряды 4 … 7) вместе с содержимым 12-разрядного счетчика команд (PC) пересылается в стек, а при выходе из подпрограммы эти данные возвращаются из стека в соответствующие узлы. Таким образом, при выходе из подпрограммы восстанавливается значение признаков, имеющихся в PSW перед обращением к подпрограмме. Значения остальных флагов не передаются в стек и, следовательно, не могут быть восстановлены при выходе из подпрограммы. После загрузки в стек содержимое указателя стека инкрементируется, а перед извлечением из стека декрементируется. При переполнении стека указатель стека переходит из состояния 7 в состояние 0. 3.1.2 Память микроконтроллера Память программ. Память программ используется для хранения команд программы. Она выполнена на СППЗУ емкостью 1К байт. Память программ разделена на две части: резидентная (внутренняя) память программ объемом 1024 байт и внешняя память программ, составляющая в сумме с резидентной памятью 4Кбайт. Все адресное пространство памяти делится на два банка: банк 0 с адресами от 0 (0000Н) и до 2047 (07FFН) и банк 1 с адресами от 2048 (0800Н) и до 4095 (0FFFН). Карта адресов памяти программ показана на рис. 3.4. Рис.3.4. Карта адресов памяти программ Адресация памяти производится счетчиком команд (PC), который содержит 12 разрядов, но инкрементируются в процессе счета только младшие 11 разрядов, которые отведены для адресации резидентной памяти программ (РПП) (1К байт), а старший 12 разряд (PC11) определяет номер банка, он устанавливается программным путем с помощью специальной команды (SEL MB0, SEL MB1). Если адрес выборки команды выходит за пределы резидентной памяти, то автоматически инициализируется внешняя память. Все выборки из внутренней памяти не сопровождаются никакими внешними сигналами, генерируемыми МК, кроме сигнала ALE, который вырабатывается независимо от режима использования МК и является идентификатором машинного цикла. При обращении к внешней памяти программ содержимое 12-разрядного счетчика команд выводится на 8-разрядную шину данных (порт BUS) и четыре младших разряда порта Р2. Сигнал АLЕ задним фронтом фиксирует выставленный адрес. Сигнал стробирует выборку байта из внешней памяти программ. Байт из внешней памяти программ принимается в МК через шину данных (порт BUS). Память, расположенная на кристалле микросхемы, занимает адресное пространство от 0 (0000Н) до 1023 (0ЗFF)Н. Память программ разделяется не только на два банка емкостью по 2К байта, но и на страницы по 256 байт в каждой. В командах условного перехода задается 8-разрядный адрес передачи управления в пределах текущей страницы. При безусловном переходе или обращении к подпрограмме в команде задаются 11 разрядов адреса, и, таким образом, в счетчике команд сохраняется значение лишь старшего 12-го разряда, т.е. переход осуществляется в пределах банка памяти емкостью 2048 ячеек. При обработке запросов прерываний старший бит счетчика команд () принудительно устанавливается в 0 и таким образом, подпрограмма обслуживания прерываний и все подпрограммы, вызываемые ею, размещаются в пределах банка памяти 0 с адресами ячеек 0 (0000H)…2047 (07FFH). Для доступа к памяти программ как к таблицам данных служат команды обращения к текущей странице памяти программ МОVРA, @A и к третьей странице – МОVРЗA, @A. Эти команды позволяют считывать байт из программной памяти в аккумулятор. В резидентной памяти программ имеется три специализированных адреса: 0 – адрес начала программы (ее первой команды), устанавливается в счетчике команд по сигналу; 3 – начальный адрес подпрограммы, вызываемой по сигналу прерывания МК при условии, что прерывание разрешено; 7 – начальный адрес подпрограммы, вызываемой по переполнению таймера-счетчика при условии, что прерывание разрешено. Так как СППЗУ используется не только для хранения команд, но и констант, то в микроконтроллере применяются два способа адресации постоянной памяти для чтения неизменяемых данных: - непосредственная адресация, при которой второй байт двухбайтной команды представляет собой операнд; - косвенная адресация, при которой содержимое аккумулятора используется в качестве указателя данных в текущей странице или странице 3 памяти программ. Память данных. Резидентная память данных (РПД) имеет емкость 64 байта. Адресное пространство данных включает два банка по восемь регистров общего назначения и с адресами соответственно от 0 (00H) до 7 (07H) – банк 0 и от 24 (18H) до 31 (1FH) – банк 1 (рис. 3.5). Выбор одного из банков регистров выполняется программным путем по командам SEL RB0 или SEL RB1. Ячейки с адресами от 8 (08H) до 23 (17H) адресуются указателем стека из регистра слова состояния программы (PSW). Они могут использоваться в качестве 8-ми уровневого 16-разрядного стека для хранения в каждой паре ячеек содержимого 12-разрядного счетчика команд PC и старшей тетрады регистра слова состояния программы при обращении к подпрограммам (по команде CALL). В случае, если уровень вложенности подпрограмм меньше восьми, незадействованные в стеке ячейки могут использоваться как ячейки РПД. Организация стека показана на рис.3.6 (адрес ОЗУ приведен в десятичном коде). МК48 не имеет специальных команд загрузки байта в стек и извлечения его из стека. Рис.3.5. Карта адресов памяти данных МК48 Рис.3.6. Организация стека Ячейки с адресами от 32 (20H) до 63 (3FH) предусмотрены для хранения данных (используются как ОЗУ). Для записи и выборки данных из ОЗУ применяются два способа адресации: прямая и косвенная. Независимо от типа адресации три младших разряда кода команды указывают один из восьми регистров РОН с учетом принадлежности к ранее выбранному банку регистров. При использовании команд с прямой адресацией указанный регистр является источником или приемником данных, а при использовании команд с косвенной адресацией указанный регистр содержит адрес данных (в качестве регистров косвенного адреса используются только регистры и ). Практически все команды с обращением к РПД оперируют с одним байтом. Однако по командам вызова и возврата осуществляется доступ к двухбайтовым словам. В памяти данных слова хранятся так, что старший байт слова располагается в ячейке с большим адресом. В памяти программ порядок расположения байт по старшинству при хранении двухбайтовых слов обратный. В МК48 предусмотрена возможность расширения памяти данных до 320 байт путем подключения микросхем ОЗУ. Обращение к внешней памяти данных осуществляется с помощью команд MOVX @R, A; NOV A, @R. Обмен информации с внешним ОЗУ стробируется сигналом и и производится через шину данных (порт BUS). 3.1.3 Организация ввода-вывода информации в МК Для связи МК с объектом управления, для ввода и вывода информации используется 27 линий. Эти линии сгруппированы в 3 порта по 8 линий в каждом и могут быть использованы для ввода, вывода и ввода-вывода через двунаправленные линии. Кроме портов ввода-вывода имеются 3 входные линии, сигналы на которых могут изменять ход программы по командам условного перехода: 1. линия используется для ввода в МК сигнала запроса прерывания от внешнего источника; 2. линия T0 предназначена для ввода тестирующего сигнала от двоичного датчика объекта управления или для выдачи сигнала синхронизации (по команде ENT0 CLC); 3. линия T1 предназначена для ввода тестирующего сигнала или в качестве входа счетчика событий (по команде STRT CNT). Для обмена информацией с внешними устройствами предусмотрены три порта P1, P2 и BUS. Порты снабжены буферными 8-разрядными регистрами, в которых фиксируется выводимая информация. Порты P1 и P2 могут быть настроены на ввод, вывод или на работу с двунаправленной передачей. Для того чтобы настроить порт на режим ввода в МК, необходимо записать единицы в те разряды буферного регистра, номера которых совпадают с номерами разрядов порта, по которым предусматривается последовательный ввод данных. Сигнал автоматически записывает во все линии портов P1 и P2 сигнал логической единицы. В процессе ввода информации выполняется операция логического «И» над вводимыми данными и зафиксированными в буферном регистре текущими данными. В режиме вывода порты P1 и P2 обладают возможностью фиксации данных в триггерах-защелках. Эти данные статически присутствуют на выводах порта и могут быть изменены только новой выдачей по команде OUTL. Каждая выдача сопровождается занесением данных в триггер-защелку. Возможна произвольная смешанная настройка линий портов Р1 и Р2, когда одни линии порта работают на ввод, а другие - на вывод. Вводимые данные должны присутствовать на линиях порта до тех пор, пока не будут программно прочитаны. Для расширения адреса обращения к внешней памяти программ, а также для увеличения числа линий ввода-вывода дополнительно используются четыре младших разряда порта P2. Через младшую тетраду порта P2 по специальным командам обращения возможен доступ к четырем внешним четырехбитным портам ввода/вывода P4… P7. Работа этих внешних портов синхронизируется сигналом PROG; При обращении к внешней памяти программ через младшую тетраду порта передается содержимое старших четырех разрядов счетчика команд (разряды PC8…PC11). Кроме операций ввода-вывода информации, предусмотрена возможность выполнения логических операций И, ИЛИ непосредственно на портах Р1 и Р2 с помощью команд АNL Pp, #data и ORL Рp, #data. Порт BUS - это 8-разрядный двунаправленный порт с тремя состояниями, который может использоваться в качестве статического порта ввода-вывода или двунаправленного порта адреса/данных с тремя состояниями при работе с внешней памятью. Если порт BUS используется как статический порт, то вывод через него выполняется по команде OUTL ВUS, А, а ввод - по команде INS A, BUS. Вывод сопровождается сигналом , а ввод - сигналом . При этом выводимые данные фиксируются в триггерах-защелках и статически выставляются на выводах порта. В отличие от портов Р1 и Р2, порт BUS допускает только байтовый обмен, когда по всем линиям порта производится либо ввод, либо вывод данных. При работе с внешней памятью программ через порт BUS в режиме мультиплексирования сначала выдается младший байт адреса команды, а затем синхронно с сигналом вводится из памяти байт команды. При работе с внешней памятью данных через порт BUS в режиме мультиплексирования выдается адрес данных, а затем выполняется обмен байтом данных: ввод синхронно с сигналом либо вывод синхронно с сигналом . Для работы с внешней памятью данных служат команды MOVX. В режиме работы с внешней памятью, если не используется команда OUTL BUS,A, порт BUS при отсутствии передач находится в высокоимпедансном состоянии. Команды МОVX и ОUTL ВUS,А могут применяться поочередно, но при этом статическая информация, выставленная нa порте BUS по команде ОUTL, будет разрушена последующим выполнением команды МОVХ, а порт BUS перейдет в высокоимпедансное состояние. Если порт BUS активизируется командами МОVХ, то в отсутствии передач порт по своим выходам находится в высокоимпедансном состоянии. 3.1.4 Таймер-счетчик Таймер-счетчик предназначен для подсчета внешних событий и измерения временных интервалов без участия МК. В состав таймера-счетчика входят: делитель частоты 1:32; суммирующий счетчик; триггер флага переполнения. 8-разрядный двоичный таймер-счетчик устанавливается в начальное состояние с помощью команды MOV T, A, по которой содержимое аккумулятора передается в таймер-счетчик. Счетчик останавливается (но не сбрасывается) по сигналу или по команде STOP TCNT и остается в этом состоянии пока не поступит команда STRT T – запуск таймера или STRT CNT – запуск счетчика событий. Содержимое таймера счетчика может быть прочитано командой MOV A, T, как во время, когда таймер-счетчик остановлен, так и во время счета. Момент перехода счетчика из состояния максимального значения FFH в состояние 00H свидетельствует о переполнении таймера-счетчика и фиксируется в триггере флага и триггере переполнения таймера-счетчика, в результате вырабатывается внутренний запрос на аппаратное прерывание. Этот запрос так же, как и внешний запрос прерывания запоминается в триггере текущего прерывания. Прерывания по переполнению таймера-счетчика считаются внутренними и могут быть разрешены или запрещены соответственно командами EN TCNTI и DIS TCNTI независимо от внешних прерываний. Если внутренние прерывания разрешены, переполнение счетчика вызывает переход к подпрограмме обслуживания прерывания от таймера-счетчика, адрес-вектор которой соответствует ячейки 07 памяти программ. Поскольку запрос на прерывание от таймера-счетчика зафиксирован, он будет обрабатываться сразу из возвращения из подпрограммы обслуживания внешних прерываний. Запрос на прерывание от таймера сбрасывается командой DIS TCNTI. Однако эта команда не действует на триггер флага TF таймера-счетчика, который может быть опрошен по команде условного перехода JTF. После перехода счетчика из состояния FFH в состояние 00H счетчик будет продолжать счет, если не выполнена команда STOP TCNT. По команде STRT CNT начинается счет событий (событие – переход сигнала на внешнем выводе T1 от высокого к низкому уровню). При выполнении команды STRT CNT разрешается передача состояния со входа T1 на вход счетчика. С этого момента каждый переход сигнала на выводе T1 с высокого на низкий уровень вызывает приращение счетчика. Подсчет событий прекращается по команде STOP TCNT или при подаче сигнала . В результате выполнения команды STRT T внутренние синхросигналы поступают на вход счетчика и запускают его как таймер. Синхросигналы образуются путем деления на 32 основных синхронизирующих импульсов машинного цикла ALE. Делитель сбрасывается во время выполнения команды STRT T. Инкрементирование счетчика осуществляется с частотой внутренней синхронизации. Путем предварительной установки счетчика и фиксации переполнения можно получить задержки до 256  32 периода сигнала ALE. 3.1.5 Система прерываний МК48 имеет одноуровневую систему прерываний по адресу-вектору, которая воспринимает запросы на прерывание от внешнего источника или от внутреннего таймера-счетчика. Прерывания могут быть избирательно разрешены или запрещены с помощью команд EN и DIS. Внешнее прерывание обладает более высоким приоритетом, т.е., если запросы на прерывание от внешнего источника и таймера-счетчика возникают одновременно, то внешнее прерывание обслуживается в первую очередь. При поступлении запроса на прерывание МК48 после завершения текущей команды передает управление по адресу 03. При этом содержимое 12 – разрядного счетчика команд PC и содержимое старшей тетрады слова состояния программы PSW передаются в стек. Ячейка 03 памяти программ соответствует начальному адресу области памяти программ, где хранятся программы обработки внешних прерываний. Обычно по адресу 03 находится команда безусловного перехода на подпрограмму обслуживания. Завершает процедуру обслуживания прерывания выполнение команды RETR. Так как в МК48 реализована одноуровневая система прерываний, то обслуживание вновь поступивших прерываний откладывается до конца обработки текущего прерывания. Сигнал запроса на прерывание, которое обслуживается в данный момент, должен быть снят до исполнения команды RETR, в противном случае начнется повторное обслуживание данного запроса на прерывание. Программу обработки любого прерывания нельзя прервать до команды RETR. Если для хранения программы требуется объем памяти, превышающий 2 Кбайт, то при разработке программ обслуживания прерываний необходимо учитывать особенности управления памятью программ. МК48 может прямо адресовать только 2048 байт памяти программ. Для расширения объема адресуемой памяти до 4096 байт предусмотрен механизм переключения банков памяти программ с использованием команд SEL MB0, SEL MB1: (0 … 2047) байт – банк 0; (2048 … 4096) байт – банк 1. Однако, его нельзя использовать при обработке прерываний, так как при выполнении перехода или вызова подпрограммы в одиннадцать младших разрядов счетчика команд (PC0 … PC10) производится загрузка адреса из команды, 12-й разряд (PC11) загружается из триггера переключения банков памяти DBF, указывающего номер банка памяти программ. В МК48 при обслуживании прерываний старший разряд (PC11) счетчика команд, независимо от состояния триггера DBF, аппаратно устанавливается в «0» всякий раз, когда происходит переход к подпрограмме обработки прерываний. Поэтому все программы обработки прерываний и все подпрограммы, вызываемые ими, должны располагаться в пределах банка 0 памяти программ. До выхода из подпрограммы обслуживания прерываний никакая команда не может установить в «1» старший разряд (PC11) счетчика команд. Выполнение команд SEL MB0, SEL MB1 во время обработки прерываний не рекомендуется, так как эти команды, изменяя состояние триггера DBF, не изменяют значения старшего разряда счетчика команд (PC11) до тех пор, пока происходит обработка текущего прерывания. 3.1.6 Устройство управления и синхронизации Устройство управления микроконтроллером в каждом цикле команды формирует последовательность сигналов, управляющих функциями всех блоков микроконтроллера и системой их взаимосвязи. Устройство управления и синхронизации состоит из генератора, формирователя тактовых сигналов и формирователей сигналов состояний и режимов работы. Частота синхронизации задается кварцевым резонатором с частотой 1…6 МГц, подключенным к входам X1 и X2 микроконтроллера. При работе от внешнего источника синхронизации он подключается к входу X1. С помощью деления частоты синхронизации на три в микроконтроллере формируются тактовой частоты (CLK),которая определяет временные соотношения в МК. Сигналы CLK могут быть выведены на внешний вывод T0 по команде ENT0 CLK. Вывод сигналов на внешний вывод T0 блокируется сигналом . Частота CLK делится на пять в счетчике циклов для получения частоты определяющей машинный цикл, состоящий из пяти состояний машины (S1 … S5). Полученный в результате такого деления опорной частоты синхросигнал получил название ALE и используется для работы с внешней памятью. Этот сигнал выдается в каждом машинном цикле на выходе ALE независимо от того выполняется или нет обращение к внешней памяти. Временные диаграммы машинного цикла и цикла команды МК показаны на рис.3.7. Рис.3.7 Временные диаграммы машинного цикла и цикла команды При включении МК, для гарантированной установки в исходное состояние всех цепей, должен быть подан импульс системного сброса низкого уровня длительностью 50 мс. Подача импульса системного сброса производит следующие действия: • сбрасывает счетчик команд и указатель стека; • устанавливает порт BUS в высокоимпедансное состояние (при EMA=0), а порты P1 и P2 в режим ввода; • выбирает банк регистров 0 и банк памяти программ 0; • запрещает прерывания; • останавливает таймер-счетчик и выдачу синхросигнала на вывод T0; • сбрасывает триггер флага таймера-счетчика TF и флага пользователя F0 и F1. При EMA=1 при действии сигнала системного сброса низкого уровня порт BUS находится в неопределенном состоянии. В этом случае нельзя считать, что порт BUS находится в высокоимпедансном состоянии. 3.2 Система команд микроконтроллера КМ1816ВЕ48 Система команд включает в себя 96 основных команд и ориентирована на реализацию процедур управления. Все команды имеют формат один или два байта (70 % команд однобайтовые). Время выполнения команд составляет 2,5 или 5,0 мкс (один или два машинных цикла соответственно) при тактовой частоте 6,0 МГц. Большинство команд выполняется за один машинный цикл. За два машинных цикла выполняются команды с непосредственным операндом, ввода/вывода и передачи управления. Микроконтроллер оперирует с командами четырех типов (рис.3.6) В микроконтроллере используются четыре способа адресации: регистровая, непосредственная, косвенная и неявная. Рис.3.6. Типы команд микроконтроллера КМ1816ВЕ48 Формат команды третьего типа определяют команды передачи управления и вызова подпрограмм по длинному адресу, а четвертый тип – команды передачи управления по условию с коротким адресом. Все команды с непосредственным операндом, команды ввода-вывода, команды управления, вызова подпрограмм и некоторые команды пересылок выполняются за два машинных цикла, а остальные – за один. Все множество команд можно разбить на пять групп по функциональному признаку: команды пересылки данных, арифметических операций, логических операций, передачи управления и управления режимами работы МК. К достоинствам системы команд МК48 можно отнести: эффективный ввод/вывод, включая маскирование и возможность управления отдельными битами портов, возможность ветвления по значению отдельных бит, возможность обработки как двоичных, так и двоично-десятичных чисел. 3.2.1 Группа команд пересылки данных Данная группа состоит из 24 команд. Все команды пересылки данных выполняются с использованием аккумулятора. Данные могут пересылаться между аккумулятором и рабочими регистрами (R0 – R7) каждого банка РОН с регистровой адресацией. В табл.3.2. приведены команды пересылки данных. Таблица 3.2. Команды пересылки данных Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия MOV A, Rn 11111rrr 1 1 MOV A, @Ri 1111000i 1 1 MOV A, #data 00100011 2 2 MOV Rn, A 10101rrr 1 1 MOV Rn, #data 10111rrr 2 2 MOV @Ri, A 1010000i 1 1 MOV @Ri, #data 1011000i 2 2 MOV A, PSW 11000111 1 1 MOV PSW, A 11010111 1 1 MOV A, T 01000010 1 1 MOV T, A 01100010 1 1 MOVX A, @Ri 1000000i 1 2 MOVX @Ri, A 1001000i 1 2 MOVP A, @A 10100011 1 2 , MOVP3 A, @A 11100011 1 2 , XCH A, Rn 00101rrr 1 1 XCH A, @Ri 0010000i 1 1 XCHD A, @Ri 0011000i 1 1 IN A, Pp 000010pp 1 2 INS A, BUS 00001000 1 2 OUTL Pp, A 001110pp 1 2 OUTL BUS, A 00000010 1 2 MOVD A, Pp 000011pp 1 2 ,, p=4…7 MOVD Pp, A 001111pp 1 2 , p=4…7 Например: команда MOV A, R4 (А) ← (R4) осуществляет передачу содержимого регистра R4 в аккумулятор. Обмен с ячейками внутреннего ОЗУ осуществляется с использованием косвенных адресов, находящихся в регистрах R0 или R0, выбранного банка РОН. Так команда MOVA, @R0 (A) ← ((R0)) осуществляет загрузку в аккумулятор содержимого ячейки внутренней памяти, адрес которой задан в регистре R0. Кроме того, регистры R0 и R1 являются регистрами косвенных адресов, предназначенные для работы с внешней памятью. Команда MOVX A, @R1 (A) ← ((R1)) производит загрузку в аккумулятор содержимого ячейки внешней памяти, адрес которой задан в регистре R1. Все команды, кроме (MOV PSW, A) не оказывают воздействия на флаги. Команды пересылки данных внутри МК выполняются за один машинный цикл, обмен с внешней памятью и портами требует двух машинных циклов. 3.2.2 Команды арифметических операций Данная группа состоит из 12 команд и позволяет выполнять следующие операции над 8-ми разрядными целыми двоичными числами без знака: сложение, инкремент и декремент, десятичная коррекция над непосредственным операндом, содержимым аккумулятора, регистров и ячеек памяти. В табл.3.3. приведены основные команды арифметических операций. Таблица 3.3. Команды арифметических операций Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия ADD A, Rn 01101rrr 1 1 ADD A, @Ri 0110000i 1 1 ADD A, #data 00000011 2 2 ADDC A, Rn 01111rrr 1 1 ADDC A, @Ri 0111000i 1 1 ADDC A, #data 00010011 2 2 DA A 01010111 1 1 Десятичная коррекция A INC A 00010111 1 1 INC Rn 00011rrr 1 1 INC @Ri 0001000i 1 1 DEC A 00000111 1 1 DEC Rn 11001rrr 1 1 При сложении используется неявная адресация источника первого операнда и места назначения результата, в качестве которых выступает аккумулятор. В МК отсутствует команда вычитания, что приводит к необходимости выполнения ряда операций: получение дополнительного кода, суммирование и вычисление дополнительного кода результата. Сложные операции (умножение, деление) выполняются по подпрограммам. Арифметические команды формируют признаки результата операций. Из множества признаков результата операции программно-доступными являются только четыре признака: перенос (С), вспомогательный перенос (АС), признаки пользователя F0 и F1. Признак F0, кроме того, доступен через слово состояния процессора. Например, команда ADD A, R2 (A) ← (A)+(R2) выполняет сложение содержимого аккумулятора и регистра результат передается в аккумулятор. 3.2.3 Команды логических операций Эта группа состоит из 28 команд и позволяет выполнять следующие операции над байтами: дизъюнкцию, конъюнкцию, исключающее ИЛИ, инверсию, сброс и сдвиг. Две команды (сброс и инверсия) позволяют выполнять операции над битами. В табл.3.4. приведены команды логических операций. Таблица 3.4. Команды логических операций Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия ANL A, Rn 01011rrr 1 1 ANL A, @Rn 0101000i 1 1 ANL A, #data 01010011 2 2 ORL A, Rn 01001rrr 1 1 ORL A, @Ri 0100000i 1 1 ORL A, #data 01000011 2 2 XRL A, Rn 11011rrr 1 1 XLR A, @Ri 1101100i 1 1 XLR A, #data 11010011 2 2 CLR A 00100111 1 1 CPL A 00110111 1 1 SWAP A 01000111 1 1 RL A 11100111 1 1 Циклический сдвиг влево (А) RLC A 11110111 1 1 Сдвиг влево (А) через перенос RR A 01110111 1 1 Циклический сдвиг вправо (А) RRC A 01100111 1 1 Сдвиг вправо (А) через перенос ANL Pp, #data 100110pp 2 2 , ANL BUS, #data 10011000 2 2 ANLD Pp, A 100111pp 1 2 , p=4…7 ORL Pp, #data 100010pp 2 2 , ORL BUS, #data 10001000 2 2 ORLD Pp, A 100011pp 1 2 , p=4…7 CLR C 10010111 1 1 CLR F0 10000101 1 1 CLR F1 10100101 1 1 CPL C 1010111 1 1 CPL F0 10010101 1 1 CPL F1 10110101 1 1 При выполнении логических команд широко используется неявная адресация аккумулятора в качестве операнда и места фиксации результата. Вторым операндом в командах может быть регистр, константа или ячейка памяти. Существуют команды (ANL, ORL), оперирующие с портами. 3.2.4 Группа команд передачи управления Данную группу образуют 19 команд передачи управления из них 2 команды безусловного перехода, 14 команд условного перехода, команда вызова подпрограмм и две команды возврата из подпрограммы. Команды перехода предназначены для организации ветвления программ. В качестве условий анализируются входные сигналы T0, T1, ; состояние флагов F0, F1, флага таймера/счетчика, триггера переноса, содержимого аккумулятора и отдельных его разрядов. В табл.3.5. приведены команды передачи управления. Таблица 3.5. Команды передачи управления Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия 1 2 3 4 5 JMP addr a10a9a800100 2 2 Безусловный переход по 11 разрядному адресу JMPP @A 10110011 1 2 переход в текущей странице памяти программ DJNZ Rn, addr 11101rrr 2 2 Декремент и переход по addr, если JC addr 11110110 2 2 Переход по addr, если JNC addr 11100110 2 2 Переход по addr, если JZ addr 11000110 2 2 Переход по addr, если JNZ addr 10010110 2 2 Переход по addr, если JT0 addr 00110110 2 2 Переход по addr, если JNT0 addr 00100110 2 2 Переход по addr, если JT1 addr 01010110 2 2 Переход по addr, если JNT1 addr 01000110 2 2 Переход по addr, если JF0 addr 10110110 2 2 Переход по addr, если JF1 addr 01110110 2 2 Переход по addr, если JTF addr 00010110 2 2 Переход по addr, если JNI addr 10000110 2 2 Переход по addr, если JBb addr bbb10010 2 2 Переход по addr, если (Bb)=1 CALL addr a10a9a810100 2 2 Вызов подпрограммы по addr RET 10000011 1 2 Возврат из подпрограммы без восстановления ССП RETR 10010011 1 2 Возврат из подпрограммы с восстановлением ССП В большинстве команд прямо указывается адрес перехода. В теле команды при этом содержится 8 (addr) или 11 (addr) бит адреса перехода. Команда JMP позволяет передать управление в любое место 2048-битного банка памяти программ (ПП). Номер банка ПП определяется флагом DBF, значение которого копируется в старший бит счетчика команд , при выполнении команды JMP или CALL. Все остальные команды, кроме команд возврата, содержат только восемь младших бит адреса перехода. При этом оказывается возможным осуществить переход только в пределах одной страницы ПП (256 байт). Если команда короткого перехода расположена на границе двух страниц (т.е. первый байт команды на одной странице, а второй – следующей), то переход будет выполнен в пределах той страницы, где располагается второй байт команды. Для условного перехода с одной страницы на другую можно воспользоваться тандемом из команды условного перехода и длинного безусловного перехода (JMP). Команда передачи управления по косвенному адресу JMPP осуществляет переход по адресу, содержащемуся в ячейке памяти ПП, на которую указывает содержимое аккумулятора. Таким образом, аккумулятор содержит адрес адреса перехода. Ячейка с адресом перехода должна находиться на той же странице памяти ПП, что и команда JMPP. Команда косвенного перехода обеспечивает простой доступ к таблице, содержащей векторы перехода по программе в зависимости от содержимого аккумулятора, что позволяет легко реализовать механизм множественных ветвлений. По командам условных переходов могут проверяться не только внутренние флаги, но и сигналы на внешних входах МК. Это позволяет эффективно выполнять ветвления в программе без использования процедуры предварительного ввода и последующего сравнения. Все команды условных переходов используют прямую короткую адресацию. Для организации программных циклов удобно использовать команду DJNZ. Счетчик циклов организуется в одном из регистров текущего банка, для чего в этот регистр загружается число повторений цикла. При выполнении команды DJNZ производится декремент и последующая проверка на нули содержимого регистра – счетчика циклов. Если его содержимое оказывается не нулевым, то происходит переход к началу цикла, иначе – выход из цикла. Структура программы при этом будет следующей: MOV Rn, #data ;индикация счетчика циклов LOOP: …… ; тело программы …… ; тело программы …… ; тело программы CYCLE: DJNZ RN, LOOP ; декремент Rn и переход, если не ноль. Следует отметить, что команды от метки LOOP до метки CYCLE включительно должны находиться в пределах одной страницы памяти программ. Для вызова подпрограмм существует команда CALL, позволяющая обратиться в любое место текущего банка ПП. При вызове подпрограммы в стеке запоминается адрес возврата и часть слова состояния программы (PSW). Глубина вложений подпрограмм ограничена емкостью стека (16 байт) и не должно превышать восьми. Для возврата из подпрограммы необходимо выполнить команду RET, которая восстановит в счетчике команд адрес возврата. Для выхода из подпрограмм обработки прерываний служит команда RETR, которая кроме адреса возврата восстановит PSW и разрешит прерывание от данного источника. Перед вызовом подпрограммы, находящейся в другом банке (по отношению к текущему банку ПП) необходимо выбрать соответствующий банк памяти, а перед возвратом восстановить старое значение DBF. Если к подпрограмме производится обращение из разных банков памяти, то оказывается затруднительно восстановить значение DBF перед возвратом. В этом случае рекомендуется использовать команду восстановления DBF в основной программе вслед за командой вызова. Например, необходимо вызвать подпрограмму с именем SUBR, находящуюся в первом банке ПП, из программы, расположенной в нулевом банке ПП. Корректный вызов подпрограммы реализуется последовательностью команд: SEL MB1 ; установка флага DBF CALL SUBR ; вызов подпрограммы (после возврата из ; подпрограммы, флаг DBF останется равным 1) SEL MB0 ; восстановление DBF во избежание ошибочного ; перехода в банк 1 3.2.5 Группа команд управления режимом работы микроконтроллера В эту группу входят команды управления таймером/счетчиком, прерываниями и флагами переключения банков регистров и банков памяти программ. В табл.3.6 перечислены команды этой группы. Таблица 3.6. Команды управления режимами работы МК Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия STRT T 01010101 1 1 Запуск таймера STRT CNT 01000101 1 1 Запуск счетчика STOP TCNT 01100101 1 1 Останов таймер/счетчика EN TCNT1 00100101 1 1 Разрешение прерывания от таймера/счетчика DIS TCNT1 00110101 1 1 Запрещение прерываний от таймера/счетчика EN I 00000101 1 1 Разрешение внешнего прерывания DIS I 00010101 1 1 Запрещение внешнего прерывания SEL RB0 11000101 1 1 Выбор банка 0 РПД; SEL RB1 11010101 1 1 Выбор банка 1 РПД; SEL MB0 11100101 1 1 Выбор банка 0 памяти программ; SEL MB1 11110101 1 1 Выбор банка 1 памяти программ; ENT0 CLC 01110101 1 1 Выдача синхросигнала на выход T0 NOP 00000000 1 1 Нет операции Кроме рассмотренных ранее команд обмена между таймером и аккумулятором (MOV A, T и MOV T, A) по которым содержимое таймера может быть прочитано во время остановки счета и во время счета или изменено, в МК выполняются специальные команды управления режимом работы таймера. Таймер может быть (в зависимости от команды) использован как счетчик тактов или как счетчик событий от внутреннего или внешнего источника сигналов соответственно. В системе команд микроконтроллера имеются команды разрешения или запрета прерывания от таймера. Специальной командой ENT0 на вывод T0 разрешается передача импульсов синхросигнала, поделенной на три. Выдача этого сигнала может быть отключена только сигналом общего сброса. Синхросигнал на выходе T0 используется для общей синхронизации внешних устройств, согласованных с МК по частоте работы. Переключение банка памяти программ (т.е. изменение старшего бита счетчика команд) происходит в момент выполнения команды длинного перехода или вызова подпрограммы. Наличие команд переключения банков регистров позволяет при вызове подпрограммы и обработки прерываний эффективно использовать второй банк регистров в качестве рабочего и сохранять параметры вычислительного процесса не в стеке, а в исходном банке регистров. В этом случае, когда банки регистров переключаются, возврат к исходному банку регистров будет выполнен автоматически, если подпрограмма обработки прерывания оканчивается командой возврата с восстановлением PSW (RETR). 4. Микроконтроллеры серии 1830ВЕ51 Восьмиразрядные микро-ЭВМ семейства МК51 выполнены по n-МОП технологии (серия 1816) или по КМОП технологии (серия 1830) и предназначены для построения на их основе высокопроизводительных котроллеров, включаемых в контур управления объектом или процессом В состав семейства входит пять модификаций, имеющих одинаковые основные характеристики и различающиеся объемом встроенной памяти и мощности потребления. Микросхемы серии 1816 имеют мощность потребления приблизительно на порядок больше, чем серии 1830. Микро ЭВМ КР18ХХВЕ51 содержит на своем кристалле масочное ПЗУ емкостью 4096 байта, и рассчитана на применение в массовой продукции. ИС КР18ХХВЕ31 не содержит встроенной памяти программ, а ИС КМ 1816 ВЕ751 содержит РППЗУ с ультрафиолетовым стиранием емкостью 4096 байт и особенно эффективны на этапе разработки системы при отладке программ. Все перечисленные микросхемы являются аналогами БИС 8051, 80С51, 8031, 80С31 и 8751 семейства MCS фирмы Intel (США). 4.1. Структурная схема микроконтроллера 1830ВЕ51 Микроконтроллер МК51 содержит все необходимые узлы для автономной работы: 1. Восьмиразрядный процессор; 2. Память программ объемом 4 Кбайт; 3. Память данных объемом 128 байт; 4. Четыре порта ввода/вывода; 5. Два 16-разрядных многорежимных таймера/счетчика; 6. Схемы обработки прерываний с пятью векторами и двумя уровнями; 7. Последовательный интерфейс; 8. Тактовый генератор. Система команд МК51 содержит 111 базовых команд. Команда имеет 1, 2 и 3 байтовый формат. Микроконтроллер конструктивно выполнен в корпусе с 40 внешними выводами, которые совместимы с элементами ТТЛ. Назначение выводов микроконтроллера МК51 показано на рис. 4.1, а его структурная схема приведена на рис. 4.2. Рис. 4.1. Назначение выводов МК51 Рис. 4.2. Структурная схема МК51 В состав МК51 входят следующие функциональные узлы: 1. Блок управления (CU); 2. Арифметико-логический блок (ALU); 3. Резидентная память данных (RDM); 4. Резидентная память программ (RPM); 5. Счетчик команд (PC) и регистр указателя данных (DPTR); 6. Регистр указателя стека (SP); 7. Два 16-ти разрядных таймера/счетчика (Timer 0, Timer 1); 8. Блок последовательного интерфейса и прерываний. Обмен информацией между функциональными узлами осуществляется с помощью внутренней 8-разрядной двунаправленной шины данных. Для связи с внешними компонентами МПС используется четыре двунаправленных 8-разрядных порта Р0…Р3. 4.1.1. Блок управления Блок управления предназначен для выработки синхронизирующих и управляющих сигналов. В состав БУ входят: 1. Устройство выработки временных интервалов; 2. Логика ввода/вывода; 3. Регистр команд; 4. Регистр управления энергопотреблением; 5. Дешифратор команд; 6. ПЛМ и логика управления микро-ЭВМ. Устройство выработки временных интервалов предназначено для формирования внутренних синхросигналов, которые определяют продолжительность выполнения команд. Практически все команды выполняются за 1 или 2 машинных цикла, кроме команд умножения и деления (время выполнения последних составляет 4 машинных цикла). Машинный цикл включает в себя шесть состояний S1…S6, каждый из которых состоит из двух фаз Р1 и Р2. Длительность каждой фазы равна периоду следования синхроимпульсов, который задается частотой кварцевого резонатора, подключаемого к выводам XTAL1 и XTAL2 МК51, или резонансной частотой LC контура, или внешним генератором. Схема подключения элементов к МК51 показаны на рис. 4.3. Cв=10 пФ Рис. 4.3. Схема подключения цепей синхронизации к МК51 Все машинные циклы МК51 одинаковые и состоят из 12 периодов сигнала XTAL. Машинный цикл состоит из шести состояний S1…S6, каждый из которых включает в себя две фазы P1 и P2 (рис. 4.4). Длительность фазы равна периоду следования внешнего тактового сигнала. Рис. 4.4. Диаграмма формирования машинных циклов МК51 Дважды за машинный цикл формируется сигнал ALE, который используется в качестве стробирующего импульса, для записи младшей части адреса внешней памяти. Логика ввода/вывода предназначена для приема и выдачи сигналов, обеспечивающих обмен информацией МК51 с внешними устройствами через порты ввода/вывода Р0…Р3. Регистр команд предназначен для записи и хранения кода текущей команды. Команда с помощью дешифратора команд преобразовывается в 24-разрядный код управления ПЛМ. Последняя вырабатывает набор микроопераций в соответствии с микропрограммой выполняемой команды. Регистр команд программно недоступен. Регистр управления энергопотреблением (PCON) предназначен для управления последовательным портом и режимами энергопотребления МК51. В табл. 4.1 приведено обозначение разрядов PCON. Таблица 4.1 Разряды 7 6 5 4 3 2 1 Обозначение SMOD - - - GF1* GF0* PD* IDL* Примечание: биты отмеченные звездочкой присутствуют только в МК51 серии 1830. Все биты регистра PCON доступны по записи и чтению. Бит SMOD управляет скоростью передачи через последовательный порт (при установке его в «1» скорость передачи удваивается). Бит PD при установке его в «1» переводит МК51 в режим микропотребления. Бит IDL равный «1» устанавливает режим холостого хода. Биты GF0 и GF1 – флаги общего назначения. 4.1.2. Арифметико-логический блок Восьмиразрядный АЛБ предназначен для выполнения арифметических операций: сложение, вычитание, умножение и деление; логических операций: И, ИЛИ, исключающие ИЛИ, циклического сдвига, сброса, инвертирования и т.д. АЛБ включает в себя следующие функциональные узлы: 1. Восьмиразрядное ALU, которое позволяет выполнять арифметические и логические операции над 4 типами данных: булевскими (1 бит), цифровыми (4 бита), байтовыми (8 бит) и адресными (16 бит); 2. Аккумулятор – восьмиразрядный параллельный регистр, предназначенный для хранения одного из операндов АЛУ, приема результата арифметико-логической операции, ряда операций передачи данных. Кроме этого, операции сдвигов, проверка их на ноль, формирование флага паритета, выполняются только над содержимым Аккумулятора; 3. Регистр В – восьмиразрядный параллельный регистр, предназначенный для хранения второго операнда при выполнении операции умножения и деления. В остальных случаях может использоваться как любой другой программно доступный регистр; 4. Два восьмиразрядных, программно-недоступных, регистра временного хранения операндов Т1 и Т2; 5. Схема десятичной коррекции DCU; 6. Регистр признаков (PSW) – предназначен для хранения признаков (флагов), вырабатываемых АЛУ при выполнении многих операций. В табл.4.2 приведено мнемоническое имя, назначение и способ установки разрядов регистра PSW. Таблица 4.2 Разряд Имя Назначение битов Доступ к битам PSW.7 C Флаг переноса. Изменяется во время выполнения некоторых арифметических и логических команд аппаратный или программный PSW.6 AC Флаг промежуточного переноса устанавливается/сбрасывается при возникновении/отсутствии переноса или заема в бите 3 при образовании младшего полубайта результата аппаратный или программный PSW.5 F0 Флаг 0. Флаг состояния определенный пользователем. программный PSW.4 RS1 Указатель банка рабочих регистров. программный PSW.3 RS0 Указатель банка рабочих регистров. программный RS1 RS0 Банк 0 с адресами (00Н-07Н) 1 Банк 1 с адресами (08Н-0FН) 1 Банк 2 с адресами (10Н-17Н) 1 1 Банк 3 с адресами (18Н-1FН) PSW.2 OV Флаг переполнения. аппаратный или программный PSW.1 - Резервный. Содержит триггер, который можно использовать. программный PSW.0 P Бит четности аппаратный или программный Флаг переполнения OV устанавливается, если возник перенос в знаковый разряд, а из знакового разряда перенос отсутствует (индикатор переполнения разрядной сетки) при выполнении операций сложение/вычитание. При выполнении операции деления флаг OV аппаратно сбрасывается, а в случае деления на ноль устанавливается. При выполнении операции умножения флаг OV аппаратно устанавливается, если результат больше 255. Флаг Р является дополнением содержимого Аккумулятора до четности в девятиразрядном слове состоящем из восьми разрядов Аккумулятора и бита P, число один всегда четное. Если в Аккумуляторе все разряды установлены в ноль, то Р=0. Этот бит программно доступен только по чтению. 4.1.3. Организация памяти программ Память программ МК51 может иметь емкость до 64 Кбайт (рис. 4.5) и предназначена для хранения команд, констант, управляющих слов инициализации, различных таблиц и т.п. Рис. 4.5. Адресное пространство памяти программ Обращение к RPM всегда осуществляется с помощью 16-ти разрядного адреса, который формируется счетчиком команд (PC) или регистром указателем данных (DPTR). Последний выполняет функции базового регистра при косвенных переходах по программе или используется в командах, оперирующих с таблицами. Современные микроконтроллеры содержат на своем кристалле электрически стираемую резидентную память программ (EEPROM), емкость которой составляет 4 Кбайт. При этом емкость внешней памяти может достигать 60 Кбайт. Выбор памяти программ (резидентной или внешней) осуществляется с помощью входа EA. При подаче на этот вход логической 1 (EA=1) разрешена работа с обоими типами памяти. Если же на вход DEMA подан низкий уровень напряжения (EA=0), то разрешена работа только с внешней памятью программ. Для разрешения считывания байта из внешней памяти программ и ввода его в МК51 используется сигнал на выходе , который формируется дважды в течение каждого машинного цикла. 4.1.4. Резидентная память данных Резидентная память данных состоит из двух областей: 128 байт оперативной памяти (ОЗУ) с адресами 00-7FH и области регистров специальных функций, занимающих адреса с 80Н по 0FFH. Распределение адресного пространства RDM показано на рис. 4.6. Младшие 32 байта ОЗУ данных сгруппированы в 4 банка (Банк 0...Банк 3). Команды программы могут обращаться к регистрам, используя их символические имена R0...R7. При этом в регистре PSW должны быть установлены биты RS0 и RS1, определяющие, к какому банку данных производится обращение. Такой механизм адресации позволяет экономить память программ. Следующие 16 байт ОЗУ допускают обращение к ним как в побайтном режиме, так и в побитном. Эта область ОЗУ используется МК51 при выполнении операций над битами. Каждый бит имеет свой адрес. Обращение к RDM всегда осуществляется с использованием 8-разрядного адреса. При включении питания содержимое ОЗУ будет иметь случайный характер. Регистры специальных функций также имеют свои адреса, приведенные в табл. 4.3, а некоторые из них допускают побитовую адресацию. Регистры специальных функций FFH 80H Остальные регистры ОЗУ (80 регистров) 7FH 30H Прямо адресуемые биты (16 регистров) 2FH 20H R7 Банк 3 1FH R0 18H R7 Банк 2 17H R0 10H R7 Банк 1 0FH R0 08H R7 Банк 0 07H R0 00 Рис. 4.6. Карта адресов RDM Таблица 4.3. Адреса регистров специальных функций Символическое имя Наименование Адрес, Н Побитовая адресация ACC Аккумулятор 0E0 + B Регистр В – расширенный аккумулятор 0F0 + PSW Слово состояния программы 0D0 + SP Регистр – указатель стека 81 DPTR Регистр – указатель данных (DPH) 83 (DPL) 82 P0 Порт 0 80 + P1 Порт 1 90 + P2 Порт 2 0A0 + P3 Порт 3 0B0 + IP Регистр приоритетов 0B8 + IE Регистр разрешения инд. прерывания 0A8 + TMOD Регистр режима Т/C 89 TCON Регистр управления T/C 88 + TH0 T/C0 (старший) 8C TL0 T/C0 (младший) 8A TH1 T/C1 (старший) 8D TL1 T/С1 (младший) 8B SCON Регистр управления УАПП 98 + SBUF Буфер приемо/передатчика 99 PCON Регистр управления потреблением 87 4.1.5. Счетчик команд и регистр указателя данных Счетчик команд (РС) предназначен для формирования текущего 16-разрядного адреса программной памяти и 8/16-разрядного адреса внешней памяти данных (ВПД). В состав счетчика команд входят: 1. Шестнадцатиразрядный буфер РС; 2. Регистр счетчика команд; 3. Схема инкремента; 4. Регистр адреса памяти. Буфер РС осуществляет связь между 16-ти разрядной адресной шиной и 8-ми разрядной внутренней шиной данных, обеспечивая запись, хранение и коммутирование информации. В регистре счетчика команд хранится адрес текущей команды. Схема инкремента увеличивает текущее значение регистра РС на 1. Регистр адреса памяти предназначен для записи и хранения исполнительного 16-ти разрядного адреса памяти программ или 8/16-ти разрядного адреса ВПД, а также для передачи данных в порт Р0 при выполнении команд MOVX@RI и MOVX@DPTR, A, обеспечивающих запись данных через порт Р0 во внешние устройства. Регистр указателя данных (DPTR) предназначен для хранения 16-разрядного адреса ВПД. Состоит из двух 8-разрядных регистров DPH и DPL, входящих в блок регистров специальных функций. Они программно доступны и могут использоваться в качестве двух независимых РОН, если нет необходимости хранения 16-разрядного адреса ВПД. 4.1.6. Регистр указателя стека Регистр указателя стека SP МК51 восьмиразрядный. Он может адресовать любую область резидентной памяти данных. В отличие от микропроцессора К580ВМ80, в МК51 стек “растет вверх”, т.е. перед выполнением команды PUSH или CALL содержимое SP инкрементируется, после чего производится запись информации в стек. Соответственно при извлечении информации из стека регистр SP декрементируется после извлечения информации. В процессе инициализации микро-ЭВМ после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08Н. 4.1.7. Таймеры/счетчики Таймер/счетчик (Т/С) предназначен для подсчета внешних событий, формирования программно-управляемых временных задержек и выполнения времязадающих функций МК51. В состав Т/С входят: 1. Два 16-разрядных регистра T/C0 и T/C1; 2. Восьмиразрядный регистр режимов (TMOD); 3. Восьмиразрядный регистр управления (TCON); 4. Схема инкремента; 5. Схема фиксации , , T0 , T1; 6. Схема управления флагами; 7. Логика управления Т/C . Регистры T/C0 и T/C1 состоят из пары 8-разрядных регистров. Регистр T/C0 состоит из ТН0 и ТL0, а регистр T/C1 - ТН1 и ТL1. Регистры ТН0 и ТН1 - старшие , а ТL0 и ТL1 - младшие . Каждый 8-разрядный регистр имеет свой адрес и может использоваться как РОН, если Т/С не используются. Код величины начального счета заносится в Т/C программно. В процессе счета содержимое Т/C инкрементируется. Признаком окончания счета является переполнение регистра, т. е. переход из состояния все 1 в состояние все 0. Все регистры доступны для чтения и, при необходимости, контроль достижения заданной величины счета может выполняться программно. Регистр режимов Т/C (TMOD) предназначен для приема и хранения кода, который определяет: • один из 4-х режимов работы Т/C; • работу в качестве таймера или счетчика; • управление Т/C от внешнего вывода. Обозначение разрядов регистра TMOD приведено в табл.4.4, а в табл. 4.5 – их назначение. Таблица 4.4. Обозначение разрядов TMOD Номер разряда 7 6 5 4 3 2 1 Обозначение GATE1 C/T1 M1.1 M0.1 GATE0 C/T0 M1.0 M0.0 Таблица 4.5 Номер разряда Обозначение Назначение разрядов Примечание 1, 0 5, 4 M1.0, M0.0 M1.1, M0.1 Определяют один из 4-х режимов работы, отдельно для Т/С0 и Т/С1 Все разряды TMOD устанавливаются программно: разряды 0…3 определяют режим работы Т/С0, разряды 4…7 – Т/С1 M1 M0 Режим 1 1 1 2 1 1 3 2 6 С/Т0 С/Т1 Если разряды С/Т установлены в 0, то соответствующий Т/С работает в качестве таймера. При установке этих битов в 1 – в качестве счетчика внешних событий 3 7 GATE0 GATE1 Разрешает управление Т/С от внешнего вывода ( - для Т/С0, - для Т/С1) GATE = 0 – управление запрещено GATE = 1 – управление разрешено При работе в качестве таймера содержимое регистра Т/C инкрементируется в каждом машинном цикле, т. е. Т/C является счетчиком машинных циклов МК51 с частотой . При работе в качестве счетчика внешних событий содержимое Т/C инкрементируется после перехода из 1 в 0 сигнала на счетном входе Т0 или Т1. Так для распознавания такого перехода требуется два машинных цикла, то максимальная частота счета равна Чтобы уровень сигнала на счетном входе был гарантированно зафиксирован, он должен оставаться неизменным в течение одного машинного цикла. Регистр управления (TCON) предназначен для приема и хранения кода управляющего слова. Флаги переполнения TF0 и TF1 устанавливаются при переполнении соответственно Т/C0 и Т/С1. Если при этом разрешено прерывание от соответствующего Т/C, то установка флага вызовет прерывание. Сбрасываются флаги аппаратно при передаче управления программе обработке соответствующего прерывания. Обозначение разрядов регистра TCON приведено в табл. 4.6, а их назначение – в табл. 4.7. Таблица 4.6. Обозначение разрядов регистра TCON Номер разряда 7 6 5 4 3 2 1 Обозначение TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Таблица 4.7. Назначение разрядов регистра TCON Разряд Имя Назначение битов TCON.7 TCON.5 TF1 TF0 Флаги переполнения Т/С. Устанавливается аппаратно при переполнении Т/С. Сбрасывается при обслуживании прерывания. TCON.6 TCON.4 TR1 TR0 Биты управления Т/C. Если TR=0, то Т/C блокированы. При установке в единицу разрешен счет. TCON.3 TCON.1 IE1 IE0 Флаги запроса внешних прерываний. TCON.2 TCON.0 IT1 IT0 Биты установки фронта/уровня прерываний. Если IT=0 , то прерывание воспринимается по низкому уровню на входе INT. Если же IT=1 , то по срезу (переход из 1 в 0). Флаги TF0 и TF1 программно доступны и могут быть установлены/сброшены программой. Используя этот механизм, можно программно вызвать (установить TF) или отменить (сбросить TF) вызов подпрограммы прерываний. Флаги IE0, IE1 устанавливаются аппаратно от внешних источников прерываний, подключенных к внешним выводам , . Кроме этого их можно установить программно. Установка флагов IE0, IE1 приведет к вызову подпрограммы обработки прерываний, сброс этих флагов выполняется аппаратно при обслуживании прерывания, только в том случае, если прерывание было вызвано срезом сигнала (IT=1). Если прерывание было вызвано уровнем сигнала (IT=0) на входе INT, то сброс флага IE осуществляется источником прерывания под управлением подпрограммы обработки прерываний. Схема инкремента предназначена для увеличения на 1 содержимого Т/C, для которых разрешена работа в режиме таймера или счетчика внешних событий. Схема фиксации , , T0, T1 представляет собой 4 триггера, в которые записывается информация с этих выводов МК51. Схема управления флагами устанавливает или сбрасывает флаги переполнения Т/C и флаги запросов внешних прерываний. Логика управления Т/C синхронизирует работу регистров Т/C в соответствии с запрограммированным режимом работы . Режимы работы таймера/счетчика Режим работы каждого Т/C определяется состоянием битов М0 и М1 в регистре TMOD. В режимах 0, 1 и 2 Т/C полностью независимы друг от друга. Причем, в этих режимах они функционируют одинаково. В режиме 3 работа Т/C0 и Т/C1 различна . При этом установка режима 3 в Т/C0 влияет на режим работы Т/C1. Режим 0. В этом режиме Т/C функционируют как 8-ми разрядный счетчик, на входе которого стоит 5-ти разрядный предделитель. Предделитель образован 5 младшими разрядами регистра TL0 , а 8-разрядный счетчик - регистром ТН. Структурная схема Т/C в этом режиме показана на рис. 4.7. Рис. 4.7. Структурная схема Т/C0 в режиме 0 Бит С/Т регистра TMOD определяет работу Т/C в качестве таймера (С/Т=0) или в качестве счетчика (С/Т=1). Бит TR регистра TCON разрешает счет (TR=1), если управляющий бит GATE (блокировка) равен 0 или на внешний вывод подан высокий уровень напряжения. Если же бит GATE установлен в 1, то в этом случае можно использовать таймер для измерения длительности импульсного сигнала, подаваемого на вход . Режим 1 аналогичен режиму 0 , за исключением того, что доступны 16-разрядные Т/C. Структурная схема Т/C для этого режима показана на рис. 4.8. Рис. 4.8. Структурная схема Т/C0 в режиме 1 В режиме 2 Т/C работает в качестве 8-ми разрядных счетчиков, построенных на основе регистров TL. Причем, при каждом переполнении, кроме установки флага TF в регистре TCON, автоматически происходит перезагрузка содержимого регистра ТН в регистр ТL. При этом содержимое регистра ТН не изменяется. Это обстоятельство позволяет использовать Т/С для задания скорости передачи данных через последовательный порт. Логику работы Т/C в этом режиме иллюстрирует рис. 4.9. Рис. 4.9. Структурная схема Т/C1 в режиме 2 В режиме 3 Т/C0 и Т/C1 работают по разному. Т/C1 сохраняет неизменным свое текущее содержимое. Т.е. эффект такой же, как и при сбросе управляющего бита TR1 в нуль. Работу Т/C в режиме 3 иллюстрирует рис. 4.10. Рис. 4.10. Структурная схема Т/C0 в режиме 3 В этом режиме TL0 и TН0 функционируют как два независимых 8-ми разрядных счетчика. Работу TL0 определяют управляющие биты C/T, GATE, TR, входной сигнал и флаг переполнения TF0. Работу TH0, который может выполнять только функцию таймера, определяет управляющий бит TR1. При этом TH0 использует флаг переполнения TF1. Установка Т/C0 в режим 3 лишает Т/C1 бита включения TR1. Поэтому Т/C1 в режимах 0, 1 и 2 при GATE1=0 всегда включен и при переполнении в режимах 0 и 1 Т/C1 обнуляется, а в режиме 2 перезагружается , не устанавливая флаг. Управление от входов INT1, Т1, биты управления С/Т1, GATE для Т/C1 не зависят от режима Т/C0 . Т/C1 аппаратно связан с блоком синхронизации последовательного интерфейса. При работе в режимах 0, 1 и 2 при переполнении Т/C1 всегда вырабатывается синхроимпульс последовательного интерфейса. Поэтому 3-й режим Т/C0 удобно применять тогда, когда требуется работа последовательного порта и двух таймеров или ПИ, таймера и счетчика. Когда Т/C0 переведен в режим 3, Т/C1 можно выключить, переведя его также в режим 3, и использовать его с последовательным портом для выработки синхроимпульсов или в любых других приложениях, не требующих прерывания. 4.1.8. Блок последовательного интерфейса и прерываний Блок последовательного интерфейса и прерываний (ПИП) предназначен для организации ввода/вывода информации по последовательному каналу и обработки прерываний. В состав блока входят: 1. Буфер ПИП; 2. Логика управления ПИП; 3. Регистр управления (SCON); 4. Приемо/передатчик последовательного порта; 5. Регистр приоритетов прерываний; 6. Регистр разрешения прерываний; 7. Схема выработки вектора. Буфер ПИП обеспечивает побитовый обмен информацией между внутренней шиной данных МП и шиной ПИП. Логика управления ПИП предназначена для выработки сигналов управления последовательного порта задавая 1 из 4 возможных режимов его работы, и организации прерывания программ. Последовательный порт МК51 может работать в одном из 4 режимов: Режим 0. Информация передается и принимается через вход приемника RxD (вывод Р3.0). Через выход передатчика TxD (вывод Р3.1) выдаются импульсы синхронизации, стробирующие каждый передаваемый или принимаемый бит информации. Формат посылки – 8 бит. Частота приема и передачи равна . Режим 1. Информация передается через выход TxD, а принимается через вход приемника RxD. Формат посылки – 10 бит: старт-бит (ноль), восемь бит данных и стоп-бит (единица). Частота приема и передачи задается Т/С 1. Режим 2. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки 11 бит: старт-бит (ноль), восемь бит данных, программируемый девятый бит и стоп-бит (единица). Передаваемый девятый бит данных принимает значение бита ТВ8 из регистра специальных функций SCON. Бит ТВ8 в регистре SCON может быть программно установлен в 0 или в 1, или в него, к примеру, можно записать значение флага Р из регистра PSW для повышения достоверности принимаемой информации (контроль по четности). При приеме 9-ый бит принятой посылки записывается в бит RB8 регистра SCON. Частота приема и передачи в режиме 2 задается программно и может быть равна (SMOD=1) или (SMOD=0). Режим 3 полностью идентичен режиму 2, за исключением того, что частота приема и передачи задается с помощью Т/С1. Регистр управления (SCON) предназначен для приема и хранения 8-ми разрядного управляющего слова последовательным портом. Обозначение разрядов регистра, их символьные имена и назначения приведены в табл. 4.8. Таблица 4.8. Назначение разрядов регистра SCON Разряд Имя Назначение SCON.7 SCON.6 SM0 SM1 Биты управления режимом работы УАПП (устанавливаются и сбрасываются программно) SM0 SM1 Режим работы УАПП Сдвиговый регистр 1 8 битовый приемопередатчик, изменяемая скорость передачи 1 9 битовый приемопередатчик. Фиксированная скорость передачи 1 1 9 битовый приемопередатчик, изменяемая скорость передачи SCON.5 SM2 Бит управления режимом УАПП (разрешения многопроцессорной работы). В режимах 2 и 3 при SM2=1 флаг RI не активизируется, если девятый принятый бит данных равен «0». В режиме 1 при SM2=1 флаг RI не активен, если не принят стоп-бит, равный «1». В режиме «0» бит SM2 должен быть установлен в «0». SCON.4 REN Бит разрешения приема. Устанавливается/сбрасывается программно для разрешения/запрета приема последовательных данных SCON.3 TB8 Девятый бит передаваемых данных в режиме 2 и 3. Установка/сброс программно SCON.2 RB8 Девятый бит принятых данных в режиме 2 и 3. В режиме 1, если SM2=0, RB8 является принятым стоп-битом. В режиме 0 бит RB8 не используется. SCON.1 TI Флаг прерывания передатчика. Устанавливается аппаратно в конце передачи восьмого бита в режиме 0 или в начале стоп-бита в других режимах, сбрасывается программно. SCON.0 RI Флаг прерывания приемника. Устанавливается аппаратно в конце приема восьмого бита в режиме 0 или через половину интервала стоп-бита в режиме 1-3 при SM2=0. При SM2=1 смотри описание бита SM2. Буферы приемника и передатчика (БПП) (на структурной схеме не показаны) предназначены для приема/передачи данных с внутренней шины данных в последовательный порт. При программном доступе имеют одинаковые символические имена (SBUF) и адрес (99H) . Если команда использует SBUF как регистр источника, то обращение происходит к буферу приемника. Если же команда использует SBUF как регистр-приемник, то обращение происходит к буферу передатчика. Во всех 4-х режимах работы УАПП передача инициируется любой командой, которая использует SBUF как регистр-приемник. Прием в режиме 0 инициируется условием RI=0 и REN=1 . В остальных режимах прием инициируется приходом старт-бита, если REN=1 . Приемник/передатчик последовательного порта предназначен для приема последовательного потока символов с входа последовательного порта, выделения данных и выдачи их в буфер приемника. В режиме передачи он принимает последовательные данные с буфера передатчика, преобразует их в последовательный поток символов и выдает их на выход последовательного порта. Скорость приема/передачи Скорость приема/передачи в различных режимах работы УАПП определяется различными способами. В режиме 0 частота передачи зависит только от частоты кварцевого резонатора и равна , т.е. за один машинный цикл последовательный порт передает 1 бит информации. В режимах 1, 2, 3 скорость приема/передачи зависит от значения управляющего бита SMOD в регистре управления PCON. В режиме 2 частота передачи определяется согласно выражению: Скорость последовательного обмена УАПП в режимах 1 и 3 определяется по формуле: , где - значение бита SMOD регистра управления мощностью PCON; - частота синхронизации МК-51; - десятичное значение содержимого регистра TH1. Если необходим последовательный обмен с очень низкой скоростью, то можно использовать Т/С1 в режиме 16-ти разрядного таймера (режим 1), разрешив при этом прерывание от Т/С1 с целью перезагрузки TH1 и TL1 в подпрограмме обслуживания прерывания. Для использования Т/С1 в качестве источника для задания частот и необходимо: 1. Запретить прерывания от Т/С1; 2. Запрограммировать работу Т/С1 в качестве таймера или счетчика, установив при этом для него один из режимов 0, 1 или 2; 3. Запустить Т/С1 на счет. Обычно для установки скорости передачи данных через последовательный порт таймер Т/С1 включается в режим 2 (режим автозагрузки). В табл.4.9 приведен ряд стандартных скоростей последовательного обмена и то, как они могут быть реализованы с помощью T/C1 в режимах 1 и 3 . Таблица 4.9 Режим работы Скорость обмена, , МГц Бит SMOD Разряды TMOD Регистр ТН1 Примечание УАПП Кбод C/T М1 М0 2 1,3 Макс 1000 Макс 375 62,5 19,2 9,6 4,8 2,4 1,2 0,1375 0,110 0,110 12 12 12 11,059 11,059 11,059 11,059 11,059 11,986 6 12 Х 1 1 1 Х Х 1 1 1 1 1 1 1 1 1 1 х х FFH FDH FDH FAH E4H E8H 18H 72H FEH TL1=EBH Регистр приоритетов прерываний (IP) предназначен для установки уровня приоритетов прерываний для каждого из пяти возможных источников прерываний. Обозначение, номер разряда и их назначение приведены в табл.4.10. Таблица 4.10. Назначение разрядов регистра приоритетов прерываний IP Разряд Имя Назначение IP.7 IP.6 IP.5 - - - Не используются IP.4 PS Бит приоритета УАПП. Установка/сброс программой для присваивания прерыванию от УАПП высшего/низшего приоритета. IP.3 PT1 Бит приоритета Т/C1. Установка/сброс программой для присваивания прерыванию от Т/C1 высшего/низшего приоритета. IP.2 PX1 Бит приоритета внешнего прерывания . Установка/сброс программой для присваивания прерыванию от высшего/ низшего приоритета. IP.1 PT0 Бит приоритета Т/C0. Работает аналогично PT1. IP.0 PX0 Бит приоритета внешнего прерывания . Работает аналогично PX1. Регистр разрешения прерываний (IE) предназначен для разрешения или запрещения прерываний от соответствующих источников. Обозначение разрядов IE и их назначение приведено в табл.4.11. Таблица 4.11. Назначение разрядов регистра разрешения прерываний IE Разряд Имя Назначение IE.7 EA Снятие блокировки прерываний. Сбрасывается программно для запрета всех прерываний независимо от состояний IE4…IE0 . IE.6 IE.5 - - Не используются IE.4 ES Управление прерыванием от УАПП. ES=1 - разрешено, ES=0 - запрещено . IE.3 ET1 Управление прерыванием от Т/C1. EТ=1 - разрешено, ET=0 - запрещено . IE.2 EX1 Управление прерыванием от внешнего источника . Работает аналогично ET1. IE.1 ET0 Управление прерыванием от Т/C0. Работает аналогично ЕT1 . IE.0 EX0 Управление прерыванием от внешнего источника . Работает аналогично ET1. Логика обработки флагов прерываний осуществляет приоритетный выбор запроса прерывания в соответствии с рис.4.11, сброс его флага инициирует выработку аппаратно-реализованной команды перехода к программе обслуживания прерываний. Рис. 4.11. Система прерываний МК51 Схема выработки вектора прерываний предназначена для формирования двухбайтового адреса подпрограммы обслуживания прерывания. Адреса подпрограмм и источники прерываний приведены в табл.4.12. Таблица 4.12 Источник прерывания Вектор прерывания Внешнее прерывание Таймер/счетчик 0 Внешнее прерывание Таймер/счетчик 1 УАПП 0003H 000BH 0013H 001BH 0023H При выполнении подпрограммы прерывания система прерываний формирует аппаратный вызов (LCALL) соответствующей подпрограммы обслуживания, если она не заблокирована одним из следующих условий: • в данный момент обслуживается запрос прерывания равного или высокого уровня приоритета; • текущий машинный цикл – не последний в цикле выполняемой команды; • выполняется команда RETI или любая команда, связанная с обращением к регистрам IЕ или IP. Если флаг прерывания был установлен, но по одному из указанных выше условий не получил обслуживания и к моменту окончания блокировки уже сброшен, то запрос прерывания теряется и нигде не запоминается. По аппаратно сформированному коду LCALL система прерывания помещает в стек только содержимое счетчика команд (PC), а в него загружает адрес вектора соответствующей подпрограммы обслуживания. По адресу вектора должна быть расположена команда безусловной передачи управления (JMP) к начальному адресу подпрограммы обслуживания прерывания. В случае необходимости она должна начинаться командами записи в стек (PUSH) слова состояния программы (PSW), аккумулятора, расширителя, указателя данных и т.д. и должна заканчиваться командами восстановления из стека (POP). Подпрограммы обслуживания прерывания должны завершаться командой RETI, по которой в счетчик команд перезагружается из стека сохраненный адрес возврата в основную программу. Команда RET также возвращает управление прерванной основной программе, но при этом не снимут блокировку прерываний, что приводит к необходимости иметь программный механизм анализа окончания процедуры обслуживания данного прерывания. 4.1.9. Порты МК51 Четыре двунаправленных порта Р0...Р3 предназначены для обмена информацией MK51 с внешними устройствами. Каждый из портов содержит 8-разрядный регистр-защелку, имеющий байтовую и битовую адресацию для установки (сброса) разрядов программным способом. Физические адреса регистров портов Р0...Р3 приведены в табл. 4.13. Таблица 4.13 Номер порта Байтовая адресация Битовая адресация Р0 80H 80H…87H Р1 90H 90H…97H Р2 0A0H 0A0H…0A7H Р3 0B0H 0B0H…0B7H Помимо работы в качестве обычных портов ввода/вывода линии портов Р0…Р3 могут выполнять ряд дополнительных функций, описанных ниже. Через порт Р0: 1. Выводится младший байт адреса А0...А7 при работе с ВПД и ВПП; 2. Выдается из МК51 и принимается в МК51 байт данных при работе с внешними памятью программ и данных, причем обмен данными и выдача адреса мультиплексированы во времени; 3. Задаются данные при программировании внутреннего ПЗУ и читается содержимое RPM. Через порт Р1 задается младший байт адреса при программировании внутреннего ПЗУ и при чтении RPM. Через порт Р2: 1. Выводится старший байт адреса А8...А15 при работе с ВПД и ВПП; 2. Задается старший байт (разряды А8...А14) адреса при программировании внутреннего ПЗУ и при чтении RPM. Альтернативные функции линий порта Р3 приведены в табл. 4.14 Таблица 4.14 Номер линии Имя линии Альтернативная функция Р3.0 RxD вход УАПП Р3.1 TxD выход УАПП Р3.2 нулевой вход внешнего запроса прерывания Р3.3 первый вход внешнего запроса прерывания Р3.4 T0 вход счетчика внешних событий Т/С0 Р3.5 T1 вход счетчика внешних событий Т/С1 Р3.6 WR строб записи в ВПД, сопровождающий вывод данных из порта Р0 при использовании команд MOVX@Ri, А или MOVX@DPTR, A Р3.7 RD строб чтения из ВПД, сопровождающий ввод данных через порт Р0 при использовании команды MOVXA@Ri и MOVXA@DPTR Альтернативная функция любой линии порта Р3 реализуется только в том случае, если в соответствующем этой линии разряде регистра-защелки записана 1. 4.1.10. Начальная установка и режимы работы МК51 Сброс микросхемы осуществляется сигналом RST (активный высокий уровень напряжения) при условии подачи на МП внешнего тактового сигнала или при подключенном кварце. Для гарантированного сброса высокий уровень на входе RST должен удерживаться не менее 2 машинных циклов. На рис. 4.12 показана цепь для автоматического сброса при включении Рис. 4.12. Цепь сброса МК51 питания. После подачи активного сигнала на вход RST МП продолжает работать еще в течение машинного цикла, после чего сигналы ALE и PME устанавливаются в "1" и находятся в этом состоянии все время, пока действует сигнал RST. После подачи на вход RST лог. "0" проходит от 1 до 2 машинных циклов до начала формирования этих сигналов. Активный уровень на входе RST "запускает" внутренний алгоритм сброса МК51, согласно которому выполняются следующие действия: 1. Счетчик команд РС, регистры специальных функций, кроме регистров-защелок портов Р0-Р3, указателя стека SP и регистра SBUF, сбрасываются в нуль. 2. В указатель стека записывается адрес 07Н. 3. Запрещается работа Т/С, УАПП и всех источников прерываний. 4. Выбирается Банк 0 ОЗУ, порты Р0-Р3 подготавливаются для приема данных, а выводы ALE и PME определяются как входы для внешней синхронизации. 5. В регистры специальных функций PCON, IP и IE в функциональные биты записывается ноль, а неопределенные биты устанавливаются случайным образом. 6. В регистры-защелки портов Р0-Р3 записывается "1". Сигнал сброса не влияет на содержимое внутреннего ОЗУ. После включения питания содержимое ЯП устанавливается случайным образом. Режим холостого хода. В этом режиме блокируются узлы CPU. Состояние регистров не изменяются. Для выхода из режима холостого хода используется два способа. В первом случае, активация любого разрешенного прерывания, приведет к сбросу PCON.0 в «0», выключая режим холостого хода. После выполнения команды RETI (выход из подпрограммы обслуживающей прерывание) будет использована команда, которая следует за командой, переводящей МК51 в режим холостого хода. При втором способе используется аппаратный сброс по входу RST, длительностью не менее двух машинных циклов. Биты GF0 и GF1 удобно использовать для индикации режима, в котором была вызвана программа обработки прерываний. Режим микропотребления. Команда, устанавливающая PCON.1 в «1» (PD), является последней перед переходом в режим микропотребления. В этом режиме задающий генератор останавливается, прекращая работу всех узлов. Сохраняется только содержимое ОЗУ. В этом режиме можно установить Ucc=2 В. Для выхода из режима микропотребления необходимо активизировать системный сброс, который должен длиться не менее 10 мс. 4.2. Система команд микроконтроллера 1830ВЕ51 Система команд МК51 содержит 111 базовых команд, которые по функциональному признаку можно подразделить на следующие пять групп: • команды передачи данных; • арифметические команды; • логические команды с байтовыми переменными; • команды битового процессора; • команды ветвления программ и передачи управления. Формат команд - одно-, двух- и трехбайтовый, причем большинство команд (94) имеют формат один или два байта. Первый байт команды любого типа и формата всегда содержит код операции, второй и третий байты содержат либо адреса операндов, либо непосредственные операнды. Операнды могут быть четырех типов: биты, тетрады (4 разряда), байты и 16-битные слова. Время выполнения команд составляет 1, 2 или 4 машинных цикла. При тактовой частоте 12 МГц длительность машинного цикла составляет 1 мкс, при этом 64 команды исполняются за 1 мкс, 45 команд - за 2 мкс и 2 команды (умножение и деление) - за 4 мкс. В МК51 поддерживает следующие способы адресации: 1. Прямая адресация (Direct Addressing). Операнд определяется 8-битным адресом в команде. Эта адресация используется только для внутренней памяти данных и регистров специальных функций; 2. Косвенная адресация (Indirect Addressing). В этом случае команда адресует регистр, в котором содержится адрес операнда. Данный вид адресации может применяться при обращении как к внутреннему, так и внешнему ОЗУ. Для указания 8-битных адресов могут использоваться регистры R0 и R1 выбранного банка памяти или указатель стека SP. Для 16-битной адресации используется только регистр DPTR. 3. Регистровая адресация (Register Instruction). Данная адресация применяется для доступа к регистрам R0…R7 выбранного банка. Адреса регистров содержатся в байте кода операции и представляют собой трехбитовое поле, определяющее номер регистра. Выбор одного из четырех регистровых банков осуществляется программированием битов селектора банка (RS1, RS0) в PSW; 4. Непосредственная адресация (Immediate constants). Операнд содержится непосредственно в поле команды вслед за кодом операции и может занимать один или два байта (data8, data16). 5. Индексная адресация (Indexed Addressing). Индексная адресация используется при обращении к памяти программ и только при чтении. В этом режиме осуществляется просмотр таблиц в памяти программ. 16-битовый регистр (DPTR или PC) указывает базовый адрес требуемой таблицы, а аккумулятор указывает на точку входа в нее. Адрес элемента таблицы находится сложением базы с индексом (содержимым аккумулятора). 6. Другой тип индексной адресации применяется в командах “перехода по выбору”. При этом адрес перехода вычисляется как сумма указателя базы и аккумулятора. 7. Неявная адресация (Register-Specific Instructions). Некоторые команды используют индивидуальные регистры (например, операции с аккумулятором, DPTR), при этом данные регистры не имеют адреса, указывающего на них; это заложено в коде операции. В табл. 4.15 приведены обозначения и символы, используемые в командах. Таблица 4.15 Обозначение, символ Назначение А Аккумулятор Rn (n = 0... 7) Регистр общего назначения в выбранном банке памяти direct Прямо адресуемый 8-ми битовый внутренний адрес ячейки данных, который может быть ячейкой внутреннего ОЗУ (0…127) или SFR (128…255) @Ri(i= 0, 1) Регистр общего назначения в выбранном банке регистров, используемый в качестве регистра косвенного адреса #data 8 8-ми битовый непосредственный операнд #data 16 16-ти битовый непосредственный операнд data H Старшие биты (15…8) непосредственных 16-ти битовых данных data L Младшие биты (7…0) непосредственных 16-ти битовых данных addr 11 11-ти битовый адрес назначения addr 16 16-ти битовый адрес назначения addr L Младшие биты адреса назначения disp 8 8-ми битовый байт смещения со знаком bit Бит с прямой адресацией, находящийся во внутреннем ОЗУ или SFR /bit Инверсия прямо адресуемого бита rel Относительный адрес перехода (X) Содержимое элемента Х ((X)) Содержимое по адресу, хранящемся в элементе Х (X) [M] Разряд М элемента Х (X) [M1…M2] Группа разрядов М1…М2 элемента Х 4.2.1. Команды пересылки данных В группу команд пересылки данных входит 28 команд, краткое описание которых, а также их количество байт и время выполнения приведено в табл. 4.16. Таблица 4.16. Команды пересылки данных Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия MOV A, Rn 11101rrr 1 1 (A)  (Rn) MOV A, ad 11100101 2 1 (A)  (ad) MOV A, @Ri 1110011i 1 1 (A)  ((Ri)) MOV A, #d 01110100 2 1 (A)  #d MOV Rn, A 11111rrr 1 1 (Rn)  (A) MOV Rn, ad 10101rrr 2 2 (Rn)  (ad) MOV Rn, #d 01111rrr 2 1 (Rn)  #d MOV ad, A 11110101 2 1 (ad)  (A) MOV ad, Rn 10001rrr 2 2 (ad)  (Rn) MOV add, ads 10000101 3 2 (add)  (ads) MOV ad, @Ri 1000011i 2 2 (ad)  ((Ri)) MOV ad, #d 01110101 3 2 (ad)  #d MOV @Ri, A 1111011i 1 1 ((Ri))  (A) MOV @Ri, ad 0110011i 2 2 ((Ri))  (ad) MOV @Ri, #d 0111011i 2 1 ((Ri))  #d MOV DPTR, #d16 10010000 3 2 (DPTR)  #d16 MOVC A, @A+DPTR 10010011 1 2 (А)  ((A) +(DPTR)) MOVC A, @A+PC 10000011 1 2 (PC)  (PC)+1, (A)  ((A)+(PC)) MOVX A, @Ri 1110001i 1 2 (A)  ((Ri)) MOVX A,@DPTR 11100000 1 2 (A)  ((DPTR)) MOVX @Ri, A 1111001i 1 2 ((Ri))  (A) MOVX @DPTR,A 11110000 1 2 ((DPTR))  (A) PUSH ad 11000000 2 2 (SP)  (SP) + 1, ((SP))  (ad) POP ad 11010000 2 2 (ad)  (SP), (SP)  (SP) - 1 XCH A, Rn 11001rrr 1 1 (A) ↔ (Rn) XCH A, ad 11000101 2 1 (A) ↔ (ad) XCH A, @Ri 1100011i 1 1 (A) ↔ ((Ri)) XCHD A, @Ri 1101011i 1 1 (A0…3) ↔((Ri)0…3) По команде MOV выполняется пересылка данных из второго операнда в первый. Эта команда не имеет доступа ни к внешней памяти данных, ни к памяти программ. Для этих целей предназначены команды MOVX и MOVC соответственно. Первая из них обеспечивает чтение/запись байт из внешней памяти данных, вторая – чтение байт из памяти программ. По команде XCH выполняется обмен байтами между аккумулятором и ячейкой РПД, а по команде XCHD – обмен младшими тетрадами (битами 0…3). Команды PUSH и РОР предназначены соответственно для записи данных в стек и их чтения из стека. Размер стека ограничен лишь размером резидентной памяти данных. В процессе инициализации микро-ЭВМ после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08Н. Группа команд пересылок МК51 имеет следующую особенность – в ней нет специальных команд для работы со специальными регистрами: PSW, таймером, портами ввода-вывода. Доступ к ним, как и к другим регистрам специальных функций, осуществляется заданием соответствующего прямого адреса, т.е. это команды обычных пересылок, в которых вместо адреса можно ставить название соответствующего регистра. Например, чтение данных из порта Р1 в аккумулятор может быть выполнено командой MOV A, P1. Кроме того, следует отметить, что в МК51 аккумулятор имеет два различных имени в зависимости от способа адресации: А – при неявной адресации (например, MOV A, R0) и АСС – при использовании прямого адреса. Первый способ предпочтительнее, однако, не всегда применим. 4.2.2. Команды арифметических операций В данную группу входят 24 команды, краткое описание которых приведено в табл. 4.17. Кроме этого в таблице приведены данные о длине команды в байтах и время ее выполнения в машинных циклах. Таблица.4.17. Арифметические операции Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия ADD A, Rn 00l01rrr 1 1 (A)  (A) + (Rn) ADD A, ad 00100101 2 1 (A)  (A) + (ad) ADD A, @Ri 0010011i 1 1 (A)  (A) + ((Ri)) ADD A, #d 00100100 2 1 (A)  (A) + #d ADDC A, Rn 00111rrr 1 1 (A)  (A) + (Rn) + (C) ADDC A, ad 00110101 2 1 (A)  (A) + (ad) + (C) ADDC A, @Ri 0011011i 1 1 (A)  (A) + ((Ri)) + (C) ADDC A, #d 00110100 2 1 (A)  (A) + # d + (C) DA A 11010100 1 1 Если (А0…3)>9 или ((AC)=1), то (А0…3) (А0…) + 6, затем если (А4…7) >9 или ((С)=1), то (А4…7)  (А4…7) + 6 SUBB A, Rn 10011rrr 1 1 (A)  (A) - (C) - (Rn) SUBB A, ad 10010101 2 1 (A)  (A) - (C) - ((ad)) SUBB А, @Ri 1001011i 1 1 (A)  (A) - (C) - ((Ri)) SUBB А, d 10010100 2 1 (A)  (A) - (C) - #d INC А 00000100 1 1 (A)  (A) + 1 INC Rn 00001rrr 1 1 (Rn)  (Rn) + 1 INC ad 00000101 2 1 (ad)  (ad) + 1 INC @Ri 0000011i 1 1 ((Ri))  ((Ri)) + 1 INC DPTR 10100011 1 2 (DPTR )  (DPTR) + 1 DEC A 00010100 1 1 (A)  (A) – 1 DEC Rn 00011rrr 1 1 (Rn)  (Rn) – 1 DEC ad 00010101 2 1 (ad)  (ad) – 1 DEC @Ri 0001011i 1 1 ((Ri))  ((Ri)) - 1 MUL AB 10100100 1 4 (B)(A)  (A)*(В) DIV AB 10000100 1 4 (B).(A)  (A)/(В) По результату выполнения команд ADD, ADDC, SUBB, MUL и DIV устанавливаются флаги PSW. Флаг С устанавливается при переносе из разряда D7, т. е. в случае, если результат не помещается в восемь разрядов; флаг АС устанавливается при переносе из разряда D3 в командах сложения и вычитания и служит для реализации десятичной арифметики. Этот признак используется командой DAA. Флаг OV устанавливается при переносе из разряда D6, т. е. в случае, если результат не помещается в семь разрядов и восьмой не может быть интерпретирован как знаковый. Этот признак служит для организации обработки чисел со знаком. Наконец, флаг Р устанавливается и сбрасывается аппаратно. Если число единичных бит в аккумуляторе нечетно, то Р = 1, в противном случае Р = 0. 4.2.3. Команды логических операций В данную группу входят 25 команды, краткое описание которых приведено в табл. 4.18. Кроме этого в таблице приведены данные о длине команды в байтах и время ее выполнения в машинных циклах. Таблица.4.18. Логические операции Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия ANL A, Rn 01011rrr 1 1 (A)  (A) AND (Rn) ANL A, ad 01010101 2 1 (A)  (A) AND (ad) ANL A, @Ri 0101011i 1 1 (A)  (A) AND ((Ri)) ANL A, #d 01010100 2 1 (A)  (A) AND #d ANL ad, A 01010010 2 1 (ad)  (ad) AND (A) ANL ad, #d 01010011 3 2 (ad)  (ad) AND #d ORL A, Rn 01001rrr 1 1 (A)  (A) OR (Rn) ORL A, ad 01000101 2 1 (A)  (A) OR (ad) ORL A, @Ri 0100011i 1 1 (A)  (A) OR ((Ri)) ORL A, #d 01000100 2 1 (A)  (A) OR #d ORL ad, A 01000010 2 1 (ad)  (ad) OR (A) ORL ad, #d 01000011 3 2 (ad)  (ad) OR #d XRL A, Rn 01101rrr 1 1 (A)  (A) XOR (Rn) XRL A, ad 01100101 2 1 (A)  (A) XOR (ad) XRL A, @Ri 0110011i 1 1 (A)  (A) XOR ((Ri)) XRL A, #d 01100100 2 1 (A)  (A) XOR #d XRL ad, A 01100010 2 1 (ad)  (ad) XOR (A) XRL ad, #d 01100011 3 2 (ad)  (ad) XOR #d CLR A 11100100 1 1 (A)  0 CPL A 11110100 1 1 (A)  NOT(A) RL A 00100011 1 1 (An+1)  (An), n=0÷6, (A0)  (A7) RLC A 00110011 1 1 (An+1)  (An), n=0÷6 (A0)  (C), (C) (A7) RR A 00000011 1 1 (An)  (An+1), n=0÷6, (A7)  (A0) RRC A 00010011 1 1 (An)  (An+1), n=0÷6 (A7)  (C), (C) (A0) SWAP A 11000100 1 1 (A0…3) ↔ (A4…7) 4.2.4. Команды операций над битами Группа состоит из 12 команд, краткое описание которых приведено в табл. 4.19. Таблица.4.19. Операции с битами Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия CLR С 11000011 1 1 (C)  0 CLR bit 11000010 2 1 (b)  0 SETB С 11010011 1 1 (C)  1 SETB bit 11010010 2 1 (b)  1 CPL С 10110011 1 1 (C)  NOT(C) CPL bit 10110010 2 1 (b)  NOT(b) ANL С, bit 10000010 2 2 (C)  (C) AND (b) ANL С, /bit 10110000 2 2 (C)  (C) AND (NOT(b)) ORL С, bit 01110010 2 2 (C)  (C) OR (b) ORL С, /bit 10100000 2 2 (C)  (C) OR (NOT(b)) MOV С, bit 10100010 2 1 (C)  (b) MOV bit, С 10010010 2 2 (b)  (C) Эти команды позволяют выполнять операции над отдельными битами: сброс, установку, инверсию бита, а также логические И (/\) и ИЛИ (\/). В качестве "логического" аккумулятора, участвующего во всех операциях с двумя операндами, выступает признак переноса С (разряд D7 PSW), в качестве операндов могут использоваться 128 бит из резидентной памяти данных и регистры специальных функций, допускающие адресацию отдельных бит. 4.2.5. Команды передачи управления В группу команд передачи управления входят команды безусловного и условного переходов, вызова подпрограмм и возврата из них, краткое описание которых приведено в табл. 4.20. Кроме этого в таблице приведены данные о длине команды в байтах и время ее выполнения в машинных циклах. Таблица.4.20. Команды передачи управления Мнемоника команды Код операции Количество байтов в команде Время выполнения, циклы Выполняемые действия LJMP ad16 00000010 3 2 (PC)  ad16 AJMP ad11 a10a9a800001 2 2 (PC)  (PC) + 2, (PC0-10)  ad11 SJMP rel 10000000 2 2 (PC)  (PC) + 2, (PC)  (PC) +rel JMP @A+DPTR 01110011 1 2 (PC)  (A) + (DPTR) JZ rel 01100000 2 2 (PC)(PC)+2, если (A)=0, то (PC)(PC)+rel JNZ rel 01110000 2 2 (PC)(PC)+2, если (A)≠0, то (PC)(PC)+rel JC rel 01000000 2 2 (PC)(PC)+2, если (С)=1, то (PC)(PC)+rel JNC rel 01010000 2 2 (PC)(PC)+2, если (С)=0, то (PC)(PC)+rel JB bit, rel 00100000 3 2 (PC)(PC)+3, если (b)=l, то (PC)(PC)+rel JNB bit, rel 00110000 3 2 (PC)(PC)+3, если (b)=0, то (PC)(PC)+rel JBC bit, rel 00010000 3 2 (PC)  (PC) + 3, если (b)=1, то (b)  0 и (PC) (PC) + rel DJNZ Rn, rel 11011rrr 2 2 (PC)  (PC) + 2, (Rn)  (Rn) - 1, если (Rn) ≠ 0, то (PC)  (PC) + rel DJNZ ad, rel 11010101 3 2 (PC)  (PC) + 2, (ad)  (ad) - 1, если (ad) ≠ 0, то (PC)  (PC) + rel CJNE A, ad, rel 10110101 3 2 (PC)  (PC) + 3,если (A) ≠ (ad), то (PC)  (PC) + rel,если (A) < (ad), то (C)  1, иначе (C)  0 CJNE A, #d, rel 10110100 3 2 (PC)  (PC) + 3,если (A) ≠ #d, то (PC)  (PC) + rel,если (A) < #d, то (C)  1, иначе (С)  0 CJNE Rn, #d, rel 10111rrr 3 2 (PC)  (PC) + 3,если (Rn) ≠ #d, то (PC)  (PC) + rel,если (Rn) < #d, то (C)  1, иначе (С)  0 CJNE @Ri,#d,rel 1011011i 3 2 (PC)  (PC) + 3,если ((Ri)) ≠ #d, то (PC)  (PC) + rel,если ((Ri)) < #d, то (C)  1, иначе (C)  0 LCALL adl6 00010010 3 2 (PC)  (PC) + 3, (SP)  (SP) +1, ((SP))  (PC0…7), (SP)  (SP) + 1, ((SP))  (PC8…15), (PC)  ad16 ACALL ad11 a10a9a810001 2 2 (PC)  (PC) + 2, (SP)  (SP) + 1, ((SP))  (PC0…7), (SP)  (SP) + 1, ((SP))  (PC8…15), (PC0-10)  ad11 RET 00100010 1 2 (PC8…15)  ((SP)), (SP)  (SP) - 1, (PC0…7)  ((SP)), (SP)  (SP) – 1 RETI 00110010 1 2 (PC8…15)  ((SP)), (SP)  (SP) - 1, (PC0…7)  ((SP)), (SP)  (SP) – 1 NOP 00000000 1 1 (PC)  (PC) + 1 Команда безусловного перехода LJMP (L – long – длинный) осуществляет переход по абсолютному 16-битному адресу, указанному в теле команды, т. е. команда обеспечивает переход в любую точку памяти программ. Действие команды AJMP (А – absolute – абсолютный) аналогично команде LJMP, однако в теле команды указаны лишь 11 младших разрядов адреса. Поэтому переход осуществляется в пределах страницы размером 2 Кбайт, при этом надо иметь в виду, что сначала содержимое счетчика команд увеличивается на 2 и только потом заменяются 11 разрядов адреса. В отличие от предыдущих команд, в команде SJMP (S – short – короткий) указан не абсолютный, а относительный адрес перехода. Величина смещения reI рассматривается как число со знаком, а, следовательно, переход возможен в пределах – 128...+127 байт относительно адреса команды, следующей за командой SJMP. Команда косвенного перехода JMP @A+DPTR позволяет вычислять адрес перехода в процессе выполнения самой программы. Командами условного перехода можно проверять следующие условия: • JZ — аккумулятор содержит нулевое значение; • JNZ — аккумулятор содержит не нулевое значение • JC — бит переноса С установлен; • JNC — бит переноса С не установлен; • JB — прямо адресуемый бит равен 1 • JNB — прямо адресуемый бит равен 0; • JBC — прямо адресуемый бит равен 1 и сбрасывается в нулевое значение при выполнении команды. Все команды условного перехода содержат короткий относительный адрес, т. е. переход может осуществляться в пределах—128... +127 байт относительно следующей команды. Команда DJNZ предназначена для организации программных циклов. Регистр Rn или байт по адресу ad, указанные в теле команды, содержат счетчик повторений цикла, а смещение rеl — относительный адрес перехода к началу цикла. При выполнении команды содержимое счетчика уменьшается на 1 и проверяется на 0. Если значение содержимого счетчика не равно 0, то осуществляется переход на начало цикла, в противном случае выполняется следующая команда. Команда CJN удобна для реализации процедур ожидания внешних событий. В теле команды указаны "координаты" двух байт и относительный адрес перехода rel. В качестве двух байт могут быть использованы, например, значения содержимого аккумулятора и прямо адресуемого байта или косвенно адресуемого байта и константы. При выполнении команды значения указанных двух байт сравниваются и в случае, если они не одинаковы, осуществляется переход. Например, команда WAIT: CJNE A, P0, WAIT будет выполняться до тех пор, пока значения на линиях порта P0 не совпадут со значениями содержимого аккумулятора. Действие команд вызова процедур полностью аналогично действию команд безусловного перехода. Единственное отличие состоит в том, что они сохраняют в стеке адрес возврата. Команда возврата из подпрограммы RET восстанавливает из стека значение содержимого счетчика команд, а команда возврата из процедуры обработки прерывания RETI, кроме того, разрешает прерывание обслуженного уровня. Команды RET и RETI не различают, какой командой – LCALL или ACALL – была вызвана подпрограмма, так как и в том, и в другом случае в стеке сохраняется полный 16-разрядный адрес возврата. 4.3. Структурная организация систем на основе микроконтроллеров Во многих случаях функционально-логических возможностей однокристального МК бывает недостаточно. Поэтому можно расширить микропроцессорную систему относительно простыми средствами. Для МПС, построенную на МК48, память программ может быть расширена до 4 Кбайт; память данных – до 320 байт; линии ввода/вывода – практически неограниченно. МПС, построенные на МК51, допускают расширение памяти данных и программ до 64 Кбайт. 4.3.1. Подключение внешней памяти Функциональная схема подключения внешней памяти программ к МК48 и МК51 показана на рис. 4.13. Рис. 4.13. Функциональная схема подключения ВПП При обращении к ВПП МК48 формирует 12 - разрядный адрес, младший байт которого выдается через порт Р0, а старшая тетрада (Р2.0…Р2.3) - через порт Р2. В МК51 всегда формируется 16-ти разрядный адрес. Причем порт Р0 используется в режиме временного мультиплексирования: в начале каждого машинного цикла обращения к ВПП (фаза S2Р1) через порт Р0 выдается младший байт адреса, который должен быть записан во внешний регистр RG по отрицательному фронту сигнала ALE (рис. 4.14); низкий уровень сигнала PME, формируемый в течение фаз S3Р1 ... S4Р1 машинного цикла, разрешает выборку байта данных из ПЗУ, который затем поступает на линии порта Р0 и вводится в микроконтроллер. В качестве регистра RG рекомендуется использовать восьмиразрядный параллельный регистр - защелку типа ИР22. Следует особо подчеркнуть, что на вывод EA ВЕ31 должен быть подан низкий уровень напряжения. Рис. 4.15. Временная диаграмма работы при обращении к ВПП В некоторых МПС, рассчитанных на обработку больших массивов данных, РПД может оказаться недостаточно. В этом случае возникает необходимость использования внешнего оперативного запоминающего устройства (ОЗУ), которое может быть подключено к МК48 так, как это показано на рис. 4.16. Рис.4.16. Функциональная схема подключения ВПД к МК48 При этом максимальный объем ОЗУ, подключаемый к МК48, может составлять не более 256×8 бит. Объем ВПД, подключаемой к МК51, может достигать 64 Кбайт. На рис. 4.17 приведена электрическая схема подключения ОЗУ емкостью 32К×8 к МК51. Рис. 4.17. Электрическая схема подключения ВПД к МК51 Обращение к ВПД возможно только с помощью команд MOVX. Команды MOVX @Ri, A и MOVX A, @Ri формируют восьмиразрядный адрес, который выдается на ОЗУ через порт Р0. Команды MOVX @DPTR, A и MOVX A, @DPTR формируют 16-ти разрядный адрес, младший байт которого выдается через порт Р0, а старший - через порт Р2. Так же как и при работе с ВПП, байт адреса, выдаваемый через порт Р0, должен быть зафиксирован во внешнем регистре по отрицательному фронту сигнала ALE, т.к. в дальнейшем линии порта Р0 используются для чтения или записи информации в/из МК51. При этом чтение информации стробируется сигналом RD, формируемым ВЕ51, а запись - сигналом WR. На рис. 4.18 показана временная диаграмма работы МК51 в режимах обмена данными с ВПД. Рис. 4.18. Временная диаграмма обмена МК51 с ВПД 4.3.2. Расширение каналов ввода/вывода информации Как уже указывалось выше число линий ввода/вывода МК-51 во многих реальных применениях оказывается недостаточным. Для расширения каналов ввода/вывода обычно используют такие стандартные схемотехнические приемы как сканирование матрицы датчиков, опрос группы канальных приемо - передатчиков с тремя состояниями на выходе, мультиплексирование входных данных, стробируемый параллельный вывод информации, использование быстродействующего последовательного канала связи и т.д. В качестве примера расширения числа линий ввода информации рассмотрим фрагмент схемы, приведенной на рис. 4.19. Микросхемы D1 и D2 представляют собой сдвоенные мультиплексоры 4 в 1 типа КП2 (КП12) и могут передавать информацию от 16 двоичных датчиков на четыре линии порта Р1 (Р1.0...Р1.3) МК51. Выводы Р1.4 и Р1.5 используются для выбора группы, состоящей из 4 - х датчиков, опрашиваемых в данный момент времени. Так как нагрузочная способность выходных буферов портов ввода/вывода невысока, то рекомендуется использовать буферные схемы при подключении значительной нагрузки. В рассматриваемом примере эту роль играют инверторы D3. При этом вносимая ими инверсия легко корректируется программным способом. Рис. 4.19. Схема расширения каналов ввода информации Расширение каналов вывода информации обычно достигается за счет использования нескольких регистров, стробируемых различными синхросигналами, либо за счет использования последовательного канала связи. На рис. 4.20 приведен фрагмент схемы с параллельным выводом информации. Рис. 4.20. Схема расширения каналов вывода информации Строго говоря, схема на рис. 4.20 реализует параллельно - последовательный вывод информации, т.к. 6 - ти разрядные данные устанавливаются на выходах параллельных регистров D5, D6 последовательно во времени, по мере подачи на их тактовые входы стробирующих импульсов, вырабатываемых на выходах Р1.6 и Р1.7. Разрядность выводимой информации в рассматриваемом примере легко может быть увеличена до 24 бит, если стробирующие импульсы формировать с помощью дешифратора 2 в 4. При этом адресные входы дешифратора следует подключить к выводам Р1.6 и Р1.7, а его выходы - тактовым входам соответствующих параллельных регистров. При последовательном выводе информации (рис. 4.21) байт данных записывается в буфер данных последовательного порта, работающего в режиме 0. Эти данные выводятся на выход RXD (альтернативная функция вывода Р3.0) в последовательном коде. Вывод данных синхронизируется по выходу TXD (альтернативная функция вывода Р3.1). Эти выходы связаны с соответствующими входами сдвигового регистра типа ИР8, где и осуществляется преобразование последовательного кода в параллельный. Рис. 4.21. Схема последовательного вывода информации Как следует из рассмотренных примеров, комбинируя те или иные методы опроса датчиков и вывода информации можно достаточно легко организовать требуемое число каналов ввода/вывода в МПС. Путем подключения специализированных БИС, входящих в микропроцессорный комплект К580, в МК системе могут быть реализованы различные вспомогательные функции: связь с дисплеем и клавиатурой, многоуровневая программируемая система прерываний, сложная система таймирования, связь с телеграфно-телефонной линией передачи информации т.д. С использованием средств мультиплексирования адресов/данных можно под управлением программы создать МК системы любых требуемых состава и назначения. 5. Программная реализация типовых вычислительных процедур 5.1 Типовые структуры схем алгоритмов обработки данных В процессе разработки прикладных программ для микропроцессорных систем, построенных на МП К580, и микроконтроллерных систем, построенных на МК48 и МК51, наибольшую сложность представляет разработка программ вычислительных процедур, связанных с ограничениями, накладываемыми особенностями организации МП и МК. К ним относятся: • отсутствие в системе команд МП эффективных и часто используемых операций, таких как умножение и деление (кроме МК51); • малоразрядный формат данных и, следовательно, низкая точность их обработки; • ограниченный диапазон представления данных из-за отсутствия команд обработки чисел с плавающей запятой; • отсутствие операций десятичной арифметики. Эти ограничения не являются непреодолимыми, однако способы их преодоления являются во многих случаях довольно сложными. В настоящее время разработано значительное количество типовых вычислительных процедур, некоторые из которых будут рассмотрены ниже. Прежде чем перейти к рассмотрению типовых вычислительных процедур полезно изучить типовые узлы схем алгоритмов, которые широко используются в программах обработки данных. На рис.5.1…рис.5.6 представлены типовые узлы схем алгоритмов, которые широко используются в программах обработки данных. Показанная на рис.5.1 дихотомическая (разделенная на две части) структура если - то - иначе применяется в тех случаях, когда необходимо реализовать программный переход к одной из двух вычислительных процедур в зависимости от выполнения некоторого проверяемого условия. Рис.5.1 Структура если - то - иначе Структура если – то (рис.5.2) является упрощением предыдущей и используется в тех случаях, когда необходимо реализовать или не реализовывать одну вычислительную процедуру в зависимости от проверяемого условия. Рис.5.2. Структура если – то Структура делай – пока (рис.5.3) используется для проверки условия окончания цикла. Рис.5.3. Структура делай – пока Представленная на рис.5.4 структура повторяй - до - того как аналогична предыдущей, но порядок следования операторов здесь иной: процедура выполняется до проверки условия. Рис.5.4. Структура повторяй – до – того как Структура, процесс – пока приведенная на рис.5.5 представляет собой объединение двух предыдущих структур и позволяет проводить обработку данных по двум независимым процедурам. Рис.5.5. Структура, процесс – пока На рис.5.6 показана структура делай - в - зависимости – от, с помощью которой осуществляется выбор действия при многозначных решениях и которая используется для замены цепочек структуры если - то – иначе. Рис.5.6. Структура делай - в - зависимости – от Все перечисленные структуры в различных комбинациях встречаются в алгоритмах выполнения типовых вычислительных процедур, а их грамотное использование в программах определяет эффективность вычислений. 5.2 Приемы программирования Для программирования МП и МК необходимо знать состав команд, быть хорошо знакомым с назначением и расположением регистров, т.е. знать архитектуру микро-ЭВМ. Этапы составления программы должны выполняться в следующей последовательности: 1. Определение и анализ задачи; 2. Составления блок схемы алгоритма решения в общем виде и машинного алгоритма; 3. Написание программы на языке Ассемблера; 4. Трансляция программы в машинные коды; 5. Отладка программы (поиск и устранение ошибок); 6. Документирование программы. Сформулируем общие требования, предъявляемые к программам, составленным на языке Ассемблера. В общем виде любая команда на языке Ассемблера записывается следующим образом: Метка: Операция Данные; Комментарий Метка используется для обозначения адреса ячейки памяти, в которой хранится данная команда. Она может состоять из шести символов, не должна включать знаков пунктуации и пробелов, причем первым символом должна быть буква. Метка всегда определяется двоеточием и является необязательным элементом команды. Она применяется только при необходимости. Операция является обязательным элементом команды. Она представляет собой мнемоническую запись из двух – четырех букв, которые указывают на характер выполняемых действий, например: HLT – мнемоническое обозначение команды останов МП К580. Данные – часть команды, в которой может размещаться одно или два восьмиразрядных слова в зависимости от типа команды (адрес ячейки памяти, адрес порта ввода- вывода, непосредственные данные). Комментарий отделяется от команды точкой с запятой. Комментарием является запись облегчающая понимание назначения команды. Комментарий является необязательной частью команды. Тем не менее, рекомендуется снабжать команды программы комментариями, которые помогают определить роль команды в алгоритме решения задачи. Следующим шагом в разработке программы является ее трансляция в машинные коды. Обычно эта задача решается с использованием специального ПО – кросс-средств, которые разрабатываются для каждого типа микропроцессора и микроконтроллера отдельно. Однако эта задача может быть решена и вручную. При ручном методе трансляции рекомендуется выполнить следующую последовательность действий: 1. Находим КОп каждой мнемоники в таблице команд; 2. Определяем операнды (данные и адреса), задавшись начальным адресом ячейки памяти (ЯП), где будет располагаться первая команда программы; 3. Установим адреса ЯП в последовательности каждой команды и операнда. Процесс отладки программы предназначен для поиска и устранения ошибок, и проводится либо на реальной МП системе, либо на ее эмуляторе. В систему вводится программа с известными данными, и полученные результаты сравниваются с эталоном. Как правило, выполняется несколько тестов. Последним этапом программирования является документирование. На этом этапе составляется ее описание, указывающее в какой последовательности должны выполняться операции, приводятся алгоритмы выполнения программы, составляются списки, данные, адреса используемые подпрограммы и комментарии. Сложные программы требуют тщательно разработанной документации. 5.3 Примеры программ обработки данных в МП К580 5.3.1 Примеры использования команд передачи данных Пример 5.1. Записать число 05H в регистр A: MVI A, #05H ; загрузка регистра A  05H Пример 5.2. Записать число 4856H в пару регистров BC: LXI B, #4856H ; загрузка пары регистров BC  4856H Пример 5.3. Загрузить в регистр указателя стека операнд 0BA3H: LXI SP, #0BA3H ; загрузка указателя стека SP  0BA3h Пример 5.4. Записать в память содержимое аккумулятора A по адресу 0910H: STA 0910H ; запись в память содержимого ;аккумулятора по адресу 0910H 5.3.2. Примеры использования арифметических и логических команд Пример 5.5. Сложить содержимое аккумулятора А с содержимым регистра Н: MVI A, #3BH ;загрузка регистра A  3Bh MVI H, #25H ;загрузка регистра H  25h ADD H ;сложение содержимого регистра ;аккумулятора A и содержимого ;регистра H, A  A+H Пример 5.6. Вычесть из содержимого аккумулятора содержимое ячейки памяти, адрес которой содержится в регистровой паре HL. LXI H, #0825H ; загрузка в регистровую пару HL адреса ; ячейки памяти HL  0825 H MVI A, #03H ;загрузка регистра A  03h MOV M, A ;запись в ячейку памяти, адрес которой ;0825H, содержимого аккумулятора ;M  A MVI A, #60H ;загрузка регистра A  60h SUB M ;вычесть из содержимого аккумулятора ;содержимое ячейки памяти, адрес ;которой указан в паре регистров HL ;A A-(M) Пример 5.7. Сравнить содержимое аккумулятора A=1Bh с содержимым регистра L= 0Bh. MVI A, #1BH ;загрузка регистра A  1Bh MVI L, #0BH ;загрузка регистра L  0Bh CMP L ;сравнение содержимого аккумулятора A ;с содержимым регистра L Пример 5.8. Выполнить операцию “Исключающее ИЛИ” над содержимым аккумулятора A=33h и содержимым регистра B=52h. MVI A, #33H ;загрузка регистра A  33h MVI B, #52H ;загрузка регистра B  52h XRA B ;“Исключающее ИЛИ” с содержимым ;регистра B A  A  B Пример 5.9. Сдвинуть содержимое аккумулятора A=31h на 3 разряда влево. MVI A, #1FH ;загрузка регистра A  1Fh RLC ;циклический сдвиг содержимого ;аккумулятора влево ; RLC ;циклический сдвиг RLC ;циклический сдвиг 5.3.2. Примеры использования команд ветвления и переходов Пример 5.10. Условный переход по адресу 2021H, если содержимое аккумулятора равно 0. MVI A, #B4Н ;загрузка в аккумулятор B4H A  B4H XRA A ;очистка аккумулятора JZ 2021H ;Условный переход по адресу 2021Н, ;записанному во втором и третьем байтах ;команды, если содержимое аккумулятора ;равно 0 Пример 5.11. Условный переход к команде, которая расположена в ячейке памяти с адресом 2110Н при условии, что в результате выполнения операции сложения установился бит переноса. MVI A, #FFH ;загрузка в аккумулятор FFН ADI 80Н ;сложение содержимого аккумулятора ;с содержимым второго байта команды ; JC 2110Н ;условный переход по адресу 2110Н, ;записанному во втором и третьем байтах ;команды, если содержимое аккумулятора ;равно 0 Пример 5.12. Программа записи чисел от 0 до 4 в ячейки памяти, расположенные последовательно, с адресами от 1010 до 1014 с использованием циклов. LXI H, 1010Н ;загрузка в пару регистров HL адреса ; первой ячейки памяти XRA A ;сброс аккумулятора в 00Н LOOP MOV M, A ;запись в ячейку памяти, адрес которой ;1010Н, содержимого аккумулятора INX H ;инкремент пары регистров HL INR A ;инкремент аккумулятора CPI 05H ;сравнить A=05h? Если да, то флаг Z ;установлен в 1. JNZ LOOP ;перейти по метке LOOP, если Z=0 HLT ;остановить МП 5.4 Примеры программ обработки данных в МК48 5.4.1 Примеры использования команд передачи данных Пример 5.13. Записать в РПД в ячейки с адресами 41 и 42 число 1C3FH: LOAD: MOV R0, #41 ; загрузка в R0 адреса РПД MOV @R0, #1CH ; запись в РПД числа 1CH INC R0 ; увеличение адреса РПД MOV @R0, #3FH ; запись в РПД числа 3FH Пример 5.14. Переслать текущее содержимое таймера в R5 без потери содержимого аккумулятора: XCH A, R5 ; обмен R5 и аккумулятора MOV A, T ; пересылка содержимого таймера в ; аккумулятор XCH A, R5 ; обмен R5 и аккумулятора Пример 5.15. Передать содержимое регистров банка 0 в ВПД, начиная с адреса 50 H: MOV A, #10000B ; выбор банка регистров 0 MOV PSW, A ; MOV R0, #50H ; установка начального адреса ВПД MOV R1, 0 ; установка начального адреса банка ; регистров MOV R@, #8 ; установка счетчика циклов LOOP: MOV A, @R1 ; пересылка байта из регистра в MOVX @R0, A ; ВПД через аккумулятор INC R0 ; увеличение адреса ВПД INC R1 ; увеличение адреса банка регистров DJNZ R2, LOOP ; продолжить, если переданы не все ; регистры Пример 5.16. Вывести байт из порта 1 и передать его в порт 2: MOV A, #0FFH ; настройка порта P1 на ввод OUTL P1, A ; IN A, P1 ; ввод байта из порта P1 OUTL P2, A ; вывод байта в порт P2 5.4.2. Примеры использования команд арифметических операций Пример 5.17. Прибавить к содержимому регистра R0 в банке 0 содержимое пяти ячеек памяти данных, с последовательно нарастающими адресами начиная с ячейки с адресом 46H. Результат передать в регистр R0: SEL RB0 ; выбор банка 0 РОН MOV R1, #46H ; задание начального адреса РПД MOV R2, #05H ; установка счетчика суммирующих ; чисел MOV A, R0 ; пересылка в аккумулятор ; содержимого R0 CICL ADD A, @R1 ; прибавление очередного числа из ; РПД INC R1 ; формирование адреса очередного ; числа DJNZ R2, CICL ; декремент R2 и условный переход, ; если R2≠0 MOV R0, A ; передача суммы чисел из ; аккумулятора в R0 Пример 5.18. Вычесть из содержимого ячейки ВПД с адресом 5 содержимое регистра R0: Для вычитания 8-разрядных чисел без знака может быть использовано выражение , где - поразрядная инверсия Y. MOV R1, #05H ; установка адреса ВПД MOVX A, @R1 ; пересылка в аккумулятор ; содержимого ячейки ВПД CPL A : инверсия аккумулятора ADD A, R0 ; сложение CPL A ; инверсия аккумулятора MOVX @R1, A ; пересылка аккумулятора в ВПД Возникновение переноса C = 1 в процессе выполнения операции сложения свидетельствует о том, что полученный результат – отрицательное число, представленное в дополнительном коде. Пример 5.19. Сложить двоично-десятичные числа, расположенные в A и R7: ADD A, R7 ; сложение DA A ; коррекция результата Пример 5.20. Инкрементировать содержимое ячеек РПД по адресам 10 – 18: MOV R0, 10 ; загрузка в R0 начального адреса MOV R3, #(18-10+1) ; загрузка в R3 числа ячеек LOOP INC @R0 ; инкремент ячейки РПД INC R0 ; инкремент адреса РПД DJNZ R3, LOOP ; декремент R3 и повтор пока R30 5.4.3 Примеры использования команд логических операций Пример 5.21. Маскирование при вводе. Ввести в регистр R7 информацию из линий 0, 1, 3, 4 и 7 порта 1: IN A, P1 ; ввод байта из порта P1 ANL A, #1001101B ; маскирование MOV R7, A ; передача Пример 5.22. Ввести в аккумулятор данные из порта 2 и выделить требуемые биты по маске, находящейся в R0: IN A, P2 ; ввод байта из порта P2 ANL A, R0 ; маскирование Пример 5.23. Настроить биты 0 – 3 порта 1 на ввод: ORL P1, #0FH ; установка битов P1.0 – P1.3 Пример 5.24. Очистить биты 4 – 7 порта 2: ANL P2, #0FH ; сброс битов P2.4 – P2.7 Пример 5.25. Выполнить логический сдвиг двухбайтового слова, расположенного в R2 и A: RLC A ; сдвиг младшего байта XCH A, R2 ; обмен аккумулятора и R2 RLC A ; сдвиг старшего байта XCH A, R2 ; обмен аккумулятора и R2 Пример 5.26. Выдать содержимое аккумулятора в последовательном коде через нулевую линию порта 1, оставляя без изменения остальные биты порта. Передачу вести, начиная с младшего бита: MOV R1, #8 ; установка счетчика битов LOOP: JB0 ONE ; переход, если бит A0 равен 1 ANL P1, #11111110B ; сброс P1.0 JMP NEXT ; безусловный переход ONE: ORL P1, #1 ; установка P1.0 в 1 JMP NEXT ; избыточная команда для ; выравнивания времени передачи ; 0 и 1 NEXT: RRA ; сдвиг аккумулятора вправо DJNZ R1 LOOP ; (подготовка к передаче ; очередного бита) 5.4.4 Примеры использования команд передачи управления и команд управления режимом МК Пример 5.27. Передать управление по метке LL, если переключатель банка регистров (PSW.4) установлен: MOV A, PSW ; передача PSW в аккумулятор JB4 LL ; переход по метке LL, если A4=1 Пример 5.28. Передать по метке LOOP, если счетчик событий достиг состояния 64: MOV A, T ; передача содержимого счетчика в ; аккумулятор JB6 LOP ; передача по метке LOP, если A6=1 Пример 5.29. Осуществить переход из банка 0 ПП к программе с именем ROUT, расположенной в банке 1 ПП: SEL MB1 ; установка флага DBF JMP ROUT ; переход к программе ROUT Пример 5.30. При поступлении на вход T0 последовательности из восьми нулевых импульсов установить выход P2.7: MOV R5, #8 ; загрузка в R5 числа импульсов ONE: JT0 ONE ; ожидание сигнала 0 на входе T0 ZERO: JT0 SKIP ; ожидание сигнала 1 на входе T0 SKIP: DJNZ R5, ONE ; повторять пока не поступит ; восьмой импульс ORL P2, #80H ; установка 1 на выходе P2.7 5.5 Примеры программ обработки данных в МК51 5.5.1 Примеры использования команд передачи данных Пример 5.31. Передать содержимое буфера УАПП в РПД по косвенному адресу из R0: MOV @R0, SBUF ; передача принятого по ; последовательному каналу ; байта в РПД Пример 5.32. Загрузить в указатель данных начальный адрес 7F00H массива данных, расположенного в ВПД: MOV DPTR, #7F00H ; загрузка начального ; значения указателя данных Пример 5.33. Загрузить управляющее слово в регистр управления таймером: MOV TCON, #00000101B ; загрузка управляющего ; слова Пример 5.34. Сбросить все флаги пользователя (область РПД с адресами 20H – 2FH): MOV R0, #20H ; задание начального адреса ; области флагов MOV R1, #0FH ; счетчик (длина области ; флагов) LOOP: MOV @R0, #0 ; сброс одного байта INC R0 ; переход к следующему байту DJNZ R1, LOOP ; цикл Пример 5.35. Запомнить в ВПД содержимое регистров банка 0. Начальный адрес ВПД – 5000H: MOV PSW, #01000B ; выбор банка регистров 1 MOV R0, #8 ; счетчик MOV DPTR, #5000H ; определение начального ; адреса ВПД MOV R1, #0 ; определение начального ; адреса РПД LOOP: MOV A, @R1 ; загрузка текущего байта MOVX @DPTR, A ; передача из аккумулятора в ; ВПД INC R1 ; переход к следующему ; регистру INC DPTR ; увеличение адреса DJNZ R0, LOOP ; если R0>0, то повторять Пример 5.36. Передать данные через последовательный порт со скоростью 500 бит/с. Частота синхронизации составляет , а бит SMOD=0: CLR TR1 ; останов таймера Т/С 1; MOV TH1, #0DBH ; автозагружаемое значение ; для получения; скорости ; 500 бит/с, MOV SCON, #11011100B ; установка режима 3 УАПП MOV TMOD, #00100000B ; установка режима 2 Т/С 1 SETB TR1 ; запуск таймера; LABEL: JNB T1, LABEL ; ожидание окончания ; передачи CLR T1 ; очистка флага передачи MOV SBUF, A ; выдача 9 бит данных в ; последовательный порт Флаг прерывания передатчика Т1 регистра SCON устанавливается аппаратно в конце времени выдачи 8-го бита в режиме 0 или в начале стоп бита в других режимах. 5.5.2 Примеры использования команд арифметических операций Пример 5.37. Сложить два двоичных многобайтных числа. Оба слагаемых располагаются в РПД, начиная с младшего байта. Начальные адреса слагаемых заданы в R0 и R1. Формат слагаемых в байтах задан в R2: CLR C ; сброс переноса LOOP: MOV A, @R0 ; загрузка в аккумулятор ; текущего байта первого ; слагаемого ADDC A, @R1 ; сложение байт с учетом ; переноса MOV @R0, A ; размещение байта результата INC R0 ; увеличение указателей INC R! ; DJNZ R2, LOOP ; цикл, если не все байты ; просуммированы При сложении чисел без знака на переполнение укажет флаг C, а в случае сложения чисел со знаком – флаг OV. Пример 5.38. Умножить целое двоичное число произвольного формата на константу 173. Исходное число размещается в РПД, адрес младшего байта находится в регистре R0. Формат числа в байтах хранится в регистре R1: MOV A, #0 ; сброс аккумулятора LOOP: ADD A, @R0 ; загрузка множимого MOV B, #173 ; загрузка множителя MUL AB ; умножение MOV @R0, A ; запись младшего байта ; частичного произведения INC R0 ; увеличение адреса MOV A, B ; пересылка старшего байта ; частичного произведения в ; аккумулятор XCH A, @R0 ; предварительное ; формирование очередного ; байта произведения DJNZ R2, LOOP ; цикл, если не все биты ; исходного числа умножены ; на константу Полученное произведение размещается на месте исходного числа и занимает на один байт больше. Пример 5.39. Перевести двоичное число, содержащееся в аккумуляторе в двоично-десятичную систему. При таком преобразовании может получиться трехразрядное двоично-десятичное число. Старшая цифра будет размещена в регистре R0, а две младшие в аккумуляторе. MOV B, #100 ; загрузка B для вычисления ; количества сотен в числе DIV AB ; определение старшей цифры MOV R0, A ; пересылка в R0 старшей ; цифры XCH A, B ; пересылка остатка исходного ; числа в аккумулятор MOV B, #10 ; загрузка B для вычисления ; количества десятков в числе DIV AB ; определение числа десятков SWAP A ; размещение числа десятков ; в старшей тетраде A ADD A, B ; подсуммирование остатка в ; A обе младшие цифры числа 5.5.3 Примеры использования команд логических операций Пример 5.40. Установить биты 0 – 3 порта 1: ORL P1, #00001111B ; установка P1.0 – P1.3 в 1 Пример 5.41. Сбросить биты 0, 2, 6 порта P2: ANL P2, #10111010B ; сброс битов 0, 2, 6 порта P2 Пример 5.42. Выбрать нулевой регистровый банк: ANL PSW, #11100111B ; сброс битов RS1 и RS0 Пример 5.43. Проинвертировать биты порта 1, соответствующие единичным битам аккумулятора: XRL P2, A ; исключающее ИЛИ порта P2 ; и аккумулятора Пример 5.44. Проинвертировать биты 7, 6, 5 порта 0: XRL P0, #11100000B ; исключающее ИЛИ порта P0 ; и константы Пример 5.45. Проинвертировать биты 0 – 3 аккумулятора: XRL A, #0FH ; исключающее ИЛИ ; аккумулятора и константы 6. Применение микропроцессорных информационно-управляющих систем на железнодорожном транспорте 6.1. Классификация микропроцессорных информационно-управляющих систем на железнодорожном транспорте В связи с широким развитием микроэлектронной элементной базы на железнодорожном транспорте ведётся разработка и внедрение различных микропроцессорных информационно-управляющих систем (МИУС). Внедрение МИУС позволяет улучшить сервис и повысить качественный уровень управления движением поездов за счет расширения функциональных возможностей, быстрого сбора, обработки и детального анализа информации. МИУС нашли применение практически во всех отраслях железнодорожного транспорта. К основным таким системам относятся: 1) автоматизированные системы управления и контроля движения поездов; 2) автоматизированные системы управления расформированием составов на сортировочных станциях; 3) автоматизированные системы диспетчерского контроля; 4) информационные системы обслуживания пассажиров. 6.2 Автоматизированные системы управления и контроля движения поездов Управление движением поездов является комплексным технологическим процессом, состоящим из множества частных технологических процессов, в реализации которых участвует большое количество людей, технических объектов и систем, различных предприятий и организаций. Автоматизация управления и контроля движения поездов осуществляется микропроцессорными системами железнодорожной автоматики и телемеханики (ЖАТ), которые составляют один из элементов железнодорожного транспортного комплекса. Современный этап развития систем ЖАТ характеризуется широким использованием для их построения микроэлектронной и микропроцессорной техники. Это позволяет не только существенно расширить функциональные возможности по сравнению с релейными системами, но и требует разработки новых принципов их построения и технической реализации. Основными автоматизированными системами управления и контроля движения поездов являются: 1) микропроцессорные системы автоблокировки; 2) микропроцессорные и компьютерные системы электрической централизации; 3) системы диспетчерского управления движением поездов; 4) микропроцессорные устройства контроля исправности подвижного состава; 5) микропроцессорные локомотивные системы обеспечения безопасности движения поездов; 6) автоматизированные комплексы для испытания и диагностирования узлов подвижного состава. Как показывает мировая практика, перспективным решением для повышения безопасности движения поездов и увеличения пропускной способности дороги является применение современных микропроцессорных систем централизации и автоблокировки, в первую очередь – на основных транспортных направлениях. К основным преимуществам микропроцессорных систем централизации, по сравнению с релейными системами, относятся более высокий уровень надежности, наличие встроенного диагностического контроля состояния аппаратных средств централизации и объектов управления и контроля, сокращение капитальных вложений и эксплуатационных затрат, ощутимые улучшения условий труда эксплуатационного персонала. Кроме того, возможность микропроцессорных систем протоколировать и архивировать информацию позволяют определять виновного и способствуют повышению производственной дисциплины и ответственности работников. Аналогичные выводы можно сделать и при рассмотрении систем интервального регулирования движения поездов на перегонах. Основной проблемой создания полностью электронных систем ЭЦ является обеспечение безопасности их функционирования для процесса движения поездов. Эффективные методы построения безопасных микроэлектронных систем были разработаны в конце 70-х – в 80-х годах, поэтому начало разработок систем ЭЦ на микропроцессорной основе относятся к этому времени. Все методы построения безопасных систем управления основаны на введении в устройства этих систем некоторой избыточности, которая позволяет исключать возможность появления или своевременно обнаруживать и парировать опасные отказы аппаратуры или сбои программных средств. С этой целью устройства микропроцессорной централизации (МПЦ) выполняют в виде двух- или трехкомплектных структур специализированных микроЭВМ, контрольные сигналы которых сравниваются между собой с помощью элементов, отвечающих требованиям безопасности движения поездов. При этом считается, что опасный отказ произойдет при одновременном одинаковом отказе двух (или трех) комплектов, вероятность этого события пренебрежимо мала. Такой подход обычно называют аппаратной избыточностью. При программной избыточности в одном микропроцессорном комплекте аппаратуры дважды решается каждая задача текущего управления. Разрешение выдачи управляющего сигнала принимается только в том случае, если результаты обоих решений идентичны. На железных дорогах России нашли применение нескольких компьютерных централизаций: системы ЭЦ-ЕМ на базе вычислительного комплекса УВК-РА (ОАО «Радиоавионика») с мажоритарной (трехкомплектной) структурой, системы Ebilock-950 (программная избыточность) и некоторых других. На зарубежных железных дорогах компьютерные и микропроцессорные централизации внедряются с начала 80-х годов. Опыт эксплуатации систем МПЦ показал их преимущества перед релейными системами. Тенденции развития микроэлектронных средств, снижения их стоимости, позволяют утверждать, что с течением времени электронные системы ЭЦ станут основными при оборудовании станций, а разработка релейных централизаций будет прекращена. Одним из перспективных направлений перехода на компьютерные средства в устройствах станционной автоматики является применение релейно-компьютерных или релейно-процессорных (гибридных) систем, в которых логические функции управления выполняются с помощью вычислительных средств, а непосредственное управление станционными объектами и функции обеспечения безопасности реализуются традиционными средствами на электромагнитных реле. Такой подход позволяет значительно расширить функциональные возможности централизаций, сократить объем материалоемкой аппаратуры и уменьшить сроки проектирования, строительства и монтажа устройств. Примером гибридной системы релейно-процессорной централизации (РПЦ) является система «Диалог-Ц». Эта система применяется на станциях, оборудованных любой системой релейной централизации, при этом появляется возможность поэтапной модернизации существующих релейных схем. При новом строительстве система "Диалог-Ц" позволяет сократить количество релейной аппаратуры в три - четыре раза по сравнению с блочной маршрутной централизацией. К системам диспетчерского управления движением поездов, или, как их часто называют, кодовым системам централизации относятся диспетчерская централизация (ДЦ) и станционная кодовая централизация (СКЦ). В этих системах на посту управления и в линейных пунктах управления установлены избирательные устройства, преобразующие управляющие и известительные приказы в коды, посылаемые по общей линейной цепи – каналу связи. В приемной аппаратуре эти коды расшифровываются и воздействуют на управляемые объекты или элементы индикации. Диспетчерская централизация применяется для управления из центрального поста (ЦП) стрелками и сигналами промежуточных станций, называемых линейными пунктами (ЛП). С одного ЦП можно управлять линейными пунктами одного или нескольких диспетчерских участков. ДЦ позволяет поездному диспетчеру (ДНЦ) руководить движением поездов на участке и непосредственно управлять стрелками и сигналами на ЛП без участия дежурных по соответствующим станциям. В комплекс устройств ДЦ обязательно входят автоблокировка (или другие устройства, обеспечивающие контроль свободности перегона) на перегонах, ЭЦ на станциях и аппаратура телемеханики. Современные системы ДЦ обладают способностью в автоматизированном режиме выполнять некоторые функции поездного диспетчера, анализировать поездную ситуацию и вырабатывать решения по ее оптимизации, поэтому они являются интеллектуальными экспертными системами. Функционально в состав автоматизированных систем диспетчерского управления должен входить ряд функциональных подсистем, информационно связанных между собой и дополняющих друг друга. Подсистема телемеханики, обладающая высокой информативностью, универсальностью, защищенностью сообщений и живучестью, является технической основой автоматизации диспетчерского управления. Для реализации единого подхода и обеспечения совместимости различных систем ДЦ вводится стандартизированный в рамках отрасли протокол обмена сообщениями между устройствами ЦП и ЛП, между отдельными устройствами на ЦП, между региональными и дорожным центрами управления перевозками. Представление информации в подсистеме телемеханики должно быть основано на принципах, обеспечивающих высокую достоверность передачи, безопасность с точки зрения движения поездов и других технологических процессов (для передачи ответственных сообщений), своевременность поступления сообщений. Эти требования могут быть реализованы обоснованным выбором методов модуляции и кодирования информации, скорости ее передачи по каналам связи, способов обработки, а также организации самих каналов связи, их структуры и протоколов работы. Стандартизированные интерфейсы пользователя (оператора). В настоящее время разработаны нормативные документы, регламентирующие построение пользовательских интерфейсов с точки зрения отображения информации и обработки графиков движения поездов. Подсистема обработки графиков движения поездов является одной из основных функциональных подсистем автоматизации диспетчерского управления, обеспечивающая планирование поездной работы участка, показывающая результаты этой работы и связывающая между собой системы диспетчерского управления смежных участков и дорог, а также их с системами верхнего уровня планирования и управления перевозками. Практически все системы ДЦ в той или иной степени содержат эту подсистему. Подсистема линейного уровня включает устройства ЛП, устанавливаемые на станциях. В современных системах ДЦ устройства ЛП интегрируются с управляющими устройствами ЭЦ. Для этого аппаратура ЛП строится на специализированных по показателям безопасности программируемых микропроцессорных контроллерах, выполняющих логические, а в ряде случаев и математические функции, в том числе выполняемые устройствами ЭЦ на станциях, автоблокировки на перегонах (при централизованном расположении аппаратуры) и другими исполнительными средствами. Такой подход позволяет не только сократить объем аппаратуры на станциях, но дает возможность решения ряда оперативных задач на месте их возникновения, использования более эффективных алгоритмов управления, уменьшения суммарной загрузки каналов и времени на обмен информацией. Для этого микропроцессорный контроллер устройств ЛП должен отвечать требованиям безопасности движения поездов, иметь достаточное количество выходов и входов, достаточный объем памяти и высокое быстродействие. Кроме того, контроллер должен иметь порты для увязки со станционными устройствами ДК, с каналами связи, обеспечивать возможность наращивания и комплексирования. Устройства ДЦ должны обеспечивать: управление из одного пункта стрелками и светофорами раздельных пунктов диспетчерского круга, контроль положения и свободности стрелок и изолированных участков, занятости перегонов и путей на станциях, индикацию показаний станционных светофоров, а также возможность передачи отдельных станций на резервное или автономное управление, автоматическую запись графика исполненного движения (ГИД) поездов. Кроме этого, к современным системам ДЦ предъявляются требования, связанные с выполнением функций ЭЦ, следовательно, обеспечения безопасности движения поездов – возможность изменения направления движения на перегоне при двусторонней автоблокировке и ложной занятости блок-участка, вспомогательного перевода стрелки при ложной занятости стрелочной секции, искусственной разделки маршрута. Команды ТУ, безопасность выполнения которых определяется только устройствами ДЦ и действиями оператора, называют ответственными командами. При ДЦ управление объектами на ЛП и контроль их состояния осуществляют по каналам связи с помощью телемеханических устройств. Аппаратура ЦП может располагаться на участковой станции, находящейся на границе или внутри данного диспетчерского круга, однако чаще устройства ЦП всех диспетчерских кругов концентрируют в помещении отделения дороги (рис. 6.1). Устройства ЦП включают в себя пульт поездного диспетчера П, табло Т с мнемосхемой участка, кодовые устройства передачи сигналов ТУ и приема сигналов ТС, а также средства фиксации графика исполненного движения. Устройства ЦП каналом связи КС соединены с линейными пунктами ЛП – станциями на участке. Канал связи используется для передачи сигналов ТУ и ТС. Если диспетчерский круг непосредственно примыкает к станции, на которой располагается центр диспетчерского управления, то в качестве канала связи используется физическая воздушная или кабельная линия. Если же центр диспетчерского управления расположен на значительном расстоянии от станций диспетчерских кругов, то используются системы передачи информации с уплотнением каналов. Рис. 6.1 Структура системы ДЦ Устройства ЦП алгоритмически и технически значительно сложнее устройств автоблокировки или ЭЦ, а функции, связанные с требованиями обеспечения безопасности, составляют сравнительно небольшую часть от общего комплекса функций устройств ЦП. Поэтому выполнение требований безопасности в устройствах ЦП традиционным путем – введением аппаратной или программной избыточности и специальных безопасных средств контроля функционирования – нецелесообразно, так как потребует значительных и неоправданных затрат. В то же время устройства ЦП, построенные на достаточно мощных компьютерах, как правило, эксплуатируются в условиях регулярного обслуживания и имеют развитую систему диагностики и прогнозирования технического состояния аппаратуры. Кроме того, режим непрерывного круглосуточного функционирования устройств ЦП требует применения в них постоянного резервирования, т.е. установки двух ПЭВМ, одна из которых является основной, а вторая – резервной. В этом случае появляется возможность ввода и передачи ответственных команд последовательно во времени двумя устройствами – основным и резервным, что исключает возможность ошибочного появления ответственной команды и ее выполнения в ЛП, где осуществляется контроль наличия этих команд по специальным меткам, вводимым в них. Для устройств передачи информации основным методом обеспечения безопасности является введение информационной избыточности в кодовые комбинации команд ТУ и ТС, т.е. передача их помехозащищенными кодами с минимальным кодовым расстоянием не менее dmin = 4. Дальнейшее повышение достоверности передачи информации ТУ достигается введением специальных меток в сообщения с ответственной командой и специальных процедур их обработки, введением квитирования каждой команды ТУ. Перечисленные мероприятия позволяют обеспечить высокую достоверность передачи информации, исключить возможность возникновения ошибок в принимаемой из каналов связи информации для всех сообщений ТУ и ТС, а не только для ответственных. Для обеспечения надежности каналов передачи информации предусматривается их кольцевая структура с основным и резервным каналом связи. В устройствах ЛП требования безопасности могут выполняться традиционными методами: дублированием аппаратуры с безопасным сравнением контрольных сигналов, программной избыточностью и т.д. Обработка и реализация ответственных команд должна допускаться только при полной исправности устройств ЛП с соответствующим логическим контролем. Автоматизация контроля технического состояния (диагностика) ответственных узлов ходовых частей вагонов и локомотивов в пути следования – одно из решений задачи повышения безопасности движения поездов. В настоящее время существует множество систем как отечественных так и зарубежных, позволяющих выявлять соответствующие неисправности подвижного состава в пути следования поезда. В настоящее время существует несколько систем контроля подвижного состава на ходу поезда: 1. ПОНАБ (аппаратура обнаружения перегретых букс в проходящих поездах); 2. ДИСК-БКВЦ (базовая подсистема контроля нагрева букс со встроенной подсистемой контроля заторможенных колес); 3. ДИСК-2 (микропроцессорная система комплексного контроля подвижного состава с использованием микро-ЭВМ); 4. КТСМ-01Д (комплекс технических средств по модернизации аппаратуры ДИСК-Б); 5. КТСМ-02 (базовый комплекс с подсистемами контроля нагрева букс и заторможенных колес с оригинальным силовым и напольным оборудованием). Система ПОНАБ работает на сети дорог более 30 лет. Она физически и морально устарела и уже не выпускается. В середине 80-х гг. ее стали менять на более совершенную аппаратуру ДИСК-БКВЦ. ДИСК-БКВЦ представляет собой комплексную систему контроля, в состав которой входят несколько подсистем для обнаружения дефектов различных узлов подвижного состава и централизации информации с линейных пунктов контроля. При этом были выявлены существенные недостатки, негативно влияющие на технические и эксплуатационные параметры. К основным можно отнести низкую помехозащищенность аппаратуры, обусловленную передачей по каналу связи информации в виде амплитудно-модулированного аналогового сигнала. Кроме того, использованный интерфейс не адаптирован к сетям передачи данных и централизации, применяемым на железных дорогах. Недостаточно высокие эксплуатационные показатели, сложность в настройке и обслуживании аппаратуры ДИСК-БКВЦ заставили разработчиков искать более совершенные технические средства для обнаружения перегретых букс. В 1986-1987гг инициативной группой авторов была разработана концепция микропроцессорной системы комплексного контроля подвижного состава с использованием микро-ЭВМ, которая была реализована в 1989-1991гг УО ВНИИЖТ и ПКБ «Деталь» (ПО «Фотон») в системе контроля 5-го поколения ДИСК-2. В ДИСК-2 использована микропроцессорная элементная база и типовые ПЭВМ с принтерами в качестве станционного оборудования. Применены оригинальные алгоритмы компьютерной обработки диагностической информации о состоянии подвижного состава, в том числе реализованы виртуальные педали для ДИСК2-К. Осуществлено измерение длины составов, идентификация ПС по числу осей, вагонов и длине поезда. В конце 90-х гг. в эксплуатацию была принята разработанная и выпускаемая НПЦ "Инфотэкс" (г. Екатеринбург) аппаратура контроля КТСМ-01 и в 2000 г. ее аналог КТСМ-01Д. Комплекс КТСМ-01 предназначен для модернизации находящейся в эксплуатации аппаратуры ПОНАБ-3, а КТСМ-01Д – модернизации аппаратуры ДИСК-Б. При этом замене подлежит часть перегонного оборудования и полностью станционное. Напольные камеры, датчики прохода осей и силовое оборудование перегонного поста сохраняются. Взамен станционного оборудования устанавливается аппаратура АРМ ЛПК. В 2001 г. принята в постоянную эксплуатацию аппаратура КТСМ-02, имеющая напольные камеры нового типа и ряд иных усовершенствований. КТСМ-02 является логическим продолжением развития приборов семейства «КТСМ» и представляет собой систему автоматического контроля, которая может включать одну или несколько подсистем обнаружения дефектов узлов и деталей подвижного состава (букс, колес, тормозов, габарита и т.д.). Основное назначение комплекса КТСМ-02 заключается в контроле дислокации подвижного состава на участке контроля с целью привязки сигналов к конкретным осям, подвижным единицам и контролируемым поездам, а также координации работы подключенных к нему подсистем и обеспечении информационного взаимодействия через систему централизации. Комплекс КТСМ-02 состоит из постового и напольного (рис. 6.2) перегонного оборудования, соединенного каналами связи с АРМ ЛПК и по сети СПД ОТН с АРМ ЦПК железной дороги. Рис. 6.2 Структурная схема комплекса КТСМ-02 В состав базового комплекса входят: • блок силовой коммутационный (БСК-1), обеспечивающий питанием все оборудования КТСМ-02 от основного и резервного источников; • микропроцессорный контроллер периферийный (ПК-05), выполняющий все «интеллектуальные» функции по сбору, обработке и передаче в АРМ ЛПК данных от перегонного комплекса КТСМ-02; • блок управления напольными камерами (БУНК); • напольные камеры малогабаритные (КНМ-05); • датчики счета осей (ДМ-88, ДМ-95, ПЭ-1 и др.); • датчик температуры наружного воздуха (ДТНВ); • концентратор информации КИ-6М; • АРМ ЛПК на базе персонального компьютера с принтером; • комплект монтажных принадлежностей; • комплект эксплуатационных документов. В качестве станционного оборудования комплекса КТСМ-02 используется персональный компьютер Информационное взаимодействие подсистем различного назначения в составе локальной сети комплекса КТСМ-02 организовано по протоколу CAN на скорости 500 Кбит/c, а постового перегонного оборудования со станционным по стыку «С1-ТЧ» методом частотной модуляции (V23 МСЭ-Т) со скоростью 1200 бит/с по 2-х проводной линии связи длиной до 30 км (ГОСТ 25007-81), по стыку «RS-232C» (С2, ГОСТ 23675-79) или «RS-485» – по выделенному каналу тональной частоты с 4-х или 2-х проводным окончанием со скоростью от 1200 до 19200 бит/с. КТСМ-02 комплектуются напольными камерами с креплением на рельс. Их конструкция и функциональные возможности коренным образом отличаются от применяемых в отечественной аппаратуре и исключают основные недостатки, имеющиеся у напольных камер аппаратуры ПОНАБ, ДИСК-Б. Таким образом, комплексы КТСМ-02 являются современными техническими средствами для обнаружения перегретых букс. Они отвечают требованиям, предъявляемым к аппаратуре, обеспечивающей безопасность движения поездов. Как показывает опыт эксплуатации комплексов КТСМ-02, наилучшие результаты достигаются при использовании режима централизованного контроля в составе автоматизированной системы контроля подвижного состава (АСК ПС). Она рекомендована ОАО «РЖД» для внедрения на дорогах. При централизованном контроле система обнаружения перегретых букс представляет собой распределенную структуру специализированных аппаратно-программных средств, объединенных сетью передачи данных. В этом режиме работы технические средства автоматизированной системы можно разделить на следующие функциональные составляющие: • оборудование линейных пунктов контроля (нижний уровень); • система передачи данных на базе концентраторов информации КИ-6М; • аппаратура центрального поста контроля АРМ ЦПК (верхний уровень). Структура автоматизированной системы контроля АСК ПС приведена на рис. 6.3. Рис. 6.3 Структура АСК ПС Аппаратура КТСМ-02 непосредственно подключается и функционирует в составе автоматизированной системы контроля АСК ПС с развитой сетью передачи данных и АРМов различного уровня. В случае централизованного контроля информационные блоки с линейных пунктов поступают в АРМ центрального поста. Здесь они анализируются, и принимается решение о степени аварийности подвижного состава. Перегретые буксы в поездах выявляются более эффективно, так как используются широкие информационные возможности программно-аппаратных средств АРМ ЦПК. Техническое состояние подвижного состава контролируется оператором центрального поста или сменным техником отдела вагонного хозяйства на основании информации, поступающей с линейных пунктов. При этом автоматизируются следующие функции: 1) учет показаний аппаратуры контроля перегрева буксовых узлов вагонов; 2) слежение за темпом нагрева букс на участке движения поезда; 3) принятие решения о необходимости остановки поезда для осмотра букс подвижного состава с предаварийным уровнем нагрева при повторяющихся показаниях; 4) получение дополнительной информации о поезде (графиковый номер, индекс); 5) дистанционная диагностика состояний аппаратуры и линий связи СПД; 6) поиск информации и доступ к архивным данным за любой промежуток времени (глубина архива 1 год); 7) вычисление статистических данных о работе устройств контроля за любой промежуток времени, позволяемый глубиной архива; 8) передача данных о нагреве букс поездному диспетчеру. Локомотивные устройства безопасности относятся к системам, которые предназначены для передачи сигнальной информации с пути на локомотив и обеспечения безопасности движения поездов путем автоматического снижения скорости или остановки поезда перед препятствием на пути при помощи тормозных средств. Совокупность сведений о свободности пути, вступлении поезда в зону сближения с препятствием и допустимой скорости движения является информацией о состоянии пути. Составной частью локомотивных устройств безопасности являются устройства автоматической локомотивной сигнализации (АЛС), предназначенные для передачи с пути и приема на локомотиве информации о состоянии пути. К числу АЛС непрерывного типа нового поколения, реализованных на основе применения микроэлектронной техники, относится система КЛУБ, предназначенная для повышения безопасности движения подвижного состава при выполнении поездной и маневровой работы за счет приема сигналов от путевых устройств АЛС и отображения принимаемой информации машинисту. С целью повышения надежности аппаратура КЛУБ предусматривает 100% активное резервирование своих функциональных модулей. Аппаратурой КЛУБ, начиная с 1994 г., было оборудовано свыше 1400 локомотивов и единиц моторвагонного подвижного состава. Однако с 1999 года по завершению успешных эксплуатационных испытаний началось серийное производство и внедрение более совершенного по объему выполняемых функций микропроцессорного варианта устройств КЛУБ – унифицированного комплексного устройства безопасности КЛУБ-У. Функциями системы КЛУБ-У, направленными на обеспечение безопасности движения поездов, являются: • автоматическое включение экстренного торможения при возникновении опасных ситуаций; • обеспечение экстренного торможения по приказу дежурного по станции, передаваемого по радиоканалу связи, независимо от действий машиниста; • исключение прохождения участка с запрещающим сигналом светофора без передаваемого по радиоканалу разрешения дежурного по станции; • исключение самопроизвольного движения локомотива (скатывания); • исключение несанкционированного выключения ЭПК; • непрерывный контроль состояния тормозной системы; • регулярный контроль бдительности машиниста; • контроль совместных действий машиниста и помощника машиниста при трогании поезда и движении к запрещающему сигналу светофора. К служебным функциям системы КЛУБ-У относятся: • прием и дешифрирование сигналов АЛСН и АЛС-ЕН; • учет категории поезда, типа тяги и длины блок - участков; • регистрация параметров движения в электронной памяти кассеты регистрации; • формирование сигналов достижения значений фактической скорости, равных 2, 10, 20 и 60 км/ч; • информирование машиниста о показаниях светофоров, числе свободных блок-участков впереди поезда, фактической скорости движения с точностью до 1 км/ч и допустимой скорости движения на данном участке пути, координатах местоположения локомотива с точностью до 30 м при помощи спутниковой навигации, расстоянии до контрольных точек (станции, переезда, моста, тоннеля, стрелки, светофора, токораздела, опасного места и др.), хранящихся в электронной карте блока электроники БЭЛ. Аппаратура системы КЛУБ-У имеет модульную структуру, в которой равноправные независимые модули взаимодействуют друг с другом посредством системной шины. Связь между модулями и с внешними блоками осуществляется по последовательному интерфейсу типа CAN. По интеллектуальному интерфейсу система КЛУБ-У может взаимодействовать с дополнительными устройствами безопасности САУТ и ТС КБМ, а также с системой УСАВП автоматического ведения поезда и другими локомотивными устройствами. В состав КЛУБ-У входят устройства, обеспечивающие взаимодействие локомотивных устройств безопасности со станционными устройствами по радиоканалу. В настоящее время широкое распространение получают автоматизированные комплексы для испытания и диагностирования узлов подвижного состава. Среди основных достоинств таких комплексов следует выделить снижение трудоемкости диагностического процесса, минимизацию участия оператора в процессе испытаний и повышение достоверности результатов диагностирования. Микропроцессорное устройство для контроля временных параметров токоприемников подвижного состава (УИВП) позволяет в автоматическом режиме производить запись информации о времени подъема и опускания полоза токоприемника из сложенного состояния до максимальной высоты подъема и сохранять информацию во встроенном накопителе информации. Накопленная информация передается в ЭВМ, где она анализируется программным обеспечением, и формируется результат диагностирования в виде протокола испытаний. Переносное устройство УИВП, структурная схема которого представлена на рис. 6.4, включает в себя датчик угловых перемещений (ДУЛ) и цифровой регистратор (ЦР), состоящий из измерительного усилителя (ИУ), аналого-цифрового преобразователя (АЦП), накопителя информации (НИ) и пульта управления (ПУ). Рис. 6.4 Структурная схема переносного устройства УИВП После проведения испытаний выход НИ подключается к стационарной ЭВМ для передачи и обработки полученной информации с последующей распечаткой протокола испытаний на принтере. В соответствии с техническим заданием, утвержденным МПС, ФГУП ВНИКТИ совместно с ОАО «ВЭлНИИ» был разработан технический проект на унифицированную микропроцессорную систему управления и диагностики (МСУД), предназначенную для использования на строящихся и проектируемых магистральных электровозах и тепловозах. Кроме того, система предназначена для модернизации эксплуатируемого тягового подвижного состава различных типов и серий. МСУД состоит из унифицированной и специализированной частей (рис. 6.5). Рис. 6.5 Структурная схема системы МСУД Специализированная часть системы является блочно-модульной, и ее состав зависит от конкретного типа локомотива. Унифицированная часть МСУД состоит из следующих конструктивно законченных функциональных частей: • блок центральный координирующий (БЦК); • дисплейный модуль (ДМ) со встроенной клавиатурой или координатно-указательным устройством; • измеритель температурный (ИТ); • блок управления локомотивом (БУЛ); • устройство энергонезависимое запоминающее (УЭНЗ); • программное обеспечение; • отладочные программно-аппаратные средства. МСУД обеспечивает бесконтактное управление электрической схемой локомотива, контроль режимов работы локомотивного оборудования, диагностику основных систем и узлов с выдачей информации машинисту о со­стоянии локомотивного оборудования, межсекционный обмен управляющей и диагностической информацией. МСУД построен по радиально-сетевому принципу. Идеология построения МСУД предусматривает независимость каждой из его составляющих в части выполнения функций управления от других устройств системы, т.е. отказ любого из блоков системы не влияет на работоспособность других устройств, за исключением функций диагностики и автоведения, что не оказывает влияния на живучесть локомотива в целом. Применение МСУД позволит: • существенно сократить номенклатуру локомотивного оборудования с одновременной его унификацией для различных типов и серий; • повысить технический уровень оснащенности локомотивов за счет применения современных средств микропроцессорной техники; • применить перспективные структурные решения, позволяющие совместить функции управления и диагностики, реализовать модульные принципы построения локомотивов; • реализовать новые, более совершенные алгоритмы управления, регулирования и диагностики оборудования локомотивов. Учеными и специалистами Отраслевого центра внедрения новой техники и технологий (ОЦВ), ВНИИЖТа, МИИТа и предприятий ОАО «РЖД» разработан комплекс интеллектуальных систем автоматизированного управления движением пригородных, пассажирских и грузовых поездов. Основой таких систем является бортовая унифицированная микропроцессорная система ведения поезда. Она представляет собой сложный аппаратно-программный комплекс, построенный по модульному принципу и обеспечивающий автоматизированное энергооптимальное управление режимами движения (тяга, переход на выбег, повторное включение тяги или торможение и т.д.) на основе оптимальных расчетов в реальном времени. Система позволяет с высокой точностью выполнять график движения, выбирать рациональные с позиций экономии электроэнергии и выполнения требований безопасности режимы движения и тем самым облегчает труд машиниста. Органичной составной частью системы автоведения является регистратор параметров движения и автоведения (РПДА), специально разработанный для измерения и регистрации во время поездки данных о 38 параметрах движения и управления локомотивом. Собранная информация сохраняется на съемном накопителе. Ее обработка производится на автоматизированном рабочем месте (АРМ РПДА), поставляемом в локомотивные депо при внедрении системы в эксплуатацию. Анализ расшифрованных данных позволяет диагностировать техническое состояние локомотива, оценивать результаты поездки, действия машиниста, принимать решения по устранению недостатков, совершенствованию расписания движения, проведению необходимых ремонтов и т.п. В настоящее время системой автоведения оборудован практически весь парк электропоездов и более 1000 электровозов, а регистратором параметров движения – около 1000 электропоездов и столько же локомотивов. Комплексы систем автоведения и РПДА можно внедрять на всех типах электровозов постоянного и переменного тока, а также на дизель-поездах. Полученные результаты применения систем автоведения и РПДА стали основой дальнейшего развития новых технологий и интеллектуальных устройств автоматизированного управления движением поездов. Так, в 2002 году был разработан и передан в эксплуатацию на Московскую железную дорогу речевой информатор для оповещения пассажиров на платформе непосредственно с прибывающего электропоезда (РИДОП) о пути прибытия, маршруте следования и остановках. Это устройство повышает качество обслуживания и уровень безопасности движения; сегодня оно внедряется и на других железных дорогах. Применение систем автоведения, а также разработка системного интерфейса, обеспечивающего сопряжение существующих локомотивных устройств безопасности, позволили создать единую комплексную систему управления и обеспечения безопасности движения на тяговом подвижном составе (ЕКС). Эта система объединяет и органически увязывает функционирование автоведения (УСАВП), системы автоматического управления торможением поезда (САУТ), комплексного локомотивного устройства безопасности (КЛУБ) и телемеханической системы контроля бодрствования машиниста (ТСКБМ) (рис. 6.6). Рис. 6.6 Структура ЕКС Опыт эксплуатации ЕКС подтвердил эффективность комплексного использования приборов автоведения и безопасности, интегрированных в единую систему автоматизированного управления поездом, обеспечивающую безопасность движения и предупреждение возможных ошибок машиниста. Система не допускает опасных режимов ведения поезда, исключает использование тягового и тормозного оборудования локомотивов с запредельными нагрузками. ЕКС предназначена для установки на всех сериях электровозов и электропоездов. Она допускает возможность наращивания и других функций, повышающих эффективность эксплуатации локомотивов и уровня их технического состояния. В серийный ряд микропроцессорных систем автоведения входит также разработанная коллективом ученых ВНИИЖТа и специалистов ОЦВ интеллектуальная система автоматизированного вождения соединенных поездов с распределенной тягой по длине состава (ИСАВП-РТ). Она позволяет одновременно управлять распределенными в поезде локомотивами (двумя и более). С 2004 года Отраслевой центр совместно с железными дорогами приступил к внедрению в эксплуатацию этих систем. Их функциональные возможности обеспечивают безопасное вождение поездов с массой до 18 тыс. т и длиной до 780 осей. Особенно эффективны эти системы будут на тех направлениях, где исчерпаны резервы пропускной способности и грузовые перевозки целесообразно осуществлять соединенными поездами, а также при наличии «окон» в период путевых ремонтных работ. Интеллектуальные системы автоматизированного управления движением поезда входят в состав унифицированного комплекса кабины машиниста (УНИКАМ), который также разработан в ОЦВ. Им в настоящее время оборудовано более 100 электровозов ЧС2К и ВЛ10М. Комплекс объединяет эргономичный пульт с многофункциональным цветным монитором, приборы безопасности САУТ и КЛУБ, а также системы ТСКБМ, автоведения и РПДА. Дополнительно, в зависимости от серии и назначения локомотива, в состав УНИКАМ могут входить системы управления тяговым приводом (пассажирские электровозы постоянного тока), компенсаторы реактивной мощности и системы ИСАВПРТ (грузовые электровозы переменного тока) и т.д. Унифицированные технические решения позволяют внедрять комплекс практически на всех сериях локомотивов сети и на вновь создаваемом тяговом подвижном составе. УНИКАМ может интегрировать функциональные возможности всех входящих в него систем, что существенно улучшает условия работы машиниста. Интеллектуальный комплекс позволяет перейти к существенно новым технологиям управления подвижным составом, свести к минимуму негативное влияние человеческого фактора, повысить эффективность и экономичность управления, эксплуатационную надежность тягового подвижного состава, безопасность поездной работы, а также решать вопросы, связанные с кадровым дефицитом машинистов и их помощников, уже в ближайшее время. Новые технологии вождения поездов позволяют наращивать провозную способность железных дорог и получать экономию энергоресурсов на тяге поездов от 5 до 15%, значительно облегчают труд машинистов, повышают безопасность движения, открывают пути инновационного развития отрасли. Значимость новых технологий вождения поездов весьма высока. Годовой экономический эффект только за счёт экономии электроэнергии составил за 2004-2005 годы более 140 млн. рублей. Для управления станционной работой на сортировочных станциях используются локальные системы, каждая из которых территориально связана с определенной зоной своей ответственности. Например, локальные информационно-управляющие комплексы парков приема (ЛИУК-ПП), формирования (ЛИУК-ПФ), отправления (ЛИУК-ПО) и сортировочной горки (КГМ). Совместно с системой верхнего информационно-планирующего уровня локальные информационно-управляющие комплексы представляют собой не что иное, как комплексную систему автоматизированного управления работой сортировочной станции КСАУ СС. По мере развития микропроцессорной техники и компьютерных технологий расширялись функции горочного комплекса, унифицировалось программное и информационное обеспечение. На рис. 6.7 представлена структурная схема горочного комплекса, входящего в систему КСАУ СС и эксплуатируемого в настоящее время на ряде крупных сортировочных узлах (ст. Бекасово - Сортировочное, ст. Красноярск - Восточный и др.). Рис. 6.7 Структурная схема горочного комплекса в составе КСАУ СС Горочный комплекс состоит из ряда локальных подсистем: • микропроцессорная ГАЦ с ведением накопления вагонов в сортировочном парке (ГАЦ МН); • горочная локомотивная сигнализация с передачей информации по радиоканалу и телеуправлением горочными локомотивами (ГАЛС Р); • подсистема автоматизированного регулирования скорости скатывания отцепов и управления прицельным торможением (УУПТ) с функциями контроля и диагностики процесса торможения (СКДТ); • контрольно-диагностический комплекс станционных устройств горочной зоны (КДК СУ ГАЦ); • комплексная система автоматизированного управления компрессорной станцией (КСАУ КС); • комплекс технических средств оперативно-диспетчерского управления сортировочной горкой (КТС-ОДУ-СГ). Каждая подсистема состоит из постового и напольного оборудования. К напольному оборудованию относятся рельсовые цепи, счетчики осей, скоростемеры, весомеры, датчики свободности стрелочных участков, стрелочные электроприводы и вагонные замедлители. К постовому оборудованию относятся: • управляющий вычислительный комплекс (УВК), состоящий из промышленных компьютеров ГАЦ-МН, УУПТ и КДК; • АРМы обслуживающего персонала (АРМ ЩНСГ) и оперативно-диспетчерского персонала (АРМ ДСПГ и АРМ горочных операторов); • серверное оборудование, предназначенное для связи с системами информационно-планирующего уровня сортировочной станции и передачи информации о работе горочного комплекса в корпоративную сеть передачи информации. Высокая перерабатывающая способность горок сетевых сортировочных станций потребовала создания высоконадежных комплексов горочной автоматики со встроенными средствами диагностики напольных устройств и самодиагностики УВК. Для обеспечения непрерывности управления в подсистемах ГАЦ МН и УУПТ использован УВК с нагруженным резервом. Аппаратура УВК строится на базе IBM-совместимых промышленных компьютеров из состава комплекта микропроцессорных средств для индустриальных, бортовых и встроенных систем управления, контроля и сбора данных. На АРМы ДСПГ и горочных операторов в реальном масштабе времени передается информация о ходе роспуска, основные параметры отцепов: поосное распределение весовой нагрузки в каждом вагоне, маршрут и количество вагонов в отцепе, а также рекомендуемые и текущие скорости движения отцепов на тормозных позициях. Для решения задачи автоматизированного регулирования скорости скатывания отцепов в подсистеме УУПТ ведется непрерывная модель движения отцепов на спускной части горки и на путях сортировочного парка в зоне действия аппаратуры КЗП. С целью повышения безопасности расформирования составов и обеспечения эффективности управления технологическими процессами на сортировочной станции Ростовский филиал ВНИИАС МПС разработал и внедряет на сортировочных горках в составе КДК СУ ГАЦ систему поддержки принятия решений (СППР КДК СУ). Эта система обеспечивает обработку первичной информации, поступающей из подсистем горочного комплекса (комплексной системы автоматизированного управления сортировочным процессом КСАУ СП), и формирует предложения и рекомендации по оптимизации проведения технического обслуживания и ремонта контролируемых горочных устройств с возможностью передачи полученных данных в корпоративную сеть ОАО «РЖД». При комплексной автоматизации станционной работы на сортировочных станциях важную роль играет идентификация подвижного состава, которая заключается в считывании инвентарных номеров вагонов, прибывающих на станцию в составе грузового поезда, предназначенного для расформирования, а также в считывании номера поездного локомотива, доставившего состав на станцию. Полная автоматизация процесса идентификации подвижного состава позволила бы исключить непроизводительный труд операторов-технологов по ручному вводу необходимой информации о подвижном составе в информационно-планирующую систему, ускорила бы процесс полготовки поездных документов и сократила бы число возможных ошибок при вводе информации. В настоящее время на многих сортировочных горках считывание номеров вагонов осуществляется визуально операторами технической конторы при входе поезда на станцию, в связи с чем, поезд должен резко снижать скорость входа на станцию, что часто приводит к задержке других поездов, следующих на сортировочную станцию. С целью снятия ограничения по скорости входа грузовых поездов на станцию в последнее время на ряде сортировочных горках стало применяться телевидение («техническое зрение») с использованием железнодорожной телевизионной установки ЖТУ-3, в которой применяется последовательная развертка, а изображение раскладывается на 312 строк и передается со скоростью 50 кадров в секунду. Считывание номеров вагонов прибывающих поездов производится с использованием магнитофонной записи изображения движущихся вагонов, которая впоследствии просматривается на уменьшенной скорости операторами технической конторы. Телевизионные системы применяются также для обзора территории парков сортировочной станции и контроля над ходом работ в зоне ограниченной площади, при этом передающую трубку можно поворачивать на угол 210о по горизонтали и на 50о – по вертикали. Для автоматической идентификации номера локомотива разработана система «Пальма», которая предусматривает оснащение поездных локомотивов грузовых поездов пассивными кодовыми бортовыми датчиками (КБД-2) и установку на путях парка прибытия считывающих устройств (ПСЧ), облучающих КБД и воспринимающих их отраженные сигналы. Использование кодовых бортовых датчиков КБД-3 позволяет осуществлять идентификацию номера локомотива в привязке к номеру/индексу поезда и данным о локомотивной бригаде. Принцип действия системы «Пальма» похож на принцип действия радара. Датчик КБД не содержит компонентов для генерации СВЧ-сигнала. Он функционирует как отражатель, модулируя отраженный сигнал. Облучающая считывающая аппаратура включается только при наличии поезда в зоне действия пункта считывания (ПСЧ). Антенна ПСЧ имеет узкую диаграмму направленности, развернутую в сторону проезжающего подвижного состава, оснащенного кодовым бортовым датчиком. Для автоматизации контроля состояния подвижного состава в части автосцепного механизма вагонов предусматривается использование аппаратуры оптоэлектронной системы «Сакма». Одним из прогрессивных направлений автоматизации станционных процессов сортировочной станции является комплексная автоматизация, основой которой является интегрированная система АСТРА-СС. На рис. 6.8 представлена структурная схема системы АСТРА-СС. Система состоит из трех взаимодействующих уровней: информационно-планирующего, горочной автоматики (уровня исполнительских процессов) и автоматического сбора информации о состоянии подвижных объектов и их идентификации. Рис. 6.8 Структурная схема системы АСТРА-СС Основой информационно-планирующего уровня является многопроцессорный вычислительный комплекс (МВК), на который замыкается работа АРМов различных пользователей, которые используются для документального оформления технологических операций сортировочной станции. На этот комплекс работают и носимые терминалы (например, составителей поездов). Таким образом, в МВК создается динамическая информационная модель сортировочной станции, в которую включаются также данные о техническом и коммерческом состоянии вагонов. Система предназначена для комплексной автоматизации управления сетевой сортировочной станцией, включая ее основные производственно-технические подсистемы: • обработка транзитного вагонопотока; • организация местной работы; • организация документооборота; • организация оборота локомотивов и локомотивных бригад; • обеспечение функционирования систем управления перевозками верхнего уровня; • анализа производственно-финансовой деятельности сортировочной станции. Особенностью системы является использование единой для всех функциональных рабочих мест базы данных, централизованной ведущейся в сервере системы с помощью программных средств реляционной СУБД. В состав АСТРА-СС входят следующие основные аппаратно-программные комплексы: • расформирования/формирования составов; • управления местной работой; • управления маневровыми локомотивами; • дистанционного контроля подвижных объектов; • технического и коммерческого осмотра вагонов. Система предусматривает автоматизацию функций оперативных работников станции, обеспечивающих непосредственный контроль и учет работы основных эксплуатационных объектов управления, и функций руководства и сменных командиров станций, обеспечивающих планирование, управление, а также анализ и контроль результатов работы станций. Автоматизируются также функции эксплуатационного персонала, обслуживающего технические средства системы: • работники информационно-вычислительного центра (ИВЦ) станции: • электромеханики ЭЦ, ГАЦ, замедлителей, компрессорных станций, аппаратуры технической диагностики подвижного состава, телевизионных систем контроля и считывания, устройств закрепления и пневмопочты. Осуществление взаимосвязи информационно-планирующей системы с системами реализации исполнительских процессов и автоматического сбора информации осуществляется через межсистемные шлюзы А и Б, основные функции которых заключаются в формировании согласованных сообщений серверу ОЦ (опорного центра) на основании анализа и логического преобразования информации, полученной различными устройствами автоматики, и в передаче директив и программы работы для подсистем управления исполнительскими процессами. Путем автоматического съема и обработки информации с устройств горочной автоматики (ГАЛС, ГПЗУ, ГАЦ, АРС, МАЛС и т.д.) реализуется отслеживание перемещения подвижных объектов в пределах станции. В функции подсистемы дистанционного контроля подвижных объектов системы АСТРА-СС входят; • телевизионное считывание номеров вагонов, контроля состояния вагонов и грузов («техническое зрение»); • автоматическая идентификация подвижных объектов посредством применения САИД «Пальма»; • счет осей подвижного состава; • обнаружение перегретых буксовых узлов, параметров колесных пар и автосцепок; • взвешивание подвижного состава; • определение габаритности подвижного состава. Маневровые локомотивы, работающие в парках приема и отправления станции, оборудуются системой горочной локомотивной сигнализацией с телеуправлением локомотивом и передачей информации по радиоканалу (ГАЛС Р). Работа радиоканала организована по асинхронному протоколу и обеспечивается в радиусе до 5 км от центра управления. Цикл обмена при одновременной работе 10 локомотивов осуществляется за 1 с. На локомотив передается задание по скорости роспуска состава, надвигаемого на горку. Эта скорость рассчитывается горочным программно-задающим устройством ГПЗУ на основе сортировочного листка из ИПУ-СС, который предварительно корректируется ДСПГ на своем АРМе. Соответствие фактического количества вагонов заданному в процессе роспуска состава проверяется на контрольном участке с помощью путевых датчиков счета осей и радиотехнического датчика РТД-С, фиксирующего конец отцепа. Горочные рельсовые цепи используются только на стрелках спускной части горки и дополнены индуктивно-проводными датчиками ИПД, которые защищают от ложной свободности стрелки при проходе длиннобазных вагонов. Для управления замедлителями тормозных позиций в подсистеме АРС используется общая с подсистемой ГАЦ динамическая модель скатывания отцепов, которая базируется на геометрических размерах вагонов, определяемых по их инвентарным номерам, и результатах поосного взвешивания отцепов на весомерном участке, расположенным перед головной стрелкой. Модели маршрутов движения отцепов содержат параметры элементов профиля, координаты размещения напольного оборудования. На основе динамической модели определяются ходовые свойства и прогнозируются траектории движения в процессе скатывания отцепов. В подсистеме АРС используются модули управления замедлителями МУЗ, которые обеспечивают прямое управление соленоидами оттормаживания (ОТ) и торможения (Т) с применением обратной связи по электронному датчику давления, устанавливаемому непосредственно в тормозном цилиндре замедлителя. Система КЗП с использованием индуктивно-проводных датчиков ИПД отслеживает движение каждого отцепа до точки соударения со стоящими на пути вагонами. Она позволяет определять не только длину свободной части пути, но и «окна» между отцепами. Счетчики осей спускной части горки обеспечивают контроль за маневровыми передвижениями и регистрацию всех перестановок вагонов с последующей оперативной передачей данных в ИПУ-СС. Взаимодействие подсистем ГАЛС, ГАЦ и АРС исключает возможность задания маршрута роспуска на занятый горочным локомотивом путь, торможение маневрового локомотива в замедлителях, взрез стрелки при пошерстном движении локомотива, задание маневрового маршрута с угрозой бокового удара из-за несоблюдения габарита, установку враждебных маршрутов при параллельном роспуске и маневрах. Контрольно-диагностический комплекс КДК регистрирует отказы аппаратуры, напольного оборудования и программного обеспечения, выявляет предотказное состояние устройств, формирует и архивирует протоколы работы подсистем. Результаты КДК выдаются на рабочее место электромеханика и транслируются диспетчеру дистанции СЦБ. Система САУ КС обеспечивает автоматическое поддержание давления в пневмосети при минимальном числе работающих компрессоров и равномерной их загрузке. Система АСТРА-СС в увязке с комплексом горочных устройств автоматики и идентификации подвижного состава является важнейшей частью автоматизированных систем управления для опорных центров управления перевозками АСУ-ОП. 6.3 Автоматизированные системы диспетчерского контроля Устройства диспетчерского контроля (ДК) применяются на железных дорогах России с середины ХХ века. В соответствии с нормативными документами железнодорожного транспорта устройства ДК должны предоставлять поездному диспетчеру информацию о свободности или занятости блок -участков на перегонах, главных и приемоотправочных путей на промежуточных станциях, а также о показаниях проходных, входных и выходных светофоров. Кроме того, устройства ДК выполняют функции контроля технического состояния устройств автоматики на перегонах и станциях. Системы ДК представляют собой средства контроля, в них не реализуются функции управления. Поэтому на станциях участка сохраняется автономное управление, а диспетчерское руководство реализуется путем передачи команд от поездного диспетчера дежурным по станциям по телефонному каналу связи. Это дает некоторое повышение эффективности работы участка, но не приводит к сокращению эксплуатационного персонала. На железных дорогах применялись устройства ДК типа ДК-ЦНИИ (1949 г.), БДК-ЦНИИ (1957 г.), с 1966 года практически на всех участках, оборудованных автоблокировкой, применялась система частотного диспетчерского контроля ЧДК. В настоящее время для применения рекомендованы компьютерные системы АПК-ДК и АСДК. В последние годы на сети железных дорог России проводится внедрение автоматизированных дорожных центров диспетчерского управления (АДЦУ), основанных на системах диспетчерской централизации (ДЦ). При этом определилась новая область применения систем ДК: сбор информации, отсутствующей в ДЦ и необходимой, в первую очередь, для правильной организации процесса технического обслуживания средств автоматики, а также для оперативного восстановления их работоспособности при появлении отказов или принятия других экстренных мер для предотвращения опасных ситуаций или сбоя в движении поездов. Таким образом, в настоящее время основными задачами систем ДК являются: • сбор и передача информации о поездном положении на перегоне и о техническом состоянии устройств автоблокировки; • сбор информации о техническом состоянии станционных устройств автоматики (ЭЦ, устройства энергоснабжения, пассажирская автоматика и др.). • сбор и передача в АДЦУ информации от устройств контроля состояния подвижного состава (ДИСК и др.). При совместном использовании систем ДЦ и ДК необходимо оптимально сочетать линейные устройства ДЦ и ДК: в ДЦ необходимы дискретные сигналы от устройств ЭЦ, в ДК кроме этих сигналов нужны аналоговые значения конкретных параметров устройств. Поэтому между устройствами ДЦ и ДК на станционном уровне должна быть увязка для передачи дискретных сигналов от устройств ДЦ к устройствам ДК и в обратном направлении для ввода в ДЦ информации о состоянии перегонов. Контрольная и диагностическая информация, полученная устройствами ДК на станциях и перегонах, должна выдаваться на АРМ дежурных электромехаников станций, а также диспетчеру дистанции сигнализации и связи для оперативного принятия им соответствующих мер по восстановлению работоспособности устройств. Применение в устройствах ДК современных вычислительных средств позволяет реализовать не только контроль и диагностику фактического состояния технических средств автоматики и подвижного состава, но и прогнозировать его изменение и, тем самым, оперативно принимать меры и вносить необходимые коррективы в графики процесса технического обслуживания. В аппаратно-программном комплексе диспетчерского контроля (АПК-ДК) реализованы функции диспетчерского контроля на современном техническом уровне. Построение систем ДК на основе средств вычислительной техники позволило решить не только традиционные задачи этих систем, но и получить новые функциональные возможности: диагностирование устройств автоматики на перегонах и станциях диспетчерского участка с передачей диагностической информации в дистанцию сигнализации. Таким образом, система АПК-ДК решает все задачи, которые ставятся перед системами данного класса. Структура системы АПК-ДК показана на рис. 6.9. Рис. 6.9 Структура системы АПК-ДК Устройства АПК-ДК на станциях выполняют сбор, преобразование и концентрацию информации о состоянии перегонных и станционных устройств автоматики. Эта информация отображается на мониторах АРМ дежурного по станции и электромеханика, а также передается в устройства поездного диспетчера и диспетчера дистанции сигнализации. Для контроля технического состояния перегонных устройств автоблокировки в релейных шкафах устанавливаются автоматы контроля сигнальных точек, построенные на специализированных контроллерах (АКСТ-СЧМ). Этот блок представляет собой генератор частоты, формирующий циклические частотные посылки по восемь импульсов каждая, в соответствии с состоянием контролируемых объектов. АКСТ-СЧМ позволяет контролировать состояние семи дискретных датчиков (реле) и двух пороговых датчиков. Информация передается путем манипуляции длительности импульсов и пауз в посылке: длительность импульса в один такт соответствует замкнутому состоянию контакта реле, а в два такта – его разомкнутому состоянию, длительность паузы (разделительного интервала между частотными импульсами) в один такт соответствует разомкнутому состоянию контакта реле, а в два такта – его замкнутому состоянию. Состояние пороговых датчиков передается импульсами, причем их длительность в один такт соответствует значению «параметр в норме», а в два такта – «параметр не в норме». Длительность каждого такта передачи информации равна 0,468±0,007 с. При проектировании АПК-ДК определяется перечень параметров, контролируемых на сигнальной точке. Для устройств автоблокировки это могут быть основное и резервное питание, основная и резервная нить лампы красного огня светофора, лампы разрешающих показаний светофора, установленное направление движения поездов, замыкание изолирующих стыков, наличие постоянного напряжения блока БС-ДА, занятость блок - участка, неисправность блока АКСТ-СЧМ или линии ДСН, аварийный отказ. На одной физической цепи может работать до 30 АКСТ-СЧМ с частотным разделением в диапазоне 300 – 4300 Гц. На станциях устанавливаются концентраторы информации, выполненные на основе компьютеров промышленного применения. Для согласования физической линии ДСН перегона с портом компьютера устанавливаются блоки СЧД-10, каждый из которых обрабатывает до 10 частотных каналов. Устройство согласования с линией ДСН предназначено для гальванической развязки от линии, защиты от импульсных перенапряжений, предварительного усиления и нормирования входного сигнала. Выделенные детектором сигналы поступают через устройство усиления, гальванической развязки и индикации в концентратор информации. Съем сигналов со станционных устройств автоматики обеспечивают программируемые индустриальные контроллеры ПИК-10 и ПИК-120, имеющие соответственно 10 и 120 дискретных входов. ПИК-10 кроме того имеет 10 аналоговых входов и предназначен для измерения средних значений напряжений на обмотках путевых реле, измерения сопротивления изоляции внешних цепей, преобразования напряжения на дискретных входах в цифровые сигналы, соответствующие логическим 1 и 0, преобразования в цифровую форму измеренных значений напряжения и передачи их во внешние устройства. Структурная схема ПИК-10 показана на рис. 6.10. Рис. 6.10 Структурная схема ПИК-10 При необходимости контроля состояния большого количества дискретных датчиков – реле ЭЦ, используется контроллер ПИК-120. Связь контроллера с ведущим процессором реализуется по двум последовательным каналам типа «токовая петля» или по стандартному интерфейсу типа RS-485. Одновременно по одной линии связи могут работать до 16 контроллеров ПИК-120. Автоматизированная система диспетчерского контроля (АСДК) представляет собой аппаратно-программный комплекс контроля состояния устройств автоматики, телемеханики и связи на перегонах и станциях. Условно АСДК можно разделить на две подсистемы по уровням управления. Подсистема нижнего уровня состоит из датчиков состояния контролируемых объектов – контактов соответствующих реле постовых и перегонных устройств, измерительных панелей рельсовых цепей и др., а также контроллеров диспетчерского контроля (КДК), осуществляющих сбор и обработку дискретной и аналоговой информации и ее передачу в сеть АСДК. КДК представляет собой многопроцессорную систему, построенную по магистрально-модульной структуре с модулями, обеспечивающими контроль дискретных и аналоговых сигналов. К последним относятся напряжения питающих установок, напряжения на обмотках путевых реле рельсовых цепей различного типа, включая тональные, длительности и частоты различных сигналов и др. Магистралью КДК служит асинхронная последовательная линия, позволяющая при децентрализованном размещении отдельных модулей сократить монтаж устройств системы. Аппаратура нижнего уровня обеспечивает съем и передачу на станцию дискретных и аналоговых сигналов от устройств сигнальных точек автоблокировки и переездных установок. Для этого она содержит линейный аналоговый модуль (МАЛ) и генератор линейных сигналов ГЛС, обеспечивающие сбор дискретных сигналов от 15 контролируемых устройств – контактов реле, и измеренных аналоговых сигналов. Линейные выходы всех генераторов (до 24) подключаются параллельно к общей двухпроводной линии связи (например, ДСН), что возможно благодаря частотному разделению сигналов с разных сигнальных установок. Информация от каждой сигнальной установки по линии связи поступает на станционную приемную аппаратуру, в которой частотные сигналы выделяются полосовыми фильтрами модулей приемных каналов ПК. После дешифрации принятых сигналов информация поступает через интерфейс типа RS-232 в аппаратуру верхнего уровня АСДК (рис. 6.11) и в модули индикации. Рис. 6.11 Структурная схема АСДК Подсистема верхнего уровня выполняет обработку и маршрутизацию информации от КДК, ее отображение на АРМ оперативного персонала, включенных в сеть АСДК. На этом уровне осуществляется связь с внешними информационно-управляющими системами, такими как АСОУП, АСУ-Ш и другими. В состав устройств подсистемы верхнего уровня входят технологические АРМ пользователей, к которым относятся поездные и узловые диспетчеры, сменные инженеры дистанций сигнализации, дежурные по станциям, электромеханики постов ЭЦ и ГАЦ, диспетчеры локомотивного депо, дежурные по пассажирским и грузовым паркам и др. Сеть АСДК может выполнять функции электронной почты и открыта для подключения устройств других информационных или управляющих систем. Каждый АРМ, включенный в сеть АСДК, реализует общесистемные функции: графическое отображение на экране монитора информации о реальном состоянии контролируемых устройств, о поездном положении на контролируемом участке, логический контроль работы устройств СЦБ, ведение протоколов работы устройств и действия персонала. Обеспечивается также принудительное обращение внимания оператора на возникшие нештатные ситуации с помощью «всплывающих окон» и звуковых сигналов. Специализированные функции АРМ определяют решение технологических задач соответствующим оперативным персоналом. В них автоматически определяются времена прибытия и отправления поездов, идентификация подвижных объектов в зоне контроля, ведется учет действующих предупреждений и их исполнения, а также ведение необходимых документов о движении поездов и другой работы. 6.4 Информационные системы обслуживания пассажиров На железнодорожном транспорте к информационным системам обслуживания пассажиров относятся система визуальной информации «ВИЗИНФОРМ» и система «ЭКСПРЕСС». Система визуальной информации (ВИЗИНФОРМ) предназначена для информирования пассажиров железнодорожных вокзалов о времени и месте отправления и прибытия поездов, их номерах, станциях отправления и назначения; информирования встречающих о времени и месте прибытия поездов, их задержке и прочее. Система «Визинформ» используется также в морских и речных портах, автовокзалах. Структурная схема системы «Визинформ» представлена на рис. 6.12, где обозначено: Т - информационное табло; РЕ-02(01) - электронный блок управления табло; КР - кабельные распределители; АР - дополнительные кабельные распределители; INPUT - периферийное устройство. Рис 6.12 Структурная схема информационной системы Информационное табло выполнено из буквенных полей. Единичным элементом поля является буквенный элемент, который состоит из полукруглой перекидной пластины магнитного материала. Символьное поле можно состоять из нескольких табло. Буквенные поля и соответствующая полярность магнитного поля для растровых точек выбираются электронным блоком управления табло РЕ-02(01). Размеры буквенных полей и расстояние читаемости информации зависят от используемого типа индикаторного блока отображения. Электронный блок управления табло РЕ-02(01) представляет собой программно-управляемое устройство. Программное обеспечение определяет режим его работы и выводимые данные периферийного устройства. В качестве периферийного устройства INPUT могут быть использованы: унифицированный пульт управления, алфавитно-цифровой дисплей VDT52102, комплекс микро-ЭВМ VST811, комплекс других ЭВМ. Периферийная аппаратура подключается к электронному блоку управления непосредственно или через узлы подключения кабелем длиной не более 100 м. Блок принимает информацию от периферийных устройств и в соответствии с ней приводит в действие информационное табло. Алгоритм передачи информационного входного сигнала (согласно используемому коду) ASCII - (74 + 1) представляет собой последовательность битов: 1start + 7data + 1paritas + 2stop или 1 стартовый + 7 данных + 1 четности + 2 стоповых. Входным сигналом может быть также сигнал контактов (для часов). К выходным сигналам относятся: • сигнал звуковых частот; • сигнал переключателя лампочек; • информационный сигнал, который передается по последовательному токовому шлейфу 20 мА (здесь также используется код ASCII = (7 + 1) для изображения цифр, букв и знаков препинания); • сигнал переключателя растровых точек (переключение происходит включением в соответствующий момент времени блока записи синусоидальным напряжением в положительный или отрицательный его полупериод), количество информационных проводов 35; сигналы выбора строки и столбца с использованием напряжения +24 В включаемые триаками; сигнал выбора столбца потенциалом 0 В, включаемого также триаком; • сигналы сопряжения (для часов), представляющие собой потенциалы 0 В и предназначенные для выбора столбцов контактной матрицы, а также для запуска транзисторных генераторов. Блок управления содержит интерфейс, микро-ЭВМ (mSZG), блок переключения, генератор синусоидальных колебаний, блок синхронизации, блок записи, блок питания. Оборудование автоматизированной системы информации пассажиров в соответствии с ее функциями может быть разделено на две группы: микро-ЭВМ VT-20A (VST 811); индикаторные узлы типа «Визинформ». Главной задачей микро-ЭВМ является управление индикаторными узлами, обмен информацией с операторами, а также тестирование полной системы. Микро-ЭВМ работает со следующими периферийными устройствами: • алфавитно-цифровой клавиатурой; • встроенным считывателем с магнитного диска (2-2,5 Мбайт); • двумя последовательными интерфейсами; • двумя блоками управления табло i РЕ-02(01); • перфоратором считывателем с перфоленты; • алфавитно-цифровым печатающим устройством ТМТ-120 с последовательным интерфейсом, набором латинского и русского алфавитов и сеткой для хранения бумаги; • алфавитно-цифровым дисплеем VDT 52101. Информационная система может работать в трех следующих основных режимах: автоматическом, ручном, тестирования. Режимы выбираются центральным оператором микро-ЭВМ VT-20A (VST 811) из системы «МЕНЮ». В задачи центрального оператора входит также и сигнализация окончания работы в выбранном режиме. В режиме тестирования система может управляться только центральным оператором. В автоматическом и ручном режимах работы каждый из опе­раторов имеет возможность управления и запроса. В автоматическом режиме выдачи информации пассажирам принимает участие микро-ЭВМ VT-20A, которая работает в соответствии с суточным графиком движения поездов и технологическим графиком, данные которых вводятся операторами. Для бесперебойной выдачи информации надежность работы системы повышают резервированием всех управляющих блоков. Если в системе табло появятся незначительные неисправности или отдельные табло полностью выйдут из строя, то это не приведет к переходу в другой режим. Данный режим возможен и при выходе из строя печатающего устройства в том случае, если можно обойтись без напечатанной документации. В ручном режиме система работает в тех случаях, когда график движения поездов настолько нарушен, что выдавать в автоматическом режиме непрерывную информацию в соответствии с расписанием невозможно. На табло выписывается только информация, вводимая операторами с диспетчерских дисплеев. Ручной режим используется также и при выходе из строя микро-ЭВМ. В этом случае дисплей непосредственно соединяют с блоком управления табло, создавая систему с уменьшенными функциональными возможностями. В общем режиме тестирования имеется возможность наблюдения за работой индикаторных узлов. Тесты выбираются из системы «МЕНЮ». В системе предусмотрен также режим стирания информации. При выходе из строя дисплея ввод данных становится невозможным и осведомление прекращается. Вся неактуальная информация, мешающая пассажирам, стирается блоком управления табло. Полное нарушение работы системы будет при выходе из строя блока управления табло. В этом случае система не работает даже в режиме стирания, поэтому блок управления резервируется. Ниже приведены список операторов и необходимые технические средства: • Центральный оператор – Микро-ЭВМ VT-20A (VST 8 И) с клавиатурой; • Диспетчер – Один из назначенных алфавитно-цифровых дисплеев VDT-52130 с клавиатурой; • Диспетчеры информационной службы (бюро) – по одному из назначенных алфавитно-цифровых дисплеев VDT-52130 с клавиатурой. Главной задачей центрального оператора является загрузка всех необходимых для обеспечения работоспособности информационной системы программ, запуск системы и наблюдение за ее работой. Центральный оператор, используя клавиатуру микро-ЭВМ, поддерживает связь с программами системы. После запуска программы он выбирает основные режимы (актуальную функцию) системы согласно плану формата экрана 1 в системе «МЕНЮ», а также при необходимости изменяет актуальный режим работы системы. При выборе автоматического режима центральный оператор вводит дату, текущее время и свою фамилию, имя и отчество, выбирает метод составления суточного плана движения поездов в соответствии с форматом экрана, выбирает из «МЕНЮ» следующие функции: задачи, связанные с суточным планом движения поездов; процессы, относящиеся к базе данных; управление табло; управление распечаткой протокола. Информационная база содержит годовое расписание, технологический график, таблицу кодов городов, таблицу констант текстов. Функции, имеющие отношение к информационной базе, оператор выбирает согласно формату экрана. К этим функциям относятся составление, коррекция, перенесение на перфоленту, распечатка (протоколирование), стирание. Выбранная информационная база составляется с клавиатуры или перфоленты. Под составлением с клавиатуры подразумевается заполнение соответствующего формата экрана информационной базы. Отдельные части информационной базы корректируются после их выбора введением признака рекорда данных, которые хотят включить в базу, стереть из нее или откорректировать их. После включения система напечатает одну строку из знаков «-» на печатающем устройстве, сигнализируя этим включение, затем на экране дисплея появляется основной каталог системы: • действия с расписанием; • действия с табло; • текст; • коррекция точного времени; • пуск пассажирской информации. Избранная функция: какая-либо функция выбирается нажатием на дисплее клавиши ее порядкового номера и клавиши окончания ввода LINE. Для всех пассажиров, прибывающих и отъезжающих, обслуживание является единым. Посадка на поезд начинается за определенное время до его отправления через выход из здания вокзала с табло «Выход на посадку». С наступлением определенного времени на табло появляется номер поезда, время отправления и станция назначения. Эта информация остается на табло до конца посадки, снимается при отправлении поезда и стирается из текущего суточного плана отправления поездов. Данные прибывающего поезда выводятся на табло «Прибытие поездов дальнего следования», размещенное в зале ожидания, за 1 ч до времени прибытия. По прибытии данного поезда в примечании появляется слово «прибыл», а вместо ожидаемого времени прибытия – фактическое время. Информация снимается с табло через 1 ч после прибытия поезда. По команде оператора любая из строк данного табло может быть переведена в режим выписывания общей информации. В этом случае неиспользованные строки работают как отдельное табло информации. В случае ручного режима работы на табло выводится только номер поезда. Табло прибытия поезда На табло «Отправление поездов дальнего следования», размещенное в зале ожидания, выводятся данные о поезде, отправляющемся в течение ближайших 2 ч. Табло отправления поезда Если отправление поезда задерживается, но не более чем на 2 ч, информация о нем остается на табло и упорядочивается в соответствии с новым ожидаемым временем отправления. Любая из строк табло может быть использована для общей информации, но количество строк табло при этом уменьшается. Информация снимается с табло в момент отправления поезда. На табло «Выход к поезду дальнего следования» выводится информация о поезде, посадка на который будет происходить через данный выход. Информация на табло появляется в момент начала посадки и снимается при отправлении поезда. Два табло «Идет посадка на поезд дальнего следования» работают параллельно. Одно из них устанавливается в зале ожидания, другое – в ресторане вокзала. Информация о поезде появляется в момент посадки и снимается после отправления поезда. Содержание табло (размещение информации и реквизитов) упорядочивается в соответствии со временем начала посадки. Световая сигнализация, относящаяся к какому-либо поезду, начинает работать в момент начала посадки на него и продолжает работать до стирания с табло информации о данном поезде (до отправления поезда). Любая из строк табло может быть переведена в режим выписывания общей информации, при этом эти строки работают как табло информации. Информация на табло отображается 64 знаками (рис. 6.13) и описывается последовательно по одному из них. Скорость записи знака составляет 10 или 20 мс. Рис. 6.13 Набор письменных знаков Система Экспресс-1 была введена в эксплуатацию в 1972 г. и предназначалась для билетно-кассовых операций только Киевского вокзала г. Москвы. Она впервые в нашей стране позволила решить проблему полной автоматизации продажи билетов и финансовой отчетности. На базе полученного опыта в 1982 г. была внедрена в эксплуатацию уже типовая система «Экспресс-2» для всех железных дорог страны. Сегодня функционирует вычислительная сеть обслуживания пассажиров, включающая 27 региональных систем «Экспресс-2», которые работают в непосредственном взаимодействии между собой в реальном масштабе времени на территории России (14 систем), стран СНГ и Балтии (13 систем). Данная вычислительная сеть образует единое информационное пространство электронных систем резервирования АСУ «Экспресс-2» стран СНГ и Балтии. В 1992 г. вычислительная сеть «Экспресс-2» была сопряжена с аналогичной сетью «Ирис» в Западной Европе, в которой функционируют 13 электронных систем резервирования. Связь с этими зарубежными системами осуществляется через систему KURS-90 германских железных дорог, которая находится во Франкфурте-на-Майне. Объединение сетей «Экспресс» и «Ирис» положило начало созданию единой вычислительной сети обслуживания пассажиров в Европе и Азии. Сегодня эта сеть охватывает 40 систем резервирования (27 в России, СНГ и Балтии и 13 в Западной Европе), расширив культуру обслуживания пассажиров международного сообщения, так как появилась возможность оформлять поездки пассажиров через любую кассу на сети дорог. Сегодня в новых экономических условиях работы железнодорожного транспорта в России начался третий этап развития системы «Экспресс». Генеральной стратегией этого этапа является переход от уровня продажи билетов на сети дорог к уровню управления пассажирскими перевозками в целом по сети дорог на базе новой, более мощной системы «Экспресс-3». Переход к управлению перевозками фактически был уже начат в рамках действующих сегодня систем «Экспресс-2» путем дальнейшего развития их функций. Однако решить эту проблему на старых технических средствах полностью невозможно. АСУ «Экспресс-3» базируется на новых ЭВМ типа IBM-9672 и новой операционной системе ОС-390 с использованием системы управления базой данных типа ДВ-2. При этом существенно расширены объемы памяти ЭВМ по сравнению с действующими системами «Экспресс-2». В функциональном плане система «Экспресс-3» управляет основными технологическими процессами пассажирского хозяйства, основываясь на их исходных данных, включая: • билетно-кассовые операции, связанные с оформлением и учетом проездных документов во внутригородском, пригородном, межгосударственном и международном сообщениях; • информационно-справочное обслуживание пассажиров во всех видах сообщений, на всех пунктах продажи и в домашних условиях через Интернет и телевидение; • управление багажной работой, имея в виду оформление и учет: багажа, грузобагажа, погрузку, выгрузку, хранение, розыск и составление плана формирования багажных перевозок; • управление парком пассажирских вагонов, имея в виду все технологические процессы, связанные с его эксплуатацией и ремонтом; • подготовку, ведение и печать служебных расписаний движения поездов дальнего и пригородного сообщения; • финансово-экономический учет и отчетность, взаиморасчеты между дорогами и государствами за пассажирские перевозки; • предоставление различных сервисных услуг пассажирам, как в железнодорожном, так и в смешанном сообщении путем взаимодействия с АСУ других видов транспорта. АСУ «Экспресс-3» позволяет оперативно управлять подвижным составом, используя гибкие тарифы и оперативные данные о населенности поездов. Расчеты показывают, что повышение населенности на 1% снижает эксплуатационные расходы на 55 млн. рублей в год. Структура системы «Экспресс-2» (модель «A-Z») показана на рис. 6.14. Рис. 6.14 Структура системы «Экспресс-2» Ее аппаратура состоит из стандартных элементов, что обеспечивает модульность и гибкость последней. Все функциональные элементы присоединяются к устройству управления через соответствующие блоки сопряжения. Аппаратура состоит из трех отдельных узлов: управляющая электроника (с блоком питания), индикаторный блок (с устройством включения сети), клавиатура, что облегчает монтаж и расположение аппаратуры в билетных кассах станции. Обмен данными может осуществляться как отдельными блоками (длиной 32, 64, 80, 128 или 256 символов), так и полной информацией (из 1280 символов). При этом используется код согласно ГОСТ 13052-74. Билетно-кассовая аппаратура (БКА) выполняет операции в двух режимах: «Управление» и «Текст». В режиме «Управление» БКА находится в состоянии готовности к приему управляющей информации. В режиме «Текст» БКА осуществляет прием или передачу данных. Переключение БКА на режим «Текст» начинается после приема символов НТ (начало текста). При приеме или передаче символов КП (конец передачи), КБ (конец блока) или КТ (конец текста) БКА переключается с режима «Текст» на режим «Управление». ЛИТЕРАТУРА 1. Однокристальные микро-ЭВМ./ Боборыкин А.В., Липовецкий Г.П. и др. М.: МИКАП, 1994. - 400 с. 2. Сташин В.В., Урусов А.В., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. М.: Энергоатомиздат, 1990. - 224 с. 3. Каган Б.М., Сташин В.В. Основы проектирования микропроцессорных устройств автоматики. - М.: Энергоатомиздат, 1987. - 304 с. 4. Микропроцессорные системы. Под общей редакцией Д.В. Пузанкова. Издательство Политехника. Санкт-Петербург, 2002. 935 с. 5. Казаченко В.Ф. Микроконтроллеры. Руководство по применению 16-разрядных микроконтроллеров INTEL VCS_196/296 во встроенных системах управления. –М.: ЭКОМ. 1997. – 686 с. 6. Бродин В.Б., Шагурин М.И. Микроконтроллеры, архитектура, программирование, интерфейс. Справочник. М.: ЭКОМ, 1999, -398 с. 7. Шевкопляс Б.В. Микропроцессорные структуры. Инженерные решения: Справочник. - М.: Радио и связь, 1990. - 512 с. 8. Каган Б.М. Электронные вычислительные машины и системы. - М.: Энергоатомиздат, 1991. - 592 с. 9. Гук М. Процессоры Intel от 8086 до Pentium II, Санкт-Петербург, «ПИТЕР» 1998, 221 с. 10. Токхайм Р. Микропроцессоры. Курс и упражнения. - М.: Энергоатомиздат, 1988. - 336 с. 11. Холленд Р. Микропроцессоры и операционные системы: Краткое справочное пособие. М.: Энергоатомиздат, 1991. - 192 с. 12. Григорьев В.Л. Программирование однокристальных микропроцессоров. -М.: Энергоатомиздат, 1987. - 288 с. 13. Гуртовцев А.Л. и др. Программы для микропроцессоров: Справочное пособие. - Минск. Вышэйшая школа, 1989. - 352 с. 14. Автоматика, связь и информатика. — 2005. — № 12. — С. 24–41. 15. Автоматика, связь и информатика.— 2004. 6 №7— С. 29–33. 16. ВНИКТИ. Труды института. — 2004. — Вып. 83.— С. 8–10. 17. Разработка и эксплуатация новых устройств и систем ЖАТ. Сб. научных трудов. — 2004.— С. 7–8. 18. Материалы 66й Международной научно-практической конференции. Новочеркасск, 11 ноября 2005 г. 19. Железные дороги мира.— 2003. — № 5. 20. Железнодорожный транспорт. — 2006.— № 4. 21. Евразия. Вести.— 2005.— № 12. 22. Евразия. Вести.— 2004.— № 11. 23. Проспекты компаний ЗАО «ОЦВ», ОАО «Росжелдорпроект», «Гипротранссигналсвязь».
«Микропроцессорные информационно-управляющие системы железнодорожного транспорта» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Тебе могут подойти лекции

Смотреть все 55 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot