新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 如何設(shè)計基于Avalon總線的可配置LCD控制器IP核?

如何設(shè)計基于Avalon總線的可配置LCD控制器IP核?

作者: 時間:2018-08-02 來源:網(wǎng)絡(luò) 收藏

基于NiosII 軟核的SOPC(System ON Programmable Chip)是Altera 公司提出的片上可編程系統(tǒng)解決方案,它將CPU、存儲器、I/O接口、DSP 模塊以及鎖相環(huán)(PLL)的系統(tǒng)設(shè)計所必須的模塊集成到一片F(xiàn)PGA 上,構(gòu)成一個可編程的片上系統(tǒng),使所設(shè)計的電路在其規(guī)模、可靠性、體積、功耗、功能、上市周期、開發(fā)成本、產(chǎn)品維護(hù)以及硬件升級等多方面實現(xiàn)最優(yōu)化。

本文引用地址:http://www.butianyuan.cn/article/201808/384965.htm

目前在Altera SOPC Builder 下集成了包括UART、SPI、Ethernet、SDRAM、Flash、DMA等控制器的IP 核。此外,用戶也可以根據(jù)系統(tǒng)的需要自己設(shè)計或者購買第三方廠商的IP 核通過Avalon 總線像搭積木一樣方便地將這些IP 捆綁的系統(tǒng)上。但是在顯示接口上,Altera公司只提供了一個16*2 的字符型LCD 控制器的IP 核,只能用來顯示數(shù)字和英文字母。如用戶需要圖形顯示(如MP4 和PDA)則需要外接專用控制芯片或自己設(shè)計IP 核,使用起來很不方便。因此我們設(shè)計一個基于Nios II 系統(tǒng)的可配置LCD 控制器的IP 核,本IP 核可以方便的通過Avalon 掛接到Nios II 的系統(tǒng)上??紤]到目前LCD 顯示屏的實際需要,我們設(shè)計的LCD 顯示控制IP 核具有以下主要功能:

·以Avalon 總線流傳輸模式提供接口;

·為LCD 屏提供掃描時序信號和顯示數(shù)據(jù);

·提供可以選擇的分辨率,最大可以支持1024*768;

·可以通過軟件配置顯存的基地址和大小;

1. Avalon 總線規(guī)范

1.1 總線概述

Avalon 總線是Altera 公司為SOPC 系統(tǒng)開發(fā)的一種專用的內(nèi)部連線技術(shù),是一種理想的用于系統(tǒng)處理器和外設(shè)之間的內(nèi)聯(lián)總線。它是構(gòu)建在Nios II 軟核的基礎(chǔ)上,由Altera 公司提供SOPC Builder 系統(tǒng)設(shè)計工具自動生成。

Avalon 總線支持多個主外設(shè),任何一個主外設(shè)都可以直接進(jìn)行存儲器訪問(DMA),而無須Nios II 處理器的干預(yù)。一般的系統(tǒng)總線(如AMBA 總線)都是采用主端總裁機(jī)制,而Avalon 采用DMA 從端仲裁機(jī)制,能夠?qū)崿F(xiàn)真正意義上的多模塊DMA 并行傳輸,而不相互影響。

Avalon 總線允許多個主端口連接到總線模塊,實現(xiàn)總線的的并發(fā)多主端口傳輸?shù)墓δ?,而總線模塊不需要額外的特殊信號;當(dāng)有多個主外設(shè)試圖同時訪問同一外設(shè)時,由模塊內(nèi)部的從端口仲裁邏輯來處理沖突,對于主端口來說,它并不會感到有另一個主端口也在爭用該外設(shè),而是簡單的發(fā)現(xiàn)它的等待請求信號一直有效,直到目標(biāo)外設(shè)從端口準(zhǔn)備好來處理自己的請求。因此,多個主外設(shè)只要不是同時訪問同一個從外設(shè),即可同時進(jìn)行總線傳輸。仲裁的詳細(xì)信息被封裝在總線內(nèi)部,主外設(shè)和從外設(shè)的接口是一致的,與外設(shè)的數(shù)量無關(guān)。

1.2 Avalon 總線流傳輸模式

Avalon 規(guī)定了各種傳輸模式,這里只介紹本IP 核所使用的流傳輸模式。關(guān)于其他的總線模式讀者可以Avalon 的總線規(guī)范。

流傳輸模式是在流模式主外設(shè)和流模式從外設(shè)之間建立一個開放的信道以供連續(xù)的數(shù)據(jù)傳輸。該信道使得只要存在有效數(shù)據(jù),數(shù)據(jù)便能在主從端口對之間流動,主外設(shè)不必為了確定從端口是否可用而不斷地訪問從外設(shè)的寄存器。流傳輸模式使得主從端口之間的數(shù)據(jù)吞吐量達(dá)到最大,同時避免了從外設(shè)數(shù)據(jù)溢出。流傳輸模式最適合DMA 傳輸。一個只包含簡單的流控制信號和一個計數(shù)器的DMA 控制器就可以用來在一個從外設(shè)和一個存儲器之間連續(xù)地傳輸數(shù)據(jù)。

