安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx

上传人:b****2 文档编号:13956749 上传时间:2023-06-19 格式:DOCX 页数:50 大小:32.11KB
下载 相关 举报
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第1页
第1页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第2页
第2页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第3页
第3页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第4页
第4页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第5页
第5页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第6页
第6页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第7页
第7页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第8页
第8页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第9页
第9页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第10页
第10页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第11页
第11页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第12页
第12页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第13页
第13页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第14页
第14页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第15页
第15页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第16页
第16页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第17页
第17页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第18页
第18页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第19页
第19页 / 共50页
安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx_第20页
第20页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx

《安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx》由会员分享,可在线阅读,更多相关《安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx(50页珍藏版)》请在冰点文库上搜索。

安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析.docx

安徽工业大学IS95移动通信系统正向业务信道的设计与开发程序更改加质疑问题剖析

程序均已经改正,本文档包括三个文件(.ASMwalsh.INC.cmd)及质疑问题总结:

IS95.ASM

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

***定时20ms循环处理话音数据包

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

***伪指令不占空间不影响执行速度,只是定义和描述但对汇编链接有重要指示作用

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

.title"IS95前向信道设计";程序名

.global_c_int00;全局起始标号

.mmregs;把所有存储器映像寄存器定义为全局型

.copy"walsh.inc";编译时从"walsh.inc"文件中复制walsh表

STACK.usect"stack",10H;自定义未初始化堆栈的设置(调用子程序,中断时将当前执行位置自动压栈)

.bsspn1,2048;.bss.text.date三个称为标准段,此处未初始化大小2048个字

.bsspn2,2048;2^15/16

.bssw,1536

.bsswa,1536

.bssiq,32;依次存储4组8个样点波形

;SIN0+COS0;SIN0+COS180;SIN180+COS0;SIN180+COS180

.bssp,4;P用于42级缓存三个,用于Wlash地址是4个

.bssq,4;P用于42级掩码三个,用于Wlash地址是4个

.bssv,1;用于记录pn码循环的位置0-2047

.bssk,1;k为偏置系数

.bssx,1

.bssy,1

.bssz,1

.data

cos:

.word07fffH,05a82H,00000H,0a57fH,08002H,0a57fH,00000H,05A82H

sin:

.word00000H,05A82H,07fffH,05a82H,00000H,0a57fH,08002H,0a57fH

PA0.set0

PA1.set1;速率标志1,2,4,8

PA2.set2

PA3.set3

PA4.set4

PA5.set5

PA6.set6

PA7.set7

PA8.set8

PA9.set9;输出调制波形

.sect".vectors";中断向量表(自定义已初始化段)

rst:

B_c_int00;(0号复位中断)无条件转移2个字

NOP

NOP;两个NOP占2个字,加在一起0号中断共四个字

.space15*4*16;预留1-15号中断地址空间,每个占四个字

int0:

Bclock;16号GPS外部中断

NOP

NOP

.space2*4*16;预留17.18号中断地址空间,每个占四个字

tint:

Btimeout;19号定时中断向量(20ms(ttt3))

NOP

NOP

.space12*4*16

.text;主程序

_c_int00

STM#STACK+10,SP;置堆栈指针

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

*初始化,产生四种SIN与COS相加的波形

*cos+sin;cos-sin;sin-cos;-cos-sin

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

SSBXSXM;=1符号扩展

STM#w,AR2;wwa两个中间变量

STM#wa,AR3

LD#cos,A

STM#7,BRC

RPTBddd-1

READA*AR2+

ADD#1,A;w中存8个cos样点

ddd:

LD#sin,A

STM#7,BRC

RPTBddd1-1

READA*AR3+

ADD#1,A;wa中存8个sin样点

ddd1:

STM#iq,AR4

STM#w,AR2

STM#wa,AR3

STM#7,BRC

RPTBttt-1

LD*AR2+,A

ADD*AR3+,A

STLA,*AR4+;*(iq)=cos0+sin0

ttt:

STM#w,AR2

STM#wa,AR3

STM#7,BRC

RPTBttt1-1

LD*AR2+,A

SUB*AR3+,A

STLA,*AR4+;*(iq+8)=cos0+sin180

ttt1:

STM#w,AR2

STM#wa,AR3

STM#7,BRC

RPTBttt2-1

LD*AR3+,A

SUB*AR2+,A

STLA,*AR4+;*(iq+16)=cos180+sin0

ttt2:

STM#w,AR2

STM#wa,AR3

STM#7,BRC

RPTBttt3-1

LD*AR2+,A

NEGA;对A取算术反

SUB*AR3+,A

STLA,*AR4+;*(iq+24)=cos180+sin180

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

**初始化PN1和PN2,准正交15级M序列

**先产生好引导序列,最后15个零,初始状态14个零一个一

**序列周期2^15-1=32768-1=32767,

**每两秒75个PN序列周期,1.2288M*2S=75*3276832768bit/16bit=2048字

**I(x)=x15+x13+x9+x8+x7+x5+1

**Q(x)=x15+x12+x11+x10+x6+x5+x4+x3+1

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

