基于FPGA/CPLD的嵌入式VGA顯示系統(tǒng)
幾種常用的時(shí)序參數(shù)如表 1和表2 所示,首先,根據(jù)顯示器的性能選擇一種合適的VGA模式,然后由象素時(shí)鐘頻率和圖像分辨率計(jì)算出行總周期數(shù),再把表 1和表 2中給出的 a、 b、c、d各時(shí)序段的時(shí)間按照象素計(jì)數(shù)脈沖源頻率折算成時(shí)鐘周期數(shù)。在 FPGA/CPLD中用計(jì)數(shù)器和觸發(fā)器,以計(jì)算出的各時(shí)序段時(shí)鐘周期數(shù)為基準(zhǔn),產(chǎn)生不同寬度和周期的脈沖信號(hào),再利用它們的邏輯組合構(gòu)成圖 2和圖 3中的 a、b、c、d各時(shí)序段以及 ADV7125的空白信號(hào) BLANK和同步信號(hào) SYNC。
一個(gè)示例就是 60Hz時(shí) 1280×1024分辨率顯示的 VESA標(biāo)準(zhǔn),在 60Hz時(shí),屏幕每
16.67毫秒更新一次。這個(gè)標(biāo)準(zhǔn)制定了幀大小,用它來(lái)定義分辨率和回掃次數(shù)之間的關(guān)系。對(duì)于分辨率大小為 1280×1024來(lái)說(shuō),幀的大小為 1688×1066,這個(gè)大小與像素時(shí)鐘(Pixel Clock)有關(guān),所謂像素時(shí)鐘就是對(duì)像素的刷新頻率。像素時(shí)鐘為 1688×1066×60Hz 或者 108 兆 Hz(MHz)時(shí),每個(gè)像素的刷新頻率也就是大約 9.26納秒,那么行頻就為 60×1066=63960 行/秒,也就是用顯示器的幀率乘以?huà)呙杈€數(shù)量??梢杂脦笮〉玫娇v向回掃次數(shù),為了得到縱向同步長(zhǎng)度(Sync Length),可以從縱向幀大小減去縱向分辨率,也就是 1066-1024=42。這樣,縱向回掃花費(fèi)的時(shí)間和在屏幕上繪出 42 條線的時(shí)間相同,對(duì)于縱向回掃來(lái)說(shuō)需要的時(shí)間為 42×1688×9.26 納秒(656 微秒)。
在顯示時(shí)序段( Display interval c),數(shù)據(jù)讀寫(xiě)控制器從數(shù)據(jù)緩存區(qū)讀取像素顏色,用這些顏色來(lái)控制輸出設(shè)備(顯示器)的亮度。一幀圖像就準(zhǔn)確的顯示到 VGA顯示器上。
表 1:VGA行時(shí)序說(shuō)明
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論