基于SPCE061A单片机的汽车保养提示系统设计
摘要:针对目前汽车在使用过程中获取汽车保养信息困难的问题,使用SPCE061A单片机为控制芯片,采集汽车内部影响汽车保养的关键因素,即时间和里程,实现对汽车保养的准确、及时提示,并告知汽车使用者对汽车进行怎么样的保养。提示的方式采用语音播报和LCD液晶屏显示相结合的方式,使汽车使用者以一种简单的方式获取和查询汽车保养的信息。系统很好地实现了汽车保养信息的提示。
关键词:SPCE061A;汽车保养;语音提示;LCD显示
0 引言
汽车作为现代社会的一种交通工具,已经走进了千家万户。对汽车的正确使用和保养,不仅能够提高汽车的安全性、舒适性和使用寿命,还能提高汽车的能源利用率,使汽车更加环保节能。但是目前由于汽车保养知识的专业性,许多汽车使用者对于汽车保养的知识掌握较少,甚至许多汽车保养店的专业人员也不能准确、及时、全面地把握汽车保养的内容。
为了解决驾车者掌握汽车保养知识困难的问题,该设计使用SPCE061A单片机为控制芯片,采用语音播报和液晶显示相结合的方法,提示专业的保养信息。从而使驾车者无需掌握专业的汽车保养知识,就可以对汽车进行及时、全面的保养。目前该系统在实验室中已取得了不错的效果。
1 系统硬件设计
1.1 主控芯片与整体硬件方案介绍
台湾凌阳科技公司生产的SPCE061A单片机采用μ’nSP为内核,其最高时钟频率可达49.152 MHz,具有很强的数据处理能力和强大的语音功能,同时它还拥有一个32 768 Hz的实时时钟,能够进行精确的计时。该单片机具有32个通用可编程I/O接口,B端口的I/O口还可设置成为特殊功能端口。另外,SPCE061A单片机还具有很好的性价比,是数字语音处理方面非常经济的一款单片机。
根据功能的不同硬件系统分为3个部分:信息采集部分、信息输出部分和电源部分。系统需要两种供电电压,即SPCE061A单片机需要的3.3 V工作电压以及LCD显示、语音播放和脉冲编码器需要的5 V的工作电压。该设计采用5 V的电源,并使用低压稳压器芯片SPY0029,输出3.3 V电压为CPU供电,系统的整体方案框如图1所示。
下面将对硬件的信息采集和信息输出部分分别进行介绍。
1.2 硬件的信息采集部分的实现方法
汽车的使用时间和行驶里程是汽车保养的两大关键因素。对时间的采集,使用的是单片机的实时时钟信号进行定时的,有关内容将在软件部分做详细讲述。
对里程的采集,目前大多数汽车通过磁性传感器来实现对里程采集,磁性传感器一般安装在变速箱的输出轴上,它的工作原理是:汽车变速箱的输出轴每转一周就会有一定数量的脉冲输出,对输出脉冲的累积就可以计算出输出轴所转的转数,从而求出汽车的行驶里程。因此只要实现输入脉冲计数,就可以模拟汽车里程采集。该设计采用欧姆龙的E6A2-CW3E旋转式编码器做为脉冲输入源,通过单片机的计数器来实现对里程脉冲的累积。
关于按键输入,系统使用了3个独立按键,3个按键分别接到A端口的第0,1,2位。
1.3 硬件的信息输出部分的实现方法
语音播放是信息输出的主要内容,语音播放电路见图2所示。
当DAC的输出引脚输出音频信号时,经过C25滤去高频阶梯信号,保留音频信号,再经过C24隔直,音频信号中的直流分量被隔离,交流信号经音频驱动芯片SPY0030阻抗变换输出,然后驱动扬声器。调节电位器R9的值,可以调节输出音量的大小。LCD液晶显示采用目前常用的160 2液晶,它有16个引脚占用11个I/O端口,可以显示2行,每行16个字符。但是需要注意的是1602液晶没有中文字库,只能进行数字和字符的显示。关于1602液晶的详细资料请参阅1602的使用手册。
2 系统的软件设计
由于该设计占用了SPCE061A单片机的许多资源,因此在软件设计时要统筹安排,避免产生干涉,出现不必要的错误。需要特别指出的是由于汽车保养信息按提示条件可分为3种,分别是:条件1为时间,条件2为里程,条件3为时间或里程有其中之一满足的。在程序设计中对3个条件同时定义了变量并且保证信息间的传递。
另外,系统中按键的处理程序按其所在程序中位置不同分2种方式:一种是在主函数里用来处理显示信息和提示信息确认;另一种是在中断函数里用来处理语音播报,系统软件的流程图如图3所示。
2.1 脉冲和时间累积的实现
在时间累积的程序中使用了SPCE061A单片机的实时时钟,以达到良好的计时效果。SPCE061A单片机拥有一个32 768 Hz的实时时钟源,通过频率选择组合可产生时间基准信号。时基计数器还可以通过分频产生2 Hz,4 Hz,1 024 Hz,2 048 Hz以及4 096 Hz的实时时钟信号,为中断系统提供各种实时中断源(IRQ4和IRQ5)信号。通过对时基信号的选择和设定,可以进行非常精确的计时。另外,时基信号为定时/计数器A的时钟源B提供各种频率选择信号。
由于在语音播放函数中使用了定时/计数器A作为时间溢出的快速中断源,在函数执行中对其进行了初始化和占用,为了达到较高的计时精度这里选用2 Hz的时基信号作为计时频率,采用IQR5作为计时中断源引发的中断。
SPCE061A单片机的B端口做为特殊功能引脚时,使用SPCE061A单片机的定时/计数器可以实现对外部输入脉冲的计数。该设计将编码器产生的脉冲输入到SPCE061A单片机的B端口的第四引脚,通过对B端口第二和第四引脚的设置,即:B端口第二引脚为反相输出,第四引脚为悬浮式输入,来实现对脉冲的计数。由于PCE061A单片机的2个定时/计数器中,定时/计数器A已用于语音播放,所以这里采用定时/计数器B作为脉冲输入计数器。采用IQR2做为脉冲计数溢出的中断源引发的中断。
2.2 语音播放功能的实现
凌阳的完整语音处理步骤可以分为:A/D转换、语音编码,语音存储,解码处理,D/A转换等,凌阳公司提供了SACM.LIB语音库,该库将上述步骤中的语音处理功能制作成相应的模块,每个模块都有其应用程序接口,因此只需要掌握这些模块的功能和使用方法,通过对该API函数的调用,就可以实现其功能。
凌阳的音频资源通常有两种获取方法:采用录音的方法和采用语音合成软件合成语音。然后用凌阳公司提供的压缩工具压缩成能够播放的语音格式。该设计使用第二种方法,采用从文字到语音的合成(Text-to-Speech),这样就不需要对语音信号进行A/D转换,使用方便。
使用第二种方法要解决语音压缩的问题,语音压缩是为了在保证一定声音质量的条件以较小的存储空间实现对语音的表达和传递。语音压缩的方法很好地解决了单片机存储空间较小的问题。音频压缩根据压缩比的不同可分为三种:
(1)SACM-A2000:压缩比为8:1,8:1.25,8:1.5。
(2)SACM-S480:压缩比为80:3,80:4.5。
(3)SACM-S240:压缩比为80:1.5。
按音质排序:A2000>S480>S240。
凌阳常用的音频形式和压缩算法也可分为3种:
(1)波形编码。sub-band即SACM-A2000特点:高质量、高码率,适于高保真语音/音乐。
(2)参数编码。声码器(vocoder)模型表达,抽取参数与激励信号进行编码,如:SACM-S240。特点是压缩比大,计算量大,音质不高,廉价。
(3)混合编码。CELP即SACM-S480特点是综合参数和波形编码之优点。除此之外,还具有FM音乐合成方式即SACM-MS01。
语音压缩的过程是,首先使用语音合成软件将需要播放的信息传化成*.WAV格式的音频文件,在转换时将语音资源属性中的音频格式转换成8 kHz,16位,单声道。然后我使用凌阳公司提供的凌阳语音压缩工具Compress Tool软件,对语音合成的音频进行压缩。Compress Tool软件只能按照SACM-A2000,SACM-S480两种语音算法进行压缩,为了节省单片机的存储空间,在这里使用SACM-S480算法进行行压缩。
完成语音资源的压缩之后,还需要将压缩后的语音资源添加到的程序中去,并在程序中确定语音播放顺序,定义语音资源表。然后调用语音库的API函数,播放需要的语音资源。
3 结语
该设计在实验室已经获得成功,取得了不错的语音播放效果和LCD显示,很好地解决了汽车保养提示的问题,相信该系统的广泛应用将会有助于提高汽车的利用率,降低能耗,给社会和使用者带来巨大的效益。
由于汽车型号、品牌及使用环境等的不同都会对汽车的保养提出不同的要求,因此对于实践中的应用,还应根据具体情况,以该系统为基础对提示的内容进行修改,以达到很好的兼容性。另外,如果需要提示的语音资源过多,还需要进行存储器的扩展。这对单片机和存储器的通信提出了要求,播放函数也需要做相应的变更。同样,该系统还可以应用到许多以时间或脉冲累积为条件的提示系统中去,具有广阔的开发前景。
系统 设计 提示 汽车保养 SPCE061A 单片机 基于 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)