Автор работы: Пользователь скрыл имя, 11 Мая 2014 в 15:33, курсовая работа
Курсовой проект выполняется с целью закрепления знаний по курсу “Микропроцессорные системы” и развития навыков самостоятельного проектирования микропроцессорных систем, специализированных на конкретный вид информации.
Задачами курсового проекта является:
• практическое овладение методикой проектирования микропроцессорных систем;
• анализ вариантов проектных решений и выбор на его основе оптимального решения;
• синтеза функциональной схемы микропроцессорной системы на основе анализа исходных данных и принятого оптимального решения;
ВВЕДЕНИЕ 4
ТЕХНИЧЕСКОЕ ЗАДАНИЕ 5
АНАЛИЗ АЛГОРИТМА ВЫЧИСЛЕНИЙ 8
ОПРЕДЕЛЕНИЕ СОСТАВА МПС 9
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 11
ВЫБОР МПК И РАЗРАБОТКА АРХИТЕКТУРЫ МПС 12
ПРОЕКТИРОВАНИЕ ПРОЦЕССОРА МПС 14
РАЗРАБОТКА ПОДСИСТЕМЫ ПАМЯТИ МПС 22
РАЗРАБОТКА ПОДСИСТЕМЫ ВВОДА-ВЫВОДА 23
РАЗРАБОТКА ТЭЗА 26
ЗАКЛЮЧЕНИЕ 27
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 29
При проектировании ЗУ МПС решались задачи разработки схемы накопителя информации и схемы сопряжения ОЗУ и ПЗУ с системной шиной.
Потребность в оперативной памяти определяется по ассемблерной программе:
Особенность построения модулей памяти для микропроцессора 80386 состоит в том, что для обращения к данным используется 32-х разрядная шина данных (т.е. обмен производится по 4 байта, нужный байт выбирается по сигналам выбора байтов BE0#-BE3#). На основании этого модули памяти строятся из четырех банков с разрядностью 1 байт.
Накопитель OЗУ строится на основе микросхем КМ185РУ8 статического типа размерностью 256´8, с временем записи/считывания 45нс, Рсс = 915мВт. Накопитель ПЗУ строится на основе микросхем 556РТ17 размерностью 512´8, с временем считывания 50нс, Рсс = 998мВт.
Из временных диаграмм приведенных в приложении 4 следует, что организация тактов ожидания при обращении к памяти не требуется, т.к. циклы чтения/записи укладываются во временные ограничения – два цикла процессора T1 + T2 = 1/33МГц + 1/33МГц = 61нс.
Адресный выход МП A11 и выход M/IO# используются для выбора одного из адресуемых пространств, а сигналы BE0#, BE1#, BE2#, BE3# используются для выбора адресуемого байта в модулях ОЗУ или ПЗУ.
Объем памяти был выбран исходя из потребностей системы и адресное пространство МПС разделено и доступно для использования следующим образом:
M/IO |
А11 |
Диапазон адресов |
Адресуемое пространство |
0 |
0 |
0000h – 0FFFh |
Порты ввода/вывода |
1 |
0 |
0000h – 0FFFh |
ОЗУ объемом 1Кбайт |
1 |
1 |
1000h – 1FFFh |
ПЗУ объемом 2Кбайта |
Подсистема ввода-вывода МПС представляет собой совокупность каналов ввода-вывода, каждый из которых обслуживает отдельные ВУ. Канал содержит средства сопряжения с СШ (интерфейс ВУ) и средства управления вводом-выводом и реализуется аппаратными средствами и программным обеспечением.
Так как в МПС информация поступает от восьми датчиков, то в процедуре ввода, прежде чем приступить к приему данных, последовательно выбирается ВУ, с которым будет производиться обмен. Нужный датчик задается в цикле, путем записи в регистр DX его номера. Используя данный номер, аппаратными средствами (дешифратор адреса и средствами управления) разрешается прием от источника с заданным номером. Интерфейс канала реализуется на основе портов ввода-вывода .
Подключение МС последовательного порта.
Интерфейсы последовательных каналов В/В реализуются на БИС программируемого интерфейса последовательной связи, например, КР580ВВ51А.
БИС КР580ВВ51А представляет собой универсальный синхронно-асинхронный приемопередатчик последовательной связи, выполняющий функции приема и преобразования параллельных форматов слов данных в последовательные форматы со служебными символами для передачи по КС (каналу связи) и последовательных форматов, принимаемых из КС слов данных в параллельный формат для ввода в процессор. БИС может быть запрограммирована для работы в 5 режимах: асинхронная передача, асинхронный прием, синхронная передача, синхронный прием с внутренней синхронизацией, синхронный прием с внешней синхронизацией. Контролируются ошибки в принимаемых словах данных на четность или нечетность, ошибки в структуре кода при асинхронном приеме, возникающие вследствие отсутствия стоповых битов, а также ошибки наложения, возникающие в результате нарушения синхронизации обмена, когда очередное слово поступает до считывания предыдущего. Скорость обмена до 64000 бод.
Управление передачей.
Управление передачей регулирует всю деятельность, связанную с передачей последовательных данных. Он получает и вырабатывает следующие сигналы, и внешние, и внутренние, для выполнения этой функции:
Передача данных.
При синхронной передаче выход TxD постоянно находится в маркерном уровне, пока система не пошлет свой первый символ, который является символом синхронизации КР580ВВ51А. Все биты выдвигаются по заднему фронту ТхС.
Когда передача началась, поток данных на выходе TxD должен продолжаться со скоростью ТхС. Если система не обеспечивает КР580ВВ51А символами данных до того, как буфер передачи становится пустым, то в поток данных будут автоматически вставляться символы синхронизации. В этом случае бит ТхЕ в регистре состояния переключается в высокое состояние для сигнализации того, что КР580ВВ51А пуст и передаются символы синхронизации. ТхЕ не переходит в низкое состояние, когда выдвигается символ синхронизации. Бит состояния ТхЕ сбрасывается автоматически при записи в КР580ВВ51А символа данных.
Управление приемом.
Прием данных.
Приемник получает последовательные данные, преобразует их в параллельный формат, проверяет на биты или символы, которые зависят от метода связи, и посылает обработанный символ в системный блок. Вход последовательных данных приходит на вывод RxD и тактируется по переднему фронту RxC.
Процедура программирования КР580ВВ51А.
КР580BB51A загружается набором управляющих слов, определяющих среду связи. Управляющие слова разбиваются на два формата: инструкция режима и инструкция команды. Инструкция режима и команды должны соответствовать определенной последовательности для надлежащей работы устройства. Инструкция режима должна быть вставлена непосредственно после операции сброса, перед использованием КР580ВВ51А для связи. Требуемые символы синхронизации для выбранного метода связи загружаются после этого в КР580ВВ51А. Все управляющие слова, записанные в КР580ВВ51А после инструкции режима, будут обозначать инструкцию команды. Сопрягается КР580ВВ51А с системными шинами процессора через выводы шины данных D7-D0, управляемые сигналами выборки БИС, чтения, записи, подаваемыми на входы CS, C/D, RD, WR. Управление входом C/D выполняется с линии А2.
Для чтения/записи данных из портов ввода/вывода достаточно только обращение к соответствующему адресному пространству.
Конструктивно препроцессор при заданном размере плат может быть выполнен на одном ТЭЗе. Кроме микросхем ТЭЗ включает:
Для защиты от вибраций и ударов необходимо использовать конструкции повышенной прочности и специальные держатели, которые также выступают в качестве радиаторов для отвода тепла (основные источники тепла – процессор и сопроцессор).
Тепловой режим обеспечивается средствами естественного воздушного охлаждения, и плата выполненна на металлической основе, рассеивающей тепло. В целях защиты элементов и печатной платы от влаги ТЭЗ покрывается лаком ПФЛ-86.
При проектировании микропроцессорной системы использовалось следующее программное обеспечение:
В результате выполнения курсового проекта была построена МПС на базе микропроцессора i80386DX33 для которой можно оценить следующие технические характеристики:
т.к. разрядность шины данных – 32 бита
т.к. МП 80386 выполняет одну команду в среднем за 5 тактов, в итоге быстродействие определяется: 33МГц / 5 = 6.6*106 опер/с
В ходе выполнения курсового проекта были решены следующие задачи проектирования МПС:
Критерий качества системы равен:
Листинг программы моделирования объекта наблюдения и МПС.
#include <stdlib.h>
#include <stdio.h>
#include <mem.h>
#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<R+L; i++) r[i][i] = 1.0;
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)*
x = ((float)rand()/RAND_MAX)*2-1;
z = 0.0;
for (i=0; i<R+L; i++) z+=real[i]*fi[i];
z+= ksi;
printf("Step %d: fi = [ ", step);
for (i=0; i<R+L; i++) printf("%.3f ", fi[i]);
printf("]\n");
memset(rfi, 0, sizeof(float)*(R+L));
for (i=0; i<R+L; i++)
for (j=0; j<R+L; j++) rfi[i]+=r[i][j]*fi[j];
znam = 0.0;
for (i=0; i<R+L; i++) znam+=fi[i]*rfi[i];
znam+=sigma;
for (i=0; i<R+L; i++)
{
for (j=i+1; j<R+L; 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<R+L; i++)
{
for (j=0; j<R+L; j++) chline[j] = rfi[i]*fi[j];
for (j=0; j<R+L; j++)
{
for (l=0; l<R+L; l++)
{
chisl[i][j]+=chline[l]*r[l][j]
}
}
}
for (i=0; i<R+L; i++)
{
for (j=0; j<R+L; j++)
{
r[i][j]-=chisl[i][j]/znam;
}
k[i] = rfi[i]/znam;
}
e = 0.0;
for (i=0; i<R+L; i++) e+=fi[i]*O[i];
e = ksi-e;
for (i=0; i<R+L; i++) O[i]+=k[i]*e;
printf(" e = %.3f\n O = [ ", e);
for (i=0; i<R+L; i++) printf("%.3f ", O[i]);
printf("]\n");
}
}
Результаты моделирования объекта наблюдения и МПС.
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 ]
Информация о работе Проектирование микропроцессорной системы для идентификации объекта управления