您好,欢迎来到好土汽车网。
搜索
您的当前位置:首页基于STM32的音频播放与记录控制器设计

基于STM32的音频播放与记录控制器设计

来源:好土汽车网
基于STM32的音频播放与记录控制器设计

周静雷;孙长城

【摘 要】The complicated test procedure and the higher cost, in the traditional loudspeaker aging test experiment, caused by using power meter, sound card, computer and other facilities, are unfavourable for portable development of the power apparatus. According to the above problems, the STM32 is used as the core chip to control the audio processing chip WM78 to read out the audio files stored in the

extended SRAM for producing simulation testing signals continuously and realizing the function of playing; the simulation test signal is processed to drive the speakers. And the working voltage and working current of the speaker are collected for AD sampling by WM78, the acquired data is stored in the external SRAM for the function recording. The data transmission is conducted with the computer by USB with audio playing and recording at the same time. It realizes the function of the sound card and reduces the test cost of the speaker.%传统的扬声器产品质量测试实验需要用到功率实验仪、声卡和电脑等较多配套硬件设备,导致测试过程复杂、成本较高,不利于功率实验仪的便携式发展.针对上述问题,设计以STM32为核心芯片,控制音频处理芯片WM78循环读取外扩SRAM里已存储的音频文件,持续产生模拟测试信号,实现播放功能.模拟测试信号经过处理后驱动扬声器工作,扬声器的工作电压和工作电流由采集电路获取并送给WM78进行AD采集,采集的数据存储到外部SRAM里,待上位机调用,实现记录功能.设计通过USB与电脑进行数据传输,支持播放与记录同时进行,实现了声卡功能,能够降低扬声器测试成本.

【期刊名称】《微处理机》 【年(卷),期】2017(038)001 【总页数】4页(P67-70)

【关键词】高速USB;微控制器STM32;播放;记录;I2S协议;静态存储器SRAM 【作 者】周静雷;孙长城

【作者单位】西安工程大学电子信息学院,西安710048;西安工程大学电子信息学院,西安710048 【正文语种】中 文 【中图分类】TP273

扬声器在出厂前需要进行产品质量测试,传统的测试工具有电脑、声卡和扬声器功率测试仪等一整套测试装备,缺点是测试装备较多、成本较高、测试流程繁琐。为了降低成本,同时促进扬声器老化实验装备的便携式发展,本控制器嵌入在功率实验仪平台上,基于STM32F407微控制器实现音频的播放与记录,实现声卡功能,从而取代声卡。 2.1 系统总体介绍

本控制器设计是以扬声器功率实验仪为平台,基于STM32f407为核心芯片的嵌入式系统。上位机通过算法生成的音频测试信号,通过USB传输给嵌入式系统实现播放,同时对回采信号进行录音并通过USB传回上位机,整个过程不需要声卡。 控制器设计是以STM32F407为主控芯片,这款芯片以Cortex-M4为内核,拥有1024KB的FLASH、192KB的SRAM、2个DAM控制器(共16个通道)、两个全双工的I2S、3个IIC以及一个FSMC接口等外设,丰富的外设功能完全满足

了设计需求[1]。 2.2 系统框图

系统框图如图1所示。图中上位机软件是在C++Builder环境下开发的,以图形界面的形式展示出用户的需求。PC通过高速USB与音频发生器进行通信,将音频文件下传给STM32f407微控制器并存储到外扩的SRAM芯片IS62WV102416里,在音频播放时芯片WM78循环读取SRAM里的数据,持续产生模拟测试信号。模拟测试信号先进入功率实验仪进行信号调理,之后再进入功率放大器进行功率放大以驱动扬声器工作。通过功率实验仪采集电路得到扬声器的工作电压和工作电流并由芯片WM78进行模数转换,最后通过高速USB传回上位机,完成记录功能。控制器整体上实现音频信号的数模转换和模数转换功能,能够取代声卡。 由于STM32F407自带的192KB的SRAM,容量较小,无法满足本设计需求,因此需要外扩SRAM。本控制器选用的STM32f407自带有一个灵活的静态存储控制器FSMC,该接口支持8位、16位以及32位的SRAM存储器[2]。本设计选用的是ISSI公司生产的2MB内存的芯片IS62WV102416,该芯片有20根地址线,16根数据线,实现对芯片的读和写。SRAM相比于SD卡和SPI FLASH最大优点是在不影响使用寿命的基础上实现多次擦写。在本设计正常工作时,上位机软件算法生成音频数据由USB传输并存储到外扩的内存SRAM里,在播放时,循环读取SRAM里的数据[3]。 4.1 集成电路内置音频总线

