niosii软核的点阵控制设计_第1页
niosii软核的点阵控制设计_第2页
niosii软核的点阵控制设计_第3页
niosii软核的点阵控制设计_第4页
niosii软核的点阵控制设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SOPC课程设计报告NIOSII软核的点阵控制设计引言当今,数字系统的设计可以直接面向用户的需求,根据系统功能的要求,从上到下逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件。而FPGAFIELDPROGRAMMABLEGATEARRAY,现场可编程门镇列以设计灵活及速度快的特点,在数字专用集成电路的设计中得到了广泛应用。一、实验内容本实验要求完成的任务是利用NIOS软核处理器为核心控制器,在软核CPU中添加点阵控制接口并搭建对应电路,利用软件控制点阵的运行,在点阵的循环显示每个组员的名字、学号等信息。二、点阵显示原理1点阵模块说明此设计采用4块88的点阵块组成1616的点阵显示模块1188点阵块工作原理如图1所示。88点阵块工作方式Q端加正电压,COM端接地时发光二管点亮。例如,当COM8接地且Q1Q8分别接高电平时,第一行亮。同理,当COM7接地,Q1Q8分别接高电平时,第二行亮。依此类推。当Q5端加高电平时,分别让COM1COM8接地,第一列亮。其它列依此类推。121616点阵模块用4块88的点阵块组成1616的点阵模块显示汉字,连接关系如图2所示。Q0Q15成为点阵块的行线,COM0COM15形成点阵块的列线。13行列驱动由循环计数器输出经放大后的驱动点阵,形成动态扫描,分别控制一列中的每个灯,当列线发出信号后,行线同时发出数据,这样就将一个汉字由左到右分成16列。在完成各列的同时,行线发出行数据,一个循环就可以将一个汉字完整的重现在1616的点阵模块上。本实验主要完成汉字字符在LED上的显示,1616扫描LED点阵的工作原理与8位扫描数码管类似,只是显示的方式与结果不一样而已。下面就本实验系统的1616点阵的工件原理做一些简单的说明。1616点阵由此256个LED通过排列组合而形成16行16列的一个矩阵式的LED阵列,俗称1616点阵。单个的LED的电路如下图111所示图111单个LED电路图由上图可知,对于单个LED的电路图当RN输入一个高电平,同时CN输入一个低电平时,电路形成一个回路,LED发光。也就是LED点阵对应的这个点被点亮。1616点阵也就是由16行和16列的LED组成,其中每一行的所有16个LED的RN端并联在一起,每一列的所有16个LED的CN端并联在一起。通过给RN输入一个高电平,也就相当于给这一列所有LED输入了一个高电平,这时只要某个LED的CN端输入一个低电平时,对应的LED就会被点亮。具体的电路如下图112所示图1121616点阵电路原理图在点阵上显示一定有字符是根据其字符在点阵上的显示的点的亮灭来表示的如下图113所示图113字符在点阵上的显示在上图中,显示的是一个“汉”字,只要将被“汉”字所覆盖的区域的点点亮,则在点阵中就会显示一个“汉”字。根据前面我们所介绍的点阵显示的原理。当我们选中第一列后,根据要显示汉字的第一列中所需要被点亮的点对应的RN置为高电平,则在第一列中需要被点亮的点就会被点亮。依此类推,显示第二列、第三列第N列中需要被点亮的点。然后根据人眼的视觉原理,将每一列显示的点的间隔时间设为一定的值,那么我们就会感觉显示一个完整的不闪烁的汉字。同时也可以按照这个原理来显示其它的汉字。下在上图中,在系统时钟的作用下,首先选取其中的一列,将数据输入让这列的LED显示其数据(当为高电平时LED发光,否则不发光)。然后选取下一列来显示下一列的数据。当完成一个1616点阵的数据输入时,即列选择计数到最后一列后,再从第一列开始输入相同的数据。这样只要第一次显示第一列的数据和第二次显示第一列的数据的时间足够短,那么人的眼睛就会看到第一列的数据总是显示的,而没有停顿现象。同样的道理其它列也是这样,直到显示下一个汉字。在实际的运用当中,一个汉字是由多个八位的数据来构成的,那么要显示多个汉字的时候,这些数据可以根据一定的规则存放到存储器中,当要显示这个汉字的时候只要将存储器中对应的数据取出显示即可。本实验的示例程序依次显示的是“欢迎使用嵌入式SOC开发系统”。数据量不大,所以没有放入存储器中,而在程序中直接输入对应的一个16位的数据。示例程序的字库数据的格式如下图115所示图115字库格式图1171616点阵显示的电路框图在此实验中,1616点阵由4个88点阵组成,考虑到LED电流功耗与FPGA电流功耗的关系,在实验的电路中加入驱动电路。具体电路如下图116所示。与FPGA的管脚连接如表111所示。图1161616点阵电路图信号名称对应FPGA管脚名说明DOTC0W19点阵的第1列输入端口DOTC1U17点阵的第2列输入端口DOTC2R8点阵的第3列输入端口DOTC3T8点阵的第4列输入端口DOTC4U7点阵的第5列输入端口DOTC5W8点阵的第6列输入端口DOTC6W10点阵的第7列输入端口DOTC7Y11点阵的第8列输入端口DOTC8AB18点阵的第9列输入端口DOTC9AA18点阵的第10列输入端口DOTC10AB20点阵的第11列输入端口DOTC11AA20点阵的第12列输入端口DOTC12AB21点阵的第13列输入端口DOTC13W17点阵的第14列输入端口DOTC14Y15点阵的第15列输入端口DOTC15Y13点阵的第16列输入端口DOTR0AD8点阵的第1行输入端口DOTR1AC9点阵的第2行输入端口DOTR2AD10点阵的第3行输入端口DOTR3AC10点阵的第4行输入端口DOTR4AD11点阵的第5行输入端口DOTR5AC11点阵的第6行输入端口DOTR6AD12点阵的第7行输入端口DOTR7AC12点阵的第8行输入端口DOTR8AD4点阵的第9行输入端口DOTR9AC5点阵的第10行输入端口DOTR10AD5点阵的第11行输入端口DOTR11AC6点阵的第12行输入端口DOTR12AD6点阵的第13行输入端口DOTR13AC7点阵的第14行输入端口DOTR14AD7点阵的第15行输入端口DOTR15AC8点阵的第16行表11116X16点阵与FPGA的管脚连接表三、设计步骤1下面我们建立一个点阵显示的工程1选择开始程序ALTERAQUARTUSII51,运行QUARTUSII软件。或者双击桌面上的QUARTUSII的图标运行QUARTUSII软件,出现如图13所示。图13QUARTUSII软件运行界面2选择软件中的菜单FILENEWPROJECTWIZARD,新建一个工程。如图14所示。图14新建工程对话框3)点击图14中的NEXT进入工作目录,工程名的设定对话框如图15所示。第一个输入框为工程目录输入框,用户可以输入如E/EDA等工作路径来设定工程的目录,设定好后,所有的生成文件将放入这个工作目录。第二个输入框为工程名称输入框,第三个输入框为顶层实体名称输入框。用户可以设定如EXP1,一般情况下工程名称与实体名称相同。使用者也可以根据自已的实际情况来设定工程名和顶层文件名。注本处的顶层文件名必须和程序的实体名一致,否则编译会出错。图15指定工程名称及工作目录4)点击NEXT,进入下一个设定对话框,按默认选项直接点击NEXT进行器件选择对话框。如图16所示。这里我们以选用CYCLONEII系列芯片EP2C35F672C8为例进行介绍。用户可以根据使用的不同芯片来进行设定。图16器件选择界面首先在对话框的左上方的FAMILY下拉菜单中选取CYCLONEII,在中间右边的SPEEDGRADE下拉菜单中选取8,在左下方的AVAILABLEDEVICES框中选取EP2C35F672C8,点击NEXT完成器件的选取,进入EDATOOL设定界面如图17所示。图17EDATOOL对话框5)按默认选项,点击NEXT出现新建工程以前所有的设定信息,如图18所示,点击FINISH完成新建工程的建立。图18新建工程信息2硬件模块添加通过SOPCBUILDER添加工程所需组件。在QUARTUSII中,点击工具栏中右侧的图标,或者通过单击菜单“TOOLSSOPCBUILDER”都可以启动它。1)添加NIOSIICPUCORE双击左侧选择组件栏中的NIOSIIPROCESSOR,弹出配置对话框2)添加RAM添加内部RAM选择MEMORYONCHIPMEMORY,改名RAM;3)添加JTAGUART双击左侧选择组件栏中INTERFACEPROTOCOLSSERIALJTAGUART。选用所有的默认设置,点击“FINISH”完成添加,如下图所示。4)添加PIO在左组件栏中添加GPIO。因为要定制4个按键输入I/O口,所以设定数据宽度“WIDTH”为4,设定方向为“ITPUTPORTSONLY”,点击“FINISH”,如下图所示。依次添加下图PIO5)添加完元件后,就要为每个外设分配基地址以及中断号(IRQ)。SOPCBUILDER给我们提供了配置这两个的命令,通过这两个命令就可分别快速简单分配外设基地址和中断。下图是添加完所有组件后的SOPCBUILDER配置情况。然后生成硬件系统。6)设计顶层文件在QUARTUSII中的图形编辑界面中进行管脚连接锁定工作将生成模块以图标形式添加到BDF文件中于QUARTUS界面NEWBLOCKDIAGRAM/SCHEMATICFILE,于弹出画图界面双击空白弹出添加界面完成模块的输入输出接口连接7)引脚锁定和编译新建引脚锁定命令文件,FILENEWTCLSCRIPTFILE,弹出新窗口,将引脚锁定文件输入进去,通过查阅引脚文件从而对相应输入输出对应到硬件引脚上。然后编译工程PROCESSSTARTCOMPILATION。8)配置FPGA这里要打开实验板电源、连接USB下载线将生成的SOF文件下载到目标板上。步骤TOOLSPROGRAMMER目标文件夹下载,选择USBBLASTER模式,通过JTAG口对FPGA进行配置;然后点START,进度达到100便可将其关闭9)NIOSII软件设计A打开NIOSIIIDE,新建工程FILENEWPROJECT,选择C/CAPPLICATION,BROWSE选择工程里面的PTF后缀文件,选择HELLOWORLDSMALLFINISH。B添加C主程序文件选中工程右击NEWNIOSIIC/CAPPLICATION,输入程序。完成程序的添加后右击工程BUILDERPROJECTD对工程编译。C选择RUNRUN,系统自动检测JTAG连接电缆于弹出窗口MAIN中选中工程,在TARGETCONNECTION选择电缆USBBLASTERRUN,观察实验结果。四、程序文件下面是引用库LIBRARYIEEE库函数USEIEEESTD_LOGIC_1164ALL定义了STD_LOGIC数据类型及相应运算USEIEEESTD_LOGIC_ARITHALL定义了SIGNED和UNSIGNED数据类型、相应运算和相关类型转换函数USEIEEESTD_LOGIC_UNSIGNEDALL定义了一些函数,可以使STD_LOGIC_VECTOR类型被当作符号数或无符号数一样进行运算ENTITYEXP11ISEXP11为实体名PORTCLKINSTD_LOGIC时钟输入KEYCOUTSTD_LOGIC_VECTOR15DOWNTO0点阵列控制KEYROUTSTD_LOGIC_VECTOR15DOWNTO0点阵行显示ENDEXP11结束实体ARCHITECTUREBEHAVEOFEXP11ISBEHAVE为结构体名SIGNALCDOUNTSTD_LOGIC_VECTOR3DOWNTO0信号量表示列扫描频率SIGNALDOUNTSTD_LOGIC_VECTOR8DOWNTO0计数,SIGNALSSTD_LOGIC_VECTOR3DOWNTO0单个汉字的扫描周期BEGINPROCESSCLK显示时序控制进程1BEGIN以BEGIN为标志开始结构体的描述IFCLKEVENTANDCLK1THEN上升沿DOUNTKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYCKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYRKEYR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论