Блок электронного ключа на базе преобразования Фурье

Автор: Пользователь скрыл имя, 18 Декабря 2011 в 20:17, дипломная работа

Описание работы

Современный этап развития вычислительной техники характеризуется разработкой микропроцессорных средств. Микропроцессоры (МП) используются в качестве элементной базы для реализации устройств обработки данных. При этом каждая сфера применения МП предъявляет свои специфические требования к их составу и структуре. Особенно ярко эти требования выражены в области цифровой обработки сигналов (ЦОС), методы и средства которой широко используются в настоящее время в самых различных отраслях науки и техники.

Содержание

Содержание 2
Введение 3
1 Анализ задачи 5
2 Предварительное проектирование 6
2.1 Разбиение устройства на модули 6
2.2 Выбор соотношения между аппаратными и программными средствами 6
2.3 Построение структурной схемы устройства 7
2.4 Разработка алгоритма работы 8
3 Проектирование аппаратных средств 9
3.1 Разработка функциональной схемы устройства 9
4 Проектирование программного обеспечения 13
4.1 Уточнение алгоритма работы устройства 13
4.2 Разработка программного обеспечения устройства 13
Заключение 14
Литература 15
Приложение 16

Работа содержит 1 файл

БлокЭлектрКлюча.doc

— 236.00 Кб (Скачать)

          larp   AR0

          in     *+,PA0

          sach   *+

          sar    AR0,IntAddr

          blez   ExitInt

 

          lar    AR1,IntAddr

          lac    IntAddr

          sblk   buf1

          bnz    b1cur

          lalk   buf1

          sacl   IntAddr

 

b1cur:    lalk   buf0

          sacl   IntAddr

          call   Anlyze

 

ExitInt:  lar    AR0,IntTmp0

          lst1   IntTmp1

          lst    IntTmp2

          zalh   IntTmp4

          add    IntTmp3

          ret

********************************

Analyze:  lar    AR0,N         

          lar    AR7,N/2

          lar    AR1,IntAddr      

          lark   AR6,0

          call   FFT

 

          lar    AR0,N

          lrlk   AR1,IntAddr

          call   Ampl

 

          lrlk   AR0,IntAddr

          call   GetRez

 

          ret

 

********************************

HarmAn:   larp   AR1

          mar    *0+

          lac    *

          subk   resmin

          bgez   exit1

          lac    *

          subk   unresmax

          blez   exit0

          lac    *-

          sub    *+

          blz    exit1

          lac    *+

          sub    *

          blz    exit1

 

exit0:    lac    Result,1

          sacl   Result

          ret

exit1:    lack   1

          add    Result,1

          sacl   Result

          ret

*****************************

GetRez:   lark   AR1,f697

          call   HarmAn

          lark   AR1,f770

          call   HarmAn

          lark   AR1,f852

          call   HarmAn

          lark   AR1,f941

          call   HarmAn

          lark   AR1,f1209

          call   HarmAn

          lark   AR1,f1336

          call   HarmAn

          lark   AR1,f1477

          call   HarmAn

          lark   AR1,f1633

          call   HarmAn

 

          lar    AR7,Result

          larp   AR2

          lark   AR1,3

          lark   AR2,0

          lac    Result

          andk   0Fh

GRLoop:   sfr

          bnc    zero

          mar    *+

zero:     larp   AR1

          banz   FRLoop,*-,AR2

          lark   AR0,1

          cmpr   0

          bbz    error

 

          lac    Result,4

          andk   0Fh,8

          sach   Result

          lac    Result

          lark   AR1,3

          lark   AR2,0

GRLoop:   sfr

          bnc    zero

          mar    *+

zero:     larp   AR1

          banz   FRLoop,*-,AR2

          lark   AR0,1

          cmpr   0

          bbz    error

 

          lac    Result

          lrlk   AR2,0FFFFh

l1:       mar    *-

          sfr

          bnc    l1

          sar    AR2,tmp

          sar    AR7,Result

 

          lac    Result

          andk   0Fh

          lrlk   AR2,0FFFFh

