【摘要】對觸點位置坐標識別與輸入是觸摸液晶屏的重要功能。由于SOPC Builder系統沒有提供TRDB-LTM觸摸屏的驅動,因而提出了一種基于Avalon總線的TRDB-LTM觸控IP核的設計方法。實現TRDB-LTM觸控屏觸碰位置坐標的準確錄入。給出系統硬、軟件設計過程。經測試,所設計的IP核能夠準確快速的識別觸碰位置坐標,工作穩定可靠。
【關鍵詞】TRDB-LTM觸控屏;Nios II;Avalon總線;IP核
Abstract:Identifying the position coordinates of the touch input is an important feature of the touch screen.As the SOPC Builder system does not provide TRDB-LTM touchscreen driver,a TRDB-LTM touch control IP core based on Nios II design method is proposed.The coordinates of the touch point were identified correctly.Provided both the hardware and software design process.According to the test,the IP core designed by this method can be quickly and accurately identify the touch location coordinates,runs stable and reliable.
Keywords:TRDB-LTM touchscreen;Nios II;Avalon bus;IP core
1.引言
隨著各類多媒體應用終端、平板電腦、智能手機等嵌入式系統設備與日俱增[1],觸摸屏作為一種集信息顯示與輸入,數據通信與轉換多種功能于一體的先進人機交互接口,已越來越廣泛地應用在各類嵌入式智能設備上,它輕薄體小,畫質清晰,易于設計友好的交互界面和實現簡單直觀操作體驗。因而對觸摸屏實現支持幾乎已然成為嵌入式系統應用開發的必然要求。
在Altera的SOPC軟件工具中,已經集成有一些參數化電路功能模塊,即IP核[2]。如SSRAM、Flash、Avalon三態橋、PLL、UART等。但是在顯示方面,Altera只提供了一個16*2 LCD的控制IP核[3],沒有提供觸屏IP核,使用時需要編寫硬件的時序程序[4]。另外,目前多數研究者致力于設計LCD顯示控制的IP核,即LCD的顯示(輸出),對于觸控屏(LTM-LCD)的觸控(輸入)的研究不多[5]。本文提出一個基于NiosⅡ的TRDB-LTM觸控IP核設計,用以實現TRDB-LTM的觸控功能。本IP核可以和系統自帶的IP核一樣,直接掛載于Avalon總線,作為NiosⅡ軟核的SOPC一個外設[5]。
2.Avalon總線
2.1 Avalon總線概述
Avalon總線是由Altera開發的一種專用的內部連線技術[6]。它由SOPC自動生成,是處理器與外設之間理想的內聯總線,是構建嵌入式系統、開發自定義外設IP核的基礎。Avalon接口規范定義了外設和Avalon Switch Fabric之間的數據傳輸。Nios II系統的所有外設都是通過Avalon總線與Nios II CPU進行數據交換。Avalon接口是一種開放標準,使用Avalon接口創建和發布定制外設不需要任何授權[6]。
2.2 Avalon總線從端口讀傳輸
Avalon總線傳輸有兩個基本模式:主傳輸和從傳輸[6]。支持流水傳輸、三態傳輸和突發傳輸屬性。TRDB-LTM觸控IP核使用的是效率較高的流水從端口讀傳輸,增加傳輸寬帶,提高觸控響應靈敏度。具體時序規范此處從略[7]。
3.硬件設計
3.1 TRDB-LTM觸碰功能
LTM是LCD Touch Panel Module的縮寫。TRDB-LTM是Terasic友晶科技公司推出的4.3英寸數字LCD觸碰屏幕套件,分辨率高達800*480。它包含了三個主要的架構:LCD觸摸面板、AD轉換器、40-pin IDE接口[8]。LTM可由40-pin插座排線連接到Alter DE2-70開發板,LTM集成ADI公司的AD7843觸摸屏轉換芯片,可將觸點的X/Y坐標數字化并保存,并通過SPI數字串行接口與FPGA芯片建立通信連接。AD7843的轉換過程參考其數據手冊[9]。
3.2 LTM屏幕坐標規劃
由Terasic公司提供的LTM文檔,我們可以知道,按照功能的不同,屏幕坐標被分成了兩種方式表現,一種是時序坐標,一種是觸碰所得到的屏幕坐標。時序坐標(x,y)的取值范圍從(0,0)至(800,480)。X軸正向為水平向右,Y軸正向為垂直向上。
圖1 LTM四個角上的坐標[7]
3.3 TRDB-LTM觸摸屏控制器IP核
TRDB-LTM觸控IP核Touch_Avalon_Interface的設計結構圖如圖2所示,主要包括Avalon總線從端口、時鐘與復位模塊、TRDB_LTM接口模塊3個部分。Avalon總線從端口部分主要是為了與Avalon總線通信,時鐘與復位模塊為IP核提供時鐘與復位信號,TRDB_LTM接口模塊負責與LTM上的AD轉換芯片AD7843進行數據傳輸。
圖2 觸控IP核結構框圖
iADC_DOUT接收來自AD7843的坐標數據,iADC_DIN向AD7843發送控制字,iADC_PENIRQ_n中斷指示信號,低電平有效,表示ADC轉換完成,詳細的轉換時序參見數據手冊[8]。將IP核在SOPC Builder里打包封裝,如圖3所示。
圖3 Touch_Avalon_Interface IP核
Avalon總線掛載界面
圖4 TRDB-LTM觸控IP核
添加到Nios II系統后的生成界面
圖5 Console控制端讀到的觸點位置坐標
4.軟件設計
Touch_Avalon_Interface IP核設計文件包括HAL和HDL兩個文件夾。HAL里面是IP核的Nios Ⅱ C語言驅動源程序(Touch_Avalon_Interface.h,Touch_Avalon_Interface.c)。HDL中是IP核的Verilog定義文件。限于篇幅,只附上頂層IP核端口的定義:
IP核的Nios Ⅱ C語言驅動源程序主要功能是將IP核讀取到的實時觸碰坐標通過算法轉換成顯示坐標,即前文所提的時序坐標。具體程序如下:
為了測試Touch_Avalon_Interface IP核的效果,將IP核添加到一個完整的Nios II系統中,如圖4所示。圖中紅色框中的Touch_Avalon_Interface即為本文所設計的自定義觸控IP核。
通過Nios II IDE建立用戶工程,將驅動文件拷貝進工程,設置編譯,完成后下載到Terasic的DE2-70開發板[10]上進行的測試。觸碰LTM屏幕,可在Nios II IDE的Console控制端實時顯示觸點位置坐標(如圖5所示)。
5.結語
本文所提出TRDB-LTM觸控IP核設計通過DE2-70開發板硬件平臺的測試,觸碰響應靈敏,定位準確,實現了TRDB-LTM觸碰位置坐標的準確錄入。由于Nios Ⅱ核在同一FPGA中的植入數量沒有限制,只要FPGA資源充足[7],因而本IP核可以非常自由地結合其他設計中的關于LCD顯示控制IP核掛載在Avalon總線上,使FPGA上的SOPC實現對觸摸屏的完全支持,使后續應用界面開發者不必關心觸屏的底層時序規范,從而縮短開發周期,提高開發效率。
參考文獻
[1]劉波文,張軍,等.FPGA嵌入式項目開發三位一體實戰精講[M].北京:北京航空航天大學出版社,2012:314-347.
[2]蘇陽,蔣銀坪,等.那些年,我們拿下了FPGA[M].北京:北京航空航天大學出版社,2013:304-306.
[3]李順方,周衛星,白潔.基于Avalon總線的可配置LCD控制器IP的核設計[DB/OL].(2007-06-12)[2011-06-25].http://www.paper.edu.cn.
[4]劉少鵬,郭寶增,趙麗娜,馬韜.基于FPGA的彩色觸摸屏控制器的設計[J].微型機與應用,2012,31(12):18-20.
[5]崔旭晶,馬平全.基于SOPC的觸控屏控制器IP核設計與實現[J].電子設計工程,2012,20(14):165-169.
[6]梁旭,凌朝東.基于Nios II的TRDB-LTM控制器IP核設計[J].通信技術,2011,11(44):109-115.
[7]周立功.SOPC嵌入式系統基礎教程[M].北京:北京航空航天大學出版社,2006:233-239,260-264,2.
[8]Terasic.TRDB_DC2_UserGuideV1.22[M].[S.l.]: Terasic,2007.
[9]Analog Devices,Inc..AD7843Touch Screen Digitizer Datasheet [M].[S.l.]:Terasic,2004:Rev B.
[10]DE2-70 User Manual Version 1.08[Z].Terasic Technologies Ltd,2009.
作者簡介:
雷松華(1987—),男,湖南常德人,碩士研究生,研究方向:電子電路設計,嵌入式開發。
鄭鏗(1988—),男,廣東潮汕人,碩士研究生,研究方向:FPGA,圖像處理。