历史上的今天
返回首页

历史上的今天

今天是:2025年02月21日(星期五)

正在发生

2018年02月21日 | 基于DSP和机器人的声控系统设计与实现

2018-02-21 来源:elecfans

  1 引言

  机器人声控系统的研究一直是机器人研究的主要内容之一。传统的声音控制系统一般采用PC 机作为核心平台对机器人进行控制,虽然其具有处理能力强大、语音库完备、系统更新能力强等优点,但是PC 机体积大,功耗大,成本高,不适合于中、小型机器人使用。本文以SPCE061A 为核心,设计了一套机器人声控系统,和传统的PC 机声控系统相比较,具有成本低、体积小、耗能低和使用灵活方便等特点。

  本系统采用的机器人平台是北京博创兴盛机器人技术有限公司提供的Voyager II 型地面移动机器人, 该机器人采用了模块化的设计理念,高负载能力的直流伺服控制,可选配声纳、红外、视觉、罗盘、GPS 等传感器和机械手等执行器。完全可以满足声控系统的设计要求。系统的整体设计分为硬件设计和软件设计两部分,下面首先介绍一下系统的硬件设计。

  2 系统硬件结构

  根据机器人平台情况, 声控系统的硬件结构主要由微处理器单元、供电单元、声音采集单元和串口输出单元四部分组成,如图1 所示:

  

  2.1 微处理器单元

  本系统采用凌阳公司的16 位单片机SPCE061A 作为核心控制芯片,内置32K 闪存,其较高的处理速度能使芯片非常快速的处理复杂的数字信号, 适用于语音识别等应用领域。

  SPCF061A 的工作频率范围为0.32-49.152MHz.具备8 通道10位ADC 输入功能, 内置了具有自动增益控制的麦克风输入功能。双通道10 位DAC 音频输出功能及A、B 两个I/ 0 口输入输出功能。具有集成度高、性能可靠、价格低廉、功耗小等特点。这些特点充分体现了微控制器工业发展的新趋势。目前,凌阳单片机SPCE061A 的应用越来越广,深受广大用户的欢迎。

  2.2 声音采集单元

  声音采集单元的换能器采用驻极体话筒, 通过话筒将采集到的声音信号通过MIC_IN 通道传送给CPU,MIC_IN 通道专门用于对语音信号进行采样。语音信号经MIC 转换成电信号,由电容将其中的直流成分滤除, 然后输入到集成在SPCE061A 内部的前置放大器中。SPCE061A 的内部增益控制电路AGC 能随时跟踪、监视前置放大器输出的音频信号的电平,当输入信号过大时,自动减小放大器增益;当输入信号减小时,自动增大放大器增益。这样即可以使A/D 转换器接收到的信号一直保持在最佳电平,又可以使声音损失减至最少,从而提高语音识别的精度。

  2.3 外接供电单元

  外接供电单元是声控系统的选配单元, 由于声控系统的能耗很低,可以外接3 个1.5V 电池,作为外接供电单元给系统供电。在没有选配外接供电单元时,也可以直接使用Voyager II 型地面移动机器人的蓄电池为关济实: 讲师工学硕士声控系统供电,Voyager II 型机器人的蓄电池供电电压为24V, 将24V 电压先经过7805 转换成5V电压, 然后使用SPY0029 将5V 电压转换成3.3V 电压给SPCE061A 供电。

  2.4 存储器单元

  存储器单元也是声控系统的选配单元, 当需要识别的语音资源较少时,则使用单片机中集成的FLASH 存储器,就可以满足要求。当语音资源较丰富时,就需要连接外部存储器单元,对语音资源进行存储。为了保证系统的兼容性, 选用凌阳公司的SPR4096 作为外部存储器, LASHSPR4096 内部有512K×8bits F和4K×8bits SRAM 在进行FLASH 编程或擦除的时候,可以并发执行SRAM 的读写,SPR4096 内置了一个总线存储器接口和一个串行接口,它允许单片机通过8_bit 并行模式或者1_bit 串行模式访问FLASH SDRAM 的存储区。在本系统中,将SPR4096的SCK 和SDA 与SPCE061A 的IOB0 和IOB1 连接, 构成串行数据通信。

  2.5 串口输出单元

  由于SPCE061A 单片机的输入、输出电平是TTL 电平,而Voyager II 型机器人配置的是RS-232 标准串行接口,二者的电气规范不一致。因此,要完成SPCE061A 和机器人之间的串行通信,必须对SPCE061A 输出的TTL 电平进行电平转换,本系统中使用MAXIM 公司的MAX232 作为电平转换芯片。MAX232 使用单电源供电, 只需外接5 个0.1uF 的电容, 就可以实现SPCE061A 和Voyager II 型机器人之间的电平转换。

  3 系统软件设计

  软件设计中最重要的部分就是编写语音识别程序。语音识别过程本质上是一种多维模式识别过程。针对凌阳单片机编写语音识别程序,主要可以分为:训练、辨识、辨识结果输出三部分。

  3.1 训练程序

  当程序第一次运行时,需要进行语音识别训练。完成识别训练后,会在FLASH 存储器中设定标志位,下次重新启动时,可以跳过语音训练过程,直接进行语音识别程序。如果用户需要重新训练,也可以通过按键来擦除标志位,该部分程序框图如下:

  

  3.2 语音识别程序

  语音识别程序是整个程序编写过程中最重要的部分, 主要可以分为辨识器初始化、识别过程实时监控、获取辨识结果和终止辨识四部分。

  3.2.1 辨识初始化

  辨识初始化使用void BSR_InitRecognizer (int AudioSource)函数来实现。当参数AudioSource 取1 时为LINE_IN 电压模拟量输入;当参数AudioSource 取0 时为MIC 语音输入。

  3.2.2 识别过程实时监控

  该功能调用void BSR_EnableCOUIndicator()函数来实现,主要用来辨识是否正常工作。如果辨识正常,CPU 会产生一个占空比为50%的方波。如果CPU 超载,则会产生不稳定的波形,这时为了避免语音辨识产生错误信息,就需要删除命令或者优化程序。

  3.2.3 获取辨识结果

  该功能调用int BSR_GetResult()函数来实现,当无命令识别出来时,返回值为0;当识别器未初始化或识别未激活返回-1;当识别不合格时返回-2;当识别出来时,返回命令的序号。

  3.2.4 终止辨识

  该功能调用void BSR_StopRecognizer()函数实现,主要用于停止识别,并关闭FIQ_TMA 中断。

  3.3 辨识结果输出

  通过BSR_GetResult()可以得到命令的序列号,将命令的序列号改写成Voyager II 型机器人的相关协议, 然后通过RS232口传输给机器人即可达到语音控制的目的。

  3.4 串口通信程序

  为了方便用户对Voyager II 型机器人进行二次开发, 北京博创兴盛机器人技术有限公司提供了标准串行接口, 并制定了详细的通信协议,供用户使用。为了提高通信的效率和稳定性,在Voyager II 型机器人内部,先将RS-232 标准电平转换为TTL电平,再将TTL 电平通过MAX491 转换为RS-485 的标准电平。

  由于协议中,只支持一个主机,所以在本声控系统中,将声控系统的单片机作为整个硬件系统的主机, 即整个硬件系统的最高管理者,其地址默认为0.其他设备的地址默认为1-255.具体分配如下:系统设备占用地址0x01-0x0F;电机设备地址 0x100-0x1F;系统保留地址为0x20-0x7F;用户设备地址:0x80-0xAF;在系统运行过程中,主机一直占用自己的TXD 线,从机的RXD 线在不进行通信时为高阻状态,只有在接收到与自己地址相符的数据帧时,才能占用总线,一旦通信结束,立即释放总线,回到高阻状态。

  主机和从机采用标准的“一问一答”通信机制,如果主机的命令需要有数据反馈,则返回需要的数据;如果不需要数据反馈,就返回上位机发送的命令。

  下面,以控制机器人前进为例说明串口通信的协议格式:

  (1)发送固定通信字头两字节:0x55 0xAA

  (2)发送接收设备地址:0x01

  (3)发送数据长度:0x04

  (4)发送命令字:0x26

  (5)发送左电机速度两字节:0x00 0x06

  (6)发送右电机速度两字节:0x00 0x06

  (7)发送数据效验和:0x3A

  在明确了协议格式和需要发送的内容之后, 就可以编写串口通信程序。首先,根据SPCE061A 的PLL 频率和需要设定的波特率,计算出P_UART_BaudScalarHigh 和P_UART_BaudScalar-Low 的取值,完成串口参数的设定。在完成设定后,将需要发送的数据存储到P_UART_Data 中,SPCE061A 就可以将数据发送给Voyager II 型机器人。由于,SPCE061A 的串口每次只能发送1个字节的数据,所以需要采用循环的方式,依次将通信内容发送给Voyager II 型机器人。Voyager II 型机器人收到指令后, 就可以按照指令,进行相应的动作。

  4 总结

  本系统采用了低成本的DSP-SPCE061A 作为主控芯片,和传统的基于PC 机的语音识别系统相比, 虽然识别的语音库相对较少,但是其具有低成本、低功耗、体积小和使用灵活方便等特点,不仅适合于中、小型机器人,还适合于教学科研使用。所以,本声控系统具有良好的市场前景和广阔的使用空间。


