TDD模式的数字对讲无线语音传输系统设计与实现(6)

2019-01-27 19:23

式控制进出CMX649的语音数据流,同时MSP430接收来自射频 的语音数据字节并送至CMX649进行处理,处理后的语音数据从 CMX649送出,经放大后送至语音输出模块。

MSP430传送数据至CMX649的同时也接收来自CMX649的 语音数据。定义USART0的缓存RXBUF0与TXBUF0分别用来存 储接收来自CMX649的数据字节以及准备发送至CMX649的数据

字节,使

用通用寄存器R4(FROM649㈣)作接收CMX649的数

据字节计数器,1L0(T0649 C套mU作发送至CMX649的数据字节 计数器。当缓存RXBUF0与TXBUF0存满一个字节准备发送或已 西南交通大学硕士研究生学位论文第30页

接收满一个字节时,软件系统产生一个中断程序将该字节存入 RFTX BUF(R4)中或直接送到CMX649中进行处理。MSP430与 CMX649间的数据传输流程如图4.3所示。

·.I

RXBUFO—R唧B岍l

ChD(649 430

II

TXBUF0闩RFRX_BUF

图4.3 MSP430与CMX649间的数据传输

代码如F:

MOV.B RXBUF0,RFTX_BUF(FROM649_CNTR) MOV.B RFRX_BUF(T0649_CNTR),TXBUF0

需要说明的是,CMX649发送数据到RXBLlF0和TXBUF0发

送数据到CMX649的过程是自动完成的,这是由USART0串行通

信模块的特性决定的。另外,只有当通信双方的经过D号匹配和

同步后之后,接收到的语音数据才能送入CMX649进行语音编码 和译码的处理,否则解出来的语音信号很有可能是杂音。 4.4.2 MSP430与001000间的数据传输

MSP430与CCl000的通信分别通过通用串行通信模块

USARTl来实现。即USARTl通过SPI 3线方式控制进、出CCl000 的数据流。

定义USARTl的缓存RXBUFl与TXBUFl分别用来存储接收

·来自CCl000的数据字节以及准备发送至ccaooo盼数据字节,使.

用通用寄存器R8(FROMRF CNTR)作接收CCl000的数据字节计 数器,RSffOP珥CNTR)作发送至CCl000的数据字节计数器。当

缓存RXBUFl与TXBUFl存满一个字节准备发送或已接收满一个 字节时,软件系统产生一个中断程序将该字节存入RFRX BUT(R8) 中或直接送到CCl000中进行发送。MSP430与CCl000间的数据 传输流程如图4-4所示。

图4-4MSP430与CCl000间的数据传输 代码如下:

MOV.B RFTX_BUF(TORF_CNTR),TXBUFl MOV.B R7,RFRX BUF(FROMRF_CNTR)

西南交通大学硕士研究生学位论文第31页

同样需要说明的是,TXBUFl发送数据到CCl000和 CCl000发送数据到RXBUFl的过程也是自动完成的,由 USARTl串行通信模块的特性决定的。 4.5 TDD通信模块

4.5.1 TDD的实现

由第2章对TDD实现方式的描述可知,为了实现TDD,首

先应设置语音编码器CMX649和微处理器MSP430之间的传输速 率为MSP430与CCl000间的一半。为此, CMX649采用32Kbps

的采样编码传输速率,而CC l 000传输速率为76.8Kbps,可满足要 求,相关寄存器的设置见SETUP649和SETUPRF段程序。 然后在MSP430内存中分别划出用于存储发送语音数据的语

音发送缓存、接收语音数据缓存、射频数据发射缓存和射频数据 接收缓存。其中语音发送缓存、接收语音缓存分别用 R_FTX_BUF(FROM649_CNTR)和RFRX_BUF(T0649 CNTR)来表 示,射频数据发射缓存和射频数据接收缓存分别用

RFTX_BUF(TORF_CNTR)和RFRX—BUT(VROMRF c}rrR)表示。 可以看出语音发送缓存和射频数据发射缓存的起始地址均为 RFrX BUF,不同之处只是变址寻址中通用寄存器的值不同。同 样,接收语音缓存和射频数据接收缓存的起始地址也是相同的。 在系统数据的初始化一节中,已经将语音发送、接收缓存大 小设置为120,射频数据发射、接收缓存大小设置为144。即语音

发送和接

BUT+120处开

收的地址是从嗍BUF或RFRX

始的,

射频数据的发射地址是从RFTX BUF+144处开始的。可以看出射 频数据的发射地址比语音数据的发送地址多了14个字节,多出来 14个字节恰好是前同步字段、同步字段、通用寄存器的值、本机 号码、信道号、命令字段等信息。

结合上节对系统数据流控制模块的讨论,以下说明整个系统 在代码上是如何实现时分双工的㈨。 1.数据发送过程

首先调用CMX649 TRANSFER程序(该段程序不断处于运行

态,用于不断产生语音数据),将CMX649采样的语音数据不断送 往MSP430 的RXBUF0, 进而转移数据到

RFrX BUF(FROM649 a盯R)语音发送缓存中。其中

