基于NIOS的LCD广告牌的设计.docx
- 文档编号:7223438
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:25
- 大小:1.91MB
基于NIOS的LCD广告牌的设计.docx
《基于NIOS的LCD广告牌的设计.docx》由会员分享,可在线阅读,更多相关《基于NIOS的LCD广告牌的设计.docx(25页珍藏版)》请在冰点文库上搜索。
基于NIOS的LCD广告牌的设计
目录
摘要I
AbstractII
引言1
1.硬核的开发2
1.1SOPC简介2
1.2各种SOPC的特性2
1.3.QuartusII软件简介及使用流程2
1.4.niosII简介及开发系统流程3
1.5nios的软件开发简介7
2.液晶显示128649
2.112864的概述9
2.212864LCD时序及实现流程9
2.412864显示原理11
2.5LCD显示模块的设计方案12
2.6生成12864的IP核12
3.软硬件结合设计13
3.1系统设计方案图13
3.2系统图及功能划分13
3.3设计实物结果展示14
结论16
致谢17
参考文献18
附录119
摘要
本文全面介绍了应用QuartusII软件进行广告牌的设计技术.利用SoPC技术,在NIOSⅡ系统中添加相应的I/O端口实现对12864液晶显示器的控制。
即通过应用QuartusII软件在nios平台开发软和处理器及其周围部件,同时用Verilog编写SPI接口的程序,通过IP核的方式加载到nios中,再在Altera开发板上建立硬件系统。
通过nios的软处理器平台编写程序12864液晶显示器的驱动程序及控制程序。
Nios嵌入式处理器是用户可配置的通用RISC嵌入式处理器,是一个非常灵活和强大的处理器。
随着PLD(可编程逻辑器件)性能的不断提高,SOPC(可编程片上系统)的设计和实现非常方便,用户可以灵活地进行系统硬件和软件设计,还可以现场进行系统级修改。
随着信息技术的发展,开发周期和成本成为电子产品开发的最主要的影响因素。
本课题就是降低开发周期,减少开发成本的一个很好的例子。
论文主要完成以下几方面的工作:
(1)、通过QuartusII软件开发基于nios的处理器及部分外围部件的硬件系统的搭建
(2)、用Verilog实现了SPI接口的功能,并生成IP核,应用到NIOS平台上的硬件系统中。
(3)、介绍12864液晶显示器,并分析控制其显示广告牌的内容
(4)、将软硬件系统结合起来,来实现整个系统的功能。
关键词 nios,spi,Altera,12864液晶显示器,QuartusII,FPGA;
Abstract
ThisarticlewillintroducehowexploitadvertisementboardoftechnologybyusingQuartusIIsoftware.ByusingofSOPCtechnology,weinsertcorrespondingI/Ointerfacetoperformcontrolof12864LCD.That,sit,byusingQuartusIIsoftwaretoexploitniossoftprocessoranditsexternaldevices,andwriteasoftwareofSPIinterface.UsingIPofSPIinterfacetoinserttoniossystem,andbuildahardwaresystemonAlteradevelopmentboard.Andwewillprogramadriverandcontrolsoftwareof12864LCD.NiossoftprocessorissystemthatisauniversalRISCembedded,whichcanbeconfiguredbyuser.Itisaveryflexibleandpowerfulprocessor.AsperformanceofPLDisincreasingimproved,thedesignandperformanceofSOPCareveryconvenient,usercanexploithardwareandsoftwareflexiblemoreflexibleandtheycanalsomodifysystemonthefield.Andwiththedevelopmentoftechnology,thetimeandexpensearethemostimportantelementintheprocessofexploitingtheelectronicproduct.Thissubjectisagoodexamplethatreducethetimeandexpenseofexploitation.
Completedthepaperworkofthefollowingareas:
(1)ByusingQuartusIIsoftwaretoexploitbasedniossoftprocessoranditsexternaldevices.
(2)UseverilogtowritesoftwareofSPIinterface,andgenerateIPofSPI.Andwewillperformitintheniossystem.
(3)Introduce12864LCD,andcontroltheadvertisementboard
(4)connectthesoftwareandhardwaresystem,andperformthecompletesystem.
Keywordsnios,spi,Altera,12864LCD,QuartusII,FPGA;
引言
嵌入式系统无疑是当今最热门、最有发展前景的IT领域之一,很多典型的嵌入式应用、尤其在这个日益智能化的世界、嵌入式显得更为重要。
在设计SOC时,常把ARM作为硬核植入到FPGA中。
硬核具有成本低、速度快等优点。
但是将IP硬核直接植入FPGA的解决力案存在以下不足:
由于硬核是预先植入的,设计者无法依据实际需要改变处理器的结构;无法根据实际设计需要在同一FPGA中集成多个处理器;无法根据需要裁减处理器硬件资源以降低FPGA成本等。
在NIOSⅡ中还可以添加用户自定义的指令。
在开发工具的完备性方面NIOSⅡ也具有很大的优势。
Altera不仅提供强大的HAL系统库支持,还提供嵌入式操作系统核TCP/IP协议栈的支持。
Altera公司开发的基于SOPC(SystemonaProgrammableChip)技术的NIOS嵌入式处理器是一个可变结构的、通用型的RISC嵌入式处理器.Nios嵌入式处理器是用户可配置的通用RISC嵌入式处理器,是一个非常灵活和强大的处理器.
针对这种基于nios的LCD广告牌,国内目前还没有达到广泛应用。
而在国外,尽管基于SOPC技术的计算机处理器尚未进入全面的商业化推广阶段,但其研究和应用的成果却不能不令人深感SOPC在这一领域中的巨大潜力和广阔的市场。
虽然在国外对于SOPC技术的应用已经比较成熟,但是针对LCD控制系统的开发,在国内外的专业的公司不多的。
对于具有巨大市场的中国,这种LCD也开始慢慢受到开发商的重视,相信在不久的将来,基于nios的控制系统必将得到很快的发展
目前,SOPC技术取得了空前的发展,以SOPC为核心的电子产品,是近几年集成电路中发展最快的产品.SOPC将进一步扩大适用领域,将复杂专用芯片挤向高端和超复杂应用.SOPC是PLD和ASIC技术融合的结果,目前0.13微米的ASIC产品制造价格仍然相当昂贵,相反,集成了硬核或软CPU、DSP、存储器、外围I/O及可编程逻辑的SOPC芯片在应用的灵活性和价格上有极大的优势。
SOPC被称为“半导体产业的未来”。
1.硬核的开发
1.1SOPC简介
SOPC(SystemOnProgrammableChip)即可编程的片上系统,或者说是基于大规模FPGA的单片系统。
SOPC的设计技术是现代计算机辅助设计技术、EDA技术和大规模集成电路技术高度发展的产物。
SOPC技术是将尽可能大而完整的电子系统,包括嵌入式处理器系统、接口系统、硬件协处理器或加速系统、DSP系统、数字通信系统、存储电路以及普通数字系统等,在单一FPGA中嵌入实现。
大量采用IP复用、软硬件协同设计、自顶向下和自底向上混合设计的方法,边设计、边调试、边验证……原本需要写上几千行的VHDL代码的功能模块,通过嵌入IP核后,只需几十行C代码即可实现。
因此,可以使得整个设计在规模、可靠性、体积、功耗、功能、性能指标、上市周期、开发成本、产品维护及其硬件升级等多方面实现最优化。
1.2各种SOPC的特性
下面简单介绍各种SOPC的特点:
1Xilinx的MicroBlaze
和ARM7比较接近,32bitRISC,3级流水线,哈佛结构。
采用IBM的总线构造CoreConnect,开发工具为ISE.
2Altera的NiosII
其是32bitRISC,据说可以达到200DMIPS,采用Altera特有的总线结构Avalon总线结构。
根据性能需要,可以有三种的选择:
快速,标准,经济,占用的FPGA资源相应减少。
支持RTOS,例如MicroC/OS-II以及NucleusPlus。
开发工具为QuartusII中的SOPCbuilder.
3ARM的Cortex-M1
Cortex-M1的性能参数大致为:
基本相当于ARM7-TDMI,,使用thumb2命令集的一个子集,最高频率为170MHz,处理能力达0.8DMIPS/MHz,占用FPGA资源为4300TILE.。
1.3.QuartusII软件简介及使用流程
QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌有综合和仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统功能集中,易学易用等特点。
QuartusII建立工程流程:
1)打开QuartusII软件,点击File选项中的Newprojectwizard
2)建立工程,填写工程名
3)选择cyclone的EP1C20F4007器件
4)新工程建立完毕,工程信息
5)建立一个新文件,选择blockdiapram/SchematicFile
1.4.niosII简介及开发系统流程
(1).Nios开发软硬件总体流程图:
图1-1Nios开发软硬件总体流程图
(2).Nios硬核开发
图1-2.Nios硬核开发图
(3).Nios核的开发流程
在QartusII软件介绍中我们已经介绍了建立工程流程,下面我们来介绍建立NIOS核的流程:
1)、打开“Tools|SOPCBuilder…”进入SOPCBuilder。
在“CreateNewsystem”填写文件名,默认“Verilog”硬件描述语言,点击“OK”。
如图所示:
图1-3建立SOPCbuilder文件
点击“OK”,“DeviceFamily”栏选择“Cyclone”,“clk”栏为“50”MHz。
2)添加片内RAM。
双击左栏“ComponentLibrary”下的“MemoriesandMemoryControllers|On-chip|On-ChipMemory(RAMorROM)”。
在“On-chipMemory”对话框中选择“RAM”,“MemoryWidth”为32位,容量大小“TotalMemorySize”为“16”Kbyte,Cyclone器件内部的存储器是有限的,因此不能选择太大。
如图所示:
图1-4在NIOS平台上添加RAM
3)单击“Finish”完成,右击名称选择“Rename”,改名为“ram”。
4)添加NiosIICPUCore。
双击左栏“ComponentLibrary”下的“NiosIIProcessor”,NiosII有三种标准:
经济型、标准型、全功能型。
我们选择经济型,复位向量ResetVectorMemory和异常向量ExceptionVectorMemory均选择ram_0,两者的偏移量不需要更改。
如图所示:
图1-5选择CPU的类型
图1-6选择调试级别
然后默认单击“Next”,最后单击“Finish”完成。
右击“cpu_0”可以更改名称,将其改为“CPU”。
5)、添加所有所需的器件,自动分配基地址和中断。
分别点击菜单上的“System|Auto-AssignBaseAdresses”和“System|Auto-AssignIRQs”。
6)单击“Next”。
若要创建仿真工程文件,选择SystemGeneration下的Simulation。
本实验默认不选。
单击Generate。
(注意:
完成后不要关闭SOPCBuilder。
)完成。
图1-7在NIOS中添加的CPU及其外围设备
8)、添加完成后,就开始生成nios核,成功后就推出SOPCBiulder,单击左键添加核:
图1-8生成的软CPU系统图
9)、管脚分配,可以手动分配,也可以建立脚本文件,运行后系统自动分配。
其中写tcl文件格式如下:
图1-9分配管脚后的软系核系统图
1.5nios的软件开发简介
NiosⅡIDE(NiosⅡIntegratedDevelopmentEnviroment/NiosⅡ集成开发环境)是个功能齐全的集成调试器,具有硬件在线调试功能。
通过它可以设置硬件断点观察程序的各种变量,还可以观察寄存器的变化情况。
NiosⅡIDE基于开放式的、工具(CDT)工程。
NiosⅡIDE为软件开发提供四个主要的功能:
(1)工程管理器
NiosⅡIDE提供多个工程管理任务,加快嵌入式应用程序的开发进度。
新工程向导——NiosⅡIDE推出了一个新工程向导,用于自动建立C/C++应用程序工程
和系统库工程。
采用新工程向导,能够轻松地在NiosIIIDE中创建工程。
软件工程模板——除了工程创建向导,NiosⅡIDE还以工程模板的形式提供了软件代码实例,帮助软件工程师尽可能快速地推出可运行的系统
(2)编辑器和编译器
AlteraNiosⅡIDE提供了一个全功能的源代码编辑器和C/C++编译器。
文本编辑器——NiosⅡIDE文本编辑器是一个成熟的全功能源文件编辑器。
这些功能包括:
语法高亮显示C/C++、代码辅助/代码协助完成、全面的搜索工具、文件管理、广泛的在线帮助主题和教程、引入辅助、快速定位自动纠错、内置调试功能。
C/C++编译器——NiosⅡIDE为GCC编译器提供了一个图形化用户界面NiosⅡIDE编译环境使设计Altera的NiosⅡ处理器软件更容易,它提供了一个易用的按钮式流程,同时允许开发人员手工设置高级编译选项。
NiosⅡIDE编译环境自动地生成一个基于用户特定系统配置(SOPCBuilder生成的PTF文件)的makefile。
NiosⅡIDE中编译/链接设置的任何改变都会自动映射到这个自动生成的makefile中的选项、闪存内容、仿真器初始化文件(DAT/HEX)以及profile总结文件的相关选项。
(3)调试器
NiosⅡIDE包含一个强大的、在GNU调试器基础之上的软件调试器-GDB该调试器提供了许多基本调试功能,以及一些在低成本处理器开发套件中不会经常用到的高级调试功能。
基本调试功能——NiosⅡIDE调试器包含如下的基本调试功能:
运行控制、调用堆栈查看、软件断点、反汇编代码查看、调试信息查看、指令集仿真器
高级调试——除了上述基本调试功能之外,NiosⅡIDE调试器还支持以下高级
调试功能:
硬件断点调试ROM或闪存中的代码、数据触发、指令跟踪。
(4)闪存编程器
使用NiosⅡ处理器的设计都在单板上采用闪存,可以用来存储FPGA配置数据和/或NiosⅡ编程数据。
NiosⅡIDE提供了一个方便的闪存编程方法。
任何连接到FPGA的兼容通用闪存接口(CFI)的闪存器件都可以通过NiosⅡIDE闪存编程器来烧写。
除CFI闪存之外,NiosⅡIDE闪存编程器能够对连接到FPGA的任何Altera串行配置器件。
2.液晶显示12864
2.112864的概述
12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
2.212864LCD时序及实现流程
1)、12864基本结构图:
图3-112864基本结构图
2)、12864串行传输数据的时序图
CPU从12864读数据
图3-2CPU从12864中读数据时序图
3)CPU写数据到12864
图3-3CPU写数据到12864时序图
4)12864控制器接口信号说明:
RS,R/W的配合选择决定控制界面的4种模式:
表3-112864控制器接口信号表
RS
R/W
功能说明
L
L
MPU写指令到指令暂存器(IR)
L
H
读出忙标志(BF)及地址记数器(AC)的状态
H
L
MPU写入数据到数据暂存器(DR)
H
H
MPU从数据暂存器(DR)中读出数据
5)E使能信号
表3-212864使能信号使用表
E状态
执行动作
结果
高——>低
I/O缓冲——>DR
配合/W进行写数据或指令
高
DR——>I/O缓冲
配合R进行读数据或指令
低/低——>高
无动作
6)12864初始化流程
图3-412864初始化流程图
2.412864显示原理
12864每屏可显示4行8列,共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,每屏可实现32个中文字符或64个ASCII码字符的显示。
12864内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。
字符显示是通过将字符显示编码写入该字符显示RAM实现的。
根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。
三种不同字符/字型的选择编码范围为:
0000~0006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8192种GB2312中文字库字形。
字符显示RAM在液晶模块中的地址80H~9FH。
字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。
80
81
82
83
84
85
86
87
90
91
92
93
94
95
96
97
88
89
8A
8B
8C
8D
8E
8F
98
99
9A
9B
9C
9D
9E
9F
2.5LCD显示模块的设计方案
在NiosⅡ和LCD的接口中,一方面可以通过在NiosⅡ系统中添加相应I/O口的方式来实现对液晶显示屏LCD的间接控制,另一方面也可以利用构建IP核来直接进行控制。
第一种是将LCD接口当作普通的外部设备PIO进行操作,LCD的数据以及读、写使能、片选信号等都包括在PIO总线内;第二种是在SOPCBuilder中自己定义eomponent,并把液晶显示模块看成外部存储器,直接做成Avalon总线Slave设备。
第一种方法在硬件工程中,需要设计与外设相连的I/O接口;而在软件工程中,需要用户编写相应的接口程序对外设进行初始化,设置相应的外设寄存器。
在每次新建一个工程后,这样的工作都得重复进行,因而会增加开发成本。
第二种方案需要写HDL模块,自己定义控制状态、数据寄存器和控制位,这种方式控制灵活,易于实现复杂的控制时序,而且一旦自定义设备成功后,就可以像使用其他设备一样来使用这些设备。
用户也可以将这些设备共享给其他的使用者,这样就大大减少了重复工作。
本设计中采用第二种方法。
2.6生成12864的IP核
根据12864的时序和初始化流程,编写12864的verliog程序,生成串行传输数据的12864的初始化和控制过程的IP核,定义12864的管脚,并在nios中生成电路图,在nios中调用12864IP核,连接12864和CPU及其外围电路。
然后将生成的硬件电路下载到FPGA开发板上
1)生成的12864的IP核,如下图所示
图3-512864的IP核图
3.软硬件结合设计
3.1系统设计方案图
图4-1系统设计方案图
3.2系统图及功能划分
硬件系统图如下:
图4-2系统硬件系统图
1)其中NIOSCPU处理器及其外围设备功能是,控制和连接整个外围设备,建立硬件平台,以供下载和调试,以及执行软件程序,同时控制数据的输入输出。
NIOS软CPU平台如下图所示,其主要有CPU、片上存储器RAM和ROM,以及供下载的接口jtag_uart,还有系统调试工具sysid。
图4-3软CPU核组件图
3.3设计实物结果展示
实物电路图连接及系统运行结果图:
(1)12864液晶屏管脚连接图:
图4-412864液晶屏管脚连接图
(2)12864液晶屏显示:
图4-512864液晶屏显示结果
结论
本课题做设计的广告牌,是应用NIOSII建立CPU系统,再通过串行口传输到12864液晶显示屏上。
这样的设计不仅开发周期短,还可以大大节省开发成本。
本设计在NIOSII平台上搭建软处理器,再下载到可编程逻辑设计FPGA上,形成硬件系统。
然后再在该硬核系统上进行编程、调试,直到实现成功。
因为FPGA是现场可编程的,因此,可以大大节省开发成本。
而通过NIOSII可以根据开发的需要,选择合适的组件和合适的存储空间,这样可以大大节约硬件资源。
所以采用基于NIOSII的平台,再通过FPGA编程和调试,不仅实现了软硬结合的方法,实现了资源和开发最优化。
本设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 NIOS LCD 广告牌 设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)