首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» 基于ARM的嵌入式语音存储系统设计(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于ARM的嵌入式语音存储系统设计(2)
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2014-6-20 07:44
|
只看该作者
基于ARM的嵌入式语音存储系统设计(2)
语音
,
嵌入式
3.3 IDE硬盘控制模块
IDE接口是硬盘和光驱普遍使用的外部接口,接口采用16位数据总线并行传送,体积小、速度快,兼容性强。IDE接口主要有可编程输入输出(Programming Input Output,PIO)和直接内存访问(Direct Mcmory Access,DMA)两种传输模式。PIO模式占用大量的系统资源,数据传输速率较低;DMA模式需要额外的驱动程序或设置,系统资源占用少、执行效率较高。本设计选择DMA模式。
S3C2440A与硬盘接口如图5所示。其接口信号分为片选信号、数据信号和控制信号3个部分。硬盘上寄存器分为两组,分别由/CS0和/ CS1选中其中的一组,A0~A2引脚用于组内寄存器寻址,包括数据寄存器、错误寄存器、扇区计数器、扇区号寄存器、低柱面号寄存器、高柱面寄存器、状态寄存器和命令寄存器。数据线D0~D15用于数据的双向传输。/DIOR、/DIOW是读写控制信号;/Reset是硬盘复位信号;DMARQ(DMA请求信号)和/DMACK(DMA应答信号)是专用于DMA模式的信号。
4 系统软件实现
4.1 语音数据的采集
语音采集部分主要是完成UDA1341TS驱动程序的编写,其初始化相关代码如下:
端口初始化包括L3总线接口和I2S接口的设置,首先将与L3接口相连的通用I/O口GPB2、GPB3、GPB4设置为输出模式,然后设置与I2S控制器输出信号相关的GPIO引脚,将GPE0~GPE4这5个引脚设置为I2S接口的信号模式。UDA1341TS芯片初始化部分包括L3接口时序和协议的模拟,完成采样速率、数据格式等参数的设置。系统采样速率为8 kHz,使用时钟为384 fs,数据输入格式设置为MSB-Justifled模式。接下来通过“audio_init_dma()”申请DMA通道,输出音频缓冲区的DMA通道设为通道2,输入音频缓冲区的DMA通道设为通道1。若初始化失败会返网相应的错误标志,初始化成功后方可进行后续操作。
4,2 IDE接口函数
硬盘驱动程序实现分为设备初始化、打开设备、设备I/O操作和释放设备等几部分。要完成硬盘数据交换的工作,就需要对寄存器进行频繁的读写操作,为了方便在程序中的调用,把这些和硬件操作密切相关的操作都写成了接口函数,其函数说明略——编者注。
4.3 系统主程序流程
主进程开始后首先初始化采样参数,包括采样速率、采样点数、数据存储格式及采样通道,若初始化不成功会返回相应的错误标志,并作出相应的出错处理,成功后可继续下一步操作。然后通过键值判断数据的存储区是选择Flash还是选择硬盘,并初始化相应的存储区,这是保证系统在没有外扩硬盘的情况下也能正常运行,只不过是数据存储量较小而已;若选择操作硬盘,但硬盘未连接,仍然会返回相应的错误标志,并进入出错处理函数继续执行。接下来根据键值判断是否进行压缩处理,若进行压缩处理,则相应的编解码标志置位;根据该标志确定是否启动编解码进程,即系统能存储未压缩的数据,也能存储压缩后的数据,可以根据需要进行适当的选择。启动A/D转换进程并进行语音数据的存储,相当于录音的过程;数据存储完成后,即录音结束后,启动D/A转换进程进行语音播放。录音和播放可以同时进行,为了测试方便,这里把这两个过程分离开来。
总的来说,系统主进程创建了A/D、D/A转换进程和编解码进程,结合Linux的共享机制和进程间通信等手段,实现了语音信号的采集、压缩、存储、回放等环节。
5 系统测试与结果分析
系统测试内容主要包括语音质量、语音存储时长、语音压缩效率三个方面。语音质量是指经传输、处理后音频信号的保真度,是衡量语音编码算法优劣的关键指标。其评价方法分为主观评定和客观评定两类。系统采用的主观评定方法是平均意见得分(Mean Opinion Score,MOS),即以主观打分来度量,其评价标准分为5个等级,MOS评价标准如表2所列。客观评定选择信噪比为评价指标,信噪比(Signal Noise Ratio,SNR)定义为信号与量化噪声的方差的比值,计算公式为:
其中
分别为信号方差和噪声方差。通过测试系统的主观评价指标MOS可以达到3.8分,接近于电话语音质量,与原始语音的区别不明显;系统的客观评价指标SNR为58 dB,噪声的影响在可以接受的范围内。语音时长的统计,依赖于扩展IDE硬盘的容量,测试选择3G容量的硬盘;记录未经压缩的语音数据为750个小时,而记录压缩后的语音数据可达7500多个小时;可见语音压缩的效率可以达到10多倍,已达到理想的效果。
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
FPGA/CPLD可编程逻辑
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议