邏輯分析儀測(cè)試在基于FPGA的LCD顯示控制中的應(yīng)用
摘要:邏輯分析儀作為基礎(chǔ)儀器,應(yīng)該在基礎(chǔ)數(shù)字電路教學(xué)中得到廣泛應(yīng)用。本文介紹了基于FPGA的液晶顯示控制設(shè)計(jì)方案,通過(guò)使用OLA2032B邏輯分析儀,對(duì)控制線進(jìn)行監(jiān)測(cè)與分析,保證設(shè)計(jì)方案的準(zhǔn)確性,或者在設(shè)計(jì)出現(xiàn)問(wèn)題時(shí),快速定位和解決問(wèn)題。結(jié)果表明,邏輯分析儀在數(shù)字電路的設(shè)計(jì)、調(diào)試和分析中,起著很重要的作用。
關(guān)鍵字:LCD;邏輯分析儀;總線分析;觸發(fā)
一、引言
邏輯分析儀是數(shù)字設(shè)計(jì)驗(yàn)證與調(diào)試過(guò)程中公認(rèn)最出色的工具,它能夠檢驗(yàn)數(shù)字電路是否正常工作,并幫助用戶查找并排除故障。邏輯分析儀的主要特點(diǎn)是能夠同時(shí)觀察多個(gè)信號(hào);能夠按高低電平、升降沿等模式觸發(fā)多條信號(hào)線,并查看結(jié)果。在基礎(chǔ)教學(xué)實(shí)驗(yàn)室中,邏輯分析儀應(yīng)該與示波器處于同等重要的地位,但示波器的身影隨處可見(jiàn),邏輯分析儀多數(shù)是紙上談兵,而且隨著很多仿真軟件的成熟,設(shè)計(jì)人員在計(jì)算機(jī)上便可以觀察被控器件的輸出信號(hào),這樣在教學(xué)實(shí)驗(yàn)室中,就回避了價(jià)格昂貴、操作繁瑣、不易維修的邏輯分析儀,但軟件仿真與硬件輸出有時(shí)會(huì)有一定的差距,這就會(huì)造成設(shè)計(jì)結(jié)果與我們預(yù)想的結(jié)果不同,而且很難查找其原因,這就需要我們觀察硬件電路輸出的控制信號(hào)。本文針對(duì)邏輯分析儀的使用,主要介紹了OLA2032B獨(dú)立臺(tái)式邏輯分析儀在EDA實(shí)驗(yàn)教學(xué)中的一個(gè)典型的應(yīng)用——基于FPGA的液晶顯示控制設(shè)計(jì)方案。
二、LCD顯示控制原理簡(jiǎn)介
1、LCD的顯示控制原理
實(shí)驗(yàn)的過(guò)程中使用了清華大學(xué)提供的EDA GW48-PK2教學(xué)實(shí)驗(yàn)箱,主要使用其中的液晶顯示模塊,此液晶顯示器為HS12864-3型液晶顯示器,它是一種圖形點(diǎn)陣液晶顯示器,它主要由行驅(qū)動(dòng)器和列驅(qū)動(dòng)器及128×64全點(diǎn)陣液晶顯示器組成,包含七種指令,讀寫指令共用八路數(shù)據(jù)??赏瓿蓤D形顯示,也可以顯示8×4個(gè)(16×16點(diǎn)陣)漢字。
在實(shí)驗(yàn)箱上,可以由FPGA直接控制LCD液晶顯示器,如圖1所示,F(xiàn)PGA保存子模,生成繪圖指令,并根據(jù)指令生成相應(yīng)的時(shí)序,發(fā)送給LCD。LCD端的DDRAM控制器接收時(shí)序控制信號(hào)并將圖像顯示在液晶屏上。
液晶模塊的硬件構(gòu)成如圖2所示,液晶屏被分為左右兩個(gè)區(qū)域,它是通過(guò)片選信號(hào)CS0、CS1選擇當(dāng)前信號(hào)所控制的區(qū)域,讀寫指令共用八路數(shù)據(jù),通過(guò)幾根控制線完成液晶顯示器的讀寫工作。該設(shè)備內(nèi)置64×64位的顯示存儲(chǔ)器DDRAM,顯示屏上各像素點(diǎn)的顯示狀態(tài)與DDRAM中的數(shù)據(jù)一一對(duì)應(yīng),DDRAM的數(shù)據(jù)直接作為圖形顯示的驅(qū)動(dòng)信號(hào)。DDRAM中某一點(diǎn)的數(shù)據(jù)為“1”,則液晶屏上相應(yīng)的像素點(diǎn)顯示;DDRAM中某一點(diǎn)的數(shù)據(jù)為“0”,則液晶上相應(yīng)的像素點(diǎn)不顯示。圖2中,IC3為行驅(qū)動(dòng)器,IC1、IC2為列驅(qū)動(dòng)器,IC1、IC2、IC3中含有很多功能器件。
圖2 模塊主要硬件構(gòu)成
通過(guò)控制DI、RW、E、CS1和CS2這五個(gè)信號(hào)管腳的電平并向數(shù)據(jù)總線上發(fā)送相應(yīng)的數(shù)據(jù),我們可以對(duì)液晶屏控制器進(jìn)行簡(jiǎn)單的操作指令,如顯示開(kāi)關(guān)設(shè)置、顯示起始行設(shè)置、地址指針設(shè)置和數(shù)據(jù)讀/寫等指令。這些指令可以分為兩類,即顯示狀態(tài)設(shè)置指令和數(shù)據(jù)讀/寫操作指令,根據(jù)控制指令表(表1)書寫操作指令。
其中:D/I:數(shù)據(jù)/指令標(biāo)志位,0表示數(shù)據(jù)總線上信號(hào)為指令,1表示數(shù)據(jù)總線上信號(hào)為數(shù)據(jù);
R/W:讀/寫標(biāo)志位,0表示FPGA向數(shù)據(jù)總線上做寫操作,1表示FPGA讀數(shù)據(jù)總線。
表1 液晶屏控制指令表
如圖3所示,在設(shè)計(jì)的過(guò)程中,讀寫時(shí)序非常關(guān)鍵,為保證讀寫操作的正確性,可用邏輯分析儀進(jìn)行調(diào)試,主要觀察信號(hào)的時(shí)序關(guān)系,以及讀寫的數(shù)據(jù)值的正確與否。讀寫時(shí)序有具體的時(shí)序參數(shù)要求,可以通過(guò)邏輯分析儀的測(cè)量功能,測(cè)量其中時(shí)間參數(shù)與讀取時(shí)序參數(shù)表對(duì)照,具體測(cè)量方法詳見(jiàn)下文。
圖3 讀寫操作時(shí)序
2、設(shè)計(jì)思路
LCD顯示控制器設(shè)計(jì)要點(diǎn):
1) LCD的讀寫是一個(gè)連續(xù)的過(guò)程,需要設(shè)置好起始地址后連續(xù)的進(jìn)行寫入,這需要一個(gè)狀態(tài)機(jī)來(lái)實(shí)現(xiàn)(LCD控制器);
2) 向LCD發(fā)送指令之前需要確定LCD的狀態(tài)是否可以接收指令,即要先進(jìn)行讀狀態(tài)字的操作,這也需要一個(gè)狀態(tài)機(jī)來(lái)實(shí)現(xiàn)(LCD讀/寫接口)。
3) HS12864-3液晶屏自帶DDRAM,讀寫DB[7..0]實(shí)際上是和DDRAM交換數(shù)據(jù)。
4) 由于DDRAM為并行8位數(shù)據(jù)總線,為了發(fā)送數(shù)據(jù)盡可能簡(jiǎn)單,建議在LCD模塊中采用雙向8位RAM。
5) 不斷刷新128*64的每一像素的數(shù)據(jù),但只需產(chǎn)生數(shù)據(jù)向雙向RAM中刷新。無(wú)需關(guān)心如何繪制到LCD上。
三、使用邏輯分析儀進(jìn)行調(diào)試
1、設(shè)計(jì)過(guò)程中出現(xiàn)的問(wèn)題
在實(shí)驗(yàn)結(jié)果中發(fā)現(xiàn)LCD模塊每隔一段時(shí)間可能產(chǎn)生一些不穩(wěn)定的因素,左半屏可能會(huì)不顯示,有時(shí)出現(xiàn)滾屏的現(xiàn)象,有時(shí)會(huì)在液晶顯示器上出現(xiàn)散點(diǎn),或出現(xiàn)圖像混亂現(xiàn)象,如圖4所示。這種現(xiàn)象一般由于控制指令出現(xiàn)問(wèn)題,控制線與數(shù)據(jù)線的時(shí)序關(guān)系出現(xiàn)偏差,出現(xiàn)這種現(xiàn)象需要使用邏輯分析儀進(jìn)行調(diào)試。
圖4 液晶顯示的異常現(xiàn)象
2、搭建實(shí)驗(yàn)環(huán)境
基于以上問(wèn)題,需要我們搭建一套實(shí)驗(yàn)環(huán)境,查找液晶顯示過(guò)程中可能出現(xiàn)的錯(cuò)誤,實(shí)驗(yàn)設(shè)備以邏輯分析儀為主,配備相應(yīng)的測(cè)試附件,如果希望存儲(chǔ)實(shí)驗(yàn)數(shù)據(jù)或者設(shè)置,還需要將邏輯分析與PC相連,利用邏輯分析儀的配套軟件,將所要的數(shù)據(jù)存儲(chǔ)下來(lái)。這樣便搭建了PC實(shí)時(shí)控制軟件+OLA邏輯分析儀+DUT待測(cè)設(shè)備的實(shí)驗(yàn)環(huán)境。
3、連接方式
在邏輯分析儀與被測(cè)電路相連時(shí),一般邏輯分析儀的標(biāo)準(zhǔn)配件有兩種連接形式,一種是插針連接方式,這需要實(shí)驗(yàn)板上預(yù)留排針式的測(cè)試端口,這種情況一般出現(xiàn)在專業(yè)的測(cè)試板上,連接比較輕松;另一種是飛機(jī)頭連接方式,這種連接方式測(cè)試鉤非常小巧,可以隨意鉤在實(shí)驗(yàn)板的測(cè)試管腳,對(duì)實(shí)驗(yàn)板沒(méi)有特殊要求,如圖6所示。另外,我們北京海洋興業(yè)科技有限公司與美國(guó)Pomona公司合作提供很多其它形式的連接方式,如微型SMD測(cè)試夾、集成電路測(cè)試夾等等,根據(jù)用戶的需求建立不同的邏輯分析儀測(cè)試方案。
圖6 邏輯分析儀通過(guò)飛機(jī)頭連接被測(cè)電路
4、邏輯分析儀的使用
為了更方便、更快捷的解決設(shè)計(jì)中存在的問(wèn)題,我們需要很好的使用邏輯分析儀,利用其獨(dú)有的特點(diǎn)和豐富的功能調(diào)試棘手的問(wèn)題,所謂磨刀不誤砍柴工,如果可以很好地駕馭測(cè)試手段,就可以達(dá)到事半功倍的效果。下面我們主要介紹OLA2032B邏輯分析儀在這個(gè)設(shè)計(jì)實(shí)驗(yàn)中如何最大的發(fā)揮作用。
1) Auto-Scale功能
將邏輯分析儀的測(cè)試線與被測(cè)電路中想要觀察的信號(hào)管腳連接好之后,不需要任何設(shè)置,只要按下Auto-Scale功能鍵,待測(cè)信號(hào)便可以在屏幕上顯示,類似于數(shù)字示波器的Auto-Set功能,給邏輯分析儀的使用帶來(lái)前所未有的方便。如圖7所示,接入的13路信號(hào)全部顯示在屏幕上。
圖7 Auto-Scale功能
2) 總線形式顯示
由于邏輯分析儀的通道數(shù)很多,OLA2032B擁有32路數(shù)據(jù)通道,如果同時(shí)顯示這些信號(hào),未免會(huì)顯得雜亂無(wú)章,這是我們需要總線形式顯示一組或幾組信號(hào),每組的通道個(gè)數(shù)可根據(jù)實(shí)際情況設(shè)定,并且每組的信號(hào)有高位或地位的順序關(guān)系。例如,此實(shí)驗(yàn)中,S0-S7是讀寫指令共用的數(shù)據(jù)通道,其它S8-S12為5路控制線,為了方便,可以將S0-S7設(shè)置成總線形式,并以十六進(jìn)制或者十進(jìn)制顯示,這樣可清晰的理解設(shè)計(jì)者的指令,如圖8所示,可以看出大部分時(shí)間寫入的數(shù)據(jù)為0,對(duì)照液晶顯示控制指令表,可以看出寫入的是液晶屏上空白的地方。
圖8 總線形式顯示
3) 通道命名
由于邏輯分析儀的通道數(shù)比較多,可以通過(guò)顏色來(lái)區(qū)分不同的通道,也可以給每一個(gè)通道命名,如圖所示,我們給每個(gè)通道定義與實(shí)際意義相符的名字,這樣就非常好區(qū)分,方便觀察時(shí)序關(guān)系。通道的命名可以在儀器上操作,也可以在計(jì)算機(jī)軟件上操作,后者使用計(jì)算機(jī)鍵盤,更加快捷。
4) 計(jì)算機(jī)軟件
OLA2032B邏輯分析儀可以通過(guò)一根USB電纜與計(jì)算機(jī)相連,通過(guò)配套軟件,可以讀取采集的信號(hào)數(shù)據(jù)和設(shè)置,可以在PC上控制儀器,并且讀取數(shù)據(jù)和控制儀器的速度都非???,均可以達(dá)到USB2.0的速度,在計(jì)算機(jī)上顯示的信號(hào)波形基本與計(jì)算機(jī)上的波形同步,沒(méi)有延時(shí)。圖7圖8均為計(jì)算機(jī)存儲(chǔ)的圖片。
5) 觸發(fā)功能
同示波器類似,OLA2032B邏輯分析儀也具備豐富的觸發(fā)功能,包括高階的多階觸發(fā)、或階觸發(fā)等等。首先可以設(shè)置每個(gè)通道的狀態(tài)進(jìn)行觸發(fā),如上升沿、下降沿、高電平、低電平等狀態(tài);其次可以進(jìn)行脈沖寬度觸發(fā),捕獲毛刺;另外可以進(jìn)行多階觸發(fā)、或階觸發(fā),我們稱之為既并行又串行的觸發(fā),這種觸發(fā)方式可以用來(lái)分析數(shù)據(jù)的包頭、包尾等。在我們的實(shí)驗(yàn)中,我們可以根據(jù)信號(hào)的時(shí)序關(guān)系觸發(fā)指定位置,例如圖8的觸發(fā)方式為使能端EN的下降沿,這里只用到了最簡(jiǎn)單的單通道下降沿觸發(fā)方式。
6) 觀察時(shí)序使用測(cè)量功能
如前所述,對(duì)于液晶屏幕的讀寫時(shí)序有嚴(yán)格的時(shí)間限制,如果顯示出現(xiàn)錯(cuò)誤,很可能是因?yàn)樽x寫時(shí)序以及其持續(xù)時(shí)間不滿足要求,所以我們需要使用邏輯分析儀的光標(biāo)測(cè)量功能來(lái)查找問(wèn)題所在。OLA2032B提供了三組六根光標(biāo),可以測(cè)量每根光標(biāo)對(duì)應(yīng)基準(zhǔn)位置的時(shí)間差和沒(méi)組光標(biāo)兩根之間的時(shí)間差,這樣便可以將測(cè)量結(jié)果與液晶顯示器參數(shù)對(duì)照,查找問(wèn)題所在。請(qǐng)對(duì)比圖8與圖3的時(shí)序關(guān)系。
四、使用邏輯分析儀的注意事項(xiàng)
1、輸入信號(hào)的電壓
由于數(shù)字信號(hào)的電平均較低,一般在5V以內(nèi),所以邏輯分析儀的耐壓能力較差,所以盡量不要將電壓較高的信號(hào),長(zhǎng)時(shí)間的接入邏輯分析中。例如,邏輯分析儀有時(shí)也可以用來(lái)測(cè)量和分析一些串行總線,如I2C、SPI等串行總線,但是一般不用邏輯分析儀分析RS232總線,因?yàn)?a href="http://www.www27dydycom.cn/tags/rs/" target="_blank">RS232的電平較高,超過(guò)了邏輯分析儀的耐壓能力。
2、信號(hào)閾值
閾值是判決信號(hào)為高電平或低電平的門限電平,所以對(duì)于同一個(gè)信號(hào),對(duì)應(yīng)不同的閾值可能得到不同的結(jié)果,所以我們要根據(jù)實(shí)際情況選擇閾值大小,有些用戶想要雙閾值的判決,可是大多數(shù)邏輯分析儀沒(méi)有這項(xiàng)功能,一般將邏輯的域值設(shè)置成高電平的門限即可。
3、存儲(chǔ)深度
邏輯分析儀在采集信號(hào)時(shí)都會(huì)將采集到的信號(hào)存儲(chǔ)到存儲(chǔ)器(Memory)中,根據(jù)用戶的要求,需要采集多長(zhǎng)時(shí)間、定時(shí)分辨率為多少來(lái)設(shè)置存儲(chǔ)深度,OLA2032B最大存儲(chǔ)深度為512Kbit/每通道。
4、數(shù)字信號(hào)與模擬信號(hào)的相關(guān)性
邏輯分析儀觀測(cè)到的信號(hào),我們稱之為“偽信號(hào)”,只有高低電平之分,也就是說(shuō)邏輯分析儀觀察到的信號(hào)只有水平軸是有意義的,它反映信號(hào)的時(shí)間關(guān)系,而垂直軸是沒(méi)有意義的,它并不代表幅度,如果信號(hào)出現(xiàn)了問(wèn)題,尤其是串?dāng)_、毛刺等現(xiàn)象,我們要是想知道其來(lái)源以及產(chǎn)生原因,還需要與其它儀器相配合,如示波器、頻譜分析儀等等。
小結(jié)
本文介紹了邏輯分析儀在EDA教學(xué)中的應(yīng)用,通過(guò)OLA2032B邏輯分析儀調(diào)試基于FPGA的LCD顯示控制設(shè)計(jì)方案的實(shí)驗(yàn)。在測(cè)試的過(guò)程中,我們可以發(fā)現(xiàn)邏輯分析儀在基礎(chǔ)教學(xué)中起著很重要的作用,比示波器更適合調(diào)試數(shù)字電路。實(shí)踐證明,邏輯分析儀可以縮短我們的設(shè)計(jì)時(shí)間,解決其它儀器或者軟件解決不了的問(wèn)題,并且它是多通道的時(shí)序分析的唯一解決方案,它可以同時(shí)看到硬件電路實(shí)際輸出的多路信號(hào)。我們北京海洋興業(yè)科技有限公司推出的OLA2032B邏輯分析儀,希望可以解決邏輯分析儀在基礎(chǔ)教學(xué)中作壁上觀的現(xiàn)狀,較高的性價(jià)比真正做到讓數(shù)字電路教學(xué)用得起邏輯分析儀。在這里非常感謝清華大學(xué)的老師給我們這樣好的平臺(tái),使我們對(duì)我們的產(chǎn)品更有信心。
參考文獻(xiàn)
[1] 許忠信. LCD顯示控制器設(shè)計(jì). 清華大學(xué)EDA實(shí)驗(yàn)實(shí)驗(yàn)教程.
[2] 康世胤. 基于FPGA的隨機(jī)序列發(fā)生器和LCD控制器. 清華大學(xué).
[3] 王樂(lè). 邏輯分析儀基礎(chǔ)知識(shí)簡(jiǎn)介. 北京海洋科技有限公司網(wǎng)站. 06.12.25.
[4] 王樂(lè). 邏輯分析儀的使用. 北京海洋科技有限公司網(wǎng)站. 07.05.08.
[5] 周家明. 邏輯分析儀與示波器的比較. 北京海洋科技有限公司網(wǎng)站. 07.02.15
評(píng)論