ARM嵌入式平台的VGA介面設計

2021-04-13 02:09:15 字數 4524 閱讀 4880

1 vga介面介紹

近年來,業界制定出了眾多數位化的顯示介面協議,較為典型的是dvi(digital visual inte***ce)。由於數字介面的標準還未統一,廠商支援各自的標準,導致數字介面的標準遲遲未定。vga介面是乙個模擬訊號介面。作為在顯示領域多 年的介面標準,直到今天它仍是所有顯示終端最為成熟的標準介面,現在某些高階的電視也支援vga介面。

15針vga介面訊號定義如表1所列。除了2個nc訊號、3根顯示資料匯流排和5個gnd訊號,比較重要的訊號是3個rgb彩色分量訊號和2個掃瞄同步訊號 hsync和vsync。vga介面中彩色分量採用rs343電平標準。rs343電平標準的峰峰值電壓為1 v。該標準定義的4個電平範圍是:

白電平--+0.714 v;

黑電平--+0.054 v;

消隱電平--0 v;

同步電平---0.286 v。

2 s3c2410 lcd控制器簡介

三星公司的arm9晶元s3c2410功能強大,價效比高,在目前的嵌入式產品中得到了廣泛的應用。s3c2410帶有lcd控制器,可以很方便地控制驅動掃瞄式介面的lcd顯示。

2.1 引腳功能資訊

lcd控制器提供了掃瞄式資料傳輸引腳和時序控制引腳,具體描述如下:

vframe/vsync--lcd控制器和lcd驅動器之間的幀同步訊號。該訊號告訴lcd屏新一幀開始了。lcd控制器在一幀顯示完成後立即插入乙個vframe訊號,開始新一幀的顯示。

vline/hsync--lcd控制器和lcd驅動器之間的行同步脈衝訊號。該訊號用於lcd驅動器將水平線(行)移位暫存器的內容傳送給lcd屏顯示。lcd控制器在整行資料移人lcd驅動器後,插入乙個vline訊號。

vclk--lcd控制器和lcd驅動器之間的畫素時鐘訊號。lcd控制在vclk的上公升沿處送出資料,lcd驅動器在vclk的下降沿處取樣。

vm/vden--lcd驅動器的ac訊號。vm訊號被lcd驅動器用於改變行和列的電壓極性,從而控制畫素點的顯示。vm訊號可以與每幀同步,也可以與可變資料的vline訊號同步。

vd[23:0]--lcd畫素資料輸出埠。

2.2 暫存器

s3c2410的lcd控制暫存器主要有:lcdcon1暫存器、lcdcon2暫存器、lcdcon3暫存器、lcdcon4暫存器、lcdcon5寄 存器。這些暫存器的設定與顯示屏資訊、控制時序和資料傳輸格式等密切相關,在設計中需要根據顯示裝置的具體資訊正確設定這些暫存器才能使s3c2410正 常控制驅動不同的顯示屏。

2.3 內部結構

3 vga介面設計

3.1 adv7120簡介

3.2 原理圖設計

vga介面的同步訊號和lcd掃瞄式介面的同步訊號是一致的。利用adv7120可以方便地將s3c24l0的lcd掃瞄式介面轉換成vga介面,電路原理如圖2所示。

s3c2410處理器介面中的同步掃瞄訊號hsync和vsync直接接到vga介面,vden訊號(顯示資料有效訊號)則被用於控制adv7120芯 片。由於adv7120對參考電平的要求精度很高,不能以電阻分壓電路代替。在此採用了1.2 v電壓基準晶元ad589來產生參考電壓。該電路設計中需要注意的是,在pcb布板時要將模擬地和數字地分開。

4 s3c2410相關暫存器設定

以解析度為640×480、重新整理頻率為60 hz、16位彩色顯示模式為例,根據圖3所示vga介面同步訊號時序,介紹s3c2410中lcdcon1~lcdcon5暫存器的設定。

4.1 lcdconl暫存器

linecnt:行計數器的狀態位。唯讀,不用設定。

clkval:確定vclk頻率的引數。公式為vclk=hclk/[(clkval+1)×2],單位為hz。筆者所用的硬體系統hclk=100 mhz,640×480的顯示屏需要vclk=20 mhz,故需設定clkval=1。

mmode:確定vm的改變速度。在此選擇mmode=o,為每幀變化模式。

pnrmode:確定掃瞄方式。選擇pnrmode=0x3,為tft lcd面板掃瞄模式。

bppmode:確定bpp(每畫素位數)模式。在此選擇bppmode=0xc,為tft 16位模式。

envid:資料輸出和邏輯訊號使能控制位。選擇envid=1,為允許資料輸出和邏輯控制。

4.2 lcdcon2暫存器

vbpd:確定幀同步訊號和幀資料傳輸前的一段延遲時間,是幀資料傳輸前延遲時間和行同步時鐘間隔寬度的比值,如圖3,vbpd=t3/t6=1.02 ms/31.77μs=32。

lineval:確定顯示的垂直方向尺寸。公式:lineval=ysize-1=479。

vspw:確定幀同步時鐘脈衝寬度,是幀同步訊號時鐘寬度和行同步時鐘間隔寬度的比值。如圖3,vspw=t2/t6=0.06 ms/31.77μs=2。

4.3 lcdcon3暫存器

