Автор работы: Пользователь скрыл имя, 11 Мая 2014 в 15:33, курсовая работа
Курсовой проект выполняется с целью закрепления знаний по курсу “Микропроцессорные системы” и развития навыков самостоятельного проектирования микропроцессорных систем, специализированных на конкретный вид информации.
Задачами курсового проекта является:
• практическое овладение методикой проектирования микропроцессорных систем;
• анализ вариантов проектных решений и выбор на его основе оптимального решения;
• синтеза функциональной схемы микропроцессорной системы на основе анализа исходных данных и принятого оптимального решения;
ВВЕДЕНИЕ 4
ТЕХНИЧЕСКОЕ ЗАДАНИЕ 5
АНАЛИЗ АЛГОРИТМА ВЫЧИСЛЕНИЙ 8
ОПРЕДЕЛЕНИЕ СОСТАВА МПС 9
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 11
ВЫБОР МПК И РАЗРАБОТКА АРХИТЕКТУРЫ МПС 12
ПРОЕКТИРОВАНИЕ ПРОЦЕССОРА МПС 14
РАЗРАБОТКА ПОДСИСТЕМЫ ПАМЯТИ МПС 22
РАЗРАБОТКА ПОДСИСТЕМЫ ВВОДА-ВЫВОДА 23
РАЗРАБОТКА ТЭЗА 26
ЗАКЛЮЧЕНИЕ 27
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 29
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
O = [ 0.607 0.311 -0.304 -0.107 0.519 -0.173 0.094 -0.306 ]
Листинг программы прошивки ПЗУ.
_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],16256
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,11110101B ; ассинхр.,
; 6 бит символа, четный паритет
out dx,al
mov al,00111110B ; приемик
out dx,al
loop @1@581
add dx,4
mov al,11111101B ; ассинхр.,
; 8 бит символа, четный паритет
out dx,al
mov al,00110011B ; передатчик
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
Временные диаграммы работы системы
Рисунок 1. Цикл чтения из ОЗУ
Рисунок 2. Цикл записи в ОЗУ
Рисунок 3. Цикл чтения из ПЗУ
Время |
Значение |
Комментарий |
Tc |
61 нс |
Длительность цикла шины = 2*TCLK2 |
T82 |
10 нс |
Задержка на защелках адреса 8282 |
T86 |
10 нс |
Задержка приемопередатчиках 8286 |
Tram |
45 нс |
Время чтения/записи данных ОЗУ |
Trom |
50 нс |
Время выборки данных из ПЗУ |
Информация о работе Проектирование микропроцессорной системы для идентификации объекта управления