chushipn1:

STM#32766,BRC;PN1

LD#0x0001,A;移存器初态,初始状态14个零1个一,1为X位

STM#15,AR4;15-0循环计数器(记录数组是不是已经满了),一个字16位

STM#pn1,AR3;放置序列地址

ST#0x0001,*AR3;先输出1

RPTBPP1-1

LD#0,B;B为M序列反馈位

XORA,-4,B;X5与B异或

XORA,-6,B;X7与B异或

XORA,-7,B;X8与B异或

XORA,-8,B;X9与B异或

XORA,-12,B;X13与B异或

XORA,-14,B;X15与B异或

AND#0x0001,B

SFTLA,1;左移一位(A左为X15,右为X)

ORB,A;反馈位或到最低位

BANZPPP1,*AR4-;未积满一个字后转移到PPP1

STLB,*+AR3;装满了,先更新输出地址在把B输出去

STM#15,AR4

BPPP2

PPP1:

ADD*AR3,1,B;AR3左移一位加上B

STLB,*AR3;送回AR3

PPP2:

NOP

PP1:

LD*AR3,A

AND#0XFFFE,A;提前输出的1强制变为0

STLA,*AR3

chushipn2:

STM#32766,BRC;PN2

LD#0x0001,A;初始状态14个零一个一

STM#15,AR4;计数器,一个字16位

STM#pn2,AR3;放置序列地址

ST#0x0001,*AR3;先输出1

RPTBPP2-1

LD#0,B;B为M序列反馈位

XORA,-2,B;x3与B异或

XORA,-3,B

XORA,-4,B

XORA,-5,B

XORA,-9,B

XORA,-10,B

XORA,-11,B

XORA,-14,B

AND#0x0001,B

SFTLA,1;左移一位

ORB,A;反馈位或到最低位

BANZPPP3,*AR4-;未积满一个字后转移

STLB,*+AR3;更新输出地址

STM#15,AR4

BPPP4

PPP3:

ADD*AR3,1,B

STLB,*AR3

PPP4:

NOP

PP2:

LD*AR3,A;提前输出的1强制变为0

AND#0XFFFE,A

STLA,*AR3

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

*定时器初始化

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

ttt3:

SSBXINTM;=1,关闭所有可屏蔽中断

RSBXSXM;=0禁止符号位扩展

ST#0,*(x);初始化x=0,x为十次定时记数(绝对寻址)(A,@x是直接寻址)

STM#0,SWWSR;插入0等待周期

STM#0xffa8,PMST;改变中断向量映射到0xff80,IPTR取PMST的高九位

STM#9007h,CLKMD;PLLMUL=9(锁相环倍频系数),CLKIN=10M(外部晶振),CLKOUT=CLKINX(PLLMUL+1)=100M

STM#19999,PRD;该为PRD=20000-1;TDDR=10-1主频100M则定时2ms

STM#0039h,TCR

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

suspSTM#y,AR4;添加帧质量指示

PORTRPA1,*AR4;速率标志1,2,4,8

BIT*AR4,15-0;速率1(位测试)

BCbbb1,NTC;TC=0跳转到bbb1

CALLcrc12

LD#183,A;184比特信息卷积(里面8尾比特进行卷积)

CALLjuanji

STM#wa,AR5;码元重复1次,wa输出

STM#w,AR3;w输入

RPT#383

MVDD*AR3+,*AR5+

CALLjiaozhi

CALLraoluan

CALLkuopin

CALLpianzhi1

CALLpianzhi2

CALLqpsk

Bbbb;可以把速率一样的合并到公共端

bbb1:

BIT*AR4,15-1;速率2

BCbbb2,NTC

CALLcrc8

LD#87,A

CALLjuanji

STM#wa,AR5;码元重复2次,wa输出w输入

STM#w,AR3

STM#191,BRC

RPTBccb1-1

MVDD*AR3,*AR5+

MVDD*AR3+,*AR5+

ccb1CALLjiaozhi

CALLraoluan

CALLkuopin

CALLpianzhi1

CALLpianzhi2

CALLqpsk

Bbbb

bbb2:

BIT*AR4,15-2;速率4

BCbbb3,NTC

STM#w,AR3

STM#wa,AR4

RPT#39

MVDD*AR3+,*AR4+

LD#39,A

CALLjuanji

STM#wa,AR5;码元重复4次,wa输出w输入

STM#w,AR3

STM#95,BRC

RPTBccb2-1

MVDD*AR3,*AR5+

MVDD*AR3,*AR5+

MVDD*AR3,*AR5+

MVDD*AR3+,*AR5+

ccb2CALLjiaozhi

CALLraoluan

CALLkuopin

CALLpianzhi1

CALLpianzhi2

CALLqpsk

Bbbb

bbb3STM#w,AR3;速率8

STM#wa,AR4

RPT#15

MVDD*AR3+,*AR4+

LD#15,A

CALLjuanji

STM#wa,AR5;码元重复8次,wa输出w输入

STM#w,AR3

STM#47,BRC

