❶ 单片机控制继电器要个原理方框图
方案一:
采用凌阳SPCE061A十六位单片机,对小车的整个行驶过程进行实时监控,完成所有功能需要24个I/O口,由于凌阳SPCE061A单片机提供32个I/O口,一片即可实现所有功能,这为设计过程提供了极大方便。其主要设计思想是:小车上,安装一个霍尔元件利用单片机的IOB3外部中断判别轮胎转数的结果用以计算路程;安装三个检测障碍物的光电检测器和一个碰撞开关,利用IOB4、IOB5、IOB6用扫描的方式来控制拐弯和返回;利用单片机的IOB8-IOB13控制继电器选择小车的正、反向和加、减速行驶;凌阳SPCE061A十六位单片机提供了丰富的时基信源和时基中断,给设计者以大量的选择空间,并给设计者提供精确的时基计数,其加减速通过大功率电阻消耗功率来实现。整体框架如图1,这种方案可以使程序简单,易于控制。
方案二:
此方案也采用凌阳SPCE061A十六位单片机,与第一种方案不同之处在于利用单片机的IOB8 、IOB9产生控制调速的脉宽和控制小车的正、反行驶,用凌阳SPCE061A十六位单片机的TimeA和TimeB很容易实现脉宽调制,这大大加强了用脉宽调制控制加减速的可选性,但对继电器要求较高,这里考虑到大众化设计,采用第一个方案。
二、硬件电路设计
2.1电路方框图及说明
系统原理框图如图1所示。主控元件采用凌阳SPCE061A单片机,属于凌阳u’nSP�6�4系列产品的一个16位结构的微控制器。在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH),但用在此系统上已经绰绰有余。较高的处理速度使u’nSP�6�4能够非常容易地、快速地处理复杂的数字信号。因此以u’nSP�6�4为核心的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各部分电路设计
❷ 求基于凌阳单片机的出租车计价器论文
1 引言
利用凌阳单片机SPCE061A 的语音功能
[1],配合SPLC501 液晶模组,可以模拟实现带
语音提示功能的出租车计价系统,相对于用51
单片机而言,可以去掉单片机外部的语音芯片
和存储器芯片,系统硬件设计较为精简稳定,
功能更为强大,因而本文设计的基于凌阳单片
机的出租车计价器具有一定的实用价值。
2 计价系统的计算方法
本文设计的出租车计价系统可以接受里
程传感器的脉冲输入(使用PWM 模拟替代传
感器脉冲),并对脉冲进行计量,继而转换成里
程;采用现行出租车计价系统的计算方法,对
行驶里程进行计费; 提供友好的用户界面,并
具有语音提示功能。该出租车计价系统的计
算方法如下:
2.1 里程计量
(1)单片机对传感脉冲进行计数(传感器脉
冲使用SPCE061A 内部PMW 输出模拟),并
将脉冲数换成公里数;
(2)每公里对应的脉冲数可以调整。
2.2 费用计算
费用计算包括两部分:行驶费用和低速等
待费用;
(1)行驶费用计算如下:
1) 白天行驶里程不足StartMilege(3公里)
时,费用按照起步价StartPrice(¥7.0 元)计
算;当超出StartMilege 时,行驶费用=
StartPrice+(行驶里程- StartMilege)×每公
里的单价;夜晚行驶里程不足StartMilege时,
费用按照起步价NightStartPrice(¥8.0元)计
算;当超出StartMilege 时,行驶费用=
NightStartPrice+(行驶里程-StartMilete)×
每公里的单价。
2) 每公里的单价根据时间区分为白天和
黑夜两种价格。白天每公里价格为
PricePerkm(¥2.0 元),晚上每公里价格为
NightPricePerkm(¥2.4 元);
3)依靠时间判断白天和黑夜,晚上Night
Time1(23 点)之后,认为进入夜行状态,早上
NightTime2(5点)之后,认为离开夜行状态,进
入昼行状态;
4) 如果行驶里程超过LongWayLimit(十
三公里),则超出的里程的单价上涨为原单价的
LongWayPrice(1.5)倍,做为空返费用。
(2)低速等待费用计算如下:
1) 低速等待时间的计时方法为:当车速低
于WaitSpeed1(5 公里/ 时)时开始计时,车速
超过WaitSpeed2(10 公里/ 时)时终止计时;
2) 如果行驶过程中多次发生低速等待,则
等待时间累加;
3)总的等待时间不超过FirstWaitTim-
Limit(5分钟),则不计算费用;
4)总的等待时间超过FirstWaitTimeLimit
(五分钟),增加WaitPrice(¥2.0)元,同时,超
出的时间按照每WaitTimeLimit(3 分钟)增加
WaitPrice(¥2.0)元计算,不足Wait Time
Limit(3分钟)的部分不增加费用。
5)上面提到的WaitSpeed1、WaitSpeed2
、FirstWaitTimeLimit、WaitTime-
Limit、WaitPrice等参数要求可以在程序中调
整;
(3)要求系统可以在行驶期间实时检测并
计算总的费用(包括行驶费用和等待费用)。
3 系统硬件设计
图1 为出租车计价器的硬件连接示意
图。采用SPCE061A 作为主控制器,通过IOB2
接收传感器的脉冲输入(在本方案中使用IOB9
输出的PWM 模拟传感器的脉冲),对脉冲进行
计数,然后换算成里程数,并按照现行的出租
车计价系统的标准进行计费。
4 系统软件设计
本系统软件中包括下面程序模块:
主程序:初始化系统涉及到的硬件模块,
扫描键盘,根据按键启动/ 停止里程测量,并
调用用户界面程序定时更新日期时间显示,实
时更新单价、里程、低速时间、费用等信息显
示[2]。
液晶驱动程序:LCD 显示驱动程序,实现
文本、图形显示等功能。采用SPLC501 液晶
模组附带的驱动程序。
按键扫描程序:扫描按键,返回扫描结
果。系统使用1024Hz 时基中断对IOA 口低
基于凌阳单片机的出租车计价器的设计
司孝平1 李战英2
(1 华北水利水电学院信息工程学院 河南郑州 450011; 2 河南省公安厅 河南郑州 450004)
摘 要: 本文介绍了利用凌阳单片机SPCE061A 作为主控制器, 配合SPLC501 液晶模组设计出租车计价器的过程。该系统可以实现出租
车计价系统的基本功能, 并具有友好的语音提示界面。
关键词:单片机 液晶模组 出租车计价器
中图分类号:TP368.1 文献标识码: A 文章编号:1674-098X(2008)12(a)-0010-02
(下转12 页)
1 2 科技创新导报 Science and Technology Innovation Herald
2008 NO.34
Science and Technology Innovation Herald
综 述
科技创新导报
八位进行扫描,并进行去抖、长短按键判断
等工作。
语音播放程序:播放提示音,行驶里程、
费用等[3]。
计价管理程序:完成传感器脉冲计量,然
后转换为公里数,并根据规则计算对应的费
用,同时,监测行驶速度,统计低速时间,计算
低速等待费用,提供液晶显示更新函数,以便
主函数可以控制更新用户界面以及行驶里程、
费用等信息的显示。该模块包括PWM 管理程
序、里程计量程序、时间管理程序、费用管理
程序、用户界面控制程序等部分。
4.1 主程序
主程序流程如图2:程序运行后首先初始
化各个硬件部件,同时打开1KHz 和2Hz 时基
中断,为键盘扫描和时间管理模块服务。然
后,程序进入主循环,不断进行按键扫描,并根
据按键启动/ 停止里程计量,或进入系统设置
模式。在主循环中同时还对时间显示进行更
新。
4.2 计价管理程序
(1) PWM 管理程序
本系统中,使用了TimerB 产生PWM 波,
模拟实际的出租车上的里程传感器脉冲。改
变PWM 的频率, 就相当于改变了车速, 对
PWM 波的脉冲进行计数,等同于对里程传感
器的脉冲进行计数。
对PWM 的管理包括: 启动PWM、增大
PWM 频率、减小PWM 频率、停止PWM 等。
对PWM 的管理包括: 启动PWM、增大PWM
频率、减小PWM 频率、停止PWM 等。
系统中为TimerB 设置了96K 的时钟源,
以产生一定频率范围的P W M 波, 改变
TimerB 的计数初值,将会改变PWM 的频率,
从而达到管理PWM 频率的目的。
(2) 里程计量程序
本系统中使用了外部中断1 来实时检测
由IOB2 输入的脉冲。在外部中断服务程序中
对中断次数进行计数,便可以统计输入脉冲的
数量。
一般情况下,运行一段时间后输入单片机
的脉冲数量会比较大,容易导致计数结果溢
出。故程序中使用了两个变量对脉冲进行计
数。uiPulseNum变量用来记录中断次数(脉冲
个数),当达到一公里对应的脉冲数量后,使另
外一个记录公里数的变量uiDistance加一,并
使uiPulseNum 归零重新计数。这样,便将公
里数的整数部分和小数部分分开统计,使结果
不容易溢出,也便于结果转换。
另外,程序中使用了2Hz 时基中断用来计
算车辆的行驶速度。统计0.5s内的脉冲数量,
即可以得到车辆的行驶速度。这一速度将提
供给费用管理程序用来判断是否处于低速等
待状态。
(3) 时间管理程序
系统使用2Hz 时基中断实现计时。其中,
2Hz 计数器ulTimer 用来为其他模块提供两个
2Hz 的计数器以方便地实现计时等操作。
(4) 费用管理程序
费用管理程序的作用是监测系统时间、
行驶里程和低速等待时间,并根据一定规则换
算成费用。启动计费时,需要判断当前时间是
否属于夜行,以便执行夜行起步价和单价。启
动计费后,主程序需要在主循环中不断调用计
费服务程序。
计费服务程序是按照规则计算费用的核
心程序。在这里,程序记录当前行驶里程,并
判断是否出现昼夜行交替现象,以便对单价进
行调整;判断行驶里程是否超过规定的空返距
增加,混合砂浆的导热系数逐渐降低,与水泥
砂浆的变化类似,掺量与导热系数基本呈直线
趋势,并且随着橡胶粉掺量的增加,导热系数
下降的幅度逐渐降低。
2.3 干密度和导热系数的关系
如图3 所示,随着干表观密度的增加,导
热系数增加。利用所测数据,回归得出混合砂
浆导热系数与其干密度之间的函数关系式1.2
如下:
y=0.1121e0.0008x(R2=0.9903) (1.2)
式中:x 为橡胶水泥砂浆的干燥密度,kg/
m 3;
Y 为橡胶水泥砂浆的导热系数,W/(m·
℃)。
由以上的试验数据和拟合曲线可见,混合
砂浆的导热系数与其干密度之间具有较好的
相关性。
3 保温机理分析
从保温的角度来讲,就是要防止室内的热
量通过围护结构传出去。热量通过建筑围护
结构传递的方式有三种:导热、对流和辐射,
其中导热是最主要的方式,要提高保温材料的
保温性能,则需增大其热阻。由热阻公式R=
S/ 入可知,途径有两条:加大保温材料厚度和
减少保温材料的导热系数[2]。但由于结构和
经济方面的原因,保温材料不可能做得太厚。
因此只能选用导热系数极低的保温材料。由
于室内温度不高,传热的方式主要是传导;导
热必须有介质,热能通过介质分子的振动传
递。因此减少或阻止传热,就必须增大材料的
热阻,即选用导热系数小、热阻大的材料,增
加材料的气孔率,特别是增加材料中盲孔的数
量(贯通的气孔中形成空气对流,增大传热量)。
本试验在砂浆中掺入橡胶粉就是基于这一思
想设计的。橡胶粉相当于泡沫引气剂,掺入引
气剂后,由于引入大量微细的不连通的微小
孔,均匀分别在砂浆体内,阻断或减缓了热流
的通过,从而导致砂浆的导热系数降低。
由本章试验数据可知,砂浆的导热系数与
其表观密度之间有密切的关系。这是因为表
观密度的大小主要反映了材料内部的孔隙率
大小,砂浆的导热系数是由骨架与气孔中空气
的导热系数共同决定的,一般情况下孔隙多,
空气含量多,材料的导热系数也就越小,因此
随表观密度的增加,导热系数增加,其保温性
能也逐渐下降。
4 本章小结
本章试验研究了橡胶粉掺量对水泥砂浆
和混合砂浆热工性能的影响,得出以下结果:
(1)由于橡胶粉的表观密度比砂要小很多,
等体积取代细纱后,砂浆试件的干表观密度明
显下降。当橡胶粉体积分数为20%时,水泥砂
浆的干表观密度是基准砂浆的83.6%;当橡胶
粉体积分数为100%时,干表观密度仅为基准
砂浆的1/2。
(2)橡胶粉的掺入显着降低砂浆的导热系
数。橡胶粉掺量为20%时,水泥砂浆的导热系
数仅为基准砂浆的65.9%;当砂完全被橡胶粉
取代时,水泥砂浆的导热系数不到基准砂浆的
1/3,这表明橡胶砂浆具有良好的保温性能。
(3)利用本章的试验数据,通过回归分析分
别得出了橡胶水泥砂浆和橡胶混合砂浆的干
表观密度与其导热系数的关系为:y=0.
0385e0.0015x(R2=0.9957)和y=0.1121e0.0008x
(R2=0.9903),可见两者具有良好的相关性。
参考文献
[1] 宫本镇.混凝土小型空心砌块砌筑砂浆的
研制.硕士学位论文。20040501
[2] 干拌砂浆的研究.硕士毕业论文.2004,3,
5.
离,一旦超过此距离则将价格上涨50%;从里
程测量模块得到车辆行驶的速度,判断是否出
现低速行驶状态,并利用时钟管理模块提供的
2Hz 计数器对低速行驶时间进行计时,从而计
算低速等待时间。
(5) 用户界面控制程序
使用液晶驱动程序提供的功能函数,可以
方便地在液晶屏上显示需要的信息或图片。
系统上电后首先绘制固定不变的部分,如一些
汉字提示等。其他如单价、行驶里程等内容在
车辆处于行驶状态时需要实时更新。界面控
制程序将从里程计量模块、时间管理模块和
计费管理模块得到必要数据进行显示。
5 结语
实验证明,所设计的出租车计价器功能正
确,完全达到了设计目标。
参考文献
[1] 雷思孝等.单片机原理及实用技术——凌
阳16位单片机原理及应用.西安电子科技
大学出版社,2004,1.
[2] 罗亚非等.凌阳16 位单片机应用基础.北
京航天航空大学出版社,2003,12.
[3] 李晶皎.嵌入式语音技术及凌阳16位单片
机应用.北京航天航空大学出版社,2003,
11.
(上接10 页)
❸ 凌阳16位单片机SPCE061A的最小系统原理图
发给你了,有图.
SPCE061A1.2.1 总述
SPCE061A 是继µ’nSP™系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。较高的处理速度使µ’nSP™能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以µ’nSP™为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。
1.2.2 性能
16位µ’nSP™微处理器;
工作电压(CPU) VDD为2.4~3.6V (I/O) VDDH为2.4~5.5V
CPU时钟:0.32MHz~49.152MHz ;
内置2K字SRAM;
内置32K FLASH;
可编程音频处理;
晶体振荡器;
系统处于备用状态下(时钟处于停止状态),耗电仅为2µ[email protected];
2个16位可编程定时器/计数器(可自动预置初始计数值);
2个10位DAC(数-模转换)输出通道;
32位通用可编程输入/输出端口;
14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒;
具备触键唤醒的功能;
使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;
锁相环PLL振荡器提供系统时钟信号;
32768Hz实时时钟;
7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;
声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;
具备串行设备接口;
具有低电压复位(LVR)功能和低电压监测(LVD)功能;
内置在线仿真电路ICE(In- Circuit Emulator)接口;
具有保密能力;
具有WatchDog功能。
1.2.3 结构概览
SPCE061A的结构如图1.2所示:1.2.4 芯片的引脚排列和说明
SPCE061A有两种封装片,一种为84个引脚,PLCC84封装形式;它的排列如图1.4所示;另一种为80个引脚,LQFP80封装。它的排列如图所示。
在PLCC84封装中,有15个空余脚,用户使用时这15个空余脚悬浮。在LQFP80封装中有9个空余脚,用户使用时这9个空余脚接地。此处以LQFP80封装管脚功能介绍。
【1】可将PFUSE接5V, PVIN接GND并维持1s以上即可将内部保险丝熔化,此后就无法读取和向闪存加载数据。
1.2.5 特性
SPCE061A系统的特性参数如表1.2所示。
1.2.6 SPCE061A最小系统
最小系统接线如图1.6所示,在OSC0、OSC1端接上晶振及谐振电容,在锁相环压控振荡器的阻容输入VCP端接上相应的电容电阻后即可工作。其它不用的电源端和地端接上0.1µF的去藕电容提高抗干扰能力。
1.2.7 SPCE061A开发方法
SPCE061A的开发是通过在线调试器PROBE实现的。它既是一个编程器(即程序烧写器),又是一个实时在线调试器。用它可以替代在单片机应用项目的开发过程中常用的软件工具——硬件在线实时仿真器和程序烧写器。它利用了SPCE061A片内置的在线仿真电路ICE(In- Circuit Emulator)接口和凌阳公司的在线串行编程技术。PROBE工作于凌阳IDE集成开发环境软件包下,其5芯的仿真头直接连接到目标电路板上SPCE061A相应管脚,直接在目标电路板上的CPU---SPCE061A调试、运行用户编制的程序。PROBE的另一头是标准25针打印机接口,直接连接到计算机打印口与上位机通讯,在计算机IDE集成开发环境软件包下,完成在线调试功能。图1.7是计算机、PROBE、用户目标板三者之间的连接示意图,图1.8是实物连接图。
1.2.8 应用领域
家用电器控制器:冰箱、空调、洗衣机等白色家电
仪器仪表:数字仪表(有语音提示功能)
电表、水表、煤气表、暖气表
工业控制
智能家居控制器
通讯产品:多功能录音电话、自动总机、语音信箱、数字录音系统产品
医疗设备、保健器械(电子血压计、红外体温监测仪等)
体育健身产品(跑步机等)
电子书籍(儿童电子故事书类)、电教设备等
语音识别类产品(语音识别遥控器、智能语音交互式玩具等)
❹ 凌阳61单片机的优势以及其在语音识别方面上的优势
凌阳单片机本身具备语音识别功能,不需要外扩语音识别模块,虽然具有一点点DSP功能,就能做到语音识别功能。如常见的语音控制机器人,语音控制小车等。
我们所说的音频是指频率在20 Hz~20 kHz的声音信号,分为:波形声音、语音和音乐三种,其中波形声音就是自然界中所有的声音,是声音数字化的基础。语音也可以表示为波形声音,但波形声音表示不出语言、语音学的内涵。语音是对讲话声音的一次抽象。是语言的载体,是人类社会特有的一种信息系统,是社会交际工具的符号。音乐与语音相比更规范一些,是符号化了的声音。但音乐不能对所有的声音进行符号化。乐谱是符号化声音的符号组,表示比单个符号更复杂的声音信息内容。
将模拟的(连续的)声音波形数字符化(离散化),以便利数字计算机进行处理的过程,主要包括采样和量化两个方面。
数字音频的质量取决于:采样频率和量化位数这两个重要参数。此外,声道的数目、相应的音频设备也是影响音频质量的原因
语音压缩编码中的数据量是指:数据量=(采样频率×量化位数)/8(字节数) ×声道数目。
压缩编码的目的:通过对资料的压缩,达到高效率存储和转换资料的结果,即在保证一定声音质量的条件下,以最小的资料率来表达和传送声音信息。
压缩编码的必要性:实际应用中,未经压缩编码的音频资料量很大,进行传输或存储是不现实的。 所以要通过对信号趋势的预测和冗余信息处理,进行资料的压缩,这样就可以使我们用较少的资源建立更多的信息。
举个例子,没有压缩过的CD品质的资料,一分钟的内容需要11MB的内存容量来存储。如果将原始资料进行压缩处理,在确保声音品质不失真的前提下,将数据压缩一半,5.5MB就可以完全还原效果。而在实际操作中,可以依需要来选择合适的算法。
常见的几种音频压缩编码:
1) 波形编码:将时间域信号直接变换为数字代码,力图使重建语音波形保持原语音信号的波形形状。波形编码的基本原理是在时间轴上对模拟语音按一定的速率抽样,然后将幅度样本分层量化,并用代码表示。译码是其反过程,将收到的数字序列经过译码和滤波恢复成模拟信号。
如:脉冲编码调制(Pulse Code Molation,PCM)、差分脉冲编码调制(DPCM)、增量调制(DM)以及它们的各种改进型,如自适应差分脉冲编码调制(ADPCM)、自适应增量调制(ADM)、自适应传输编码(Adaptive Transfer Coding,ATC)和子带编码(SBC)等都属于波形编码技术。
波形编码特点:高话音质量、高码率,适于高保真音乐及语音。
2) 参数编码:参数编码又称为声源编码,是将信源信号在频率域或其它正交变换域提取特征参数,并将其变换成数字代码进行传输。译码为其反过程,将收到的数字序列经变换恢复特征参量,再根据特征参量重建语音信号。具体说,参数编码是通过对语音信号特征参数的提取和编码,力图使重建语音信号具有尽可能高的准确性,但重建信号的波形同原语音信号的波形可能会有相当大的差别。
如:线性预测编码(LPC)及其它各种改进型都属于参数编码。该编码比特率可压缩到2Kbit/s-4.8Kbit/s,甚至更低,但语音质量只能达到中等,特别是自然度较低。
参数编码特点:压缩比大,计算量大,音质不高,廉价!
3) 混合编码:混合编码使用参数编码技术和波形编码技术,计算机的发展为语音编码技术的研究提供了强有力的工具,大规模、超大规模集成电路的出现,则为语音编码的实现提供了基础。80年代以来,语音编码技术有了实质性的进展,产生了新一代的编码算法,这就是混合编码。它将波形编码和参数编码组合起来,克服了原有波形编码和参数编码的弱点,结合各自的长处,力图保持波形编码的高质量和参数编码的低速率。
如:多脉冲激励线性预测编码(MPLPC),规划脉冲激励线性预测编码(KPELPC),码本激励线性预测编码(CELP)等都是属于混合编码技术。其数据率和音质介于参数和波形编码之间。
总之,音频压缩技术之趋势有两个:
1)降低资料率,提高压缩比,用于廉价、低保真场合(如:电话)。
2)追求高保真度,复杂的压缩技术(如:CD)。
7.1.5 语音合成、辨识技术的介绍:
按照实现的功能来分,语音合成可分两个档次:
(1) 有限词汇的计算机语音输出
(2) 基于语音合成技术的文字语音转换(TTS:Text-to-Speech)
按照人类语言功能的不同层次,语音合成可分为三个层次:
(1) 从文字到语音的合成(Text-to-Speech)
(2) 从概念到语音的合成(Concept-to-Speech)
(3) 从意向到语音的合成(Intention-to-Speech)
早期只能辨认特定的使用者即特定语者(Speaker Dependent,SD)模式,使用者可针对特定语者辨认词汇(可由使用者自行定义,如人名声控拨号),作简单快速的训练纪录使用者的声音特性来加以辨认。随着技术的成熟,进入语音适应阶段SA(speaker adaptation),使用者只要对于语音辨识核心,经过一段时间的口音训练后,即可拥有不错的辨识率。
2)非特定语者模式(Speaker Independent,SI),使用者无需训练即可使用,并进行辨认。任何人皆可随时使用此技术,不限定语者即男性、女性、小孩、老人皆可。
连续语音:
1)单字音辨认:为了确保每个字音可以正确地切割出来,必须一个字一个字分开来念,非常不自然,与我们平常说话的连续方式,还是有点不同。
2)整个句子辨识:只要按照你正常说话的速度,直接将要表达的说出来,中间并不需要停顿,这种方式是最直接最自然的,难度也最高,现阶段连续语音的辨识率及正确率,虽然效果还不错但仍需再提高。然而,中文字有太多的同音字,因此目前所有的中文语音辨识系统,几乎都是以词为依据,来判断正确的同音字。
可辨认词汇数量:
内建的词汇数据库的多寡,也直接影响其辨识能力。因此就语音辨识 的词汇数量来说亦可分为三种:
1)小词汇量(10-100)
2)中词汇量(100-1000)
3)无限词汇量(即听写机)
压缩分无损压缩和有损压缩。
无损压缩一般指:磁盘文件,压缩比低:2:1~4:1。
而有损压缩则是指:音/视频文件,压缩比可高达100:1。
凌阳音频压缩算法根据不同的压缩比分为以下几种 (具体可参见语音压缩工具一节内容):
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
凌阳的SPCE061A是16位单片机,具有DSP功能,有很强的信息处理能力,最高时钟频率可达到49MHz,具备运算速度高的优势等等,这些都无疑为语音的播放、录放、合成及辨识提供了条件。
凌阳压缩算法中SACM_A2000、SACM_S480、SACM_S240主要是用来放音,可用于语音提示,而DVR则用来录放音。对于音乐合成MS01,该算法较繁琐,而且需要具备音乐理论、配器法及和声学知识,所以对于特别爱好者可以到我们的网站去了解相关内容,这里只给出它的API函数介绍及程序代码的范例,仅供参考。
在前面我们已经介绍过语音辨识的一些相关的内容,在这里我们给出SPCE061的特定语者辨识SD(Speaker Dependent)的一个例子以供有兴趣者参考。SD即语音样板由单个人训练,也只能识别训练某人的语音命令,而他人的命令识别率较低或几乎不能识别。
同样语音辨识也将其一些功能作成模块,并通过API调用来实现这些功能,在这里我们为大家介绍一些常用的API函数,如果有兴趣者可以登陆我们的网站去获得更多的相关内容
初始化:
【API格式】C: int BSR_DeleteSDGroup(0);
ASM:F_BSR_DeleteSDGroup(0)
【功能说明】SRAM初始化。
【参 数】该参数是辨识的一个标识符,0代表选择SRAM,并初始化。
【返 回 值】当SRAM擦除成功返回0,否则,返回-1。
训练部分:
1) 【API格式】C:int BSR_Train (int CommandID, int TraindMode);
ASM:F_BSR_Train
【功能说明】训练函数。
【参 数】
CommandID:命令序号,范围从0x100到0x105,并且对于每组训练语句都是唯一的。
TraindMode:训练次数,要求使用者在应用之前训练一或两遍:
BSR_TRAIN_ONCE:要求训练一次。
BSR_TRAIN_TWICE要求训练两次。
【返 回 值】训练成功,返回0;没有声音返回-1;训练需要更多的语音数据来训练,返回-2;当环境太吵时,返回-3;当数据库满,返回-4;当两次输入命令不通,返回-5;当序号超出范围,返回-6。
【备 注】
① 在调用训练程序之前,确保识别器正确的初始化。
② 训练次数是2时,则两次一定会有差异,所以一定要保证两次训练结果接近
③ 为了增强可靠性,最好训练两次,否则辨识的命令就会倾向于噪音
④ 调用函数后,等待2秒开始训练,每条命令只有1 .3秒,也就是说,当训练命令超出1.3秒时,只有前1.3秒命令有效。
辨识部分:
1)【API格式】C: void BSR_InitRecognizer(int AudioSource)
ASM:F_BSR_InitRecognizer
【功能说明】辨识器初始化。
【参 数】 定义语音输入来源。通过MIC语音输入还是LINE_IN电压模拟量输入。
【返 回 值】无。
2)【API格式】C:int BSR_GetResult();
ASM:F_ BSR_GetResult
【返回值】=R1
【功能说明】辨识中获取数据。
【参 数】 无。
【返 回 值】
当无命令识别出来时,返回0;
识别器停止未初始化或识别未激活返回-1;
当识别不合格时返回-2;
当识别出来时返回命令的序号。
` 【备 注】 该函数用于启动辨识,BSR_GetResult();
3)【API格式】C: void BSR_StopRecognizer(void);
ASM:F_ BSR_StopRecognizer
【功能说明】停止辨识。
【参 数】无。
【返 回 值】 无。
【备 注】该函数是用于停止识别,当调用此函数时,FIQ_TMA中断将关闭。
中断部分:
【API格式】 ASM:_BSR_InitRecognizer
【功能说明】 在中断中调用,并通过中断将语音信号送DAC通道播放。
【参 数】无。
【返 回 值】无。
【备 注】
① 该函数在中断FIQ_TMA中调用
② 当主程序调用BSR_InitRecognizer时,辨识器便打开8K采样率的FIQ_TMA中断并开始将采样的语音数据填入辨识器的数据队列中。
③ 应用程序需要设置一下程序段在FIQ_TMA中:
.PUBLIC _FIQ
.EXTERNAL _BSR_FIQ_Routine //定义全局变量
.TEXT
_FIQ:
PUSH R1,R4 to [SP] //寄存器入栈保护
R1 = [P_INT_Ctrl]
CALL _BSR_FIQ_Routine //调用子程序
R1 = 0x2000 //清中断标志位
[P_INT_Clear] = R1
POP R1,R4 from [SP]; //寄存器组出栈
RETI
END
以下是特定人辨识的一个范例:
在程序中我们通过三条语句的训练演示特定人连续音识别,其中第一条语句为触发名称。另外两条为命令,训练完毕开始辨识当识别出触发名称后,开始发布命令,则会听到自己设置的应答,具体命令如下:
****************训练******************************************
提示音 输入语音
--------------------------------------------------------------------------------------------------------
"请输入触发名称" "警卫"
"请输入第一条命令" "开枪"
"请输入第二条命令" "你在干什么?"
"请再说一遍"(以上提示音每说完一遍出现此命令)
"没有听到任何声音"(当没有检测到声音时出现此命令)
"两次输入名称不相同"(当两次输入的名称不同时出现此命令)
"两次输入命令不相同"(当两次输入的命令有差异时出现此命令)
"准备就绪,请开始辨识"(以上三条语句全部训练成功时,进入识别)
*****************识别**********************************************************************
发布命令 应答
----------------------------------------------------------------------------------------------------------
"警卫" "在"/"长官"
"开枪" "枪声"
"你在干什么?" "我在巡逻"/"我在休息"/"我在等人"
注意:在每次提示音结束后2-3秒再输入命令或当上次应答结束2-3秒后再发布命令
#INCLUDE "bsrsd.h"
#DEFINE NAME_ID 0x100
#DEFINE COMMAND_ONE_ID 0x101
#DEFINE COMMAND_TWO_ID 0x102
#DEFINE RSP_INTR 0
#DEFINE RSP_NAME 1
#DEFINE RSP_FIRE 2
#DEFINE RSP_GUARD 3
#DEFINE RSP_AGAIN 4
#DEFINE RSP_NOVOICE 5
#DEFINE RSP_NAMEDIFF 6
#DEFINE RSP_CMDDIFF 7
#DEFINE RSP_STAR 8
#DEFINE RSP_MASTER 9
#DEFINE RSP_HERE 10
#DEFINE RSP_GUNSHOT 0
#DEFINE RSP_PATROL 11
#DEFINE RSP_READY 12
#DEFINE RSP_COPY 13
#DEFINE RSP_NOISY 14
//..................全程变量..................……………………………………………………………………….
int gActivated = 0;
//该变量用于检测是否有触发命令,当有识别出语句为触发名称则该位置1
int gTriggerRespond[] = {RSP_MASTER, RSP_HERE, RSP_MASTER};
//第一条命令应答
int gComm2Respond[] = {RSP_PATROL, RSP_READY, RSP_COPY};
//第二条命令应答
extern void ClearWatchDog();
int PlayFlag = 0;
void PlayRespond2(int Result)
//枪声放音子程序
{
BSR_StopRecognizer();
SACM_A2000_Initial(1);
SACM_A2000_Play(Result, 3, 3);
while((SACM_A2000_Status()&0x0001) != 0)
{
SACM_A2000_ServiceLoop();
ClearWatchDog();
}
SACM_A2000_Stop();
BSR_InitRecognizer(BSR_MIC);
BSR_EnableCPUIndicator();
}
void PlayRespond(int Result) //放音子程序
{
BSR_StopRecognizer();
SACM_S480_Initial(1);
SACM_S480_Play(Result, 3, 3);
while((SACM_S480_Status()&0x0001) != 0)
{
SACM_S480_ServiceLoop();
ClearWatchDog();
}
SACM_S480_Stop();
BSR_InitRecognizer(BSR_MIC);
BSR_EnableCPUIndicator(); //启动实时监控
}
int TrainWord(int WordID, int RespondID) //命令训练
{
int res;
PlayRespond(RespondID);
while(1)
{
res = BSR_Train(WordID,BSR_TRAIN_TWICE);
if(res == 0) break;
switch(res)
{
case -1: //没有检测出声音
PlayRespond(RSP_NOVOICE);
return -1;
case -2: //需要重新训练一遍
PlayRespond(RSP_AGAIN);
break;
case -3: //环境太吵
PlayRespond(RSP_NOISY);
return -1;
case -4: //数据库满
return -1;
case -5: //检测出声音不同
if(WordID == NAME_ID)
PlayRespond(RSP_NAMEDIFF); //两次输入名称不同
else
PlayRespond(RSP_CMDDIFF);//两次输入命令不同
return -1;
case -6: //序号错误
return -1;
}
}
return 0;
}
int main()
{
int res, timeCnt=0, random_no=0;
BSR_DeleteSDGroup(0); // 初始化存储器为RAM
PlayRespond(RSP_INTR); //播放开始训练的提示音
//..........训练名称..............................
while(TrainWord(NAME_ID,1) != 0) ;
//..........训练第一条命令.......................
while(TrainWord(COMMAND_ONE_ID,2) != 0) ;
//..........训练第二条命令.......................
while(TrainWord(COMMAND_TWO_ID,3) != 0) ;
//..........开始识别命令.........................
BSR_InitRecognizer(BSR_MIC); //辨识器初始化
BSR_EnableCPUIndicator();
PlayRespond(RSP_STAR); // 播放开始辨识的提示音
while(1)
{
random_no ++;
if(random_no >= 3) random_no = 0;
res = BSR_GetResult();
if(res > 0) //识别出命令
{
if(gActivated)
{
timeCnt = 0;
switch(res)
{
case NAME_ID:
PlayRespond(gTriggerRespond[random_no]);
break;
case COMMAND_ONE_ID:
PlayFlag = 1;
PlayRespond2(RSP_GUNSHOT);
PlayFlag = 0;
gActivated = 0;
break;
case COMMAND_TWO_ID:
PlayRespond(gComm2Respond[random_no]);
gActivated = 0;
}
}
else
{
if(res == NAME_ID)
{PlayRespond(gTriggerRespond[random_no]);
gActivated = 1;
timeCnt = 0;
}
}
}
else if (gActivated)
{
if (++timeCnt > 450) //超出定时
{PlayRespond(RSP_NOVOICE); //在设定时间内没有检测出声音
gActivated = 0;
timeCnt = 0;
}
}
}
}
中断程序:
.PUBLIC _FIQ
.EXTERNAL _BSR_FIQ_Routine
.EXTERNAL __gIsStopRecog //变量值 = 0 辨识器忙
// = 1 辨识器停止
.PUBLIC _BREAK,_IRQ0, _IRQ1, _IRQ2, _IRQ3, _IRQ4, _IRQ5, _IRQ6, _IRQ7
.EXTERNAL _PlayFlag
.INCLUDE s480.inc;
.INCLUDE A2000.inc;
.INCLUDE resource.inc
.INCLUDE hardware.inc
.TEXT
_FIQ:
push R1,R4 to [SP]
R1 = [P_INT_Ctrl]
R1 &= 0x2000
jz ?notTimerA //当不为TIQ_TMA,则转
R1 = [__gIsStopRecog]
jnz ?BSR_NotBusy
//[__gIsStopRecog]为1则转至放音处理
call _BSR_FIQ_Routine //为0,调用辨识子程序
jmp ?BSR_Busy //返回中断
?BSR_NotBusy: //放音处理
R2 = [_PlayFlag]
jnz ?Play2000 //[_PlayFlag]为1则是播放2000
call F_FIQ_Service_SACM_S480; //为0,播放480
jmp ?BSR_Busy //返回中断
?Play2000: //2000播放子程序
call F_FIQ_Service_SACM_A2000;
?BSR_Busy: //返回中断
R1 = 0x2000
[P_INT_Clear] = R1
pop R1,R4 from [SP];
reti;
?notTimerA:
R1 = 0x8800;
[P_INT_Clear] = R1;
pop R1,R4 from [SP];
reti;
.END
❺ 凌阳单片机的简介
它的CPU内核采用凌阳最新推出的Microcontroller and Signal Processor 16位微机处理器芯片,以下简称µ’nSP 。围绕micro;’nSP 所形成的16位u’nSP 系列单片机,以下简称µ’nSP 家族。采用的是模块式集成结构,它以µ’nSP 内核为中心集成不同规模的ROM PAM和功能丰富的各种外设部件。µ’nSP 内核是一个通用的和结构。除此之外的其它功能模块均为可选结构。以及这种结构可大可小可有可无,借助这种通用结构附加可选结构的积木式的构成,便可成为各种系列的派生产品,以适合不同场合,这样做无疑会使每种派生产品具有更强的功能和更低的成本。µ’nSP 家族有有以下特点:体积小 ,集成度高,可靠性好易于扩展。µ’nSP 家族把各功能部件模块化地集成在一个芯片里。内部采用总线结构,因为减少了各功能部件之间的连接,提高了其可靠性和抗干扰能力,另外,模块化的结构易于系列的扩展,以适应不同用户的需求。具有较强的中断处理能力。μ’nSPTM家族的中断系统支持10个中断向量及10余个中断源,适合实时应用领域。高性能价格比:μ’nSPTM家族片内带有高寻址能力的ROM,静态RAM和多功能的I/O口,另外μ’nSPTM的指令系统提供出具有较高运算速度的16位,16位的乘法运算指令和内积运算指令,为其应用添加了DSP功能,使得μ’nSPTM家族运用在复杂的数字信号处理方面既很便利又比专用的DSP芯片廉价。
❻ 急求关于单片机的外文参考文献五篇,不要具体内容,只要标题,作者,年份,类型等就可以了
[1] 李东升等.protel 99SE电路设计教程.电子工业出版社,2007.1
[2] 藏春华等.电子线路设计与应用.高等教育出版社,2004.7
[3] 李学海.16位单片机SPCE061A使用教程——基础篇.人民邮电出版社,2007
[4] 张琳娜,刘武发.传感检测技术及应用.中国计量出版社,1999
[5] 邵敏权,刘刚.单片机原理实验及应用.吉林科学技术出版社,1995.1
[6] 杨振江等.智能仪器与数据采集系统中的新器件及应用.西安电子科技大学出版 社,2001.12
[7] 罗亚非等.凌阳16位单片机应用基础.北京航空航天大学出版社,2005.5
[8] 刘笃仁,韩保君.传感器原理及应用技术。机械工业出版社,2003.8
[9] 薛筠义,张彦斌.凌阳16位单片机原理及应用,2003.2
[10] 徐爱卿.Intel 16位单片机,2002.7
[11] 霍孟友等,单片机原理与应用机械工业出版社,2004.1
[12] 霍孟友等,单片机原理与应用学习概要及题解,机械工业出版社,2005.3
[13] 许泳龙等,单片机原理及应用,机械工业出版社,2005.1
[14] 马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003修订版
[15] 薛均义 张彦斌 虞鹤松 樊波,凌阳十六位单片机原理及应用,2003年,北京航空航天大学出版社.
❼ 单片机原理的参考文献有哪些
单片机原理参考文献:
1、 李广弟等 单片机基础 北京航空航天出版社, 2001.7
2、 楼然苗等 51 系列单片机设计实例 北京航空航天出版社, 2003.3
3、 唐俊翟等 单片机原理与应用 冶金工业出版社, 2003.9
4、刘瑞新等 单片机原理及应用教程 机械工业出版社, 2003.7
5、 吴国经等 单片机应用技术 中国电力出版社, 2004.1
6、 李全利,迟荣强编着 单片机原理及接口技术 高等教育出版社,2004.1
7、 侯媛彬等,凌阳单片机原理及其毕业设计精选 2006年,科学出版社
8、 罗亚非,凌阳十六位单片机应用基础2003年 北京航空航天大学出版社
9、 北京北阳电子有限公司,061A凌阳单片机及其附带光盘2003年
10、 张毅刚等, MCS-51单片机应用设计,哈工大出版社,2004年第2版
11、 霍孟友等,单片机原理与应用,机械工业出版社,2004.1
12、 霍孟友等,单片机原理与应用学习概要及题解,机械工业出版社,2005.3
13、 许泳龙等,单片机原理及应用,机械工业出版社,2005.1
14、 马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003修订版
15、薛均义 张彦斌 虞鹤松 樊波,凌阳十六位单片机原理及应用,2003年,北京航空航天大学出版社
(7)凌阳十六位单片机原理及应用扩展阅读:
单片机原理是指一种在线式实时控制计算机的原理方式。在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机(比如家用PC)的主要区别。
单片机就是一个微型电脑,它是靠程序工作的,并且可以修改。通过不同的程序实现不同的功能。