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

一種新型液晶顯示系統的設計

2016-05-04 01:42:33陳鋒,葉一枝,劉家樂
自動化儀表 2016年4期
關鍵詞:嵌入式設備系統

?

一種新型液晶顯示系統的設計

0引言

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

本文設計了一種新型的基于ARM+LCD顯示系統的解決方案,其中采用性價比較高的STN-LCD代替常見但較貴的TFT-LCD作為顯示模塊。系統中編寫的基于GPIO的液晶屏驅動程序的移植性很強,可將其移植到類似的液晶屏顯示系統中,并為一些對性價比要求較高的場合提供參考和實踐價值。

1硬件平臺搭建

系統以OMAP-L138中的ARM9為核心搭建硬件平臺,將采集到的數據通過內嵌的TCP/IP通信鏈路傳送給基于STN-LCD的液晶屏,并實時顯示。此系統采用模塊化獨立設計,從功能上可以分成三個模塊:數據采集模塊、數據轉發模塊和數據顯示模塊。其系統結構框圖如圖1所示。

圖1 系統結構框圖

其中,數據采集模塊可以根據需要和實際情況進行設計(包括ARM端的程序實現和DSP端的程序實現)。本實驗中,采用在ARM核運行的示例程序進行模擬實現。

1.1OMAP-L138介紹

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

1.2液晶屏顯示

液晶顯示器(liquid crystal display,LCD)是一種采用了液晶控制透光度技術來實現色彩的顯示器。LCD有很多類型,如TN、STN、TFT、OLED等[3]。TN、STN和TFT型顯示器因為液晶分子扭轉原理的不同,在彩化、動畫和視角上都有明顯的差異,使得這3類產品的應用范圍有所不同。其中,STN較于TN畫面切換速度快,較于TFT成本低,因此在信息控制設備中應用廣泛[4]。基于性能和成本的考慮,本實驗采用STN-LCD來進行設計。

2系統軟件設計

系統硬件平臺的搭建相對簡單,核心為軟件設計。系統的軟件設計主要分為最小自啟動系統設計、液晶屏驅動模塊及應用程序設計和內部通信鏈路設計3個部分。首先,搭建一個自啟動的最小系統,讓整個平臺能夠自動地運行;接著,編寫液晶屏的驅動程序,以及上層的液晶屏應用程序;最后,調用嵌入式系統內部的TCP/IP協議,打通程序之間的通信鏈路。

2.1最小自啟動系統

一個典型的嵌入式Linux系統按照存儲空間的劃分通常包括引導區、內核區和文件系統區。引導區存放引導加載程序Boot Loader與系統參數;內核區存放特定嵌入式平臺定制的Linux內核;文件系統區存放根文件系統,用戶應用程序就存放在文件系統區中。

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

2.2液晶屏驅動模塊及應用程序

2.2.1XRD G160160D26

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

表1 接口引腳

2.2.2液晶屏驅動模塊

設備驅動程序是操作系統內核和系統硬件的接口,是嵌入式系統不可或缺的組成部分。設備驅動程序為應用程序隱藏了硬件實現的細節,使其可以像操作普通文件一樣操作外圍設備。設備驅動程序在內核中的存在方式主要有兩種:一種是直接編譯到內核中;另一種是游離于內核而不占用系統資源,在需要時動態加載,不用時又可以卸載[5]。本實驗中選擇的是第二種,將驅動程序做成一個模塊,以增加程序的靈活性和可移植性。

在本實驗中,基于GPIO的字符設備的驅動模塊主要包括字符設備的驅動程序、對GPIO管腳的配置文件,以及對驅動模塊的編譯文件3個部分,分別集成在lcd.c、lcd.h和Makefile這3個文件中。

字符設備的驅動程序包括以下幾個部分:第一,字符設備驅動模塊的加載函數static int __init lcd_init(void),實現設備號的申請以及向內核注冊驅動程序,當使用insmod加載模塊時被調用;第二,字符設備驅動模塊的卸載函數static int __exit lcd_exit(void),實現對設備號的釋放以及對驅動程序的注銷;第三,字符設備驅動模塊的file_operations結構體及其成員函數[6]。本實驗中定義的一個file_operations實例如下所示:

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控制函數中,實現對GPIO的接口,將對LCD屏的調用解析成lcd_outcmd()和lcd_outdata()兩個函數。

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

在Linux中,驅動程序的編譯和鏈接規則由Makefile指定,在基本的框架下改動一部分關鍵信息即可。程序如下所示:

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是實際設備驅動程序的模塊,KDIR表示內核所在目錄,PWD為內核的版本。最后將lcd.c、lcd.h和Makefile文件放于同一目錄下,執行make指令就可以得到相應的lcd.ko文件,這個文件就是要用于目標板的液晶屏驅動模塊。

2.2.3液晶屏應用程序

液晶屏應用程序主要用來接收其他客戶端程序發送的數據,然后將其按指定格式在液晶屏上顯示。其軟件流程圖如圖2所示。

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

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

2.3內部通信鏈路

在Linux中,基于TCP/IP協議的應用程序通常都采用UNIX BSD的套接字(Socket),來實現進程之間的通信。Socket是Internet網絡編程中通用的API,最基本的Socket通信模型即客戶端-服務器(C-S)模型。通常,客戶端應用程序的數量比服務器應用程序要多,而服務器較于客戶端程序則要復雜得多,需要考慮并發、執行效率、網絡狀況等。因此,一個網絡通信程序的關鍵在于服務器應用程序的開發[7]。

