《嵌入式系统设计(共11页).doc》由会员分享,可在线阅读,更多相关《嵌入式系统设计(共11页).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上目 录1 概述音频采集、存储和回放系统经历了多个发展时期,比较具有代表性的是留音机、磁带卡座以及如今的各种数字化音频设备。留音机的存储介质是黑胶唱片,其上的振动条纹记录了音频信息。从本质上说是一种机械性的记录方式,设备实现简单,但音质差、记录密度小。磁带机引入了电路,通过电子线路以及机械传动完成音频信号、电信号和磁信号的相互转化。较之磁带机,音质和记录密度大幅提高。随着处理器性能的提高和成本的降低,传统模拟系统的数字化趋势越来越明显,各种数码产品开始风靡,代表产品便是MP3播放器。数字音频设备完全摒弃了机械传动装置,在体积减小的同时,音质、存储密度、抗干扰、功耗等指标
2、均显著提升。本文所设计并实现的音频采集、存储和回放系统,基于TI公司最新的Cortex-M4处理器LM4F120H5RQ,外围有模拟放大器、数模转化器、滤波电路以及SD卡等。该音频系统旨在结合课程内容了解ARM嵌入式系统设计;主要完成工作包括方案论证、电路设计、PCB制作以及软件设计,实现了音频的数字采集、存储和播放的基本功能。系统主要指标和特征: 输入信号最大电压:3Vp-p; 输入阻抗:100K; 最大输出电压:3Vp-p; 采样率:44.1KHz; 存储和播放格式:WAV; 人机交互方式:按键控制;LED状态显示和菜单串口打印输出。2 系统原理2.1 原理简述采样和存储流程:回放流程:系
3、统数据流向和工作流程如上图。输入的交流音频信号经过加法器,双声道信号合成一路并叠加直流电平;经过处理的信号通过LM4F120H5RQ片上AD采样,得到的数据编码成WAV音频格式使用文件系统Fatfs保存在SD中;至此完成音频信号的采集和存储。回放时,WAV文件被读出解码成数据,通过DA还原成音频,为实现好的输出效果,信号经过低通滤波器并被放大后输出。数据的传输采用了DMA技术,使用乒乓缓冲,保证了数据流的持续性,使得数据采集和语音播放流畅稳定。2.2 采样原理根据奈奎斯特定理,在进行模拟/数字信号的转换过程中,当大于信号中最高频率的2倍时,采样之后的数字信号完整地保留了原始信号中的信息。即采样
4、频率大于两倍信号带宽时,可以完全还原信号。在音频处理中,为了提高回放音质,通常设置较高的采样频率。语音带宽为4.1K,通常采样率为8K;音频采样率有11.025K、22.05K、44.1K等多种。采样率越高,信号还原越容易,经低通滤波后输出信号越接近采样信号。系统中使用定时器提供采样率节拍,设定为44.1K。2.3 数模/模数转换LM4F120H5RQ片上集成了两个12位ADC模块,最高采样率达1M/s,完全满足系统需求。使用片上AD,既能充分利用硬件资源,也能降低系统功耗,减小信号干扰。LM4F120H5RQ片上不具备DAC,同时也没有专用音频接口I2S,因此使用外围DAC电路。DAC121
5、S101Q是TI公司出品的一款12位微功耗、轨到轨数模转换器,使用TSOP6超小封装,SPI接口便于与主控通信。时钟频率最大30M,输出建立时间10us(即100K),因此按照12位数据单声道可以最大实现100K的采样率,完全满足需求。2.4 音频编码音频编码格式多种多样,比较常用的包括MP3、WAV、WMA、APE等等。WMA格式不进行数据压缩,对处理器处理能力要求较低,文件格式简单容易实现,因此本系统采用了WAV格式编码。采集的音频信号被编码成WAV保存,同时可以用于回放;同样,符合WAV规范的音频格式也可以被用于系统播放,系统根据WAV文件头信息调整播放码率。WAV文件头记录了文件的各项
6、信息,编码过程就是编写文件头的过程。文件头信息如下:偏移地址字节数类型内容00H03H4字符资源交换文件标志(RIFF)04H07H4长整数从下个地址开始到文件尾的总字节数08H0BH4字符WAV文件标志(WAVE)0CH0FH4字符波形格式标志(fmt)10H13H4整数过滤字节(一般为H)14H15H2整数格式种类(值为1时,表示数据为线性PCM编码)16H17H2整数通道数,单声道为1,双声道为218H1BH4长整数采样频率1CH1FH4长整数波形数据传输速率(每秒平均字节数)20H21H2整数数据的调整数(按字节计算)22H23H2整数样本数据位数2.5 DMA技术DMA(直接存储器访
7、问)技术是利用有别于处理器数据总线的管道完成内存、外设间数据交换的技术。因为不占用处理器的数据总线,DMA可以高效地实现数据传输,减轻处理器负担,可以理解为与处理器并行的数据传输。本系统中使用了LM4F120H5QR片内的DMA外设模块,设置其工作在ping-pong模式,十分方便地实现了数据流的持续传输,保障了存储和回放的流畅性。2.6 文件系统存储器采用大容量SD卡,提供了存储的物理管理手段。逻辑管理方案采用的是文件系统。Fatfs文件系统一个通用的文件系统模块,因其较小的体积、良好的可移植性和稳定性以及开源免费特性,被广泛地应用与嵌入式系统中,为大量数据的管理提供了便利。Fatfs的实现
8、主要体现在移植,这与SD的读写有关。LM4F120H5QR通过SPI接口与SD卡相连,SD卡工作在SPI模式;编写与LM4F120H5QR适配的SPI读写底层代码可以方便地移植Fatfs。3 硬件系统设计系统硬件框图:主要包括了电源部分、信号调理部分、主控电路、按键和LED以及串口等组成的HCI、存储卡部分、DA转换器以及低通滤波电路等。3.1 芯片选型设计系统采用5V供电,处理器、DA等需要3.3V,片上AD采样是单端正电压采样,参考电压3.3V。因此输入信号调理的输出电压需要在0到3.3V,运放使用单电源,需要采用低压轨到轨运放,同时需要有高的带宽和噪声特性。DA芯片需要与AD有相同的位数
9、,即12bit,同时转换率能满足音频码率要求。LM4F120H5QR: 基于Cortex-M4架构,具有80M时钟100DMIPS性能,片上Flash 256KB,具备32KB的片上SRAM和大量丰富外设。比较有特设的是,提供了一个内部ROM,该ROM内固化TI公司定制的软件库StellarisWare software。通过调用库函数编程,程序不用完全编译固化,而是在片内自动调用内部ROM固化的代码。TI官方定制的软件库非常适用于二次开发,减少了开发人员的工作量和问题出现几率。芯片工作电压3.3V,与主流接轨。LME49721:高性能轨到轨音频运算放大器,电压范围2.2V到5.5V,能满足3
10、.3V供电要求。20MHz单位增益带宽积完全足以应对20KHz的音频带宽信号,输入偏置电流40fA,输入偏置电压0.3mV,因此输出可以具有很高的交流对称性。DAC121S101Q:12位微功耗、轨到轨数模转换器,使用TSOP6超小封装,SPI接口便于与主控通信。时钟频率最大30M,输出建立时间10us(即100K),因此按照12位数据单声道可以最大实现100K的采样率,完全满足需求。AMS1117-3.3:3.3V恒定电压输出,输出电流达1A,完全满足系统需求,输入输出操作压差至少1V,满足5V到3.3V的1.7V压差。3.2 电路设计电路设计中重点考虑了各个芯片的电源滤波与退耦处理、信号电
11、平兼容问题等等,PCB布线则重点考虑了滤波退耦电路布局、操作便捷性、抗干扰等问题。电源部分:电源采用5V输入,经过C-L-C型滤波后由LDO芯片AMS1117-3.3稳压输出3.3V电源,电源经电容滤波后送至各电路部分。电源设置了自锁开关和指示LED方便使用。主控部分:主控使用TI出品的LAUNCHPAD系列的EK-LM4F120XL开发板,其上搭载一颗LM4FH5QR芯片,板上集成JTAG调试器。开发板通过两排双排插座与本系统电路板上的对应插针进行电气连接和机械固定。开发板上有一颗红-绿-蓝三色LED,本系统用于工作状态指示。输入信号调整部分:采用交流耦合,一个运放使用单电源方式构成加法电路
12、,将输入的双声道音频信号合成一路信号,同时叠加3.3V/2 = 1.65V的直流电平,保证后级AD采样电平范围。按键电路:按键采用小型4脚轻触按键,电源上拉,按键并联小电容与上拉电阻构成RC滤波器,即形成硬件按键消抖,该硬件消抖效果好,实现简单,避免了软件算法减轻了处理器负担。四个按键功能定义分别是:录音、播放、上一曲和下一曲。DA输出与低通滤波电路:滤波电路采用一路LME49721完成,拓扑结构为巴特沃斯sallen-key二阶低通,截止频率为20KHz。下图为仿真响应。SD卡接口:4 原理图与PCB版图Sch:PCBTop Layer:PCBBottom Layer:5 软件系统设计5.1
13、 系统工作标志与LED状态整个系统就是一个状态机。系统通过设定工作标志来进行状态转换,输入包括输入按键和文件读取状态。通过按键可以更改系统的工作状态系统,通过三色LED显示的不同组合来显示状态,简单方便。以下是系统状态与LED规划:StateLED StateIDLENoneRECORDBlue LightedPLAYRed FlashingPALYPAUSEDRed LightedPLAYPRERed FlashingPLAYNEXTRed Flashing5.2 主要数据结构WAV文件头:typedef struct CHARwRiffString4; DWORDwWaveBlockSiz
14、e; charwWaveString4; charwFmtString4; DWORDwFmtBlockSize; SHORTwFormatTag; SHORTnChannels; DWORDnSamplesPerSec; DWORDnAvgBytesPerSec; SHORTnBlockAlign; SHORTwBitsPerSample; charwDataString4; DWORDwDataBlockSize; WAVEFILEINFOHEADER;Fatfs文件:/* File object structure */typedef struct _FIL WORDid;/* Owne
15、r file system mount ID */BYTEflag;/* File status flags */BYTEsect_clust;/* Left sectors in cluster */FATFS*fs;/* Pointer to owner file system */DWORDfptr;/* File R/W pointer */DWORDfsize;/* File size */CLUSTorg_clust;/* File start cluster */CLUSTcurr_clust;/* Current cluster */DWORDcurr_sect;/* Curr
16、ent sector */#if !_FS_READONLYDWORDdir_sect;/* Sector containing the directory entry */BYTE*dir_ptr;/* Ponter to the directory entry in the window */#endif FIL;5.3 软件流程及管件代码主要处理流程包括初始化、按键判别、录音和播音。初始化主要设定处理里的各项外设,如时钟、定时器、IO输入输出、SPI、UART、DMA等等。代码:/= 硬件初始化= FPUEnable(); FPULazyStackingEnable(); ROM_Sys
17、CtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);/设定时钟 SysTickConfigAsFatfs10msTimer();/设置节拍定时器为Fatfs定时器 UART0ConfigAsConsle();/设置串口 PortFConfigForLED();/设置IO驱动LED uDMAConfig();/设置DMA外设 Timer0AConfig(44100,Timer0IntHandler,FLAGFORADC);/定时器配置为ADC采样 SSI1ConfigForDAC(
18、);/设置SSI1为SPI,与DAC通信 ADCConfig();/设置片上ADCKeyPortConfig();/设置IO读取按键.删节/=本系统既可以采集音频进行存储回放,也可以播放符合WAV音频格式的文件;但音频文件具有多样的采样率,因此在进行播音时,需要先读取文件头,获取文件的码率、声道数、采样位数等等后进行相关设定再播放。采用这样的方式保证了能播放多种格式的音频。6 总结与感谢6.1 取得的成果独自完成了方案的设计、原理图和PCB设计、电路调试以及最后的程序设计。鉴于目前的程序设计,本系统可以进行8bit、16bit各种采样率WAV文件的播放,而录音保存的文件采用12bit。6.2
19、改进方面抗混叠滤波器:根据采样的相关理论,采样器前端需要添加抗混叠滤波器,该滤波器的作用是限定输入信号带宽,避免噪声信号经过采样后混叠至有用信号带宽内。抗混叠滤波器的截止频率由输入信号带宽和采样频率共同决定。图形显示:鉴于EK-LM4F120XL开发板提供的接口有限,并且本系统使用了比较多的外设借口,因此并没有设定LCD显示。但为了提高交互的友好性,完整的系统需要提供图形显示,用于显示系统信息。多种语音格式:通过编程解析不同的协议格式,可以增加本系统支持的音频格式。许多音频格式采用了压缩算法,因此在音频的采集、存储过程中需要压缩计算,而播放的时候需要进行数据的解压缩。这些计算都会耗费较大的处理器资源,因此需要优化代码提高计算效率。6.3 感谢在课程和本系统的设计与实现过程中,我得到了来自老师和同学的帮助。尤其感谢课程老师*老师,感谢老师在课程内容上的兢兢业业以及具有建设性和开拓性的指导;同时需要感谢为我提供实验和实践环境的*中心以及帮助过我的*同仁;另外感谢课程同班所有同学,大家课程最后的公开报告开阔了我的视野。7 附录略专心-专注-专业