999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種通信終端LCD屏的驅動設計和移植

2018-02-07 05:45:28
艦船電子工程 2018年1期
關鍵詞:嵌入式信號設備

謝 聰

(武漢船舶通信研究所 武漢 430079)

1 引言

通信顯示終端是通信系統及設備的重要組成部分,通常具有一定的信息處理能力和對外通信網絡接口,提供相關設備信息的顯示功能以及人機交互功能。目前觸屏顯示設備主要基于X86系列處理器,其驅動及應用軟件系統與PC系統類似具有良好的復用性只需部署即可使用,作為通信設備的顯示終端為兼顧系統穩定性、低功耗、小型化等特性,為此需選用嵌入式處理器開發通信智能控制顯示終端,來更好的滿足上述要求,但在嵌入式終端設備的軟件平臺及系統應用方面沒有成熟的商業化平臺,因此,通用通信智能控制顯示終端的軟件系統開發是設備實現的關鍵,而底層的驅動開發及移植是實現的軟件基礎。本文主要就通信領域的智能控制顯示終端的觸屏顯示設備的LCD原理及其驅動開發等方面進行了詳細介紹,重點分析了終端設備顯示控制器的寄存器設置以及控制器顯示模塊的驅動實現方法,結合選型的工業液晶屏時序要求在嵌入式系統上進行移植和測試驗證,為實現具有自主可控的智能通信控制顯示終端及平臺提供基礎支撐和技術保障。

2 顯示終端原理概述

2.1 顯示屏原理

TFT-LCD(薄膜晶體管液晶顯示器),成為目前最為主流的液晶顯示器類型,廣泛應用于桌面顯示器、筆記本電腦和眾多嵌入式設備中。邏輯上顯示屏所顯示的一幅完整畫面即一個幀(frame),在系統內存中用一段存儲空間(幀緩沖設備)與整個顯示區域對應,應用通過改變該幀緩沖(FrameBuffer)的內容,從而改變顯示屏的顯示內容;顯示屏上的每一像素點都與幀緩沖設備里的某一位置對應,鑒于計算機顯示的顏色是通過RGB值來表示的,則必須給出相應的幀緩沖中RGB碼值來實現顯示屏在屏幕某一像素點顯示某種顏色的效果[1~2]。物理上TFT-LCD液晶屏由顯示屏、信號驅動部件、背光源等組成,其最重要的信號驅動部件由LCD控制器、LCD時序控制器、源驅動器/柵極驅動器構成,目前LCD控制器多集成在處理器中,專門用于液晶屏的接口,可以獨立地對屏提供同步時序信號和顯示數據信號;時序控制器是信號驅動部件中負責時序管理的控制單元,它直接控制著屏中的驅動部件(LCD驅動器)保證其輸出正確的控制時序,實現LCD控制器與LCD驅動器間的信號時序轉換功能;LCD驅動器主要用來生成屏所需要的各種驅動信號,分為柵極驅動器(Gate Driver)和源驅動器(Source Driver)[3],其物理組成框圖見圖1。

圖1 顯示屏物理組成示意框圖

一般LCD驅動器所需要的輸入時序信號眾多,且不同的LCD驅動器所需要的輸入時序信號不盡相同,以下信號是所有LCD驅動器所必需的,如表1。

表1 LCD信號功能表

2.2 顯示終端平臺組成

本文涉及的通信終端采用目前主流ARM Cor?tex處理器、液晶觸摸顯示屏、嵌入式Linux操作系統等構建顯示終端基礎平臺,為上層基于QT等GUI工具開發的通信監控應用提供運行環境。

2.2.1 硬件組成

硬件平臺采用三星公司的S5PV210芯片為微處理器,S5PV210采用的是主頻可達到1G Hz的ARM Cortex-A8內核,具有64/32位內部總線結構,32/32KB的數據/指令一級緩存,512KB的二級緩存,可實現每秒2億條指令集的運算能力。支持XGA(1027*768)級別LCD顯示,其內置LCD控制器可以傳輸顯示數據和產生控制信號,接口包含行掃/時鐘/使能控制信號和RGB數據信號,通過I2C和中斷腳方式支持電容和電阻屏[4~6];液晶屏選用日立工業屏KOE TX18D200VM0EAA,它是由JDI公司生產的5寸TFT類型的LCD,支持VGA接口,4:3格式,分辨率為640*480像素,262K色(R、G、B 6BIT),顯示響應時間不大于45ms[7]。

2.2.2 基礎軟件組成

底層基礎軟件基于嵌入式Linux內核和Fram?buffer機制進行驅動設計與移植。

3 軟件設計

3.1 顯示屏數據組織

