Проектирование микропроцессорной системы для идентификации объекта управления
Описание функционирования шины 80 386 имеет отдельные параллельные шины: шину адреса и шину данных. Шина данных 32-х разрядная и двунаправленная. Ширина шины адреса 32 разряда: из них 30 старших разрядов адрес операнда и 2 разряда формируются из 4х сигналов стробов данных каждый из которых служит для выборки соответствующего байта в операнде. Тип каждого цикла шины определяется тремя сигналами… Читать ещё >
Проектирование микропроцессорной системы для идентификации объекта управления (реферат, курсовая, диплом, контрольная)
Министерство общего и профессионального образования Российской Федерации Тульский Государственный Университет Кафедра Электронных Вычислительных Машин
Пояснительная записка
к курсовому проекту по дисциплине «Микропроцессорные системы»
Проектирование микропроцессорной системы для идентификации объекта управления
Автор работы: студент гр. 230 261 Мясников А.А.
Специальность: 220 100
Обозначение КП: К2.006.106
Руководитель работы: Венцлавович Ю.Р.
Тула 2000
ВВЕДЕНИЕ
Курсовой проект предназначен для приобретения практических навыков проектирования несложных микропроцессорных систем различного назначения. Проект базируется на теоретической части дисциплины «Микропроцессорные системы». Задание на курсовой проект выдается руководителем проекта.
Курсовой проект выполняется с целью закрепления знаний по курсу «Микропроцессорные системы» и развития навыков самостоятельного проектирования микропроцессорных систем, специализированных на конкретный вид информации.
Задачами курсового проекта является:
практическое овладение методикой проектирования микропроцессорных систем;
анализ вариантов проектных решений и выбор на его основе оптимального решения;
синтеза функциональной схемы микропроцессорной системы на основе анализа исходных данных и принятого оптимального решения;
получение навыков разработки аппаратного и программного обеспечения микропроцессорной системы;
дальнейшее развитие навыков функционально-логического, схемотехнического и конструкторского проектирования, оформления и выпуска конструкторской документации в соответствии с ГОСТ.
Для решения перечисленных задач необходимы знания не только курса «Микропроцессорные системы», но и ряда смежных дисциплин, а также умение пользоваться нормативно-справочной информацией.
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
Алгоритм обработки входных данных.
Модель объекта заданна уравнением:
где: ai (i=1,…, r) и bi (i=1,…, l) — неизвестные параметры;
n — ненаблюдаемый шум;
xn-i и zn-i — наблюдаемые переменные.
Оценки параметров определяются итерационной процедурой фильтра Калмана:
где: = [zn-1, …, zn-r, xn-1, …, xn-l]T
= [a1, …, ar, b1, …, bl]T
02 — дисперсия независимого ненаблюдаемого шума n
Характеристики входной информации:
число источников входной информации — 8;
мин/макс уровень изменения входных сигналов — ¾;
минимальная дисперсия погрешности измерений, ґ10−2 — sи2 = 5;
максимальная дисперсия погрешности измерений, ґ10−2 — sc2 = 50;
Требуемые характеристики выходной информации:
число потребителей выходной информации — 1;
ограничение на время запаздывания выходной информации относительно входной (время формирования ответной реакции), мс — 0,15;
Требуемые общие характеристики МПС:
тип связи с источником входной информации — последовательная;
тип связи с потребителем выходной информации — последовательная;
Конструктивные параметры:
корпус Desktop — 152×533×419мм тип платы — Baby-AT 8,57×13,04 дюйма тип монитора — SVGA 15'
блок питания — 250 Вт Группа эксплуатации — транспортируемые и портативные, предназначенные для длительной переноски людьми на открытом воздухе или в неотапливаемых наземных и подземных сооружениях, работающие и не работающие на ходу.
Климатические факторы изменение температуры окружающей среды пониженная температура, Со -50
время выдержки, час 2−6
повышенная температура, Со 60
время выдержки, час 2−6
повышенная влажность относительная влажность, % 93
температура, Со 40
время выдержки, час 72
пониженная температура предельная -50
рабочая -10
повышенная температура предельная 50
рабочая 60
пониженное давление температура -10
давление, Па 6,1*104
время выдержки, час 2−6
атмосферные осадки интенсивность дождя, мм/мин 3
время выдержки, час 0,33
морской туман температура 27
содержание воды г/м3 2−3
время выдержки, час 48
Механические вибрации на одной частоте частота, Гц 20
ускорение, g 2
время выдержки, час 0,5
вибрации в диапазоне частот диапазон частот, Гц 10−70
ускорение, g 0,8−3,8
удары многократные число в минуту 40−80
ускорение, g 15
общее число ударов 12 000
АНАЛИЗ АЛГОРИТМА ВЫЧИСЛЕНИЙ
На основе технического задания можно построить следующую схему включения разрабатываемой микропроцессорной системы:
Входной информацией в данном курсовом проекте является входные и выходные значения параметров идентифицируемого объекта (xn и zn). Графически алгоритм вычисления вектора оценок = [a1, …, ar, b1, …, bl] изображен на рис. 2.
По изображенному алгоритму была написана программа на языке С, моделирующая процесс вычислений производимых МПС. Листинг программы находится в приложении 1, результат моделирования приведен в приложении 2.
ОПРЕДЕЛЕНИЕ СОСТАВА МПС
Центральную часть разработанной структуры микропроцессорной системы составляет центральный процессор, построенный на основе микропроцессора (МП) и выполняющий основные функции процесса обработки информации и управления этим процессом. Внутренняя память МПС (для хранения программ и данных) — полупроводникового типа, размещается на одной плате вместе с CPU, она представлена в виде модулей постоянной (ROM). Микропроцессор управляется генератором синхросигналов (G). В системе также присутствует математический сопроцессор (FPU).
МПС связана с окружающей средой с помощью источников входной информации и потребителей выходной информации. В качестве источников Sn используются датчики, измеряющие значения переменных наблюдаемого объекта, например, технологического процесса. В качестве потребителей Dn могут служить исполнительные механизмы различных типов (клапаны, задвижки, преобразователи и усилители сигналов и т. п.).
Каналы ввода и вывода информации преобразуют поступающие сигналы в требуемую форму и обеспечивают связь внешней среды с МПС, через порты ввода/вывода.
В одном и том же цикле работы МПС входная информация вводится в МПС и выводится из МПС. Ограничение на цикл определяется временными характеристиками объекта. Неизбежное в таких случаях запаздывание выходной информации (управляющих воздействий) от входной (состояния объекта) должно быть ограничено величиной, которая также определяется характеристиками объекта (его передаточными функциями, запасами устойчивости по амплитуде и фазе и др.). Поэтому выбор параметров элементов МПС производится с учетом таких ограничений.
Длительность цикла Тс определяется из выражений:
Разрядность АЦП Округление результата оптимальное где h — шаг дискретизации по уровню сигнала Точность преобразования Время преобразования Длительность цикла где tn — время преобразования значения сигнала в цифровой код,
m — количество источников входной информации.
Определив ограничение на длительность Тс, можно определить ограничение на длительность такта работы процессора
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Листинг программы оценки параметров объекта приведен в приложении 3.
Вся программа располагается в ПЗУ и состоит из двух функциональных блоков: блока инициализации МПС (настройка нужным образом процессора, сопроцессора, инициализация переменных) и рабочей части, которая в режиме реального времени производит прием и обработку данных (схема алгоритма обработки входной информации изображена на рис.2).
Все ПО составлено на языке ассемблера выбранного МП, который позволяет непосредственно получить двоичные («объектные») коды команд, записываемые далее в ПЗУ. При включении питания или по сигналу RESET управление передается модулю инициализации, который устанавливает систему в исходное состояние.
Программа самостоятельно обрабатывает ситуацию деления на ноль. Отключение питания или другие неотложные события, как, например аппаратный сбой, не оказывает критического воздействия на МПС и не могут вывести ее из строя. Из чего можно сделать вывод, что для МПС не требуются обработчики прерываний.
Обмен с внешней средой осуществляется через 8-ми разрядные последовательные порты ввода/вывода за один цикл ввода и вывода соответственно. Программное обеспечение оптимизировано по скорости выполнения для выбранного микропроцессора и использует преимущества 32-х разрядной обработки данных и взаимодействия с внешними устройствами.
ВЫБОР МПК И РАЗРАБОТКА АРХИТЕКТУРЫ МПС
Выбор осуществлялся между МПК на базе процессора 8086 и МПК на базе процессора 80 386 фирмы Intel. Для оценки времени задержки выходных данных посчитаем количество тактов, необходимое каждому процессору для выполнения расчетов. Результаты сравнения представлены в таблице 1.
Таблица 1
Параметр | Процессор | ||
Тактовая частота | 5МГц | 33МГц | |
Макс. кол-во тактов | |||
Необходимое кол-во тактов | |||
При частоте синхронизации 33 МГц, время одного такта составляет 30 нс, из чего следует, что время необходимое для приема, обработки и выдачи результата составляет:
30*4892 = 146 760 нс = 0.147 мс, при допустимом времени задержки 0.15 мс.
Таким образом, был выбран микропроцессорный комплект на базе микропроцессора 80 386 фирмы Intel с частотой 33 МГц, который наиболее полно удовлетворяет предъявленным требованиям и ограничениям. Этот МПК является однокристальным микропроцессором с фиксированной системой команд и архитектурой. С помощью интерфейсных БИС и прикладного программного обеспечения осуществляется настройка МПС на заданный класс алгоритмов. При проектировании МПС требуются средства подготовки и отладки программ.
Микропроцессор работает на частоте 33 МГц; обрабатывает входные данные целого типа формата байт. Поступающая в МПС информация хранится в виде вектора (одномерный массив), часть промежуточных результатов и констант храниться в виде массивов, соответствующих размерностей.
МПС, для реализации своих задач, содержит в своем составе следующий набор БИС:
центральный процессор i80386;
арифметический сопроцессор i80387;
генератор тактовой частоты 82 384;
приемопередатчик данных 8286;
защелки адреса 8282;
МС статического ОЗУ КМ185РУ8, МС ПЗУ КР556РТ20 и набор МС, формирующих управляющие сигналы (1533ИД3, 1533ИД14, 1533ЛА3);
МС универсального синхронно-асинхронного приемопередатчика (KP580BB51A), предназначенную для последовательного протокола обмена данными.
ПРОЕКТИРОВАНИЕ ПРОЦЕССОРА МПС
проектирование микропроцессорный программный
На этом этапе разрабатывается процессор. Исходной информацией при разработке процессора является его архитектура. На ее основании разрабатывается структура процессора и его интерфейс с системной шиной.
При проектировании процессоров на основе МПК с однокристальными МП решались задачи разработки средств синхронизации, интерфейса шины данных, адреса и системной шины; средств управления и синхронизации операций чтения/записи на системной шине; средств доступа к системной шине; средств поддержки режимов работы процессора.
Состав и структура интерфейса системной шины определяется в соответствии с организацией и разрядностью шин данных и адресов, их требуемой нагрузочной способностью. Интерфейс адресной шины реализуется буферным регистром адреса, а интерфейс шины данных — шинным формирователем. Ток нагрузки шинных формирователей и буферных регистров интерфейса определяет нагрузочную способность системной шины.
Для синхронизации операций чтения/записи используется синхронный способ, для которого интервал времени чтения/записи определяется длительностью сигналов управления. Способ обеспечивает наибольшую пропускную способность системной шины. Используется синхронный способ обмена с управляемой длительностью интервала обмена, причем изменение длительности интервала возможно только в сторону его увеличения под управлением сигналов подтверждения обмена, формируемыми ЗУ и ВУ. Для увеличения длительности интервала обмена на системной шине используется режим ожидания процессора.
Состав средств доступа к СШ определяется типом шины. Разрабатываемая МПС является однопроцессорной и в ней используется однопользовательская СШ. В этом случае шиной управляет сам процессор и дополнительных средств управления не требуется.
Интерфейс адресной шины реализуется буферным регистром адреса, а интерфейс шины данных — шинным формирователем. Ток нагрузки шинных формирователей и буферных регистров интерфейса определяет нагрузочную способность системной шины.
Расчет нагрузочной способности шины адреса:
Т.к. в один момент времени может работать модуль ОЗУ или модуль ПЗУ.
Iвых182 = max{4* IвхПЗУ1, 4* IвхОЗУ1} = max{4*410−5, 4*0.04} = 0.16mA 32mA
Iвых082 = max{4* IвхПЗУ0, 4* IвхОЗУ0} = max{4*0.25, 4*0.45} = 1.8mA 5 mA
Расчет нагрузочной способности шины данных:
Т.к. в один момент времени может работать модуль ОЗУ или порт вывода.
Iвых186 = max{IвхОЗУ1, IвхIOP1} = max{0.04, 0.0007} = 0.04mA 32mA
Iвых086 = max{IвхОЗУ0, IвхIOP0} = max{0.3, 0.05} = 0.3mA 5mA
Расчет нагрузочной способности линий CS для ОЗУ и ПЗУ из дешифратора:
Iвых1DC = max{4* IвхПЗУ1, 4* IвхОЗУ1} = max{4*410−5, 4*0.04} = 0.16mA 0.4mA
Iвых0DC = max{4* IвхПЗУ0, 4* IвхОЗУ0} = max{4*0.25, 4*0.9} = 3.6mA 8 mA
Расчет нагрузочной способности линий W/R для ОЗУ из МС 8282:
Iвых182 = 4* IвхОЗУ1 = 4*0.04 = 0.16mA 32mA
Iвых082 = 4* IвхОЗУ0 = 4*0.45 = 1.80mA 5mA
Расчет нагрузочной способности шин данных, адреса и управления показал, что предложенное подключение микросхем памяти и портов не требует дополнительных микросхем для повышения нагрузочной способности линий.
Тактовый генератор 82 384, используемый в системах на базе МП i80386, вырабатывает тактовые сигналы для выполнения синхронных операций различных компонентов системы. На выходе CLK2 схемы генератора формируются импульсы с частотой равной частоте внешнего кварца (33 МГц), а на выходе CLK — с частотой вдвое меньшей. Сигналы на выходе CLK и сигналы внутренней синхронизации МП совпадают по фазе. Выравнивание фаз этих сигналов происходит по срезам сигнала RESET.
Сигнал RESET служит для установки в исходное состояние МП и других компонентов системы и формируется генератором от внешней RC — цепочки. Сигнал ADS# обеспечивает требуемые времена установки и удержания для сигнала CLK2, а сигнал ADS0# используется совместно с CLK для управления периферийными устройствами. Вывод F/C# заземляется, т.к. применяется кварцевый резонатор.
Регистры защелки адреса 8282, выполняют функции интерфейса шины адреса, в следствии чего повышается нагрузочная способность шины адреса. Данные в в регистры защелкиваются по фронту сигнала ADS#, поступающего с тактового генератора. Входной сигнал OE# - отключение третьего состояния выходов, находится в активном состоянии.
Шинные формирователи 8286, выполняют функции интерфейса шины данных, для повышения нагрузочной способности шин данных. Входной сигнал T — задает направление передачи данных. Входной сигнал OE# - отключение третьего состояния выходов, находится в активном состоянии.
Арифметический сопроцессор 80 387 сконструирован для полностью синхронной, либо псевдосинхронной работы с МП 80 386. В псевдосинхронном режиме интерфейсная логика сопроцессора 80 387 работает от тактового сигнала МП 80 386, тогда как его внутренняя логика работает от другого тактового сигнала. Когда МП 80 386 работает с сопроцессором 80 387, он выполняет все необходимые магистральные циклы с памятью и передачи данных в 80 387 и из него. Все передачи с сопроцессором 80 387 являются 32-разрядными.
Между МП 80 386 и сопроцессором 80 387 имеются следующие соединения:
выходы BUSY#, ERROR#, PEREQ сопроцессора 80 387 подключаются к соответствующим выводам МП 80 386;
вход RESET сопроцессора 80 387 подключается к выходу RESET тактового генератора 82 384;
входы выбора микросхемы арифметического сопроцессора 80 387 (CS1#, CS2) непосредственно подключаются к выходам M/IO# и A31 соответственно. Для циклов с сопроцессором сигнал А31 всегда имеет высокий уровень, а сигнал M/IO# - всегда низкий уровень напряжения;
вход команды сопроцессора 80 387 (CMD0#) отделяет данные от команд. Этот вход подключается к выходу А2. МП 80 386 выводит адрес 80 0000F8h при записи команды, и адрес 80 0000FCh — при записи или считывании данных;
все 32 линии (D31-D0) шины данных МП 80 386 непосредственно подключаются к шине данных сопроцессора 80 387;
входы READY#, ADS#, W/R# сопроцессора 80 387 подключаются к соответствующим выводам МП 80 386. Сопроцессор 80 387 использует сигналы READY# и ADS# для отслеживания активности магистрали и того момента времени, когда могут быть опрошены сигналы W/R#, CS1#, CS2 и сигналы разрешения состояния (STEN);
сигнал STEN является сигналом выбора микросхемы 80 387. Он может быть установлен на высоком уровне напряжения. Если же один и тот же МП 80 386 работает с несколькими сопроцессорами 80 387, то сигнал STEN может использоваться для активизации одного из них в конкретный момент времени;
выход готовности (READYO#) является дополнительным выходом. Он может быть использован для генерации состояния ожидания, требуемого сопроцессором.
Если МП 80 386 обнаруживает команду сопроцессора, он автоматически генерирует один или более циклов ввода-вывода по адресам 80 0000F8H и 80 0000FCH. Процессор выполняет все необходимые магистральные циклы с памятью и передачи к сопроцессору 80 387 и от него. Все обмены с сопроцессором 80 387 являются 32-разрядными. Если по какой-либо причине используется 16-разрядная подсистема памяти, то МП 80 386 автоматически выполняет преобразования перед передачей данных к арифметическому сопроцессору или от него.
Передача данных от сопроцессора 80 387 к МП 80 386 требует по крайней мере одного состояния ожидания. Циклы записи в сопроцессор 80 387 не требуют состояний ожидания. Поскольку интерфейс с МП 80 386 всегда синхронный, то вывод CLK2 сопроцессора 80 387 должен быть подключен ко входу CLK2 МП 80 386. Состояние входа СКМ сопроцессора 80 387 определяет, в каком из двух режимов он работает.
В псевдосинхронном режиме сигнал СКМ имеет низкий уровень. Ко входу CLK2 сопроцессора 80 387 должен быть подключен источник тактовой частоты. Синхронной с МП 80 386 является только интерфейсная логика сопроцессора 80 387. Внутренняя логика сопроцессора 80 387 работает от источника тактовой частоты со входа 80 387 CLK2.
В синхронном режиме сигнал СКМ имеет высокий уровень и вход 80 387 CLK2 никуда не подключается. Сопроцессор 80 387 работает от основного тактового сигнала CLK2. Операции арифметического сопроцессора полностью синхронны с работой МП 80 386.
Сопроцессор 80 387 использует два метода для взаимодействия с МП 80 386. Первый используется, когда операции с сопроцессором инициирует МП 80 386. Это происходит во время исполнения команды сопроцессора (команды ESC) и осуществляется под контролем программы. Взаимодействие по второму методу осуществляется, когда сопроцессор использует сигнал PEREQ для запроса, чтобы МП 80 386 начал передачу операндов к системной памяти или от нее. Эти передачи осуществляются по требованию сопроцессора, поэтому они асинхронны с выполнением команд МП 80 386. Передачи данных для сопроцессора имеют тот же самый приоритет на магистрали, что и передачи данных под управлением программы.
ОРГАНИЗАЦИЯ МИКРОПРОЦЕССОРА В 80 386 имеются две раздельные шины: шина адреса и шина данных. Шина данных — 32-разрядная и двунаправленная. В большинстве применяемых модулей для высокоcкоростной локальной шины используются 32 разряда адреса, передаваемого по адресной шине, из них 2 младших разряда дешифрируются в 4 сигнала строба данных (каждый из этих сигналов разрешает или запрещает передачу соответствующего байта данных, сигналы BE0#-BE3#), а остальные 30 разрядов представляют собой двоичный код адреса. Для управления обменом по шине адреса и шине данных используются соответствующие управляющие сигналы.
Изменяемая ширина (разрядность) шины данных позволяет процессору взаимодействовать как с 32-х, так и с 16-разрядными внешними шинами в синхронном режиме.
Выводы микропроцессора:
Синхросигнал (CLK2)
CLK2 обеспечивает основную синхронизацию работы 80 386. Эта тактовая частота делится пополам для того, чтобы сформировать внутреннюю процессорную тактовую частоту, используемую при выполнении команд внутри процессора.
Шина данных (D0-D31)
Двунаправленные с тремя состояниями линии шины данных обеспечивают перемещение данных от 80 386 к другим устройствам. Наличие высокого уровня напряжения на входах/выходах шины данных обозначает наличие кодов логической единицы «1» на этих выводах. Шина данных может передавать данные как на 32-, так и на 16-разрядные шины благодаря тому, что есть возможность изменения размера шины данных; размер шины данных определяется значением входного сигнала BS16#. При любой операции записи (включая циклы останова и выключения) 80 386 всегда передает все 32 разряда данных, даже если в текущем цикле размер шины обмена равен 16 разрядам.
Шина адреса (BE0#-BE3#, A2-A31)
Эти выходы с тремя состояниями обеспечивают физическую адресацию памяти или адресацию устройств ввода/вывода. Шина адреса обеспечивает физическое пространство адресов памяти объемом 4 гигабайта (от 00H до FFFFFFFFH) и пространство адресов ввода/вывода объемом 64 килобайта (от 00H до 0000FFFFH) для обращения к устройствам ввода/вывода.
Значения сигналов стробов данных BE0#-BE3# определяют соответственно те байты 32-разрядной шины данных, которые участвуют в текущей передаче. Это особенно удобно для взаимодействия с внешней аппаратурой.
Сигналы определения типа цикла шины (W/R#, D/C#, M/IO#, LOCK#)
Эти выходы с тремя состояниями определяют тип текущего цикла шины. В зависимости от значения W/R# все циклы подразделяются на циклы записи и циклы чтения. D/C# разделяет все циклы на циклы обмена данными и циклы обмена управляющими сигналами. M/IO# отличает циклы обращения к памяти от циклов обращения к устройствам ввода/вывода. По сигналу LOCK# различаются циклы с блокированной шиной.
Указатель 16-разрядной шины (BS16#)
Благодаря сигналу BS16# осуществляется непосредственная связь 80 386 с 32-разрядной и 16-разрядной шинами данных. Установка активного уровня этого входа приведет к тому, что в текущем цикле шины обмен будет производиться только по младшей половине шины данных (D0-D15) в соответствии со значениями сигналов BE0# и BE1#. Дополнительное влияние сигнала BS16# (установленного в активное состояние) не проявится, если в текущем цикле сформированы активные уровни только сигналов BE0# или BE3#, действие сигнала BS16# (активного уровня) заставит процессор 80 386 выполнить необходимые переключения для правильной передачи старшего (их) байта (ов) по линиям D0-D15.
В данной работе этот сигнал всегда установлен в пассивное состояние и обмен с памятью производится только 32 разрядными данными.
Сигналы прерывания INTR, NMI
Могут прерывать или приостанавливать выполнение процессором текущего набора инструкций. Так как обработка прерываний не требуется, то эти сигналы не используются.
Сигнал сброса (установки в исходное состояние)(RESET).
Этот входной сигнал останавливает выполнение любой операции и переводит 80 386 в состояние, известное как состояние сброса. Сброс 80 386 производится установкой активного уровня сигнала RESET в течение 15-ти или более периодов CLK2. Сигнал RESET может быть асинхронным по отношению с CLK2. Если необходимо, фаза внутреннего синхросигнала процессора, а также целое состояние 80 386 могут быть полностью синхронизированы с внешними схемами.
Описание функционирования шины 80 386 имеет отдельные параллельные шины: шину адреса и шину данных. Шина данных 32-х разрядная и двунаправленная. Ширина шины адреса 32 разряда: из них 30 старших разрядов адрес операнда и 2 разряда формируются из 4х сигналов стробов данных каждый из которых служит для выборки соответствующего байта в операнде. Тип каждого цикла шины определяется тремя сигналами: M/IO#, W/R# и D/C#. Одновременно с этими сигналами устанавливается достоверный адрес на линиях BE0#BE3# и A2-A31. Сигнал строба адреса указывает на выдачу процессором 80 386 нового типа цикла шины и адреса. В рабочем состоянии шина выполняет один из ниже перечисленных циклов шины:
Таблица 1. Определение цикла шины
М/IO | D/C | W/R | ТИП ПЕРЕДАЧИ | |
Подтверждение прерывания | ||||
Специальные циклы BE0-BE3 | ||||
Считывание данных из ввода-вывода | ||||
Запись данных во ввод-вывод | ||||
Предвыборка (считывание) команд из памяти | ||||
(зарезервирован) | ||||
Считывание данных из памяти | ||||
Запись данных в память | ||||
РАЗРАБОТКА ПОДСИСТЕМЫ ПАМЯТИ МПС
При проектировании ЗУ МПС решались задачи разработки схемы накопителя информации и схемы сопряжения ОЗУ и ПЗУ с системной шиной.
Потребность в оперативной памяти определяется по ассемблерной программе:
данные под временные переменные — 688 байт;
объем памяти под код программы составляет 928 байт.
Особенность построения модулей памяти для микропроцессора 80 386 состоит в том, что для обращения к данным используется 32-х разрядная шина данных (т.е. обмен производится по 4 байта, нужный байт выбирается по сигналам выбора байтов BE0#-BE3#). На основании этого модули памяти строятся из четырех банков с разрядностью 1 байт.
Накопитель OЗУ строится на основе микросхем КМ185РУ8 статического типа размерностью 2568, с временем записи/считывания 45нс, Рсс = 915мВт. Накопитель ПЗУ строится на основе микросхем 556РТ17 размерностью 5128, с временем считывания 50нс, Рсс = 998мВт.
Из временных диаграмм приведенных в приложении 4 следует, что организация тактов ожидания при обращении к памяти не требуется, т.к. циклы чтения/записи укладываются во временные ограничения — два цикла процессора T1 + T2 = 1/33МГц + 1/33МГц = 61нс.
Адресный выход МП A11 и выход M/IO# используются для выбора одного из адресуемых пространств, а сигналы BE0#, BE1#, BE2#, BE3# используются для выбора адресуемого байта в модулях ОЗУ или ПЗУ.
Объем памяти был выбран исходя из потребностей системы и адресное пространство МПС разделено и доступно для использования следующим образом:
M/IO | А11 | Диапазон адресов | Адресуемое пространство | |
0000h — 0FFFh | Порты ввода/вывода | |||
0000h — 0FFFh | ОЗУ объемом 1Кбайт | |||
1000h — 1FFFh | ПЗУ объемом 2Кбайта | |||
РАЗРАБОТКА ПОДСИСТЕМЫ ВВОДА-ВЫВОДА
Подсистема ввода-вывода МПС представляет собой совокупность каналов ввода-вывода, каждый из которых обслуживает отдельные ВУ. Канал содержит средства сопряжения с СШ (интерфейс ВУ) и средства управления вводом-выводом и реализуется аппаратными средствами и программным обеспечением.
Так как в МПС информация поступает от восьми датчиков, то в процедуре ввода, прежде чем приступить к приему данных, последовательно выбирается ВУ, с которым будет производиться обмен. Нужный датчик задается в цикле, путем записи в регистр DX его номера. Используя данный номер, аппаратными средствами (дешифратор адреса и средствами управления) разрешается прием от источника с заданным номером. Интерфейс канала реализуется на основе портов ввода-вывода .
Подключение МС последовательного порта.
Интерфейсы последовательных каналов В/В реализуются на БИС программируемого интерфейса последовательной связи, например, КР580ВВ51А.
БИС КР580ВВ51А представляет собой универсальный синхронно-асинхронный приемопередатчик последовательной связи, выполняющий функции приема и преобразования параллельных форматов слов данных в последовательные форматы со служебными символами для передачи по КС (каналу связи) и последовательных форматов, принимаемых из КС слов данных в параллельный формат для ввода в процессор. БИС может быть запрограммирована для работы в 5 режимах: асинхронная передача, асинхронный прием, синхронная передача, синхронный прием с внутренней синхронизацией, синхронный прием с внешней синхронизацией. Контролируются ошибки в принимаемых словах данных на четность или нечетность, ошибки в структуре кода при асинхронном приеме, возникающие вследствие отсутствия стоповых битов, а также ошибки наложения, возникающие в результате нарушения синхронизации обмена, когда очередное слово поступает до считывания предыдущего. Скорость обмена до 64 000 бод.
Управление передачей.
Управление передачей регулирует всю деятельность, связанную с передачей последовательных данных. Он получает и вырабатывает следующие сигналы, и внешние, и внутренние, для выполнения этой функции:
· TxRDY (Transmitter Ready): Этот выход сигнализирует системному блоку, что передатчик готов получить символ данных. TxRDY автоматически сбрасывается по переднему фронту выходного сигнала WR, когда символ данных загружается из системного блока;
· ТхС (Transmit Clock): Тактирование передачи управляет скоростью, с которой должен передаваться символ. В синхронном режиме скорость в битах в секунду равна частоте ТхС. Задний фронт сигнала ТхС сдвигает последовательные данные .
Передача данных.
При синхронной передаче выход TxD постоянно находится в маркерном уровне, пока система не пошлет свой первый символ, который является символом синхронизации КР580ВВ51А. Все биты выдвигаются по заднему фронту ТхС.
Когда передача началась, поток данных на выходе TxD должен продолжаться со скоростью ТхС. Если система не обеспечивает КР580ВВ51А символами данных до того, как буфер передачи становится пустым, то в поток данных будут автоматически вставляться символы синхронизации. В этом случае бит ТхЕ в регистре состояния переключается в высокое состояние для сигнализации того, что КР580ВВ51А пуст и передаются символы синхронизации. ТхЕ не переходит в низкое состояние, когда выдвигается символ синхронизации. Бит состояния ТхЕ сбрасывается автоматически при записи в КР580ВВ51А символа данных.
Управление приемом.
· RxRDY (Receiver Ready): Этот выход показывает, что КР 580ВВ51А содержит символ, готовый для передачи в системный блок;
· RхС (Receiver Clock): Тактовая частота приемника управляет скоростью, с которой должен приниматься символ. Скорость следования битов равна действительной частоте RxC.
Прием данных.
Приемник получает последовательные данные, преобразует их в параллельный формат, проверяет на биты или символы, которые зависят от метода связи, и посылает обработанный символ в системный блок. Вход последовательных данных приходит на вывод RxD и тактируется по переднему фронту RxC.
Процедура программирования КР580ВВ51А.
КР580BB51A загружается набором управляющих слов, определяющих среду связи. Управляющие слова разбиваются на два формата: инструкция режима и инструкция команды. Инструкция режима и команды должны соответствовать определенной последовательности для надлежащей работы устройства. Инструкция режима должна быть вставлена непосредственно после операции сброса, перед использованием КР580ВВ51А для связи. Требуемые символы синхронизации для выбранного метода связи загружаются после этого в КР580ВВ51А. Все управляющие слова, записанные в КР580ВВ51А после инструкции режима, будут обозначать инструкцию команды. Сопрягается КР580ВВ51А с системными шинами процессора через выводы шины данных D7-D0, управляемые сигналами выборки БИС, чтения, записи, подаваемыми на входы CS, C/D, RD, WR. Управление входом C/D выполняется с линии А2.
Для чтения/записи данных из портов ввода/вывода достаточно только обращение к соответствующему адресному пространству.
РАЗРАБОТКА ТЭЗА
Конструктивно препроцессор при заданном размере плат может быть выполнен на одном ТЭЗе. Кроме микросхем ТЭЗ включает:
1 разъем типа СНП34−90;
1 разъем типа PS9 — для подачи напряжения питания и заземления;
фильтрующие конденсаторы: 2 электролитических и 6 (1 штука — на 5 микросхем) керамических КМ-51-Н90−0.05, устанавливаемые на плате в непосредственной близости от микросхем;
кварцевый резонатор и колебательный контур на 33МГц.
Для подачи уровня «1» в данной работе вместо резисторов номиналом 1К используются «лишние» линии логического элемента 2И-НЕ, на входы которого поданы «0» .
Для защиты от вибраций и ударов необходимо использовать конструкции повышенной прочности и специальные держатели, которые также выступают в качестве радиаторов для отвода тепла (основные источники тепла — процессор и сопроцессор).
Тепловой режим обеспечивается средствами естественного воздушного охлаждения, и плата выполненна на металлической основе, рассеивающей тепло. В целях защиты элементов и печатной платы от влаги ТЭЗ покрывается лаком ПФЛ-86.
ЗАКЛЮЧЕНИЕ
При проектировании микропроцессорной системы использовалось следующее программное обеспечение:
Borland C++ 3.1 и Turbo Assembler 3.1 — для оценки размера программы МПС;
система автоматизированного проектирования Visio 4.5 и Microsoft Word 2000 -для оформления конструкторской документации.
В результате выполнения курсового проекта была построена МПС на базе микропроцессора i80386DX33 для которой можно оценить следующие технические характеристики:
разрядность, бит — 32;
т.к. разрядность шины данных — 32 бита быстродействие (RG-RG), опер/с: — 6.6*106;
т.к. МП 80 386 выполняет одну команду в среднем за 5 тактов, в итоге быстродействие определяется: 33МГц / 5 = 6.6*106 опер/с объем внутренней памяти, Кбайт: — ОЗУ — 1, ПЗУ -2;
максимальная скорость обмена данными, Кбод: — 64;
потребляемая мощность, Вт: — 17.25;
напряжение питания, В (Гц): — 220 (50),
В ходе выполнения курсового проекта были решены следующие задачи проектирования МПС:
моделирование источников входной информации, заданного алгоритма и потребителей выходной информации;
определение параметров элементов МПС по результатам моделирования;
синтез и разработка функциональных и принципиальных схем МПС;
разработка программного обеспечения МПС;
разработка конструкции и конструкторской документации проекта (чертежи и пояснительная записка).
Критерий качества системы равен:
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Микропроцессор 80 386: Справочник /К. Паппас, У. Марри / М.: Радио и связь, 1993.-320 с.
Процессор 80386DX в схеме персонального компьютера / Поляков А. В. -М.:ИКС, 1994.
Микропроцессоры и микропроцессорные комплекты интегральных микросхем: Справочник. В 2 т./ Под ред. В. А. Шахнова.- М.: Радио и связь, 1988. 368 с.: ил.
Логические ИС КР1533, КР1554: справочник. В 2 т. /Под ред. И. И. Петровского, БИНОМ, 1993, с ил.
Применение микросхем памяти в электронных устройствах, О. Н. Лебедев, М.: Радио и связь, 1994. — 216 с.: ил.
ГОСТ 2.743−91 ЕСКД. Обозначения условные графические в схемах. Элементы цифровой техники.
ГОСТ 2.708−81 ЕСКД. Правила выполнения электрических схем цифровой электрической техники.
ГОСТ 2.755−87 ЕСКД. Обозначения условные графические в схемах. Устройства коммутационные и соединения контактные.
Токарев В. Л. Микропроцессорные системы: методические указания по выполнению лабораторных работ и курсового проекта для студентов специальности 220 100 дневного и вечернего обучения. — Тула: ТГУ, 1997. — 48 с.
Матикашвили Т. И. Оформление документов по программированию и цифровой электронике Тула: ТГТУ, 1994. -44с.
ПРИЛОЖЕНИЕ 1
Листинг программы моделирования объекта наблюдения и МПС
#include
#include
#include
#define R 1
#define L 7
float real[R+L] = {0.6, 0.3, -0.3, -0.1, 0.5, -0.2, 0.1, -0.3};
float x, z, ksi;
float fi[R+L];
float O[R+L], k[R+L], r[R+L][R+L], e;
float chline[R+L], chisl[R+L][R+L];
float rfi[R+L];
float tmpr, znam;
float sigma = 0.5;
int i, j, l, step;
void main ()
{
clrscr ();
randomize ();
x = 0.0;
z = 0.0;
memset (O, 0, sizeof (float)*(R+L));
memset (fi, 0, sizeof (char)*(R+L));
memset (r, 0, sizeof (float)*(R+L)*(R+L));
for (i=0; i
for (step=1; step<30; step++)
{
for (i=R-1; i>0; i—) fi[i] = fi[i-1];
for (i=R+L-1; i>R-1; i—) fi[i] = fi[i-1];
fi[0] = z; fi[R] = x;
ksi = ((float)rand ()/RAND_MAX)*sigma;
x = ((float)rand ()/RAND_MAX)*2−1;
z = 0.0;
for (i=0; i
z+= ksi;
printf («Step %d: fi = [ «, step);
for (i=0; i
printf («]n»);
memset (rfi, 0, sizeof (float)*(R+L));
for (i=0; i
for (j=0; j
znam = 0.0;
for (i=0; i
znam+=sigma;
for (i=0; i
{
for (j=i+1; j
{
tmpr = r[i][j]; r[i][j] = r[j][i]; r[j][i] = tmpr;
}
}
memset (chisl, 0, sizeof (float)*(R+L)*(R+L));
for (i=0; i
{
for (j=0; j
for (j=0; j
{
for (l=0; l
{
chisl[i][j]+=chline[l]*r[l][j];
}
}
}
for (i=0; i
{
for (j=0; j
{
r[i][j]-=chisl[i][j]/znam;
}
k[i] = rfi[i]/znam;
}
e = 0.0;
for (i=0; i
e = ksi-e;
for (i=0; i
printf («e = %.3fn O = [ «, e);
for (i=0; i
printf («]n»);
}
}
ПРИЛОЖЕНИЕ 2
Результаты моделирования объекта наблюдения и МПС
Step 1: fi = [ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ]
e = 0.405
O = [ 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ]
Step 2: fi = [ 0.405 0.022 0.000 0.000 0.000 0.000 0.000 0.000 ]
e = 0.578
O = [ 0.930 0.413 0.000 0.000 0.000 0.000 0.000 0.000 ]
Step 3: fi = [ 0.627 0.653 0.022 0.000 0.000 0.000 0.000 0.000 ]
e = -0.322
O = [ 0.322 0.021 -0.001 0.000 0.000 0.000 0.000 0.000 ]
Step 4: fi = [ 0.696 -0.774 0.653 0.022 0.000 0.000 0.000 0.000 ]
e = -0.092
O = [ 0.303 0.005 -0.001 -0.001 0.000 0.000 0.000 0.000 ]
Step 5: fi = [ 0.048 0.973 -0.774 0.653 0.022 0.000 0.000 0.000 ]
e = 0.386
O = [ 0.821 0.377 -0.409 0.030 0.704 0.000 0.000 0.000 ]
Step 6: fi = [ 0.853 -0.425 0.973 -0.774 0.653 0.022 0.000 0.000 ]
e = 0.091
O = [ 0.875 0.411 -0.429 0.033 0.765 -0.305 0.000 0.000 ]
Step 7: fi = [ 0.835 0.225 -0.425 0.973 -0.774 0.653 0.022 0.000 ]
e = -0.242
O = [ 0.467 0.233 -0.247 -0.026 0.375 -0.109 0.007 0.000 ]
Step 8: fi = [ 0.225 0.266 0.225 -0.425 0.973 -0.774 0.653 0.022 ]
e = -0.028
O = [ 0.485 0.220 -0.242 -0.018 0.348 -0.126 0.054 -0.202 ]
Step 9: fi = [ 1.007 -0.375 0.266 0.225 -0.425 0.973 -0.774 0.653 ]
e = -0.008
O = [ 0.491 0.212 -0.238 -0.020 0.336 -0.103 0.020 -0.259 ]
Step 10: fi = [ -0.216 -0.940 -0.375 0.266 0.225 -0.425 0.973 -0.774 ]
e = 0.372
O = [ 0.821 0.451 -0.467 -0.260 0.789 -0.323 0.299 -0.482 ]
Step 11: fi = [ 0.701 0.817 -0.940 -0.375 0.266 0.225 -0.425 0.973 ]
e = 0.084
O = [ 0.836 0.462 -0.436 -0.218 0.702 -0.320 0.297 -0.439 ]
Step 12: fi = [ 1.047 -0.970 0.817 -0.940 -0.375 0.266 0.225 -0.425 ]
e = -0.256
O = [ 0.504 0.263 -0.249 -0.070 0.431 -0.131 0.026 -0.285 ]
Step 13: fi = [ 0.533 -0.762 -0.970 0.817 -0.940 -0.375 0.266 0.225 ]
e = -0.020
O = [ 0.522 0.260 -0.247 -0.071 0.436 -0.138 0.026 -0.289 ]
Step 14: fi = [ 0.117 -0.969 -0.762 -0.970 0.817 -0.940 -0.375 0.266 ]
e = 0.023
O = [ 0.343 0.263 -0.251 -0.073 0.239 -0.135 0.019 -0.291 ]
Step 15: fi = [ 0.939 0.325 -0.969 -0.762 -0.970 0.817 -0.940 -0.375 ]
e = -0.204
O = [ 0.330 0.176 -0.220 -0.037 0.259 -0.124 0.048 -0.136 ]
Step 16: fi = [ 0.648 -0.632 0.325 -0.969 -0.762 -0.970 0.817 -0.940 ]
e = 0.048
O = [ 0.343 0.272 -0.217 -0.043 0.247 -0.112 0.052 -0.237 ]
Step 17: fi = [ 0.753 0.478 -0.632 0.325 -0.969 -0.762 -0.970 0.817 ]
e = 0.552
O = [ 0.765 0.439 -0.471 -0.201 0.673 -0.355 0.232 -0.404 ]
Step 18: fi = [ 0.559 -0.946 0.478 -0.632 0.325 -0.969 -0.762 -0.970 ]
e = 0.023
O = [ 0.776 0.442 -0.450 -0.203 0.675 -0.358 0.225 -0.410 ]
Step 19: fi = [ 0.974 -0.256 -0.946 0.478 -0.632 0.325 -0.969 -0.762 ]
e = -0.030
O = [ 0.767 0.419 -0.408 -0.212 0.673 -0.359 0.229 -0.404 ]
Step 20: fi = [ 0.954 0.139 -0.256 -0.946 0.478 -0.632 0.325 -0.969 ]
e = -0.368
O = [ 0.517 0.275 -0.246 -0.015 0.438 -0.150 0.006 -0.256 ]
Step 21: fi = [ 1.736 0.134 0.139 -0.256 -0.946 0.478 -0.632 -0.325 ]
e = -0.045
O = [ 0.502 0.267 -0.248 -0.065 0.441 -0.150 0.056 -0.258 ]
Step 22: fi = [ 0.679 -0.488 0.134 0.139 -0.256 -0.946 0.478 -0.632 ]
e = 0.222
O = [ 0.664 0.329 -0.357 -0.126 0.545 -0.222 0.103 -0.349 ]
Step 23: fi = [ 0.685 0.531 -0.488 0.134 0.139 -0.256 -0.946 0.478 ]
e = 0.176
O = [ 0.675 0.341 -0.357 -0.115 0.558 -0.236 0.122 -0.346 ]
Step 24: fi = [ 1.015 -0.361 0.531 -0.488 0.134 0.139 -0.256 -0.946 ]
e = -0.220
O = [ 0.587 0.294 -0.397 -0.122 0.442 -0.245 0.111 -0.217 ]
Step 25: fi = [ 0.755 0.111 -0.361 0.531 -0.488 0.134 0.139 -0.256 ]
e = -0.173
O = [ 0.546 0.277 -0.362 -0.136 0.499 -0.218 0.071 -0.251 ]
Step 26: fi = [ 0.420 0.660 0.111 -0.361 0.531 -0.488 0.134 -0.139 ]
e = 0.310
O = [ 0.596 0.297 -0.314 -0.118 0.516 -0.186 0.091 -0.296 ]
Step 27: fi = [ 1.239 -0.775 0.660 0.111 -0.361 0.531 -0.488 -0.134 ]
e = 0.119
O = [ 0.615 0.321 -0.276 -0.078 0.532 -0.152 0.114 -0.301 ]
Step 28: fi = [ 0.242 -0.715 -0.775 0.660 0.111 -0.361 0.531 -0.488 ]
e = -0.093
O = [ 0.610 0.315 -0.297 -0.096 0.526 -0.163 0.102 -0.302 ]
Step 29: fi = [ 0.610 -0.327 -0.715 -0.775 0.660 0.111 -0.361 0.531 ]
e = -0.040
ПРИЛОЖЕНИЕ 3
Листинг программы прошивки ПЗУ
_TEXT segment byte public 'CODE'
assume cs:_TEXT, ds:_TEXT
org 100h
;
; Процедура инициализации
;
init:
;
; Обнуление O
;
mov di, offset O
mov ax, ds
mov es, ax
xor ax, ax
mov cx, 16
rep stosw
jmp start
start:
mov word ptr x, 0
mov word ptr x+2,0
mov word ptr z, 0
mov word ptr z+2,0
;
; r -> единичная матрица
;
mov word ptr i, 0
@1@58:
mov bx, word ptr i
mov cl, 5
shl bx, cl
mov ax, word ptr i
mov cl, 2
shl ax, cl
add bx, ax
mov word ptr r[bx+2], 16 256
mov word ptr r[bx], 0
inc word ptr i
cmp word ptr i, 8
jl short @1@58
;
; Настройка портов ввода-вывода
;
mov cx, 8
mov dx, 02h
@1@581:
add dx, 4
mov al, 1 111 0101B; ассинхр.,
; 6 бит символа, четный паритет
out dx, al
mov al, 11 1110B; приемик
out dx, al
loop @1@581
add dx, 4
mov al, 1 111 1101B; ассинхр.,
; 8 бит символа, четный паритет
out dx, al
mov al, 11 0011B; передатчик
out dx, al
;
; Обработка данных
;
calc:
;
; Ввод fi
;
mov cx, 8
mov dx, 0
mov bx, 0
@1@1599:
add dx, 4
in al, dx
mov byte ptr fi[bx], al
inc bx
loop @1@1599
;
; Обнуляем rfi
;
mov di, offset rfi
xor ax, ax
mov cx, 16
rep stosw
;
; Вычисление rfi
;
mov word ptr i, 0
@1@198:
mov word ptr j, 0
@1@226:
mov bx, word ptr j
mov al, byte ptr fi[bx]
mov ah, 0
mov word ptr temp, ax
fild word ptr temp
mov bx, word ptr i
mov cl, 5
shl bx, cl
mov ax, word ptr j
mov cl, 2
shl ax, cl
add bx, ax
fmul dword ptr r[bx]
mov bx, word ptr i
shl bx, cl
fadd dword ptr rfi[bx]
mov bx, word ptr i
shl bx, cl
fstp dword ptr rfi[bx]
fwait
inc word ptr j
cmp word ptr j, 8
jl short @1@226
inc word ptr i
cmp word ptr i, 8
jl short @1@198
;
; znam = 0.0;
;
mov word ptr znam+2,0
mov word ptr znam, 0
;
; Вычисление znam
;
mov word ptr i, 0
xor si, si
mov cl, 2
shl si, cl
add si, offset rfi
@1@450:
mov bx, word ptr i
mov al, byte ptr fi[bx]
mov ah, 0
mov word ptr temp, ax
fild word ptr temp
fmul dword ptr [si]
fadd dword ptr znam
fstp dword ptr znam
fwait
add si, 4
inc word ptr i
cmp si, offset rfi+32
jne short @1@450
@1@562:
;
; znam+=sigma;
;
mov ax, word ptr sigma
mov word ptr temp, ax
fild word ptr temp
fadd dword ptr znam
fstp dword ptr znam
fwait
;
; Транспонирование r
;
mov word ptr i, 0
@1@590:
mov ax, word ptr i
inc ax
mov word ptr j, ax
jmp @1@674
@1@618:
mov bx, word ptr i
mov cl, 5
shl bx, cl
mov ax, word ptr j
mov cl, 2
shl ax, cl
add bx, ax
mov ax, word ptr r[bx]
mov word ptr temp, ax
mov ax, word ptr r[bx+2]
mov word ptr temp+2,ax
mov dx, bx
mov bx, word ptr j
mov cl, 5
shl bx, cl
mov ax, word ptr i
mov cl, 2
shl ax, cl
add bx, ax
mov ax, word ptr r[bx]
mov word ptr temp+4,ax
mov ax, word ptr r[bx+2]
mov word ptr temp+6,ax
mov ax, word ptr temp
mov word ptr r[bx], ax
mov ax, word ptr temp+2
mov word ptr r[bx+2], ax
mov bx, dx
mov ax, word ptr temp+4
mov word ptr r[bx], ax
mov ax, word ptr temp+6
mov word ptr r[bx+2], ax
inc word ptr j
@1@674:
cmp word ptr j, 8
jge @@28
jmp @1@618
@@28:
inc word ptr i
cmp word ptr i, 8
jge @@29
jmp @1@590
@@29:
;
; Обнуление chisl
;
mov di, offset chisl
xor ax, ax
mov cx, 128
rep stosw
;
;
;
mov word ptr i, 0
@1@786:
;
; Вычисление chline
;
mov word ptr j, 0
@1@814:
mov bx, word ptr j
mov al, byte ptr fi[bx]
mov ah, 0
mov word ptr temp, ax
fild word ptr temp
mov bx, word ptr i
mov cl, 2
shl bx, cl
fmul dword ptr rfi[bx]
mov bx, word ptr j
shl bx, cl
fstp dword ptr chline[bx]
fwait
inc word ptr j
cmp word ptr j, 8
jl short @1@814
;
; Вычисление chisl
;
mov word ptr j, 0
@1@926:
mov word ptr l, 0
mov ax, word ptr i
mov cl, 5
shl ax, cl
mov dx, word ptr j
mov cl, 2
shl dx, cl
add ax, dx
mov si, ax
@1@982:
mov bx, word ptr l
mov cl, 5
shl bx, cl
mov ax, word ptr j
mov cl, 2
shl ax, cl
add bx, ax
fld dword ptr r[bx]
mov bx, word ptr l
shl bx, cl
fmul dword ptr chline[bx]
fadd dword ptr chisl[si]
fstp dword ptr chisl[si]
fwait
inc word ptr l
cmp word ptr l, 8
jl short @1@982
inc word ptr j
cmp word ptr j, 8
jl short @1@926
inc word ptr i
cmp word ptr i, 8
jge @@30
jmp @1@786
@@30:
;
; Вычисление r
;
mov word ptr i, 0
@1@1206:
mov word ptr j, 0
@1@1234:
mov bx, word ptr i
mov cl, 5
shl bx, cl
mov ax, word ptr j
mov cl, 2
shl ax, cl
add bx, ax
fld dword ptr chisl[bx]
fdiv dword ptr znam
fsubr dword ptr r[bx]
fstp dword ptr r[bx]
fwait
inc word ptr j
cmp word ptr j, 8
jl short @1@1234
;
; Вычисление k
;
mov bx, word ptr i
mov cl, 2
shl bx, cl
fld dword ptr rfi[bx]
fdiv dword ptr znam
fstp dword ptr k[bx]
fwait
inc word ptr i
cmp word ptr i, 8
jge @@31
jmp @1@1206
@@31:
;
; e = 0.0;
;
mov word ptr e, 0
mov word ptr e+2,0
;
; Вычисление e
;
mov word ptr i, 0
xor si, si
mov cl, 2
shl si, cl
add si, offset O
@1@1486:
mov bx, word ptr i
mov al, byte ptr fi[bx]
mov ah, 0
mov word ptr temp, ax
fild word ptr temp
fmul dword ptr [si]
fadd dword ptr e
fstp dword ptr e
fwait
add si, 4
inc word ptr i
cmp si, offset O+32
jne short @1@1486
@1@1598:
;
; e = ksi-e;
;
mov al, byte ptr fi
mov ah, 0
mov word ptr temp, ax
fild word ptr temp
fsub dword ptr e
fstp dword ptr e
fwait
;
; Вычисление O
;
mov word ptr i, 0
@1@1850:
mov bx, word ptr i
mov cl, 2
shl bx, cl
fld dword ptr k[bx]
fmul dword ptr e
fadd dword ptr O[bx]
fstp dword ptr O[bx]
fwait
inc word ptr i
cmp word ptr i, 8
jl short @1@1850
;
; Вывод O
;
mov ax, 100
mov word ptr temp, ax
mov ax, 0
mov word ptr temp+2,ax
mov cx, 8
mov bx, 0
@1@1860:
fld dword ptr O[bx]
fmul dword ptr temp
fistp word ptr temp+4
mov al, byte ptr temp+4
out 20h, al
add bx, 4
loop @1@1860
jmp calc
;
; RAM
;
i db 2 dup (?)
j db 2 dup (?)
l db 2 dup (?)
sigma dd 0.5
x db 4 dup (?)
z db 4 dup {?}
e db 4 dup (?)
r db 256 dup (?)
k db 32 dup (?)
O db 32 dup (?)
fi db 8 dup (?)
temp db 8 dup (?)
tmpr db 4 dup (?)
rfi db 32 dup (?)
znam db 4 dup (?)
chisl db 256 dup (?)
chline db 32 dup (?)
_TEXT ends
end init
ПРИЛОЖЕНИЕ 4
Временные диаграммы работы системы Рисунок 1. Цикл чтения из ОЗУ Рисунок 2. Цикл записи в ОЗУ Рисунок 3. Цикл чтения из ПЗУ
Время | Значение | Комментарий | |
Tc | 61 нс | Длительность цикла шины = 2*TCLK2 | |
T82 | 10 нс | Задержка на защелках адреса 8282 | |
T86 | 10 нс | Задержка приемопередатчиках 8286 | |
Tram | 45 нс | Время чтения/записи данных ОЗУ | |
Trom | 50 нс | Время выборки данных из ПЗУ | |