由于數(shù)據(jù)流是從Avalon 總線流向LCD 控制器,所以是流模式的從端口寫傳輸。圖1 顯示了流模式從端口寫傳輸?shù)哪P汀?/p>

除了基本從端口傳輸中使用的信號外,流模式外設(shè)的接口中又引入了readyfordata、dataavailable 和 endofpacket 三個信號。流模式從端口就是指使用了一個或多個上述信號的從端口。readyfordata 有效表示外設(shè)準(zhǔn)備好接受 Avalon 總線模塊的寫傳輸;dataavailable 有效表示能夠為來自 Avalon 總線模塊的讀傳輸提供數(shù)據(jù)。Avalon 總線模塊只在 readyfordata或 dataavailable 有效時才會發(fā)起傳輸行為。endofpacket 信號的含義取決于用戶設(shè)計。

2. Avalone 流模式LCD 控制器IP 核設(shè)計

LCD 控制器按功能可劃分為三個模塊:接口模塊,數(shù)據(jù)處理模塊和時序產(chǎn)生模塊。接口模塊主要用來對系統(tǒng)進(jìn)行配置,獲取系統(tǒng)狀態(tài)信息以及從內(nèi)存讀出將要顯示的數(shù)據(jù)信息;數(shù)據(jù)處理模塊根據(jù)系統(tǒng)的配置信息,對讀入控制器的內(nèi)存數(shù)據(jù)進(jìn)行相應(yīng)的處理,以符合用戶設(shè)置的顯示要求;時序產(chǎn)生模塊產(chǎn)生顯示時序信號,使得系統(tǒng)在不同的配置下都能產(chǎn)生與之相應(yīng)的精確時序,以保證圖象的正確顯示。

在具體實現(xiàn)時,這三個部分又可以劃分為不同的功能模塊來完成系統(tǒng)的總體功能。整個模塊包括配置寄存器接口模塊、DMA 接口模塊組成和異步FIFO 模塊,時序產(chǎn)生部分由時序產(chǎn)生模塊構(gòu)成。

2.1 DMA 接口模塊

一般情況下,LCD 顯示需要進(jìn)行大批量的數(shù)據(jù)傳送。在標(biāo)準(zhǔn) VGA(640×480 60Hz)模式下,每個像素點(diǎn)的掃描周期只有40ns。如此高速的數(shù)據(jù)傳輸,如果直接通過CPU 來操作,將會消耗大量的CPU 時間。為了提高CPU 的工作效率,我們在Nios II 下利用DMA(Direct Memory Access,直接存儲器訪問)來完成。利用DMA 控制器在LCD 控制器和顯示存儲器SDRAM 之間建立一條專用的DMA 傳輸通道,通過DMA 控制器自動的讀去圖象數(shù)據(jù),不需要CPU 干預(yù)。

在DMA 傳輸時,首先需要由CPU 對DMA 進(jìn)行初始化,設(shè)置顯示存儲器的基地址和長度以及LCD 控制器輸入寄存器的地址,然后打開DMA 傳輸通道,使DMA 在沒有CPU 干預(yù)的情況下直接從顯示存儲器讀取顯示數(shù)據(jù)傳送到LCD控制的FIFO中。Nios II 可以在DMA暫停傳輸?shù)钠陂g操作SDRAM 中的顯存,完成LCD 顯示圖像的更新。

DMA 接口采用Avalon 主設(shè)備端口來實現(xiàn)。

2.2 配置積存器接口模塊

系統(tǒng)可以通過配置寄存器接口模塊對LCD 顯示控制器進(jìn)行各種功能配置;LCD 控制器也可以通過接口模塊向系統(tǒng)反饋所需的狀態(tài)信息,從而實現(xiàn)對系統(tǒng)狀態(tài)的檢測和控制。通過針對不同種類的LCD 屏幕和不同的顯示模式提供相應(yīng)寄存器,可以保證對于各種LCD 顯示屏的兼容。

2.3 異步FIFO 模塊

由于總線接口模塊和LCD 控制器工作在不同的時鐘域,如果直接傳送數(shù)據(jù)將會使電路進(jìn)入亞穩(wěn)態(tài),無法正常工作。所以使用異步FIFO 做為接口在兩個時鐘之間傳遞數(shù)據(jù)。典型的異步FIFO 由異步雙端口RAM 和控制邏輯構(gòu)成。


上一頁 1 2 下一頁

關(guān)鍵詞: Avalon總線 LCD控制器 IP核

評論


相關(guān)推薦

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

關(guān)閉