FROM649 CNTR为已经介绍过的接收CMX649的数据字节计数 器,当接收到60个字节时,初始化USARTl为从端SPI 3线模式 接口,并允许USARTl进行发送中断。

西南交通大学硕士研究生学位论文第32页

允许发送中断后,RFTX BUF(TORF CNTR)中的数据首先会

发送到TXBUFI,进而送至CC 1000,射频将在指定的信道上发送 该数据,其中TORF CNTR为前面已介绍过的发送至CCl000的 数据字节计数器,每接收一个字节,作减1操作,当TORF CNn己 减到O时则说明发送完毕一帧的数据,便关闭发送标志,并切换 至接收模式。

系统整个数据发送过程如图4-5所示。

需要说明的是,此处设置当接收到60个语音字节时便转为发 送状态,是为了减小时延,即不必等到一个周期内的语音全部送 到了语音发送缓存才开始启动射频。

发送数据到砌国UFO

I

<廷一I

设置发送标志位

启动射频的发送模式

‘J

I初始化USARTl为从端sPl3线模式 I接口,并允许usARTl的发送中断

RXRF_BUF中的数据 送至CCl000

关闭发送模式,并切 换至接收模式

图4.5系统数据发送过程 关键代码如下:

上是

MOV.B RXBUF0,RFTX_BUF(FROM649_CNTR)//将

RXBUF0的语音数据发送到RFTX_BUF(FROM649_CNTR)中。 西南交通大学硕士研究生学位论文第33页

CMP.W #BEGIN RFTX,FROM649 CNTR//比较是否接收 到60个字节

BIS。W #ENABLE RFTX,PROG

BIS.B #UTXIEl,IE2//初始化USARTl使能标志

MOV.B砌琅X..BUF(T0649 开始发送.CNTR)TXBUF0/ 数据 DEIAY

DEC.W TORF—CNTR

CMP 拌0FFFCH,TORF CNTR//比较是否发送完 JNE DEIAY

BIC.W #ENABLE RFTX,PROG FLAGS//清除发送标志 BIS.W #ENABLE RFRX,FROG FLAGS//开启接收标志 2.数据接收过程

首先将CCl000设置在接收模式下,则系统将在指定的信道上 进行数据接收。找到同步字节后,串行通信模块USARTl通过SPI 3线方式进行数据的接收,接收到的数据送到MSP430的RXBUFl 进而送到RFRX BUF(FROMRF CNTR)进行缓存。

FROMRF CNTR为接收CCl000的数据字节计数器,当

FROMRF

C舳l减到O后说明接收完毕,关闭接收标志,

并切换

到发送模式。

同时,MSP430还将RFRX BUF(T0649 CNTR)中接收的来自

CCl000的数据发送至TXBUFO,进而送到CMX649进行语音恢复。 系统整个数据接收过程如图4-6所示。 关键代码如下: BIS.B #USPIEl,ME2

BIS.B #URXIEl,IE2//开启接收模式 MOV.B R7,RFRX BUF(FROMRF 开始接收数据

.一

..CNTR)//DECW FROMRF CNTR

Ⅲ RFoIm∥判断是否接收完毕

RETI

RFoI兀2

BlC.B

BIC.B

BIC.W BIS.W

#URXIEl,IE2

#USPIEI,ME2//关闭接收模式

#ENABLE_RFRX,PROG_FLAGS∥清除接收标志 #ENABLE RFFX,PROG_FLAGS//开启发送标志 西南交通大学硕士研究生学位论文第34页

设置接收标志位 启动射频的接收模式

初始化US灿盯l为从端SPl3线模式

接口,并允许USARTl的接收中断

至土

完成数据同步操作 接收数据 是否已异步? 否

土墨

保存已同步的数据 到RXRF BUF中 7是否已接收完毕

絮?岁

'L是

图4_6系统数据接收过程

关闭接收模式,并 切换至发送模式

4.5.2同步信息检测过程

前面多次强调系统同步的重要性,可以说它是TDD实现方

式的关键,因为只有经过同步处理后的数据才是有效数据,才能 通过语音解码器解出正确的语音信号。

本系统的同步信息由两部分组成:一是前同步域由“0一和

“1一的长串组成,即设为5555H,它起到保护同步域的作用。同 步域由特定的同步块构成,根据定义的帧结构,分为2个子同步 块,子同步块l(表示为BLK SYNCl)设置为50,子同步块2(变量 表示为BLK SYNC2)设置为EC,这样可以使同步分步骤进行,也 起到了避免出现伪同步。由于射频芯片集成了位同步器,所以以 下只讨论块同步的检测过程。

西南交通大学硕士研究生学位论文第35页

同步检测过程:首先设置通用寄存器lM存放新接收到的字节, R7存放接收到的前一字节,R10作移位计数器,R1l用于记录达 到同步需要移位的位数,这样在下一字节到来时便直接进行所需 的移位读取数据域信息。 1.子同步块1的检测


TDD模式的数字对讲无线语音传输系统设计与实现(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《最大的“书”》教案-word文档

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: