📄 qpsk dsp.c
字号:
version: 1.0
data: july-11-1999
authors: ren guo chun
comment: original created
cpu type: ti_tms32054xx
compiler: tms320c54x assembler
version: 1.02(pc)
include files: .mmregs
functional description:
QPSK modem
2400 sym/s
fc=1800Hz
fs=14400 sample/s
51 order fir filter
activation
activation example:
call modem_psk
call ini_modem
External Data
.ref CRAM2
temporary data:
dp=4
cram0
cram1
cram2
cram3
cram4
cram5
cram6
cram7
data structure
SD_FILA .set 400H
SD_FILB .set 500h
SD_1800 .set 600h
SD_NUL .set 700H
SD_2PP .set SD_NUL+1*51
SD_2PN .set SD_NUL+2*51
SD_4PP .set SD_NUL+3*51
SD_4PN .set SD_NUL+4*51
SD_DAB0 .set 7000h
ram define:
SD_FBIP as SD_FILA and SD_FILB
SD_FBOP as SD_FILA and SD_FILB
SD_DAIO as SD_DAB0
SD_DAOP as SD_DAB0
inut data:cram2
data format: 2bit data
output data:SD_DAB0
data format:16bit data buffer
modem_psk:
CALL get_data
CALL wave_filter
CALL fc_modem
RET
ini_modem
get_data
LD CRAM2,A
AND #11,A
SFTL A,2
ADD #wave_rd_tab,A
READA CRAM0
ADD #1,A
READA CRAM1
RET
wave_filter
LD SD_FBIP,A
STLM A,AR1
ADD #100H,A
STLM A,AR2
LD CRAM0,A
STLM A,AR3
LD CRAM1,A
STLM A,AR4
STM #51-1,BRC
RPTBD wave_add_m00-1
STM #80H,BK
LD *AR3+,A
ADD *AR1,A
STL A,*AR1+%
LD *AR4+,A
ADD *AR2,A
STL A,*AR2+%
wave_add_m00
LD SD_FBIP,A
SUB #SD_FILA,A
ADD #6,A
AND #80H-1,A
ADD #SD_FILA,A
STL A,SD_FBIP
RET
fc_modem
LD #DODP,DP
LD SD_DAOP,A
SUB SD_DAIP,A
NOP
NOP
XC 2,ALEQ
ADD #SD_DABL,A
NOP
SUB #090H,A
BC sd_mod+m00,ALT
RSBX SXM
LD SD_FBIP,A
SUB SD_FBOP,A
NOP
NOP
XC 2,ALT
ADD #80H,A
NOP
SUB #10H,A
SSBX SXM
BC sd_mod_m02,AGEQ
LD BIT_FLG,A
AND #11B,A
BC sd_mod_m00,ANEQ
sd_mod_m02
LD SD_FBOP,A
STLM A,AR2
ADD #100H,A
STLM A,AR3
LD SD_DAIP,A
ADD #SD_DAB),A
STLM A,AR1
ST #3000H,CRAM1
STM #SD_1800,AR4
STM #SD_1800+2,AR5
STM #8-1,BRC
RPTBD sd_mod_m01-1
STM #80H,BK
MPY *AR2,*AR4+,A
MACR *AR3,*AR5+,A
STH A,CRAM0
LD CRAM1,T
MPY CRAM0,A
STH A,*AR1+
LD #0,A
STL A,*AR2+%
STL A,*AR3+%
sd_mod_m01
MVKD AR2,SD_FBOP
LD SD_DAIP,A
ADD #8,A
AND #SD_DABL-1,A
STL A,SD_DAIP
sd_mod_m00
RET
ini_modem:
SSBX FRCT
STM #SD_NUL, AR1
RPTZ A,#51-1
STL A,*AR1+
STM #SD_2PP,AR1
RPT #51-1
MVPD #ep_wavn,*AR1+
NOP
STM #51-1,BRC
STM #SD_2PP,AR1
STM #SD_2PN,AR2
RPTB ep_movd_m00-1
LD *AR1+,A
NEG A
STL A,*AR2+
ep_movd_m00
ST #5A82HmCRAM0
LD CRAM0,T
STM #50,BRC
STM #SD_2PP,AR1
STM #SD_4PP,AR2
STM #SD_4PN,AR3
RPTB ep_movd_m01-1
MPY *AR1+,A
STH A,*AR2+
NEG A
STH A,*AR3+
ep_movd_m01
STM #SD_1800,AR1
RPT #10h-1
MVKD #ef1800,*AR1+
RET
wave_rd_tab
.word SD_2PP,SD_NUL
.word SD_4PP,SD_4PP
.word SD_NUL,SD_2PP
.word SD_4PN,SD_4PP
.word SD_2PN,SD_NUL
.word SD_4PN,SD_4PN
.word SD_NUL,SD_2PN
.word SD_4PP,SD_4PN
;sqar cos k=0.35
ep_wave.word 0FFF6H,00003H,00013H,0001EH,00019H,0FFFAH,0FFC1H,0FF89H
.word 0FF85H,0FFE8H,000C2H,001DCH,002A9H,0026AH,00087H,0FCF9H
.word 0F89CH,0F53CH,0F52AH,0FA7EH,00633H,01781H,02BB9H,03ED2H
.word 04C7DH,05174H,04C7DH,03ED2H,02BB9H,01781H,00633H,0FA7EH
.word 0F52AH,0F53CH,0F89CH,0FCF9H,00087H,0026AH,002A9H,001DCH
.word 000C2H,0FFE8H,0FF85H,0FF89H,0FFC1H,0FFFAH,00019H,0001EH
.word 00013H,00003H,0FFF6H
;sin table 360/8 dobble
ef1800
.word 00000H,05A82H,07FFFH,05A82H,00000H,0A57FH,08002H,0A57FH
.word 00000H,05A82H,07FFFH,05A82H,00000H,0A57FH,08002H,0A57FH
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -