Linux液晶顯示屏驅動(dòng)設計
Linux設備驅動(dòng)程序屬于Linux內核的一部分,并在Linux內核中扮演著(zhù)十分重要的角色。它們像一個(gè)個(gè)“黑盒子”,使某個(gè)特定的硬件響應一個(gè)定義良好的內部編程接口,同時(shí)完全隱蔽了設備的工作細節。用戶(hù)通過(guò)一組和具體設備驅動(dòng)無(wú)關(guān)的標準化的調用來(lái)完成相關(guān)操作,驅動(dòng)程序的任務(wù)就是把這些調用映射到具體設備對于實(shí)際硬件的特定操作上。
硬件設備只是一個(gè)設備文件,應用程序可以像操作普通文件一樣對硬件設備進(jìn)行操作。設備驅動(dòng)程序是內核的一部分,它實(shí)現以下功能:
①對設備初始化和釋放。
②把數據從內核傳送到硬件和從硬件讀取數據。
③讀取應用程序傳送給設備文件的數據和回送應用程序請求的數據。
④檢測和處理設備出現的錯誤。
可以把設備驅動(dòng)作為內核的一部分直接編譯到內核中(即靜態(tài)編譯),也可以單獨作為一個(gè)模塊編譯,在需要的時(shí)候動(dòng)態(tài)地插入到內核中,在不需要的時(shí)候可把它從內核中刪除(即動(dòng)態(tài)鏈接)。
目前Linux支持的設備驅動(dòng)可以分為3種:字符設備(character device)、塊設備(block device)、網(wǎng)絡(luò )接口設備(network device)。當然它們之間也并不是嚴格地加以區分。字符設備是所有能夠像字節流一樣被訪(fǎng)問(wèn)的設備(如文件等),在Linux中通過(guò)字符設備驅動(dòng)程序來(lái)實(shí)現。在Linux中它們也被映射為文件系統的1個(gè)節點(diǎn),通常在/dev目錄下。字符設備驅動(dòng)程序一般要包含open、close、read、write等幾個(gè)系統調用。
本文為開(kāi)發(fā)字符設備驅動(dòng)實(shí)例,對于其他兩類(lèi)不再贅述。
1Linux關(guān)于字符設備的管理
驅動(dòng)程序在Linux內核中往往是以模塊形式出現的。與應用程序的執行過(guò)程不同,模塊通常只是預先向內核注冊自己,當內核需要時(shí)響應請求。模塊中包含2個(gè)重要的函數init_module和cleanup_module。前者是模塊的入口,它為模塊調用做好準備工作,而后者是在模塊即將卸載時(shí)被調用,做一些清掃工作。
驅動(dòng)程序模塊通過(guò)函數int register_chrdev(unsignedint major,const char*name,struct file_operations*fops)來(lái)完成向內核注冊。其中unsigned int major為主設備號,const char*name為設備名,struct file_operations*fops為驅動(dòng)設備管理中重要的結構指針,此結構中每個(gè)字段都必須指向驅動(dòng)程序中實(shí)現特定操作的操作函數。
2FYD12864-0402B液晶模塊簡(jiǎn)介
FYD12864-0402B是一種具有4位/8位并行、2線(xiàn)或3線(xiàn)串行多種接口方式,內部含有國標一級、二級簡(jiǎn)體中文字庫的點(diǎn)陣圖形液晶顯示模塊,低電壓,低功耗。其顯示分辨率為128×64,內置8 192個(gè)16×16點(diǎn)陣的漢字,以及128個(gè)16×8點(diǎn)ASCII字符集。利用該模塊靈活的接口方式和簡(jiǎn)單、方便的操作指令,可構成全中文人機交互圖形界面,可以顯示8×4行16×16點(diǎn)陣的漢字。也可完成圖形顯示。FYD12864-0402B液晶模塊框圖如圖1所示,其中ST7920為液晶顯示控制芯片,ST7921為液晶顯示驅動(dòng)芯片。
FYD12864-0402B控制器接口信號說(shuō)明如下:
①RS、R/W的配合選擇決定控制界面的4種模式,如表1所列。
②E信號如表2所列。
linux相關(guān)文章:linux教程
led顯示器相關(guān)文章:led顯示器原理
評論