一种基于单片机的导游机服务系统的制作方法_3

文档序号:9217780阅读:来源:国知局
字节的有效语音数据+1个字节的CRC校验位构成了数据包,数据包被无线 传输模块nRF2401高速发射出去,发射完成后,无线传输模块nRF2401重新回到待机模式。 无线传输模块nRF2401发送语音数据流程图如图3所示。
[0060] 语音接收端在SPCE061A单片机控制下,完成无线传输模块nRF2401配置,保证 接收端的无线传输模块HRF2401的配置与发射端配置字的地址和数据包的格式一致。 SPCE061A单片机将CE置高,无线传输模块nRF2401开始工作。经过200us后,无线传输模 块nRF2401等待数据包的到来。接收数据包后,经过确认是否有正确的接收通道的地址和 CRC校验码。若数据包正确,接收端的无线传输模块nRF2401自动把字头、接收地址和CRC 校验码移去。DR1引脚被置高,引起SPCE061A单片机的中断。SPCE061A单片机将语音数 据从无线传输模块nRF2401读出,被送入FLASH缓存单元中,等待后续处理。语音数据包读 取完后,DR1被置低。如果CE引脚为高电平,继续等待接收下一个数据包;如果CE为低电 平,返回。无线传输模块HRF2401接收语音数据流程图如图4所示。
[0061] (3)语音处理模块
[0062]SPCE061A单片机具有专门用于语音功能的ADC通道(MIC_IN),为语音输入提供了 便利。SPCE061A单片机内置有自动增益电路和放大器,模拟信号经麦克风、自动增益电路和 放大器后进行A/D转换,仅需要极少的外围电路就可完成语音处理的功能。
[0063] 设计SPCE061A单片机最小系统,以实现对语音的A/D处理、压缩、存储、解压、D/A 处理、播放和输出。
[0064] 如图5所示,语音处理模块的核心模块为SPCE061A单片机,SPCE061A单片机为16 位单片机,内部带有数据处理功能的16位微处理器芯片,运算速度快,具有DSP功能的16 位乘法器和内积运算,能够执行复杂的压缩算法。该单片机有32个通用10端口、2个16位 定时器/计数器、32K字的FLASH缓存单元、2K字SRAM数据存储器、锁相环振荡器、ICE在 线仿真电路接口、串行输入输出接口DART、串行设备输入输出接口SIO等部分。与一般的单 片机相比,SPCE061A单片机在片内载有FLASH缓存单元和AD/DA,对于开发语言功能产品提 供了便利。SPCE061A单片机的指令系统效率比较高,开发起来比较容易。芯片内部有MIC 接口,专门用来作为音频转换通道。另外,SPCE061A单片机为用户提供了丰富的库函数,包 括语音录放库函数。
[0065] 在发送端,语音经过麦克风采集后,经过A/D转换、压缩编码后,语音数据被送入 编码队列。编码队列填满后,语音数据被取出,写入SPCE061A单片机的FLASH缓存单元中。FLASH缓存单元中的语音数据在SPCE061A单片机的控制下,被送入无线传输模块nRF2401 被发射出去。在语音发射端和接收端FLASH缓存单元作为缓存,暂时存储语音数据。语音 发射端的结构框图如图5所示。
[0066] 在接收端,无线传输模块nRF2401收到语音数据后,语音数据被存放到FLASH缓存 单元中。在SPCE061A单片机控制下,语音数据从FLASH缓存单元中被取出,送入解码队列, 经过解压、D/A转换后,播放出来。语音接收端的结构框图如图6所示。
[0067] 4、MP3 模块
[0068] 对MP3模块进行编程,实现直接选段播放模式,通过按键播放对应的语音文件。 MP3模块采用的专业的语音解码芯片VS1003B,音质优美,适合作为自助游时为游客提供讲 解和音乐播放功能。
[0069] 本发明采用了MP3模块,有了MP3模块游客在游览过程中可以选择听音乐或是选 择自助游。在自助游的模式下,通过选择按动播放控制键,即可收听到MP3模块的SD卡中存 储的景点讲解信息。MP3模块主要包括控制芯片STC11L16XE单片机、语音解码芯片VS1003B 和SD卡。将景点的讲解词、音乐及其他娱乐音频存储在SD卡中,在SPCE061A单片机的控 制下实现播放SD卡的功能。
[0070]STC11L16XE单片机是MP3模块的核心控制器,管理SD卡和解码芯片。此外 STC11L16XE还要管理SD卡中的文件系统,实现查找文件等功能。存放在SD卡中音频文件 首先被STC11L16XE单片机读取到自己的RAM中,RAM作为缓冲区。缓冲区存满后被送入 解码芯片VS1003B,经过解码后播放出来。MP3结构图如图7所示。
[0071] 二、系统的工作原理
[0072]系统的工作原理:本发明提供的导游机系统通过麦克风采集语音信号,将语音数 据输入SPCE061A单片机的FLASH缓存单元中,SPCE061A单片机从FLASH缓存单元中读取数 据以数据包的形式从无线传输模块HRF2401发送,导游机接收端收到数据后,输入到FLASH 缓存单元中,经SPCE061A单片机处理后可播放。本系统的工作流程如图8所示。
[0073] 导游机系统的工作流程:主控器SPCE061A单片机和无线传输模块nRF2401初始化 后,麦克风开始采集语音,并将数据写入到FLASH缓存单元中,每产生一帧编码数据,将被 送入无线传输模块nRF2401,进行发送;SPCE061A单片机不断检测keyl是否被按下,如果没 有,将作为接收端,准备接收语音数据。
[0074] 语音接收端在完成初始化后,不断检测是否有数据到来,如果检测到语音数据, 将启动无线数据接收,SPCE061A单片机不断接收语音数据,存入FLASH缓存单元中,经过SPCE061A单片机处理后进行播放。
[0075] 麦克风采集到的语音数据数据量比较大,对这些语音数据直接进行存储和传输是 不现实的。所以在本系统中涉及到了压缩编码,即将采集到的语音数据编码压缩,实现用较 小的数据量来存储和传输语音。
[0076] 导游机系统中的语音是实时收发的,在实时接收时还需要对语音数据进行校验。 SPCE061A单片机在播放语音时还要不断地接收语音数据并对其校验,所以在系统中需要设 置数据缓冲区,提高了系统的工作效率,各项工作之间不必互相等待。在语音采集模块软件 设计中,需要设置语音样本队列和编码队列。麦克风采集到的语音数据先存放到语音样本 队列中,当样本队列中的语音数据构成一个语音数据包时,将其取出进行压缩编码;压缩编 码后的数据被送入编码队列,编码队列填充满后被送入FLASH缓存单元进行存储。在语音 处理模块软件设计中,设置解码队列缓冲区和播放队列缓冲区。在FLASH缓存单元中读取 数据后,语音数据先被存入解码队列,当解码队列中的数据达到一个数据包时,将其取出进 行解码;解码后的数据被送入播放队列,在定时器控制下,从播放队列中取出语音数据进行 数模转换,经过功放后,语音被播放出来。
[0077] 三、系统测试
[0078] 导游机服务系统主要包括4个功能模块:语音采集模块、无线传输模块、语音处理 模块不IIMP3模块。其中涉及了SPCE061A单片机、无线传输模块nRF2401,STCllL16XE单 片机、VS1003B解码芯片和SD卡。下面将对4个模块分别进行测试,最后组合起来进行系 统的整体测试,验证是否可以实现系统的功能,测试系统的传输距离,通过分析实验结果, 证明了本系统的可行性。
[0079] 1、语音采集模块和语音处理模块的测试
[0080] 麦克风在SPCE061A单片机的控制下,进行语音采集,语音数据存入SPCE061A单片 机的FLASH缓存单元中。通过对SPCE061A单片机相应的控制,播放录制的语音,判断语音 是否达到要求。
[0081] 麦克风的灵敏度是指在一定的外部声压下,麦克风所产生的音频信号电压的大 小,单位为Mv/Pa或dB。一般来说,驻极体话筒的灵敏度为0. 5~lOMv/Pa或-66~-40dB。 灵敏度越高,相同语音下所产生的音频信号电压幅度也越大。
[0082] 测试语音模块是否可以实现播放语音,而且可以测试麦克风是否可以正常采集语 音。测试过程如下:语音经麦克风转换为电信号,经过AD转换、压缩编码后被存入FLASH缓 存单元,然后将FLASH缓存单元中的语音播放出来,用示波器采集输出波形。
[0083] 在SPCE061A单片机的开发软件unSPIDE中编写一段录音程序。将采集到的语音 存入FLASH缓存单元中,并播放。语音录放程序如下:
[0084] 录音子程序:
[0085] Void Record(void) { SACM_DVRI600_Initial(); //DVR 1600初始化SACN/I_DVR1600_Rec(0, BITRATEJ6K);//开始录音,选择I6l<bps while (SACM_DVR1600_Status( )&STATUS_PLAY)//检测录音数据是 否装满FLASH缓存单元 { *P_ Watchdog-Clear=0x0丨;//清看门狗 } }
[0086] 放音子程序:
[0087] void Play Record(vo id) {
[0088] SACM_ DVRI600_ lnitial();/7
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1