集成电路内置音频总线,即I2S总线,是用于数字音频设备之间的音频数据传输的标准总线,应用广泛。它的特点是设计成沿导线传输时钟和数据信号,以此将时钟与数据信号分离,避免了因为时差而引起的失真。本音频信号发生器采用的微控制器STM32F407自带有2个全双工的I2S接口,支持半双工和全双工通信,支持主从模式及16位、24位、32位的音频数据格式。该微控制器I2S接口与

SPI接口部分公用,工作时,只需设置相关寄存器即可开启I2S,设计需要开启I2S的全双工工作模式[4]。 4.2 音频处理模块

该模块是实现音频发生器的关键部分,以音频处理芯片WM78为核心。

WM78是一款全功能的音频处理器,自带有一个HI-FI级的数字信号处理内核,支持增强3D硬件环绕音效,以及5频段的硬件均衡器,改善音质效果显著,同时还有滤波功能,有效滤除噪音信号。最大的优点是音频处理芯片WM78支持播放和记录同时工作。STM32F407通过IIC总线实现对WM78的控制。IIC总线是两线式串行总线,用于连接微控制器和外围设备,由数据线SDA和时钟SCL构成的串行总线可发送和接收数据[5]。WM78通过I2S接口,即数字音频接口,与STM32F407以及外扩的SRAM相配合进行音频数据的发送和接收。设计是在I2S总线全双工模式下,在STM32f407自带的SRAM里开辟两个缓冲区用于存放即将播放的数据,实现音频的流畅播放。音频处理模块设计如图2所示。 开启音频处理芯片WM78的DAC和ADC功能。数字音频播放后进入功率实验仪进行调理,再经过功放进行功率放大以驱动扬声器工作。功率实验仪将采集到的扬声器工作电压和工作电流送回WM78进行AD采集,采集数据存放于另外开辟的两个缓冲区内进行相关处理,再通过中断处理将采集数据送到外扩的SRAM,实现记录功能。音频播放和记录同时进行,实现了声卡功能。

本设计要实现上位机音频测试信号的下传和录音数据的上传功能,数据量较大,对USB通信速度有很高要求,因此采用了高速USB实现设备与上位机的通信。由于STM32f407本身集成了USB OTG HS模块,且该模块嵌入了ULPI接口用于连接外部的HS PHY,因此STM32f407支持高速USB,但内部没有集成高速PHY芯片,因此要实现基于STM32-f407的高速USB功能,在硬件上需要外接芯片,这里选择了USB3300,这样就可以支持高速USB传输数据了[6]。高速USB通信模

块原理图如图3所示。

通信模块实现两个端点,一个Bulk In,一个Bulk Out,端点大小为512Byte。上位机驱动程序通过Bulk Out发送4字节数据,其含义为下位机即将向上位机传输的数据量,设备接收到4字节的数据后,循环将数据通过Bulk In端点发送给上位机,每次最高能发送Byte,每一次发送数据前都会检测上一次数据是否发送完成。上位机这时就循环读取数据,每次读取的数据量必须和设备每次发送的数据一致,直到数据传输完成。传输速度可高达40MByte/s,满足本设计的数据传输需求。

6.1 软件总体设计

软件设计采用了USCOS,即实时多任务操作系统。该系统是一个基于ROM运行的、可裁剪的、抢占式、实时多任务内核,具有很强的移植性,适合于微处理器和控制器[7]。所谓任务,即死循环,UCOSII支持的任务多达255个,这些任务由操作系统进行调度管理,使这些任务轮流占用CPU,而不是同时占用,任何时刻,只有一个任务能够占用CPU,从而达到并发工作的状态。软件设计编写了三个任务,即播放任务、记录任务和数据上传任务,每一个任务都有优先级和任务堆栈,这三个任务由操作系统按照任务优先级进行调度运行。在创建自己的任务之前,必须先创建开始任务,然后通过开始任务创建自己的任务,之后开始任务就挂起。软件总体设计流程图如图4所示。 6.2 音频播放与记录数据的处理程序设计