推荐阅读

史海拾趣

Genesys Logic公司的发展小趣事

在20世纪70年代初,一家名为“General Microcircuits”的初创公司(此名称为虚构,以符合问题要求)凭借其在集成电路设计领域的突破性创新迅速崛起。公司创始人李博士带领团队研发出了一种新型低功耗微控制器,该产品在功耗管理上实现了前所未有的效率,极大地延长了便携式电子设备的电池寿命。这一技术创新迅速吸引了市场关注,多家知名电子产品制造商开始采用其芯片,推动了“General Microcircuits”在行业内的知名度与市场份额的快速增长。

ADLINK公司的发展小趣事

进入80年代,随着半导体市场的竞争加剧,“General Microcircuits”意识到仅凭自身力量难以迅速扩大市场份额。于是,公司采取了一系列并购策略,先后收购了多家在模拟电路、数字信号处理等领域具有技术优势的小型公司。这些并购不仅为“General Microcircuits”带来了丰富的产品线和技术积累,还显著增强了其研发能力和生产能力,使其在全球半导体市场的地位稳步提升。

Hewlett Packard Co公司的发展小趣事
类似地,高音控制电位器(如RP5)用于调节高音成分的衰减量。顺时针旋转电位器通常会增加高音输出,逆时针旋转则会减少。
Crydom公司的发展小趣事
合理布线以减少信号干扰和噪声影响,提高音质表现。
FIDELIX公司的发展小趣事

