基于凌阳单片机的语音信号实时采集
发布时间:2008/5/27 0:00:00 访问次数:485
摘要:语音信号采集是语音信号处理的基础。本文利用凌阳公司16位单片机——spce061a所具有的数字信号处理(dsp)功能及其所提供的音频压缩函数库来实现语音信号的实时采样与压缩;通过rs232接口,将采集到的语音信号实时上传到pc机中存储。
关键词:语音信号处理 rs232 串口通信 语音采样 语音压缩
引言
随着单片机集成化程度的不断提高,现代单片机已经具备了数字信号处理功能,使语音信号处理用单片机实现成为可能。台湾凌阳科技公司(sunplus)推出的一款spce061a就是这样的产品。spce061a是以μ'nsp tm16位微控制器及信号处理器芯片为内核的16位单片机,采用模块式集成结构,片内集成了2kb ram、32kb flash、adc、dac、并行i/o等,特别适合语音信号处理。本文介绍如何实现用spce061a单片机采集语音信号,并传送到pc机中的方法。
1 硬件系统结构
1.1 spce061a结构
spce061a的内部结构如图1,其特点如下:
*16位μ'nsp tm微控制器;
*工作电压:vdd为2.6~3.6v(cpu),vddh为vdd~5.5v(i/o);
*cpu时钟为0.32~49.152mhz;
*内置存储器:sram为2kb,内存flash为32kb;
*可编程音频处理;
*2个16位可编程定时器/计数器;
*7通道10位adc(内置麦克风放大和自动增益控制功能);
*2个10位dac;
*32路可编程通用输入输出端口;
*串行输入输出接口;
*低电压监测/低电压复位功能;
*14个中断源可来自定时器、外部时钟输入、键唤醒等;
*内置在线仿真电路ice。
1.2 spce061a开发方法
spce061a的开发是通过在线调试器probe实现的,如图2所示。它利用了spce061a内置的在线仿真电路ice和凌阳公司的在线串行编程技术。如果读者想要使用该芯片及开发系统,可上网www.unsp.com.cn查询,并寻求大学计划的免费支持。
1.3 语音采集的硬件电路
语音采集的硬件电路如图3所示。mic采用驻极体电容话筒,这种话筒具有灵敏度高、无方向性、重量轻、体积小、频率响应宽、保真度好等优点。
与pc机的串行通信用spce061a的uart接口,用max232芯片进行电平转换,即可实现rs232通信。
2 软件设计与实现
2.1 语音信号的采集压缩与数据传输
(1)语音信号的采集压缩
语音信号处理的基础是对语音信号进行数字化,并采样存储。srce061a内置专门用于语音信号采集的自动增益控制放大器(agc)的麦克风输入通道(mic_in)。语音信号经麦克转换成电信号,由隔离电容隔掉直流成分,然后输入至内部前置放大器。spce061a内部自动增益控制电路agc能随时跟踪、监视前置放大器输出的音频信号电平,当输入信号增器时,agc电路自动减小放大器的增益;当输入信号减小时,agc电路自动增大放大器的增益,以便使进入a/d的信号保持在最佳电平,又可使谐波减至最小。
adc初始化程序如下:
int off;
r1=0x0030;
[p_timera_ctrl]=r1;
//时钟频率为clka的fosc/2
r1=0xfa00;
[p_timera_data]=r1;
//采样率为16khz
r1=0x003d;
[p_adc_ctrl]=r1; //设置agc功能
r1=0x00a8;
[p_dac_ctrl]=r1; //
摘要:语音信号采集是语音信号处理的基础。本文利用凌阳公司16位单片机——spce061a所具有的数字信号处理(dsp)功能及其所提供的音频压缩函数库来实现语音信号的实时采样与压缩;通过rs232接口,将采集到的语音信号实时上传到pc机中存储。
关键词:语音信号处理 rs232 串口通信 语音采样 语音压缩
引言
随着单片机集成化程度的不断提高,现代单片机已经具备了数字信号处理功能,使语音信号处理用单片机实现成为可能。台湾凌阳科技公司(sunplus)推出的一款spce061a就是这样的产品。spce061a是以μ'nsp tm16位微控制器及信号处理器芯片为内核的16位单片机,采用模块式集成结构,片内集成了2kb ram、32kb flash、adc、dac、并行i/o等,特别适合语音信号处理。本文介绍如何实现用spce061a单片机采集语音信号,并传送到pc机中的方法。
1 硬件系统结构
1.1 spce061a结构
spce061a的内部结构如图1,其特点如下:
*16位μ'nsp tm微控制器;
*工作电压:vdd为2.6~3.6v(cpu),vddh为vdd~5.5v(i/o);
*cpu时钟为0.32~49.152mhz;
*内置存储器:sram为2kb,内存flash为32kb;
*可编程音频处理;
*2个16位可编程定时器/计数器;
*7通道10位adc(内置麦克风放大和自动增益控制功能);
*2个10位dac;
*32路可编程通用输入输出端口;
*串行输入输出接口;
*低电压监测/低电压复位功能;
*14个中断源可来自定时器、外部时钟输入、键唤醒等;
*内置在线仿真电路ice。
1.2 spce061a开发方法
spce061a的开发是通过在线调试器probe实现的,如图2所示。它利用了spce061a内置的在线仿真电路ice和凌阳公司的在线串行编程技术。如果读者想要使用该芯片及开发系统,可上网www.unsp.com.cn查询,并寻求大学计划的免费支持。
1.3 语音采集的硬件电路
语音采集的硬件电路如图3所示。mic采用驻极体电容话筒,这种话筒具有灵敏度高、无方向性、重量轻、体积小、频率响应宽、保真度好等优点。
与pc机的串行通信用spce061a的uart接口,用max232芯片进行电平转换,即可实现rs232通信。
2 软件设计与实现
2.1 语音信号的采集压缩与数据传输
(1)语音信号的采集压缩
语音信号处理的基础是对语音信号进行数字化,并采样存储。srce061a内置专门用于语音信号采集的自动增益控制放大器(agc)的麦克风输入通道(mic_in)。语音信号经麦克转换成电信号,由隔离电容隔掉直流成分,然后输入至内部前置放大器。spce061a内部自动增益控制电路agc能随时跟踪、监视前置放大器输出的音频信号电平,当输入信号增器时,agc电路自动减小放大器的增益;当输入信号减小时,agc电路自动增大放大器的增益,以便使进入a/d的信号保持在最佳电平,又可使谐波减至最小。
adc初始化程序如下:
int off;
r1=0x0030;
[p_timera_ctrl]=r1;
//时钟频率为clka的fosc/2
r1=0xfa00;
[p_timera_data]=r1;
//采样率为16khz
r1=0x003d;
[p_adc_ctrl]=r1; //设置agc功能
r1=0x00a8;
[p_dac_ctrl]=r1; //