版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘 要</b></p><p> SOPC觸控屏接口驅(qū)動(dòng)設(shè)計(jì)緊跟嵌入式系統(tǒng)發(fā)展趨勢(shì),采用一種新的嵌入式系統(tǒng)設(shè)計(jì)技術(shù)——SOPC(片上可編程系統(tǒng))技術(shù)進(jìn)行的觸控屏接口驅(qū)動(dòng)設(shè)計(jì)產(chǎn)品開發(fā)。TFT觸摸屏具有電壓低、功耗小、易集成、輕巧便攜以及顯示效果好等突出優(yōu)點(diǎn),現(xiàn)已廣泛應(yīng)用于各種顯示領(lǐng)域,在人機(jī)交互中扮演著重要的角色。</p><p> 本
2、文設(shè)計(jì)的是基于SOPC觸控屏接口驅(qū)動(dòng)。該驅(qū)動(dòng)設(shè)計(jì)分為硬件開發(fā)和軟件開發(fā)兩個(gè)流程。通過(guò)軟件控制硬件電路觸控屏的顯示。</p><p> 本設(shè)計(jì)采用Altera公司的CycloneIII系列的FPGA芯片配置Nios II處理器,采用Verilog語(yǔ)言編寫觸控屏接口驅(qū)動(dòng);在SOPC用戶自定義IP核添加設(shè)計(jì)的驅(qū)動(dòng)組件;使用Altera公司提供的Quartus II 8.0和Nios II 8.0作為調(diào)試環(huán)境;完成了設(shè)
3、計(jì)任務(wù),達(dá)到了預(yù)期的效果。</p><p> 關(guān)鍵詞:Nios II;Quartus II;FPGA;Verilog;SOPC</p><p><b> Abstract</b></p><p> The SOPC touch screen interface drive design follows embedded systems d
4、evelopment trend, using a new method of embedded system design technology -- the SOPC (chip programmable system) technology for touch screen interface drive design product development. TFT touch screen with voltage, low
5、consumption, easy integration, lightweight portable and display prominent advantages effect is good, has been widely applied in all kinds of display field, in human-computer interaction plays an important role</p>
6、<p> This design is based on the SOPC touch screen interface drivers. The driver design into hardware development and software development two processes. Through software control hardware circuit touch screen disp
7、lays.</p><p> The system uses Altera's FPGA chip configuration CycloneIII series NiosII processor, The touch screen is base on Verilog language preparation interface drive; Using the SOPC user-defined I
8、P nuclear add design driver components ; using Altera's Quartus II 8.0 companies and Nios II 8.0As a debugging environment; to complete the design task to achieve the desired results.</p><p> Keywords:
9、Nios II;Quartus II;FPGA;Verilog;SOPC</p><p><b> 目錄</b></p><p><b> 1 緒論1</b></p><p> 1.1 SOPC Builder1</p><p> 1.2 Verilog HDL語(yǔ)言及Modelsi
10、m SE 6.0軟件2</p><p> 1.3 軟件QuartusⅡ8.03</p><p> 1.4 IP核簡(jiǎn)介3</p><p> 1.5 LCD控制器IP核設(shè)計(jì)意義和目的4</p><p> 2 Avalon總線規(guī)范5</p><p> 2.1 Avalon總線特點(diǎn)5</p
11、><p> 2.2Avalon從端口傳輸5</p><p> 2.2.1 Avalon從端口信號(hào)介紹5</p><p> 2.2.2 Avalon從端口讀傳輸6</p><p> 2.3 Avalon主端口傳輸7</p><p> 2.3.2 Avalon主端口讀傳輸7</p>
12、<p> 2.3.3 Avalon主端口寫傳輸8</p><p> 2.4 Avalon總線地址對(duì)齊方式8</p><p> 2.4.1 本地地址對(duì)齊9</p><p> 2.4.2 動(dòng)態(tài)地址對(duì)齊9</p><p> 3基于SOPC的觸控屏驅(qū)動(dòng)電路設(shè)計(jì)10</p><p> 3
13、.1 觸控屏設(shè)計(jì)思路10</p><p> 3.1.1 LCD控制器原理11</p><p> 3.1.2 總體設(shè)計(jì)結(jié)構(gòu)11</p><p> 3.2 觸控屏功能模塊12</p><p> 3.2.1 Avalon-MM Slave接口模塊12</p><p> 3.2.2 Avalon
14、-MM Master接口模塊14</p><p> 3.2.3 觸控屏?xí)r序產(chǎn)生模塊15</p><p> 3.2.4FIFO幀緩存模塊18</p><p> 3.3 Modelsim仿真18</p><p> 3.3.1 測(cè)試原理與波形19</p><p> 4基于SOPC觸控屏系統(tǒng)硬件設(shè)
15、計(jì)21</p><p> 4.1 開發(fā)板簡(jiǎn)介22</p><p> 4.1.1 核心板22</p><p> 4.1.2 SDRAM接口22</p><p> 4.2 SOPC系統(tǒng)特點(diǎn)與開發(fā)流程23</p><p> 4.3 SOPC Builder硬件開發(fā)環(huán)境25</p>
16、<p> 4.3.1 SOPC Builder功能25</p><p> 4.3.2 SOPC Builder組件25</p><p> 4.4 SOPC Builder創(chuàng)建系統(tǒng)模塊26</p><p> 4.4.1 創(chuàng)建Quartus II工程26</p><p> 4.4.2 配置SOPC Build
17、er27</p><p> 4.4.3 生成Nios II系統(tǒng)33</p><p> 4.5 集成NiosII系統(tǒng)到QuartusII工程33</p><p> 4.5.1 創(chuàng)建包含Nios II系統(tǒng)的Quartus II頂層模塊34</p><p> 4.5.2 FPGA引腳分配及其他設(shè)置35</p>
18、<p> 4.5.3 Quartus II工程的編譯并下載35</p><p> 5 基于SOPC的觸控屏軟件設(shè)計(jì)37</p><p> 5.1 NiosII編程37</p><p> 5.1.1 HAL系統(tǒng)庫(kù)37</p><p> 5.1.2 Nios II IDE工程結(jié)構(gòu)38</p>
19、<p> 5.1.3 數(shù)據(jù)寬度和HAL類型定義39</p><p> 5.2 創(chuàng)建C/C++工程39</p><p> 5.3 配置工程的系統(tǒng)屬性40</p><p> 5.4 編譯及運(yùn)行41</p><p><b> 結(jié) 論43</b></p><p><
20、;b> 致 謝44</b></p><p><b> 參考文獻(xiàn)45</b></p><p> 附錄A 英文原文46</p><p> 附錄B 中文翻譯60</p><p><b> 1 緒論</b></p><p> 近年來(lái),隨著半
21、導(dǎo)體技術(shù)的發(fā)展,SOPC (System-on-a-Programmable-Chip),即可編程片上系統(tǒng)。 用可編程邏輯技術(shù)把整個(gè)系統(tǒng)放到一塊硅片上,稱作SOPC??删幊唐舷到y(tǒng)(SOPC)是一種特殊的嵌入式系統(tǒng):首先它是片上系統(tǒng)(SOC),即由單個(gè)芯片完成整個(gè)系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),具有靈活的設(shè)計(jì)方式,可裁減、可擴(kuò)充、可升級(jí),并具備軟硬件在系統(tǒng)可編程的功能[11]。</p><p> 1.
22、1 SOPC Builder</p><p> SOPC Builder是Altera公司實(shí)現(xiàn)SOPC概念的一款工具軟件,使得用戶可以通過(guò)自定義邏輯的方法方便地開發(fā)基于Nios II的SOPC系統(tǒng)。SOPC Builder集成在EDA工具Quartus II中,提供Nios II處理器及一些常用外設(shè)接口,用于組建一個(gè)在模塊級(jí)和組件級(jí)定義的系統(tǒng),能夠自動(dòng)生成片外、總線和總線仲裁器等所需的邏輯。基于SOPC的設(shè)計(jì)
23、在很大程度上依賴于利用集成電路IP(intellectual property)[1]。集成電路IP是指經(jīng)過(guò)預(yù)先設(shè)計(jì)、預(yù)先驗(yàn)證、符合產(chǎn)業(yè)界普遍認(rèn)同的設(shè)計(jì)規(guī)范和設(shè)計(jì)標(biāo)準(zhǔn),具有相對(duì)獨(dú)立,并可以重復(fù)利用的電路模塊或子系統(tǒng)。LCD控制器IP核設(shè)計(jì),用硬件描述語(yǔ)言實(shí)現(xiàn)控制器的邏輯功能,這種參數(shù)化的組件設(shè)計(jì)具有很強(qiáng)的通用性和兼容性。</p><p> NiosⅡ是Altera公司推出的第二代IP軟核處理器,與其它IP核一起
24、構(gòu)成了SOPC系統(tǒng)的主要部分。SOPC Builder在EDA工具QuartusII中,提供了Nios II處理器及一些常用外設(shè)接口,如FLASH、SDRAM控制器、SPI接口、時(shí)鐘橋、三太橋以及鎖相環(huán)PLL等,對(duì)于一些庫(kù)中沒(méi)有提供的模塊用戶可以定義添加。用戶可以通過(guò)自定義邏輯的方法在SOPC設(shè)計(jì)中添加自開發(fā)的IP核。定制用戶邏輯外設(shè)是使用NiosⅡ嵌入式軟核處理器的SOPC系統(tǒng)的重要特性。本文采用自定義添加TFT觸控屏接口驅(qū)動(dòng)定制用戶
25、邏輯外設(shè)。采用Cyclone III EP3C40F484C6開發(fā)板自帶觸摸屏 (分辨率為800×484,可以顯示字、彩圖等),利用SPOC Builder中元件編輯器Create New Component,實(shí)現(xiàn)了嵌入式Nios II軟核處理器與TFT觸摸屏顯示模塊驅(qū)動(dòng)接口的系統(tǒng)設(shè)計(jì),并給出了相應(yīng)的系統(tǒng)硬、軟件的流程和主要程序。本設(shè)計(jì)核心是嵌入式系統(tǒng)的硬件配置、硬件設(shè)計(jì)、硬件仿真、硬件調(diào)試、軟件設(shè)計(jì)、軟件調(diào)試等。</p
26、><p> SOPC Builder是Altera NiosⅡ嵌入式處理器開發(fā)軟件包,用于實(shí)現(xiàn)Nios II系統(tǒng)的配置、生成;Nios II IDE,用于進(jìn)行軟件開發(fā)、調(diào)試及運(yùn)行?;贜ios II的SOPC系統(tǒng)開發(fā)分為硬件開發(fā)和軟件開發(fā)兩個(gè)流程。硬件開發(fā)過(guò)程包括由用戶定制系統(tǒng)硬件的構(gòu)建,采用Verilog語(yǔ)言進(jìn)行SOPC的觸控屏接口設(shè)計(jì),之后在SOPC軟件下添加,然后由計(jì)算機(jī)完成硬件系統(tǒng)的生成;軟件開發(fā)則與單片機(jī)
27、語(yǔ)言開發(fā)一樣,在構(gòu)建的硬件系統(tǒng)之上建立軟件設(shè)計(jì)。利用Quartus II工具,用于完成Nios II系統(tǒng)的綜合、硬件優(yōu)化、適配、編程最后下載到開發(fā)板中進(jìn)行硬件系統(tǒng)測(cè)試;在構(gòu)建的硬件系統(tǒng)之上建立軟件設(shè)計(jì),利用Nios II軟件編寫簡(jiǎn)單的C程序控制觸控屏顯示簡(jiǎn)單的圖像,驗(yàn)證設(shè)計(jì)的正確性和可靠性。一般LCD 控制器的中央控制單元都是相同的。因此, 可以通過(guò)合理的功能劃分, 考慮將中央控制單元設(shè)計(jì)成IP。有了成熟的中央控制單元, 再配合特定LC
28、D 接口電路和CPU 接口電路, 就可以滿足不同的應(yīng)用需求, 有效地解決重復(fù)設(shè)計(jì)問(wèn)題,而且SOPC嵌入式設(shè)計(jì)周期短、效率高并且在以后的生活中應(yīng)用率高并且有</p><p> 1.2 Verilog HDL語(yǔ)言及Modelsim SE 6.0軟件</p><p> ?。?)Verilog HDL語(yǔ)言介紹</p><p> Verilog HDL是一種硬件描述語(yǔ)言
29、,是一種以文本形式來(lái)描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語(yǔ)言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能[7]。</p><p> Verilog HDL是一種硬件描述語(yǔ)言,是一種以文本形式來(lái)描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語(yǔ)言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。在Verilog HDL中有兩種基本語(yǔ)句:連續(xù)賦值語(yǔ)句,在此表達(dá)式中寄存器和線網(wǎng)都可
30、以連續(xù)驅(qū)動(dòng)線網(wǎng),實(shí)現(xiàn)基本的結(jié)構(gòu)化建模:過(guò)程賦值語(yǔ)句,在此表達(dá)式中寄存器和線網(wǎng)都將運(yùn)算結(jié)果存入寄存器,實(shí)現(xiàn)基本的行為建模。一個(gè)設(shè)計(jì)通常包含許多模塊,每個(gè)模塊都有一個(gè)輸入/輸出的接口和該模塊相應(yīng)的功能描述。而該功能描述既可以采用結(jié)構(gòu)化的描述方式,也可以采用行為化的描述方式,或者兩者的結(jié)合。這些模塊都被加工到一定的抽象級(jí)別,然后通過(guò)線網(wǎng)互連[4]。</p><p> ?。?)Modelsim SE 6.0軟件介紹<
31、;/p><p> Modelsim具備強(qiáng)大的模擬仿真功能,在設(shè)計(jì)、編譯、仿真、測(cè)試、調(diào)試開發(fā)過(guò)程中,有一整套工具供你使用,而且操作起來(lái)極其靈活,可以通過(guò)菜單、快捷鍵和命令行的方式進(jìn)行工作。在Modelsim中進(jìn)行仿真有兩種工作方式:工程仿真流程——該方式使用工程建立仿真環(huán)境,簡(jiǎn)單、易學(xué)、易用,可以方便地借助GUI進(jìn)行對(duì)話時(shí)操作,起許多工程工具完成;基本仿真流程——直接建立仿真庫(kù),并以仿真庫(kù)為基礎(chǔ)直接進(jìn)行仿真,此工作
32、方式便于生成DO文件腳本內(nèi)容,便于批命令自動(dòng)執(zhí)行。本設(shè)計(jì)主要采用工程仿真流程,用于對(duì)用戶自定義IP核驅(qū)動(dòng)程序的仿真。</p><p> 1.3 軟件QuartusⅡ8.0</p><p> 作為Altera的新一代開發(fā)軟件,Quartus II具有簡(jiǎn)單易學(xué)、易用、可視化、集成化設(shè)計(jì)環(huán)境等優(yōu)點(diǎn),它提供了一種與結(jié)構(gòu)無(wú)關(guān)的設(shè)計(jì)環(huán)境,使得設(shè)計(jì)人員無(wú)須精通器件的內(nèi)部結(jié)構(gòu),只需運(yùn)用自己熟悉的輸入
33、工具(如原理圖輸入或高級(jí)行為描述語(yǔ)一言)進(jìn)行設(shè)計(jì),開發(fā)系統(tǒng)把這些設(shè)計(jì)轉(zhuǎn)換為最終結(jié)構(gòu)所需要的格式[5]。有關(guān)結(jié)構(gòu)的詳細(xì)知識(shí)己經(jīng)裝入開發(fā)工具軟件,設(shè)計(jì)人員無(wú)需手工優(yōu)化自己的設(shè)計(jì),因此設(shè)計(jì)的速度非??臁?lt;/p><p> QuartusⅡ編譯器是Quartus II的核心,提供了功能強(qiáng)大的設(shè)計(jì)處理功能,可以使設(shè)計(jì)更好地用Altera FPGA實(shí)現(xiàn)。出錯(cuò)定位功能和出錯(cuò)警告信息窗口中豐富的提示信息可以是設(shè)計(jì)修改變得較為輕
34、松。Quartus II設(shè)計(jì)輸入有兩種方式:原理圖方式;文本輸入方式。本文涉及采用原理圖設(shè)計(jì)輸入方式。QuartusⅡ8.0是單片可編程系統(tǒng)(SOPC)設(shè)計(jì)的綜合性環(huán)境和SOPC開發(fā)的基本設(shè)計(jì)工具; 本設(shè)計(jì)中Quartus II 用于完成Nios II系統(tǒng)的綜合、硬件優(yōu)化、適配、編程下載以及硬件系統(tǒng)調(diào)試。</p><p> 1.4 IP核簡(jiǎn)介 </p><p> IP核是一種具有自主
35、知識(shí)產(chǎn)權(quán)的功能電路模塊,其目的是將一些在數(shù)字電路中常用但比較復(fù)雜的功能模塊,如FIR濾波器、SDRAM控制器、PCI接口等設(shè)計(jì)成能讓其他用戶直接使用的模塊,以減輕工程師的負(fù)擔(dān),避免重復(fù)勞動(dòng)。隨著CPLD/FPGA的規(guī)模越來(lái)越大,設(shè)計(jì)越來(lái)越復(fù)雜,使用IP核是一個(gè)發(fā)展趨勢(shì)。中央處理器、以太網(wǎng)控制器、LCD控制器和PCI接口等都是IP核的具體例子。IP核是SOC(SystemOnChip) 設(shè)計(jì)的核心。IP核分為軟核、固核和硬核三種類型。軟核
36、是用HDL(硬件描述語(yǔ)言)方式提交,其性能已通過(guò)功能和時(shí)序驗(yàn)證。不依賴于任何實(shí)現(xiàn)工藝和實(shí)現(xiàn)技術(shù),具有很大的靈活性。使用者可以方便地將其映射到自己所使用的工藝上,可復(fù)用性很高。</p><p> 隨著筆記本電腦、便攜式信息終端、投影設(shè)備、PDA以及壁掛電視的發(fā)展,LCD作為重要的人機(jī)交互界面已經(jīng)越來(lái)越顯示出它的優(yōu)越性。其次,它的低功耗、低工作電壓、體積小、重量輕以及顯示對(duì)比度高等優(yōu)點(diǎn)。另外,在設(shè)計(jì)上可以根據(jù)產(chǎn)品的
37、需要,設(shè)計(jì)出各種多樣化的具有產(chǎn)品特色的字符圖形,從而使得產(chǎn)品更具有吸引力。一個(gè)完整的SOC系統(tǒng),包含了不同種類的IP核。對(duì)于需要人機(jī)交互的SOC系統(tǒng)來(lái)講,顯示控制器的IP核是不可缺少的。LCD顯示作為目前一種主流的顯示方式獲得廣泛應(yīng)用。因此,LCD控制器的IP核設(shè)計(jì)對(duì)于SOC應(yīng)用系統(tǒng)設(shè)計(jì)具有非常重要的意義[6]。IP核設(shè)計(jì)的主要工具是硬件描述語(yǔ)言HDL。</p><p> 1.5 LCD控制器IP核設(shè)計(jì)意義和
38、目的</p><p> LCD屏作為一種顯示器件,現(xiàn)己成為嵌入式設(shè)備中必不可少的外圍接口器件之一。LCD控制器是用于處理器與LCD顯示驅(qū)動(dòng)器之間的接口部件,它對(duì)LCD屏提供時(shí)序信號(hào)和顯示數(shù)據(jù),用來(lái)控制數(shù)據(jù)在LCD屏上的顯示,是LCD顯示系統(tǒng)的重要組成部分[6]。</p><p> 本文提出一種針對(duì)LCD控制器IP核的設(shè)計(jì)方法。該控制器具有Avalon總線接口,將其與其它標(biāo)準(zhǔn)IP核一起構(gòu)
39、成以Nios II為核心的片上系統(tǒng)。針對(duì)本設(shè)計(jì)中幀緩存讀操作的特點(diǎn),選擇以Avalon主端口接口的形式對(duì)該模塊進(jìn)行開發(fā),大大提高了處理器的運(yùn)行效率,并實(shí)現(xiàn)IP核參數(shù)化設(shè)計(jì),提高了控制器對(duì)于不同LCD屏的可復(fù)用性,最后通過(guò)對(duì)輸出緩沖FIFO的使用,解決了數(shù)據(jù)讀出時(shí)鐘與像素時(shí)鐘不同步的問(wèn)題。一個(gè)完整的SOC系統(tǒng),包含了不同種類的IP核。對(duì)于需要人機(jī)交互的SOC系統(tǒng)來(lái)講,顯示控制器的IP核是不可缺少的。LCD顯示作為目前一種主流的顯示方式獲得
40、廣泛應(yīng)用。因此,LCD控制器的IP核設(shè)計(jì)對(duì)于SOC應(yīng)用系統(tǒng)設(shè)計(jì)具有非常重要的意義。</p><p> 2 Avalon總線規(guī)范</p><p> 2.1 Avalon總線特點(diǎn)</p><p> Avalon總線規(guī)范為外設(shè)的端口與總線模塊之間的數(shù)據(jù)傳輸提供了互聯(lián)模型。它定義了一種可配置的互聯(lián)策略,允許設(shè)計(jì)者只保留支持特定的數(shù)據(jù)傳輸模式所需要的信號(hào)。在沒(méi)有主或
41、從端口先驗(yàn)知識(shí)的情況下,這種互聯(lián)策略允許任意主外設(shè)連接到任意從外設(shè)Avalon總線的主要特點(diǎn):簡(jiǎn)單性;總線邏輯資源使用的優(yōu)化減少對(duì)可編程邏輯器件和邏輯單元的占用;同步操作為同步的片上外設(shè)提供優(yōu)化的接口,避免了復(fù)雜的時(shí)序問(wèn)題,方便與片上的用戶自定義更好的集成;分開的數(shù)據(jù)、地址和控制總線提供了最簡(jiǎn)單的片上接口,通過(guò)使用專用的地址和數(shù)據(jù)總線,Avalon外設(shè)不需要對(duì)數(shù)據(jù)和地址周期進(jìn)行譯碼;高性能Avalon總線可以在每一個(gè)總線時(shí)鐘周期內(nèi)完成一
42、次數(shù)據(jù)傳送;動(dòng)態(tài)地址對(duì)齊如果在總線快讀不一致的兩個(gè)外設(shè)之間進(jìn)行數(shù)據(jù)傳送,Avalon總線的自動(dòng)地址對(duì)齊功能將自動(dòng)解決數(shù)據(jù)寬度不匹配的問(wèn)題,而不需要設(shè)計(jì)者干預(yù)。</p><p> Avalon從端口傳輸</p><p> Avalon從端口傳輸是指Avalon總線模塊與從端口之間進(jìn)行的數(shù)據(jù)傳輸。在Avalon從端口和Avalon總線模塊之間的接口是本設(shè)計(jì)驅(qū)動(dòng)的核心。</p>
43、<p> 2.2.1 Avalon從端口信號(hào)介紹</p><p> ?。?)address</p><p> Avalon從端口的address信號(hào)字尋址的,指定一個(gè)字的偏移量到從端口的地址空間。根據(jù)Avalon從端口的readdata信號(hào)或者writedata信號(hào)的寬度,從端口的地址每次訪問(wèn)一個(gè)完整的數(shù)據(jù)單元。</p><p> (2)read
44、data和writedata</p><p> readdata和writedata是在數(shù)據(jù)傳輸中負(fù)責(zé)傳送數(shù)據(jù)的從端口信號(hào)。一個(gè)Avalon從端口可以使用這兩個(gè)信號(hào),本文設(shè)計(jì)使用了這兩個(gè)信號(hào),信號(hào)寬度為32bit。</p><p> (3)chipselect、read和write</p><p> chipselect、read和write信號(hào)都是Avalo
45、n從端口的單比特輸入信號(hào),用以標(biāo)識(shí)一個(gè)新的讀或?qū)憘鬏數(shù)拈_始。當(dāng)chipselect信號(hào)無(wú)效時(shí),Avalon從端口將忽略除reset信號(hào)之外所有其他的輸入。</p><p> 2.2.2 Avalon從端口讀傳輸</p><p> ?。?)基本從端口讀傳輸</p><p> 基本從端口讀傳輸是Avalon總線規(guī)范定義的一種不具有任何總線傳輸特性的從端口度傳輸模式
46、,它是所有其它Avalon從端口讀傳輸?shù)膮⒖紭?biāo)準(zhǔn)?;緩亩丝谧x傳輸有Avalon總線模塊發(fā)起,根據(jù)外設(shè)數(shù)據(jù)端口的寬度,每次從Avalon從端口向Avalon總線模塊傳輸一個(gè)單元的數(shù)據(jù)。基本從端口讀傳輸沒(méi)有延遲,一次基本從端口讀傳輸在一個(gè)總線時(shí)鐘周期內(nèi)完成[9]。</p><p> ?。?)具有等待周期的從端口讀傳輸</p><p> 為基本從端口讀傳輸中插入等待周期在時(shí)序上擴(kuò)展了從端口讀
47、傳輸,使得Avalon從端口可以在一個(gè)或多個(gè)總線時(shí)鐘周期內(nèi)捕獲數(shù)據(jù);然而,等待周期的引入降低了從端口的最大數(shù)據(jù)吞吐量。在理想情況下基本從端口讀傳輸?shù)淖畲髷?shù)據(jù)吞吐量是每個(gè)總線時(shí)鐘周期傳輸一個(gè)數(shù)據(jù)單元,再插入一個(gè)等待周期后,最大數(shù)據(jù)吞吐量變?yōu)槊績(jī)蓚€(gè)總線時(shí)鐘周期傳輸一個(gè)數(shù)據(jù)單元[8]。從端口傳輸圖如圖2.1所示。</p><p> 2.1 從端口傳輸圖</p><p> ?。?)具有建立時(shí)間的
48、從端口讀傳輸</p><p> 一些外設(shè),大部分是片外的異步設(shè)備,在read信號(hào)有效之前,需要address和chipselect信號(hào)穩(wěn)定一段時(shí)間,這段時(shí)間稱為建立時(shí)間。具有建立時(shí)間的Avalon傳輸能自動(dòng)滿足各從端口信號(hào)的建立時(shí)間要求。具有建立時(shí)間的從端口讀傳輸使用的信號(hào)與基本讀傳輸使用的信號(hào)不同,不同的只是信號(hào)的時(shí)序。</p><p> 具有建立時(shí)間的從端口讀傳輸通常用于一些片外片
49、設(shè)。一個(gè)從外設(shè)如果具有建立時(shí)間,則意味著這個(gè)從端口讀傳輸和寫傳輸都具有相同的建立時(shí)間。在同一個(gè)外設(shè)里,建立時(shí)間不能與可變等待周期共存。</p><p> 2.3 Avalon主端口傳輸</p><p> Avalon主端口傳輸是指Avalon總線模塊和Avalon主端口之間進(jìn)行數(shù)據(jù)傳輸。</p><p> 2.3.1 Avalon主端口模塊</p&g
50、t;<p> waitrequest</p><p> waitrequest信號(hào)時(shí)Avalon主端口的輸入信號(hào),用來(lái)表示Avalon總線模塊還沒(méi)有準(zhǔn)備好進(jìn)行數(shù)據(jù)傳輸,對(duì)于主端口的傳輸,在發(fā)起總線傳輸時(shí)設(shè)置所有信號(hào)有效,然后等待直至Avalon總線模塊使waitrequest信號(hào)失效,才能繼續(xù)進(jìn)行數(shù)據(jù)傳輸。</p><p> ?。?)address</p>
51、<p> 主端口address信號(hào)代表的是字節(jié)地址,與主端口的數(shù)據(jù)寬度無(wú)關(guān)。主端口只能設(shè)置與字節(jié)邊界對(duì)其的地址有效,字邊界是建立在主端口的數(shù)據(jù)寬度基礎(chǔ)上的。</p><p> ?。?)readdata和writedata</p><p> readdata和writedata是在數(shù)據(jù)傳輸中負(fù)責(zé)傳數(shù)據(jù)的信號(hào)。本設(shè)計(jì)中使用了這兩個(gè)信號(hào)并且兩信號(hào)的寬度為32bit。.</p&
52、gt;<p> ?。?)read和write</p><p> read和write是來(lái)自于主端口的1位輸出信號(hào),表示主端口要開始發(fā)起一個(gè)讀或?qū)憘鬏斨鞫丝趥鬏斒沁B續(xù)發(fā)生的,主端口結(jié)束一個(gè)讀傳輸時(shí),它能是read連續(xù)有效,在下一個(gè)周期啟動(dòng)另一次傳輸。</p><p> 2.3.2 Avalon主端口讀傳輸</p><p> 基本主端口讀傳輸是Av
53、alon總線規(guī)范定義的一種不具有任何總線傳輸特性的主端口讀傳輸,它是所有其它Avalon主端口讀傳輸?shù)膮⒖紭?biāo)準(zhǔn)。在基本主端口讀傳輸中,主端口通過(guò)向Avalon總線模塊提供有效的地址和讀請(qǐng)求信號(hào)在時(shí)鐘上升沿發(fā)起總線傳輸。在理想情況下,讀取的數(shù)據(jù)在下一個(gè)時(shí)鐘上升沿之前從Avalon總線模塊返回,傳輸在一個(gè)總線周期內(nèi)結(jié)束。如果在下一個(gè)時(shí)鐘上升沿讀取數(shù)據(jù)還沒(méi)準(zhǔn)備好,則Avalon總線模塊便設(shè)置一個(gè)等待請(qǐng)求并使主端口暫停,直至Avalon總線模塊
54、為主端口準(zhǔn)備好有效數(shù)據(jù)。因此主端口傳輸中所帶的等待周期一定是可變的,不存在帶固定等待周期的主端口傳輸,也不存在帶建立時(shí)間和保持時(shí)間的主端口傳輸[10]。</p><p> 如果Avalon總線模塊是waitrequest信號(hào)有效N個(gè)周期,則傳輸總共需要N+1個(gè)周期,Avalon總線模塊沒(méi)有超時(shí)機(jī)制來(lái)限制主端口等待的時(shí)間,只需要waitrequest保持有效,主端口就一直處于等待狀態(tài)[8]。具有等待周期主端口傳輸
55、圖2.2所示。</p><p> 圖2.2 等待周期主端口傳輸圖</p><p> 2.3.3 Avalon主端口寫傳輸</p><p> 基本主端口寫傳輸是Avalon總線規(guī)范定義的一種不具有任何總線傳輸特性的主端口寫傳輸,它是所有其它Avalon主端口寫傳輸?shù)膮⒖紭?biāo)準(zhǔn)?;局鞫丝趯憘鬏斢葾valon主端口發(fā)起,每次從Avalon主端口向Avalon總線模
56、塊傳送一個(gè)數(shù)據(jù)單元。如果Avalon總線模塊不能在第一個(gè)總線周期內(nèi)捕獲數(shù)據(jù),就將waitrequest信號(hào)設(shè)置為有效,使Avalon主端口進(jìn)入等待狀態(tài)。</p><p> 2.4 Avalon總線地址對(duì)齊方式</p><p> 當(dāng)系統(tǒng)中存在數(shù)據(jù)寬度不匹配的主從端口對(duì)時(shí),就必須考略地址對(duì)齊的問(wèn)題。事實(shí)上,這并不局限于Avalon總線,對(duì)于所有的處理器系統(tǒng)都會(huì)出現(xiàn)這樣的錯(cuò)誤。Avalon
57、總線模塊抽象數(shù)據(jù)的差別,以至于任何主端口都可以與任何從端口通信,而不必考慮各自數(shù)據(jù)寬度。</p><p> Avalon地址對(duì)齊特性定義了從端口數(shù)據(jù)在主端口的地址空間是如何被對(duì)齊SDRAM控制器使用的是動(dòng)態(tài)地址對(duì)齊。Avalon總線模塊訪問(wèn)內(nèi)部邏輯的接口,串行I/O外設(shè)使用本地地址對(duì)齊,地址對(duì)齊只對(duì)主端口有影響,它定義了從外設(shè)數(shù)據(jù)單元在主端口地址空間內(nèi)出現(xiàn)的位置,地址對(duì)齊方式對(duì)從端口的行為沒(méi)有任何影響。對(duì)于主端
58、口和從端口,地址對(duì)齊也不影響傳輸期間的信號(hào)或信號(hào)行為。</p><p> 2.4.1 本地地址對(duì)齊</p><p> 采用本地地址對(duì)齊方式,主端口的單個(gè)傳輸精確地對(duì)應(yīng)于從端口的單次傳輸。當(dāng)在傳輸數(shù)據(jù)的主從端口對(duì)齊中,主端口的數(shù)據(jù)寬度于從端口的數(shù)據(jù)寬度時(shí),那么在一次數(shù)據(jù)傳輸中,從端口的數(shù)據(jù)單元存放在主端口數(shù)據(jù)單元的低位,主端口數(shù)據(jù)單元的高位無(wú)效。</p><p>
59、; 2.4.2 動(dòng)態(tài)地址對(duì)齊</p><p> 傳輸數(shù)據(jù)的主從端口的數(shù)據(jù)寬度不同,則Avalon總線模塊將動(dòng)態(tài)處理數(shù)據(jù),Avalon總線模塊所提供的這種服務(wù)就稱動(dòng)態(tài)地址對(duì)齊,采用動(dòng)態(tài)地址對(duì)齊,當(dāng)較寬的主端口訪問(wèn)較窄的從端口時(shí),Avalon總線模塊需要執(zhí)行多次從端口讀傳輸,直至較窄的從端口數(shù)據(jù)單元填滿主端口的數(shù)據(jù)寬度,當(dāng)一個(gè)32位的主端口從一個(gè)8為的從端口讀取數(shù)據(jù)時(shí),Avalon總線模塊與該從端口之間進(jìn)行4次
60、成功的讀傳輸每次從端口傳輸8位數(shù)據(jù)后才能返回一個(gè)32位的有效數(shù)據(jù)單元,動(dòng)態(tài)地址對(duì)齊抽象了從端口的物理細(xì)節(jié),使得各個(gè)主端口進(jìn)行數(shù)據(jù)傳輸時(shí)好像從端口的數(shù)據(jù)寬度和主端口一致。動(dòng)態(tài)地址對(duì)齊方式省去了主端口軟件將來(lái)自較窄的外設(shè)的數(shù)據(jù)結(jié)合在一起的操作,簡(jiǎn)化了軟件的設(shè)計(jì)。</p><p> 主端口的數(shù)據(jù)寬度比從端口窄,那么在進(jìn)行數(shù)據(jù)傳輸時(shí),Avalon總線模塊將指定從外設(shè)合適的字節(jié)段來(lái)完成數(shù)據(jù)的傳輸,主端口從從端口讀取數(shù)據(jù)時(shí)
61、,Avalon總線模塊將指定從外設(shè)的某個(gè)字節(jié)段返回給主端口;主端口向從端口寫數(shù)據(jù)時(shí),Avalon總線模塊使用byteenable信號(hào)來(lái)指定將來(lái)自主端口的數(shù)據(jù)寫入從端口的那個(gè)字階段。</p><p> 基于SOPC的觸控屏驅(qū)動(dòng)電路設(shè)計(jì)</p><p> 隨著數(shù)字電子產(chǎn)品的迅猛發(fā)展,液晶顯示屏因其工作電壓低、功耗小、壽命長(zhǎng)、易集成和電磁輻射污染小等優(yōu)點(diǎn),逐漸成為了嵌入式系統(tǒng)應(yīng)用的主流。在嵌
62、入式系統(tǒng)中,LCD控制器是用在處理器之間的接口部件,它對(duì)LCD屏提供時(shí)序信號(hào)和顯示數(shù)據(jù),用來(lái)控制數(shù)據(jù)在LCD屏幕上的顯示,是LCD顯示系統(tǒng)中重要的組成部分。</p><p> 3.1 觸控屏設(shè)計(jì)思路</p><p> 根據(jù)Avalon總線規(guī)范和LCD時(shí)序要求和SOPC下自定義IP核要求編寫LCD驅(qū)動(dòng)將LCD驅(qū)動(dòng)化為各個(gè)模塊編寫,之后通過(guò)Modelsim仿真,驗(yàn)證設(shè)計(jì)代碼的正確與否。&
63、lt;/p><p> 最后將設(shè)計(jì)加入到自定義IP核中加入系統(tǒng)架構(gòu)生成硬件系統(tǒng),通過(guò)簡(jiǎn)單的軟件編程實(shí)現(xiàn)觸控屏的簡(jiǎn)單顯示。</p><p> 本設(shè)計(jì)是基于SOPC Builder中以自定義組件的形式對(duì)LCD控制器進(jìn)行設(shè)計(jì)。該控制組件具有Avalon總線接口,可以很容易地將其與其他標(biāo)準(zhǔn)IP核一起構(gòu)建以Nios II CPU 為核心的片上系統(tǒng)。針對(duì)本設(shè)計(jì)中幀緩存讀操作的特點(diǎn),選擇以Avalon主端
64、口接口形式對(duì)模塊進(jìn)行開發(fā);并實(shí)現(xiàn)IP核參數(shù)化設(shè)計(jì),提高了控制器對(duì)于其他不同規(guī)格TFT液晶屏的復(fù)用性。最終完成了對(duì)LCD控制器的測(cè)試驗(yàn)證。</p><p> (1)研究Avalon片上總線的時(shí)序,以實(shí)現(xiàn)一個(gè)基于Avalon總線LCD控制器IP核,實(shí)現(xiàn)Avalon主端口和Avalon從端口,以便基于Avalon總線和Nios II CPU構(gòu)建SOPC系統(tǒng)。</p><p> (2)對(duì)LCD
65、控制器IP核的功能在總體上進(jìn)行分析和設(shè)計(jì)。劃分各功能模塊,并對(duì)各功能模塊的功能和接口進(jìn)行分析和研究。在上述研究基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)LCD控制器的各個(gè)功能模塊,其中Avalon從端口、Avalon主端口、視頻時(shí)序發(fā)生器、顏色處理器模塊和FIFO模塊的研究與設(shè)計(jì)。</p><p> (3)使用Verilog HDL編寫測(cè)試平臺(tái)并使用ModelSim SE 6.0進(jìn)行功能仿真,對(duì)所實(shí)現(xiàn)的各個(gè)功能模塊進(jìn)行功能仿真和測(cè)試,
66、并進(jìn)行集成測(cè)試。</p><p> (4)使用SOPC Builder構(gòu)建基于Avalon總線的SOPC系統(tǒng),并搭建物理驗(yàn)證的試驗(yàn)平臺(tái)。構(gòu)建好SOPC系統(tǒng)和試驗(yàn)平臺(tái)后,在Nios II IDE集成環(huán)境下編寫測(cè)試軟件。對(duì)所設(shè)計(jì)LCD控制器IP核進(jìn)行物理驗(yàn)證。</p><p> 3.1.1 LCD控制器原理</p><p> 在嵌入式系統(tǒng)中,LCD控制器是非常重
67、要的片上外圍設(shè)備,處理器通過(guò)LCD控制器來(lái)完成對(duì)顯示驅(qū)動(dòng)器的控制,最終實(shí)現(xiàn)LCD屏的點(diǎn)亮操作,其原理如圖3.1所示。</p><p> 圖3.1 LCD控制器原理圖</p><p> 由于LCD顯示驅(qū)動(dòng)只是一個(gè)被動(dòng)系統(tǒng),也就是說(shuō),僅有驅(qū)動(dòng)器是不能實(shí)現(xiàn)LCD顯示的,還需要有控制電路提供驅(qū)動(dòng)系統(tǒng)所必需的掃描時(shí)序和顯示數(shù)據(jù)。處理器通過(guò)對(duì)LCD控制器的操作,實(shí)現(xiàn)了對(duì)LCD顯示掃描時(shí)序的設(shè)置和顯
68、示數(shù)據(jù)的寫入,從而完成對(duì)LCD的顯示操作。</p><p> 3.1.2 總體設(shè)計(jì)結(jié)構(gòu)</p><p> LCD控制器設(shè)計(jì)就是在SDRAM中開辟一段儲(chǔ)存空間,用來(lái)存放屏幕圖像的數(shù)據(jù),稱之為幀緩存。通過(guò)設(shè)計(jì)適當(dāng)?shù)挠布壿媮?lái)建立幀緩存與屏幕圖像像素之間的一一對(duì)應(yīng)的關(guān)系,并配合LCD顯示所必需的行、場(chǎng)時(shí)序信號(hào),將幀緩存中的數(shù)據(jù)不斷地輸送給LCD,完成最終的顯示刷新,其總體結(jié)構(gòu)如圖3.2所示
69、。</p><p> 圖3.2 LCD控制器總體框圖</p><p> LCD控制器刷新周期開始時(shí),主端口模塊根據(jù)幀緩存地址生成邏輯所產(chǎn)生的地址完成主端口的讀操作,實(shí)現(xiàn)幀緩存中數(shù)據(jù)的讀取,并將該數(shù)據(jù)輸送給輸出緩沖模塊。同時(shí),時(shí)序信號(hào)生成模塊依據(jù)LCD屏的時(shí)序規(guī)范生成行、場(chǎng)同步信號(hào),以及與像素同步的相關(guān)顯示點(diǎn)的橫、縱坐標(biāo)。本設(shè)計(jì)的LCD控制器數(shù)據(jù)顯示模塊,不斷從緩存中讀取屏幕顯示數(shù)據(jù)。&
70、lt;/p><p> 3.2 觸控屏功能模塊</p><p> 觸控屏控制模塊包括:一是觸控屏與Avalon總線Master接口,二是觸控屏與Avalon總線Slave接口,三是顏色處理模塊,四是觸控屏?xí)r序產(chǎn)生模塊。</p><p> 3.2.1 Avalon-MM Slave接口模塊</p><p> 本模塊掛載在Avalon總線上
71、,作為從設(shè)備使用,用來(lái)對(duì)所有的用戶邏輯進(jìn)行配置和控制。核心功能就是寄存器的操作,包括讀、寫,以及一些特殊指示與狀態(tài)信號(hào)的產(chǎn)生與轉(zhuǎn)換。</p><p> 本模塊的接口信號(hào)如下,主要可以分為三部分:Avalon總線從模式的接口信號(hào)、內(nèi)部設(shè)計(jì)的寄存器信號(hào)、各種命令與控制指示信號(hào)。本模塊實(shí)現(xiàn)的是最后在液晶屏上進(jìn)行圖形顯示功能所需要用到的硬件電路。</p><p> 硬件電路內(nèi)部各寄存器通過(guò)映射
72、在Avalon從端口的可偏移地址之內(nèi)被訪問(wèn)。本設(shè)計(jì)中所涉及的從端口寫傳輸操作只與Avalon提供的address,write,chipselect,writedata,byteenable幾組信號(hào)有關(guān),基本過(guò)程為:當(dāng)chipselect和write同時(shí)有效時(shí),將writedala信號(hào)線上的數(shù)據(jù)輸入到address映射的寄存器中。同理,從端口讀傳輸操作只與address,read,chipselect,readdata信號(hào)有關(guān),基本過(guò)程為
73、:當(dāng)chipselect和read同時(shí)有效時(shí),將address映射的寄存器中的數(shù)據(jù)輸入到readdata信號(hào)線上。</p><p> 通過(guò)從端口得到的數(shù)據(jù)分別賦值給相應(yīng)的寄存器,寄存器分為:FIFO地址寄存器,坐標(biāo)寄存器,一幀數(shù)據(jù)長(zhǎng)度寄存器。FIFO地址寄存器存放著一幀圖像數(shù)據(jù)的首地址,當(dāng)一幀圖像數(shù)據(jù)顯示完之后回到一幀圖像數(shù)據(jù)的首地址;從端口說(shuō)明見表3.1。</p><p> 表3.1
74、 slaveinterface模塊接口信號(hào)表</p><p> 為了處理方便,所有的命令字信號(hào)全部采用翻轉(zhuǎn)有效的方式,跨越時(shí)鐘域的時(shí)候更好處理信號(hào)。</p><p> 3.2.2 Avalon-MM Master接口模塊</p><p> LCD控制器的基本功能是:產(chǎn)生LCD時(shí)序信號(hào),將幀緩存中的圖像信息進(jìn)行有序輸出。由于圖形是一幀一幀的輸出到LCD屏上的,
75、而且顯示刷新的過(guò)程是無(wú)限循環(huán)的,所以必須反復(fù)執(zhí)行幀緩存讀操作。因此,本設(shè)計(jì)針對(duì)上述讀操作進(jìn)行硬件加速??梢圆粩嗟貜腇IFO讀取圖像數(shù)據(jù),并且在行、場(chǎng)和LCD顯示有效時(shí)間段讀取圖像數(shù)據(jù),其他時(shí)間不讀圖像數(shù)據(jù),減少了Avalon總線的使用,有利于圖像的顯示和減少了總線的負(fù)擔(dān),分析讀幀緩存的操作,可以發(fā)現(xiàn),該過(guò)程總是按照一定的順序?qū)⒋鎯?chǔ)器中的數(shù)據(jù)讀出來(lái)進(jìn)行顯示輸出,規(guī)律性非常強(qiáng)。</p><p> Avalon總線規(guī)
76、范中,Avalon主端口可以主動(dòng)發(fā)起數(shù)據(jù)傳輸,并且這個(gè)傳輸過(guò)程不需要處理器干預(yù)。通過(guò)設(shè)計(jì)適當(dāng)?shù)闹鞫丝诳刂七壿?,完全可以?shí)現(xiàn)連續(xù)、有序的讀取幀緩存數(shù)據(jù),而處理器的利用效率則可以隨之大大提高。Avalon主端口是能夠在Avalon總線上發(fā)起傳輸?shù)囊唤M信號(hào),與Avalon從端口一樣,Avalon主端口也有讀和寫兩種模式。在本設(shè)計(jì)中,Avalon主端口的主要作用是從FIFO中讀取幀緩存中的圖像數(shù)據(jù)。因此,只要設(shè)計(jì)主端口讀模塊就能滿足要求。由于L
77、CD控制器外設(shè)在第一次訪問(wèn)時(shí)需要幾個(gè)周期的延遲,但此后能夠在每個(gè)總線周期返數(shù)據(jù),針對(duì)于此,選擇帶延遲的讀傳輸模式。Avalon總線規(guī)范為該模式提供了一個(gè)附加的控制信號(hào)readdatavalid,用來(lái)指示從readdata端口返回了有效的數(shù)據(jù)。延遲讀傳輸模式的傳輸周期可以分成兩個(gè)獨(dú)立的階段,地址階段和數(shù)據(jù)階段。主端口在地址階段提供地址來(lái)發(fā)起一次傳輸,從端口在數(shù)據(jù)階段提交數(shù)據(jù)完成傳輸。</p><p> 本設(shè)計(jì)中,
78、當(dāng)FIFO寫滿數(shù)據(jù)時(shí)由從端口發(fā)一位數(shù)據(jù)給主端口并且把FIFO首地址賦值給主端口地址,同時(shí)開始讀FIFO中的數(shù)據(jù)并且隨著LCD時(shí)鐘的變化主端口地址加1,當(dāng)一幀數(shù)據(jù)讀完時(shí),主端口地址回到起始位,之后主端口從FIFO中不斷讀圖像數(shù)據(jù)并輸送給LCD顯示。</p><p> masterinterface模塊主要完成地址以及操作時(shí)序的產(chǎn)生、像素?cái)?shù)據(jù)緩存寫操作控制、數(shù)據(jù)寬度的變換等功能,具體的功能如下:</p>
79、<p> 根據(jù)起始地址寄存器address、傳送字節(jié)長(zhǎng)度length、配置寄存器的控制下生成主模式的地址、讀操作時(shí)序;</p><p> 將讀到的32bit數(shù)據(jù)變成24bit的RGB數(shù)據(jù),將其中的8bit無(wú)效數(shù)據(jù)丟棄(這取決于軟件中數(shù)據(jù)的組織形式,如果軟件中數(shù)據(jù)16bit一個(gè)字,且沒(méi)有無(wú)效數(shù)據(jù)的話,那么就要做相應(yīng)的處理);</p><p> 當(dāng)數(shù)據(jù)傳送完畢時(shí),產(chǎn)生翻轉(zhuǎn)有
80、效的指示信號(hào)用于啟動(dòng)像素時(shí)序產(chǎn)生模塊對(duì)緩存的讀操作;</p><p> 設(shè)計(jì)中數(shù)據(jù)的操作速度滿足顯示的需要。</p><p> 本模塊的接口信號(hào)主要由寄存器信號(hào)、主模式Avalon總線信號(hào)、緩存數(shù)據(jù)存儲(chǔ)接口構(gòu)成,具體如3.2表所示。</p><p> 表3.2 masterinterface模塊接口信號(hào)表</p><p> 本模塊采用
81、CPU時(shí)鐘,所有信息同步于此,設(shè)計(jì)過(guò)程中只需格外注意送給像素時(shí)序模塊的信號(hào)。緩存直接采用FIFO。</p><p> 3.2.3 觸控屏?xí)r序產(chǎn)生模塊</p><p> 對(duì)于本文的LCD,其引出的信號(hào)線有4根:像素?cái)?shù)據(jù)信號(hào);LCD時(shí)鐘信號(hào);行同步信號(hào);場(chǎng)同步信號(hào);使能信號(hào)。為了實(shí)現(xiàn)LCD的正常顯示,必須對(duì)以上信號(hào)按照規(guī)范的時(shí)序進(jìn)行驅(qū)動(dòng)。其中,行、場(chǎng)同步信號(hào)分別用來(lái)標(biāo)記屏幕上一行和一幀圖
82、像的顯示時(shí)間,屏幕掃描線從上到下、從左到右依次掃描。在這個(gè)過(guò)程中,只需要將幀緩存中的圖像像素?cái)?shù)據(jù)依次輸出,就可以實(shí)現(xiàn)屏幕圖像的顯示。</p><p><b> (1)行時(shí)序</b></p><p> LCD在一個(gè)行周期內(nèi)的典型信號(hào)波形如圖3.3所示,其中NCLK為L(zhǎng)CD時(shí)鐘信號(hào),HD為行同步信號(hào),以R、G、B的順序依次排列為要顯示的像素?cái)?shù)據(jù)。LCDlcdLCDLC
83、DLCD</p><p> 圖3.3 行周期內(nèi)LCD輸入信號(hào)波形</p><p> 圖3.3解釋了標(biāo)準(zhǔn)行周期內(nèi)時(shí)序信號(hào)的基本要求:當(dāng)一個(gè)低電平脈沖由HD信號(hào)線輸入到LCD,標(biāo)志著一行數(shù)據(jù)結(jié)束和下一行數(shù)據(jù)的開始,其時(shí)間間隔如圖3.5所示。數(shù)據(jù)信號(hào)從DEN為高電平時(shí)有效,低電平時(shí)無(wú)效,一行中的每一點(diǎn)像素點(diǎn)的RGB數(shù)據(jù)按照像素時(shí)鐘NCLK的頻率依次輸出,驅(qū)動(dòng)LCD數(shù)據(jù)信號(hào)線,這樣就完成了一行
84、圖像的顯示。最后,在進(jìn)行下一行圖像顯示之前,還需要重新關(guān)閉像素?cái)?shù)據(jù)信號(hào)一段時(shí)間,進(jìn)行下一行圖像數(shù)據(jù)的顯示。</p><p> 本文設(shè)計(jì)了行計(jì)數(shù)器隨著LCD時(shí)鐘頻率加1,當(dāng)計(jì)數(shù)滿時(shí)計(jì)數(shù)器清零并且隨著LCD時(shí)鐘頻率繼續(xù)計(jì)數(shù),行計(jì)數(shù)器由一個(gè)起始信號(hào)控制,當(dāng)控制信號(hào)為高電平時(shí)計(jì)數(shù)器開始計(jì)數(shù)。</p><p><b> ?。?)場(chǎng)時(shí)序</b></p><p
85、> LCD屏在一個(gè)幀周期的典型信號(hào)波形如圖3.4所示,其中VD為場(chǎng)同步信號(hào),與行周期內(nèi)信號(hào)時(shí)序類似,場(chǎng)同步信號(hào)的負(fù)脈沖標(biāo)志著新一幀圖像的開始,其時(shí)間間隔為Tvd行之中周期。同時(shí),數(shù)據(jù)信號(hào)從第Tvbp個(gè)時(shí)鐘周期開始有效,一直持續(xù)TVD個(gè)時(shí)鐘周期,在這段時(shí)間內(nèi)圖像完成從上到下一行一行的輸出顯示。在一幀圖像數(shù)據(jù)的最后一行完成顯示以后,數(shù)據(jù)信號(hào)再次被關(guān)閉,時(shí)間間隔為Tvfp。</p><p> 本文設(shè)計(jì)了場(chǎng)計(jì)數(shù)
86、器當(dāng)行計(jì)數(shù)器計(jì)滿時(shí)場(chǎng)計(jì)數(shù)器加1,當(dāng)場(chǎng)計(jì)數(shù)器計(jì)滿時(shí)標(biāo)志著一幀圖像已經(jīng)顯示完畢,也標(biāo)志著下一幀圖像數(shù)據(jù)的顯示的開始。</p><p> 圖3.4 幀周期內(nèi)LCD輸入信號(hào)波形</p><p> LCD屏在一個(gè)幀周期內(nèi)的典型信號(hào)波形如圖3.4所示,其中VD表示場(chǎng)同步信號(hào),與行周期內(nèi)信號(hào)時(shí)序類似,場(chǎng)同步信號(hào)的負(fù)脈沖標(biāo)志著新一幀圖像的開始,其時(shí)間間隔如圖3.5所示。同時(shí)數(shù)據(jù)從DEN為高電平時(shí)有效,
87、在這段時(shí)間內(nèi)圖像完成從上到下一行一行的輸出顯示。在一幀圖像的最后一行完成顯示以后,數(shù)據(jù)信號(hào)再次被關(guān)閉,時(shí)間間隔如圖3.5所示。</p><p> 圖3.5 LCD場(chǎng)時(shí)間參數(shù)</p><p> 由時(shí)序圖可以看出,行時(shí)序和場(chǎng)時(shí)序的變化規(guī)律一致,只是時(shí)序參數(shù)和計(jì)數(shù)的時(shí)間單位不同,因此在實(shí)現(xiàn)用行時(shí)序控制場(chǎng)時(shí)序。在開始信號(hào)有效時(shí)行和場(chǎng)計(jì)數(shù)器同時(shí)計(jì)數(shù),當(dāng)復(fù)位后進(jìn)入初始狀態(tài),在初始狀態(tài)中進(jìn)行初始化后
88、,進(jìn)入同步時(shí)間計(jì)數(shù)狀態(tài)。同步時(shí)間計(jì)數(shù)狀態(tài)計(jì)滿后,進(jìn)入場(chǎng)計(jì)數(shù)器技術(shù)狀態(tài),當(dāng)場(chǎng)計(jì)數(shù)器計(jì)滿后標(biāo)志著一針圖像的傳完,重新進(jìn)入行同步時(shí)間計(jì)數(shù)狀態(tài)進(jìn)行周而復(fù)始的狀態(tài)變化。</p><p><b> FIFO幀緩存模塊</b></p><p> DDR控制器隨著系統(tǒng)時(shí)鐘不斷往FIFO寫數(shù)據(jù)當(dāng)一幀數(shù)據(jù)寫滿時(shí)就不在進(jìn)行寫狀態(tài),等待LCD控制器進(jìn)行讀狀態(tài),顏色處理器模塊從FIFO 中
89、獲取數(shù)據(jù),顏色處理器每次從FIFO中讀取32bit數(shù)據(jù),并不斷送給LCD,顏色處理器將每一個(gè)字節(jié)作為一個(gè)像素?cái)?shù)據(jù),并將一個(gè)字節(jié)的像素?cái)?shù)據(jù)轉(zhuǎn)換為三個(gè)字節(jié)的RGB數(shù)據(jù)。每一個(gè)字節(jié)數(shù)據(jù)對(duì)應(yīng)一個(gè)像素,顏色處理器將RGB數(shù)據(jù)作為該像素的RGB值。同步FIFO緩沖器在Avalon主端口與顏色處理器之間進(jìn)行數(shù)據(jù)緩沖,其大小為32bit數(shù)據(jù)。顏色處理器從同步FIFO緩沖器讀取數(shù)據(jù),當(dāng)同步FIFO緩沖器寫和讀相互不沖突時(shí),同步FIFO緩沖器產(chǎn)生讀請(qǐng)求,讓
90、Avalon主端口向Avalon總線發(fā)起讀傳輸,從總線上獲取數(shù)據(jù)將寫入同步FIFO緩沖器。顏色處理器從FIFO中讀取像素值并且傳給LCD顯示模塊。</p><p> 3.3 Modelsim仿真</p><p> 為了驗(yàn)證設(shè)計(jì)的正確性,必須進(jìn)行仿真。根據(jù)設(shè)計(jì)的不同階段,仿真可以分為功能仿真(Function Simulation)和時(shí)序仿真(Timing Simulation)。功能
91、仿真又稱前仿真,是在不考慮器件延時(shí)的情況下仿真。其主要是驗(yàn)證設(shè)計(jì)中的邏輯功能是否滿足設(shè)計(jì)要求。時(shí)序仿真又稱為后仿真,是在考慮電路延時(shí)和器件傳輸延時(shí)的情況下的仿真。通常在做FPGA的設(shè)計(jì)時(shí),功能仿真完成后,只要綜合布局布線后的靜態(tài)時(shí)序報(bào)告沒(méi)有違反時(shí)序約束的警告,就可以下到板子上去調(diào)試了,采用功能仿真就足夠了。本論文采用的仿真軟件是Modelsim軟件,ModelSim具備強(qiáng)大的仿真功能,操作起來(lái)極其靈活。ModelSim在仿真時(shí)不需要編輯
92、輸入波形文件,而是需要編寫測(cè)試程序來(lái)完成初始化和產(chǎn)生輸入激勵(lì)等工作。下面就對(duì)各個(gè)模塊以及最后集成測(cè)試的測(cè)試平臺(tái)的編寫和仿真進(jìn)行討論。</p><p> 3.3.1 測(cè)試原理與波形</p><p> (1) Avalon從端口仿真與測(cè)試</p><p> Avalon從端口的仿真測(cè)試的方法是先模擬CPU編寫一個(gè)測(cè)試文件仿真Avalon總線模塊,并用該仿真程序與
93、LCD控制器的Avalon從端口進(jìn)行交互,模擬寄存器的讀寫。通過(guò)先向寄存器中寫入值,然后再讀出該值和按相應(yīng)地址寫入時(shí)的地址數(shù)據(jù)是否一致。圖3.6為從端口的仿真波形圖。</p><p> 圖3.6 從端口仿真圖</p><p> 從上圖可知從端口一位地址對(duì)應(yīng)一位數(shù)據(jù)寫信號(hào)有效時(shí)將數(shù)據(jù)寫入相應(yīng)的寄存器,當(dāng)讀信號(hào)有效時(shí)對(duì)應(yīng)寄存器地址將數(shù)據(jù)數(shù)輸出。通過(guò)從端口數(shù)據(jù)的寫入來(lái)控制LCD模塊,控制LC
94、D的讀取圖像的首地址和讀取數(shù)據(jù)的長(zhǎng)度。</p><p> ?。?)Avalon主端口仿真與測(cè)試</p><p> Avalon總線與Avalon主端口之間交互的仿真的實(shí)現(xiàn)方法是編寫測(cè)試文件Avalon仿真Avalon總線模塊的行為。Avalon模塊的作用是響應(yīng)Avalon主端口的讀請(qǐng)求。并將FIFO中相應(yīng)的數(shù)據(jù)輸出給Avalon主端口。通過(guò)讀信號(hào)和相應(yīng)的地址主端口不斷地從FIFO中讀取圖
95、像數(shù)據(jù)并按照LCD時(shí)序?qū)D像數(shù)據(jù)輸送給LCD。圖3.7為Avalon主端口從顯存中讀取數(shù)據(jù)時(shí)的波形仿真圖。</p><p> 圖3.7 主端口仿真圖</p><p> 圖3.7是仿真圖的一部分是從地址8到地址14和相應(yīng)的圖像像素?cái)?shù)據(jù),地址和數(shù)據(jù)都是32位其中數(shù)據(jù)高8位沒(méi)有使用,低24位分別是R、G、B像素?cái)?shù)據(jù),通過(guò)主端口從FIFO中讀取數(shù)據(jù)并將數(shù)據(jù)傳送給LCD從而完成LCD圖像的顯示。
96、</p><p> ?。?)LCD圖像顯示模塊</p><p> LCD顯示模塊是將FIFO中讀出的圖像數(shù)據(jù)在觸控屏上顯示在其它模塊經(jīng)過(guò)測(cè)試正常工作后,需要對(duì)圖像顯示模塊進(jìn)行簡(jiǎn)單的測(cè)試,比如直接向LCD輸入圖像數(shù)據(jù),然后檢查圖像顯示模塊在各個(gè)模式下處理后的數(shù)據(jù)是否正確,即測(cè)試從FIFO中讀出的數(shù)據(jù)是否將其轉(zhuǎn)化成相應(yīng)的像素RGB數(shù)據(jù)。測(cè)試通過(guò)后,就可以進(jìn)行系統(tǒng)的集成測(cè)試了。本文的重點(diǎn)就是要
97、嚴(yán)格要求LCD時(shí)序和從FIFO讀出的數(shù)據(jù)的時(shí)序,必須在LCD顯示第一行的第一個(gè)點(diǎn)數(shù)據(jù)應(yīng)和從FIFO中讀取的圖像數(shù)據(jù)的首位像素點(diǎn)一致,并且以后讀出和顯示一一對(duì)應(yīng)。因?yàn)橄到y(tǒng)集成測(cè)試時(shí)大部分測(cè)試工作還是對(duì)讀出的像素點(diǎn)和顯示的像素點(diǎn)進(jìn)行測(cè)試,系統(tǒng)集成測(cè)試主要是看各個(gè)模塊集成后,整個(gè)系統(tǒng)是否工作正常,測(cè)試的主要內(nèi)容是系統(tǒng)集成后能否按正確的時(shí)序產(chǎn)生正確的圖像RGB數(shù)據(jù),測(cè)試對(duì)象是頂層模塊。測(cè)試方法是用Avalon主端口和Avalon從端口模擬Ava
98、lon總線行為,用從端口中提供的寄存器讀寫任務(wù)對(duì)寄存器進(jìn)行配置,來(lái)設(shè)置從FIFO讀取數(shù)據(jù)的首地址和讀取數(shù)據(jù)的長(zhǎng)度等參數(shù),然后再作如下檢查:通過(guò)根據(jù)LCD顯示內(nèi)容計(jì)算出來(lái)的顯存所用空間的大小,得出顯存存儲(chǔ)一幀數(shù)據(jù),之后查看LCD是否正確顯</p><p> 圖3.8 為L(zhǎng)CD顯示的數(shù)據(jù)</p><p> 從圖3.8可以看出當(dāng)DEN有效時(shí),將像素?cái)?shù)據(jù)分為R、G、B傳送給LCD,HCount
99、和VCount分別為行計(jì)數(shù)器和場(chǎng)計(jì)數(shù)器 ,隨著LCD時(shí)鐘將各個(gè)像素點(diǎn)傳送給LCD。</p><p> 基于SOPC觸控屏系統(tǒng)硬件設(shè)計(jì)</p><p> 基于SOPC觸控屏系統(tǒng)硬件設(shè)計(jì)就是在SOPC下建立一個(gè)硬件系統(tǒng),該系統(tǒng)主要包括:主要有JTAG UART、SDRAM Controller、FLASH,SSRAM,時(shí)鐘橋,三態(tài)橋等構(gòu)建一個(gè)簡(jiǎn)單的觸控屏系統(tǒng)[2]。JTAG UART實(shí)現(xiàn)P
100、C和開發(fā)板通信,主要用于調(diào)試,從鍵盤輸入相應(yīng)的數(shù)據(jù),然后通過(guò)Nios II軟件調(diào)試處理器將數(shù)據(jù)通過(guò)LCD接口傳輸?shù)絋FT觸摸屏上顯示出來(lái)。</p><p> SDRAM Controller實(shí)現(xiàn)處理器和SDRAM之間的數(shù)據(jù)存取,包括SDRAM存儲(chǔ)程序和字符、圖形以及顏色等數(shù)據(jù);根據(jù)所用到的外設(shè)和器件特性,在SOPC Builder中建立系統(tǒng)要添加的外設(shè)模塊,包括:Nios II CPU、外部SDRAM、JTAG
101、 UART和PIO等。設(shè)定好各個(gè)參數(shù),然后添加LCD控制器,將LCD控制器的Avalon主端口master接口連接到SDRAM上。然后按照設(shè)計(jì)流程創(chuàng)建QuartusⅡ新工程,添加CPU和外設(shè),指定基地址,設(shè)置系統(tǒng),生成系統(tǒng)模塊,建立頂層文件,加入鎖相環(huán),編譯并配置FPGA引腳,最后編譯后配置到FPGA中管腳鎖定。系統(tǒng)的整體結(jié)構(gòu)如圖4.1所示。</p><p> 圖4.1 系統(tǒng)整體結(jié)構(gòu)</p>&l
102、t;p> 4.1 開發(fā)板簡(jiǎn)介</p><p> 4.1.1 核心板</p><p> 本設(shè)計(jì)采用Altera公司的Cyclone系列的FPGA與SOPC通用開發(fā)板,現(xiàn)將該開發(fā)板的具體配置介紹如下。</p><p> EP3C40-V6 Cyclone III版FPGA嵌入式評(píng)估套件仍然采用核心板+實(shí)驗(yàn)板組合的方式,這種組合方式可以方便客戶隨時(shí)將核心
103、板取下來(lái)用于其它項(xiàng)目的開發(fā)。EP3C40-V6 為客戶提供一套功能豐富的低成本平臺(tái),為音視頻采集,音視頻處理,圖形顯示,硬件加速,網(wǎng)絡(luò)應(yīng)用,遠(yuǎn)程控制等提供最佳驗(yàn)證平臺(tái)以及參考方案。</p><p> EP3C40-V6核心板采用EP3C40F484C6型號(hào),具有更豐富的片上資源,如相比EP3C25有近兩倍的RAM和乘法器數(shù)量,以及更多的擴(kuò)展IO,總共引出190個(gè)用戶IO。EP3C40使用64MB DDRII S
104、DRAM存儲(chǔ)器,有著更高的容量,更低的功耗,更高的速率。</p><p> 開發(fā)板采用Altera公司的Cyclone III系列芯片 EP3C40F484C6作為核心處理器設(shè)計(jì),Cyclone III系列芯片是目前市場(chǎng)上性價(jià)比較高的芯片,具有39600個(gè)邏輯單元、126乘法器、4個(gè)鎖相環(huán),以及一根16位總線,10跟地址總線。</p><p> 1、FPGA型號(hào):EP3C40F484C
105、6;</p><p> 2、DRAM存儲(chǔ)器: 64M Byte容量的DDRII SDRAM存儲(chǔ)器,最大可擴(kuò)充至512M Byte;</p><p> 3、SRAM存儲(chǔ)器:1M Byte 容量;</p><p> 4、Flash存儲(chǔ)器: 16M Byte 高速Flash存儲(chǔ)器,可用來(lái)存儲(chǔ)配置文件,軟件代碼等;</p><p> 5、50
106、M 有源晶振;</p><p> 6、JTAG下載口;</p><p> 7、一個(gè)重配置按鈕;</p><p><b> 8、一個(gè)復(fù)位按鈕;</b></p><p> 9、4個(gè)用戶LED燈;</p><p> 10、4路排針總共引出190個(gè)用戶IO,以及一根16位總線,10根地址總線。其
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 液壓驅(qū)動(dòng)立體車庫(kù)畢業(yè)論文(含外文翻譯)
- 基于單片機(jī)的led廣告屏的設(shè)計(jì)畢業(yè)論文(含外文翻譯)
- led顯示屏畢業(yè)論文外文翻譯
- 觸摸屏驅(qū)動(dòng)畢業(yè)論文
- flash畢業(yè)論文(含外文翻譯)
- 畢業(yè)論文--大功率led驅(qū)動(dòng)電源研究(含外文翻譯)
- 物流專業(yè)畢業(yè)論文(含外文翻譯)
- 礦井通風(fēng)畢業(yè)論文(含外文翻譯)
- 畢業(yè)論文----基于fpga的uart設(shè)計(jì)(含外文翻譯)
- 畢業(yè)論文--dc-dc led驅(qū)動(dòng)電路設(shè)計(jì) (含外文翻譯)
- 基于sopc的pwm燈控led顯示實(shí)現(xiàn)【畢業(yè)論文】
- 基于ethernetip的controllogix系列plc的接口畢業(yè)論文外文翻譯
- 畢業(yè)論文--基于fpga的uart設(shè)計(jì)(含外文翻譯)
- 汽車營(yíng)銷策略畢業(yè)論文(含外文翻譯)
- 點(diǎn)陣顯示屏驅(qū)動(dòng)設(shè)計(jì)畢業(yè)論文
- 在線考試系統(tǒng)畢業(yè)論文(含外文翻譯)
- 電腦橫機(jī)畢業(yè)論文(含外文翻譯)
- 工程管理專業(yè)畢業(yè)論文(含外文翻譯)
- 航海過(guò)失免責(zé)畢業(yè)論文(含外文翻譯)
- 無(wú)砂混凝土畢業(yè)論文(含外文翻譯)
評(píng)論
0/150
提交評(píng)論