admin管理员组

文章数量:1532339

2024年1月19日发(作者:)

音频编解码器CMX649与单片机的接口设计

中国电力教育2010年管理论丛与技术研究专刊

音频编解码器CMX649与单片机的接口设计

梁光胜范争争

(华北电力大学电气与电子工程学院,北京102206)

摘要:介绍CMX649数字音频接口嵌入式电路结构和引脚功能,给出在单片机系统中采用MSP430F147与

CMX649硬件接口和软件实现方法,同时介绍基于CMX649的C-BUS总线格式及应用设计.

关键词:语音;寄存器;编码;解码;初始化;数据传输

无线传输技术对语音信号数字化处理要求较高,尤其

在通信产品中,系统所选用的器件要求低电压供电,低功耗,

运行速度快及体积小等.音频编解码器CMX649不但有上

述优点,还有其他语音芯片所没有的优点,最明显的就是

它能提供ADM,PCM两种编码模式.

,CMX649芯片的内部结构和功能特点

CMX649是由CML公司研制开发的一种支持CVSD

语音编码调制的芯片,其内部结构框图如图1所示.它不

仅具有全双工的ADM(CVSD),u律,A律和线性PCM

编码功能,也具有ADM与PCM的码制转换功能,为无线

语音应用提供一种低成本,低功耗的理想解决方案,广泛

应用于低成本无线耳机,数字无绳电话,全双工数字语音

收发系统以及便携式数字语音通信设备等.

图1CMX649芯片内部结构框图

二,CMX649芯片的引脚功能和配置寄存器

649芯片的引脚(排列图见图2)功能

STRB

ENCoDEVAD

VDD

MIC0UT

MIC十

