<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于SOPC 的觸控屏控制器IP核設計

基于SOPC 的觸控屏控制器IP核設計

作者: 時(shí)間:2012-12-20 來(lái)源:網(wǎng)絡(luò ) 收藏

可編程片上系統()是一種特殊的嵌入式系統,它方式靈活,具備軟硬件在系統可編程功能。上以集成電路 核為基礎,而自行開(kāi)發(fā)的 核,根據實(shí)際硬件資源和功能任務(wù)需求來(lái)定制顯示控制功能,可以增強系統可靠性和靈活性,降低了成本。目前針對LCD顯示設計的 核文章較多[1-2],但對于TFT-LCD 觸控屏設計的IP 核文章較少[3],而且這類(lèi)文章中很少見(jiàn)對各個(gè)模塊進(jìn)行仿真驗證內容。

本文引用地址:http://dyxdggzs.com/article/159614.htm

  文中提出一種針對TFT-LCD 觸控屏控制器IP 核的設計方法。該控制器具有Avalon 總線(xiàn)接口,與其他標準IP 核一起構成以NiosⅡ為核心的片上系統。針對本設計中觸控屏幀緩存讀操作的特點(diǎn),選擇以Avalon 主端口接口的形式對模塊進(jìn)行開(kāi)發(fā),大大提高了處理器運行效率,同時(shí)實(shí)現了觸控屏控制器IP 核的參數化設計, 提高了控制器對于不同LCD 屏的可復用性,最后通過(guò)對輸出緩沖FIFO 的使用,解決了數據讀出時(shí)鐘與像素時(shí)鐘不同步問(wèn)題。

  1 觸控屏控制器總體結構

  在SDRAM 中開(kāi)辟一段儲存空間, 用來(lái)存放屏幕圖像數據,稱(chēng)之為幀緩存。通過(guò)設計適當的硬件邏輯來(lái)建立幀緩存與屏幕圖像像素之間的一一對應關(guān)系,并配合觸控屏顯示所必需的行、場(chǎng)時(shí)序信號,將幀緩存中的數據不斷地輸送給觸控屏, 完成最終的顯示刷新, 其總體結構如圖1所示。

總體結構

  觸控屏控制器刷新周期開(kāi)始時(shí),主端口模塊根據幀緩存地址生成邏輯所產(chǎn)生的地址,完成主端口的讀操作,實(shí)現幀緩存中數據讀取,并將該數據輸送給輸出緩沖模塊。同時(shí),時(shí)序信號生成模塊依據觸控屏的時(shí)序規范生成行、場(chǎng)同步信號,以及與像素同步的相關(guān)顯示點(diǎn)的橫、縱坐標。觸控屏控制器數據顯示模塊不斷從緩存中讀取屏幕顯示數據。

  2 觸控屏控制器模塊設計

  2.1 Avalon-MM Slave 接口模塊

  本模塊掛載在A(yíng)valon 總線(xiàn)上作為從設備使用,用來(lái)對所有的用戶(hù)邏輯進(jìn)行配置和控制, 核心功能是寄存器操作,包括讀、寫(xiě)以及一些特殊指示與狀態(tài)信號的產(chǎn)生與轉換。通過(guò)從端口得到的數據分別賦值給相應的寄存器,寄存器分為:FIFO 地址寄存器、坐標寄存器、一幀數據長(cháng)度寄存器。本模塊是最后在觸控屏上實(shí)現圖形顯示功能的接口電路。

  2.2 Avalon-MM Master 接口模塊

  LCD 控制器的本功能是產(chǎn)生LCD 時(shí)序信號,將幀緩存中的圖像信息進(jìn)行有序輸出。由于圖形是一幀一幀地輸出到觸控屏上,而且顯示刷新過(guò)程是無(wú)限循環(huán)的,所以必須反復執行幀緩存讀操作,因此本設計對上述讀操作進(jìn)行了硬件加速??梢圆粩嗟貜腇IFO 讀取圖像數據,并且在行、場(chǎng)和觸控屏顯示有效時(shí)間段讀取圖像數據,其它時(shí)間不讀圖像數據,這樣減少了Avalon 總線(xiàn)的使用,有利于圖像顯示并減少了總線(xiàn)負擔。分析讀幀緩存的操作可以發(fā)現,該過(guò)程總是按照一定的順序,將存儲器中的數據讀出來(lái)進(jìn)行顯示輸出,規律性非常強。本模塊主要完成地址及操作時(shí)序的產(chǎn)生、像素數據緩存寫(xiě)操作控制、數據寬度的變換等功能。

  2.3 觸控屏時(shí)序產(chǎn)生模塊

  本文的觸控屏引出信號線(xiàn)有5 根:像素數據信號、觸控屏時(shí)鐘信號、行同步信號、場(chǎng)同步信號、使能信號。為了實(shí)現觸控屏的正常顯示,必須對以上信號按照規范的時(shí)序進(jìn)行驅動(dòng),其中,行、場(chǎng)同步信號分別用來(lái)標記屏幕上一行和一幀圖像的顯示時(shí)間,屏幕掃描線(xiàn)從上到下、從左到右依次掃描。在這個(gè)過(guò)程中,只需將幀緩存中的圖像像素數據依次輸出,就可以實(shí)現屏幕圖像顯示。

  2.4 FIFO 幀緩存模塊

  DDR 控制器隨著(zhù)系統時(shí)鐘不斷往FIFO 寫(xiě)數據, 當一幀數據寫(xiě)滿(mǎn)時(shí)就不再進(jìn)行寫(xiě)狀態(tài),而等待LCD 控制器進(jìn)行讀狀態(tài), 顏色處理器從FIFO 中獲取數據, 每次從FIFO 中讀取32 bit 數據并不斷送給LCD.顏色處理器將每一個(gè)字節作為一個(gè)像素數據,并將一個(gè)字節的像素數據轉換為3 個(gè)字節的RGB 數據。顏色處理器從同步FIFO 緩沖器中讀取數據,當同步FIFO 緩沖器寫(xiě)和讀相互不沖突時(shí),同步FIFO 緩沖器產(chǎn)生讀請求,讓Avalon 主端口向Avalon 總線(xiàn)發(fā)起讀傳輸,從總線(xiàn)上獲取的數據將寫(xiě)入同步FIFO 緩沖器,顏色處理器從FIFO 中讀取像素值,并且傳給LCD 顯示模塊。

  3 Modelsim 仿真與測試

  1)Avalon 從端口仿真與測試

  由圖2 可知,從端口一位地址對應一位數據。當寫(xiě)信號有效時(shí),將數據寫(xiě)入相應的寄存器;當讀信號有效時(shí),對應寄存器地址將數據輸出。通過(guò)從端口數據寫(xiě)入來(lái)控制LCD 模塊,控制LCD 讀取圖像的首地址和讀取數據的長(cháng)度。

從端口仿真波形圖

  圖2 從端口仿真波形圖

2)Avalon 主端口仿真與測試

  Avalon 模塊的作用是響應Avalon 主端口的讀請求,并將FIFO 中的相應數據輸出給Avalon 主端口。通過(guò)讀信號和相應地址主端口,不斷地從FIFO 中讀取圖像數據,并按照LCD時(shí)序將圖像數據輸送給LCD.圖3 為Avalon 主端口從顯存中讀取數據時(shí)的仿真波形圖。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 設計 IP 控制器 SOPC 基于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>