LCD上一副畫面稱為一幀,每幀由多個行組成,多個像素組成了一行,多位(bit)數據組成了每個像素的顏色。對于262K色的KOE TX13D200VM5BAA LCD,每個像素由18bit來表示R、G、B各6bit,稱為18BPP。當VSYNC信號到來,顯示器從屏幕的最左上方開始,從左往右一行行的顯示每個像素的數據,當顯示到一行最右邊時,HSYNC信號到來,隨即跳到下一行的最左邊開始顯示下一行;當所有行顯示完后,VSYNC信號重新到來,跳到最左上方顯示下一幀[8]。

3.2 內存數據組織

通常LCD控制器支持多種幀緩沖區的內存格式,如:25BPP Display(A888)、32BPP(8888)、24BPP Display(A887)、24BPP Display(888)等,實際上在Linux驅動程序里用得比較多的是32BPP(8888)的內存格式組織圖象數據,即用32位數據來表示一個像素的顏色,每種原色(R、G、B)使用8位,還有8位分配給ALPHA。(ALPHA用于實現圖形漸變效果、半透明效果:0xff全透明0x00不透明)其32BPP(8888)格式在內存中像素的排列格式如表2。

表2 32BPP內存格式WSWP無效

控制器中的VDMA自動地從幀緩沖區中獲取視頻數據(如上述的32BPP(8888)內存格式),再由VPRCS接受來自VDMA的視頻數據后并將它們組合成指定的數據格式(例如24bpp或16bpp模式),經由控制器數據端口(RGB_VD,or SYS_VD)發送到LCD顯示,像素顏色值與VD[23:0]引腳的對應關系。

結合文獻[9]中介紹時序關系,LCD屏根據其時序設置,按這些信號有序并不停地讀取總線數據并顯示;

3.3 S5PV210顯示控制器寄存器設置

通過設置S5PV210的顯示控制器的寄存器,配置顯示緩沖區、時序、窗口、坐標等參數后,便可將所顯示的內容從顯示緩沖區中讀出屏中顯示[10],其寄存器說明見表3。

表3 CPU顯控寄存器組成表

寄存器的配置在操作系統內核中文件路徑為

/drivers/video/samsung/S3cfb_fimd6x.c中實現。其具體相關實現函數如下:

函數s3cfb_set_output:配置VIDCON0寄存器,實現視頻控制器的輸出格式(RGB);

函數s3cfb_set_display_mode:配置 VIDCON0寄存器,實現RGB的模式(Parallel RGB);

函數 s3cfb_set_timing:配置VIDTCON0、VIDT?CON1寄存器,根據實際LCD的時序圖設定VBPDE(YVU)、VBPD 、VFPD、VSPW、VFPDE(YVU)、HB?PD、HFPD、HSPW;

函 數 s3cfb_set_window_position:配 置 VI?DOSD0C和VIDOSD0B寄存器,設置窗口的左上角和右下角的位置;

函數s3cfb_set_window_size:配置 VIDOSD0C寄存器,設置窗口的大小(Height*Width);

函數s3cfb_set_buffer_size:配置VIDWxxADD2寄存器,設置虛擬屏幕的頁寬度(字節)。

3.4 幀緩沖驅動框架分析

幀緩沖設備驅動采用分層的設計方式,在內核空間里第一層是對幀緩沖設備文件層接口file_op?erations結構體進行填充(代碼實現在/drivers/video/fbmem.c),它向用戶空間提供/dev/fb*設備的訪問接口,用戶空間通過它繪制圖形。在內核空間里第二層是對幀緩沖設備驅動層接口fb_info結構體進行填充(代碼實現在/drivers/video/samsung/s3cfb.c),這是與架構相關代碼,初始化LCD控制器,注冊/注銷幀緩沖設備等,其中fb_ops結構體中的成員函數實現對LCD控制器硬件寄存器操作[11],具體示意圖見圖2。

圖2 函數組成圖

3.5 驅動設計和移植

幀緩沖設備驅動最重要的數據結構有定義在/include/linux/fb.h文件中的 fb_info、fb_var_screenin?fo、fb_fix_screeninfo、fb_ops等結構,以及定義在/linux/drivers/vedio/fbmem.c文件中的file_operations結構。

圖3 LCD初始化流程示意

