语音控制小车的设计与实现.docx
《语音控制小车的设计与实现.docx》由会员分享,可在线阅读,更多相关《语音控制小车的设计与实现.docx(32页珍藏版)》请在冰豆网上搜索。
语音控制小车的设计与实现
语音控制小车的设计与实现
学院:
软件学院
班级:
08级计算机科学与技术(3)班
姓名:
张博
学号:
0811240533
同组成员:
姜程译
目录
前言…………………………………………………1
绪论…………………………………………………2
第一章凌阳单片机介绍……………………………4
第二章语音控制小车的总体设计…………………6
第一节所需材料(硬件,软件)……………………………………………6
第二节功能要求………………………………………………………………6
第三节车体说明………………………………………………………………6
第四节小车的功能实现原理…………………………………………………13
第五节软件流程设计…………………………………………………………15
第三章………………………………………………18
第一节硬件的安装……………………………………………………………18
第二节代码编译及下载………………………………………………………20
第三节训练小车………………………………………………………………22
第四节声控小车………………………………………………………………24
参考文献……………………………………………24
致谢…………………………………………………25
前言
本文主要以SPCE061A为基础介绍了如何应用SPCE061A芯片进行语音控制小车的硬件和软件设计。
SPCE061A是一种16位μ'nSP结构的微控制器。
该芯片带有硬件乘法器,能够实现乘法运算、内积运算等复杂的运算。
它不仅运算能力强,而且处理速度快,单周期最高可以达到49MHz。
SPCE061A内嵌32K字的FLASH程序存储器以及2K的SRAM。
同时该SOC芯片具有ADC和DAC功能,其MIC_ADC通道带有AGC自动增益环节,能够很轻松的将语音信号采集到芯片内部,两路10位的电流输出型DAC,只要外接一个功放就可以完成声音的播放。
以上介绍的这些硬件资源使得该SPCE061A能够单芯片实现语音处理功能。
SPCE061A是继µ’nSP™系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。
与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。
较高的处理速度使µ’nSP™能够非常容易地、快速地处理复杂的数字信号。
因此,与SPCE500A相比,以µ’nSP™为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。
借助于SPCE061A的语音特色,我们开发出了这款语音控制小车。
小车不仅具有前进、后退、左转、右转停车等基本功能;同时配合SPCE061A的语音特色,实现语音控制功能。
SPCE061A单片机是凌阳公司今年新推出的一款十六位单片机,它的易用性和多功能性受到了广大电子爱好者的好评。
这里要介绍的是用SPCE061A单片机实现2001年全国大学生电子设计竞赛试题(C题),本系统以参赛题目的要求为目的,采用SPCE061A单片机为控制核心,利用光电检测器检测道路上的标志,控制电动小汽车的正反向行驶,快慢速行驶,以及停车的位置,并可自动记录往返时间和距离,在显示完时间距离后将会自动播报整个行程所消耗的时间,以及行驶路程。
整个系统的电路结构简单,可靠性高。
实验测试结果满足要求,本文着重介绍了该系统的软硬件设计方法及测试结果分析。
绪论
第一节单片机的发展历史
单片机一词最初是源于"SingleChipMicrocomputer”,简称SCM。
在单片机诞生时,SCM是一个准确、流行的称谓,“单片机”一词准确地表达了这—概念。
随着SCM在技术上、体系结构上不断扩展其控制功能,单片机已不能用“单片微型计算机”来准确表达其内涵。
国际上逐渐采用"MCU"(MicroControllerUnit”)来代替,形成了单片机界公认的、最终统一的名词。
在国内因为“单片机”一词已约定俗成,故而继续沿用。
单片机按其内部中央处理器CPU(CentralProcessingUnit)的字长分为1位机、4位机、8位机、16位机等。
从1976年8位单片机诞生以来,单片机领域中一直是以8位机为主流机型,预计这种情况还将继续下去。
因此我们以Intel公司的8位机为例来谈谈单片机的发展历史。
1.第一阶段——单片机阶段(1976午~1978年)。
这阶段的任务是探索计算机的单芯片集成。
以Intel公司的MCS—48为代表,其CPU、存储器、定时器/计数器、中断系统、I/O端口、时钟以及指令系统都是按嵌入式系统要求专门设计的。
2.第二阶段——单片机的完善阶段(1978年一1982年)。
计算机的单芯片集成探索取得成功后,随后的任务就是要完善单片机的体系结构。
作为这一阶段的典型代表是Inlel公司将MCS—48向MCS—5l系列的过渡。
它在以下几个重要方面奠定了单片机的体系结构。
(1)完善的外部总线。
有8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。
(2)CPU外围功能单元的集中管理模式。
(3)设置面向工控的位地址空间及位操作方式。
(4)指令系统突出控制功能。
3.第三阶段——微控制器形成阶段(1983年一1990年)。
这一阶段单片机的主要技术发展方向是满足测控对象要求的外围电路的增强,如A/D转换、D/A转换、高速I/O口、WDT(程序监视定时器)、DMA(高速数据传输)等,强化了智能控制的特征。
4.第四阶段--微控制器全面发展阶段(1990年以后)。
即当前的单片机时代,其显著特点是百花齐放、技术创新。
单片机正在满足各个方面的需求.从玩具、小家电、工程控制单元到机器人、智能仪表,过程控制,个人信息终端等无所不能。
第二节单片机的现状及前景
计算机系统的发展已明显地朝三个方向发展;这三个方向就是:
巨型化,单片化,网络化。
以解决复杂系统计算和高速数据处理的仍然是巨型机在起作用,故而,巨型机在目前在朝高速及处理能力的方向努力。
单片机在出现时,Intel公司就给其单片机取名为嵌入式微控制器单片机的最明显的优势,就是可以嵌入到各种仪器、设备中。
这一点是巨型机和网络不可能做到的。
在本文,介绍单片机的最新技术进步,包括数字单片机的工艺及技术,模糊单片机的工艺及技术,单片机的可靠性技术,以及以单片机为核心的嵌入式系统。
数字单片机的技术发展数字单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。
在这几方面,较为典型地说明了数字单片机的水平。
在目前,用户对单片机的需要越来越多,但是,要求也越来越高。
下面分别就这四个方面说明单片机的技术进步状况。
1、内部结构的进步单片机在内部已集成了越来越多的部件,这些部件包括一般常用的电路,例如:
定时器,比较器,A/D转换器,D/A转换器,串行通信接口,Watchdog电路,LCD控制器等。
有的单片机为了构成控制网络或形成局部网,内部含有局部网络控制模块CAN。
例如,Infineon公司的C505C,C515C,C167CR,C167CS-32FM,81C90;Motorola公司的68HC08AZ系列等。
特别是在单片机C167CS-32FM中,内部还含有2个CAN。
因此,这类单片机十分容易构成网络。
特别是在控制,系统较为复杂时,构成一个控制网络十分有用。
单片机在目前的发展形势下,表现出几大趋势:
•可靠性及应用越来越水平高和互联网连接已是一种明显的走向。
•所集成的部件越来越多;NS(美国国家半导体)公司的单片机已把语音、图象部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了;如果从功能上讲它可以讲是万用机。
原因是其内部已集成上各种应用电路。
•功耗越来越低和模拟电路结合越来越多。
随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:
单片机与微机系统之间的距离越来越小,甚至难以辨认。
单片机的应用领域:
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
1.在智能仪器仪表上的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。
例如精密的测量设备(功率计,示波器,各种分析仪)。
2.在工业控制中的应用
用单片机可以构成形式多样的控制系统、数据采集系统。
例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
3.在家用电器中的应用
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
4.在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
5.单片机在医用设备领域中的应用
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
第一章凌阳单片机简介
随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、数据处理以及数字信号处理(DSP,DigitalSignalProcessing)等领域。
凌阳的16位单片机就是为适应这种发展而设计的。
它的CPU内核采用凌阳最新推出的μ’nSP™(MicrocontrollerandSignalProcessor)16位微处理器芯片(以下简称μ’nSP™)。
围绕μ’nSP™所形成的16位μ’nSP™系列单片机(以下简称μ’nSP™家族)采用的是模块式集成结构,它以μ’nSP™内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件,如图1.1所示。
图1.1μ’nSP™家族的模块式结构
μ’nSP™内核是一个通用的核结构。
除此之外的其它功能模块均为可选结构,亦即这种结构可大可小或可有可无。
借助这种通用结构附加可选结构的积木式的构成,便可形成各种不同系列派生产品,以适合不同的应用场合。
这样做无疑会使每一种派生产品具有更强的功能和更低的成本。
SPCE061A板
SPCE061A是继μ’nSP™系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。
与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。
较高的处理速度使μ’nSP™能够非常容易地、快速地处理复杂的数字信号。
因此,与SPCE500A相比,以μ’nSP™为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。
第二章语音控制小车的总体设计
第一节所需材料(硬件,软件)
一,硬件
实验箱及实验仪;凌阳SPCE061A板;小型电动机;车体;车轮;电池盒;两节五号干电池;麦克风;喇叭以及元器件散件等等。
二,软件
windowPE;IDE2.0程序;ResWriter工具;串口工具;语音压缩工具等等。
第二节功能要求
小车的主要性能指标:
1、输入电压:
DC4.5V(3节AA电池)
2、可以实现前、后、左、右四方向运作
3、可以实现弧形旋转
4、具有通过加载61板实现语音控制
语音控制小车的主要功能:
1.可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;
2.配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;
3.可以在行走过程中声控改变小车运动状态;
4.在超出语音控制范围时能够自动停车
注意事项:
1.一定要注意电池的正负极性,切勿装反;
2.长期不用请将电池取出电池盒;
3.由于语音信号的不确定性,语音识别的过程会出现一定的误差和不准确性;
4.由于小车行动比较灵活,速度比较快,在使用时一定要注意保持场地足够大,且保证不会对周围的物体造成伤害;
5.不要让小车长时间运行在堵转状态(堵转状态:
由于小车所受阻力过大,造成小车电机加电但并不转动的现象),这样会造成很大的堵转电流,有可能会损坏小车的控制电路。
第三节车体说明
2.3.1车体结构
语音控制小车为四轮结构,车的结构示意图如图2.3.1所示。
其中前面两个车轮由前轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。
在自然状态下,前轮在弹簧作用下保持中间位置。
后面两个车轮由后轮电机驱动,为整个小车提供动力,所以又称前面的轮子为方向轮,后面的两个轮子为驱动轮,如图2.3.2所示。
图2.3.1
整个小车分为三大部分:
车体部分、61板、控制板。
车体部分:
小车车体主要为两个电机驱动装置,分前轮(方向)驱动和后轮(动力驱动)。
在车体的下面有一个可以安装4节AA电池的电池盒,整个小车的电源就是由它来提供的。
在小车的底部有一个小开关,它负责控制整个小车的电源开通与关断。
61板:
61板是小车的核心部分,它负责整个小车控制信号的产生,以及语音的播放和识别功能实现。
在不使用小车时可以将61板从小车上拆下来,61板仍然是完整的,可以用它来做其它的实验或开发。
控制板:
控制板负责将来自61板的控制信号转化为能够驱动电动机的信号。
(图中61板下面的黄色板子)
2.3.2硬件框图
小车控制系统硬件结构比较简单,如图2.3.3所示,主要分为两个部分:
一个是SPCE061A精简开发板(即“61”板),另外一个是电机控制板。
电机控制板的工作就是根据61板的输出信号去启动和停止相应的电机,以及调整电机的正反转方向。
正是通过开启和关闭相应的电机,使电机在不同的组合状态运转,最终来实现小车的前进,倒退等功能。
图2.3.3
SPCE061A性能
16位μ'nSP™微处理器;
工作电压(CPU)VDD为3.0V~3.6V,(I/O)VDDH为VDD~5.5V;
CPU时钟:
0.32MHz~49.152MHz;
内置2K字SRAM;
内置32KFLASH;
可编程音频处理;
晶体振荡器;
系统处于休眠模式下(时钟处于停止状态),耗电仅为2μA@3.6V;
2个16位可编程定时器/计数器(可自动预置初始计数值);
2个10位DAC(数-模转换)输出通道;
32位通用可编程输入/输出端口;
两级中断,14个中断源;
具备触键唤醒的功能;
使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;
锁相环PLL振荡器提供系统时钟信号;
32768Hz实时时钟;
7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;
声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;
具备串行设备接口(UART,SIO);
具有低电压复位(LVR)功能和低电压监测(LVD)功能;
内置在线仿真电路ICE(In-CircuitEmulator)接口;
具有保密能力;
具有Watch-dog功能。
2.3.3小车控制板
控制板主要包括:
接口电路、电源电路和两路电机的驱动电路,控制板原理图如图2.3.4所示。
接口电路:
接口电路负责将61板的I/O接口信号传送给控制电路板,I/O信号主要为控制电机需要的IOB8~IOB11这四路信号,同时为了方便后续的开发和完善,预留了IOB12~IOB15以及IOA8~IOA15接口,可以在这些接口上添加一些传感器。
电源部分:
整个小车有4个电源信号:
电池电源,控制板工作电源,61板工作电源,61板的I/O输出电源。
系统供电由电池提供,控制板直接采用电池供电(VCC),然后经二极管D1后产生61板电源(VCC_61),通过61板的Vio跳线产生61板的端口电源(V1)。
二极管D1作用:
a)降压,4节电池提供的电压VCC最大可达到6V,D1可有效地降压。
b)保护,D1可以防止电源接反烧坏61板。
图2.3.4
功能分区:
小车控制板功能分区图如图2.3.5。
其中,A区为电源区,分别给61板*和小车控制板提供电源;B、C区分别为后、前轮的电机驱动电路,驱动后面两个轮或者前面两个轮的进行正、反两个方向的转动;D区为I/O接口区,负责和61板的接口进行连接,注意J5与J6是接通的,J7与J8是接通的。
注:
上标(*)表示61板可以通过小车的电池供电,也可单独供电。
图2.3.5小车控制板功能分区图
2.3.4动力电机驱动电路
动力驱动由后轮驱动实现,负责小车的直线方向运动,包括前进和后退,后轮驱动电路是一个全桥驱动电路,如图2.3.5所示:
Q1、Q2、Q3、Q4四个三极管组成四个桥臂,Q1和Q4组成一组,Q2和Q3组成一组,Q5控制Q2、Q3的导通与关断,Q6控制Q1和Q4的导通与关断,而Q5、Q6由IOB9和IOB8控制,这样就可以通过IOB8和IOB9控制四个桥臂的导通与关断控制后轮电机的运行状态,使之正转反转或者停转,进而控制小车的前进和后退。
图2.3.6
当IOB8为高电平、IOB9为低电平时Q1和Q4导通,Q2和Q3截止,后轮电机正转,小车前进;反之当IOB8为低电平、IOB9为高电平时Q1和Q4截止,Q2和Q3导通,后轮电机反转,小车倒退;而当IOB8、IOB9同为低电平时Q1、Q2、Q3和Q4都截止,后轮电机停转,小车停止运动。
注意:
IOB8和IOB9不能同时置高电平,这样会造成后轮驱动全桥短路现象。
2.3.5方向电机控制电路
方向控制由前轮驱动实现,包括左转和右转,前轮驱动电路也是一个全桥驱动电路,如图2.3.6所示:
Q7、Q8、Q9、Q10四个三极管组成四个桥臂,Q7和Q10组成一组,Q8和Q9组成一组,Q11控制Q8、Q9的导通与关断,Q12控制Q7和Q10的导通与关断,而Q11、Q12由IOB10和IOB11控制,这样就可以通过IOB10和IOB11控制前轮电机的正转和反转,进而控制小车的左转和右转。
当IOB10为高电平、IOB11为低电平时Q8和Q9导通,Q7和Q10截止,前轮电机正转,小车前轮朝左偏转;反之当IOB10为低电平、IOB11为高电平时Q8和Q9截止,Q7和Q10导通,前轮电机反转,小车前轮朝右偏转;而当IOB10、IOB11同为低电平时Q8和Q9截止,Q7和Q10也截止,前轮电机停转,在弹簧作用下前轮被拉回到中间位置,保持直向。
注意:
IOB10、IOB11不能同时为高电平,这样会造成前轮驱动全桥的桥臂短路。
图2.3.7
结合以上对前轮和后轮的状态分析,得到小车的运行状态与输入的对照表,如下表所示:
IOB11
IOB10
IOB9
IOB8
后电机
前电机
小车
0
0
0
0
停转
停转
停
0
0
0
1
正转
停转
前进
0
0
1
0
反转
停转
倒退
0
1
0
1
正转
正转
左前转
1
0
0
1
正转
反转
右前转
表2.3.1
另外还有一些不常用的运行状态,比如右后转、左后转等,结合以上对前轮和后轮的状态分析,其端口对照如表2.3.2所示:
IOB11
IOB10
IOB9
IOB8
后电机
前电机
小车
0
1
1
0
反转
正转
右后转
1
0
1
0
反转
反转
左后转
表2.3.2
注意:
为了小车的安全请不要出现以下两种组合情况:
IOB11
IOB10
IOB9
IOB8
后电机
前电机
小车
*
*
1
1
停转
*
停
1
1
*
*
*
停转
停
表2.3.3
第四节小车的功能实现原理
2.4.1小车直走的实现过程
只要让小车的前轮保持自然状态(即不左偏又不右偏),然后让后轮正传即可实现小车的前进。
对应全桥驱动电路如表2.4.1所示
IOB11
IOB10
IOB9
IOB8
后电机
前电机
小车
0
0
0
1
正转
停转
前进
表2.4.1
2.4.2小车倒退的实现过程
与之相反,只要让小车的前轮保持自然状态(即不左偏又不右偏),然后让后轮倒传即可实现小车的前进。
对应全桥驱动电路如表2.4.2所示
IOB11
IOB10
IOB9
IOB8
后电机
前电机
小车
0
0
1
0
反转
停转
倒车
表2.4.2
2.4.3小车的左前转实现过程
在某些场合,小车还需要转弯,那么小车又是怎样实现转弯的呢?
如果需要小车实现左前转,可以让小车的前轮左偏,后轮正转,这样就可以实现小车的左转,如表2.4.3所示:
IOB11
IOB10
IOB9
IOB8
后电机
前电机
小车
0
1
0
1
正转
正转
左前转
表2.4.3
2.4.4小车的右前转实现过程
如果需要小车实现右前转,可以让小车的前轮右偏,后轮正转,这样就可以实现小车的右转,如表2.4.4所示:
IOB11
IOB10
IOB9
IOB8
后电机
前电机
小车
0
1
1
0
反转
正转
右后转
1
0
1
0
反转
反转
左后转
2.4.5小车的右后转及左后转与之相反,即可。
2.4.6PWM调速的原理
如果需要调速,可以直接调用SPCE061A的PWM资源,通过调节PWM的占空比来实现速度的调节。
当IOB11~IOB8输出的逻辑电平组合为“0001”时,加在后轮电机上的驱动电压为VCC;而当IOB11~IOB8输出“0000”时,加在后电机上的电压为0V。
如果交替地向端口送“0001”和“0000”两种组合(PWM输出端口自动实现),那么加在小车电机两端的电压就在VCC和0V之间不停的跳变,对应的电机电压波形如图2.4.1示:
图2.4.1PWM调速原理图