1. 前言
CRT(Cathode Rays Tube,陰極射線管)是最原始的電子顯示技術(shù),在上世紀(jì)被廣泛運(yùn)用于模擬電視(Analog television)系統(tǒng)中。本文將以模擬電視系統(tǒng)為背景,介紹CRT顯示技術(shù)的原理、特性以及一些關(guān)鍵術(shù)語(yǔ)。
眾所周知,CRT顯示已經(jīng)逐步被數(shù)字顯示取代,已有退出歷史舞臺(tái)之勢(shì),本文之所以介紹它,原因有三:
1)模擬電視是我們這一代人童年的記憶,美好又神秘。現(xiàn)在回頭去看,發(fā)覺其中的技術(shù)是那么的簡(jiǎn)單、有趣,值得一說。
2)幫助理解顯示時(shí)序(video mode,or display timings)。對(duì)寫過顯示驅(qū)動(dòng)的人來說,顯示屏的那長(zhǎng)長(zhǎng)一串的時(shí)序相關(guān)的參數(shù)(xres, yres, hsync len, vsync len, left margin, etc.),足以讓自己崩潰。追根溯源,它們產(chǎn)生于CRT技術(shù),現(xiàn)在之所以還存在,很大程度上是CRT的延續(xù),沒有太多實(shí)質(zhì)的意義。
3)現(xiàn)在很多前沿的顯示技術(shù),如PDP、FED等,都和CRT的工作機(jī)制類似(具體可以參考“顯示技術(shù)介紹(2)_電子顯示的前世今生”中的介紹)。理解CRT是理解這些新技術(shù)的基礎(chǔ)。
2. CRT簡(jiǎn)介
CRT顯示技術(shù)的本質(zhì)是:
1)電子槍發(fā)射電子束,并在加速電場(chǎng)的作用下加速。
2)電子束轟擊熒光物質(zhì)發(fā)光。發(fā)光的亮度取決于電子束的速度,即加速電場(chǎng)的強(qiáng)度。
3)加速電場(chǎng)的強(qiáng)度由輸入的視頻信號(hào)控制,因此可以還原視頻。
4)電子束可以產(chǎn)生直徑略小于1mm的光點(diǎn),在偏轉(zhuǎn)系統(tǒng)的控制下,可以分時(shí)點(diǎn)亮屏幕上所有的區(qū)域,并利用人眼視覺暫留原理,產(chǎn)生一副完成的畫面(人眼看來)。
因此,CRT包含了電子束產(chǎn)生(電子槍)、加速系統(tǒng)、偏轉(zhuǎn)系統(tǒng)、涂有熒光物質(zhì)的顯示屏等基本組件,它們組合在一起,再加一個(gè)管殼,就是常說的陰極射線管(CRT)。
3. 模擬電視系統(tǒng)簡(jiǎn)介
模擬電視系統(tǒng)是一個(gè)包含視頻信號(hào)采集輸出、編碼、傳輸、解碼、還原顯示的系統(tǒng),其框圖如下:
圖片1 模擬電視系統(tǒng)
模擬電視系統(tǒng)中的顯示終端(電視)基本上采用CRT顯示,因此也稱作CRT電視。一般情況下,CRT電視作為一個(gè)整體,包含了RF de-modulation、Analog decoding、CRT display三個(gè)部分。
4. 光電轉(zhuǎn)換和電光轉(zhuǎn)換
CRT是把電信號(hào)轉(zhuǎn)換為光信號(hào)的一種技術(shù),但電信號(hào)是怎么來的呢?巧的很,也可以使用類似的技術(shù),如下:
圖片2 光電&電光轉(zhuǎn)換
上圖描述了基于CRT的模擬電視系統(tǒng)的技術(shù)基礎(chǔ):
電子束轟擊光電靶形成電回路,將光信號(hào)轉(zhuǎn)換為電信號(hào),完成光電轉(zhuǎn)換;
加速后的電子束轟擊熒光物質(zhì)發(fā)光,將電信號(hào)轉(zhuǎn)換回光信號(hào),完成電光轉(zhuǎn)換。
光電轉(zhuǎn)換的目的是把圖像信號(hào)轉(zhuǎn)換為電信號(hào),以便于傳輸、保存,轉(zhuǎn)換后的電信號(hào)就是電子顯示的源數(shù)據(jù)。上圖左邊部分介紹了基于陰極射線的光電轉(zhuǎn)換過程:
1)電子槍的陰極產(chǎn)生電子束,并打在一個(gè)導(dǎo)電的光電靶上。
2)光電靶通過一個(gè)電阻(RL)和電子槍的陽(yáng)極連接,打在光電靶上的電子束流經(jīng)電阻回到電子槍的陽(yáng)極,從而形成一個(gè)電回路。
3)光電靶本身也有電阻,且隨光線強(qiáng)度的改變而改變(可以看做光敏電阻)。因此在光電靶和RL之間會(huì)產(chǎn)生隨光線變化而變化的電壓輸出,就是視頻信號(hào)輸出。
光信號(hào)轉(zhuǎn)換為電信號(hào)后,經(jīng)過存儲(chǔ)、傳輸、轉(zhuǎn)換后,會(huì)以輸入信號(hào)的形式,控制CRT中加速電場(chǎng)的強(qiáng)度,進(jìn)而控制熒光屏上熒光物質(zhì)的發(fā)光強(qiáng)度,完成電光轉(zhuǎn)換(電子顯示)。
理解了上面光電轉(zhuǎn)換和電光轉(zhuǎn)換的過程之后,我們會(huì)產(chǎn)生如下疑問:
問題一:一個(gè)光電靶只能反映一個(gè)點(diǎn)的光線變化,但這顯然不夠,一個(gè)足夠大的平面上所有點(diǎn)的光線變化才是有意義的,要怎么做?
問題二:為什么一定需要電子束來形成電回路,一個(gè)簡(jiǎn)單的導(dǎo)線不也可以達(dá)到目的嗎?
要回答上面兩個(gè)問題,我們要進(jìn)一步理解電子掃描的原理。
5. 電子掃描
首先回答問題二,電子束當(dāng)然不是必須的,現(xiàn)在普遍使用的數(shù)碼攝像、數(shù)字顯示等技術(shù),都不需要電子束的參與,當(dāng)然,它們不在本文的介紹范圍內(nèi),就不過多涉及了。因此,我們先分析基于電子束的場(chǎng)景。
對(duì)于問題一,怎么得到一個(gè)平面上多個(gè)點(diǎn)的光線變化呢?機(jī)智的工程師們想到了掃描(Scanning)。所謂的掃描,就是同一時(shí)刻只處理一個(gè)點(diǎn),如果能夠在短時(shí)間內(nèi)(足以欺騙人的眼睛的時(shí)間,如40ms)處理完所有的點(diǎn),就萬(wàn)事大吉了,如下圖所示:
圖片3 Raster scanning
上面圖片所描述的電子掃描(也稱作光柵掃描,Raster scanning[2]),在模擬電視系統(tǒng)中,既用于圖像的采集,也用于圖像的顯示。可以這樣理解:
我們可以使用多個(gè)光電靶(假設(shè)是MxN個(gè))組成一個(gè)平面,然后在電子束經(jīng)過的路徑上的水平和垂直方向分別加入合適的磁場(chǎng),磁場(chǎng)的強(qiáng)度由一個(gè)由鋸齒波信號(hào)控制的線圈(偏轉(zhuǎn)線圈)決定,由于磁場(chǎng)會(huì)使電子束偏轉(zhuǎn),因此就可以控制電子束以從左到右、從上到下的方式,分別打到每一個(gè)光電靶上。這個(gè)過程就叫做掃描。
掃描的結(jié)果,是將MxN個(gè)光電靶所代表的的光信號(hào),分別轉(zhuǎn)換成電信號(hào),并依次輸出。這樣的一個(gè)電信號(hào)序列,稱作一個(gè)圖像幀(Frame),接收端(CRT顯示器),按照同樣的規(guī)則,就可以將這樣的圖像幀還原顯示。
關(guān)于電子掃描,有很多重要的概念,會(huì)在顯示有關(guān)的驅(qū)動(dòng)編寫中用到,下面結(jié)合上面圖片,一一解釋。
1)掃描線(Scan lines)和分辨率(Resolution)
對(duì)電子掃描而言(這里以圖像采集為例),一行中所有光電靶輸出的信號(hào)實(shí)際上是連續(xù)信號(hào),這就意味著:
一行所包含的光電靶個(gè)數(shù),對(duì)掃描(或者顯示)來說,是不重要的,它只影響光信號(hào)采集的精度,也即圖像的精細(xì)度。甚至,顯示端根本不關(guān)心采集端到底用了多少個(gè)光電靶采集信號(hào)(由于是模擬信號(hào),它也無從得知)。這個(gè)特征決定在電子掃描的水平方向上,并沒有分辨率的概念,整個(gè)水平方向上的一行,稱作一個(gè)掃描線(Scan line)。
對(duì)模擬的CRT顯示來說,只需要根據(jù)顯示器的特性(水平方向有多長(zhǎng)),將一行的模擬信號(hào)map過去即可。
當(dāng)每一行掃描結(jié)束的時(shí)候,電子束需要在水平偏轉(zhuǎn)磁場(chǎng)和垂直偏轉(zhuǎn)磁場(chǎng)的偏轉(zhuǎn)作用下,回到下一行的起點(diǎn)(這個(gè)過程稱作回掃,下面會(huì)介紹),這中間不允許采集信號(hào),因而每一個(gè)掃描線之間,是不連續(xù)的。也就是說,電子掃描在垂直方向上有分辨率的概念,即多少個(gè)掃描線(Scan lines)。
綜上所述,在電子掃描中,分辨率可以用Scan lines表示,例如576 lines。
2)回掃(Horizontal/Vertical retrace)
電子束從左向右掃描完一行后,需要在水平偏轉(zhuǎn)磁場(chǎng)的作用下快速移回到最左邊,并在垂直偏轉(zhuǎn)磁場(chǎng)的作用下,向下偏轉(zhuǎn)一個(gè)scan line,以便掃描下一行。同理,電子束從上向下掃描完一幀后,也需要在垂直偏轉(zhuǎn)磁場(chǎng)的作用下快速移回到最左邊。因此,水平和垂直兩個(gè)偏轉(zhuǎn)磁場(chǎng),實(shí)際上是一個(gè)周期性的鋸齒波,如下:
圖片4 Scanning-pattern
斜率為正的上升期,稱作正掃描,電子束將會(huì)從左向右(或者從上向下)偏轉(zhuǎn)。斜率為負(fù)的下降期,稱作回掃(retrace),電子束將會(huì)從右向左(或者從下向上)偏轉(zhuǎn)。
由于回掃的過程中不能采集(或者輸出)信號(hào),因此需要關(guān)閉電子束,稱作blank(Horizontal/Vertical balnk)。回掃結(jié)束后(回到了最左邊或者最右邊),需要重新打開電子束,稱作unblank。
注1:了解顯示驅(qū)動(dòng)(如linux framebuffer)的同學(xué),應(yīng)該對(duì)blank/unblank不陌生,它們的來源正是此處。
3)前肩(front porch)和后肩(back porch)
由上面的描述可知,回掃開始的時(shí)候需要blank操作,即關(guān)閉電子束的發(fā)射。在模擬電子的世界里,關(guān)閉電子束的發(fā)射,其實(shí)就是將激發(fā)電子束發(fā)射的電壓從高電平降到一個(gè)較低的電平(接近零),但下降的過程是需要時(shí)間的(具體原因有多種,這里就不詳細(xì)分析了),因此:
在電平降到一個(gè)安全的值之前(電子束不再發(fā)射),不能開始回掃。
也就是說,有效的視頻信號(hào)必須要在回掃開始前結(jié)束(即上面圖片4中“t2”處),從有效視頻信號(hào)結(jié)束到回掃開始的那一段時(shí)間,稱作前肩(front porch),這一段時(shí)間也是blank操作所需的時(shí)間。
另外,回掃也是需要時(shí)間的(不用糾結(jié)原因,都是老歷史了),這一段時(shí)間可以用作同步信號(hào)。
同樣的道理,回掃完成后,unblank操作時(shí),電平從接近零值上升到正常值(可以發(fā)射電子束,圖片4中的“t1”處)也需要一定的時(shí)間,稱作后肩(back porch)。在back porch的這一段時(shí)間內(nèi),視頻信號(hào)也是無效的。
綜上所述:視頻信號(hào)的有效范圍,是圖片4中t1到t2的范圍,一般稱作xres/yres;視頻信號(hào)的無效范圍,是圖片4中t2到t1的范圍,包括front porch、sync len和back porch(水平或者垂直方向上),一般稱作blanking interval(Horizontal/ Vertical blanking interval[3],[4])。
4)同步信號(hào)(sync pulse)
由“圖片1 模擬電視系統(tǒng)”的描述可知,視頻信號(hào)在發(fā)送之前,需要經(jīng)過Analog encoding,而編碼的過程是不包括前后肩(front/back porch)信息的,因?yàn)榍昂蠹绲闹岛途唧w系統(tǒng)的電路有關(guān),因而不應(yīng)包含在傳輸系統(tǒng)中。
但是,從時(shí)間軸上看,視頻信號(hào)是不連續(xù)的,每一行的有效信號(hào)之后,會(huì)有一段horizontal blanking interval,每一幀的有效信號(hào)之后,會(huì)有一段vertical blanking interval。編碼器利用這些空隙時(shí)間,傳遞了一種特殊信號(hào)---同步信號(hào)(HSYNC和VSYNC,在模擬系統(tǒng)中,該信號(hào)以一個(gè)高于正常視頻電平的高電平脈沖),用于告知接收端每一行以及每一幀視頻信號(hào)的開始和結(jié)束。
6. 顯示時(shí)序(display timings)和視頻模式(videomode)
經(jīng)過上面章節(jié)的介紹,我們對(duì)CRT顯示技術(shù)有了一個(gè)基本的了解,并引出了前后肩、同步信號(hào)等概念,此時(shí),我們可以回到linux kernel中,看幾個(gè)數(shù)據(jù)結(jié)構(gòu)的定義:
1: /* include/video/display_timing.h */
2:
3: struct display_timing {
4: struct timing_entry pixelclock;
5:
6: struct timing_entry hactive; /* hor. active video *
7: struct timing_entry hfront_porch; /* hor. front porch */
8: struct timing_entry hback_porch; /* hor. back porch */
9: struct timing_entry hsync_len; /* hor. sync len */
10:
11: struct timing_entry vactive; /* ver. active video *
12: struct timing_entry vfront_porch; /* ver. front porch */
13: struct timing_entry vback_porch; /* ver. back porch */
14: struct timing_entry vsync_len; /* ver. sync len */
15:
16: enum display_flags flags; /* display flags */
17: };
hactive, hfront_porch, hback_porch, hsync_len/vactive, vfront_porch, vback_porch, vsync_len,是不是已經(jīng)不陌生了?
再看一下struct videmode和struct fb_videomode,以及l(fā)inux下的fbset命令(就不貼代碼了,具體可參考include/video/videomode.h、include/linux/fb.h以及Documentation/fb/framebuffer.txt),也都類似,不再難以理解了。
7. 總結(jié)
最后,本文對(duì)CRT以及模擬電視系統(tǒng)的介紹,只是九牛一毛,很多較為細(xì)節(jié)的內(nèi)容,如幀率、隔行掃描(Interlaced scan)、編碼、顯示制式(PAL/NTSC)等等,都沒有涉及。有礙于篇幅和個(gè)人精力,就不一一介紹了,如有興趣,可參考本文后面的一些鏈接。
8. 參考文獻(xiàn)
[1]https://en.wikipedia.org/wiki/Cathode_ray_tube
[2]https://en.wikipedia.org/wiki/Raster_scan
[3]https://en.wikipedia.org/wiki/Horizontal_blanking_interval
[4]https://en.wikipedia.org/wiki/Vertical_blanking_interval
[5]https://en.wikipedia.org/wiki/Analog_television#Structure_of_a_video_signal
[6]https://en.wikipedia.org/wiki/Overscan
-
crt
+關(guān)注
關(guān)注
2文章
82瀏覽量
36487 -
數(shù)字顯示
+關(guān)注
關(guān)注
0文章
33瀏覽量
19320 -
光電轉(zhuǎn)換
+關(guān)注
關(guān)注
1文章
101瀏覽量
23766 -
同步信號(hào)
+關(guān)注
關(guān)注
0文章
17瀏覽量
10261 -
電視系統(tǒng)
+關(guān)注
關(guān)注
0文章
15瀏覽量
8535
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論