hbpd:確定行同步訊號和行資料傳輸前的一段延遲時間,描述行資料傳輸前延遲時間內vclk脈衝個數,如圖3,vbpd=t7×vclk=1.89 μs×25mhz=47。

hozal:確定顯示的水平方向尺寸。公式hozal=xsize-1=639。

4.4 lcdcon4暫存器

hspw:確定行同步時鐘脈衝寬度。描述行同步脈衝寬度時間內vclk脈衝個數,如圖3,hspw=3.77μs×25 mhz=94。

4.5 lcdcon5暫存器

vstatus:垂直方向狀態。唯讀,不用設定。

hstatus:水平方向狀態。唯讀,不用設定。

bpp24bl:確定顯示資料儲存格式。此處設定bpp24bl=0x0,為小端模式存放。

frm565:確定16位資料輸出格式。此處設定frm565=0x1,為5:6:5格式輸出。

invvclk:確定vclk脈衝有效邊沿極性。根據螢幕資訊確定,此處選擇invvclk=0xl,vclk上公升沿到來時資料傳輸開始。

invvllne:確定hsync脈衝的極性。由圖3可知,為負極性,設定invvline=0x1選擇負極性脈衝。

invvframe:確定vsync脈衝的極性。由圖3可以看出,為負極性,故設定invvframe=0x1選擇負極性脈衝。

invvd:確定資料輸出的脈衝極性。根據螢幕資訊確定,此處設定invvd=0x0選擇正極性脈衝。

invvden:確定vden訊號極性。根據螢幕資訊確定,此處設定invvden=0x0為正極性脈衝。

invpwren:確定pwren訊號極性。根據螢幕資訊確定,此處設定nvpwren=0x0為正極性脈衝。

invlend:確定lend訊號極性。根據螢幕資訊確定,此處設定invlend=0x0為正極性脈衝。

pwren:pwren訊號輸出允許。設定pwren=0xl,允許pwren輸出。

enlend:lend輸出訊號允許。設定enlend=0x1,允許lend輸出。

bswp:位元組交換控制位。根據各自需要設定,此處設定bswp=0x0,禁止位元組交換。

hwswp:半字交換控制位。根據各自需要設定,此處設定hwswp=0xl,使能半位元組交換。

5 討論與總結

s3c2410處理器能夠驅動24位顏色模式的vga介面,但當處理器資料匯流排負載過大時,顯示效果就不太理想。具體分析所需資料頻寬如下:

s3c2410處理器工作在640×480×60 hz×24位(解析度為640×480、重新整理頻率為60 hz、24位色彩)模式下的資料頻寬為:640×480×60×4/(1 024×1 024)=70.3mb/s(24位顏色實際占用32位資料量),這些資料都需要利用dma方式通過系統的資料匯流排從sdram中獲得。而s3c2410 處理器在100 mhz的匯流排頻率下,32位記憶體的峰值頻寬是100×32/8=400mb/s,實際頻寬也就100~200 mb/s。那麼70.3 mb/s的顯示資料對於s3c2410處理器過於沉重了,顯示器的螢幕經常會出現短暫的黑屏。這是因為系統匯流排太忙,lcd掃瞄式介面的資料跟不上,掃瞄 時鐘的頻率暫時變慢導致crt顯示器的同步訊號不符合規範所致。若用16位顏色模式,則資料頻寬減為640×480×60×2/(1 024×1 024)=35.2mb/s。實際測試中,工作在16位顏色模式下,可以正常顯示60 hz下的640×480的vga圖形。

綜上分析,如果要支援高解析度和高重新整理率的顯示,需要比較大的資料頻寬,對處理器的頻率和匯流排頻率要求較高。目前的嵌入式處理器在這些方面有很大的限制, 不過本設計可以完全支援16位色彩下640×480×60 hz顯示模式的crt顯示,並且如果採用lcd作為顯示介面,lcd對重新整理率的要求和crt顯示器不同,lcd可以在重新整理率為30 hz的情況下正常顯示。本設計對解決基於arm的嵌入式系統中大螢幕顯示方面的問題有很大的實用價值和借鑑意義。

ARM嵌入式的VGA介面製作

看了這篇文章,覺得不錯,雖然是2410 時代的文章了,現在s5pv210 早已經把vga 1024 768 做的很生猛成熟了,但是這篇文章還有學習作用的。大多數嵌入式產品的顯示終端都選擇lcd,但在某些需要大螢幕顯示的應用中,工業級lcd的 比較昂貴,且現有的大螢幕顯示器 包括crt顯示器和lcd顯...

嵌入式,ARM掃盲

炮製了一篇,基本是拿來主義,不算技術,只能算雜談。注 此處正常模式和普通模式是我生造的術語,沒有確定是否存在,各位請暫且忽略。arm異常處理過程 arm的異常,包括復位 未定義指令 軟體中斷 資料訪問中止 外部中斷請求 快 速中斷請求。處理過程 1 儲存現場,包括處理器當前狀態 中斷遮蔽位 cpsr...

ARM嵌入式實驗

問題 在startup.s中增加函式,由c程式呼叫,以此取得彙編中相關引數的設定值。獲取pll中m,p值,c程式呼叫彙編函式 在c語言中,要extern 乙個函式宣告即可,然後這個函式在彙編裡面實現。在彙編裡面,用export 把c語言定義的函式名引進來,再開始編寫函式名開始的段 實現 c程式呼叫 ...