uPD16312在DVD視盤(pán)機VFD顯示電路中的應用
DVD視盤(pán)機是繼VCD視盤(pán)機后又一個(gè)數字化產(chǎn)品。由于它具有高畫(huà)質(zhì)、高音效、多功能等優(yōu)點(diǎn),越來(lái)越受到廣大消費者的歡迎。DVD視盤(pán)機在使用過(guò)程中有許多信息要通過(guò)前面板上的VFD(Vacuum Fluorescent Display)顯示出來(lái),以方便用戶(hù)的使用。與VCD相比,DVD具有更多的功能選項,這使得播放DVD碟片時(shí)比播放VCD碟片時(shí)顯示的信息更豐富。而且目前的DVD視盤(pán)機一般都要求能兼容播放VCD、SVCD、CD碟片,所以播放這些種類(lèi)碟片時(shí)要顯示的信息,DVD視盤(pán)機必須同樣能顯示出來(lái),這些都對DVD視盤(pán)機的VFD顯示功能提出了更高的要求。uPD16312是一種VFD控制與驅動(dòng)芯片,它具有集成度高、外圍電路簡(jiǎn)單、功能強等優(yōu)點(diǎn),用它可組成DVD視盤(pán)機的VFD顯示電路。本文將對uPD16312的功能結構、編程方法及其在DVD視盤(pán)機中的應用做詳細的論述。
1 uPD16312的組成和性能特點(diǎn)
uPD16312是日本NEC公司生產(chǎn)的VFD控制與驅動(dòng)集成電路,主要用來(lái)完成對VFD器件的驅動(dòng)與控制。它具有11個(gè)段位輸出引腳,6個(gè)柵極輸出引腳,5個(gè)段位/柵極兩用輸出引腳。其內部包括:一個(gè)顯示存儲器、一個(gè)控制電路和一個(gè)按鍵掃描電路。它通過(guò)一個(gè)由三根引線(xiàn)組成的串行接口與CPU或其它器件進(jìn)行通訊。其方框圖如圖1所示。
圖1中的顯示存儲器是用來(lái)存放顯示數據的。它由22個(gè)8bit的存儲單元組成,每個(gè)單元都有一個(gè)地址,其結構如圖2所示。由圖2我們可以看到,偶數地址的存儲單元(如0x00單元)的每一位與Seg1~Seg8段引腳一一對應,奇數地址的存儲單元(如0x01 單元)的每一位與Seg9~Seg16 段引腳一一對應。每?jì)蓚€(gè)相鄰的存儲單元構成一個(gè)顯示字,這些顯示字與柵極引腳一一對應。當某一柵級引腳被置為高電平時(shí),存儲在與之相對應的顯示字中的顯示內容就被顯示出來(lái)。由于某一時(shí)刻uPD16312 只能輸出一個(gè)顯示字,所以要想使所有的顯示字都顯示出來(lái),就必須采用時(shí)分復用的辦法,其時(shí)序圖如圖3所示。
uPD16312的主要性能特點(diǎn)如下:
(1)具有多種顯示模式,其顯示模式可在11段×11字到16段×4字的范圍內選擇。
(2)具有按鍵掃描的功能,按鍵矩陣為6×4。
(3)顯示亮度可調,共有8個(gè)亮度級。
(4)具有高電壓輸出。
(5)具有一個(gè)4bit通用輸入口和一個(gè)4通道LED輸出口。
(6) 輸出端口不需要額外的上拉或下拉電阻。
值得一提的是,uPD16312除了可完成對VFD器件的驅動(dòng)與控制外,還具有鍵盤(pán)掃描等功能,而這些已超出了本文的討論范圍,在本文中將不做論述。
uPD16312是一個(gè)可編程器件。它的任何一種功能都需要對其編程后才能實(shí)現。由于uPD16312的外圍電路較簡(jiǎn)單,因此如何對其編程成了應用的關(guān)鍵。要想對uPD16312正確編程,就必須了解它的控制命令以及向它傳送數據與命令的時(shí)序。
2 uPD16312的控制命令與串行口時(shí)序
2.1 uPD16312的控制命令
uPD16312有四條控制命令,它們是顯示模式命令、數據設置命令、地址設置命令和顯示控制命令。
顯示模式命令用來(lái)設置uPD16312的顯示模式。其命令的格式如圖4所示。圖4中,“-”表示該位可設置為任意值;b0、b1、b2的不同組合決定了所選的顯示模式,如表1所示。在芯片剛接通電源時(shí),顯示模式的缺省設置為11字×11段模式。執行該命令時(shí)顯示會(huì )被強行關(guān)閉。要想恢復顯示,必須執行一次顯示控制命令,將顯示打開(kāi)。
數據設置命令用來(lái)設置數據寫(xiě)入與讀出的方式。其格式如圖5所示。圖5中,b0、b1兩位用來(lái)設置數據的傳輸方向。在向顯示存儲器寫(xiě)數據時(shí),b0、b1應設為“00”。b2位用來(lái)設置數據傳輸方式。當b2置為1時(shí),數據被寫(xiě)入某一顯示存儲單元中,其地址由地址設置命令來(lái)設置,寫(xiě)入數據后,地址不變化。當b2設置為0時(shí),數據以地址增量的方式進(jìn)行傳輸,即數據寫(xiě)入顯示存儲器的某一存儲單元后,其地址自動(dòng)加1,這意味著(zhù)在這種方式下可以向顯示存儲器的某一存儲單元段連續寫(xiě)入數據。b3位用來(lái)設置測試方式。當b3置為1時(shí),芯片工作在測試方式,當b3置為0時(shí),芯片處于正常工作方式。在芯片剛接通電源時(shí),芯片處于正常工作方式且數據以地址增量方式傳輸。
地址設置命令用來(lái)設置要寫(xiě)入數據的存儲單元地址,其命令格式如圖6所示。圖6中,b0、b1、b2、b3、b4五位用來(lái)設置存儲單元地址,其范圍為0x00H~0x15H。當寫(xiě)入地址超出這一范圍時(shí),數據將不被寫(xiě)入。在芯片剛接通電源時(shí),地址的缺省設置為0x00H。
顯示控制命令用來(lái)控制顯示的開(kāi)與關(guān)以及顯示亮度,其命令格式如圖7所示。圖7中,b3位用來(lái)控制顯示的開(kāi)與關(guān)。當b3置為0時(shí),顯示被關(guān)閉;當b3置為1時(shí),顯示被打開(kāi)。b0、b1、b2三位用來(lái)控制柵極脈沖寬度,如表2所示。uPD16312通過(guò)對柵極脈沖寬度的控制實(shí)現對顯示亮度的控制。當芯片剛接通電源時(shí),顯示處于關(guān)狀態(tài),柵極脈沖寬度為T(mén)DISP。
2.2串行接口的時(shí)序
uPD16312是通過(guò)一個(gè)串行接口與CPU及其它器件進(jìn)行通訊的,其串行接口的時(shí)序如圖8所示。圖8中,只有當STB為低電平時(shí),uPD16312方可從Din上讀取數據,而且數據讀取是在CLK信號上升沿到來(lái)時(shí)進(jìn)行的。uPD16312的控制命令必須在STB剛由高電平變?yōu)榈碗娖綍r(shí)傳輸。只有在給uPD16312傳輸完一條命令后,方可向uPD16312的顯示存儲器寫(xiě)入數據,對uPD16312的編程實(shí)際上就是指根據系統的需要正確地向uPD16312寫(xiě)入命令和顯示數據。
3 uPD16312在VFD顯示系統中的應用
3.1系統的組成
在我們所開(kāi)發(fā)的DVD視盤(pán)機中,VFD系統主要由SH7043、uPD16312、VFD顯示器件及少量的分立器件組成,其系統框圖如圖9所示。其中SH7043是日立公司的微處理器。由于SH7043中沒(méi)有與uPD16312相匹配的串行接口,所以將其端口D中的PD29、PD30、PD31引腳作為與uPD16312 進(jìn)行通訊的端口,用來(lái)傳送指令和數據。其中PD29與uPD16312的STB引腳相連,PD30與uPD16312的DIN引腳相連,PD31與uPD16312的CLK引腳相連。在本系統中,VFD顯示器件采用FUTABA的熒光顯示管。它具有6個(gè)柵極和16個(gè)陽(yáng)極,顯示的字符共有三種顏色,可顯示的內容十分豐富,完全能滿(mǎn)足DVD視盤(pán)機對VFD顯示的要求。由于所采用的VFD顯示器件是6Grid×16Anode類(lèi)型的,所以uPD16312在具體應用時(shí),要設置成6字×16段模式。這時(shí),uPD16312的Pin28~Pin31、Pin26要做為柵極引腳使用。整個(gè)系統的硬件電路較為簡(jiǎn)單,其軟件編程相對復雜一些。
3.2 VFD顯示程序的編制
我們開(kāi)發(fā)的DVD控制軟件是在SH7043專(zhuān)用開(kāi)發(fā)環(huán)境下編制的。VFD顯示功能主要由zdisp.c和pda_vfd.c模塊完成。程序運行時(shí)首先進(jìn)行初始化,在初始化過(guò)程中要完成對SH7043相應I/O端口D設置,以及為程序中使用的一些變量設置初始值,其中最重要的一項工作是對uPD16312進(jìn)行初始化設置,這部分工作由模塊pda_vfd.c中的子程序vfd_init()完成,其程序流程圖如圖10所示。初始化完成后,zdisp.c任務(wù)模塊和pda_vfd.c任務(wù)模塊均處在等待接收“event”狀態(tài)。系統其它模塊如果有信息要顯示,就向zdisp.c模塊發(fā)送相應的“event”。zdisp.c模塊接到系統其它模塊發(fā)給它的“event”后,就對要顯示的信息進(jìn)行分析處理,得到一組符合VFD顯示器件字符編碼要求的數據,然后向pda_vfd.c模塊發(fā)出“event ”。模塊pda_vfd.c接到zdisp.c發(fā)給它的“event”后,就通過(guò)由PD29、PD30、PD31三引腳組成的串行口將指令和數據寫(xiě)入到uPD16312中去,驅動(dòng)VFD顯示器件顯示出正確的信息。
從上述工作過(guò)程可以看出,模塊zdisp.c主要是將要顯示的信息處理成符合VFD顯示器件字符編碼規則的一組數據。在模塊zdisp.c中完成這一功能的子程序是vdsp_req(),其流程圖如圖11所示。由圖11可知,需要VFD顯示的信息可分為6種,這6種信息分別由6個(gè)子程序進(jìn)行處理。下面以子程序vdsp_req_disc()為例說(shuō)明如何將要顯示的信息轉換成符合VFD顯示器件字符編碼規則的數據。
在模塊zdisp.c中,定義數組vfd_disp_buf[ ]用來(lái)存放處理好的數據,該數組與uPD16312中的顯示存儲器一一對應。子程序vdsp_req_disc( )主要完成的工作是對碟片種類(lèi)顯示信息進(jìn)行處理。由于VFD顯示器件上各種字符的編碼規則不同,對各種顯示信息的處理方式也有所不同。有些信息的處理是對vfd_disp_buf[ ]數組中相應某一元素的某一位置位,如對“VCD”、“DVD”等信息的處理就是這樣;有些信息,如“cd”、“NO DISC″等信息,則要按照VFD顯示器件字符編碼規則的要求進(jìn)行編碼,將得到的一組代碼存入數組vfd_disp_buf[ ]中相應的元素中。子程序vdisp_req_disc( )的流程圖如圖12所示。
處理好的信息存入vfd_disp_buf[ ]后,接下來(lái)的工作就是把數組vfd_disp_buf[ ]中的數據傳送到uPD16312的顯示存儲器中去。這部分工作是由模塊pda_vfd.c完成的,其程序流程圖如圖13所示。圖13中,子程序vfd_byte_set( )的作用是按照uPD16312串行口的時(shí)序向uPD16312顯示存儲器中傳輸一個(gè)8位的顯示數據或命令,其流程圖如圖14 所示。圖14中,data中存放要傳輸的8位數據或命令。利用子程序vfd_byte_set( )可及時(shí)地刷新uPD16312顯示存儲器中所用到的各個(gè)顯示單元,從而使VFD顯示出正確的信息。
目前,本公司研制開(kāi)發(fā)的DP2000型DVD視盤(pán)機中已采用了uPD16312作為其VFD顯示電路的核心芯片。該機型已批量投產(chǎn),并已在公司內通過(guò)高低溫老化試驗、安全試驗及電磁兼容測試。這充分證明了 uPD16312是一種可靠性高、實(shí)用性好的集成電路,完全能滿(mǎn)足DVD視盤(pán)機對VFD顯示驅動(dòng)控制芯片的要求。
DIY機械鍵盤(pán)相關(guān)社區:機械鍵盤(pán)DIY
評論