梁 旭,凌朝東②
(①?gòu)B門市集成電路設(shè)計(jì)公共服務(wù)平臺(tái),福建 廈門 361008;②廈門市專用集成電路系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,福建 廈門 361008)
嵌入式處理器內(nèi)核是SOPC技術(shù)的核心,目前市場(chǎng)上使用最多的SOPC系統(tǒng)軟核處理器是Altera公司的Nios與Nios II。Nios II處理器的最大特點(diǎn)是其可配置性能,即用戶可以根據(jù)自己的標(biāo)準(zhǔn)定制處理器,按照需要選擇合適的外設(shè)、存儲(chǔ)器和接口,此外還可以輕松集成自己專有的功能,使設(shè)計(jì)具有獨(dú)特的競(jìng)爭(zhēng)優(yōu)勢(shì)。定制Nios II處理器系統(tǒng)是采用Altera提供的系統(tǒng)級(jí)設(shè)計(jì)工具SOPC Builder完成[1]。
針對(duì)SOPC Builder系統(tǒng)沒有提供TRDB-LTM液晶模塊驅(qū)動(dòng)的問題,提出了基于 Avalon總線的 TRDB-LTM(The Terasic LCD Touch Panel Module)控制器IP核設(shè)計(jì),并構(gòu)建了基于Nios II嵌入式處理器的片上系統(tǒng)。設(shè)計(jì)的TRDB-LTM控制器的IP核可以和系統(tǒng)自帶的接口組件一樣,直接掛接于Avalon總線,作為Nios II軟核嵌入式處理器的一個(gè)外設(shè)。
Avalon總線是SOPC硬件系統(tǒng)的重要組成部分,是設(shè)計(jì)者構(gòu)建SOPC硬件系統(tǒng)、開發(fā)自定義外設(shè)IP的基礎(chǔ)。Avalon接口規(guī)范定義了外設(shè)和Avalon開關(guān)互聯(lián)結(jié)構(gòu)(Avalon Switch Fabric)之間的數(shù)據(jù)傳輸。Avalon接口是一種開放標(biāo)準(zhǔn),使用Avalon接口創(chuàng)建和發(fā)布定制外設(shè)不需要任何授權(quán)[1]。
Avalon端口分為主端口和從端口。TRDB-LTM控制器即可以提供從端口,也可以提供主端口。一般的LCD控制器[2]作為從端口時(shí),要使用DMA和中斷控制,或者采用流模式,并由 CPU協(xié)調(diào)管理,占用硬件資源比較多,效率不是最高[3]。該系統(tǒng)充分應(yīng)用了Avalon總線多主控的特點(diǎn),將TRDB-LTM控制器作為主端口來用,其基本原理是把 SDRAM 作為TRDB-LTM 的幀緩沖器,將影像緩存到 SDRAM 中,TRDB-LTM控制器在不介入Nios II處理器下,可以主動(dòng)地讀取SDRAM中的數(shù)據(jù),對(duì)TRDB-LTM做掃描顯示,從而實(shí)現(xiàn) TRDB-LTM 控制器數(shù)據(jù)的單向流動(dòng)和較高的數(shù)據(jù)傳輸效率。
Avalon定義了5種傳輸方式:從端口傳輸、主端口傳輸、流水線讀傳輸、流傳輸控制和三態(tài)傳輸。TRDB-LTM控制器使用的是效率較佳的流水主端口讀傳輸。
流水讀傳輸在地址階段結(jié)束后,readdata不必立即返回。在一段時(shí)間后,當(dāng)Avalon總線設(shè)置readdatavalid有效后,有效的readdata才返回,且是按照主端口請(qǐng)求的相同順序返回。Avalon總線設(shè)置readdatavalid有效的時(shí)間沒有限制。流水主端口可以選擇使用 flush信號(hào),用于當(dāng)主外設(shè)確定不需要所有當(dāng)前正在被掛起的傳輸數(shù)據(jù)時(shí)的情況。圖1顯示了幾個(gè)流水主端口讀傳輸[3-4]。
圖1 主端口流水讀傳輸
TRDB-LTM 控制器按傳輸模式可劃分為兩部分:基于Avalon主端口傳輸部分和基于Avalon從端口傳輸部分,如圖2所示。
圖2 TRDB-LTM控制器IP核的結(jié)構(gòu)框
基于Avalon主端口傳輸部分包括3個(gè)模塊,分別是異步FIFO、數(shù)據(jù)處理模塊和LCD時(shí)序發(fā)生器。其中,異步FIFO是用來做數(shù)據(jù)的時(shí)鐘域轉(zhuǎn)換,這是由于Avalon總線接口模塊和 TRDB-LTM 控制器工作在不同的時(shí)鐘域,如果直接傳送數(shù)據(jù)將會(huì)使電路進(jìn)入亞穩(wěn)態(tài),無(wú)法正常工作,因此需要使用異步FIFO來緩存SDRAM中的數(shù)據(jù)。數(shù)據(jù)處理模塊是將寫入FIFO的數(shù)據(jù)輸出到LCD端口上進(jìn)行處理。LCD時(shí)序發(fā)生器用來產(chǎn)生LCD顯示時(shí)需要的行同步信號(hào)HD、 幀同步信號(hào)VD、數(shù)據(jù)使能信號(hào)DEN及R、G、B信號(hào)[5]。
基于Avalon從端口傳輸部分包括兩個(gè)模塊,分別是I2S串行接口控制模塊和LCD三線配置模塊。其中,I2S串行接口控制模塊用于產(chǎn)生I2S三線控制信號(hào)和配置時(shí)所需的其他控制信號(hào)。LCD三線配置模塊主要用來對(duì)TRDB-LTM顯示控制器進(jìn)行各種功能配置。
使用SOPC Builder將TRDB-LTM控制器IP核[6]打包。圖3是Signals標(biāo)簽顯示Avalone總線信號(hào)與TRDB-LTM控制器各信號(hào)的連接界面,其中,端口命名是遵循 Altera建議的Avalon信號(hào)類型最新命名規(guī)則[7]。這樣,SOPC Builder會(huì)自動(dòng)得知每個(gè)信號(hào)的接口與信號(hào)類型,避免一一指定每個(gè)端口。
圖3 TRDB-LTM控制器掛接到Avalone總線的界面
為了檢驗(yàn) TRDB-LTM 控制器 IP核的效果,可將TRDB-LTM控制器IP核添加到一個(gè)完整的NiosⅡ系統(tǒng)中進(jìn)行測(cè)試,如圖4所示。其中,一些較慢的從端口都可通過Pipeline Bridge與主端口通信,這樣可以提高整個(gè)系統(tǒng)的頻率Fmax。
圖4 TRDB-LTM控制器IP核添加到NiosⅡ系統(tǒng)后的生成界面
測(cè)試TRDB-LTM控制器IP核的效果是在NiosⅡIDE中進(jìn)行的。SOPC中每個(gè)外設(shè)以文件形式來定義,存放在指定的SOPC Builder部件目錄下[1,8],圖5是LTM_Controller的目錄結(jié)構(gòu),是由一些特定名稱文件夾和C文件組成。
圖5 LTM_Controller部件的目錄結(jié)構(gòu)
最后使用Nios II IDE建立用戶應(yīng)用程序。實(shí)際測(cè)試是在 Altera的 DE2-70開發(fā)板上進(jìn)行的。該系統(tǒng)能實(shí)現(xiàn)在TRDB-LTM液晶屏上顯示從SD卡中讀取的bmp圖片,實(shí)際的顯示效果如圖6所示。
圖6 實(shí)際的顯示效果
介紹了基于Nios II的TRDB-LTM控制器IP核的設(shè)計(jì),根據(jù)自頂向下的設(shè)計(jì)思想,將IP 核進(jìn)行層次功能劃分設(shè)計(jì),并對(duì)IP 核進(jìn)行仿真驗(yàn)證,最后加入到 NiosII系統(tǒng)中進(jìn)行測(cè)試。實(shí)現(xiàn)了Avalon總線時(shí)序與液晶顯示模塊的時(shí)序轉(zhuǎn)換,同時(shí)編寫了該模塊的軟件驅(qū)動(dòng)程序,并下載到DE2-70的板進(jìn)行驗(yàn)證。測(cè)試結(jié)果表明該IP核顯示效果良好。此外用戶可以將組件文件夾放到系統(tǒng)組件文件夾下,啟動(dòng)系統(tǒng)時(shí),系統(tǒng)會(huì)自動(dòng)加入該IP核,可以應(yīng)用于以NiosII為核心的需要圖形顯示的嵌入試系統(tǒng)中。
[1] 李蘭英. NiosⅡ嵌入式軟核 SOPC設(shè)計(jì)原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社, 2006:57-87,248-271.
[2] 朱海濤. 液晶顯示器電磁泄漏信息偵收難度分析[J].信息安全與通信保密,2011(01):7-80.
[3] 李順方,周衛(wèi)星,白潔. 基于Avalon總線的可配置LCD控制器IP核的設(shè)計(jì)[DB/OL].(2007-06-12) [2011-06-25]. http://www.paper.edu.cn.
[4] Altera Corporation. Avalon Interface Specifications Version 1.2[DB/OL]. (2009-04-01) [2010-09-25]. http://www.altera.com.
[5] Terasic Technologies. TRDB_LTM User Manual[DB/OL].(2011-06-24) [2011-06-30].http://www.terasic.com.tw/cgibin/page/archive.pl?Language=English&CategoryNo=68&No=213&PartNo=3#section.
[6] 黃建軍,王金明,于堅(jiān). 基于FPGA的8051 IP核的設(shè)計(jì)與應(yīng)用[J].軍事通信技術(shù),2008,29(02):86-89.
[7] Altera Corporation. SOPC Builder User Guide Version 1.0[EB/OL].(2010-11-20)[2011-05-30]. http://www.altera.com.
[8] 侯長(zhǎng)宏,袁慧梅. 基于 SOPC的 NiosⅡ與液晶模塊接口及程序設(shè)計(jì)[J].液晶與顯示,2008,23(03):307-311.