基于SEP4O2O的Linux frame buffer驅動設計
0 引言
隨著世界經濟的迅速發(fā)展,液晶顯示屏廣泛應用于手機、PDA、金融終端等電子產品上,而在嵌入式電子領域,Linux操作系統(tǒng)占有越來越大的市場份額。因而本文提出在嵌入式Linux平臺上實現液晶顯示器的功能,詳細敘述了液晶顯示屏在SEP4020微處理器為基礎的平臺上的Framebuffer驅動程序設計。
1 液晶顯示器原理
1.1 液晶顯示器種類
液晶顯示器(LCD)根據驅動方式可以分為靜態(tài)驅動、簡單矩陣驅動以及主動矩陣驅動三種。其中,簡單矩陣型又可以再分為扭轉向列(TN)和超扭轉式向列型(STN)兩種,而主動矩陣則以薄膜式晶體管(TFT)為主流。
TN型技術是LCD中最基本的,其他種類的LCD都以TN型為基礎改進而得。TN型LCD顯示質量很差,色彩單一、對比度低,反應速度很慢,故主要應用于簡單的數字符與文字的顯示,如電子表以及電子計算器等。STN LCD的顯示原理與TN類似,區(qū)別在于TN型的液晶分子將入射光旋轉90°,而STN可將入射光旋轉180°到270°。STN改善了TN視角狹小的缺點,并提高了對比度,顯示品質較TN高。
TFT型LCD中,晶體管矩陣依顯示信號開啟或者關閉液晶分子的電壓,使液晶分子軸轉向而成亮或者暗的對比,避免了顯示器對電場效應的依靠。因此,TFTLCD顯示質量較TN/STN更佳,畫面顯示對比度可達150:1以上,反應速度逼近30ms甚至更快,適用于PDA、筆記本電腦、數碼相機、MP4等。
1.2 液晶顯示器時序
圖1為LCD的典型時序圖。時序圖中VFRAME為幀同步信號,VLINE為行同步信號,VCLK為像素時鐘信號(用于鎖存圖像數據的像素時鐘),VM為數據有效標志信號,VD為圖像的數據信號。
作為幀同步信號的VFRAME,每發(fā)出一個脈沖,都意味著新的一屏圖像數據開始發(fā)送。而作為行同步信號的VLINE,每發(fā)出一個脈沖都表明新的一行圖像資料開始發(fā)送。在幀同步以及行同步的頭尾都必須留有回掃時間。
2 硬件平臺
本設計采用的硬件平臺是基于東南大學國家專用集成電路系統(tǒng)工程中心研發(fā)的SEP4020微處理器的開發(fā)板。該處理器是使用0.18μ m標準CMOS的工藝設計,內嵌ASIX CORE(32位RISC內核兼容ARM720T,帶8 kB指令數據cache和全功能MMU),采用馮諾依曼結構的一款微處理器。該處理器集成了液晶控制模塊(LCDC),此模塊兼容AMBA規(guī)范,有AHB MASTER和AHB SLAVE接口,分別用于讀取需要顯示的數據和軟件配置。經過軟件配置后,LCDC能自己獨立工作,而不再需要內核的再次參與,從而節(jié)省內核的處理時間。工作過程是LCDC使能后申請系統(tǒng)總線,獲得總線使用權后讀取需要顯示的數據,數據經過相應算法的處理就得到滿足時序要求的信號,送到LCDC顯示驅動器。
LCDC使用內嵌的DMA方式進行數據操作,配備一個深度為16的32位FIFO用于緩存顯示數據,支持1、2、4位的STN灰度顯示和16位TFT彩色顯示,分辨率軟件可配置。相關的需要配置的寄存器有:
SSA為屏幕起始寄存器;SIZE為屏幕尺寸寄存器;PCR為面板配置寄存器;HCR為水平配置寄存器;VCR為垂直配置寄存器:PWMR為對比度控制器;LECR為使能控制寄存器;DMACR為DMA控制寄存器。
評論