首先对新接收的字节与前一接收的字节进行循环移位,即R6 与R7进行移位,每移一位RlO作增1操作记录移位的位数,然后 与块同步1(50=01010000)进行比较,若相等则说明子同步块l已找 到,设置子同步块1的标志GET SYNCl为O,同时保存移位计数 器R10的值。若循环8次后仍未找到01010000,则说明未找到子 同步块1,中断返回。子同步块1的检测流程如图4.7所示。 关键代码:
BnW#GET SYNCl,PRoG FLAGS//首先测试子同步块l 是否找到
JNZ FIND SYNCl∥否,则跳入FIND
SⅥ屺1程序段
MOV.B REQUIRED SHIFTS,Rl l//是,保存移动位数到Rl l
FIND——SYNCl RLC。B R6||左硌
l∽.B R7//左移
INC.B R10#RIO自增
CMP.B #BLK SYNC 1,R7//比较是否与子同步块1相等 JEQ FOUND SYNCl//是,进入FOUND SYNCl CMP.B #008H,R10//比较是否循环8次 JNE FIND SYNCI//否,继续左移
FOUND—.SYNC1
BIC.W #GET_SYNC1,PROG_FLAGS MOV.B R10,REQUIRED
西南交通大学硕士研究生学位论文第36页 图4.7子同步块l的检测流程图 2.子同步块2的检测
.当子同步块1找到后,便进入子同步块2的检测。因为子 同步块2是紧接着子同步块1之后的一个字节,所以检测过程为 比较R7与BLK SYNC2的值是否相等,若相等说明说明系统达到 同步,设置GET SYNC2为0,否则说明是伪同步,设置 GET SYNCl和GET SYNC为1,中段返回,重新进行同步。子 同步块2的检测流程如图4.8所示。
西南交通大学硕士研究生学位论文第37页 图4-8子同步块2的检测流程图 关键代码:
BnW #GET SYNC2,FROG FLAGs//测试子同步块2 MOV.B R7,RFP,X
BUF(FROMP强㈣)同步,开始接
收数据
//已
JNZ FIND SⅥ呵C2∥未同步,进入FIND SYNC2
FIND——SYNC2
CMP.B #BLK趴门崎C2,R7//比较是否相等 JEQ FOUND SYNC2//相等,跳入FOUND SYNC2
BIS.W搬、ET SYNCl,PROG FLAGS//置同步块1为假 BIS.W #GET SYNC2,PROG FLAGS//置同步块2为假
FOUND—.SYNC2
BIC.W #GET SYNC2,PROG FLAGS//同步块2找到
4.5.3时间间隔设置
上面讨论了TDD的实现过程和同步检测过程,由此可以看出
系统的发送和接收之间的转换过程。即程序进入发送状态将数据 发送完毕后,便迅速切换至接收状态。在接收状态接收完毕后, 便迅速切换至发送状态。
而所有对发送、接收的使能标志的设置恰好是在对方结束本 状态时进行的,也就是说两种状态转换的前提是在对方状态中实 西南交通大学硕士研究生学位论文第38页
现的,这样的设置刚满足了设备之间需在时间上准确同步的要求。 为了保证转换的可靠性,同时考虑到射频模块在发送与接收 之间的转换时间,时间间隔保护带如下设置。 关键代码:
DELAY
DEC.W TORF—CNTR//减l CMP #0FFFCH,TOP.r'
JN-E DELAY//否,继续循环
另外,由于系统不可避免的会遭NJ'I\界的干扰,所以丢失同
步的信号的情况也会时有发生。为了避免因丢失同步信号而造成
的系统无法完成从接收状态转换到发送状态的过程,系统专门设 置了TIMERB用于若在30ms内还未接收到同步信息,则系统强制 进入发送状态 关键代码:
T眦RB
MOV.W #09E4H,TBCll∥设置TBCTL寄存器 BIS。W #ENABLE RFTX,PROG nAGS∥设置发送标志
RETI
4.6功能选择模块
在讨论了系统初始化模块、数据流控制模块以及TDD通信模块 的基础上,就可以实现系统的单呼、群呼功能了。
4.6.1系统单呼通信过程
点对点私密呼叫(简称:单呼),是指网内两个用户间的双工呼
叫。过程是首先是选择信道,然后进行通信。
1.信道频率选择
根据射频芯片特性,可软件编程将系统分为10个信道㈨。系 统的信道分配方案如表4-1所示。 表4-1信道分配表
信道编号信道频率(MHz)
信道0(公共信道) 岛.4.000MHz 信道l(通话信道) fo-3.500MHz 信道2(通话信道) fo-3.000MHz 信道3(通话信道) 毛-2.500MHz 信道4(通话信道) fo-2.000MHz 信道5(通话信道) fo-1.500MHz 信道6(通话信道) foq.000MHz 信道7(通话信道) fo-0.500MHz
西南交通大学硕士研究生学位论文第39页
其中信道0为公共的寻呼信道,即所有终端的呼叫应答过程 均在此信道上进行。信道l至信道9为通话信道,即呼叫连接成 功后,通信终端转到信道1至信道9其中之一的空闲信道上进行 通话,通话的整个过程终端都占用该信道,通话完毕后释放该信 道№‘rl。信道之间的变换是通过SELECT RF CHANNEL中断程序 实现的,按一次中断,信道改变一次。SELECT RF CHANNEL中 断程序主要是对通过C.BUS对CCl000各个频率寄存器进行设置, 包括MAIN、FERQ 0A/B、FEP.Q 1A/B、FERQ 2A/B和PLL等 寄存器的操作。
现只给出信道O的设置代码,其他信道设置与此类似:
SELECT RF CHANNEL0
MOVW #FREQ 2A WILRl4 MOVW j9}00CCH.R13 CALL螂U旧USW2
MOVW #FREQ 1A WR,R14 MOV:W 加0COH-R13
CALL赧FBUSW2
MOVW #FREQ 0A W1LRl4 MOV:W 加000H.Rl3 CALL撑IUBUSW2
MOVW #FREQ 2B WR,R1 4 MOVW 加057H.R1 3 CALL搠UmUSW2
MOVW缎7l汪0 1B WR,R14 MOVW #00A8H.Rl 3 CALL船心BUSW2
MOVW #FREQ 0B WR,R14 MOVW搬)oFAH.Rl3
CALL搠强BUSW2
MOVB #70H.PLL RX MOV.B #30H,PLL_TX 2.呼叫过程
假设有两个移动台要进行通话,移动台A呼叫移动台B,首
先移动台A在信道l至信道9进行扫描,判断是否有空闲的信道, 如果有则记录下该信道,然后在信道0发起呼叫,待呼叫成功后 移动台A与移动台B都跳到之前查找到的空闲信道,在完成同步、 建立连接的工作之后开始进行通话,通话完毕则释放该信道完成 西南交通大学硕士研究生学位论文第40页 单呼过程。
系统主程序MAIN LOOP段负责控制整个系统的单呼流程, 当电源启动并进行连续通信时,它将不断启动RF的接收
S聊RFRX或
发送START
M匕~IN LOOP
RFrX模式,而RF的接收和发送模
式的交替更迭是在对方状态中设置实现的。图4-9为系统单呼过程 流程图。 关键代码:
BⅡ.W #ENABLE RFTX,PRoG FLAGS//是否进入发送
Jz SKIP—START—RFTX
CALL #START RFTX//调用发送程序开始发送
SKIP—,START—.RFTX
BIT.W #ENABLE RFRX,PRoG FLAGS∥是否进入接收
Jz SKIP—START—RFRX CALL
#START RFRX//调用接收程序开始接收
SKⅡ,START RFRX
JMP MAINLOOP∥返回程序开始处 图4.9系统单呼过程流程图
西南交通大学硕士研究生学位论文第41页
4.6.2系统群呼通信过程
群呼是指具有最高优先级的移动台对同一组的所有其他移
动台的呼叫,该功能是集群系统中最显著、最为重要的部分,也 是公众移动通信网所不具有的。由于本系统具有TDD的传输特性, 因此群呼的实现是在同一信道上,这与多载波技术方式相比,显 著提高了频谱利用率。
单呼通信过程是两个移动台之间进行全双工通信,而群呼通 信过程可被看成是一对多的半双工通信,因此在软件实现上与单
呼通信过程有较大区别。
群呼的过程如下:初始时使所有移动台处于接收状态。 1.主叫方
对于具有高优先级的移动台设置一个中断按键(P2.7),当按下 该键时,它进入发送程序,同时发起对组内所有移动台的呼叫。 该发射程序与单呼发射程序不同之处是,要使主叫方一直处于发
送数据的状态,为此要两步处理:1.设置发送标志始终开:2.延时 一段时间。主叫方的中断处理流程如图4-10所示。 图4-10主叫方的中断处理流程图 关键代码:
MOV.B#000H,ZHUANHUANI砌始复制为0
MOV.B #001H,ZHUANHUANI//按中断键后,赋值为1 将下面三行代码放置于一段不断开起的中断段 CMX649一TRANSFER内,即可实现发送标志始终开。 西南交通大学硕士研究生学位论文第42页 CMP.B #001H,ZHUANHUANl//比较是否相等 JNE DONT START l强TX//不相等时跳过下面开起
发送程序的标志,显然经过中断键后,会执行下面的语句。 BIS.W #ENABLE RFTX,PROG FLAGS//发送程序 在START RFTX段中判断ZHI,AⅫ叭7ANl的值 CMP.B #001 H,ZHUANHUANI
厄Q STARTTX
DELAY
STAR瞰
BIS.B #UTXIEl,m2//开起中断模块,进入发射
DEC.W TORF—CNTR CMP #0FFFCH,TORF_CNTR
JNE DEIAy
2.被叫方
被叫方得到呼叫后依次进入指定的信道,进行通信。而各
个被叫方也相应产生一个中断程序处理,使被叫方始终处于数据 接收状态。实现被叫方的中断处理程序分别如下:1.关闭发送使能 标志;2.延时一段时间;3.暂时关闭TIMERB。被叫方中断处理 流程图如4.1l所示。
图4-11被叫方中断处理流程图
西南交通大学硕士研究生学位论文第43页 关键代码:
MOVB 加ooH.ZHUANHUANl//7初始复制为0
在CMX649 TRANSFER内对Z坝,AⅫ吸IANl的值进行比较 CMP.B #001H,ZHIIANHUANl//比较
JNE DONT START
RF咧,因被叫方未按中断键,
所以ZHUANHUANl始终为初始值O,所以不会进入发射状态。