新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > SP5V210的嵌入式電容觸摸屏驅(qū)動設(shè)計

SP5V210的嵌入式電容觸摸屏驅(qū)動設(shè)計

作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

引言

本文引用地址:http://2s4d.com/article/201609/303798.htm

目前,隨著手機和平板電腦的廣泛使用,已成為電子產(chǎn)品的重要組成部分,電容觸摸屏的多點觸摸功能是紅外式、電阻式觸摸屏所不具備的,其線性度、透明度和耐久度也有著明顯優(yōu)勢。蘋果公司的多點觸摸技術(shù)使人們的生活方式有了極大變化,且隨著嵌入式設(shè)備和技術(shù)的成熟,電容觸摸屏作為新興的輸入設(shè)備必將得到廣泛應(yīng)用。

是基于Cortex—A8架構(gòu)的32位處理器,帶有內(nèi)存管理單元MMU,最高主頻為1.0 GHz,內(nèi)部集成圖像處理器可以高效顯示與處理圖像,且可以十分流暢地運行Linux和Android高級系統(tǒng);GT811為5點電容屏控制芯片,其內(nèi)部觸摸檢測網(wǎng)絡(luò)由10路感應(yīng)通道與16路驅(qū)動通道構(gòu)成,通過內(nèi)部的數(shù)模轉(zhuǎn)化模塊、模擬放大電路和MPU采集實時的觸摸信息,并由總線傳輸?shù)街骺靥幚砥鳌?/p>

本設(shè)計以處理器和Linux2.6.25內(nèi)核為系統(tǒng)的硬件與軟件平臺,用GT811作為的控制器,設(shè)計了一種基于的嵌入式多點電容觸摸屏驅(qū)動。

1

目前大部分電容屏是投射式互容電容屏。本文以投射式電容觸摸屏為例,應(yīng)用OGS方案,即將氧化銦錫(ITO)導(dǎo)電膜直接鍍在保護玻璃上形成傳感器,此時保護玻璃具有了觸摸傳感功能。該電容觸摸屏采用單層ITO(SITO)結(jié)構(gòu),水平X和垂直Y電極通過蝕刻ITO層形成,電極交叉處有絕緣層,這樣X電極與Y電極之間形成了耦合電容CM。

通過檢測觸摸屏整個二維平面的互電容大小來計算觸摸位置,首先觸摸屏控制器會控制X電極依次發(fā)出激勵信號,Y電極同時接收,得到所有XY電極交叉處的電容值,當手指觸摸時會使觸摸位置局部電容CM減小,這樣根據(jù)二維電容數(shù)據(jù)變化量就可以計算出每個觸摸位置的真實坐標。

本設(shè)計采用三星公司的SP5V210處理器作為主機,通過總線接口與電容式觸摸屏控制芯片GT811相連,GT811集成在柔性線路板上通過綁定技術(shù)連接到7寸電容觸摸屏屏體上。圖1為系統(tǒng)硬件連接示意圖。觸摸屏控制器GT811驅(qū)動端依次從drv00到drv15發(fā)出激勵脈沖,感應(yīng)端sens00~sens09同時接收,并轉(zhuǎn)換為數(shù)字信號,此時為原始數(shù)據(jù)rawdata,經(jīng)數(shù)據(jù)處理后再由內(nèi)部MPU通過總線與處理器SP5V210完成觸摸坐標信息的交互。

SP5V210的嵌入式電容觸摸屏驅(qū)動設(shè)計

2 觸摸屏驅(qū)動程序設(shè)計

本文利用處理器SPSV210、觸摸屏控制器GT811和Linux輸入子系統(tǒng)來實現(xiàn)多點電容觸摸屏的驅(qū)動,程序流程如圖2所示。

SP5V210的嵌入式電容觸摸屏驅(qū)動設(shè)計

2.1 I2C總線設(shè)備注冊

GT811是一個I2C設(shè)備,需向Linux內(nèi)核注冊才可被使用。注冊GT811的I2C模塊先在Linux內(nèi)核文件arch/arm/mach-s5pv210/mach-tq210.c的I2C通道2結(jié)構(gòu)體中加入TC的I2C地址,也就是0x5d,添加后如下:

SP5V210的嵌入式電容觸摸屏驅(qū)動設(shè)計

系統(tǒng)初始化時會根據(jù)板級I2C總線設(shè)備配置信息,創(chuàng)建I2C總線客戶端設(shè)備I2C_client,并將其添加到I2C子系統(tǒng)中。

2.2 I2C總線設(shè)備驅(qū)動注冊

I2C總線設(shè)備需要兩個結(jié)構(gòu)體:struct IIC_driver表示I2C設(shè)備驅(qū)動,struct IIC_client用于描述I2C設(shè)備:

SP5V210的嵌入式電容觸摸屏驅(qū)動設(shè)計

2.3 驅(qū)動入口函數(shù)

檢查到I2C總線設(shè)備進入探測函數(shù)static int sp5v210_tc_probe(struct IIC client*client,const struct dev_id*id),該函數(shù)的主要工作如下:

SP5V210的嵌入式電容觸摸屏驅(qū)動設(shè)計
SP5V210的嵌入式電容觸摸屏驅(qū)動設(shè)計

觸摸屏控制器GT811初始化,通過初始化函數(shù)static int tc_init_panel(struct IIC_client*client)配置各相關(guān)寄存器,檢測是否工作在正常模式。

手指按下時中斷引腳被拉低,處理器SP5V210調(diào)用中斷處理函數(shù)tc_irq_handler,首先該處理函數(shù)將提交任務(wù)ts→work給工作隊列tc_wq,然后進入工作隊列tc_wq中的tc_ work_fun函數(shù)。

2.4 觸摸屏工作函數(shù)設(shè)計

手指觸摸時電容控制器首先會采集多幀原始數(shù)據(jù)進行平均值處理并存儲,再進行數(shù)據(jù)處理得到實時的坐標信息,通過I2C總線傳輸觸點坐標給CPU,并在觸摸屏工作函數(shù)中完成坐標點的修正、上報以及多點處理功能。由于電容觸摸屏XY電極上一般會蝕刻成菱形的感應(yīng)塊(對角線長約4~6 mm),這樣手指操作時會觸摸到4個感應(yīng)塊(如圖3所示),需要采用算法定位坐標。

SP5V210的嵌入式電容觸摸屏驅(qū)動設(shè)計

采用重心法計算觸點坐標位置(Px,P,y):

SP5V210的嵌入式電容觸摸屏驅(qū)動設(shè)計

其中,Sn為第n個感應(yīng)塊交叉處的信號值,Nx和Ny分別為X、Y電極方向上感應(yīng)塊個數(shù),R為觸摸屏的邏輯分辨率。再由工作函數(shù)tc_work_fun(struct worK_struct*work)進行數(shù)據(jù)的讀取與事件上報。

觸摸屏觸點坐標信息會保存在控制器GT811的輸出信息寄存器中,如表1所列。中斷觸發(fā)后進入tc_worK_fun()函數(shù)。該函數(shù)的主要工作:讀取GT811輸出信息寄存器中的坐標信息;向上層報告對應(yīng)的事件和坐標信息。

SP5V210的嵌入式電容觸摸屏驅(qū)動設(shè)計
上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