在简要分析W536芯片结构和工作原理的基础上,提出了一种基于W536芯片的多媒体电子玩具芯片系统的设计和实现方案,给出了一种用32×8液晶点阵实现16×16的液晶点阵的方法。该系统具有趣味教学(教儿童学习26个英文字母、常用英语单词等的发音和拼写)、智力测验、音乐娱乐和益智游戏等功能。
关键词:W536芯片,电子玩具芯片,多媒体
目前,很多的益智玩具设计既要有液晶(LCD)显示,又要有扬声器播放语音及音乐。用一般芯片(如8051或通用DSP)实现上述要求,需要外接LCD显示接口电路及扬声器驱动电路,外围电路复杂,编程难度较大,放音的质量难以控制。
本文介绍了一种利用***Winbond公司的W536芯片构成的多媒体电子玩具电路的设计及实现方法,该芯片可直接驱动LCD显示,内置语音MDPCM(Modified Difference Pulse Code Modulation)编解码电路,可通过程序控制语音的播放,并具有耗电少、大屏幕显示、音质清晰、使用方便、开发周期短等优点,很适于多媒体电子玩具芯片系统的开发。
1 W536芯片简介
W536芯片的结构框图如图1所示,除具有普通4位微处理器的所有功能之外,还内置了LCD接口,可以直接驱动LCD显示;有20KB~160KB编程空间(程序ROM);带有MDPCM语音编解码电路和音乐功能(内置最大4Mbits语音ROM),并且可以混和输出语音和MIDI(乐器数字界面)音乐。该芯片根据驱动LCD点阵列的大小分为T、A、K和P四个系列,每一个系列按存储语音内存大小又分成W536030、W536060、W536090和W536120四种型号。
本设计采用W536060K芯片,其最大驱动40×8液晶显示,程序ROM为40KB,通用RAM为1KNibble(1 Nibble=4 bits),LCDRAM为80 Nibble,语音ROM为2Mbits。
2 系统组成原理
我们设计的多媒体英语学习电子玩具电路方框图如图2所示。硬件电路主要由W536060K芯片、LCD液晶显示电路、键盘电路和LED指示电路等组成,用户通过键盘阵列与系统进行交互对话,当W536060K芯片检测到键盘阵列的输入信号时,便发出相应的电信号,控制相应的LED指示灯亮,输出图片信息到LCD液晶板,同时控制扬声器播放相应的语音和音乐。由于W536强大的多媒体(语音、音乐、LCD显示驱动)功能,系统的大部分功能通过软件设计来实现,因此,外围电路十分简单,我们最终实现的电路板(按键除外)面积不到40cm2。
3 系统软件设计
W536芯片配备两个编程平台:Pattern Studio和Wide。在Pattern Studio平台利用高效率的Script语言(类C语言)进行开发,简单的一条语句可以播放一段语音或者显示一张图片,因此,很适于开发多媒体应用程序。在Wide平台编写ASM程序,除此之外,系统通过它与开发板结合进行仿真和在线调试。在程序结构上,采用了Script语言和ASM语言混合编程。
3.1 系统软件模块构成及功能结构
系统的软件设计包含ASM程序设计和Script程序设计两部分。ASM程序主要是语音和音乐播放程序、字母和数字的动画书写程序、睡眠模式的唤醒程序、LED指示程序和键盘扫描程序等。Script程序主要包括5大功能模块,分别为字母学习、单词学习、数字学习、音乐娱乐和益智游戏,其中每一项大功能模块又划分为4个子功能,总共构成20个子功能模块。Script语言和ASM语音协调工作,其功能结构框图如图3所示。
Script程序利用高效的语句进行程序的设计,显示一幅静止的多媒体图片或者播放一段动听的音乐只需要一条简单的语句,所以,大部分的子程序都用Script程序设计。图4是该芯片系统的一个典型子功能模块程序流程图。
3.2 语音和音乐播放
W536芯片可以输出音质好的语音和双音调的音乐。语音经过MDPCM压缩编码存储在语音ROM中,语音控制器控制语音的播放和暂停。音乐以MIDI格式保存在音乐ROM中,在播放音乐时经双音调控制器将其转换成数字音乐,驱动扬声器播放音乐。
语音文件(Wav格式)经相关工具编辑和处理之后,存储到芯片的语音ROM中,W536芯片提供编号寄存器(SPCH,SPCL)和特殊寄存器(Flag)来访问语音控制器。编号寄存器用来标志访问的语音地址,Flag0.0(Flag寄存器的第一位)是使能寄存器,可控制语音的播放,Flag0.2(Flag寄存器的第三位)则是反映当前语音控制器的状态。语音播放具体操作如下:
音乐播放原理同语音播放类似,在此不再赘述。
3.3 LCD转换显示
W536芯片在控制LCD显示时,只需把要显示的图片信息存储在LCDRAM,显示则由LCD驱动器自动完成,它会自动地从LCDRAM中读取图片信息,并且根据LCDRAM的值将相应的图片显示在LCD液晶上。W536060K最大提供40×8=320点显示,每一点占用一位随机存储空间,LCDRAM的地址为1:200H~1:24FH。由于我们设计的系统采用16×16点的液晶显示,与40×8的液晶驱动不吻合,因此,不能直接使用536060K的液晶驱动电路。我们巧妙地设计了一种方案,可以不用外接任何其他的转换电路而直接利用32×8的液晶点阵来驱动16×16的液晶显示,如图5所示。用W536060K的LCD驱动端口seg0~15和com0~7构成第一块16×8点,seg16~31和com0~7构成第二块16×8点,这样,32×8液晶点阵就可实现驱动16×16的液晶显示。
在W536060K中,图片以位图的形式存储在一种Cast文件(类似BMP格式的一种图形格式)中,最多可存储4000幅图片。由于显示电路的变动,存储的图片也需要作相应的修改,在LCD液晶屏上显示的16×16点位图按照反变换转换成32×8点位图存储。图片制作好之后,显示图片的操作非常简单,只需一条语句即可在液晶上显示存储在Cast文件中的位图。Script语句使用方法如下:
DisplayPicture CAST140 X=2 Y=3→在点(2,3)显示cast文件中的第140幅位图。
ClearScreen→清屏
3.4 字母和数字的动画书写
根据字母和数字正确的书写笔顺,在LCD上以点为单位、时序地显示其笔顺,用此方法来教学龄前儿童学习英语字母及数字的书写。按照前面的叙述,在LCD上显示多媒体图片,只需要给LCDRAM赋值即可。由于动画书写时,时序显示的多媒体图片比较多,所以,我们采用了表结构来存储动画点信息。表结构存储的内容包括LCDRAM的地址和值,以四个Nibble作为一个单元存储一个点的书写显示信息,其中,前三个Nibble存储低中高三位LCDRAM的地址,第四个Nibble存储LCDRAM的值。一张表包含一个字母或数字的所有点的书写信息,在表的末尾加上结束标志位。这里介绍两个重要的指针:lpxy和rp0,分别用于ROM和RAM的寻址,其中,rp0由rp0h/rp0m/rp0l组成,分别存储高中低三位地址。动画书写的软件流程如图6所示。
动画书写程序的部分源程序如下:
3.5 睡眠模式的唤醒
W536芯片有两种省电模式,分别为保留模式和睡眠模式。在睡眠模式下,芯片在最小电流(小于10μA)下工作,功耗特别低,以3节干电池供电为例,在此模式下可以持续工作一个月。为充分利用睡眠模式的省电特点,系统在运行期间,若一段时间之内(例如3分钟)没有进行任何操作,则自动进入睡眠模式。主要程序如下:
set scr0,#0001B;设置子时钟为系统时钟
clr scr0,#0010B;关闭主时钟set scr1,#0001B;进入睡眠模式
睡眠模式的唤醒由特殊寄存器PM6控制,可以设置当I/O口中的RC或RD端口的输入值为低电平时唤醒芯片。唤醒过程叙述如下:首先设置寄存器PM6,然后根据PM6的设置,在RC或RD中的任何一个口输入低电平时,芯片将从睡眠模式返回正常工作状态。寄存器的初始设置如下:
mov pm6,#1000B;设置RD能唤醒芯片
4 结束语
本系统测试完成之后,把编写的所有程序制作成一个目标文件(obj),再将目标文件(obj)烧录到MaskRom中,如此一来,整个系统的主要功能将集成到一颗W536060K芯片中,加上简单的外围电路(键盘、LCD液晶屏、扬声器),即可构成一个完整的电子玩具芯片电路系统。由于外围电路十分简单,因而整个系统成本较低。由于芯片的主要功能是以软件形式存储在芯片内部的ROM中,经过固化后程序无法读出,因此,该系统的知识产权能比较好地得到保护。该系统具有LCD液晶显示和扬声器播放语音及音乐等功能,充分体现了多媒体芯片的特点。其主要的技术指标如下:工作电压为4.5V,正常状态工作电流为10 mA,睡眠状态工作电流为10μA,LCD帧频为64Hz,占用程序空间9.6KB,占用语音空间250KB,语音输出格式为PWM(直接驱动扬声器,无须放大电路)。
此系统的设计虽然是针对多媒体电子玩具芯片系统的具体应用,但其设计方法在其他类似系统的应用和开发中具有通用性,对相关的电子系统设计有一定的参考价值。
参考文献
1 余锡存.单片机原理及接口技术.西安:西安电子科技大学出版社,2000