您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第四章NIOSII外围设备
1基于FPGA的SOPC设计信息学院·李贞妮二○一三年五月2第四章NiosII外围设备3本章介绍了NiosII处理器常用外围设备(Peripherals)内核的特点、配置以及软件编程。这些外设都是以IP核的形式提供给用户的,用户可以根据实际需要把这些IP核集成到NiosII系统中去。主要介绍:–硬件结构;–内核的特性和接口;–SOPCBuilder中各内核的配置选项;–软件编程。主要内容4本章内容•4.1并行输入/输出(PIO)内核•4.2SDRAM控制器内核•4.3CFI(通用Flash)控制器内核•4.4EPCS控制器内核•4.5定时器内核•4.6UART内核•4.7JTAG_UART内核•4.8SPI内核•4.9DMA内核•4.10带Avalon接口的互斥内核•4.11带Avalon接口的邮箱内核•4.12SystemID内核5本章内容•4.1并行输入/输出(PIO)内核•4.2SDRAM控制器内核•4.3CFI(通用Flash)控制器内核•4.4EPCS控制器内核•4.5定时器内核•4.6UART内核•4.7JTAG_UART内核•4.8SPI内核•4.9DMA内核•4.10带Avalon接口的互斥内核•4.11带Avalon接口的邮箱内核•4.12SystemID内核64.1并行输入/输出内核并行输入/输出内核(PIO内核①)提供Avalon从控制器端口和通用I/O口②间的存储器映射接口。PIO内核提供简单的I/O访问用户逻辑或外部设备,例如:–控制LED–读取开关量–控制显示设备–配置并且与片外设备通信说明:1.SOPCBuilder中提供了PIO内核,可以很容易将PIO内核集成到SOPCBuilder生成的系统中。2.通用I/O端口既连接到片内逻辑又连接到外部设备的FPGAI/O管脚。74.1并行输入/输出内核•PIO内核简介最多32个I/O端口CPU内核PIO内核寄存器NiosII系统PIO内核Pio[31]Pio[30]Pio[29]Pio[3]Pio[2]Pio[1]Pio[0]Pio[7]Pio[6]Pio[5]Pio[4]Pio[3]Pio[2]Pio[1]Pio[0]PIO内核端口数可设置每个Avalon接口的PIO内核可提供32个I/O端口且端口数可设置,用户可以添加一个或多个PIO内核。CPU通过I/O寄存器控制I/O端口的行为。I/O口可以配置为输入、输出和三态,还可以用来检测电平事件和边沿事件。CPU通过寄存器控制I/O端口行为PIO内核结构框图84.1并行输入/输出内核•PIO内核寄存器描述偏移量寄存器名称R/W(n-1)…2100数据寄存器读访问R读入输入引脚上的逻辑电平值写访问W向PIO输出口写入新值1方向寄存器①R/W控制每个I/O口的输入输出方向。0:输入;1:输出。2中断屏蔽寄存器①R/W使能或禁止每个输入端口的IRQ。1:中断使能;0:禁止中断。3边沿捕获寄存器①②R/W当边沿事件发生时对应位置1。注:①该寄存器是否存在取决于硬件的配置。如果该寄存器不存在,那么读寄存器将返回未定义的值,写寄存器无效。②写任意值到边沿捕获寄存器将清除所有位为0。“①该寄存器是否存在取决于硬件的配置。如果该寄存器不存在,那么读寄存器将返回未定义的值,写寄存器无效。”9•PIO内核寄存器描述–数据寄存器:•读数据寄存器:返回在输入引脚上出现的值。如果PIO内核硬件配置为:“Outputportsonly”,则读数据寄存器返回未定义的值。•写数据寄存器:驱动输出口输出写入的值。如果PIO内核硬件配置为:“Inputportsonly”,则写数据寄存器无效。如果PIO内核配置在双向模式下,那么方向寄存器中对应为设为1时,值才输出。4.1并行输入/输出内核10•PIO内核寄存器描述–方向寄存器:•只有PIO工作模式配置为“Bidirectionalports”时,方向寄存器才存在。•PIO工作模式在添加PIO内核时指定,且在系统生成后不能改变。•方向寄存器控制每个PIO口的数据方向。当方向寄存器中的位n设为1时,端口n为输出模式;0时,端口n为输入模式。•复位后,方向寄存器的所有位设置为0,所有的双向I/O口配置为输入。4.1并行输入/输出内核11•PIO内核寄存器描述–中断屏蔽寄存器:•当中断屏蔽寄存器的位设为1时,使能相对应的PIO输入口中断。•中断操作取决于PIO内核的硬件配置,只有配置为输入口时才能进行中断操作。•中断屏蔽寄存器只有在硬件配置为“GenerateIRQ”时才存在。•复位后,中断屏蔽寄存器所有位为0,禁止所有PIO口的中断。4.1并行输入/输出内核12•PIO内核寄存器描述–边沿捕获寄存器:•只要在输入口上检测到边沿事件时,边沿捕获寄存器(Edgecapture)中对应位n置1。•Avalon主控制器可读边沿捕获寄存器来确定边沿在哪一个PIO输入口出现。•写任意值到边沿捕获寄存器将使寄存器所有位清0.•要检测的类型在PIO添加时指定。4.1并行输入/输出内核13•PIO内核寄存器描述–中断操作:•当硬件配置为电平触发方式时,只要高电平出现并且中断使能,就申请一个中断。当硬件配置为边沿触发方式时,只要捕获到边沿事件并且中断使能时,就申请一个中断。•中断IRQ一直保持有效直到禁止中断(中断屏蔽寄存器相应位清0)或清边沿捕获标志(向边沿捕获寄存器写一个任意值)为止。•每个PIO核的I/O口共用一个中断号(系统生成时指定),用户需要在中断服务子程序中通过中断掩码的方式来查明是哪个I/O口产生了中断。4.1并行输入/输出内核144.1并行输入/输出内核双击•-PIO内核配置选项154.1并行输入/输出内核•-PIO内核配置选项BasicSettings选项卡I/O口宽度:可设置为1~32的任何整数值。Direction中文描述Bidirectional(tri-state)ports双向(三态)端口Inputportsonly仅为输入端口Outputportsonly仅为输出端口Bothinputandoutputports输入和输出端口164.1并行输入/输出内核•-PIO内核配置选项BasicSettings选项卡Direction中文描述Bidirectional(tri-state)ports双向(三态)端口Inputportsonly仅为输入端口Bothinputandoutputports输入和输出端口outputportsonly仅为输出端口174.1并行输入/输出内核•-PIO内核配置选项InputOptions选项卡边沿捕获寄存器中断寄存器RisingEdge:上升沿FallingEdge:下降沿EitherEdge:上升或下降沿Level:输入为高电平且中断使能,则PIO内核产生一个IRQ。Edge:边沿捕获寄存器相应位为1且中断使能,则PIO内核产生一个IRQ。说明:当指定类型的边沿在输入端口出现时,边沿捕获寄存器对应位置1。说明:中断只有高电平中断,如果希望低电平时中断,则需在该I/O输入引脚前加一个“非”门。184.1并行输入/输出内核•-PIO内核配置选项Simulation选项卡当需要对外进行仿真时,要设置simulation选项卡。194.1并行输入/输出内核•软件编程PIO内核提供了对硬件进行寄存器级访问的文件。Altera_avalon_pio_regs.h该文件定义了内核的寄存器映射并提供硬件设备访问宏定义。设备驱动程序使用该文件中的宏定义访问硬件。可通过阅读上述文件以熟悉PIO设备的软件访问方法,但不应该修改文件。20•4.1并行输入/输出(PIO)内核•4.2SDRAM控制器内核•4.3CFI(通用Flash)控制器内核•4.4EPCS控制器内核•4.5定时器内核•4.6UART内核•4.7JTAG_UART内核•4.8SPI内核•4.9DMA内核•4.10带Avalon接口的互斥内核•4.11带Avalon接口的邮箱内核•4.12SystemID内核本章内容214.2SDRAM控制器内核•SDRAM控制器内核概述–SDRAM控制器内核提供一个连接片外SDRAM芯片的Avalon接口,并可以同时连接多个SDRAM芯片–通常用于需要大量易失性存储器且成本要求高的应用系统。•SDRAM便宜,但需要实现刷新操作,行列管理,不同延迟和命令序列等逻辑。–SDRAM控制器内核提供了连接一个或多个SDRAM芯片的接口,并处理所有SDRAM协议要求。224.2SDRAM控制器内核•SDRAM控制器内核概述–SDRAM控制器内核具有不同数据宽度(8、16、32或64位)、不同内存容量和多片选择等设置。–SDRAM控制器可选择与其他的片外Avalon三态器件共用地址和数据总线,该特性在I/O引脚资源紧张的系统中很有用。–SDRAM芯片必须和Avalon接口一样以相同的时钟驱动。利用片内PLL来调整SDRAM控制器内核与SDRAM芯片之间的时钟相位差。234.2SDRAM控制器内核244.2SDRAM控制器内核•SDRAM控制器内核概述PPL(片内锁相环):通常用于调整SDRAM控制器内核与SDRAM芯片之间的相位差。Avalon三态桥:SDRAM控制器可与现有三态桥共用引脚,这用能减少I/O引脚使用,但将降低性能。fMAX(最高时钟频率):目标FPGA的系列和整个硬件设计都会影响硬件设计可实现的最高时钟频率。254.2SDRAM控制器内核-SDRAM内核配置选项可直接选择预定义的SDRAM芯片型号,对话框将自动改变下面两个选项卡的值来匹配指定配置。MemoryProfile:用于指定SDRAM的结构。例如地址和数据线宽度,片选信号的数目和区的数目等。264.2SDRAM控制器内核数据宽度允许值:8、16、32、64默认值:32描述:该值确定dq总线(数据)和dqm总线(字节使能)的宽度。具体数值请查阅SDRAM数据手册。274.2SDRAM控制器内核结构设置-片选允许值:1、2、4、8默认值:1描述:独立芯片的数目在SDRAM子系统中选择。通过使用多个片选信号,SDRAM控制器可组合多个SDRAM芯片为一个存储器子系统。284.2SDRAM控制器内核结构设置-区允许值:2、4默认值:4描述:区的数目,该值确定连接到SDRAM的ba总线(区地址)宽度。具体数值请查阅SDRAM数据手册。294.2SDRAM控制器内核地址宽度设计-行允许值:11、12、13、14默认值:12描述:行地址位的数目。该值确定addr总线的宽度。具体数值请查阅SDRAM数据手册。304.2SDRAM控制器内核地址宽度设计-列允许值:=8,且小于行的值默认值:8描述:列地址位的数目。例如,SDRAM排列为4096行、512(29)列,所以列的值为9。具体数值请查阅SDRAM数据手册。314.2SDRAM控制器内核通过三态桥共用管脚允许值:是、否默认值:否描述:当设为No时,所有管脚都专用于SDRAM芯片。当设为Yes时,addr,dq和dqm管脚在系统内可与三态桥共享。324.2SDRAM控制器内核•当控制器与其他三态器件共用引脚时,平均访问时间通常增加而带宽减少。–当其他器件访问三态桥时,SDRAM要求行开启和结束开销周期。–SDRAM控制器必须在再次授权访问之前连续等待几个时钟周期。–为了使带宽最大化,只要紧接的读或写操作在相同行和区内连续,SDRAM控制器就自动保留三态桥的控制。–只要在紧接操作中出现间隔,或需要一个刷新操作时,SDRAM控制器才关闭一个行列,因此控制器不能永久阻止访问其他共用三太桥的器件。334.2SDRAM控制器内核包括系统测试台的功能存储模块允许值:是、否默认值:是描述:当打开选项时,SOPCBuilder创建SDRAM芯片的功能仿真模型。该默认的存储器模型加速创建的过程和检验使用SDRAM控制器的系统。344.2SDRAM控制器内核消息框显示SDRAM期望的内存容量,以兆字节,兆位以及可寻址的字数为单位。将
本文标题:第四章NIOSII外围设备
链接地址:https://www.777doc.com/doc-1314819 .html