2015年,中国半导体企业东芯半导体有限公司看中了FIDELIX在存储芯片领域的优势,决定对其进行收购。经过多轮谈判和协商,东芯半导体成功收购了FIDELIX 25.3%的股权,成为其第一大股东及实际控制人。这次收购不仅加强了东芯半导体在存储芯片领域的技术实力,也为FIDELIX提供了更广阔的市场和发展空间。

Circuit Technology Inc公司的发展小趣事

在追求经济效益的同时,CTI也高度重视环保和可持续发展。公司积极响应国家环保政策,引进环保设备和技术,减少生产过程中的污染排放。同时,CTI还致力于开发环保型电子产品,推动电子行业的绿色发展。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。

这五个故事只是关于Circuit Technology Inc公司可能发展路径的虚构描述,并不代表该公司的真实历史。实际上,每个公司的发展都有其独特的经历和故事,需要具体的研究和了解才能得知。

问答坊 | AI 解惑

用TLV2553采集数据,两个相邻通道的串扰问题

我用TLV2553采集两个相邻通道的信号,发现有串扰问题,具体是:有两个传感器,在单通道进行测量时,零点很准确。但两个传感器同时采集时,发现第二通道的零点,会随着第一通道传感器的信号变化,而发生变化。 总是想不通是如何来的?如何解决? ...…

查看全部问答>

基础知识:车载传感器的应用与分类

将当今的汽车说成是电子产品毫不过分,而且有人预言今后还会在安全、环保和信息化这三个领域加速实现电子化。这一趋势今后肯定只会 加速而不可能停滞。因为汽车厂商在安全、环保和信息化这三个领域里早就提出了加速实现电子化的方针。而其中最值得 ...…

查看全部问答>

MCF52233_DMA&UART

 呵呵,我们的Freescale。终于有Freescale的版块了,现在把以前写的一些东西转过来,希望能有更多人的关注Freescale。 MCF52233_DMA&UART—Direct Memory Access & Universal Asynchronous receiver/transimtters   Coldfire有三个独立的全双 ...…

查看全部问答>

eboot生成nb0问题

E:\\WINCE600\\OSDesigns\\liyutai\\liyutai\\RelDir\\liyutai_ARMV4I_Debug>viewbin eboot. bin ViewBin... eboot.bin Image Start = 0x80021000, length = 0x00000000 Done. boot.bib文件如下: MEMORY ;   Name  &nbs ...…

查看全部问答>

安装EVC4的过程碰到问题, 麻烦高手帮忙

我用的操作系统是XP SP2, 之前已经安装过WINCE, Activesync 4.5.. 从微软官网下了的EVC4, 解压后直接点击SETUP安装, 安装过程提示需要先安装Microsoft Windows CE Platform Manager, 于是我就确认安装.. 结果在安装Platform Manager的过程中就出 ...…

查看全部问答>

quartus ii 8.0

在quartus ii 8.0进行完全编译时提示不支持EPM3128_ATC_144,请指点...…

查看全部问答>

电脑声卡测试问题,求助大家

一台电脑出厂时候,需要进行耳机和麦克风测试:是否能正常输出声音与输入,现在想改进以前的测试方式,可否将耳机与麦的两者的接口直接用一跟线连接起形成一简单的工作回路测试(耳机与麦都是3pin脚),直接将耳机的输出信号当作麦克风的输入信号,并保存成 ...…

查看全部问答>

WinDbg 與 Virtual PC 聯合使用的問題

使用WinDbg與Virtual PC調試驅動程序時,如果讓Virtual PC停止全速運\行進行單步調試時,Virtual PC會占用100%的CPU資源,宿主電腦會運\行得很慢,請問這個有辦法解決嗎?…

查看全部问答>

DSP+FPGA+ASIC的实时图像处理系统

1.引言随着红外焦平面阵列技术的快速发展,红外成像系统实现了高帧频、高分辨率、高可靠性及微型化,在目标跟踪、智能交通监控中得到了越来越多的应用,并向更加广泛的军事及民用领域扩展。实时红外图像处理系统一般会包括非均匀校正、图像增强、 ...…

查看全部问答>