RPTBccc-1

MVDD*AR3,*AR5+

MVDD*AR3,*AR5+

MVDD*AR3,*AR5+

MVDD*AR3,*AR5+

MVDD*AR3,*AR5+

MVDD*AR3,*AR5+

MVDD*AR3,*AR5+

MVDD*AR3+,*AR5+

cccCALLjiaozhi

CALLraoluan

CALLkuopin

CALLpianzhi1

CALLpianzhi2

CALLqpsk

nop

bbbnop

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

susp1LD*(x),A

SUB#10,A

BCsusp,AEQ;判断是否到20ms,取第二个数据包处理

Bsusp1

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

timeoutADDM#1,*(x);(绝对寻址)定时中断子程序1加到十即20ms

LD#10,A

SUB*(x),A

BCsecout,ALEQ

Bexit

secoutST#0,*(x)

exitNOP

RETE

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

*外部GPS时钟2秒钟复位一次

*根据偏置系数K确定引导序列的起始位置v

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

clock:

PORTRPA0,*(k);读偏置系数

LD*(k),2,A

AND#0x7fc,A

STLA,*(v)

STM#0FFFFh,IFR;所有中断标志置1

STM#0008h,IMR;TINT0=1定时中断开放

RSBXINTM;=0,开放所有可屏蔽中断

LDMTCR,A

AND#0FFEFH,A

STLMA,TCR;TSS=0,定时器启动工作

RETE

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

*CRC效验子程序

*12位帧质量指示码产生器

*w存储172位要效验的信息

*wa存储184位输出信息

*f(x)=x12+x11+x10+x9+x8+x4+x+1

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

crc12STM#w,AR3;间接寻址将输入数据数组w首地址给辅助寄存器AR3

STM#wa,AR4;间接寻址将输出数据数组wa首地址给辅助寄存器AR4

LD#0XFFF,B;B为12位移存器并初始化全1,左X12,右X

STM#171,BRC;计算172位CRC效验

RPTBnext-1

SFTLB,-11,A;取最高延迟位。

B累加器内的数据并未发生变化,A里面为X12

MVDD*AR3,*AR4+;数据由输入到输出,输入地址不变(下面要产生反馈位),输出地址加1【*ARX是间接寻址】

XOR*AR3+,A;最高延迟位与输入模2加产生反馈位存A

AND#0X0001,A

SFTLB,1;移存器移位(X11位进入X12位)

AND#0X0FFE,B;使B低12位的前11位保持不变,最后一位清0,也就是原理图中移位寄存器最左位清0

XORA,11,B;产生移存器的X12

XORA,10,B;产生移存器的X11

XORA,9,B;产生移存器的X10

XORA,8,B;产生移存器的X9

XORA,7,B;产生移存器的X8

XORA,3,B;产生移存器的X4

XORA,B;产生移存器的X(将反馈位写入X)

next:

NOP;将存在移存器中的校验12位码传递到信息位的最后12个字(NOP:

延时几个周期,避免流水线冲突)

SFTLB,-11,A;将移存器中的X12输出

AND#0X0001,A

STLA,*AR4+

SFTLB,-10,A;将移存器中的X11输出

AND#0X0001,A

STLA,*AR4+

SFTLB,-9,A;将移存器中的X10输出

AND#0X0001,A

STLA,*AR4+

SFTLB,-8,A;将移存器中的X9输出

AND#0X0001,A

STLA,*AR4+

SFTLB,-7,A;将移存器中的X8输出

AND#0X0001,A

STLA,*AR4+

SFTLB,-6,A;将移存器中的X7输出

AND#0X0001,A

STLA,*AR4+

SFTLB,-5,A;将移存器中的X6输出

AND#0X0001,A

STLA,*AR4+

SFTLB,-4,A;将移存器中的X5输出

AND#0X0001,A

STLA,*AR4+

SFTLB,-3,A;将移存器中的X4输出

AND#0X0001,A

STLA,*AR4+

SFTLB,-2,A;将移存器中的X3输出

AND#0X0001,A

STLA,*AR4+

SFTLB,-1,A;将移存器中的X2输出

AND#0X0001,A

STLA,*AR4+

AND#0X0001,B;将移存器中的X输出

STLB,*AR4

RET

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

*crc效验:

F(X)=X8+X7+X4+X3+X+1

*8位帧质量指示码产生器

*w存储80位要效验的信息

*wa存储88位输出信息

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

crc8STM#w,AR3;输入数据首地址给AR3

STM#wa,AR4;输出数据首地址给AR4

LD#0XFF,B;B为8位移存器初始化全1,右为刚入,左为最早入

STM#79,BRC;计算80位CRC效验

RPTBnex-1

SFTLB,-7,A;取最高延迟位

MVDD*AR3,*AR4+;数据由w->wa

XOR*AR3+,A;最高延迟位与输入模2加产生反馈输入

AND#0X0001,A

SFTLB,1;移存器移位

AND#0X0FE,B

XORA,7,B;产生移存器的X8

XORA,6,B;产生移存器的X7

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2