fb_info結構中描述了幀緩沖設備全部內容,例如屬性、狀態和操作等,每個幀緩沖設備都有一個對 應 的 fb_info結 構 ,fb_var_screeninfo、fb_fix_screeninfo、fb_ops都包含在該結構中。其中fb_var_screeninfo結構描述了用戶可修改的顯示控制器參數,包括LCD分辨率、BPP、內存中像素顏色組織方式和時序參數等;fb_fix_screeninfo結構描述了用戶不能修改的顯示控制器參數,包括屏幕緩沖區的物理地址、長度等,該結構的成員需要在驅動程序中初始化和設置,其初始化過程見圖3;fb_ops結構是指向底層操作的函數指針結構體,它類似于file_operations結構實現文件設備操作;file_opera?tions結構是幀緩沖設備驅動的文件層操作接口[12]。在s3cfb_probe函數中,描述了LCD驅動實現的全部內容。s3cfb_lcd是描述LCD屏密切相關參數的結構體,在arch/arm/mach-s5pv210/mini210-lcds.c中實現,mini210_machine_init函數(定義在arch/arm/mach-s5pv210/mach-mini210.c),通 過 調 用mini210_get_lcd完成LCD屏密切相關參數的傳遞,那么移植LCD驅動的關鍵內容就在于修改s3cfb_lcd結構中的成員。s3cfb_lcd結構如下:

struct s3cfb_lcd{

int width;

int height;

int p_width;

int p_height;

int bpp;

int freq;

struct s3cfb_lcd_timing timing;

struct s3cfb_lcd_polarity polarity;

void(*init_ldi)(void);

void(*deinit_ldi)(void);

unsigned long args;

};

根據KOE TX13D200VM5BAA LCD屏的時序、像素、BPP、極性、頻率等參數,在arch/arm/mach-s5pv210/mini210-lcds.c中增加如下內容:

static struct s3cfb_lcd wvga_s70={

.width=640,

.height=480,

.p_width=102,//LCD屏的有效區域,非物理尺寸

.p_height=77,//LCD屏的有效區域,非物理尺寸

.bpp=32,

.freq=60,//刷新率

.timing={

.h_fp=100,

.h_bp=50,

.h_sw=10,

.v_fp=40,

.v_fpe=1,

.v_bp=4,//guess 4

.v_bpe=1,

.v_sw=1,//guess 1

},

.polarity={

.rise_vclk=0,//下降沿鎖寸數據(此參數是數據圖象清晰的關鍵參數)

.inv_hsync=0,

.inv_vsync=0,

.inv_vden=0,

4 測試驗證

4.1 編譯

完成以上內核代碼修改后,必須完成編譯才能進行測試。由于移植LCD屏并沒有涉及到驅動結構的變動,所以勿需修改Makefile、Kconfig文件,執行“make menuconfig”,出現配置內核界面,在主菜單里選擇<Exit>退出,輸入以下命令,開始編譯內核:#make zImage,編譯結束后,會在arch/arm/boot目錄下生成linux內核映象文件:zImage。

4.2 測試

將編譯好的LCD設備驅動下載到目標板,編寫應用測試程序lcd_test;進入測試程序源代碼目,使用命令行進行手工交叉編譯測試程序,生成lcd_test可執行文件:

#arm-linux-gcc-o lcd_test lcd_test.c

通過FTP,將編譯好的可執行文件下載到目標板。進入目標板上可執行文件所

測試結果如下圖,打開了5個FB,使用了透明度功能,5個窗口疊加效果如下在的目錄,改變可執行文件屬性:

#chmod+x lcd_test

執行文件:./lcd_test,窗口輸出的信息如下:

open framebuffer ok.

640,480,32bpp

[1511.469789] s3cfb s3cfb: win 0:pmem_start=0x3c331000

[1511.469803] s3cfb s3cfb: [fb0] dma:0x3c331000,cpu:0xe3000000,size:0x00465000

[1511.476159] s3cfb s3cfb: [fb1] dma:0x3a200000,cpu:0xffc00000,size:0x00177000

[1511.485200] s3cfb s3cfb: [fb3] dma:0x39c00000,cpu:0xffa00000,size:0x00177000

[1511.489190] s3cfb s3cfb: [fb4] dma:0x39e00000,cpu:0xff800000,size:0x00177000

set screeninfo ok

draw color ok

show window ok

實際LCD顯示圖型如圖4所示。

5 結語

LCD屏顯示及Linux幀緩沖架構在嵌入式Linux顯示中已廣泛應用,幀緩沖創建的不僅僅是面底層設備和上層應用的抽象,更是一種設計思想架構與應用模型,本文通過分析LCD屏以及控制器的原理、特點,結合嵌入式通信應用環境提出基于最新ARM-CcortexA8架構LCD控制器和觸屏的驅動移植開發方法,并在實際工作中有所應用與實現,隨著后續研發實現此驅動開發方法和相關技術適用于多種智能顯示終端的設計實現,具有較好的技術推廣和應用價值。

圖4 LCD顯示圖型

[1]馮國進.嵌入式Linux驅動程序設計從入門到精通[M].北京:清華大學出版社,2008:151-168.

[2]吳利剛.基于ARM驅動TFT-LCD模塊研究與應用[D].汕頭:汕頭大學,2011:8-15.

[3]王珊.TFT-LCD顯示芯片的驅動設計與研究[D].西安:西安電子科技大學,2014:9-16.

[4]葛耿育.S5PV210微處理器的啟動過程分析[J].計算機工程應用技術,2017,13(15):220-221.

[5]SamSung Electronics Co.,Ltd.S5PV210 RISC Micropro?cessorS5PV210_UM_REV1.1[EB/OL].http://www.sam?sungsemi.com,2010-5.

[6]劉龍,張云翠,申華.嵌入式Linux軟硬件詳解[M].北京:人民郵電出版社,2015:183-188.

[7] KOE.TX18D200VM0EAASpecifications[R].TaiWan:Kaohsiung Opto-Electronics Inc,2013.

[8]韋東山.嵌入式Linux應用開發[M].北京:人民郵電出版社,2008:200-201.

[9]王永濤,虞闖.嵌入式LCD裸機驅動設計與實現[J].沈陽理工大學學報,2016,35(6):3-4.

[10]友善之臂.Linux平臺下Mini210s裸機程序開發指南[EB/OL].http://www.arm9home.net,2012-10.

[11]陳磊.基于CK-CPU嵌入式平臺的LCD驅動的開發與實現[D].哈爾濱:哈爾濱工業大學,2012:23-29.

[12]楊斌斌.嵌入式Linux設備驅動程序的研究與開發[D].太原:太原理工大學,2009:53-59.

猜你喜歡
嵌入式信號設備
諧響應分析在設備減振中的應用
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
基于LabVIEW的力加載信號采集與PID控制
原來他們都是可穿戴設備
消費者報道(2014年7期)2014-07-31 11:23:57
主站蜘蛛池模板: 国产日韩精品欧美一区灰| 国产精品视频a| 国产免费好大好硬视频| 亚洲男人的天堂在线观看| 欧美一级高清片欧美国产欧美| 91精品伊人久久大香线蕉| 免费国产高清精品一区在线| 亚洲天堂成人在线观看| 农村乱人伦一区二区| 国产一区亚洲一区| 亚洲AV无码一区二区三区牲色| 美女被狂躁www在线观看| 国产黄在线观看| 欧美精品啪啪一区二区三区| 久久国产精品国产自线拍| 亚洲最大情网站在线观看| 久久国产香蕉| 久久99久久无码毛片一区二区| 久久久黄色片| 欧美色图第一页| 国产性生大片免费观看性欧美| 成年看免费观看视频拍拍| 好紧好深好大乳无码中文字幕| 国产精品999在线| 亚洲成av人无码综合在线观看| 国产第二十一页| 精品91视频| 亚洲永久免费网站| 国产高清不卡视频| 免费黄色国产视频| 成人日韩精品| 中文精品久久久久国产网址| 国产h视频在线观看视频| 一级毛片无毒不卡直接观看| 亚洲AV成人一区国产精品| 色婷婷电影网| 91视频精品| 欧美一区二区啪啪| 亚洲人成网站观看在线观看| 又大又硬又爽免费视频| 欧美日韩国产在线观看一区二区三区| 狠狠综合久久| 免费人成网站在线观看欧美| 成人精品视频一区二区在线| 在线毛片免费| 日韩一二三区视频精品| 无码网站免费观看| 精品国产91爱| 国内精品视频| 在线观看的黄网| 不卡无码网| 香蕉eeww99国产在线观看| 亚洲91在线精品| 五月激情婷婷综合| 91 九色视频丝袜| 激情视频综合网| 91亚洲精选| 亚洲区一区| 久久免费视频播放| 在线免费观看AV| 又猛又黄又爽无遮挡的视频网站| 四虎在线观看视频高清无码 | 国产一区成人| 日韩欧美国产另类| 视频一区亚洲| 亚洲成a∧人片在线观看无码| 黄色三级网站免费| 538国产在线| 亚洲中文在线视频| 四虎亚洲国产成人久久精品| 热久久综合这里只有精品电影| 色久综合在线| 国产成人免费观看在线视频| 在线中文字幕日韩| 国产av剧情无码精品色午夜| 国产精品短篇二区| 22sihu国产精品视频影视资讯| 国产嫖妓91东北老熟女久久一| 久久久噜噜噜| 精品91在线| 国产美女丝袜高潮| 手机在线免费毛片|