MI(一

VBfAS

AUDIOOUT

VSS

DECoDEVAD

TXDATE

TXCLK

CSN

SCl—K

CMD

RPLY

IRQN

XTAL/CLK

RXClK

RXDATE

图2CMX649~1脚排列图

1[STRB]:8/16缓冲串行脉冲信号的I/0;

2[ENCVAD】:编码器的语音活动检测器输出;

3[VDD】:正电源;

4[MICOUT]:麦克风放大器的模拟输出信号,

5【MIC+】:麦克风放大器的同相模拟输入,

6[MIC一】:麦克风放大器的反相模拟输人;

7【VBIAS】:不适合的外部应用的缓冲;

8[AUDIOOUT】:解码器的模拟输出信号;

9[VSS】:地;

IO[DECVAD】:解码器的语音活动检测器输出;

1I[RXDATA】:接收信号的串行数据输入l

I2[RXCLKJ:解码数据时钟;

13[XTAL/CLK】:4-16MHz晶体振荡器输入;

14[IRQN】,I5[RPLY】,l6[CMD】,l7ISCLK】,

18[CSN】为C-BUS控制信号I

19[TXCLK】:编码数据输出时的时钟信号

20[TXDATA】:编码数据输出.

649芯片的配置寄存器

为了使CODEC能够正常工作并产生预期的音频效果,

必须对相应的寄存器进行配置.CMX649提供了32个映像

寄存器,如表1所示.

表1CMX649配置寄存器

地址寄存器名称地址寄存器名称

$1总复位SD8解码ADM输入

$61AAF/AIF带宽SE0编码模式和设置

$62侧音电平SEl编码ADM控制

$63音频输入电平CTRL$E2编码VAD入口

$64电源控制1$E3编码偏移电平

$65电源控制2$E7编码线性PCM入口

$70编解码模式控制$E8编码ADM输入.

$71扰频器控制$80编解码器状态(READ)

$72时钟分频器$D4解码VAD电平输出

$73时钟源控制SD5解码器偏移级输出

$8l解码中断控制$D6线性PCM解码器输出

$DO解码模式和设置$DA解码ADM输出

SDl解码ADM控制$E4编码VAD电平输出

$D2解码VAD人口$E5编码器偏移级输出

$D3解码偏移电平$E6线性PCM编码器输出

SD7解码线性PCM人口$EA编码ADM的输出

三.CMX649芯片与单片机接口电路的设计

本文采用TI公司的高性能低功耗单片机MSP430F147,

+作者简介:梁光胜,男,华北电力大学电气与电子工程学院,副教授.

~一~

加"¨

23456789m

音频编解码器0MX649~单片机的接口设计

L}_STRBTXDATA20pI/S0姗P3.3,~P1.I/TA0

l8MK

1VDDCSNP1.5,TA0

l?

'_

Rl矗舡C0UTSCLKp1.6ITAI

R4I5h缸C?I-C五田16P1

.

71T一~】_LC3I

R3≥T皿CRpLY15pi.3,T蚰

fJ714

i5广C5vBSmQNp1.0/TACLK

0UT+I4lI8AUD10Ⅺ.

真IL,CLK13p1.4/$五正CLK

VCC珏3lIiC7

.i1

~18二aN∞IAgcVSSRXCLKp3.Ll1LS0U珊NDEC0DEVA璃XDATAp3.

2/S0MmpI.2iTA1

l

图3硬件电路原!哩图

它与CMX649的接口电路如图3所示.

模拟音频信号由4脚进入CMX649,在芯片内部经过

放大,编码,压缩混响,滤波后送到数字信号接口电路,

再从CMX649的20脚输出,并送到MSP430的SOM10引脚.

CMX649芯片的14脚IRQN,15脚RPLY,16脚CMD,

17脚SCLK,18脚CSN与MSP430F147的TACLK,

TA3,TA2,TA1,TAO引脚连接组成C-BUS总线,完

成数字音频信号的音量,高低音等控制.之后再加载到数

字信号处理,数字插补滤波器,噪声滤波器等一系列数字

信号处理电路,完成数字信号的解码,使数字信号达到比

较高的信噪比.经过数模转换器(DAC)变成模拟信号,

放大后从CMX649芯片8脚输出高质量音频信号,给后续

功放电路.

四,CMX649的单片机控制软件的设计

1.C-BUS工作时序

数字语音处理模块的所有相关参数均是通过C-BUS

来写入寄存器进行控制的.C-BUS是同步串行控制器

("C)接口的简称,可以很容易通过软件程序对通用C

的I/O管脚进行控制.C-BUS总线接口的控制信号包括

IRQN,RPLY,CMD,SCLK,CSN.

CMD即命令数据(CommandData),是用来传输设

备配置寄存器地址和数据到CMX649的,其传输的第一个

字节叫"地址/命令"字节,它具体指定要操作的CML

设备和寄存器.RPLY即回复数据(ReplyDate),是从

CMX649向MSP430控制器传输的请求数据,只有当一个

命令(请求)通过命令数据线发送到CML设备时,回复数

据才是有效的.芯片选择位(CSN)必须在低电平时才能

传输,否则,就停止传输.

两字节C-BUS总线在CMX649和MSP430之间传输

的工作时序如图4所示.

软件设计

CODEC部分的软件设计主要包括串行口的初始化,

CMX649内部寄存器的初始化以及串行口接收中断程序.

软件开发工具为IARWorkbenchforMSP4304.20,采

S呈RLCL0C

COMMANDl螽

]

DnlntH町LMLdeIcc

图4C-BUS工作时序

用汇编语言编程.

(1)CMX649内部寄存器初始化程序的设计.根据实

际情况,通过CMX649的32个配置寄存器可以进行编码

方式和采样速率的选取,功率的控制,编/译码的相关算

法以及其他的一些功能参数的配置操作.编码器与译码器

的设置是CMX649配置的核心部分,包括:编码器与译码

器的数据输入/输出路径,编码方式,压扩算法,量化步

长的选取,I序与n序积分器的使用方式以及积分器的时间,

因子的设定等因素,这些配置均通过编码器和译码器的相

关寄存器进行参数选取.

CMX649的初始化程序:

M0V.B#55H,TXBUF0;确认CMX649音频

无输出

MOV.B#80H,IE1;USART0TX输入

使能

BIS.B#10H,P1SEL;使能CMX649时钟

MOV.W#GEN—RST,R13{$01总复位

CALL#CBUSW1;清除所有只写寄存器

M0V.W#AIF—AAF—BW,R14;$61AAF/

AIF频带宽度

MOV.W#0000H,Rl3;2.9kHz

CALL#CBUSW2

MOV.W#ENC—OFFSET,R15;$E3编码补

偿水平

M0V.W#0000H,R14'

MOV.W#0004H,R13

音频编解码器CMX649~单片机的接口设计

CALL#CBUSW3

RET

(2)MSP430与CMX649之间数据传输程序的设计.

MSP430通过串行通信模块USARTO的SPI3线方式控制

CMX649的语音数据流,其数据传输流程如图5所示.需

说明的是,只有通信双方的扰码信息经过交换,ID号匹配后,

接收到的语音数据才能送人CMX649进行语音编码和译码,

否则被拒绝送入CMX649,目的是为了加强通信的安全性.

中颧襁序始

/

CMX649(FJID怒>—堡

交抉拭码信怠

簿待iD麟

歼始将缓存R)uFO和

TXB~Oq蜉谶街数字节

孥eM鬟9进行接唆吩滋

数镶字节交换究攀,

重鬻檬惑能诈戮器

(l|断运嘲),,

.—....一

/

图5MSP430与CMX649间的数据传输流程图

1)检查CMX649的ID是否匹配.

CMX649_TRANSFER

ID649,MASTERl_ID;检

查ID是否正确

JEQCORRECT__ID;如果不正确发送空闲

模式到CMX649

MOV.B#55H,RFR),LBUF(T0649一CNTR)

JMPCMX649一TRANSFER1

C0RRECTjD

BIT.W#SCRAM—D0NE,PROG~FLAGS;

JZSCRANLEXCHANGED;

BIS.B#AMPl_SHDN—PIN'

JMPCMX649_TRANSFER1

SCRAM—EXCHANGED

BIG.B#AMP_SHDN—PIN;使能音频放大器

2)CMX649传送和接收数据CMX649一TRANSFER1.

0,RFTX—BUF(FR0M649一

CNTR);把CMX649里的数据发送到RFTX—BUF

_BUF(T0649一CNTR),TXBUF0;

把RFTX—BUF里的数据发送到CMX649

3)重置标志位,计数器.

649一CNTR;递减CMX649缓冲计

数器

JNREsET_FROM649l判断缓冲区是否满

CMP.W#BEGIN—RFTX,FROM649一CNTRl当缓

冲计数器等于BEGIN—RFTX时RF—TX开始发送

JNEDONT_START—RF—-TX

五,总结

CMX649是一款多功能的,非常适合语音系统的芯片,

它拥有高性能的数字特性,TI公司推出的MSP430F147单

片机高性能低功耗,本系统集合这两个芯片的优势,在实

际应用中有着广泛的前景.本文用MSP430F147单片机作

为例说明其与CMX649的接口技术,但基本原理和方法可

以广泛推广到其他MSP430系列的单片机.

参考文献:

【l】649DamSh~t[Z].2002.

[2】CMLMmrodrc~.CMX649RecommendedSettings[Z].

2003.

【3】胡大可.MSP430系列超低功耗l6位单片机原理与应用[M】.

北京:北京航空航天大学出版社,2000.

本文标签: 语音寄存器控制编码单片机