l2:       mar    *-

          sfr

          bnc    l2

 

          lac    tmp,4

          sar    AR2,tmp

          add    tmp

          sacl   Result

          ret

 

error:    zac

          subk   1

          sacl   Result

          ret

*****************************

Ampl:     larp   AR1

Aloop:    lt     *

         mpy    *+

          ltp    *

          mpy    *-

          apac

          sach   *+

          mar    *+,AR0

          banz   Aloop,*-,AR1

          ret

******************************

Out:      larp   AR1

loopR:    lac    *+

          mar    *+,AR0

          sacl   DXR

          banz   loopR,*-,AR1

          ret

*******************************

FFT:      ssxm

          ldpk   0

          sar    AR1,BufAddr

          larp   AR0     

          sar    AR0,tmp

          lark   AR0,0

          lac    tmp

loop:     sfr

          mar    *+

          bgz    loop,

          mar    *-

          sar    AR6,AR6_

          sar    AR7,AR7_

          sar    Ar1,PR

          lac    PR

          add    N

          addk   1

          sacl   QR

mainloop:

          sar    AR0,AR0_

          lar    AR2,PR

          lar    AR3,QR

          lrlk   AR4,sint

          lrlk   AR5,cost

 

lrloop:

          lar    AR0,step

          lar    AR7,AR7_

          lrlk   AR4,sint

          lrlk   AR5,cost

btrloop:

          call   btrfly         

          larp   AR4

          mar    *0+,AR5

          mar    *0+,AR7        

          banz   btrloop,*-,AR4 

          lar    AR0,AR7_

          larp   AR0

          mar    *+

          mar    *0+,AR2

          mar    *0+,AR3

          mar    *0+,AR6

          banz   lrloop,*-

 

          lac    AR6_,1         

          addk   2

          subk   1

          sacl   AR6_

          lar    AR6,AR6_

 

          lac    AR7_        

          addk   1           

          sfr

          subk   1,15

          sacl   AR7_

          lar    AR7,AR7_

          sfl                

          add    PR          

          addk   2

          sacl   QR

          lac    step

          sacl   step,1

 

          larp   AR0

          lar    AR0,AR0_

          banz   mainloop,*- ;

 

           lrlk   AR1,DataBuf0

          call   Replace

 

          ret

****************************

Replace:  sar    AR1,tmp

          rsxm

          zac

          sacl   j

          sacl   i

          larp   AR3

mnloop:   lar    AR3,tmp

          lar    AR4,tmp

          lac    i

          sub    j

          bgez   i>=j

          lar    AR0,i

          mar    *0+

          mar    *0+,AR4

          lar    AR0,j

          mar    *0+

          mar    *0+,AR3

          lac    *,0,AR4

          addh   *

          sacl   *+,0,AR3

          sach   *+

          lac    *,0,AR4

          addh   *

          sacl   *,0,AR3

          sach   *

 

i>=j:     lac    N/2_

          sacl   k

k<j:      lac    j

          sub    k

          blz    k>=j

          lac    j

          sub    k

          sacl   j

          lac    k,15

          sach   k

          b      k<j

k>=j:     lac    j

          add   k

          sacl   j

          lac    i

          addk   1

          sacl   i

          sub    N

          blz    mnloop

 

          ret

*****************************

btrfly    larp   AR2

          lac    *,15,AR3

          add    *,15,AR2

          sach   *+,0,AR3

          subh   *

          sach   *+,0,AR2

 

          lac    *,15,AR3

          add    *,15,AR2

          sach   *+,0,AR3

          subh   *

          sach   *-

 

          lt     *+,AR5

          mpy    *,AR3

          ltp    *-,AR4

          mpy    *,AR5

          mpya   *,AR3

          lt     *

          sach   *+,0,AR4

          pac

          mpy    *,AR3

          spac

          sach   *+

Информация о работе Блок электронного ключа на базе преобразования Фурье