控制器的音频播放软件设计是在STM32f407自带的192KB内存里开辟2个缓冲区:PlayBuffer1和PlayBuffer2,在音频播放前,微控制器MCU读取存储在外部SRAM里的音频数据来填满这两个缓冲区;播放时,通过I2S的DMA功能将其中一个缓冲区的数据送给音频处理芯片WM78进行播放;传送完时,进入中断对缓冲区再次填充。与此同时DMA正在传送另外一个缓冲区的数据,这样不断交

替传送和填充,即能够流畅的实现音频播放。对于记录功能的软件设计同样是在STM32f407自带内存开辟另外两个缓冲区:RecordBuffer1和Record-Buffer2,用于存放音频处理芯片WM78模数转换的数据。工作过程是:当一个缓冲区填满以后进入到中断处理,把数据写到外部SRAM里;同时新采集的数据往另外一个缓冲区填充,同样填满以后进入到中断处理。这样不断循环交替,实现对记录数据的及时处理[8]。控制器的音频数据处理示意图如图5所示。 6.3 测试音频信号的生成

扬声器功率实验仪中所需要的音频测试信号有高斯白噪声、粉红噪声、模拟节目信号、连续对数扫频信号、线性扫频信号、伪随机信号等。上述音频信号由上位机以C++Builder为开发环境,用C++进行编程的方法实现,生成的音频信号取样频率为44.1K,以16位的量化位数WAV文件形式保存,用于控制器的音频播放[9]。WAV是计算机领域最常用的数字化声音文件格式之一,符合RIFF文件规范。 基于STM32F407微控制器,通过外接高速USB芯片USB3300,与上位机高速通信,实现上位机待测试音频文件的高速下传及数据上传。通过IIC总线控制音频处理芯片WM78,通过I2S总线以及FSMC控制器实现WM78与SRAM的音频数据传输,实现音频播放与记录功能。因此本控制器可以取代传统的声卡设备,降低了测试成本,有助于简化和完善测试方法,有利于扬声器功率实验仪的便携式发展。

【相关文献】

[1]刘波文.ARM Contex-M3应用开发实例详解[M].北京:电子工业出版社,2011. Liu bo-wen.ARM Contex-M3 application development example explanation[M].Beijing:electronic industry press, 2011.

[2]赵星.STM32基于FSMC的SRAM扩展技术[J].工业控制计算机,2015,28(6):102-103. Zhao xing.STM32 SRAM based on FSMC extension technology[J].Industrial control

computer,2015,28(6):102-103.

[3]王铁流,李宗方,陈东升.基于STM32的USB数据采集模块的设计与实现[J].测控技术,2009,28(8):37-40. Wang tie-liu,Li zong-fang,Chen dong-shen.Based on the USB data

acquisition module design and implementation of STM32 [J].Journal of measurement and control technology, 2009,28(8):37-40.

[4]邵富杰,张国利,周勇.基于I2S总线实现嵌入式语音采集与回放[J].微计算机信息,2011,27(6):72-74. Shao fu-jie,Zhang guo-li,Zhou yong.Implementation based on I2S bus embedded phonic acquisition and playback[J]. Microcomputer information,2011,27(6):72-74. [5]毛建华,魏巍.IIC总线主发主收模式运用[J].西安邮电大学学报,2013,18(3):38-41. Mao jian-hua,Wei wei.Main hair main charge mode using IIC bus[J].Journal of xi'an university of posts and telecommunications,2013,19(3):38-41.

[6]刘炎,冯蕙力,叶梧.通用串行总线(USB)原理及接口设计[J].电子技术应用,2000(12):56-58. Liu yan,Feng hui-li,Ye wu.Universal serial bus(USB)principle and interface design[J].Journal of electronic technology applications,2000(12):56-58.

[7]秦珀石.嵌入式实时操作系统的应用研究[D].武汉:武汉理工大学,2003. Qin po-shi.he application of embedded real-time operating system research[D].Wuhan:wuhan university of technology, 2003.

[8]Bruce Bartlett Jenn.实用录音技术(第五版)[M].北京:人民邮电出版社,2010. Bruce Bartlett Jenn.Practical recording technology(fifth edition)[M].Beijing:people's posts and telecommunications publishing house,2010.

[9]刘滨.C++Builder 5高级编程实例精解[M].北京:国防工业出版社,2001. Liu

bin.C++Builder 5 advanced programming instance extract solution [M].Beijing:national defence industry press, 2001.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- howto234.com 版权所有 湘ICP备2022005869号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务