本實驗中,需要有兩個以上的程序作為客戶端與服務器程序通信。所以,服務器程序需要考慮并發性,使用多線程的技術來實現。在Linux中,就需要在程序的開頭增加以下語句:#include

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

圖3 多線程Socket通信流程圖

3系統驗證及測試

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

4結束語

本文設計了一種基于OMAP-L138和STN-LCD的液晶顯示系統,主要完成了STN-LCD的液晶驅動模塊、驅動程序以及內部通信的鏈路。驅動模塊通過控制GPIO來實現,內部通信的鏈路使用基于Linux的多線程Socket來實現,使得系統具有很強的可移植性及可操作性。本設計為數據顯示設備提供了一種新的方案,可應用于工控等領域。

參考文獻

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

[2] 李心陽,唐厚君.基于OMAPL138的電能質量監測系統的設計[J].微計算機信息,2011(6):78-80.

[3] 宋寶華.Linux設備驅動開發詳解[M].2版.北京:人民郵電出版社,2010:441.

[4] 胡俊波.基于Linux的液晶顯示屏驅動技術的研究與應用[D].北京:北方工業大學,2014.

[5] 杜世昌.基于嵌入式Linux的設備驅動程序設計的研究[D].北京:中國科學院大學,2013.

[6] 韋東山.嵌入式Linux應用開發完全手冊[M].北京:人民郵電出版社,2008:387.

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

Design of a New Type of LCD System

陳鋒葉一枝劉家樂

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

摘要:針對嵌入式顯示技術在低成本應用場合的需求,設計了一套新型的液晶顯示系統。以TIL138-EVM開發板為實驗平臺,采用較低成本的超扭曲向列型液晶顯示器(STN-LCD),并開發了其在ARM端的驅動程序;利用TCP/IP的數據傳輸協議,實現了通信數據在液晶屏上的顯示。實驗結果驗證了該系統應用于低成本場合的可行性,為嵌入式技術及顯示技術的應用提供了更多參考。

關鍵詞:嵌入式技術液晶顯示系統微處理單元數據采集數據傳輸通信協議軟硬件設計

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

中圖分類號:TP399;TH6

文獻標志碼:A

DOI:10.16086/j.cnki.issn1000-0380.201604022

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

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

猜你喜歡
嵌入式設備系統
諧響應分析在設備減振中的應用
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
原來他們都是可穿戴設備
消費者報道(2014年7期)2014-07-31 11:23:57
主站蜘蛛池模板: 色爽网免费视频| 在线无码九区| 欧美一级片在线| 在线观看网站国产| 高清精品美女在线播放| 99热在线只有精品| 国产va在线观看免费| 中文无码影院| 亚洲人在线| 91久久青青草原精品国产| 久久综合伊人 六十路| 国产精品久久久久鬼色| 国产SUV精品一区二区6| 啪啪免费视频一区二区| 九九香蕉视频| 无码一区二区波多野结衣播放搜索| 免费看的一级毛片| 亚洲精品卡2卡3卡4卡5卡区| 久操中文在线| 国产99视频在线| 国产波多野结衣中文在线播放| 国产最新无码专区在线| 人妻丝袜无码视频| 91成人免费观看| 亚洲天堂网2014| 多人乱p欧美在线观看| 亚洲三级片在线看| 亚洲欧美另类中文字幕| 四虎国产精品永久一区| 丁香五月婷婷激情基地| 天天综合网亚洲网站| 日韩精品毛片人妻AV不卡| 亚洲人成电影在线播放| 国产精品无码AⅤ在线观看播放| 亚洲国产一区在线观看| 亚洲日韩国产精品综合在线观看| 婷婷综合色| 国产网站黄| 色老头综合网| 欧美成人精品高清在线下载| 日韩视频免费| av无码久久精品| 国产精品永久在线| 69av在线| www.av男人.com| 大香伊人久久| 国产成人一区免费观看| 亚洲色图综合在线| 国产免费一级精品视频| 91精品综合| 91精品伊人久久大香线蕉| 亚洲九九视频| 国产一区二区福利| 亚洲三级色| 中文字幕无码av专区久久| 亚洲成a人片| 色婷婷电影网| 欧美午夜在线视频| 国产浮力第一页永久地址| 欧美日韩成人| 亚洲成网777777国产精品| 国产SUV精品一区二区| 久久精品人妻中文系列| 国产青榴视频在线观看网站| 久久亚洲综合伊人| 色综合久久久久8天国| 国产特一级毛片| 久久精品国产精品青草app| 国产成人精品一区二区秒拍1o| 91香蕉视频下载网站| 伊人激情久久综合中文字幕| 免费精品一区二区h| 国产亚洲精久久久久久无码AV| 97无码免费人妻超级碰碰碰| 久996视频精品免费观看| 精品国产香蕉在线播出| 国产成人亚洲精品色欲AV | 九九久久精品国产av片囯产区| 国产精品无码AV片在线观看播放| 中文无码日韩精品| 国产成人亚洲毛片| 国产特级毛片aaaaaaa高清|