版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、12第第7 7章章 Nios Nios 嵌入式處理器設(shè)計嵌入式處理器設(shè)計7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介7.2 Nios 嵌入式處理器軟、硬件開發(fā)流程嵌入式處理器軟、硬件開發(fā)流程7.3 Nios 嵌入式處理器系統(tǒng)的開發(fā)嵌入式處理器系統(tǒng)的開發(fā)7.4 Nios 嵌入式處理器外圍接口嵌入式處理器外圍接口7.5 HAL系統(tǒng)庫系統(tǒng)庫7.6 設(shè)計實例設(shè)計實例電子鐘電子鐘37.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介一、第一代一、第一代NiosNios嵌入式處理器嵌入式處理器二、第二代二、第二代NiosNios嵌入式處理器嵌入式處理器三、可配置的軟核嵌入式處理器的優(yōu)勢三、可配
2、置的軟核嵌入式處理器的優(yōu)勢47.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介一、第一代一、第一代NiosNios嵌入式處理器嵌入式處理器 2000年,年,Altera發(fā)布了發(fā)布了Nios處理器,這是第一款可處理器,這是第一款可用于可編程邏輯器件的可配置的軟核處理器。用于可編程邏輯器件的可配置的軟核處理器?;诨赗ISC技術(shù)技術(shù)16位指令集位指令集16/32位數(shù)據(jù)通道位數(shù)據(jù)通道5級流水線級流水線在一個時鐘周期內(nèi)完成一條指令的處理在一個時鐘周期內(nèi)完成一條指令的處理具有一種基于具有一種基于JTAG的的OCI(片上儀器)芯核(片上儀器)芯核57.1 7.1 Nios 嵌入式處理器簡介嵌入式
3、處理器簡介 2003年,年,Altera發(fā)布了發(fā)布了Nios3.0處理器,它有處理器,它有16位和位和32位兩個版本,能在低成本的位兩個版本,能在低成本的Cyclone和高性能的和高性能的Stratrix芯片上實現(xiàn)。芯片上實現(xiàn)。 主要特性:主要特性:更多的可配置寄存器更多的可配置寄存器極大的靈活性和可擴(kuò)展性極大的靈活性和可擴(kuò)展性功能強(qiáng)大的開發(fā)工具(功能強(qiáng)大的開發(fā)工具(SOPC Builder)第一代第一代NiosNios處理器的處理器的缺點缺點沒有提供軟件開發(fā)的集成環(huán)境,用戶需要在沒有提供軟件開發(fā)的集成環(huán)境,用戶需要在Nios SDK ShellNios SDK Shell中以命令行的形式執(zhí)行
4、軟件的編譯、運(yùn)行、調(diào)試。程序的編中以命令行的形式執(zhí)行軟件的編譯、運(yùn)行、調(diào)試。程序的編輯、編譯、運(yùn)行都是分離的。輯、編譯、運(yùn)行都是分離的。不支持對項目的編譯。不支持對項目的編譯。67.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介二、第二代二、第二代NiosNios嵌入式處理器嵌入式處理器2004年月年月,Altera繼在全球推出繼在全球推出Cyclone和和Stratrix器件系列后,又推出支持這些新款芯片器件系列后,又推出支持這些新款芯片的的Nios嵌入式處理器。嵌入式處理器。 與第一代與第一代NiosNios相比,相比,最大處理性能提高了最大處理性能提高了3 3倍,倍,CPUCPU
5、內(nèi)核部分的面積最大可縮小內(nèi)核部分的面積最大可縮小1/21/2(3232位位Nios Nios 處理處理器占用器占用15001500個個LELE, Nios II Nios II 最少只占用最少只占用600600個個LELE)。)。廣泛應(yīng)用于嵌入式系統(tǒng)的設(shè)計中。廣泛應(yīng)用于嵌入式系統(tǒng)的設(shè)計中。 77.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介種類種類特性特性CPU結(jié)構(gòu)結(jié)構(gòu)32Bit指令集指令集32Bit數(shù)據(jù)寬度線數(shù)據(jù)寬度線32個通用寄存器個通用寄存器2G Byte尋址空間尋址空間片內(nèi)調(diào)試片內(nèi)調(diào)試基于邊界掃描測試基于邊界掃描測試(JTAG)的調(diào)試邏輯,支的調(diào)試邏輯,支持硬件斷點、數(shù)據(jù)觸發(fā)
6、以及片外和片內(nèi)的調(diào)持硬件斷點、數(shù)據(jù)觸發(fā)以及片外和片內(nèi)的調(diào)試跟蹤試跟蹤定制指令定制指令最多達(dá)到最多達(dá)到256個用戶定義的個用戶定義的CPU指令指令軟件開發(fā)工具軟件開發(fā)工具NiosIDE(集成開發(fā)環(huán)境)(集成開發(fā)環(huán)境)基于基于GNU的編譯器的編譯器硬件輔助的調(diào)試模塊硬件輔助的調(diào)試模塊表表7-1Nios 系列處理器的特性系列處理器的特性87.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介 Nios II提供提供3種種不同的內(nèi)核,以滿足系統(tǒng)對不同性能和成本的需求。不同的內(nèi)核,以滿足系統(tǒng)對不同性能和成本的需求。最高性能的優(yōu)化最高性能的優(yōu)化平衡性能和尺寸平衡性能和尺寸最小邏輯占用的優(yōu)化最小邏輯占用
7、的優(yōu)化表表7-2Nios 系列處理器的成員系列處理器的成員97.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介Nios vs Nios Nios Nios Pipelined RISC Architecture32-Bit InstructionsFlat Register File32-Bit Data Path32 Prioritized InterruptsOptional Instruction & Data CacheCustom Instructions Branch Prediction Nios NiosPipelined RISC Architecture16-Bit
8、 InstructionsWindowed Register File16 -Bit or 32-Bit Data Path64 Prioritized InterruptsOptional Instruction & Data CacheCustom Instructions 107.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介Nios : Faster & Smaller(Nios /f)117.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介Nios : Faster & Smaller (Nios /s)127.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介Ni
9、os : Faster & Smaller (Nios /e)137.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介High-Performance Interconnect 采用內(nèi)部采用內(nèi)部Avlon總線,連接總線,連接主從構(gòu)件,并進(jìn)行主從構(gòu)件間的通信。主從構(gòu)件,并進(jìn)行主從構(gòu)件間的通信。 主外設(shè)主外設(shè)從外設(shè)從外設(shè)147.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介Some Important Peripherals for Nios II System ID PeripheralUsed to Ensure Hardware/Software Version Synchro
10、nizationSimple 2 read-only register peripheral containing hardware ID tags.Register 1 contains random numberRegister 2 contains time and date when system was generated in SOPC BuilderCan be checked at runtime to ensure that the software to be downloaded matches the hardware image Memory InterfacesEP
11、CS Serial Flash ControllerOn-ChipRAM, ROMOff-ChipSRAMCFI Flash157.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介Other Important Peripherals for Nios II LCD Display JTAG UART Single JTAG Connection For: Device ConfigurationCode DownloadDebugTarget STDIO (printing)Flash Programming Compact Flash Interface Mass Storage S
12、upportTrue IDE ModeCompact Flash ModeSoftware SupportsLow-Level APIMicroC/OS- File System SupportCLinux File System167.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介New Peripherals for Nios II 5.0 SSRAM ControllerCypress CY7C1380C Sync SRAM controller Provided to support SSRAM component on Cyclone II dev kit board Not
13、 a fully configurable general purpose controller Support for DDR/DDR2 in SOPC Builder GUIWith burst adapter Sequential master to interleaved slave enhancementSeparate READ/Write duplex slaves Automatically matches address of read/write slaves Arbitration logic connects read/write masters to both sla
14、ves Support for PCI and Bursting DMA in SOPC Builder GUIHigher bandwidth transfers through PCI177.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介Example of a Nios Processor System處理器內(nèi)核處理器內(nèi)核內(nèi)部總線內(nèi)部總線定時器定時器外設(shè)接口外設(shè)接口187.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介Nios II: Hard Numbers197.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介三、可配置的軟核嵌入式處理器的優(yōu)勢三、可配置的軟核嵌
15、入式處理器的優(yōu)勢1. 1. 合理的性能組合合理的性能組合使用使用Nios嵌入式處理器和嵌入式處理器和FPGA,用戶可以實,用戶可以實現(xiàn)在處理器、外設(shè)、存儲器和現(xiàn)在處理器、外設(shè)、存儲器和I/O接口方面的合理接口方面的合理組合。組合。3種處理器內(nèi)核種處理器內(nèi)核6060余種余種SOPC BuilderSOPC Builder配備的配備的IP核核 無限的無限的DMADMA通道組合通道組合可配置的硬件及軟件調(diào)試特性可配置的硬件及軟件調(diào)試特性207.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介2. 2. 提升系統(tǒng)的性能提升系統(tǒng)的性能 NiosNios系統(tǒng)的性能可根據(jù)應(yīng)用來裁減,與固定系統(tǒng)的性能可
16、根據(jù)應(yīng)用來裁減,與固定的處理器相比,在較低的時鐘速率下具備更高的處理器相比,在較低的時鐘速率下具備更高的性能。的性能。多多CPU內(nèi)核內(nèi)核:可選擇最快的內(nèi)核,或在一片F(xiàn)PGA內(nèi)采用多個內(nèi)核支持的支持的FPGA系列系列:Stratix,Stratix, Stratix GX,Cyclone,Cyclone,HardCopy Stratix定制指令定制指令:把用戶自定義的功能直接添加到Nios處理器的ALU中,加快專項任務(wù)的執(zhí)行,以提高系統(tǒng)的性能硬件加速硬件加速:專用的硬件加速器添加到FPGA中作為CPU的協(xié)處理器217.1 7.1 Nios 嵌入式處理器簡介嵌入式處理器簡介3. 3. 降低系統(tǒng)成本
17、降低系統(tǒng)成本 主要途徑主要途徑: 更大規(guī)模的系統(tǒng)集成更大規(guī)模的系統(tǒng)集成優(yōu)化優(yōu)化FPGA/CPU的選擇的選擇:選擇經(jīng)濟(jì)型內(nèi)核應(yīng)用于低成本、低性能系統(tǒng),或者在單個FPGA上使用多個內(nèi)核更好的庫存管理更好的庫存管理4. 4. 延長產(chǎn)品的生命周期延長產(chǎn)品的生命周期加快產(chǎn)品上市時間:加快產(chǎn)品上市時間:FPGA可編程、可隨時驗證修改 建立有競爭性的優(yōu)勢建立有競爭性的優(yōu)勢:硬件加速、定制指令、定制外設(shè)延長了產(chǎn)品的生存時間延長了產(chǎn)品的生存時間:可對硬件和軟件及時進(jìn)行升級在產(chǎn)品產(chǎn)量增加的情況下減少成本在產(chǎn)品產(chǎn)量增加的情況下減少成本:可將FPGA設(shè)計無縫移植到Altera的HardCopy器件(一種結(jié)構(gòu)化的ASI
18、C)中227.2 7.2 Nios 嵌入式處理器軟、硬件開發(fā)流程嵌入式處理器軟、硬件開發(fā)流程一、硬件開發(fā)流程一、硬件開發(fā)流程二、軟件開發(fā)流程二、軟件開發(fā)流程237.2 7.2 Nios 嵌入式處理器軟、硬件開發(fā)流程嵌入式處理器軟、硬件開發(fā)流程N(yùn)ios Design FlowSOPC Builder GUIConnect BlocksProcessor LibraryCustom InstructionsPeripheral LibrarySelect & Configure Peripherals, IPIP ModulesConfigure ProcessorGeneratenEDIF Ne
19、tlistnHDL Source FilesnTestbenchSynthesis &Fitter nUser DesignnOther IP BlocksHardware DevelopmentQuartus IIOn-ChipDebugSoftware TraceHard BreakpointsSignalTap IIAlteraPLD JTAG,Serial, orEthernetExecutableCodeHardwareConfigurationFileVerification& Debug(1 1)(2 2)(3 3)(4 4)nC Header filesnCustom Libr
20、arynPeripheral DriversCompiler,Linker, DebuggerSoftware DevelopmentnUser CodenLibrariesnRTOSGNU ToolsNios II IDE247.2 7.2 Nios 嵌入式處理器軟、硬件開發(fā)流程嵌入式處理器軟、硬件開發(fā)流程一、硬件開發(fā)流程一、硬件開發(fā)流程 下載完硬件配置文件后,軟件開發(fā)者就可以把此開發(fā)板作下載完硬件配置文件后,軟件開發(fā)者就可以把此開發(fā)板作為軟件開發(fā)的初期硬件平臺進(jìn)行軟件功能的開發(fā)驗證了。為軟件開發(fā)的初期硬件平臺進(jìn)行軟件功能的開發(fā)驗證了。(1 1)定義定義Nios嵌入式處理器系統(tǒng):嵌入式處理器
21、系統(tǒng):使用使用SOPC Builder系統(tǒng)綜合軟系統(tǒng)綜合軟件選取合適的件選取合適的CPU、存儲器以及外圍器件,并定制其功能。、存儲器以及外圍器件,并定制其功能。(2)指定目標(biāo)器件、分配引腳、編譯硬件指定目標(biāo)器件、分配引腳、編譯硬件:使用:使用Quartus選取選取Altera器件系列,并對器件系列,并對SOPC Builder生成的生成的HDL設(shè)計文件進(jìn)行布設(shè)計文件進(jìn)行布局布線;再選取目標(biāo)器件,分配管腳,進(jìn)行硬件編譯選項或時序局布線;再選取目標(biāo)器件,分配管腳,進(jìn)行硬件編譯選項或時序約束的設(shè)置。編譯,生成網(wǎng)表文件和配置文件。約束的設(shè)置。編譯,生成網(wǎng)表文件和配置文件。(3)硬件下載:硬件下載:使用
22、使用Quartus軟件和下載電纜,將配置文件下載到軟件和下載電纜,將配置文件下載到開發(fā)板上的開發(fā)板上的FPGA中。當(dāng)校驗完當(dāng)前硬件設(shè)計后,還可再次將新中。當(dāng)校驗完當(dāng)前硬件設(shè)計后,還可再次將新的配置文件下載到開發(fā)板上的非易失存儲器里。的配置文件下載到開發(fā)板上的非易失存儲器里。 257.2 7.2 Nios 嵌入式處理器軟、硬件開發(fā)流程嵌入式處理器軟、硬件開發(fā)流程二、軟件開發(fā)流程二、軟件開發(fā)流程(1 1)在使用)在使用SOPC BuilderSOPC Builder進(jìn)行硬件設(shè)計的同時,就可以開始編寫?yīng)毩⑦M(jìn)行硬件設(shè)計的同時,就可以開始編寫?yīng)毩⒂谄骷挠谄骷腃/C+C/C+軟件,比如算法或控制程序。
23、用戶可以使用現(xiàn)成軟件,比如算法或控制程序。用戶可以使用現(xiàn)成的軟件庫和開放的操作系統(tǒng)內(nèi)核來加快開發(fā)過程。的軟件庫和開放的操作系統(tǒng)內(nèi)核來加快開發(fā)過程。(2 2)在)在NiosIDENiosIDE中建立新的軟件工程時,中建立新的軟件工程時,IDEIDE會根據(jù)會根據(jù)SOPC BuilderSOPC Builder對系統(tǒng)的硬件配置自動生成一個定制對系統(tǒng)的硬件配置自動生成一個定制HAL(HAL(硬件抽象層硬件抽象層) )系統(tǒng)庫。系統(tǒng)庫。這個庫能為程序和底層硬件的通信提供接口驅(qū)動程序。這個庫能為程序和底層硬件的通信提供接口驅(qū)動程序。(3 3)使用)使用NiosIDENiosIDE對軟件工程進(jìn)行編譯、調(diào)試。對
24、軟件工程進(jìn)行編譯、調(diào)試。(4 4)將硬件設(shè)計下載到開發(fā)板后,就可以將軟件下載到開發(fā)板上并)將硬件設(shè)計下載到開發(fā)板后,就可以將軟件下載到開發(fā)板上并在硬件上運(yùn)行。在硬件上運(yùn)行。267.3 7.3 Nios 嵌入式處理器系統(tǒng)的開發(fā)嵌入式處理器系統(tǒng)的開發(fā)一、一、Nios Nios 集成開發(fā)環(huán)境(集成開發(fā)環(huán)境(IDEIDE)介紹)介紹二、二、Nios Nios 嵌入式處理器系統(tǒng)設(shè)計過程嵌入式處理器系統(tǒng)設(shè)計過程277.3 7.3 Nios 嵌入式處理器系統(tǒng)的開發(fā)嵌入式處理器系統(tǒng)的開發(fā) Nios IDE是是Nios系列嵌入式處理器的基本軟件開系列嵌入式處理器的基本軟件開發(fā)工具,包括程序的編輯、編譯、調(diào)試和下
25、載運(yùn)行。發(fā)工具,包括程序的編輯、編譯、調(diào)試和下載運(yùn)行。 Nios IDE使用方法和使用方法和Visual C+類似。在類似。在7.6節(jié)中會節(jié)中會結(jié)合示例進(jìn)行講解。結(jié)合示例進(jìn)行講解。 Nios IDE為軟件開發(fā)提供了為軟件開發(fā)提供了4個功能:個功能:工程管理器;工程管理器;編輯器和編譯器;編輯器和編譯器;調(diào)試器;調(diào)試器;閃存編程器。閃存編程器。一、一、NiosNios集成開發(fā)環(huán)境(集成開發(fā)環(huán)境(IDEIDE)介紹)介紹287.3 7.3 Nios 嵌入式處理器系統(tǒng)的開發(fā)嵌入式處理器系統(tǒng)的開發(fā)(1 1)新工程向?qū)В┬鹿こ滔驅(qū)ё詣咏⒆詣咏/C+C/C+應(yīng)用程序工程和系統(tǒng)庫工程。應(yīng)用程序工程和系
26、統(tǒng)庫工程。(2 2)軟件工程模板)軟件工程模板提供軟件代碼實例,幫助用戶盡快推出可運(yùn)行的提供軟件代碼實例,幫助用戶盡快推出可運(yùn)行的系統(tǒng)系統(tǒng)(3 3)軟件組件(系統(tǒng)軟件)軟件組件(系統(tǒng)軟件)Nios Nios 運(yùn)行庫(或稱為硬件抽象層運(yùn)行庫(或稱為硬件抽象層HALHAL););輕量級輕量級IP TCP/IPIP TCP/IP庫;庫;C/OS C/OS 實時操作系統(tǒng)(實時操作系統(tǒng)(RTOSRTOS););AlteraAltera壓縮文件系統(tǒng)。壓縮文件系統(tǒng)。1. 1. 工程管理器工程管理器297.3 7.3 Nios 嵌入式處理器系統(tǒng)的開發(fā)嵌入式處理器系統(tǒng)的開發(fā)(1 1)文本編輯器)文本編輯器全功能
27、源文件編輯器:全功能源文件編輯器: 語法高亮顯示語法高亮顯示C/C+C/C+程序代碼;程序代碼; 全面的搜索工具;全面的搜索工具; 文件管理;文件管理; 快速定位及自動糾錯;快速定位及自動糾錯; 內(nèi)置調(diào)試功能等內(nèi)置調(diào)試功能等(2 2) C/C+C/C+編譯器編譯器提供圖形化用戶界面;提供圖形化用戶界面;提供按鈕式流程;提供按鈕式流程;自動生成一個基于特定用戶配置的自動生成一個基于特定用戶配置的makefilemakefile。2. 2. 編輯器和編譯器編輯器和編譯器307.3 7.3 Nios 嵌入式處理器系統(tǒng)的開發(fā)嵌入式處理器系統(tǒng)的開發(fā)(1 1)基本調(diào)試功能)基本調(diào)試功能運(yùn)行控制;運(yùn)行控制;
28、調(diào)用堆棧查看;調(diào)用堆棧查看;軟件斷點;軟件斷點;反匯編代碼查看;反匯編代碼查看;調(diào)試信息查看;調(diào)試信息查看;指令集仿真器。指令集仿真器。(2 2) 高級調(diào)試功能高級調(diào)試功能硬件斷點調(diào)試硬件斷點調(diào)試ROMROM或閃存中的代碼;或閃存中的代碼;數(shù)據(jù)觸發(fā);數(shù)據(jù)觸發(fā);指令跟蹤。指令跟蹤。3. 3. 調(diào)試器調(diào)試器(3 3)調(diào)試信息查看)調(diào)試信息查看使用戶可以訪問本地變量、使用戶可以訪問本地變量、寄存器、存儲器、斷點以及寄存器、存儲器、斷點以及表達(dá)式賦值函數(shù)。表達(dá)式賦值函數(shù)。(4 4) 連接多種目標(biāo)連接多種目標(biāo)FPGAFPGA開發(fā)板(通過開發(fā)板(通過JTAGJTAG););指令集仿真器;指令集仿真器;硬件
29、邏輯仿真器。硬件邏輯仿真器。317.3 7.3 Nios 嵌入式處理器系統(tǒng)的開發(fā)嵌入式處理器系統(tǒng)的開發(fā)4. 4. 閃存編程器閃存編程器閃存可用來存儲閃存可用來存儲FPGAFPGA配置數(shù)據(jù)和配置數(shù)據(jù)和/ /或或Nios Nios 編程數(shù)據(jù)。編程數(shù)據(jù)。NiosIDENiosIDE閃存編程器可對連接到閃存編程器可對連接到FPGAFPGA的兼容通用閃存接口(的兼容通用閃存接口(CFICFI)的閃存器件、或的閃存器件、或AlteraAltera串行配置器件進(jìn)行編程。串行配置器件進(jìn)行編程。內(nèi)容類型內(nèi)容類型說說 明明系統(tǒng)固定軟件系統(tǒng)固定軟件用于用于Nios處理器復(fù)位時從閃存中導(dǎo)入啟處理器復(fù)位時從閃存中導(dǎo)入啟
30、動程序動程序FPGA配置數(shù)據(jù)配置數(shù)據(jù)使用配置控制器,使用配置控制器,F(xiàn)PGA能夠在上電復(fù)位時能夠在上電復(fù)位時從閃存獲取配置數(shù)據(jù)從閃存獲取配置數(shù)據(jù)任意二進(jìn)制數(shù)據(jù)任意二進(jìn)制數(shù)據(jù)開發(fā)人員可以將任何二進(jìn)制數(shù)據(jù)存儲到閃存開發(fā)人員可以將任何二進(jìn)制數(shù)據(jù)存儲到閃存內(nèi),如圖形、音頻等內(nèi),如圖形、音頻等表表7-3編程到閃存中的通用內(nèi)容類型編程到閃存中的通用內(nèi)容類型327.3 7.3 Nios 嵌入式處理器系統(tǒng)的開發(fā)嵌入式處理器系統(tǒng)的開發(fā)1. 1. 硬件設(shè)計過程硬件設(shè)計過程(1 1)創(chuàng)建一個)創(chuàng)建一個Quqrtus Quqrtus 工程工程(2 2)創(chuàng)建)創(chuàng)建Nios Nios 系統(tǒng)模塊系統(tǒng)模塊啟動啟動SOPC B
31、uilderSOPC Builder添加添加CPUCPU和外圍器件和外圍器件指定基地址指定基地址系統(tǒng)設(shè)置系統(tǒng)設(shè)置生成系統(tǒng)模塊生成系統(tǒng)模塊(3 3)將)將Nios Nios 系統(tǒng)模塊符號添加到系統(tǒng)模塊符號添加到BDFBDF文件中文件中(4 4)編譯)編譯Quqrtus Quqrtus 工程工程(5 5)配置)配置FPGAFPGA二、二、Nios Nios 嵌入式處理器系統(tǒng)設(shè)計過程嵌入式處理器系統(tǒng)設(shè)計過程337.3 7.3 Nios 嵌入式處理器系統(tǒng)的開發(fā)嵌入式處理器系統(tǒng)的開發(fā)(1 1)啟動)啟動Nios IDENios IDE;(2 2)建立新的軟件工程,編寫源程序;)建立新的軟件工程,編寫源程
32、序;(3 3)編譯工程;)編譯工程;(4 4)運(yùn)行程序;)運(yùn)行程序;(5 5)調(diào)試程序;)調(diào)試程序;(6 6)將程序下載到開發(fā)板上的)將程序下載到開發(fā)板上的FlashFlash中。中。2. 2. 軟件設(shè)計過程軟件設(shè)計過程347.4 7.4 Nios 處理器外圍接口處理器外圍接口一、標(biāo)準(zhǔn)外圍設(shè)備一、標(biāo)準(zhǔn)外圍設(shè)備二、用戶定制外圍設(shè)備二、用戶定制外圍設(shè)備357.4 7.4 Nios 處理器外圍接口處理器外圍接口一、標(biāo)準(zhǔn)外圍設(shè)備一、標(biāo)準(zhǔn)外圍設(shè)備 Nios Nios 包括一個常用外圍設(shè)備及接口庫,在包括一個常用外圍設(shè)備及接口庫,在Altera Altera FPGAFPGA中可免費使用。中可免費使用。
33、標(biāo)準(zhǔn)外圍設(shè)備標(biāo)準(zhǔn)外圍設(shè)備為即用型設(shè)計模塊,采用為即用型設(shè)計模塊,采用Verilog HDL和和VHDL的源代碼方式交付使用,其中包括簡單系統(tǒng)集的源代碼方式交付使用,其中包括簡單系統(tǒng)集成所需要的所有軟件子程序。成所需要的所有軟件子程序。 查看各接口的詳細(xì)說明:可在查看各接口的詳細(xì)說明:可在SOPC Builder的元件池的元件池中用右鍵點擊元件,在彈出的菜單中選擇中用右鍵點擊元件,在彈出的菜單中選擇“Data Sheet”選項。選項。36 7.4 7.4 Nios 處理器外圍接口處理器外圍接口外圍設(shè)備接口外圍設(shè)備接口說說 明明CompactFlash接口接口提供大容量存儲支持提供大容量存儲支持用
34、戶邏輯接口用戶邏輯接口將片內(nèi)用戶邏輯或片外器件連接到將片內(nèi)用戶邏輯或片外器件連接到SOPC Builder生成的系統(tǒng)中生成的系統(tǒng)中UART提供通用串行接口,具有可變波特率、奇偶校驗、停止和數(shù)據(jù)位提供通用串行接口,具有可變波特率、奇偶校驗、停止和數(shù)據(jù)位及可選的流量控制信號及可選的流量控制信號間隔時鐘間隔時鐘提供提供32位時鐘,可作為周期脈沖發(fā)生器或系統(tǒng)看門狗時鐘位時鐘,可作為周期脈沖發(fā)生器或系統(tǒng)看門狗時鐘并行并行I/O接口接口提供提供1位到位到32位的并行位的并行I/O接口接口(輸入、輸出、邊緣采樣輸入、輸出、邊緣采樣)串行外圍設(shè)備接口(串行外圍設(shè)備接口(SPI) 實現(xiàn)工業(yè)標(biāo)準(zhǔn)串行外圍設(shè)備接口,
35、支持主設(shè)備或從設(shè)備協(xié)議實現(xiàn)工業(yè)標(biāo)準(zhǔn)串行外圍設(shè)備接口,支持主設(shè)備或從設(shè)備協(xié)議DMA控制器控制器與存儲器進(jìn)行批數(shù)據(jù)交換,減輕與存儲器進(jìn)行批數(shù)據(jù)交換,減輕CPU的負(fù)擔(dān)的負(fù)擔(dān)SDRAM控制器控制器提供一個簡單提供一個簡單Avalon接口,與片外的接口,與片外的SDRAM溝通,支持溝通,支持8、16、32和和64位數(shù)據(jù)寬度位數(shù)據(jù)寬度存儲器接口存儲器接口包括:片內(nèi)包括:片內(nèi)ROM和和RAM、SDRAM、SSRAM、SRAM和和Flash,Altera的串行配置器件的串行配置器件以太網(wǎng)端口以太網(wǎng)端口包括:包括:10/100兆比特每秒兆比特每秒SMSC LAN91C111單芯片以太網(wǎng)控制單芯片以太網(wǎng)控制器,提
36、供輕量級的器,提供輕量級的IP TCP/IP協(xié)議棧的軟件支持,已經(jīng)包含在協(xié)議棧的軟件支持,已經(jīng)包含在Nios 開發(fā)套件中開發(fā)套件中JTAG UART(僅在僅在Nios 中有中有)通過內(nèi)嵌在通過內(nèi)嵌在Altera FPGA內(nèi)部的聯(lián)合測試行動組內(nèi)部的聯(lián)合測試行動組(JTAG)電路,在電路,在PC主機(jī)和主機(jī)和SOPC Builder系統(tǒng)之間進(jìn)行串行字符流通信系統(tǒng)之間進(jìn)行串行字符流通信表表7-4 Nios&Nios 外圍設(shè)備接口外圍設(shè)備接口377.4 7.4 Nios 處理器外圍接口處理器外圍接口二、用戶定制外圍設(shè)備二、用戶定制外圍設(shè)備 用戶可以創(chuàng)建自己的外圍設(shè)備,并通過用戶邏輯用戶可以創(chuàng)建自己的外圍
37、設(shè)備,并通過用戶邏輯接口向?qū)Ъ傻浇涌谙驅(qū)Ъ傻絅ios Nios 處理器系統(tǒng)中。處理器系統(tǒng)中。 整個過程用戶介入很少。整個過程用戶介入很少。387.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫一、一、HALHAL系統(tǒng)庫簡介系統(tǒng)庫簡介二、使用二、使用HALHAL開發(fā)程序開發(fā)程序397.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫一、一、 HALHAL系統(tǒng)庫簡介系統(tǒng)庫簡介 什么是什么是HAL系統(tǒng)庫?系統(tǒng)庫?用戶在進(jìn)行嵌入式系統(tǒng)的軟件開發(fā)時,會涉及到與硬件的通信問題。HAL(Hardware Abstraction Layer,硬件抽象層)系統(tǒng)庫可為與硬件通信的程序提供簡單的設(shè)備驅(qū)動接口。它是用戶在NiosIDE中創(chuàng)建一個新
38、的工程時,由IDE基于用戶在SOPC Builder中創(chuàng)建的Nios處理器系統(tǒng)自動生成的。HAL應(yīng)用程序接口(API)和ANSI C標(biāo)準(zhǔn)庫綜合在一起,它使用戶用類似C語言的庫函數(shù)來訪問硬件設(shè)備或文件,如printf()、fopen()、fwrite()等函數(shù)。407.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫 HAL為嵌入式系統(tǒng)中的外圍設(shè)備提供接口程序。為嵌入式系統(tǒng)中的外圍設(shè)備提供接口程序。HAL和和SOPC Builder緊密相關(guān),如果硬件配置緊密相關(guān),如果硬件配置有了變化,有了變化,HAL設(shè)備驅(qū)動配置也會自動隨之改動,設(shè)備驅(qū)動配置也會自動隨之改動,從而避免了由于底層硬件的變化而產(chǎn)生的程序錯從而避免了由
39、于底層硬件的變化而產(chǎn)生的程序錯誤。誤。 用戶不必自己創(chuàng)建或拷貝用戶不必自己創(chuàng)建或拷貝HAL文件,也不必編輯文件,也不必編輯HAL中的任何源代碼。中的任何源代碼。NiosIDE會為用戶會為用戶自動自動創(chuàng)建和管理創(chuàng)建和管理HAL文件。文件。 417.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫與與ANSI C合成的標(biāo)準(zhǔn)庫合成的標(biāo)準(zhǔn)庫提供類似提供類似C語言的標(biāo)準(zhǔn)庫函數(shù);語言的標(biāo)準(zhǔn)庫函數(shù);設(shè)備驅(qū)動設(shè)備驅(qū)動提供訪問系統(tǒng)中每個設(shè)備的驅(qū)動程序;提供訪問系統(tǒng)中每個設(shè)備的驅(qū)動程序;HAL API提供標(biāo)準(zhǔn)的接口程序,如設(shè)備訪問、中斷處理等;提供標(biāo)準(zhǔn)的接口程序,如設(shè)備訪問、中斷處理等;系統(tǒng)初始化系統(tǒng)初始化在在main()函數(shù)之前
40、執(zhí)行對處理器的初始化;函數(shù)之前執(zhí)行對處理器的初始化;設(shè)備初始化設(shè)備初始化在在main()函數(shù)之前執(zhí)行對系統(tǒng)中外圍設(shè)備的初始化。函數(shù)之前執(zhí)行對系統(tǒng)中外圍設(shè)備的初始化。用戶程序用戶程序C語言標(biāo)準(zhǔn)庫語言標(biāo)準(zhǔn)庫HAL API硬件硬件設(shè)備設(shè)備驅(qū)動驅(qū)動設(shè)備設(shè)備驅(qū)動驅(qū)動設(shè)備設(shè)備驅(qū)動驅(qū)動圖圖7-1 HAL所基于的系統(tǒng)層次所基于的系統(tǒng)層次1. HAL1. HAL構(gòu)成構(gòu)成427.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫應(yīng)用程序開發(fā)應(yīng)用程序開發(fā) 是用戶軟件開發(fā)的主要部分,包括系統(tǒng)的主程序和其他子程序。 應(yīng)用程序與系統(tǒng)設(shè)備的通信主要是通過C語言標(biāo)準(zhǔn)庫或HAL系統(tǒng)庫API來實現(xiàn)。驅(qū)動程序開發(fā)驅(qū)動程序開發(fā) 指編寫供應(yīng)用程序訪問設(shè)備
41、的程序。 驅(qū)動程序直接和底層硬件的宏定義打交道。 一旦用戶要訪問設(shè)備的驅(qū)動程序編寫好,用戶的程序開發(fā)只要利用HAL提供的各種函數(shù)就可以編寫各種應(yīng)用程序了。2.2. 應(yīng)用程序和驅(qū)動應(yīng)用程序和驅(qū)動437.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫 HAL為嵌入式系統(tǒng)中常見的外圍設(shè)備提供了通用的設(shè)備模型,為嵌入式系統(tǒng)中常見的外圍設(shè)備提供了通用的設(shè)備模型,使用戶無需考慮底層硬件,只需利用與之相一致的使用戶無需考慮底層硬件,只需利用與之相一致的API編寫應(yīng)編寫應(yīng)用程序即可。用程序即可。字符模式設(shè)備字符模式設(shè)備發(fā)送和接受字符串的外圍硬件設(shè)備,如發(fā)送和接受字符串的外圍硬件設(shè)備,如UART定時器設(shè)備定時器設(shè)備對時鐘脈沖計
42、數(shù)并能產(chǎn)生周期性中斷請求的外圍對時鐘脈沖計數(shù)并能產(chǎn)生周期性中斷請求的外圍硬件設(shè)備硬件設(shè)備文件子系統(tǒng)文件子系統(tǒng)提供訪問存儲在物理設(shè)備中的文件的操作,如用提供訪問存儲在物理設(shè)備中的文件的操作,如用戶可以利用有關(guān)戶可以利用有關(guān)Flash存儲器設(shè)備的存儲器設(shè)備的HAL API編寫編寫Flash文件子系文件子系統(tǒng)驅(qū)動來訪問統(tǒng)驅(qū)動來訪問Flash。以太網(wǎng)設(shè)備以太網(wǎng)設(shè)備對對Altera提供的輕量級的提供的輕量級的IP協(xié)議提供訪問以太網(wǎng)協(xié)議提供訪問以太網(wǎng)的連接。的連接。DMA設(shè)備設(shè)備執(zhí)行大量數(shù)據(jù)在數(shù)據(jù)源和目的地之間傳輸?shù)耐鈬O(shè)執(zhí)行大量數(shù)據(jù)在數(shù)據(jù)源和目的地之間傳輸?shù)耐鈬O(shè)備。數(shù)據(jù)源和目的地可以是存儲器或其他設(shè)備
43、,如以太網(wǎng)連接。備。數(shù)據(jù)源和目的地可以是存儲器或其他設(shè)備,如以太網(wǎng)連接。Flash存儲器設(shè)備存儲器設(shè)備利用專門編程協(xié)議存儲數(shù)據(jù)的非易失性存利用專門編程協(xié)議存儲數(shù)據(jù)的非易失性存儲設(shè)備。儲設(shè)備。3. 3. 通用設(shè)備模型通用設(shè)備模型447.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫5. HAL5. HAL支持的外圍設(shè)備支持的外圍設(shè)備 Altera提供了許多在提供了許多在Nios 處理器系統(tǒng)中使用的外圍設(shè)備,大部分處理器系統(tǒng)中使用的外圍設(shè)備,大部分外圍設(shè)備都提供了外圍設(shè)備都提供了HAL驅(qū)動,使用戶可通過驅(qū)動,使用戶可通過HAL API訪問硬件。訪問硬件。字符模式設(shè)備字符模式設(shè)備定時器設(shè)備定時器設(shè)備文件子系統(tǒng)文件子
44、系統(tǒng)以太網(wǎng)設(shè)備以太網(wǎng)設(shè)備DMA設(shè)備設(shè)備Flash存儲器設(shè)備存儲器設(shè)備一些第三方外圍設(shè)備一些第三方外圍設(shè)備4. C4. C標(biāo)準(zhǔn)庫標(biāo)準(zhǔn)庫NewlibNewlibHAL系統(tǒng)庫與系統(tǒng)庫與ANSI C標(biāo)準(zhǔn)庫一起構(gòu)成標(biāo)準(zhǔn)庫一起構(gòu)成HAL的運(yùn)行環(huán)境的運(yùn)行環(huán)境(Runtime Environment)。HAL使用的使用的Newlib是是C語言標(biāo)準(zhǔn)庫的一種開放語言標(biāo)準(zhǔn)庫的一種開放源代碼的實現(xiàn),是在嵌入式系統(tǒng)上使用的源代碼的實現(xiàn),是在嵌入式系統(tǒng)上使用的C語言程序庫,正好與語言程序庫,正好與HAL和和Nios 處理器相匹配。處理器相匹配。457.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫二、使用二、使用HALHAL開發(fā)程序開發(fā)
45、程序 HAL和和SOPC Builder緊密相關(guān),如果硬件配置有了變緊密相關(guān),如果硬件配置有了變化,化,HAL設(shè)備驅(qū)動配置也會自動隨之改動,從而避免設(shè)備驅(qū)動配置也會自動隨之改動,從而避免了由于底層硬件的變化而產(chǎn)生的程序錯誤。了由于底層硬件的變化而產(chǎn)生的程序錯誤。 用戶不用自己創(chuàng)建或拷貝用戶不用自己創(chuàng)建或拷貝HAL文件,而且用戶也不用文件,而且用戶也不用編輯編輯HAL中的任何源代碼。中的任何源代碼。NiosIDE會為用戶自動創(chuàng)會為用戶自動創(chuàng)建和管理建和管理HAL文件。文件。467.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫1. Nios IDE1. Nios IDE工程結(jié)構(gòu)工程結(jié)構(gòu)軟件軟件硬件硬件477.5
46、 7.5 HAL系統(tǒng)庫系統(tǒng)庫2. System.h 2. System.h 系統(tǒng)描述文件系統(tǒng)描述文件 System.hSystem.h文件是文件是HALHAL系統(tǒng)庫的基礎(chǔ),它提供了關(guān)于系統(tǒng)庫的基礎(chǔ),它提供了關(guān)于Nios Nios 系統(tǒng)硬件的軟件描述。它描述了系統(tǒng)中的每個外圍設(shè)系統(tǒng)硬件的軟件描述。它描述了系統(tǒng)中的每個外圍設(shè)備,并給出以下一些詳細(xì)信息:備,并給出以下一些詳細(xì)信息:外圍設(shè)備的硬件配置;外圍設(shè)備的硬件配置;基地址;基地址;中斷優(yōu)先級;中斷優(yōu)先級;外圍器件的符號名稱。外圍器件的符號名稱。 用戶無須編輯用戶無須編輯System.hSystem.h文件,它是由文件,它是由Nios IDENi
47、os IDE自動生自動生成的。成的。 可以到以下目錄中查看可以到以下目錄中查看System.hSystem.h文件,:文件,:QuartusQuartus工程工程softwareNiossoftwareNios工程名工程名 _syslibDebugsystem_description_syslibDebugsystem_description487.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫3. 3. 數(shù)據(jù)寬度和數(shù)據(jù)寬度和HALHAL類型定義類型定義 alt_types.halt_types.h頭文件定義了頭文件定義了HALHAL的數(shù)據(jù)類型。在以下路徑的數(shù)據(jù)類型。在以下路徑可以查看該文件:可以查看該文件:
48、Nios 安裝路徑安裝路徑componentsaltera_nios2HALinc 部分代碼摘抄如下:部分代碼摘抄如下:typedef signed char alt_8;typedef unsigned char alt_u8;typedef signed short alt_16;typedef unsigned short alt_u16;typedef signed long alt_32;typedef unsigned long alt_u32;類型類型說明說明alt_8有符號有符號8位整數(shù)位整數(shù)alt_u8無符號無符號8位整數(shù)位整數(shù)alt_16有符號有符號16位整數(shù)位整數(shù)alt_
49、u16無符號無符號16位整數(shù)位整數(shù)alt_32有符號有符號32位整數(shù)位整數(shù)alt_u32無符號無符號32位整數(shù)位整數(shù)497.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫4. 4. 文件系統(tǒng)文件系統(tǒng) HALHAL提出了文件系統(tǒng)的概念,可以使用戶操作提出了文件系統(tǒng)的概念,可以使用戶操作字符模式字符模式的的設(shè)備和文件。設(shè)備和文件。 在整個在整個HALHAL文件系統(tǒng)中將文件子系統(tǒng)注冊為載入點,要訪文件系統(tǒng)中將文件子系統(tǒng)注冊為載入點,要訪問這個載入店下的文件就要由這個文件子系統(tǒng)管理。問這個載入店下的文件就要由這個文件子系統(tǒng)管理。 字符模式的設(shè)備寄存器常作為字符模式的設(shè)備寄存器常作為HALHAL文件系統(tǒng)中的節(jié)點。通文件
50、系統(tǒng)中的節(jié)點。通常情況下,常情況下,system.hsystem.h文件中將設(shè)備節(jié)點的名字定義為前文件中將設(shè)備節(jié)點的名字定義為前綴綴/dev/dev/+ +在在SOPC BuilderSOPC Builder中指定給硬件元件的名稱。中指定給硬件元件的名稱。 以下例子完成了從一個只讀文件的文件子系統(tǒng)以下例子完成了從一個只讀文件的文件子系統(tǒng)rozipfsrozipfs中中讀取字符的功能。讀取字符的功能。507.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫 例例 從文件子系統(tǒng)中讀取字符。從文件子系統(tǒng)中讀取字符。#include #include #include #include #include #includ
51、e #define BUF_SIZE (10)#define BUF_SIZE (10)int main() int main() FILE FILE * * fp; fp;char bufferBUF_SIZE;char bufferBUF_SIZE;fp = fopen(“/mount/rozipfs/test”,”r”);fp = fopen(“/mount/rozipfs/test”,”r”);if ( fp = NULL ) if ( fp = NULL ) printf(“cannot open file.n”);printf(“cannot open file.n”);exit(
52、1);exit(1); fread(buffer,BUF_SIZE,1,fp);fread(buffer,BUF_SIZE,1,fp);Fclose();Fclose();return 0;return 0; 517.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫5. 5. 外圍設(shè)備的使用外圍設(shè)備的使用 現(xiàn)以字符模式外圍設(shè)備為例介紹在用戶程序中如何對外圍設(shè)備進(jìn)現(xiàn)以字符模式外圍設(shè)備為例介紹在用戶程序中如何對外圍設(shè)備進(jìn)行操作。字符模式外圍設(shè)備在行操作。字符模式外圍設(shè)備在HALHAL文件系用中被定義為文件系用中被定義為節(jié)點節(jié)點。一般。一般情況下,程序先將一個情況下,程序先將一個文件文件和和設(shè)備名稱設(shè)備名稱聯(lián)系起來,
53、再通過使用聯(lián)系起來,再通過使用file.hfile.h中定義的中定義的ANSI CANSI C文件操作向文件寫數(shù)據(jù)或從文件讀取數(shù)據(jù)。文件操作向文件寫數(shù)據(jù)或從文件讀取數(shù)據(jù)。(1 1)標(biāo)準(zhǔn)輸入()標(biāo)準(zhǔn)輸入(stdinstdin)、標(biāo)準(zhǔn)輸出()、標(biāo)準(zhǔn)輸出(stdoutstdout)和標(biāo)準(zhǔn)錯誤)和標(biāo)準(zhǔn)錯誤(stderrstderr)函數(shù))函數(shù)使用這些函數(shù)是最簡單的控制使用這些函數(shù)是最簡單的控制I/OI/O的方法;的方法;HALHAL系統(tǒng)庫在后臺管理系統(tǒng)庫在后臺管理stdinstdin、stdoutstdout和和stderrstderr函數(shù)。函數(shù)。 例例 發(fā)送發(fā)送Hello worldHello wo
54、rld給任何一個和給任何一個和stdoutstdout連接的設(shè)備。連接的設(shè)備。#include #include int main() int main() printf(“Hello world!/n”);printf(“Hello world!/n”);return 0;return 0; 527.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫(2 2)字符模式設(shè)備的通用訪問方法)字符模式設(shè)備的通用訪問方法除除stdinstdin、stdoutstdout和和stderrstderr函數(shù)外,訪問字符模式設(shè)備還可以通過函數(shù)外,訪問字符模式設(shè)備還可以通過打開和寫文件的方式。打開和寫文件的方式。 例例 向向UA
55、RTUART寫入字符寫入字符”hello world”hello world”。 #include #include #include #include int main() int main() charchar* * msg = “hello world”; msg = “hello world”;FILEFILE* * fp; fp;fp = fopen(“/dev/uart1”,”w”);fp = fopen(“/dev/uart1”,”w”);if ( fp ) if ( fp ) fprintf(fp,”%s”,msg);fprintf(fp,”%s”,msg);fclose(fp
56、);fclose(fp); return 0;return 0; 537.5 7.5 HAL系統(tǒng)庫系統(tǒng)庫(3 3) /dev/null/dev/null設(shè)備設(shè)備所有的系統(tǒng)都包括所有的系統(tǒng)都包括/dev/null/dev/null設(shè)備。向設(shè)備。向/dev/null寫數(shù)寫數(shù)據(jù)對系統(tǒng)沒有什么影響,所寫的數(shù)據(jù)將被丟棄。據(jù)對系統(tǒng)沒有什么影響,所寫的數(shù)據(jù)將被丟棄。/dev/null用來在系統(tǒng)啟動過程中重定向安全用來在系統(tǒng)啟動過程中重定向安全I(xiàn)/O,也可,也可以用在應(yīng)用程序中丟棄不需要的數(shù)據(jù)。這個設(shè)備只是以用在應(yīng)用程序中丟棄不需要的數(shù)據(jù)。這個設(shè)備只是個軟件指令,不與系統(tǒng)中任何一個硬件設(shè)備相關(guān)。個軟件指令,不
57、與系統(tǒng)中任何一個硬件設(shè)備相關(guān)。547.6 7.6 設(shè)計實例設(shè)計實例電子鐘電子鐘一、設(shè)計要求與軟硬件規(guī)劃一、設(shè)計要求與軟硬件規(guī)劃二、硬件部分設(shè)計二、硬件部分設(shè)計三、軟件部分設(shè)計三、軟件部分設(shè)計557.6 7.6 設(shè)計實例設(shè)計實例電子鐘電子鐘一、設(shè)計要求與軟硬件規(guī)劃一、設(shè)計要求與軟硬件規(guī)劃 本節(jié)介紹一個電子鐘的軟、硬件方案設(shè)計以及具本節(jié)介紹一個電子鐘的軟、硬件方案設(shè)計以及具體的軟件實現(xiàn)。體的軟件實現(xiàn)。 1. 1. 系統(tǒng)功能系統(tǒng)功能 1 1)在液晶屏上顯示時間、日期、狀態(tài)提示;)在液晶屏上顯示時間、日期、狀態(tài)提示; 2 2)對時間、日期能夠進(jìn)行設(shè)置。)對時間、日期能夠進(jìn)行設(shè)置。 2. 2. 硬件系統(tǒng)
58、組成規(guī)劃硬件系統(tǒng)組成規(guī)劃本系統(tǒng)需使用的外圍器件包括:本系統(tǒng)需使用的外圍器件包括: 1)LCD:電子鐘顯示屏幕;:電子鐘顯示屏幕; 2)按鈕:電子鐘設(shè)置功能鍵;)按鈕:電子鐘設(shè)置功能鍵; 3)Flash存儲器:存儲硬件和程序;存儲器:存儲硬件和程序; 4)SRAM存儲器:程序運(yùn)行時將其導(dǎo)入存儲器:程序運(yùn)行時將其導(dǎo)入SRAM。567.6 7.6 設(shè)計實例設(shè)計實例電子鐘電子鐘2. 2. 硬件系統(tǒng)組成規(guī)劃(續(xù))硬件系統(tǒng)組成規(guī)劃(續(xù))在在SOPC Builder中建立系統(tǒng)要添加的模塊包括:中建立系統(tǒng)要添加的模塊包括: 1) Nios 32bits CPU; 2)定時器;)定時器; 3)按鍵)按鍵PIO;
59、 4)LCD Display ; 5)外部)外部RAM總線總線(Avalon 三態(tài)橋三態(tài)橋) ; 6)外部)外部RAM接口;接口; 7)外部)外部Flash接口;接口; 8)重新配置請求)重新配置請求PIO; 9)JTAG UART Interface; 10)EPCS Serial Flash Controller。577.6 7.6 設(shè)計實例設(shè)計實例電子鐘電子鐘端口定義表端口定義表序序 號號名稱名稱輸入輸入/輸出輸出描述描述1clkIn時鐘輸入,50MHz2reset_nIn復(fù)位輸入3in_port_to_the_button_3.0In4個按鍵輸入4be_n_to_the_ext_ram
60、3.0Out字節(jié)選擇5ext_ram_bus_address22.0OutSRAM地址6ext_ram_bus_data31.0InoutSRAM數(shù)據(jù)7read_n_to_the_ext_flashOutFLASH輸出使能(即讀信號)8read_n_to_the_ext_ramOutSRAM輸出使能9select_n_to_the_ext_flashOutFLASH片選信號10select_n_to_the_ext_ramOutSRAM片選信號587.6 7.6 設(shè)計實例設(shè)計實例電子鐘電子鐘端口定義表(續(xù))端口定義表(續(xù)) 序號序號名名 稱稱輸入輸入/輸出輸出描描 述述11write_n_to
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度環(huán)保產(chǎn)業(yè)園場承包經(jīng)營合同范本4篇
- 二零二五版飛機(jī)買賣及航空市場推廣合同4篇
- 二零二五年度整體櫥柜銷售及售后保障合同范本4篇
- 2025年度櫥柜定制與智能家居生態(tài)平臺合同4篇
- 2025年度個人汽車轉(zhuǎn)讓及二手車鑒定評估及維修服務(wù)合同4篇
- 二零二五年度智慧家居系統(tǒng)定制與安裝服務(wù)合同3篇
- 二零二五版留置車輛租賃合同借款協(xié)議4篇
- 二零二五年度高速公路隧道安防監(jiān)控合同
- 二零二四全新時尚潮流服裝店租賃與轉(zhuǎn)讓合同3篇
- 2025年度汽車配件銷售及售后服務(wù)合同范本4篇
- 道路瀝青工程施工方案
- 《田口方法的導(dǎo)入》課件
- 內(nèi)陸?zhàn)B殖與水產(chǎn)品市場營銷策略考核試卷
- 票據(jù)業(yè)務(wù)居間合同模板
- 承包鋼板水泥庫合同范本(2篇)
- DLT 572-2021 電力變壓器運(yùn)行規(guī)程
- 公司沒繳社保勞動仲裁申請書
- 損傷力學(xué)與斷裂分析
- 2024年縣鄉(xiāng)教師選調(diào)進(jìn)城考試《教育學(xué)》題庫及完整答案(考點梳理)
- 車借給別人免責(zé)協(xié)議書
- 應(yīng)急預(yù)案評分標(biāo)準(zhǔn)表
評論
0/150
提交評論