微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于AVR 8位单片机的短距离立体声数字音频无线传输系统开发

基于AVR 8位单片机的短距离立体声数字音频无线传输系统开发

时间:06-04 来源:互联网 点击:

与相同传输距离的有线音频传输系统相比,无线音频传输系统减少了线缆的开销,传输距离也不再受线缆长度的限制,解决了有线音频传输布线困难、影响美观和浪费线缆等问题,而且占用空间小、能耗低、使用更加灵活、方便。因此,短距离无线通信已成为当前研究的一个热点。ISM(Industrial Scientific Medical)2.4GHz(2.4G~2.4835GHz)频段, 由于具有较高的带宽和相对较低的实现成本,在各种产品中得到了广泛的应用。但这种通用性也产生了性能下降与成本增加等问题。目前国内外同类无线技术方案主要是基于蓝牙技术的产品方案以及一些小厂商提供的基于2.4GHz的产品方案。在一些特定的应用中,追求的目标是更低的成本与更高的音质, 对通用性的要求并不高, 采用蓝牙或无线局域网技术则显然不合适。而在音频信号处理过程中,由于其数据量大,处理算法复杂,实时性要求比较高,当今一些小厂商提供的基于2.4GHz的产品方案[1]实现成本相应较高。

基于以上特点,本着先进性、科学性、稳定性、经济性相统一的原则,本文设计一种低成本、适用面广的无线数字音频传输系统。

1 数字音频无线传输系统方案设计

本系统以MCU主控模块为核心,由发送子系统和接收子系统组成。发送部分从音频输出设备采集音频信号,经过A/D转换模块将模拟信号转换为数字音频信号,再通过SPI接口将数字音频信号传至主控模块进行压缩编码处理,压缩完成的数据成帧后经串行口传送给射频芯片,经过射频芯片内部的一系列处理后,将控制信号和音频数据发送出去(发送的数据需要进行一定的功率放大处理,以达到较好的传输效果)。接收部分的工作是其逆过程。系统原理框图如图1所示。


2 系统各模块的硬件设计与实现

2.1 A/D和D/A转换模块设计及初始配置

A/D和D/A转换模块选择WOLFSON 公司的WM8739和WM8731器件。WM8731是一款带有集成耳机驱动器的极低功耗、高质量音频编码解码器,专为便携数字音频应用而设计。该器件可以提供CD音质的音频录音和回放,为16Ω的负载提供50mW的输出功率;带有一个片上时钟发生器,支持多种时钟模式,通过一个16MHz时钟,该器件可以直接生成44.1kHz、48kHz和96kHz等采样率,以及MP3标准定义的其他采样率,完全不需要一个独立的锁相环(phase locked loop)或晶振,支持其他公用的主时钟频率,例如12.288MHz。而WM8739与WM8731不同的是,它并没有将A/D转化和D/A转化集成在一起,它只能用作A/D转换模块,其他性能与WM8731相同,其价格较WM8731便宜。

芯片的初始配置如下:

硬件配置:CSB(Pin20)及MODE(Pin19)均配置为低电平(两线制传输)。
软件配置:工作模式选择从机模式,数据顺序选择MSB首先发送,采样率控制模式选择正常模式384分频,核时钟同主时钟一样(由主控模块提供,为16MHz),这样由核时钟384分频即可得到左右声道的44.1kHz的采样频率,该频率是标准CD 音源的采样频率。
其他的软件配置字均为缺省值。该配置字由SDIN和SCLK写入,具体规则可参考芯片使用手册[2]。

2.2 RF发送/接收模块设计及初始配置

RF发送/接收模块,选择NORDIC公司的nRF2401。nRF2401[3]芯片与蓝牙一样,都工作在2.4GHz自由频段,能够在全球无线市场畅通无阻;支持多点间通信,最高传输速率达1Mbps,而且比蓝牙具有更高的传输速度;采用SoC方法设计,只需少量外围元件即可组成射频收发电路。

对该芯片的初始配置如下:对发送和接收模块的激活模式分别选择transmit模式和receive模式,通信模式选择Direct模式,频率通道初始配置为2.4GHz,输出功率增益选择为-10dBm,晶振频率选择16MHz,RF数据传输速率选择1Mbps。

其他的软件配置字均为缺省值。其配置字由DATA端口串行逐位写入。

2.3 MCU主控模块及系统接口设计

MCU主控模块选择ATMEL公司的AVR ATmega48[4]。AVR ATmega48是高性能、低功耗的8位AVR微处理器,采用先进的RISC结构,131 条指令,大多数指令的执行时间为单个时钟周期,32×8通用工作寄存器,只需两个时钟周期的硬件乘法器;4KB的系统内可编程 Flash和256B的EEPROM,擦写寿命均为10 000次;512B的片内SRAM;具有独立锁定位的可选Boot代码区,通过片上Boot程序实现系统内编程,真正的同时读写操作;两个具有独立预分频器和比较器功能的8 位定时器/ 计数器,一个具有预分频器、比较功能和捕捉功能的16 位定时器/ 计数器,可编程的串行USART 接口,可工作于主机/从机模式的SPI 串行接口。系统接口设计如下:

(1)如图2所示将三个模块连接在一起。在对各个模块进行初始配置之前,要按照图2所示的端口连接方向正确设置端口的输入输出模式,然后要对系统的各个时钟作正确的配置。系统主时钟由16MHz的外部晶振产生,将外部晶振接ATmega48的PB6和PB7即可。MCLK可由PB0的第二功能将16MHz的系统时钟输出,此时钟将作为WM8739的工作时钟。ADCLRC可利用PB1的第二功能的定时器输出比较功能,将该计数器的上限设为191即可产生44.1kHz的采样率对比时钟。BCLK可利用PB5的第二功能将主时钟二分频得到SPI 8MHz总线时钟。


(2)主控模块与A/D模块之间采用SPI串行同步通信。SPI的主要初始控制字配置如下:首先开启SPI使能和关闭SPI中断使能,工作模式选择主机模式,数据次序设为MSB首先发送,主机SCK速率设为fosc/2(fosc为系统主时钟)。在进行数据传输时,BCLK信号作为串行时钟来决定串行传输速率。在ADCLRC信号的同步下,音频数据由ADCDAT传入主控模块进行压缩编码处理。

(3)主控模块与RF模块之间采用USART串行异步通信。USART主要初始控制字配置如下:开启发送使能,同时关闭接收使能,工作模式选择异步奇校验操作模式,波特率设置为1Mbps,数据为8位,停止位为2位。在向RF模块发送数据时,为保证和接收子系统同步,以ADCLRC信号作为同步信号。

(4) 接收子系统与发送子系统硬件的连接。除了两个数据传送端口外,其他连接基本一致。将ATmega48的PB4、PD1与ADCDAT、DATA断开,且将PB3(MOSI)与WM8731的DACDAT相连,同时将PB3设置为输出端口。另外,将PD0(RXD)与nRF2401的DATA相连,同时将PD0设置为输入端口。此外,在USART初始设置上要开启接收使能而关闭发送使能即可。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top