LCD萬(wàn)用接口電路設(shè)計(jì)
LCD接口都有哪些?
LCD的接口有多種,分類很細(xì)。主要看LCD的驅(qū)動(dòng)方式和控制方式,目前手機(jī)上的彩色LCD的連接方式一般有這么幾種:MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI模式,DSI模式。MCU模式(也寫(xiě)成MPU模式的)。只有TFT模塊才有RGB接口。
但應(yīng)用比較多的就是MUC模式和RGB模式,區(qū)別有以下幾點(diǎn):
1.MCU接口:會(huì)解碼命令,由TIming generator產(chǎn)生時(shí)序信號(hào),驅(qū)動(dòng)COM和SEG驅(qū)器。
RGB接口:在寫(xiě)LCD register setTIng時(shí),和MCU接口沒(méi)有區(qū)別。區(qū)別只在于圖像的寫(xiě)入方式。
2.用MCU模式時(shí)由于數(shù)據(jù)可以先存到IC內(nèi)部GRAM后再往屏上寫(xiě),所以這種模式LCD可以直接接在MEMORY的總線上。
用RGB模式時(shí)就不同了,它沒(méi)有內(nèi)部RAM,HSYNC,VSYNC,ENABLE,CS,RESET,RS可以直接接在MEMORY的GPIO口上,用GPIO口來(lái)模擬波形。
3.MPU接口方式:顯示數(shù)據(jù)寫(xiě)入DDRAM,常用于靜止圖片顯示。
RGB接口方式:顯示數(shù)據(jù)不寫(xiě)入DDRAM,直接寫(xiě)屏,速度快,常用于顯示視頻或動(dòng)畫(huà)用。
MCU接口和RGB接口主要的區(qū)別是:
MCU接口方式:顯示數(shù)據(jù)寫(xiě)入DDRAM,常用于靜止圖片顯示。
MCU模式
因?yàn)橹饕槍?duì)單片機(jī)的領(lǐng)域在使用,因此得名。后在中低端手機(jī)大量使用,其主要特點(diǎn)是價(jià)格便宜的。MCU-LCD接口的標(biāo)準(zhǔn)術(shù)語(yǔ)是Intel提出的8080總線標(biāo)準(zhǔn),因此在很多文檔中用I80來(lái)指MCU-LCD屏。主要又可以分為8080模式和6800模式,這兩者之間主要是時(shí)序的區(qū)別。數(shù)據(jù)位傳輸有8位,9位,16位,18位,24位。連線分為:CS/,RS(寄存器選擇),RD/,WR/,再就是數(shù)據(jù)線了。優(yōu)點(diǎn)是:控制簡(jiǎn)單方便,無(wú)需時(shí)鐘和同步信號(hào)。缺點(diǎn)是:要耗費(fèi)GRAM,所以難以做到大屏(3.8以上)。對(duì)于MCU接口的LCM,其內(nèi)部的芯片就叫LCD驅(qū)動(dòng)器。主要功能是對(duì)主機(jī)發(fā)過(guò)的數(shù)據(jù)/命令,進(jìn)行變換,變成每個(gè)象素的RGB數(shù)據(jù),使之在屏上顯示出來(lái)。這個(gè)過(guò)程不需要點(diǎn)、行、幀時(shí)鐘。
MCU接口的LCD的Driver IC都帶GRAM,Driver IC作為MCU的一片協(xié)處理器,接受MCU發(fā)過(guò)來(lái)的Command/Data,可以相對(duì)獨(dú)立的工作。對(duì)于MCU接口的LCM(LCD Module),其內(nèi)部的芯片就叫LCD驅(qū)動(dòng)器。主要功能是對(duì)主機(jī)發(fā)過(guò)的數(shù)據(jù)/命令,進(jìn)行變換,變成每個(gè)象素的RGB數(shù)據(jù),使之在屏上顯示出來(lái)。這個(gè)過(guò)程不需要點(diǎn)、行、幀時(shí)鐘。
M6800模式
M6800模式支持可選擇的總線寬度8/9/16/18-bit(默認(rèn)為8位),其實(shí)際設(shè)計(jì)思想是與I80的思想是一樣的,主要區(qū)別就是該模式的總線控制讀寫(xiě)信號(hào)組合在一個(gè)引腳上(/WR),而增加了一個(gè)鎖存信號(hào)(E)數(shù)據(jù)位傳輸有8位,9位,16位和18位。
I8080模式
I80模式連線分為:CS/,RS(寄存器選擇),RD/,WR/,再就是數(shù)據(jù)線了。優(yōu)點(diǎn)是:控制簡(jiǎn)單方便,無(wú)需時(shí)鐘和同步信號(hào)。缺點(diǎn)是:要耗費(fèi)GRAM,所以難以做到大屏(QVGA以上)。
MCU接口標(biāo)準(zhǔn)名稱是I80,管腳的控制腳有5個(gè):
CS片選信號(hào)
RS (置1為寫(xiě)數(shù)據(jù),置0為寫(xiě)命令)
/WR (為0表示寫(xiě)數(shù)據(jù))數(shù)據(jù)命令區(qū)分信號(hào)
RESET復(fù)位LCD(用固定命令系列 0 1 0來(lái)復(fù)位)
VSYNC模式
該模式其實(shí)就是就是在MCU模式上加了一個(gè)VSYNC信號(hào),應(yīng)用于運(yùn)動(dòng)畫(huà)面更新,這樣就與上述兩個(gè)接口有很大的區(qū)別。該模式支持直接進(jìn)行動(dòng)畫(huà)顯示的功能,它提供了一個(gè)對(duì)MCU接口最小的改動(dòng),實(shí)現(xiàn)動(dòng)畫(huà)顯示的解決方案。在這種模式下,內(nèi)部的顯示操作與外部VSYNC信號(hào)同步??梢詫?shí)現(xiàn)比內(nèi)部操作更高的速率的動(dòng)畫(huà)顯示。但由于其操作方式的不同,該模式對(duì)速率有一個(gè)限制,那就是對(duì)內(nèi)部SRAM的寫(xiě)速率一定要大于顯示讀內(nèi)部SRAM的速率。
RGB模式
大屏采用較多的模式,數(shù)據(jù)位傳輸也有6位,16位和18位,24位之分。連線一般有:VSYNC,HSYNC,DOTCLK,CS,RESET,有的也需要RS,剩下就是數(shù)據(jù)線。它的優(yōu)缺點(diǎn)正好和MCU模式相反。
MCU-LCD屏它與RGB-LCD屏主要區(qū)別在于顯存的位置。RGB-LCD的顯存是由系統(tǒng)內(nèi)存充當(dāng)?shù)?,因此其大小只受限于系統(tǒng)內(nèi)存的大小,這樣RGB-LCD可以做出較大尺寸,象現(xiàn)在4.3“只能算入門(mén)級(jí),而MID中7”,10“的屏都開(kāi)始大量使用。而MCU-LCD的設(shè)計(jì)之初只要考慮單片機(jī)的內(nèi)存較小,因此都是把顯存內(nèi)置在LCD模塊內(nèi)部。然后軟件通過(guò)專門(mén)顯示命令來(lái)更新顯存,因此MCU屏往往不能做得很大。同時(shí)顯示更新速度也比RGB-LCD慢。顯示數(shù)據(jù)傳輸模式也有差別。RGB屏只需顯存組織好數(shù)據(jù)。啟動(dòng)顯示后,LCD-DMA會(huì)自動(dòng)把顯存中的數(shù)據(jù)通過(guò)RGB接口送到LCM。而MCU屏則需要發(fā)送畫(huà)點(diǎn)的命令來(lái)修改MCU內(nèi)部的RAM(即不能直接寫(xiě)MCU屏的RAM)。所以RGB顯示速度明顯比MCU快,而且播放視頻方面,MCU-LCD也比較慢。
對(duì)于RGB接口的LCM,主機(jī)輸出的直接是每個(gè)象素的RGB數(shù)據(jù),不需要進(jìn)行變換(GAMMA校正等除外),對(duì)于這種接口,需要在主機(jī)部分有個(gè)LCD控制器,以產(chǎn)生RGB數(shù)據(jù)和點(diǎn)、行、幀同步信號(hào)。
彩色TFT液晶屏主要有2種接口:TTL接口(RGB顏色接口), LVDS接口(將RGB顏色打包成差分信號(hào)傳輸)。TTL接口主要用于12.1寸一下的小尺寸TFT屏,LVDS接口主要用于8寸以上的大尺寸TFT屏。TTL接口線多,傳輸距離短;LVDS接口傳輸距離長(zhǎng),線的數(shù)量少。大屏采用較多的模式,控制腳是VSYNC,HSYNC,VDEN,VCLK, S3C2440最高支持24個(gè)數(shù)據(jù)腳,數(shù)據(jù)腳是VD[23-0]。
CPU或顯卡發(fā)出的圖像數(shù)據(jù)是TTL信號(hào)(0-5V、0-3.3V、0-2.5V、或0-1.8V),LCD本身接收的也是TTL信號(hào),由于TTL信號(hào)在高速率的長(zhǎng)距離傳輸時(shí)性能不佳,抗干擾能力比較差,后來(lái)又提出了多種傳輸模式,比如LVDS、TDMS、GVIF、P&D、DVI和DFP等。他們實(shí)際上只是將CPU或顯卡發(fā)出的TTL信號(hào)編碼成各種信號(hào)以傳輸,在LCD那邊將接收到的信號(hào)進(jìn)行解碼得到TTL信號(hào)。
但是不管采用何種傳輸模式,本質(zhì)的TTL信號(hào)是一樣的。
注意:TTL/LVDS分別是兩種信號(hào)的傳輸模式,TTL是高電平表示1,低電平表示0的模式,LVDS是正負(fù)兩個(gè)對(duì)應(yīng)波形,用兩個(gè)波形的差值來(lái)表示當(dāng)前是1還是0
SPI模式
采用較少,有3線和4線的,連線為CS/,SLK,SDI,SDO四根線,連線少但是軟件控制比較復(fù)雜。
MDDI模式(MobileDisplayDigitalInterface)
高通公司于2004年提出的接口MDDI,通過(guò)減少連線可提高移動(dòng)電話的可靠性并降低功耗,這將取代SPI模式而成為移動(dòng)領(lǐng)域的高速串行接口。連線主要是host_data,host_strobe,client_data,client_strobe,power,GND幾根線。
DSI模式
該模式串行的雙向高速命令傳輸模式,連線有D0P,D0N,D1P,D1N,CLKP,CLKN。
怎樣從LCD電極看出單片機(jī)的種類:
通過(guò)測(cè)量?jī)x表拾取被測(cè)信號(hào)是單片機(jī)前向通道設(shè)計(jì)中常用的數(shù)據(jù)采集方式。通常,接口電路從儀表電路中取得相關(guān)的模擬信號(hào),經(jīng)過(guò)A/D轉(zhuǎn)換或V/F轉(zhuǎn)換送入單片機(jī);或者取得一個(gè)頻率信號(hào),經(jīng)整形后送入單片機(jī)。然而,有些測(cè)量?jī)x表電路中可能找不到這樣的信號(hào)。以電容式壓力傳感器血壓計(jì)為例,盡管從其振蕩電路中可以取得一個(gè)與壓強(qiáng)成線性關(guān)系的頻率信號(hào),送入單片機(jī)測(cè)得壓強(qiáng),但這個(gè)壓強(qiáng)并不是所要拾取的收縮壓、舒張壓和心率;面普通的血壓計(jì)又沒(méi)有智能儀表那樣的通信接口與單片機(jī)通信。顯然,要想通過(guò)這樣的儀表拾取被測(cè)信號(hào)只有直接讀取其顯示屏的讀數(shù)了。
本文以一個(gè)全自動(dòng)血壓計(jì)為例,介紹將LCD顯示器讀數(shù)讀入單片機(jī)的接口電路。該血壓計(jì)顯示器為61/2位段式LCD顯示器,3位顯示收縮壓,3位顯示舒張壓。l/2位在兩組數(shù)碼中間,顯示4個(gè)指示符號(hào)。
1 LCD的電極連接結(jié)構(gòu)和工作波形
1.1 LCD的電極連接結(jié)構(gòu)
圖1為血壓計(jì)LCD的電極連接結(jié)構(gòu)及等效電路。其中,圖l(a)為公共電極連接排列,圖l(b)為段電極連接排列。它共有4個(gè)公共電極COM0~COM3,每位數(shù)碼各有2個(gè)段電極Sx-0、Sx-1,其等效電路為一個(gè)4行&TImes;2列的矩陣,如圖l(c)所示。
1.2 LCD的工作波形
用雙蹤示波器觀察血壓計(jì)LCD的工作波形,如圖2所示。它采用時(shí)分割驅(qū)動(dòng)法驅(qū)動(dòng),偏比1/3,占空比l/4,B型。公共電極COM0~COM3的信號(hào)波形始終保持不變,段電極Sx-0、Sx-1信號(hào)波形隨顯示數(shù)字的變化而變化。圖2中的Sx-1、Sx-1波形為顯示數(shù)字“O”時(shí)的工作波形。
由圖2可知,不考慮信號(hào)的直流分量,所有波形的前半周期t1~t4與后半周期t5~t8大小相等,極性相反。COM0~COM3信號(hào)電壓依次在t1~t4四個(gè)時(shí)間內(nèi)達(dá)到峰值。時(shí)間t1為第1行上f、a兩段的掃描時(shí)間,公共電極COM0,Sx-0為f段的段電極,Sx-1為a段的段電極。在t1時(shí)間內(nèi),f段上的電壓COM0-Sx-0=V0,a段上的電壓COM0-Sx-1=V0,f、a兩段均處于選擇狀態(tài),顯示。其余各段在其掃描時(shí)間內(nèi)的電壓和顯示狀態(tài)如表1所列。7段中只有g(shù)段上的電壓為V0/3,處于非選擇狀態(tài),不顯示。其余6段均處于選擇狀態(tài),顯示。因此,顯示數(shù)字“O”。
由此可見(jiàn),只要依次檢查在t1~t4四個(gè)時(shí)間內(nèi)f、a、g、b、e、c、d各段上的電壓COMx-Sx-y(x=0,1,…,6;y=O,1)是V0還是V0/3即可獲得LCD各位數(shù)碼的字形碼,然后再將字形碼轉(zhuǎn)換為測(cè)量結(jié)果。
2單片機(jī)讀數(shù)接口電路
圖3為根據(jù)上述工作原理設(shè)計(jì)的805l單片機(jī)讀數(shù)接口電路,圖中,LCD為血壓計(jì)的液晶顯示器,6位數(shù)碼從右到左依次編號(hào)O~5,中間半位的編號(hào)為6。它有13個(gè)段電極、4個(gè)COM電極,GND為血壓計(jì)的接地端。805l的PC口為805l的擴(kuò)展并行口。
2.1顯示狀態(tài)讀取電路
由CD4067、CD3405l、LM324(UA、UB)組成顯示狀態(tài)讀取電路,讀取LCD數(shù)碼各段的顯示狀態(tài)。CD41367多路模擬開(kāi)關(guān)從LCD的13個(gè)段電極信號(hào)中選擇一路Sx-x輸出到LM324(UA)的反相輸入端2腳。CD405l多路模擬開(kāi)關(guān)從LCD的4個(gè)COM信號(hào)中選擇一路COMx輸出到LM321(UA)的同相輸入端3腳。LM324(UA)接成模擬減法器,由1腳輸出信號(hào)COMx-Sx-x。UB作電壓比較器,參考電壓VR大小由電位器W1調(diào)節(jié)于V0/3~V0之間,將段電壓COMx-Sx-x與VR比較。比較結(jié)果為該段的顯示狀態(tài),高電平說(shuō)明該段顯示,低電平不顯示。顯示狀態(tài)送入8051的P1.6腳。R1、C1組成RC濾波器,濾除高頻干擾。
比如,要讀取0號(hào)數(shù)碼的a段顯示狀態(tài),由圖1知,0號(hào)數(shù)碼a段的段電極是S0-1,公共電極是COM0。由程序控制在t1時(shí)間內(nèi)令PC1PC0=00,使CD405l選擇COM0,令PC5~PC2=0001,使CD4067選擇S0-1,COM0和S0-1兩信號(hào)電壓經(jīng)UA減法器相減,然后再經(jīng)UB電壓比較后得到a段的顯示狀態(tài),8051從P1.6腳讀取此最示狀態(tài)。
2.2 INT0中斷信號(hào)產(chǎn)生電路
UC和UD組成INT0中斷信號(hào)產(chǎn)生電路。UC接成電壓跟隨器,減小電路對(duì)COM0信號(hào)的影響。R2、C2組成RC濾波器,濾除高頻干擾。UD作電壓比較器,參考電壓VR加在同相輸入端,VR大小由電位器W2調(diào)節(jié)于2V0/3~V0。電壓比較器將COM0信號(hào)轉(zhuǎn)換為INT0負(fù)脈沖信號(hào),工作波形如圖4所示。負(fù)脈沖的下降沿為L(zhǎng)CD驅(qū)動(dòng)信號(hào)周期T的起始時(shí)刻。此負(fù)脈沖接至8051的INT0腳,在負(fù)脈沖的下降沿產(chǎn)生外部中斷0。
3程序設(shè)計(jì)
啟用外部中斷0和定時(shí)器T0,以中斷方式讀取LCD各位數(shù)碼的字形碼。主程序以查詢方式讀取該字形碼,然后經(jīng)過(guò)讀數(shù)校驗(yàn)、字形碼到BCD碼的譯碼、讀數(shù)識(shí)別等,將字形碼轉(zhuǎn)換為讀數(shù)。
3.1讀取字形碼
通過(guò)外部中斷O和定時(shí)器T0以中斷方式讀取LCD某一編號(hào)數(shù)碼的字形碼。如圖5所示,INT0負(fù)脈沖在周期T的起始時(shí)刻引起外部中斷O,由INT0中斷服務(wù)程序啟動(dòng)T0定時(shí)器,依次在t1~t4半個(gè)周期內(nèi)的f、a、g、b、e、c、d各時(shí)刻產(chǎn)生T0中斷,讀取各段的顯示狀態(tài),獲得字形碼。T0定時(shí)器設(shè)為工作方式2,自動(dòng)再裝入定時(shí)時(shí)間為T(mén)/16,初始定時(shí)時(shí)間為T(mén)/32。INT0和T0中斷服務(wù)程序流程如圖6所示。
其中,PC口數(shù)據(jù)格式:PC5~PC3為要讀取的那位LCD數(shù)碼編號(hào),PC2為段電極編號(hào),PC1PC0為COM電極編號(hào)。
3.2字形碼轉(zhuǎn)換
主程序以查詢方式分別讀取由中斷服務(wù)程序采集的各位數(shù)碼的字形碼,查表將字形碼轉(zhuǎn)換為BCD碼,再將幾位數(shù)碼的BCD碼轉(zhuǎn)變?yōu)閿?shù)值。
3.3讀數(shù)校驗(yàn)
讀取一位數(shù)碼的字形碼需要1個(gè)周期T(實(shí)際只用前半個(gè)周期),經(jīng)測(cè)量,T=16.318ms。讀取全部位數(shù)碼至少需要用7個(gè)周期,約114ms??紤]到在單片機(jī)讀數(shù)的過(guò)程中,LCD的讀數(shù)有可能發(fā)生變化而導(dǎo)致讀數(shù)錯(cuò)誤,程序中采用連續(xù)兩次讀數(shù)的方法來(lái)校驗(yàn)讀數(shù)的正確性。如果連續(xù)兩次讀數(shù)相同,則說(shuō)明讀數(shù)是正確的;如果連續(xù)兩次讀數(shù)不同,則說(shuō)明讀數(shù)可能是錯(cuò)誤的,應(yīng)重新讀數(shù)。
3.4讀數(shù)識(shí)別
血壓計(jì)顯示的內(nèi)容除了收縮壓、舒張壓和心率以外還有充氣、放氣時(shí)的瞬時(shí)壓強(qiáng)以及一些狀態(tài)信息。LCD中間的半位(6號(hào))用于顯示待機(jī)(Reay to measure)、充氣(CUFF Inf1aTIng)、放氣(CUFF Deflating)以及更換電池(Replace Battcries)四個(gè)符號(hào)。另外,4號(hào)數(shù)碼顯示“E”時(shí)表示測(cè)量出錯(cuò),顯示“P”時(shí),右邊3位(0~2號(hào))數(shù)碼顯示的數(shù)字為心率。左右兩邊顯示內(nèi)容均是數(shù)字時(shí),左邊3位(3~5號(hào))是收縮壓,右邊3位是舒張壓.血壓與心率交替顯示。主程序通過(guò)這些信息來(lái)識(shí)別LCD所顯示的內(nèi)容。
4結(jié)論
使用此接口電路采集數(shù)據(jù),不必考慮與拾取信號(hào)的測(cè)量相關(guān)的細(xì)節(jié)問(wèn)題和技術(shù)規(guī)范。這樣,當(dāng)拾取信號(hào)的測(cè)量比較復(fù)雜時(shí),可以有效地縮短開(kāi)發(fā)周期。同時(shí),它也不存在二次A/D轉(zhuǎn)換或V/F轉(zhuǎn)換方法所存在的單片機(jī)采集數(shù)據(jù)與儀表讀數(shù)不完全一致的問(wèn)題。
程序設(shè)計(jì)用1個(gè)驅(qū)動(dòng)信號(hào)周期讀取1位數(shù)碼,這樣的讀取速度對(duì)于讀數(shù)變化不是很快的血壓計(jì)來(lái)說(shuō)已經(jīng)足夠了。如果測(cè)量?jī)x表LCD讀數(shù)變化很快,可以修改編程,在1個(gè)周期內(nèi)同時(shí)讀取幾位數(shù)碼,甚至修改電路設(shè)計(jì),將后半周期也用于進(jìn)行讀數(shù),實(shí)現(xiàn)在1個(gè)信號(hào)周期內(nèi)讀取所有數(shù)碼。
如何用萬(wàn)用表判定LCD管腳?
打開(kāi)萬(wàn)用表,接到電阻檔,最好有蜂鳴器的那種。一表筆接觸機(jī)頂盒的天線外殼,一表筆逐步解除每一根針,當(dāng)?shù)我宦暢霈F(xiàn),表筆要不離開(kāi)總是長(zhǎng)鳴的說(shuō)明那個(gè)針就是地(GND),繼續(xù)測(cè)量其它針,當(dāng)表筆觸到的針角短暫的嘀一聲的就是VCC了。這樣就判斷出GND和VCC.三針的其余兩針就是RX和TX了。同樣四針的其余兩針也是RX和TX了。五針的判斷是把萬(wàn)用表轉(zhuǎn)到20V檔,一筆接GND,一筆逐步量電壓。這個(gè)時(shí)候有兩種情況,第一種:有可能幾乎沒(méi)電壓,這個(gè)時(shí)候看板,發(fā)現(xiàn)針腳座子附近有兩個(gè)貼片三級(jí)管,就考慮用RS232串口的2-3-5來(lái)接就可以了。第二種,測(cè)量電壓五針的就去掉電壓最高和最低的兩針,其余的就是RX和TX。因?yàn)殡妷鹤罡叩氖荲CC低的是BT
/RD (為0表示讀數(shù)據(jù))