基于P WM 和S T M 32的语音录放设计*李力,谢云,赵龙辉,陈奕辉,林诗柔(广东工业大学自动化学院,广州510000)*基金项目:广东省自然科学基金(2016A 030313706)㊂摘要:针对智能产品对语音播放的需求和现有系统存在的问题,提出一种基于P C M 的语音录放设计㊂设计采用S TM 32F 103R C T 6作为主控单元,微控制器直接读取P C M 格式的音频数据,通过P WM 方式实现音频的播放㊂该设计能够实现语音录放的功能,输出内容灵活可调,具有一定的应用价值㊂关键词:P C M ;P WM ;微控制器;音频播放;S TM 32F 103R C T 6中图分类号:T N 92 文献标识码:AD e s i g n o f A u d i o P l a y e r S ys t e m B a s e d o n P WM a n d S T M 32L i L i ,X i e Y u n ,Z h a o L o n gh u i ,C h e n Y i h u i ,L i n S h i r o u (S c h o o l o f A u t o m a t i o n ,G u a n g d o n g U n i v e r s i t y o f T e c h n o l o g y ,G u a n gz h o u 510000,C h i n a )A b s t r a c t :A c c o r d i n g t o t h e d e m a n d s o f i n t e l l e c t u a l p r o d u c t s a n d t h e p r o b l e m s o f e x i s t i n g s y s t e m ,a d e s i g n o f v o i c e p l a y b a c k s ys t e m b a s e d o n P u l s e C o d e M o d u l a t i o n (P C M )i s d e s i g n e d .T h e m a i n c o n t r o l u n i t u s e s t h e S TM 32F 103R C T 6.T h e P C M f i l e c a n b e d i r e c t l yr e a d ,a n d p l a y a u d i o t h r o u g h P WM m o d u l a t i o n .T h e d e s i g n e d s y s t e m c a n r e a l i z e t h e e x p e c t e d f u n c t i o n s o f v o i c e p l a y i n g,a n d t h e c o n t e n t o f v o i c e c a n c h a n g e b y y o u r s e l f ,a n d h a s v a l u e f o r a p pl i c a t i o n .K e y wo r d s :P C M ;P WM ;m i c r o c o n t r o l l e r ;v o i c e p l a y ;S TM 32F 103R C T 6引 言随着技术的日益发展,人们对智能设备的要求越来越高,具有音频播放能力的设备逐渐成为主流,出现了多种具有语音输出功能的产品㊂根据播放时输出数据的变换方式,可分为数字模拟播放输出和数字信号直推输出㊂前者是将音频信号解码后通过D A C 的方式输出并推动扬声器进行播放[1-4],音效不理想;使用数字信号直推或放大后进行音频播放[5-8]正逐渐成为主流㊂按照播放载体可分为O T P 语音芯片㊁T T S 语音芯片和使用专用解码器解码播放㊂使用O T P 语音芯片可分为一次性可编程语音芯片和E E P R OM 语音芯片[9],前者只能烧写一次且播放段不可控,后者虽然可以重复擦写且录放一体,但是音频质量往往难以保证,且都需要M C U 对它们进行控制,较为复杂;T T S (T e x t T o S pe e c h ,从文本到语音)语音芯片虽然可将文本合成语音流,并可实现任意段播放,但成本较高;使用专用的音频解码器对音频文件进行解码播放,如基于S TM 32的多功能M P 3设计[10]㊁面向嵌入式系统的音视频解码与同步播放实现[11],实现了语音的解码播放,同样增加了成本㊂因此,本设计提出一种基于P WM 的语音录放设计,系统结构图如图1所示,微控制器与计算机通过串口进行通信,使用X m o d e m 协议来保证在传输时数据的准确性,将P C M 格式的音频数据按照一定的编码格式存放在F L A S H 芯片中㊂利用微控制器的定时/计数器和P WM输出能力实现语音播放㊂与使用解码芯片方案相比,该设计仍使用数据存储芯片与功放输出芯片,但无需使用解码芯片,且输出级不需要高分辨率的数/模转换器[12]㊂图1 语音录放系统结构图该设计要求微控制器可以输出占空比可变的P WM ,并且需要有精确计时到1/16000s 的定时器,即可使M C U 支持语音播放㊂利用P WM 将音频数据还原成语音信号,简化电路的同时占用微控制器资源少,硬件结构简单,降低了工艺成本,可应用于电话应答机㊁各类可编程的需要语音播放仪器仪表或智能家居产品中(如一种基于125k H z 的R F I D 智能锁设计[13]㊁可移动智能无障碍门禁系统设计[14]等),引入音频播放之后可以带来更好的体验和交互㊂本设计以智能锁所需的部分音频进行分析㊂1 系统及基本结构系统主要由控制模块㊁功率放大模块及数据存储模块组成㊂控制模块的核心是S TM 32F 103R C T 6微控制器,进行音频数据的读取和P WM 波生成㊂功率放大模块主要由H T 82V 742音频驱动器I C 构成,它将来自微控制器的P WM 信号输出,直接驱动扬声器㊂数据存储模块存放音频数据,并在微控制器需要时提供数据㊂此外,当需要写入音频数据时,上位机与微控制器间使用串口通信,采用X m o d e m 协议进行数据传输,存储在F L A S H 中㊂2 系统硬件设计本设计采用S TM 32F 103R C T 6微控制器作为主控单片机,硬件设计主要包括3个部分:主控单元㊁功率放大部分及数据存储模块㊂该系列微控制器时钟工作频率可达72MH z ,拥有U A R T ㊁S P I ㊁I 2C 等多个通信接口,主频最高可达72MH z ,其内部搭载的16位高级控制定时器T I M 1和T I M 8可设置为产生输出波形模式(即P WM 输出模式),并支持两路互补输出㊂S T 公司提供丰富的技术文档和库函数封装,以及K e i l 5专门针对该类微控制器推出的编程软件M D K 5也降低了该单片机二次开发的难度㊂2.1 H T 82V 742音频驱动芯片功率放大模块可为主控单元输出的P WM 脉冲进行放大,只需要M C U 支持P WM 输出模式,搭载H T 82V 742音频驱动I C 后便可具有语音播放功能㊂在工作电压为5V ㊁负载为8Ω的工况下,输出功率可达1.5W ,采用B r i d ge T i e d L o a d 输出㊂该音频P WM 放大器具有两个输入引脚和两个输出引脚,输出引脚可直推扬声器㊂其典型应用方框图如图2所示㊂图2 H T 82V 742典型应用电路图中,I N 1㊁I N 2和O U T 1㊁O U T 2之间是同相逻辑关系㊂若I N 1㊁I N 2同时输入为高,则O U T 1和O U T 输出为高;若I N 1㊁I N 2同时输入为低,则O U T 1㊁O U T 2则输出为低㊂如图2所示,M C U 在P WM 1/P WM 2引脚上产生音频P WM 调制信号,配合S u b b a n d C o d i n g 压缩/解压,就可以使得M C U 具有语音功能㊂2.2 数据存储模块数据存储模块的主要功能为存放以P C M 格式编码的语音文件,并且按照一定的索引规则存放㊂设计选用W 25Q 16存储芯片,存储模块电路图如图3所示,该芯片将2M B 存储空间划分为32个块(B l o c k),每个块的大小为64K B ㊂每个块可分为16个扇区(S e c t o r),每个扇区固定大小为4K B ,即每次进行擦除操作时,必须擦除4K B ㊂若以16位的采样精度和16k H z 的采样率来计算,该芯片可存储约65.5s 的音频数据㊂图3 数据存储模块电路图在进行操作时,每次需要给W 25Q 16开辟1个至少4K B 的数据缓存区㊂该器件通过S P I 总线接口进行操作,微控制器通过搭载的S P I 1接口与其进行通信㊂3 系统软件设计3.1 音频数据预处理P C M 是数字通信的编码方式之一,基本原理是将语音㊁图像等模拟信号每隔一定时间进行取样,使其离散化,同时将抽样值按分层单位四舍五入取整量化,同时将抽样值按一组二进制码来表示抽样脉冲的幅值㊂设计中采用微控制器直接读取P C M 文件的方式实现音频播放,因此利用上位机将所需或合成的WA V 格式的音频文件统一进行格式转换并编码㊂在智能锁的交互过程中使用到约22个音频段,然后执行m k f i l e ㊂在b a t 批处理文件中,程序将自动调用 w a v 2p c m.e x e ㊁ c o m b i n e .e x e 和 e n c o d e .e x e 三个应用程序,完成 格式转换 文件组合 文件编码 步骤,并生成b i n 文件㊂编码后的音频存储索引如图4所示㊂图4 数据索引格式设计共使用22段音频,经过处理后生成的b i n 文件中,前16个字节包含该部分语音数据的采样率㊁声道数和采样位数等信息㊂接下来以4个字节为一组,代表22段音频在b i n 文件中的编码地址㊂3.2 音频数据传输微控制器与上位机间采用串口通信,采用X m o d e m协议进行数据的传输,以保证数据的完整性,防止丢包㊂数据包格式如下所示:该协议下传输数据单位为信息包,以128字节块的形式传输数据,并且每个块都使用一个校验过程来进行错误检测㊂在校验过程中,如果接收方关于一个块的检验和与它在发送方的检验相同,接收方就向发送方发送一个确认字节<A C K>;如果有错则发送一个字节<N A K>要求重发㊂其中包括固定数据头帧S OH (0x 01),第2个字节为当前数据包序号,下一个字节是数据包序号的补码,用来检验是否正确发送㊂中间128个字节是本次发送的数据,如果余下不足128字节,则使用C T R L Z (0x 1A )来填充数据包,最后是一个双字节的C R C 16校验㊂3.3 P WM 播放原理及实现脉宽调制(P WM )在多个领域具有多种应用,例如通信系统㊁光学系统㊁功率转换器和音频系统[14]㊂在采样控制原理中有一个重要结论[15]:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同㊂冲量即指窄脉冲的面积,效果相同是指惯性环节的输出响应波形基本相同[16]㊂波形如图5所示,将正弦半波进行等分,可以看到等分幅值是不相同的㊂用图5(b)中等幅但不等宽的脉冲(即P WM 波)来代替这个正弦半波,每一个等幅不等宽的脉冲与图5(a )的等宽脉冲的冲量(即面积)相同,也就是说可以用P WM 波来近似等效正弦半波,但其中P WM 波输出频率必须与P C M 中的采样频率保持一致㊂利用第3.1节中的P C M 数据流,由模拟信号到数字信号的逆过程可知,使用P WM 波可以近似等效输出原音频波形㊂图5 P WM 波等效正弦半波采用P WM 控制方式来输出音频数据,将存储的P C M 数据转化成一系列等幅不等宽的P WM 信号,其占空比由P C M 数据决定,且采样频率与P WM 的变换频率必须相等㊂设计中微控制器的P WM 输出采用互补输出的方式,通过两个定时/计数器来控制播放㊂因此,设计需要将一个定时/计数器设置为定时器模式,该定时器作为P WM 占空比变化的时钟信号,而另一定时/计数器设置为P WM 输出模式㊂这样,在每一个P WM 波变换的时间节点,将新的P WM 占空比数据写入就可以实现播放功能㊂图6 语音播放程序流程图本设计中原语音数据的采样率是16k H z,因此定时/计数器定时时间为0.0000625s (即1/16000),作为P WM 波变换的时间节点,在中断服务函数中更新P WM 占空比值㊂程序根据字段索引读取语音数据起始地址并确定数据长度,存储在W a v e P l a y L e n g t h 变量中,单次读取的数据量为512字节,当W a v e P l a y L e n g t h 小于等于512时不再读取F L A S H 存储器,完成该次播放,流程图如图6所示㊂4 系统试验与分析为了验证使用P WM 方式播放P C M 语音数据的可行性与实际效果,按流程将P C M 数据使用X M o d e m 文件传输协议通过串口方式发送至微控制器,以保证数据无损和正确地写入F L A S H 存储器中㊂然后运行播放程序,对上述流程进行验证,得到如图7所示的P WM 波形图并通过扬声器判别语音内容,可清晰听到需要播放的语音内容㊂可以看出,输出波形的频率为16k H z,上升时间与下降时间也控制得较为理想,音质得到了保证㊂实际上,常用语音的频率范围约为300~3000H z,音乐的频率范围在20H z ~20k H z 之间㊂而数字式音频播放器的性能主要与采样位数和采样频率有关㊂图7 按键音对应P WM 输出波形图本设计提出的语音录放方案使用16k H z 采样和16位的采样位数,可将日常中使用的语音源文件近似于无损方式输出,在输出采样频率不太高的音乐上也能有很好的效果㊂相比于利用微控制器I /O 定时翻转电平产生驱动信号实现音频播放的方案[18],使用P WM 输出的方案占用微控制器资源少,且驱动信号也更加精确,音频质量得到了提升㊂结 语本文提出了一种基于P WM 的语音播放设计,以S TM 32F 103R C T 6作为主控制器,采用H T 82V 742P WM音频驱动芯片驱动扬声器,实现播放指定音频的任务㊂微控制器直接读取P C M 数据,通过改变P WM 波输出占空比的方式实现语音播放,即任何微控制器只需拥有两个定时精度达到1/16000s 的定时器和P WM 脉冲输出能力,即可通过采用 存储芯片M C U P WM三级架构方式实现语音播放功能,使得语音播放更加便捷㊂同时,可以精确控制语音播放内容,与O T P 语音芯片相比,增强了灵活性,降低了开发成本㊂利用P WM 功率放大器件直接推动扬声器,简化了传统音频输出中的转换及放大电路,实现了一种高效和低成本的语音播放系统㊂该设计架构可广泛应用于各种语音内容相对确定或高音质语音播放场合或产品中,如家电产品㊁智能产品和仪器仪表等,且输出音频的音质可由选用的微控制器P WM 输出频率及定时器位数决定,调节灵活,具有一定的实际应用价值㊂参考文献[1]方永佳.基于M a t l a b 和S TM 32的音频播放设计[J ].工业控制计算机,2016,29(7):151.[2]张仲明,郭东伟,吕巍,等.音频录制与播放系统的设计[J ].实验室科学,2018,21(6):7477.[3]程媛媛,杨文荣.音频数模转换器芯片内部低功耗的设计[J ].计算机测量与控制,2007(11):15841586.[4]杨帅,薛岚,高安邦,等.基于S P C E 061A 智能小车机器人语音播放系统的研究[J ].装备制造技术,2009(7):3839.[5]林桓.A V S 2音频与M P 3的对比及其录制与播放的实现[D ].成都:西南交通大学,2017.[6]杨博,张亚平,丁瑞.多任务音频播放与实时频谱变换的实现[J ].实验技术与管理,2017,34(9):137141.[7]刘伍洋.基于T h r e a d X 系统的I ~2S 音频总线驱动设计方案[J ].单片机与嵌入式系统应用,2018(1).[8]李慧,胡永兵,姚梦茹.基于U C O S I I I 系统的音频信号分析设计与实现[J ].计算机技术与发展,2018,28(7):136139.[9]王南阳.智慧型音乐/语音电路原理及开发应用系列(三)可程式化智能型O T P 系列语音集成电路[J ].电子世界,2005(10):5053.[10]颜锐,谭周文.基于S TM 32的多功能M P 3设计[J ].湖南人文科技学院学报,2013(4):107110.[11]张森永,高树立,陈为刚.面向嵌入式系统的音视频解码与同步播放实现[J ].应用科学学报,2018,36(3):98108.[12]C h a n g C M ,W u J T.A c o m p u t a t i o n a l l y ef f i c i e n t P WM t e c h n i q u e f o r d ig i t a l c l a s s D a m pl i f i e r s [C ]//2016I E E E I n t e r n a t i o n a l S y m p o s i u m o n C i r c u i t s a n d S y s t e m s (I S C A S ).I E E E ,2016.[13]李力,吴卓葵,陈立升.一种基于125k H z 的R F I D 智能锁设计[J ].仲恺农业工程学院学报,2018,31(3):3944.[14]贺升平,李爱国,张鑫.可移动智能无障碍门禁系统设计[J ].测控技术,2017(9):7780.[15]D o m i n gu e s T ,S a n t o s M ,T a v a r e s G.A C l i c k M o d u l a t i o n a u -d i o p l a y e r [C ]//D e s i g n o f C i r c u i t s &I n t e g r a t e d S y s t e m s .I E E E ,2016.[16]李旭,谢运祥.P WM 技术实现方法综述[J ].电源技术应用,2005(2):5155.[17]谢可,姚鸿强.基于P WM 的数字音频播放器设计[J ].计算机应用与软件,2014(5):328329.[18]远飞.基于单片机的音乐播放器的仿真与制作[J ].电子元器件应用,2010(12):4749.李力(硕士研究生),主要从事智能技术与装备方面的研究工作㊂(责任编辑:薛士然 收稿日期:2019-12-11)。