摘 要:本文主要介绍凌阳十六位单片机SPCE061A和SACM_S480语音压缩算法以及外部存储器SPR4096应用于儿童益智产品-早教机上的实现方案。
关键词:凌阳SPCE061A SPR4096 早教机
1 引言
本产品的核心芯片采用凌阳十六位单片机SPCE061A,并以SACM_S480语音压缩格式对语音进行处理,实现语音存储的功能。因语音资源较大,我们使用SPR4096作为外部存储器存储早教机所需的语音资源。本设计方案具有图片检测、学习、测试、复读、下载、积分、播报、自动休眠等诸多功能。产品操作简单,安全方便,互动性、趣味性强,能够激发孩子的求知欲、培养孩子的语言交流能力、动手能力和逻辑思维能力、增强孩子对客观事物的认识。
2 SPR4096特性简介
因为SPCE061A的FLASH只有32Kwords,要存放大量的语音资源,就需要外扩存储器。这里介绍一种用SIO扩展串行存储器的方法。本方案采用凌阳公司的SPR4096芯片进行设计。(详细说明可以参见凌阳公司的SPR4096 data sheet)。SPR4096是一个高性能的4M-bit(512K×8-bit)总线FLASH,分为256个扇区(Sector)每个扇区为2K-byte。SPR4096还内置了一个4K×8-bit的SRAM。在进行FLASH的编程/擦除的时候,可以并发执行SRAM的读/写。SPR4096内置了一个总线存储器接口和一个串行接口,它允许单片机通过8-bit并行模式或者1-bit的串行模式访问FLASH/SRAM存储区。本例使用串行模式,其接口的工作频率为5MHz。SPR4096有两个电源输入端VDDI和VDDQ。VDDI为内部FLASH和控制逻辑供电;VDDQ专门为I/O供电。SPR4096最大读电流为2mA,最大编程/擦除电流为6mA。

图 2.1 SPR4096模块结构图
图 2.1是SPR4096的模块结构图。它包含了几个部分:总线存储器接口,串行接口,SRAM,编程与擦除控制器和一个4M的FLASH。选择串行接口时,SCLK作为时钟信号线,SDA作为1-bit的数据线。如果接收到FLASH的读指令或者SRAM的读/写指令,串行接口可以直接从内存读写数据。但是,如果接收到FLASH的编程或擦除指令,串行接口会把这些指令传给编程和擦除控制器,让编程和擦除控制器去完成相应操作。
串行接口模式的选中是通过设置CF2~CF0来实现的。当CF2~CF0均接高电平时,选中的就是串行接口模式。在串行接口模式下,CF7为低电平时选中FLASH,高电平时选中SRAM。
图 2.2是SPR4096和SPCE061A的连接图。SPR4096的SCK接SPCE061A的IOB0,SDA接SPCE061A的IOB1。CF0~CF2接高电平,选择串行接口模式;CF7接低电平,选中FLASH。

图 2.2 外部存储器SPR4096电路
3 系统结构框图
硬件组成框图如图 3.1所示:主要由凌阳16位单片机SPCE061A最小系统板、总线式FLASH存储器SPR4096、按键输入电路、语音输出电路、串口通讯电路、显示电路等部分组成。SPCE061A最小系统,其外围电路主要包括电源、晶振振荡电路、音频输出电路和复位电路。(SPCE061A有足够的I/O口和程序存储容量以及强大的语音处理功能,因此综合考虑SPCE061A为我们的最佳选择)。

图 3.1 控制系统构成框图
4 硬件电路设计
4.1 功能键模块电路原理图
功能键采用共地的方法,设置IOB3--IOB6为带上拉的输入,当有按键按下时,相应端口被拉为低电平,为能及时的发现功能键的状态,将IOB3和IOB6相与后送入外部中断1,使之能够迅速响应。

图 4.1 功能键连接图
4.2 卡片识别键电路原理图
卡片识别键,考虑在睡眠状态下插入卡片即可唤醒CPU,所以采用具有唤醒功能的IOA0—IOA6作为卡片识别键的输入。由于硬件原因,我们将SW1用于识别卡片的奇偶页,SW2―SW7依次用于识别卡片的0―5位,为方便计算及减小程序运算量,采用如下硬件接法。

图 4.2 卡片识别键连接图
4.3 内容识别键电路原理图
内容识别键:采用2行3列的矩阵式键盘,通过扫描IOB11—IOB15的状态来判断有无按键按下。

图 4.3 内容识别键连接图
4.4 显示部分电路原理图
采用3位共阴极LED作为显示,为保证LED的亮度,我们在位选端添加三极管8550以提高驱动能力。

图 4.4 显示部分硬件原理图
4.5 串行通讯接口电路原理图
SPCE061A的UART模块提供了一个全双工标准通讯接口,用于完成SPCE061A与外设之间的串行通讯,利用IOB口特殊功能和UART的IRQ中断可以同时完成接口数据的接收与发送,该端口采用MAXIM232作为主要元器件来完成电平的转换,实现SPCE061A与PC机之间的通讯。

图 4.5 232接口电路原理图
5 系统软件设计
5.1 主程序流程及说明
主程序包括系统初始化和一个主循环,其中主循环主要负责检测外部按键状态。当有按键动作时,转入相应模块进行处理,无按键触发时,系统进入睡眠模式。学习、测试、复读等功能均在中断处理程序中完成。

图 5.1 主程序流程图
5.2 各功能模块流程及说明
5.2.1 学习功能模块
FunKey:等于0表示无任何按键,等于1表示学习键按下,等于2表示测试键按下,等于3表示复读键按下,等于4表示音量调节键按下,等于5表示测试和复读键同时按下(即进入下载状态)。TempStatus记录当前状态的前一个状态(当卡拔出时都设置为默认的状态)如图 5.2所示。

图 5.2 学习处理流程图
5.2.2 测验功能模块

图 5.3 测验功能模块流程图
5.2.3 下载模块

图 5.4 下载模块流程图
5.2.4 唤醒中断模块
IRQ3中断服务程序在插入卡或者在睡眠模式下拔出卡时触发,插入卡时自动进入学习状态,拔出时设置为睡眠模式(默认状态)。

图 5.5 IRQ3中断处理
5.2.5 定时中断
时基中断用于控制当卡插入后持续90秒不操作CPU将进入睡眠状态。在测试状态下,IRQ6还负责点亮显示得分的LED,全局变量Count的设置用于有任何操作时将其清0。

图 5.6 时基中断处理流程图
5.2.6 UART中断

图 5.7 UART中断流程图
6 结语
从以上应用我们可以看出,SPCE061A在语音互动式玩具地应用中具有很大的优势,主要表现在:
1.设计新颖、功能强大:SPCE061A是凌阳科技公司最新的16位单片机,特点是高速、低功耗、强大的I/O口功能、具有DSP功能。上面的设计方案只占用了SPCE061A一部分资源,在此基础上可以开发出功能更强的品。而语音播放、语音识别、录制等API函数,可以直接调用,缩短了开发者的开发周期。
2.成本低、性价比高、运行可靠:SPCE061A有丰富的I/O口资源,外围电路相对简单,尤其是在对数字语音进行处理时几乎不用搭接外围电路。另外SPCE061A价格低,性能可靠,适合大批量生产。
7 参考文献
[1] 凌阳大学计划网站
[2] 雷思孝、李伯成、雷向莉,单片机原理及实用技术—凌阳16位单片机原理及应用 陕西:西安电子科技大学出版社