亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種新型液晶顯示系統(tǒng)的設(shè)計(jì)

        2016-05-04 01:42:33陳鋒,葉一枝,劉家樂(lè)
        自動(dòng)化儀表 2016年4期
        關(guān)鍵詞:液晶屏驅(qū)動(dòng)程序內(nèi)核

        ?

        一種新型液晶顯示系統(tǒng)的設(shè)計(jì)

        0引言

        隨著現(xiàn)代電子技術(shù)的不斷發(fā)展,嵌入式技術(shù)已經(jīng)廣泛地滲透到人們生活的各個(gè)方面,各種新型的嵌入式設(shè)備在應(yīng)用數(shù)量和應(yīng)用場(chǎng)合上已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)了通用計(jì)算機(jī)。在一些需要交互性和內(nèi)存空間的場(chǎng)合,傳統(tǒng)的基于微處理控制單元(MCU)+液晶顯示模塊的解決方案就不能很好地滿足要求。此外,ARM技術(shù)的發(fā)展已經(jīng)趨于成熟,內(nèi)部采用的Linux操作系統(tǒng)由于擁有性能優(yōu)良、源碼開放、內(nèi)核定制、運(yùn)行速度快等優(yōu)點(diǎn)[1],逐漸在對(duì)傳統(tǒng)解決方案的更新?lián)Q代中突顯優(yōu)勢(shì)。

        本文設(shè)計(jì)了一種新型的基于ARM+LCD顯示系統(tǒng)的解決方案,其中采用性價(jià)比較高的STN-LCD代替常見(jiàn)但較貴的TFT-LCD作為顯示模塊。系統(tǒng)中編寫的基于GPIO的液晶屏驅(qū)動(dòng)程序的移植性很強(qiáng),可將其移植到類似的液晶屏顯示系統(tǒng)中,并為一些對(duì)性價(jià)比要求較高的場(chǎng)合提供參考和實(shí)踐價(jià)值。

        1硬件平臺(tái)搭建

        系統(tǒng)以O(shè)MAP-L138中的ARM9為核心搭建硬件平臺(tái),將采集到的數(shù)據(jù)通過(guò)內(nèi)嵌的TCP/IP通信鏈路傳送給基于STN-LCD的液晶屏,并實(shí)時(shí)顯示。此系統(tǒng)采用模塊化獨(dú)立設(shè)計(jì),從功能上可以分成三個(gè)模塊:數(shù)據(jù)采集模塊、數(shù)據(jù)轉(zhuǎn)發(fā)模塊和數(shù)據(jù)顯示模塊。其系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

        圖1 系統(tǒng)結(jié)構(gòu)框圖

        其中,數(shù)據(jù)采集模塊可以根據(jù)需要和實(shí)際情況進(jìn)行設(shè)計(jì)(包括ARM端的程序?qū)崿F(xiàn)和DSP端的程序?qū)崿F(xiàn))。本實(shí)驗(yàn)中,采用在ARM核運(yùn)行的示例程序進(jìn)行模擬實(shí)現(xiàn)。

        1.1OMAP-L138介紹

        核心處理模塊采用TI公司推出的雙核低功耗處理器OMAP-L138,其芯片內(nèi)部集成了300 MHz的ARM926EJ和300 MHz的TMS320C674X浮點(diǎn)DSP,片上資源也相當(dāng)豐富,包括多種通信接口,芯片的集成度非常高[2]。本實(shí)驗(yàn)主要介紹基于ARM核實(shí)現(xiàn)的顯示系統(tǒng),包括采集、轉(zhuǎn)發(fā)和顯示。此外,系統(tǒng)的數(shù)據(jù)采集模塊也可使用DSP實(shí)現(xiàn)。

        1.2液晶屏顯示

        液晶顯示器(liquid crystal display,LCD)是一種采用了液晶控制透光度技術(shù)來(lái)實(shí)現(xiàn)色彩的顯示器。LCD有很多類型,如TN、STN、TFT、OLED等[3]。TN、STN和TFT型顯示器因?yàn)橐壕Х肿优まD(zhuǎn)原理的不同,在彩化、動(dòng)畫和視角上都有明顯的差異,使得這3類產(chǎn)品的應(yīng)用范圍有所不同。其中,STN較于TN畫面切換速度快,較于TFT成本低,因此在信息控制設(shè)備中應(yīng)用廣泛[4]。基于性能和成本的考慮,本實(shí)驗(yàn)采用STN-LCD來(lái)進(jìn)行設(shè)計(jì)。

        2系統(tǒng)軟件設(shè)計(jì)

        系統(tǒng)硬件平臺(tái)的搭建相對(duì)簡(jiǎn)單,核心為軟件設(shè)計(jì)。系統(tǒng)的軟件設(shè)計(jì)主要分為最小自啟動(dòng)系統(tǒng)設(shè)計(jì)、液晶屏驅(qū)動(dòng)模塊及應(yīng)用程序設(shè)計(jì)和內(nèi)部通信鏈路設(shè)計(jì)3個(gè)部分。首先,搭建一個(gè)自啟動(dòng)的最小系統(tǒng),讓整個(gè)平臺(tái)能夠自動(dòng)地運(yùn)行;接著,編寫液晶屏的驅(qū)動(dòng)程序,以及上層的液晶屏應(yīng)用程序;最后,調(diào)用嵌入式系統(tǒng)內(nèi)部的TCP/IP協(xié)議,打通程序之間的通信鏈路。

        2.1最小自啟動(dòng)系統(tǒng)

        一個(gè)典型的嵌入式Linux系統(tǒng)按照存儲(chǔ)空間的劃分通常包括引導(dǎo)區(qū)、內(nèi)核區(qū)和文件系統(tǒng)區(qū)。引導(dǎo)區(qū)存放引導(dǎo)加載程序Boot Loader與系統(tǒng)參數(shù);內(nèi)核區(qū)存放特定嵌入式平臺(tái)定制的Linux內(nèi)核;文件系統(tǒng)區(qū)存放根文件系統(tǒng),用戶應(yīng)用程序就存放在文件系統(tǒng)區(qū)中。

        在本實(shí)驗(yàn)中,使用TI官方提供的通用的Boot Loader(U-BOOT)以及Linux3.3.0的內(nèi)核鏡像文件uImage,主要對(duì)根文件系統(tǒng)中的幾個(gè)文件進(jìn)行修改。一方面,修改/etc/inittab文件。注釋語(yǔ)句S:2345:respawn:/sbin/getty 115200 ttyS2。增加語(yǔ)句:S:2345:respawn:/sbin/mingetty-autologin=root ttyS2,使之能自動(dòng)進(jìn)入擁有root權(quán)限的系統(tǒng)。另一方面,修改/etc/profile文件。首先在最后一行添加語(yǔ)句:insmod /home/root/lcd.ko,用來(lái)加載編譯的液晶顯示屏的驅(qū)動(dòng)程序。然后添加語(yǔ)句:/home/root/thread_server&,用來(lái)運(yùn)行上層的數(shù)據(jù)轉(zhuǎn)發(fā)程序。最后添加以下語(yǔ)句:/home/root/setup/lcddemo &,以啟動(dòng)LCD屏的上層應(yīng)用程序。自此,通過(guò)串口調(diào)試助手,即可在PC上看到系統(tǒng)啟動(dòng)過(guò)程打印的信息,并正常地自動(dòng)運(yùn)行程序。

        2.2液晶屏驅(qū)動(dòng)模塊及應(yīng)用程序

        2.2.1XRD G160160D26

        欣瑞達(dá)電子的XRD G160160D26,是一款在工業(yè)控制上普遍應(yīng)用的液晶顯示模塊,使用UC1698作為液晶顯示控制器。液晶屏的外形尺寸為83.8 mm×78.5 mm×11.6 mm,點(diǎn)陣為160 mm×160 mm,其支持的工作溫度為-40~+80 ℃,引腳數(shù)為17個(gè)。引腳的分類主要包括以下三類:控制引腳、數(shù)據(jù)引腳和電源引腳。接口引腳定義如表1所示。

        表1 接口引腳

        2.2.2液晶屏驅(qū)動(dòng)模塊

        設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)內(nèi)核和系統(tǒng)硬件的接口,是嵌入式系統(tǒng)不可或缺的組成部分。設(shè)備驅(qū)動(dòng)程序?yàn)閼?yīng)用程序隱藏了硬件實(shí)現(xiàn)的細(xì)節(jié),使其可以像操作普通文件一樣操作外圍設(shè)備。設(shè)備驅(qū)動(dòng)程序在內(nèi)核中的存在方式主要有兩種:一種是直接編譯到內(nèi)核中;另一種是游離于內(nèi)核而不占用系統(tǒng)資源,在需要時(shí)動(dòng)態(tài)加載,不用時(shí)又可以卸載[5]。本實(shí)驗(yàn)中選擇的是第二種,將驅(qū)動(dòng)程序做成一個(gè)模塊,以增加程序的靈活性和可移植性。

        在本實(shí)驗(yàn)中,基于GPIO的字符設(shè)備的驅(qū)動(dòng)模塊主要包括字符設(shè)備的驅(qū)動(dòng)程序、對(duì)GPIO管腳的配置文件,以及對(duì)驅(qū)動(dòng)模塊的編譯文件3個(gè)部分,分別集成在lcd.c、lcd.h和Makefile這3個(gè)文件中。

        字符設(shè)備的驅(qū)動(dòng)程序包括以下幾個(gè)部分:第一,字符設(shè)備驅(qū)動(dòng)模塊的加載函數(shù)static int __init lcd_init(void),實(shí)現(xiàn)設(shè)備號(hào)的申請(qǐng)以及向內(nèi)核注冊(cè)驅(qū)動(dòng)程序,當(dāng)使用insmod加載模塊時(shí)被調(diào)用;第二,字符設(shè)備驅(qū)動(dòng)模塊的卸載函數(shù)static int __exit lcd_exit(void),實(shí)現(xiàn)對(duì)設(shè)備號(hào)的釋放以及對(duì)驅(qū)動(dòng)程序的注銷;第三,字符設(shè)備驅(qū)動(dòng)模塊的file_operations結(jié)構(gòu)體及其成員函數(shù)[6]。本實(shí)驗(yàn)中定義的一個(gè)file_operations實(shí)例如下所示:

        static struct file_operations lcd_fops={

        .owner=THIS_MODULE,

        .open=lcd_open,

        .release=lcd_release,

        .unlocked_ioctl=lcd_ioctl,

        };

        其中,在static long lcd_ioctl(struct file *file,unsigned int cmd,unsigned long arg)的I/O控制函數(shù)中,實(shí)現(xiàn)對(duì)GPIO的接口,將對(duì)LCD屏的調(diào)用解析成lcd_outcmd()和lcd_outdata()兩個(gè)函數(shù)。

        對(duì)GPIO管腳的配置文件包括以下幾個(gè)部分:第一,設(shè)置復(fù)用管腳函數(shù)int pinmux_seup(unsigned char pinmux_num),使液晶顯示模塊的控制引腳和數(shù)據(jù)引腳處于GPIO的功能;第二,設(shè)置管腳數(shù)據(jù)流方向函數(shù)int gpio_setdir(unsigned char lcd_pin),使對(duì)應(yīng)的引腳處于要求的輸入或者輸出狀態(tài);第三,輸出數(shù)據(jù)函數(shù)int lcd_outdata(unsigned char val),用來(lái)解析字符設(shè)備的驅(qū)動(dòng)程序的lcd_ioctl函數(shù)中cmd=1時(shí)的情況;第四,輸出命令函數(shù)int lcd_outcmd(unsigned char val),用來(lái)解析字符設(shè)備的驅(qū)動(dòng)程序的lcd_ioctl函數(shù)中cmd=0時(shí)的情況。

        在Linux中,驅(qū)動(dòng)程序的編譯和鏈接規(guī)則由Makefile指定,在基本的框架下改動(dòng)一部分關(guān)鍵信息即可。程序如下所示:

        ifneq($(KERNELRELEASE),)

        obj-m := lcd.o

        else

        KDIR := /home/tronlong/linux-3.3.0

        all:

        make-C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux

        clean:

        rm -f *.ko *.o *.mod.o *.mod.c

        endif

        其中,lcd.o是實(shí)際設(shè)備驅(qū)動(dòng)程序的模塊,KDIR表示內(nèi)核所在目錄,PWD為內(nèi)核的版本。最后將lcd.c、lcd.h和Makefile文件放于同一目錄下,執(zhí)行make指令就可以得到相應(yīng)的lcd.ko文件,這個(gè)文件就是要用于目標(biāo)板的液晶屏驅(qū)動(dòng)模塊。

        2.2.3液晶屏應(yīng)用程序

        液晶屏應(yīng)用程序主要用來(lái)接收其他客戶端程序發(fā)送的數(shù)據(jù),然后將其按指定格式在液晶屏上顯示。其軟件流程圖如圖2所示。

        圖2 液晶屏程序軟件流程圖

        由圖2可知,應(yīng)用程序在軟件代碼上面的實(shí)現(xiàn)主要由以下3個(gè)部分組成:第一,對(duì)LCD設(shè)備的操作,包括使用open(“/dev/lcd”,0)語(yǔ)句來(lái)打開LCD設(shè)備,其中/dev/lcd就是液晶屏驅(qū)動(dòng)模塊的設(shè)備名,并使用init()函數(shù)來(lái)完成對(duì)LCD屏的復(fù)位、配置及使能;第二,遵循TCP/IP的套接字規(guī)范,進(jìn)行基于客戶端的創(chuàng)建、設(shè)置及連接套接字操作,并向內(nèi)部的TCP Server注冊(cè)ID,便于區(qū)分不同的客戶端;第三,多線程部分操作,包括調(diào)用pthread_create()函數(shù)來(lái)創(chuàng)建子線程,并實(shí)現(xiàn)子線程的接收函數(shù)void *recv_msg(void *arg),在接收函數(shù)中實(shí)現(xiàn)對(duì)接收數(shù)據(jù)的判斷,并調(diào)用驅(qū)動(dòng)模塊的ioctl函數(shù)實(shí)現(xiàn)正確的數(shù)據(jù)在LCD屏上的顯示。

        2.3內(nèi)部通信鏈路

        在Linux中,基于TCP/IP協(xié)議的應(yīng)用程序通常都采用UNIX BSD的套接字(Socket),來(lái)實(shí)現(xiàn)進(jìn)程之間的通信。Socket是Internet網(wǎng)絡(luò)編程中通用的API,最基本的Socket通信模型即客戶端-服務(wù)器(C-S)模型。通常,客戶端應(yīng)用程序的數(shù)量比服務(wù)器應(yīng)用程序要多,而服務(wù)器較于客戶端程序則要復(fù)雜得多,需要考慮并發(fā)、執(zhí)行效率、網(wǎng)絡(luò)狀況等。因此,一個(gè)網(wǎng)絡(luò)通信程序的關(guān)鍵在于服務(wù)器應(yīng)用程序的開發(fā)[7]。

        本實(shí)驗(yàn)中,需要有兩個(gè)以上的程序作為客戶端與服務(wù)器程序通信。所以,服務(wù)器程序需要考慮并發(fā)性,使用多線程的技術(shù)來(lái)實(shí)現(xiàn)。在Linux中,就需要在程序的開頭增加以下語(yǔ)句:#include

        通信的軟件框架如圖3所示。在圖3中,中間是TCP Server的軟件流程,用來(lái)將從左側(cè)lcdtest客戶端程序接收到的數(shù)據(jù)轉(zhuǎn)發(fā)給右側(cè)的lcddemo客戶端程序,以顯示在LCD屏上。在實(shí)際應(yīng)用中,右側(cè)的lcddemo客戶端程序就接收其他客戶端發(fā)送過(guò)來(lái)的要顯示在LCD屏上的數(shù)據(jù)。其中,在TCP Server的Accept()階段,服務(wù)器程序一直在while(1)循環(huán)等待客戶端的連接,每連接一個(gè)客戶端,就為該客戶端分別建立一個(gè)接收線程,并將該客戶端的注冊(cè)ID保存到內(nèi)部數(shù)組中。最后,以TCP Server來(lái)示例涉及多線程通信程序的編譯:arm-arago-linux-gnueabi-gcc server.c -o server -lpthread,就可以生成server的可執(zhí)行文件。

        圖3 多線程Socket通信流程圖

        3系統(tǒng)驗(yàn)證及測(cè)試

        首先,將編譯好的液晶屏驅(qū)動(dòng)模塊lcd.ko和應(yīng)用程序(包括TCP Server程序thread_server、液晶屏應(yīng)用程序lcddemo以及液晶屏測(cè)試程序lcdtest)載入OMAP-L138開發(fā)板,放于/home/root目錄下;其次,在當(dāng)前目錄下執(zhí)行命令insmod lcd.ko,加載驅(qū)動(dòng)模塊;接著,執(zhí)行命令./thread_server &,后臺(tái)運(yùn)行TCP Server程序;然后,執(zhí)行命令./lcddemo &,后臺(tái)運(yùn)行液晶屏應(yīng)用程序;最后,執(zhí)行命令./lcdtest,運(yùn)行液晶屏測(cè)試程序,即可在STN-LCD液晶屏上看到數(shù)據(jù)顯示。

        4結(jié)束語(yǔ)

        本文設(shè)計(jì)了一種基于OMAP-L138和STN-LCD的液晶顯示系統(tǒng),主要完成了STN-LCD的液晶驅(qū)動(dòng)模塊、驅(qū)動(dòng)程序以及內(nèi)部通信的鏈路。驅(qū)動(dòng)模塊通過(guò)控制GPIO來(lái)實(shí)現(xiàn),內(nèi)部通信的鏈路使用基于Linux的多線程Socket來(lái)實(shí)現(xiàn),使得系統(tǒng)具有很強(qiáng)的可移植性及可操作性。本設(shè)計(jì)為數(shù)據(jù)顯示設(shè)備提供了一種新的方案,可應(yīng)用于工控等領(lǐng)域。

        參考文獻(xiàn)

        [1] 盧洪濤.嵌入式Linux的ARM交叉編譯環(huán)境[J].科學(xué)信息:學(xué)術(shù)研究,2007(21):201-202.

        [2] 李心陽(yáng),唐厚君.基于OMAPL138的電能質(zhì)量監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2011(6):78-80.

        [3] 宋寶華.Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解[M].2版.北京:人民郵電出版社,2010:441.

        [4] 胡俊波.基于Linux的液晶顯示屏驅(qū)動(dòng)技術(shù)的研究與應(yīng)用[D].北京:北方工業(yè)大學(xué),2014.

        [5] 杜世昌.基于嵌入式Linux的設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)的研究[D].北京:中國(guó)科學(xué)院大學(xué),2013.

        [6] 韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊(cè)[M].北京:人民郵電出版社,2008:387.

        [7] 王楓,羅家融.Linux下多線程Socket通訊的研究與應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2004(16):106-109.

        Design of a New Type of LCD System

        陳鋒葉一枝劉家樂(lè)

        (上海電氣集團(tuán)股份有限公司中央研究院,上海200070)

        摘要:針對(duì)嵌入式顯示技術(shù)在低成本應(yīng)用場(chǎng)合的需求,設(shè)計(jì)了一套新型的液晶顯示系統(tǒng)。以TIL138-EVM開發(fā)板為實(shí)驗(yàn)平臺(tái),采用較低成本的超扭曲向列型液晶顯示器(STN-LCD),并開發(fā)了其在ARM端的驅(qū)動(dòng)程序;利用TCP/IP的數(shù)據(jù)傳輸協(xié)議,實(shí)現(xiàn)了通信數(shù)據(jù)在液晶屏上的顯示。實(shí)驗(yàn)結(jié)果驗(yàn)證了該系統(tǒng)應(yīng)用于低成本場(chǎng)合的可行性,為嵌入式技術(shù)及顯示技術(shù)的應(yīng)用提供了更多參考。

        關(guān)鍵詞:嵌入式技術(shù)液晶顯示系統(tǒng)微處理單元數(shù)據(jù)采集數(shù)據(jù)傳輸通信協(xié)議軟硬件設(shè)計(jì)

        Abstract:According to the demand for the embedded display technology in the low-cost applications,a new kind of LCD system is designed.With the TL138-EVM development board as the experiment platform,the lower cost super twisted nematic liquid crystal display(STN-LCD) is used,and the driver is developed in ARM.Based on TCP/IP data transmission protocol,displaying communication data on LCD panel is realized.The experiment results verify the feasibility of the application of system in low-cost occasion,and provide more references for the application of embedded technology and display technology.

        Keywords:Embedded technologyLiquid crystal display systemMicro processing unitData acquisitionData transmissionCommunication protocolThe hardware and software design

        中圖分類號(hào):TP399;TH6

        文獻(xiàn)標(biāo)志碼:A

        DOI:10.16086/j.cnki.issn1000-0380.201604022

        修改稿收到日期:2015-07-07。

        第一作者陳鋒(1988-),男,2014年畢業(yè)于上海大學(xué)電工理論及新技術(shù)專業(yè),獲碩士學(xué)位,助理工程師;主要從事嵌入式軟件及驅(qū)動(dòng)的開發(fā)。

        猜你喜歡
        液晶屏驅(qū)動(dòng)程序內(nèi)核
        萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        基于STM32F4的多通道串口驅(qū)動(dòng)TFT液晶屏顯示系統(tǒng)設(shè)計(jì)
        液晶與顯示(2020年5期)2020-05-06 13:46:58
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        FPGA的TFT-LCD真彩液晶屏顯示控制
        基于機(jī)器視覺(jué)的液晶屏字符缺陷檢測(cè)系統(tǒng)設(shè)計(jì)
        基于圖像處理的電能表液晶屏質(zhì)量檢測(cè)方法
        驅(qū)動(dòng)程序更新與推薦
        驅(qū)動(dòng)程序更新與推薦
        国产夫妻自拍视频在线播放| 亚洲欧美一区二区三区| 野外少妇愉情中文字幕| 国产中老年妇女精品| 无码少妇一级AV便在线观看| 日日噜噜夜夜狠狠2021| 日韩有码在线免费视频| 女同性恋一区二区三区av| 少妇被猛烈进入到喷白浆| 无码一区二区三区亚洲人妻 | 国产一区二区三区精品久久呦 | 日本美女在线一区二区| 亚洲av网一区二区三区| 麻豆网神马久久人鬼片| 97人妻精品一区二区三区 | av天堂吧手机版在线观看| 日韩亚洲国产中文字幕| 亚洲女厕偷拍一区二区| 国产成人av综合色| 青青草97国产精品免费观看| 国产精品一区二区暴白浆| 国产一级r片内射免费视频| 久久精品伊人久久精品| 揄拍成人国产精品视频| 亚洲人成77777在线播放网站| 国产超碰人人模人人爽人人喊| 亚洲AV无码专区国产H小说| 亚洲一区二区女优av| 丰满人妻被持续侵犯中出在线| 99riav国产精品视频| 色 综合 欧美 亚洲 国产| 99精品国产兔费观看久久99| 深夜福利国产| 国产91精品在线观看| 国产成人精品午夜二三区波多野| 国产成人v爽在线免播放观看| 久久久www成人免费无遮挡大片| 久久亚洲春色中文字幕久久久综合 | 在线观看亚洲AV日韩A∨| 中文人妻av大区中文不卡| 青青草视频免费在线播放|