北京北阳电子技术有限公司
电子竞赛
—多功能语音控制小车
Electron-competition Specification
Technology for Easy Life
http://www.unsp.com.cn
2
历届全国大学生电子竞赛 SPCE061A 实现
目录
多功能语音控制小车 .........................................................................................................3
摘要 ..............................................................................................................................3
SPCE061A 单片机概述 ................................................................................................3
一、方案
与论证 ...................................................................................................4
二、硬件电路设计 .......................................................................................................5
2.1 电路方框图及说明............................................................................................5
2.2.1 光电检测电路电路 ..................................................................................6
2.2.2 继电器驱动电路的设计 ..........................................................................6
2.2.3 行使状态控制电路的设计 ......................................................................7
2.2.3 路程计数的设计......................................................................................8
2.2.4 显示电路 .................................................................................................8
2.2.5 麦克录音输入及 AGC 电路 ....................................................................9
2.2.6 语音播报电路 ....................................................................................... 10
三、软件设计 ............................................................................................................. 12
3.1 软件流程图及设计思路说明 .......................................................................... 12
3.2 模块设计 ......................................................................................................... 13
3.2.1 中断服务流程图部分 ............................................................................ 13
3.2.2 显示和播报部分.................................................................................... 14
3.2.3 语音辨识部分 ....................................................................................... 15
四、系统测试及整机指标 .......................................................................................... 17
五、总结 ..................................................................................................................... 17
六、参考资料 ............................................................................................................. 17
Technology for Easy Life
http://www.unsp.com.cn
3
历届全国大学生电子竞赛 SPCE061A 实现方案
多功能语音控制小车
摘要
关键词: SPCE061A 单片机 ,语音辨识,光电传感器
摘要:
随着电子业的发展,自动化已不再是一个新鲜的话题,无人驾驶的小汽车也必将
进入实用阶段,本系统模拟将来的智能小车。根据开始录制的语音命令来控制启动、
停止、返回和语音模,并且能自动避开障碍物,进行前行和倒退。利用光电检测器检
测道路上的障碍物,控制电动小汽车行使状态,并自动记录往返距离,在整个行程中
如果遇到正前方的障碍物将倒退一段距离后拐弯正向前行。
SPCE061A单片机概述
SPCE061A是继µ’nSP系列产品 SPCE500A等之后凌阳科技推出的又一个 16位结构
的微控制器。目前有两种封装形式:84 引脚的 PLCC84 封装和 80 引脚的 LQFP80 贴
片封装。
主要性能如下:
■16 位µ’nSP 微处理器;
■工作电压:VDD 为 2.4~3.6V(cpu), VDDH 为 2.4~5.5V(I/O);
■CPU 时钟: 32768Hz~49.152MHz ;
■内置 2K 字 SRAM、内置 32K FLASH;
■可编程音频处理;
■32 位通用可编程输入/输出端口;
■32768Hz 实时时钟,锁相环 PLL 振荡器提供系统时钟信号;
■2 个 16 位可编程定时器/计数器(可自动预置初始计数值);
■2 个 10 位 DAC(数-模转换)输出通道;
■7 通道 10 位电压模-数转换器(ADC)和单通道语音模-数转换器;
■声音模-数转换器输入通道内置麦克风放大器自动增益控制(AGC)功能;
■系统处于备用状态下(时钟处于停止状态)耗电小于 2µA@3.6V;
■14 个中断源:定时器 A / B,2 个外部时钟源输入,时基,键唤醒等;
■具备触键唤醒的功能;
■使用凌阳音频编码 SACM_S240 方式(2.4K 位/秒),能容纳 210 秒的语音数据;
■具备异步、同步串行设备接口;
Technology for Easy Life
http://www.unsp.com.cn
4
历届全国大学生电子竞赛 SPCE061A 实现方案
■具有低电压复位(LVR)功能和低电压监测(LVD)功能;
■内置在线仿真电路接口 ICE(In- Circuit Emulator);
■具有保密能力;
■具有 WatchDog 功能(由具体型号决定)
一、方案设计与论证
本系统为典型的实时控制系统,易用单片机控制来实现,这里以凌阳 SPCE061A
单片机为主控元件,提出两种设计方案。
方案一:
采用凌阳 SPCE061A 十六位单片机,对小车的整个行驶过程进行实时监控,完
成所有功能需要 24 个 I/O 口,由于凌阳 SPCE061A 单片机提供 32 个 I/O 口,一片
即可实现所有功能,这为设计过程提供了极大方便。其主要设计思想是:小车上,
安装一个霍尔元件利用单片机的 IOB3 外部中断判别轮胎转数的结果用以计算路
程;安装三个检测障碍物的光电检测器和一个碰撞开关,利用 IOB4、IOB5、IOB6
用扫描的方式来控制拐弯和返回;利用单片机的 IOB8-IOB13 控制继电器选择小车
的正、反向和加、减速行驶;凌阳 SPCE061A 十六位单片机提供了丰富的时基信源
和时基中断,给设计者以大量的选择空间,并给设计者提供精确的时基计数,其
加减速通过大功率电阻消耗功率来实现。整体框架如图 1,这种方案可以使程序
简单,易于控制。
方案二:
此方案也采用凌阳 SPCE061A 十六位单片机,与第一种方案不同之处在于利用
单片机的 IOB8 、IOB9 产生控制调速的脉宽和控制小车的正、反行驶,用凌阳
SPCE061A 十六位单片机的 TimeA 和 TimeB 很容易实现脉宽调制,这大大加强了用
脉宽调制控制加减速的可选性,但对继电器要求较高,这里考虑到大众化设计,
采用第一个方案。
Technology for Easy Life
http://www.unsp.com.cn
5
历届全国大学生电子竞赛 SPCE061A 实现方案
二、硬件电路设计
2.1 电路方框图及说明
系统原理框图如图 1 所示。主控元件采用凌阳 SPCE061A 单片机,属于凌阳 u’
nSP™ 系列产品的一个 16 位结构的微控制器。在存储器资源方面考虑到用户的较
少资源的需求以及便于程序调试等功能,SPCE061A 里只内嵌 32K 字的闪存
(FLASH),但用在此系统上已经绰绰有余。较高的处理速度使 u’nSP™ 能够非常
容易地、快速地处理复杂的数字信号。因此以 u’nSP™ 为核心的 SPCE061A 微控制
器也适用在数字语音识别应用领域。SPCE061A 在 2.6V~3.6V 工作电压范围内的工
作速度范围为 0.32MHz~49.152MHz,较高的工作速度使其应用领域更加拓宽。2K
字 SRAM 和 32K 字 FLASH 仅占一页存储空间,32 位可编程的多功能 I/O 端口;两个
16 位定时器/计数器;32768Hz 实时时钟;低电压复位/监测功能;8 通道 10 位模-
数转换输入功能并具有内置自动增益控制功能的麦克风输入方式;双通道 10 位
DAC 方式的音频输出功能,这就为本系统的特定人辨识和语音播报打下了基础。
2.2 各部分电路设计
Technology for Easy Life
http://www.unsp.com.cn
6
历届全国大学生电子竞赛 SPCE061A 实现方案
2.2.1 光电检测电路电路
为了确定障碍物,加入障碍物检测的光电传感器,根据小车所处的位置改变
行驶状态,所使用的光电传感器为市场上普通的光电传感器,再没检测到障碍物
时 Uo 输出为低电平,在检测到障碍物时 Uo 将与传感器内部电路断开,因而加一
个上拉电阻,如图 2 所示,此时将输出高电平。在检测障碍物的过程中采用查询
方式。
2.2.2 继电器驱动电路的设计
R1
1k
1 2
J1
RELAY 1NO
8050
NPN
2
1
3
D1
DIODE
1
2
VCC_BAR
由于单片机 I/O 口提供的电流太小,不能直接驱动继电器。在这里采用
8050 来提供一个开关电压,实现 I/O 口对继电器的驱动,用 IN4007 去掉继
电器断开时线圈产生的反向电流,保护 8050。如图 3。
图 3
Technology for Easy Life
http://www.unsp.com.cn
7
历届全国大学生电子竞赛 SPCE061A 实现方案
2.2.3 行使状态控制电路的设计
如图 4 所示为行使状态控制电路,整个小车的行驶状态由两个电机来控制,
MOTOR B 控制左拐和右拐,MOTOR A 控制前进、倒退以及三挡速度。具体控制如
1 所示。
D6
8050
V5
V9RE5
R-2NO
RE1
R-2NO
Q3
NPN
2
1
3
J2
CON2
1
2
1
2
R3
1k
1 2
M
MO2
MOTOR B
J1
CON2
1
2
1
2
Q2
NPN
2
1
3
J3
CON6
1
2
3
4
5
6
1
2
3
4
5
6
RE3
R-2NO
V5
V5
R2
1k
1 2
R7
5K
1 3
2
M
MO1
MOTOR A
V5
R1
1k
1 2
D5
8050
R6
1k
1 2
V5
D4
8050
Q6
NPN
2
1
3
RE2
R-2NO
R8
5K
1 3
2
V9
Q5
NPN
2
1
3
D3
8050
V5
R5
1k
1 2
D2
8050
V5
Q4
NPN
2
1
3R4
1k
1 2
RE4
R-2NO
D1
8050
V9
RE6
R-2NO
J4
CON2
1
2
1
2
J5
CON2
1
2
1
2
V9
Q1
NPN
2
1
3
V9
M
O
T2
-
M
O
T1
-
MOT2+
IO
A2
IOB10
IO
A1
IO
A5
MOT2-
IOB11 MOT1+
IO
A0
IOB12 MOT1-
IO
A4
M
O
T2
+
IOB8
IO
A3
M
O
T1
+
IOB9
IOB13
图 4 行使状态控制电路
表一:
行驶状态 IOB8 IOB9 IOB10 IOB11 IOB12 IOB13
全速前进 1 0 1 1 0 0
中速前进 1 0 1 0 0 0
慢速前进 1 0 0 0 0 0
左拐 1 0 0 0 1 0
右拐 1 0 0 0 0 1
Technology for Easy Life
http://www.unsp.com.cn
8
历届全国大学生电子竞赛 SPCE061A 实现方案
全速倒退 0 1 1 1 0 0
中速倒退 0 1 1 0 0 0
慢速倒退 0 1 0 0 0 0
倒退左拐 0 1 0 0 1 0
倒退右拐 0 1 0 0 0 1
2.2.3 路程计数的设计
通过检测车轮转过的转数乘上车轮的周长来计算路程,霍尔元件就是一种
很好的可用于车轮转数计数的元件。在普通转盘计数的仪表中加装霍尔元件和
磁铁,即可构成基于磁电转换技术的传感器。霍尔元件固定安装在计数转盘附
近,永磁铁安装在计数盘位上,当转盘每转一圈,永磁铁经过霍尔元件一次即
在信号端产生一个计量脉冲。由于霍尔电压很微弱(mV 级),需用霍尔集成电路
进行处理,如图 4 所示。无论信号转子的哪个叶片通过空气间隙时,霍尔信号
发生器都将产生一个电位由高到低的脉冲信号直接送 IOB3 作外部中断源,信号
转子通过霍尔元件将产生一个中断,此中断的个数即为车轮转过的转数。
图 5
2.2.4 显示电路
采用共阴极数码管 LG5641AH 进行动态显示,LG5641AH 具有四位数码管,这四
个数码管的段选 a、b、c、d、e、f、g 分别接在一起,每一个都拥有一个共阴的
位选端,通过动态显示可轮流显示时间和路程,这有利于节省 I/O 口。系统显示
时间的精度为 1S,显示路程的精度为 0.01m。用 IOB8—IOB11 口作为位选控制,
IOA8—IOA11 口传输要显示的数据,数据线和位选线直接接凌阳 SPCE061A 单片机
的 I/O 口即可,因为 I/O 口输出电流很小不会对 LED 造成损坏,它的电压值却足
以驱动 LED,这不像别的单片机还要外接驱动电路和电阻,采用凌阳 SPCE061A 单
片机大大减化了设计过程和硬件电路。
Technology for Easy Life
http://www.unsp.com.cn
9
历届全国大学生电子竞赛 SPCE061A 实现方案
R1 1K
C13
224
R6
10K
R8
3K
R5
10K
MIC
+
C2
4.7u
C11
224
X1
MICROPHONE
1
2
R3
470K
R4
3K
+ C6
22u
C12
104
C16
502
R7 5.1K
+
+
C1
220u
C9
104
IO
A
12
IO
A
14
IO
B
9
IO
B
8
IO
A
9
IO
B
10
IO
A
11
IO
A
13
IO
B
11
IO
A
10
IO
A
8
A
V
S
S
1
AVSS1
A
V
S
S
1
MICP
MICN
AVSS1
MICOUT
AVSS1
VCM
AGC
VMIC
OPI
LED5641A
U10
13 9 4 2 1 12 5 3 8
14 11 7 10 6
A
+
B
+
C
+
D
+ E
+
F+ G
+
D
P
+
D
D
+
C
O
M
1-
C
O
M
2-
D
D
-
C
O
M
3-
C
O
M
4-
图 6
2.2.5 麦克录音输入及 AGC 电路
麦克风电路如图 4 所示。凌阳的 SPCE061A 是 16 位单片机,具有 DSP 功能,
有很强的信息处理能力,最高时钟可达到 49M,具备运算速度高的优势等等,这
为语音的播放、录放、合成及辨识提供了条件。本系统接入 MIC 电路如图所示,
MIC 为录制语音辨识命令服务。
图 7
下图是简化的语音识别原理图,其中实线部分成为训练模块,虚线部分为识别模
块。辨认特定的使用者即特定语者(Speaker Dependent,SD)模式,使用者可针对特定
语者辨认词汇(可由使用者自行定义,如人名声控拨号),即在启动小车前,系统将会
提示输入语音命令作简单快速的训练纪录,在这里输入“启动”“停止”“返回”和
“模式切换”四个语音命令,通过使用者的声音特性来加以辨认。随着技术的成熟,
进入语音适应阶段 SA(speaker adaptation),使用者只要对于语音辨识核心,经过一段
时间的口音训练后,即可拥有不错的辨识率。
Technology for Easy Life
http://www.unsp.com.cn
10
历届全国大学生电子竞赛 SPCE061A 实现方案
复杂声
学、言
语条件
下的语
音输入
语音模型声学模式训练
语音匹配
语音模式训练
语音处理
识别结果,理
解结果
语言模型
图 8
2.2.6 语音播报电路
音频部分的原理图如下所示,在图 9 中可以看到两个跳线,其作用在于可以测量
DAC 的输出波形;另外拔掉跳线,可以断开 DAC 到喇叭放大的通路,使得 DAC 通道
处于开路状态。这样便于用 DAC 做其他用途,用户可以用过这个跳线来加入自己的外
围电路。
凌阳音频压缩算法根据不同的压缩比分为以下几种 (具体可参见语音压缩工具一
节内容):
SACM-A2000:压缩比为 8:1,8:1.25,8:1.5
SACM-S480: 压缩比为 80:3,80:4.5
SACM-S240: 压缩比为 80:1.5
按音质排序:A2000>S480>S240
用凌阳 Compress Tool 事先把所需要的语音信号录制好,本系统共包括十多个语
音资源,整个语音信号经凌阳 SACM_S480 压缩算法压缩只占有 13.2K 存储空间,
SPCE061A 单片机具有 32k 闪存,使用内部 flash 即可满足要求。凌阳 SPCE061A 单片
机自带双通道 DAC 音频输出, DAC1、DAC2 转换输出的模拟量电流信号分别通过
AUD1 和 AUD2 管脚输出, DAC 输出为电流型输出,所以 DAC 输出经过 SPY0030
音频放大,以驱动喇叭放音,放大电路如图 9(只列出了 DAC1,DAC2 类似),这为单片
机的音频设计提供了极大方便。在它们后面接一个简单的音频放大电路和喇叭即可实
现语音播报功能,音频的具体功能主要通过程序来实现。
Technology for Easy Life
http://www.unsp.com.cn
11
历届全国大学生电子竞赛 SPCE061A 实现方案
+ C21
100u
+
-
U2
SPY0030
5
4
6
1
2
8
3
7
SPH
C26
104
SPL
DAC
J3
SPEAKER
1
2
J2
CON3
1 2 3
R9
1K
1
3
2
C20
104
R10
1K
C23
224
C25
104
AVSS2
VSS
D
A
C
图 9 音频放大电路
Technology for Easy Life
http://www.unsp.com.cn
12
历届全国大学生电子竞赛 SPCE061A 实现方案
开始
语音命令
训练
语音启动
命令
语音切换命令
等待语音
命令
扫描IOB4、
IOB5和IOB6
进行拐弯
和返回处
理
Y
N
N
三、软件设计
3.1 软件流程图及设计思路说明
Technology for Easy Life
http://www.unsp.com.cn
13
历届全国大学生电子竞赛 SPCE061A 实现方案
开IRQ3和
IRQ4
是IRQ3中断吗
寄存器压栈
保护
是IRQ3_EXT1中断吗
是IRQ3_EXT2中断吗
车轮转速加
一
清中断标志
位
寄存器组出
栈
中断返回
清中断标志
位
清中断标志
位
Y
N
Y
N
3.2 模块设计
3.2.1 中断服务流程图部分
SPCE061 单片机有两个外部中断,分别为 EXT1 和 EXT2,两个外部输入脚分别为 B
口的 IOB2 和 IOB3 的复用脚。EXT1(IOB2)和 EXT2(IOB3)两条外部中断请求输
入线,用于输入两个外部中断源的中断请求信号,并允许外部中断以负跳沿触发方式
来输入中断请求信号。EXT1(IOB2)为黑线检测,确定小车位置,EXT2(IOB3)为
轮子转数检测用于计算路程。IRQ4 用做整个行程的时间计数。
Technology for Easy Life
http://www.unsp.com.cn
14
历届全国大学生电子竞赛 SPCE061A 实现方案
初始发
获取显示数
据
显示单个LED
延时子程序
延时完成吗
结束
Y
N
显示的是第四个吗
每个LED显示了500遍吗
LED位选加一
Y
N
初始发
获取所需音
数据
SACM_S480初
始发
开始播放
全部播放完吗
结束
Y
N
图 13
3.2.2 显示和播报部分
当收到三次辨识循环,小车停止,进行路程的显示和拨报,路程的显示采用动态显示,
显示路程,采用四位显示单位为厘米,显示子程序流,程图如图 12,显示的同时会有语音
播报时间和路程,语音采用凌阳 SACM_S480 语音播报,流程图如图 13。
Technology for Easy Life
http://www.unsp.com.cn
15
历届全国大学生电子竞赛 SPCE061A 实现方案
图 12
3.2.3 语音辨识部分
在这里我们用的是 SPCE061 的特定语者辨识 SD(Speaker Dependent),SD 即语
音样板由单个人训练,也只能识别训练某人的语音命令,而他人的命令识别率较低或
几乎不能识别。
图 14 是语音辨识的一个整体框图:
辨识部分
初始化
BSR_DeleteSDG
roup(0)
辨识处理
BSR_GetResult
()
启动实时监控
BSR_EnableCPU
Indicator()
调用训练模块
TrainWord(int
WordID, int
RespondID)
初始化识别器
BSR_InitRecogni
zer(BSR_MIC)
图 14
在程序中我们通过四条语句的训练演示特定人连续音识别,其中第一条语句为
触发名称。另外三条为命令,训练完毕开始辨识当识别出触发名称后,开始发布
命令,则会听到自己设置的应答,具体流程图如图 15
Technology for Easy Life
http://www.unsp.com.cn
16
历届全国大学生电子竞赛 SPCE061A 实现方案
Technology for Easy Life
http://www.unsp.com.cn
17
历届全国大学生电子竞赛 SPCE061A 实现方案
图 15
四、系统测试及整机指标
本系统经测试运行效果良好,达到了预期的目的,语音控制和音频播放带给人耳
目一新的感觉。为了更好的实现语音辨识,本系统机械性能要求较高,噪声不能太大,
行使速度不宜太快。
五、总结
系统用凌阳 SPCE061A 十六位单片机实现。内部集成了 2K 字的 RAM、32K 字的
Flash 加上用凌阳 SPCE061A 十六位单片机实现不需要外扩程序存储器和 RAM,也不用
外接语音芯片,即可实现语音辨识和一系列职能动作,。由于采用了高性能的 MCU,
省掉了大量的外围器件,如外扩 RAM、ROM 存储器等,使硬件结构大大简化,提高
了系统的可靠性。他的软件编程采用 C 和汇编混合编程来实现,集两种语言之优点于
一体,它们的完美结合极大限度地简化了编程过程,丰富了编程思想,给开发者带来
了莫大的方便。采用别的单片机实现所有功能一般要两个单片机,硬件电路也更加复
杂。若要实现语音播报功能和语音辨识,不是多用几个别的类型的单片机就可实现的,
而凌阳单片机提供了很好的语音播放和录制机制以及简单的 API 接口编程。使用
SPCE061A 开发产品不仅给开发者耳目一新的感觉更给用户以振奋的性能。
六、参考资料
参考文献:《SPCE061A 单片机原理及其应用技术》《DSP 理论基础于应用技术》
参考网站:www.21ic.com www.unsp.com.cn