uPD16312在DVD视盘机VFD显示电路中的应用
2009-02-19
作者:查卫东
摘 要: uPD16312是日本NEC公司生产的VFD控制与驱动集成电路,以它为核心可组成VFD显示系统。介绍了uPD16312的性能特点、组成结构以及对其编程时所要用到的各种命令,并给出了其内部功能框图。对uPD16312在DVD视盘机VFD显示电路中的应用做了较详细的论述,分析了其软件和硬件的系统结构,给出了系统框图。实践证明 uPD16312具有功能强、可靠性高等优点,能够满足DVD视盘机对VFD显示的要求。
关键词: VFD 显示驱动 显示系统 DVD视盘机
DVD视盘机是继VCD视盘机后又一个数字化产品。由于它具有高画质、高音效、多功能等优点,越来越受到广大消费者的欢迎。DVD视盘机在使用过程中有许多信息要通过前面板上的VFD(Vacuum Fluorescent Display)显示出来,以方便用户的使用。与VCD相比,DVD具有更多的功能选项,这使得播放DVD碟片时比播放VCD碟片时显示的信息更丰富。而且目前的DVD视盘机一般都要求能兼容播放VCD、SVCD、CD碟片,所以播放这些种类碟片时要显示的信息,DVD视盘机必须同样能显示出来,这些都对DVD视盘机的VFD显示功能提出了更高的要求。uPD16312是一种VFD控制与驱动芯片,它具有集成度高、外围电路简单、功能强等优点,用它可组成DVD视盘机的VFD显示电路。本文将对uPD16312的功能结构、编程方法及其在DVD视盘机中的应用做详细的论述。
1 uPD16312的组成和性能特点
uPD16312是日本NEC公司生产的VFD控制与驱动集成电路,主要用来完成对VFD器件的驱动与控制。它具有11个段位输出引脚,6个栅极输出引脚,5个段位/栅极两用输出引脚。其内部包括:一个显示存储器、一个控制电路和一个按键扫描电路。它通过一个由三根引线组成的串行接口与CPU或其它器件进行通讯。其方框图如图1所示。
图1中的显示存储器是用来存放显示数据的。它由22个8bit的存储单元组成,每个单元都有一个地址,其结构如图2所示。由图2我们可以看到,偶数地址的存储单元(如0x00单元)的每一位与Seg1~Seg8段引脚一一对应,奇数地址的存储单元(如0x01 单元)的每一位与Seg9~Seg16 段引脚一一对应。每两个相邻的存储单元构成一个显示字,这些显示字与栅极引脚一一对应。当某一栅级引脚被置为高电平时,存储在与之相对应的显示字中的显示内容就被显示出来。由于某一时刻uPD16312 只能输出一个显示字,所以要想使所有的显示字都显示出来,就必须采用时分复用的办法,其时序图如图3所示。
uPD16312的主要性能特点如下:
(1)具有多种显示模式,其显示模式可在11段×11字到16段×4字的范围内选择。
(2)具有按键扫描的功能,按键矩阵为6×4。
(3)显示亮度可调,共有8个亮度级。
(4)具有高电压输出。
(5)具有一个4bit通用输入口和一个4通道LED输出口。
(6) 输出端口不需要额外的上拉或下拉电阻。
值得一提的是,uPD16312除了可完成对VFD器件的驱动与控制外,还具有键盘扫描等功能,而这些已超出了本文的讨论范围,在本文中将不做论述。
uPD16312是一个可编程器件。它的任何一种功能都需要对其编程后才能实现。由于uPD16312的外围电路较简单,因此如何对其编程成了应用的关键。要想对uPD16312正确编程,就必须了解它的控制命令以及向它传送数据与命令的时序。
2 uPD16312的控制命令与串行口时序
2.1 uPD16312的控制命令
uPD16312有四条控制命令,它们是显示模式命令、数据设置命令、地址设置命令和显示控制命令。
显示模式命令用来设置uPD16312的显示模式。其命令的格式如图4所示。图4中,“-”表示该位可设置为任意值;b0、b1、b2的不同组合决定了所选的显示模式,如表1所示。在芯片刚接通电源时,显示模式的缺省设置为11字×11段模式。执行该命令时显示会被强行关闭。要想恢复显示,必须执行一次显示控制命令,将显示打开。
数据设置命令用来设置数据写入与读出的方式。其格式如图5所示。图5中,b0、b1两位用来设置数据的传输方向。在向显示存储器写数据时,b0、b1应设为“00”。b2位用来设置数据传输方式。当b2置为1时,数据被写入某一显示存储单元中,其地址由地址设置命令来设置,写入数据后,地址不变化。当b2设置为0时,数据以地址增量的方式进行传输,即数据写入显示存储器的某一存储单元后,其地址自动加1,这意味着在这种方式下可以向显示存储器的某一存储单元段连续写入数据。b3位用来设置测试方式。当b3置为1时,芯片工作在测试方式,当b3置为0时,芯片处于正常工作方式。在芯片刚接通电源时,芯片处于正常工作方式且数据以地址增量方式传输。
地址设置命令用来设置要写入数据的存储单元地址,其命令格式如图6所示。图6中,b0、b1、b2、b3、b4五位用来设置存储单元地址,其范围为0x00H~0x15H。当写入地址超出这一范围时,数据将不被写入。在芯片刚接通电源时,地址的缺省设置为0x00H。
显示控制命令用来控制显示的开与关以及显示亮度,其命令格式如图7所示。图7中,b3位用来控制显示的开与关。当b3置为0时,显示被关闭;当b3置为1时,显示被打开。b0、b1、b2三位用来控制栅极脉冲宽度,如表2所示。uPD16312通过对栅极脉冲宽度的控制实现对显示亮度的控制。当芯片刚接通电源时,显示处于关状态,栅极脉冲宽度为TDISP。
2.2串行接口的时序
uPD16312是通过一个串行接口与CPU及其它器件进行通讯的,其串行接口的时序如图8所示。图8中,只有当STB为低电平时,uPD16312方可从Din上读取数据,而且数据读取是在CLK信号上升沿到来时进行的。uPD16312的控制命令必须在STB刚由高电平变为低电平时传输。只有在给uPD16312传输完一条命令后,方可向uPD16312的显示存储器写入数据,对uPD16312的编程实际上就是指根据系统的需要正确地向uPD16312写入命令和显示数据。
3 uPD16312在VFD显示系统中的应用
3.1系统的组成
在我们所开发的DVD视盘机中,VFD系统主要由SH7043、uPD16312、VFD显示器件及少量的分立器件组成,其系统框图如图9所示。其中SH7043是日立公司的微处理器。由于SH7043中没有与uPD16312相匹配的串行接口,所以将其端口D中的PD29、PD30、PD31引脚作为与uPD16312 进行通讯的端口,用来传送指令和数据。其中PD29与uPD16312的STB引脚相连,PD30与uPD16312的DIN引脚相连,PD31与uPD16312的CLK引脚相连。在本系统中,VFD显示器件采用FUTABA的荧光显示管。它具有6个栅极和16个阳极,显示的字符共有三种颜色,可显示的内容十分丰富,完全能满足DVD视盘机对VFD显示的要求。由于所采用的VFD显示器件是6Grid×16Anode类型的,所以uPD16312在具体应用时,要设置成6字×16段模式。这时,uPD16312的Pin28~Pin31、Pin26要做为栅极引脚使用。整个系统的硬件电路较为简单,其软件编程相对复杂一些。
3.2 VFD显示程序的编制
我们开发的DVD控制软件是在SH7043专用开发环境下编制的。VFD显示功能主要由zdisp.c和pda_vfd.c模块完成。程序运行时首先进行初始化,在初始化过程中要完成对SH7043相应I/O端口D设置,以及为程序中使用的一些变量设置初始值,其中最重要的一项工作是对uPD16312进行初始化设置,这部分工作由模块pda_vfd.c中的子程序vfd_init()完成,其程序流程图如图10所示。初始化完成后,zdisp.c任务模块和pda_vfd.c任务模块均处在等待接收“event”状态。系统其它模块如果有信息要显示,就向zdisp.c模块发送相应的“event”。zdisp.c模块接到系统其它模块发给它的“event”后,就对要显示的信息进行分析处理,得到一组符合VFD显示器件字符编码要求的数据,然后向pda_vfd.c模块发出“event ”。模块pda_vfd.c接到zdisp.c发给它的“event”后,就通过由PD29、PD30、PD31三引脚组成的串行口将指令和数据写入到uPD16312中去,驱动VFD显示器件显示出正确的信息。
从上述工作过程可以看出,模块zdisp.c主要是将要显示的信息处理成符合VFD显示器件字符编码规则的一组数据。在模块zdisp.c中完成这一功能的子程序是vdsp_req(),其流程图如图11所示。由图11可知,需要VFD显示的信息可分为6种,这6种信息分别由6个子程序进行处理。下面以子程序vdsp_req_disc()为例说明如何将要显示的信息转换成符合VFD显示器件字符编码规则的数据。
在模块zdisp.c中,定义数组vfd_disp_buf[ ]用来存放处理好的数据,该数组与uPD16312中的显示存储器一一对应。子程序vdsp_req_disc( )主要完成的工作是对碟片种类显示信息进行处理。由于VFD显示器件上各种字符的编码规则不同,对各种显示信息的处理方式也有所不同。有些信息的处理是对vfd_disp_buf[ ]数组中相应某一元素的某一位置位,如对“VCD”、“DVD”等信息的处理就是这样;有些信息,如“cd”、“NO DISC″等信息,则要按照VFD显示器件字符编码规则的要求进行编码,将得到的一组代码存入数组vfd_disp_buf[ ]中相应的元素中。子程序vdisp_req_disc( )的流程图如图12所示。
处理好的信息存入vfd_disp_buf[ ]后,接下来的工作就是把数组vfd_disp_buf[ ]中的数据传送到uPD16312的显示存储器中去。这部分工作是由模块pda_vfd.c完成的,其程序流程图如图13所示。图13中,子程序vfd_byte_set( )的作用是按照uPD16312串行口的时序向uPD16312显示存储器中传输一个8位的显示数据或命令,其流程图如图14 所示。图14中,data中存放要传输的8位数据或命令。利用子程序vfd_byte_set( )可及时地刷新uPD16312显示存储器中所用到的各个显示单元,从而使VFD显示出正确的信息。
目前,本公司研制开发的DP2000型DVD视盘机中已采用了uPD16312作为其VFD显示电路的核心芯片。该机型已批量投产,并已在公司内通过高低温老化试验、安全试验及电磁兼容测试。这充分证明了 uPD16312是一种可靠性高、实用性好的集成电路,完全能满足DVD视盘机对VFD显示驱动控制芯片的要求。
参考文献
1 刘乐善,叶济忠,胡盛斌. 微型计算机接口技术及应用. 武汉:华中理工大学出版社
2 何立民.单片机应用技术选编(1),(2).北京:北京航空航天大学出版社
3 林福宗.VCD与DVD技术基础.北京:清华大学出版社