收藏 分销(赏)

基于FPGA的SOPC设计课件.ppt

上传人:可**** 文档编号:14762120 上传时间:2026-11-15 格式:PPT 页数:137 大小:3.18MB 下载积分:8 金币
下载 相关
基于FPGA的SOPC设计课件.ppt_第1页
第1页 / 共137页
基于FPGA的SOPC设计课件.ppt_第2页
第2页 / 共137页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,15 十一月 2026,基于FPGA的SOPC设计课件,第四章 Nios II 外围设备,本章介绍了Nios II处理器常用外围设备(Peripherals)内核的特点、配置以及软件编程。,这些外设都是以IP核的形式提供给用户的,用户可以根据实际需要把这些IP核集成到Nios II系统中去。,主要介绍:,硬件结构;,内核的特性和接口;,SOPC Builder中各内核的配置选项;,软件编程。,主要内容,本章内容,4.1 并行输入/输出(PIO)内核,4.2 SDRAM控制器内核,4.3 CFI(通用Flash)控制器内核,4.4 EPCS控制器内核,4.5 定时器内核,4.6 UART内核,4.7 JTAG_UART内核,4.8 SPI内核,4.9 DMA内核,4.10 带Avalon接口的互斥内核,4.11 带Avalon接口的邮箱内核,4.12 System ID内核,本章内容,4.1 并行输入/输出(PIO)内核,4.2 SDRAM控制器内核,4.3 CFI(通用Flash)控制器内核,4.4 EPCS控制器内核,4.5 定时器内核,4.6 UART内核,4.7 JTAG_UART内核,4.8 SPI内核,4.9 DMA内核,4.10 带Avalon接口的互斥内核,4.11 带Avalon接口的邮箱内核,4.12 System ID内核,4.1 并行输入/输出内核,并行输入/输出内核(PIO内核,)提供,Avalon从控制器端口,和,通用I/O口,间的存储器映射接口。PIO内核提供简单的I/O访问用户逻辑或外部设备,例如:,控制LED,读取开关量,控制显示设备,配置并且与片外设备通信,说明:,SOPC Builder中提供了PIO内核,可以很容易将PIO内核集成到SOPC Builder生成的系统中。,通用I/O端口既连接到片内逻辑又连接到外部设备的FPGA I/O管脚。,4.1 并行输入/输出内核,PIO内核简介,最多32个I/O端口,CPU,内核,PIO,内核,寄存器,Nios II 系统,PIO,内核,Pio31,Pio30,Pio29,Pio3,Pio2,Pio1,Pio0,Pio7,Pio6,Pio5,Pio4,Pio3,Pio2,Pio1,Pio0,PIO,内核,端口数可设置,每个Avalon接口的PIO内核可提供32个I/O端口且端口数可设置,用户可以添加一个或多个PIO内核。CPU通过I/O寄存器控制I/O端口的行为。I/O口可以配置为输入、输出和三态,还可以用来检测电平事件和边沿事件。,CPU通过寄存器控制I/O端口行为,PIO内核结构框图,4.1 并行输入/输出内核,PIO内核寄存器描述,偏移量,寄存器名称,R/W,(,n,-1),2,1,0,0,数据寄存器,读访问,R,读入输入引脚上的逻辑电平值,写访问,W,向PIO输出口写入新值,1,方向寄存器,R/W,控制每个I/O口的输入输出方向。,0:输入;1:输出。,2,中断屏蔽寄存器,R/W,使能或禁止每个输入端口的IRQ。,1:中断使能;0:禁止中断。,3,边沿捕获寄存器,R/W,当边沿事件发生时对应位置1。,注:,该寄存器是否存在取决于硬件的配置。如果该寄存器不存在,那么读寄存器将返回未定义的值,写寄存器无效。,写任意值到边沿捕获寄存器将清除所有位为0。,“,该寄存器是否存在取决于硬件的配置。,如果该寄存器不存在,,那么读寄存器将返回未定义的值,写寄存器无效。”,PIO内核寄存器描述,数据寄存器:,读数据寄存器:返回在输入引脚上出现的值。如果PIO内核硬件配置为:“Output ports only”,则读数据寄存器返回未定义的值。,写数据寄存器:驱动输出口输出写入的值。如果PIO内核硬件配置为:“Input ports only”,则写数据寄存器无效。如果PIO内核配置在双向模式下,那么方向寄存器中对应为设为1时,值才输出。,4.1 并行输入/输出内核,PIO内核寄存器描述,方向寄存器:,只有PIO工作模式配置为“Bidirectional ports”时,方向寄存器才存在。,PIO工作模式在添加PIO内核时指定,且在系统生成后不能改变。,方向寄存器控制每个PIO口的数据方向。当方向寄存器中的位n设为1时,端口n为输出模式;0时,端口n为输入模式。,复位后,方向寄存器的所有位设置为0,所有的双向I/O口配置为输入。,4.1 并行输入/输出内核,PIO内核寄存器描述,中断屏蔽寄存器:,当中断屏蔽寄存器的位设为1时,使能相对应的PIO输入口中断。,中断操作取决于PIO内核的硬件配置,只有配置为输入口时才能进行中断操作。,中断屏蔽寄存器只有在硬件配置为“Generate IRQ”时才存在。,复位后,中断屏蔽寄存器所有位为0,禁止所有PIO口的中断。,4.1 并行输入/输出内核,PIO内核寄存器描述,边沿捕获寄存器:,只要在输入口上检测到边沿事件时,边沿捕获寄存器(Edgecapture)中对应位n置1。,Avalon主控制器可读边沿捕获寄存器来确定边沿在哪一个PIO输入口出现。,写任意值到边沿捕获寄存器将使寄存器所有位清0.,要检测的类型在PIO添加时指定。,4.1 并行输入/输出内核,PIO内核寄存器描述,中断操作:,当硬件配置为电平触发方式时,只要高电平出现并且中断使能,就申请一个中断。当硬件配置为边沿触发方式时,只要捕获到边沿事件并且中断使能时,就申请一个中断。,中断IRQ一直保持有效直到禁止中断(中断屏蔽寄存器相应位清0)或清边沿捕获标志(向边沿捕获寄存器写一个任意值)为止。,每个PIO核的I/O口共用一个中断号(系统生成时指定),用户需要在中断服务子程序中通过中断掩码的方式来查明是哪个I/O口产生了中断。,4.1 并行输入/输出内核,4.1 并行输入/输出内核,双击,PIO,内,核,配,置,选,项,4.1 并行输入/输出内核,PIO,内,核,配,置,选,项,Basic Settings 选项卡,I/O口宽度,:可设置为132的任何整数值。,Direction,中文描述,Bidirectional(tri-state)ports,双向(三态)端口,Input ports only,仅为输入端口,Output ports only,仅为输出端口,Both input and output ports,输入和输出端口,4.1 并行输入/输出内核,PIO,内,核,配,置,选,项,Basic Settings 选项卡,Direction,中文描述,Bidirectional(tri-state)ports,双向(三态)端口,Input ports only,仅为输入端口,Both input and output ports,输入和输出端口,output ports only,仅为输出端口,4.1 并行输入/输出内核,PIO,内,核,配,置,选,项,Input Options 选项卡,边沿捕获寄存器,中断寄存器,Rising Edge:上升沿,Falling Edge:下降沿,Either Edge:上升或下降沿,Level:输入为高电平且中断使能,则PIO内核产生一个IRQ。,Edge:边沿捕获寄存器相应位为1且中断使能,则PIO内核产生一个IRQ。,说明:当指定类型的边沿在输入端口出现时,边沿捕获寄存器对应位置1。,说明:中断只有高电平中断,如果希望低电平时中断,则需在该I/O输入引脚前加一个“非”门。,4.1 并行输入/输出内核,PIO,内,核,配,置,选,项,Simulation 选项卡,当需要对外进行仿真时,要设置simulation选项卡。,4.1 并行输入/输出内核,软件编程,PIO内核提供了对,硬件,进行,寄存器级,访问的文件。,Altera_avalon_pio_regs.h,该文件定义了内核的寄存器映射并提供硬件设备访问宏定义。设备驱动程序使用该文件中的宏定义访问硬件。,可通过阅读上述文件以熟悉PIO设备的软件访问方法,但不应该修改文件。,4.1 并行输入/输出(PIO)内核,4.2 SDRAM控制器内核,4.3 CFI(通用Flash)控制器内核,4.4 EPCS控制器内核,4.5 定时器内核,4.6 UART内核,4.7 JTAG_UART内核,4.8 SPI内核,4.9 DMA内核,4.10 带Avalon接口的互斥内核,4.11 带Avalon接口的邮箱内核,4.12 System ID内核,本章内容,4.2 SDRAM控制器内核,SDRAM控制器内核概述,SDRAM控制器内核提供一个连接片外,SDRAM芯片,的Avalon接口,并可以同时连接多个SDRAM芯片,通常用于需要大量易失性存储器且成本要求高的应用系统。,SDRAM便宜,但需要实现刷新操作,行列管理,不同延迟和命令序列等逻辑。,SDRAM控制器内核提供了连接一个或多个SDRAM芯片的接口,并处理所有SDRAM协议要求。,4.2 SDRAM控制器内核,SDRAM控制器内核概述,SDRAM控制器内核具有不同数据宽度(8、16、32或64位)、不同内存容量和多片选择等设置。,SDRAM控制器可选择与其他的片外Avalon三态器件共用地址和数据总线,该特性在I/O引脚资源紧张的系统中很有用。,SDRAM芯片必须和Avalon接口一样以相同的时钟驱动。利用片内PLL来调整SDRAM控制器内核与SDRAM芯片之间的时钟相位差。,4.2 SDRAM控制器内核,4.2 SDRAM控制器内核,SDRAM控制器内核概述,PPL(片内锁相环),:通常用于调整SDRAM控制器内核与SDRAM芯片之间的相位差。,Avalon三态桥,:SDRAM控制器可与现有三态桥共用引脚,这用能减少I/O引脚使用,但将降低性能。,f,MAX,(最高时钟频率),:目标FPGA的系列和整个硬件设计都会影响硬件设计可实现的最高时钟频率。,4.2 SDRAM控制器内核,SDRAM,内,核,配,置,选,项,可直接选择预定义的SDRAM芯片型号,对话框将自动改变下面两个选项卡的值来匹配指定配置。,Memory Profile:,用于指定SDRAM的结构。,例如地址和数据线宽度,片选信号的数目和区的数目等。,4.2 SDRAM控制器内核,数据宽度,允许值:8、16、32、64,默认值:32,描述:该值确定dq总线(数据)和dqm总线(字节使能)的宽度。具体数值请查阅SDRAM数据手册。,4.2 SDRAM控制器内核,结构设置片选,允许值:1、2、4、8,默认值:1,描述:独立芯片的数目在SDRAM子系统中选择。通过使用多个片选信号,SDRAM控制器可组合多个SDRAM芯片为一个存储器子系统。,4.2 SDRAM控制器内核,结构设置区,允许值:2、4,默认值:4,描述:区的数目,该值确定连接到SDRAM的ba总线(区地址)宽度。具体数值请查阅SDRAM数据手册。,4.2 SDRAM控制器内核,地址宽度设计行,允许值:11、12、13、14,默认值:12,描述:行地址位的数目。该值确定addr总线的宽度。具体数值请查阅SDRAM数据手册。,4.2 SDRAM控制器内核,地址宽度设计列,允许值:=8,且小于行的值,默认值:8,描述:列地址位的数目。例如,SDRAM排列为4096行、512(2,9,)列,所以列的值为9。具体数值请查阅SDRAM数据手册。,4.2 SDRAM控制器内核,通过三态桥共用管脚,允许值:是、否,默认值:否,描述:当设为No时,所有管脚都专用于SDRAM芯片。当设为Yes时,addr,dq和dqm管脚在系统内可与三态桥共享。,4.2 SDRAM控制器内核,当控制器与其他三态器件共用引脚时,平均访问时间通常增加而带宽减少。,当其他器件访问三态桥时,SDRAM要求行开启和结束开销周期。,SDRAM控制器必须在再次授权访问之前连续等待几个时钟周期。,为了使带宽最大化,只要紧接的读或写操作在相同行和区内连续,SDRAM控制器就自动保留三态桥的控制。,只要在紧接操作中出现间隔,或需要一个刷新操作时,SDRAM控制器才关闭一个行列,因此控制器不能永久阻止访问其他共用三太桥的器件。,4.2 SDRAM控制器内核,包括系统测试台的功能存储模块,允许值:是、否,默认值:是,描述:当打开选项时,SOPC Builder创建SDRAM芯片的功能仿真模型。该默认的存储器模型加速创建的过程和检验使用SDRAM控制器的系统。,4.2 SDRAM控制器内核,消息框,显示SDRAM期望的内存容量,以兆字节,兆位以及可寻址的字数为单位。,将这些期望值与选择的SDRAM的实际大小相比较可以检验设置是否正确。,4.2 SDRAM控制器内核,SDRAM,内,核,配,置,选,项,Timing:,根据在SDRAM芯片数据手册中提供的参数来设置芯片的时序规范,4.2 SDRAM控制器内核,CAS等待时间,允许值:1、2、3,默认值:3,描述:从读命令到数据输出的等待时间(以时钟周期计算)。,4.2 SDRAM控制器内核,初始化刷新周期,允许值:1-8,默认值:2,描述:复位后,该值指定SDRAM控制器将执行多少个刷新周期作为初始化序列的一部分。,4.2 SDRAM控制器内核,每隔一段时间执行一个刷新命令,允许值:-,默认值:15.625us,描述:该值指定SDRAM控制器多久刷新一次SDRAM。典型的SDRAM每64ms需要4,096刷新命令,通过每64ms/4,096=15.625us执行一个刷新命令来符合这个要求。,4.2 SDRAM控制器内核,在初始化前、上电后延时,允许值:-,默认值:100us,描述:从稳定的时钟和电源到SDRAM初始化的延时。,4.2 SDRAM控制器内核,刷新命令(t_rfc)的持续时间,允许值:-,默认值:70ns,描述:自动刷新周期。,4.2 SDRAM控制器内核,预充电命令(t_rp)的持续时间,允许值:-,默认值:20ns,描述:预充电命令周期。,4.2 SDRAM控制器内核,ACTIVE到READ或WRITE延时,允许值:-,默认值:20ns,描述:ACTIVE到READ或WRITE延时。,4.2 SDRAM控制器内核,访问时间(t_ac),允许值:-,默认值:5.5ns,描述:时钟边沿的访问时间。该值由CAS的等待时间决定。,4.2 SDRAM控制器内核,写恢复时间(t_wr,无自动预充电),允许值:-,默认值:14ns,描述:如果执行了明确的预充电命令,写恢复。该SDRAM控制器总是执行明确的预充电命令。,4.2 SDRAM控制器内核,Timing选型卡,无论用户输入的精确时序值如何,每个参数实现的实际时序将为Avalon时钟的整数倍。对于每隔一段时间执行一个刷新命令的参数,实际时序将不超出目标值。对于其他所有参数,实际时序将大于或等于目标值。,4.2 SDRAM控制器内核,软件编程,当通过Avalon接口访问时,SDRAM控制器操作起来像简单的SRAM存储器,没有可配置的软件设置,没有存储器映射的寄存器。处理器访问SDRAM控制器不需要软件驱动程序。,4.2 SDRAM控制器内核,SDRAM应用,一个带32位数据总线的128Mbit SDRAM芯片,4.2 SDRAM控制器内核,SDRAM应用,两个带16位数据总线的64Mbit SDRAM芯片,结果为:一个128M位,数据总线宽度为32位的存储器,4.2 SDRAM控制器内核,SDRAM应用,两个带32位数据总线的128Mbit SDRAM芯片,结果为:一个256M位,数据总线宽度为32位的存储器,4.2 SDRAM控制器内核,SDRAM应用,4.1 并行输入/输出(PIO)内核,4.2 SDRAM控制器内核,4.3 CFI(通用Flash)控制器内核,4.4 EPCS控制器内核,4.5 定时器内核,4.6 UART内核,4.7 JTAG_UART内核,4.8 SPI内核,4.9 DMA内核,4.10 带Avalon接口的互斥内核,4.11 带Avalon接口的邮箱内核,4.12 System ID内核,本章内容,4.3 CFI控制器内核,CFI控制器内核综述,对于Nios II处理器,Altera为CFI控制器提供硬件抽象层(HAL)驱动程序。驱动程序提供了遵循CFI接口规范的Flash存储器的通用访问函数。因此,用户不需要写任何代码就可以访问遵循CFI接口规范的Flash器件。,NIOSII开发套件提供一个基于NIOSII处理器和CFI控制器的下载程序Flash Programmer,可以用来将程序下载到任何连接到Altera FPGA的遵循CFI的Flash存储器中。,4.3 CFI控制器内核,CFI控制器内核综述,CFI控制器框图,4.3 CFI控制器内核,CFI,控,制,器,内,核,设,置,CFI控制器框图,Attributes:,用于完成Presets、size,和 Board Info这3个选项的设定。,Presets:,选择预设好的CFI Flash。,当选定某个芯片型号,该CFI控制器的所有设置都会相应更新。,Size:,地址宽度:Flash地址总线宽度。,数据宽度:Flash数据总线宽度。,大小设置使SOPC Builder为Flash器件分配正确的地址空间。,Board Info:,该设置与NIOSII IDE中集成的Flash Programmer相关。,用于映射CFI控制器目标系统板元件的已知芯片。,4.3 CFI控制器内核,CFI,控,制,器,内,核,设,置,CFI控制器框图,Timing:,用于完成时序设置,包括建立时间、等待周期、保持时间等。,Setup,:chipselect有效后,read或write信号有效前所需的时间。,Wait,:每次数据传输过程中,read或write信号需要保持的时间。,Hold,:write信号无效后,chipselect信号无效前所需要的时间。,Units,:用于Setup、Wait和Hold值的时间单位,可以是ns、us、ms和时钟周期。,软件编程,Avalon主控制器可以直接读Flash芯片。对于Nios II处理器用户,Altera提供HAL系统库驱动程序和API函数来支持对Flash存储器的擦除和写操作。,当前,Altera提供的CFI控制器驱动程序仅支持AMD和Intel的Flash芯片。,4.3 CFI控制器内核,4.1 并行输入/输出(PIO)内核,4.2 SDRAM控制器内核,4.3 CFI(通用Flash)控制器内核,4.4 EPCS控制器内核,4.5 定时器内核,4.6 UART内核,4.7 JTAG_UART内核,4.8 SPI内核,4.9 DMA内核,4.10 带Avalon接口的互斥内核,4.11 带Avalon接口的邮箱内核,4.12 System ID内核,本章内容,4.4 EPCS控制器内核,EPCS控制器内核综述,Altera EPCS 串行配置器件:可用于存储程序代码、非易失性程序数据和FPGA配置数据。,带Avalon接口的EPCS设备控制器内核(“EPCS控制器”)允许NiosII系统访问Altera EPCS串行配置器件。,Altera提供集成到NiosII硬件抽象层(HAL)系统库的驱动程序,允许用户使用HAL应用程序接口(API)来读取和编写EPCS器件。,4.4 EPCS控制器内核,EPCS控制器可用于:,在EPCS器件中存储程序代码:,EPCS控制器自带Boot-loader代码,允许用户在EPCS器件中存储程序代码。,存储非易失性数据:,例如串行号,NIC号和其他需要长久储存的数据。,管理FPGA配置数据:,EPCS可存储FPGA的配置数据,并在上电时自动完成对FPGA的配置。具有网络接口的嵌入式系统可从网上接收新的FPGA配置数据,并通过EPCS控制器将新的配置数据下载到EPCS串行配置器件中。,4.4 EPCS控制器内核,EPCS控制器内核综述,EPCS控制器结构框图,Boot-Loader,ROM,EPCS控制器,配置存,储空间,通用存,储空间,EPCS配置器件,Avalon,总线,NiosII,CPU,片内外设,Altera FPGA,存储FPGA配置数据,剩余空间可用于存储用户非易失性数据。,1KB的片内存储器,4.4 EPCS控制器内核,EPCS控制器内核综述:,NIOSII处理器可设置成从EPCS控制器开始引导。在这种情况下,复位CPU后首先执行引导EPCS控制器的Boot-loader ROM中的代码,从EPCS通用内存区域复制数据到RAM。启动代码无须编写,由NIOSII IDE自动生成。,Altera EPCS配置器件与FPGA上特定的引脚相连,EPCS控制器内核在高层SOPC Builder模块不会产生I/O口。EPCS控制器内核信号自动连接到EPCS器件的引脚上。,每个FPGA设计只能添加一个EPCS控制器。,4.4 EPCS控制器内核,软件编程,Altera提供的HAL Flash设备驱动程序已经完全屏蔽了Flash的硬件访问细节,访问EPCS Flash的软件编程和访问CFI Flash的软件编程完全一样。,EPCS控制器提供了硬件的底层接口和HAL驱动程序。,4.4 EPCS控制器内核,软件编程,定义集成到HAL系统库所需的驱动程序的头文件和源文件。,Altera_avalon_epcs_flash_controller.h,通过直接控制EPCS设备来进行读写操作的头文件和源文件。,Altera_avalon_epcs_flash_controller.c,epcs_commands.h,epcs_commands.c,4.1 并行输入/输出(PIO)内核,4.2 SDRAM控制器内核,4.3 CFI(通用Flash)控制器内核,4.4 EPCS控制器内核,4.5 定时器内核,4.6 UART内核,4.7 JTAG_UART内核,4.8 SPI内核,4.9 DMA内核,4.10 带Avalon接口的互斥内核,4.11 带Avalon接口的邮箱内核,4.12 System ID内核,本章内容,4.5 定时器内核,定时器是一个重要的外围设备。,它可以作为周期性时钟源;,也可以作为一个定时器,测定时间发生的时间;,还可以对外输出周期性脉冲,或作为一条监管系统正常运行的watchdog,4.5 定时器内核,定时器内核综述,定时器是挂载在Avanlon总线上的32位定时器,特性如下:,两种计数模式:单次减1和连续减1计数模式(软件设置),定时器到达0时产生中断请求(IRQ);,可选择设定为看门狗定时器,计算到达0时复位系统;,可选择输出周期性脉冲,在定时器计算到达0时输出脉冲;,可由软件启动、停止或复位定时器;,可由软件使能或屏蔽定时器中断,。,4.5 定时器内核,定时器内核综述,定时器内核结构框图,Status,Control,Periodh,Periodl,Snaph,Snapl,控制,逻辑,计数器,寄存器文件,Timeout pulse,IRQ,Reset,数据总线,地址总线,(看门狗),Avanlon,总线从机,接口到内,核逻辑,提供状态信息和控制信息,4.5 定时器内核,定时器可进行的基本操作如下所述:,Avalon主控制器通过对控制寄存器执行不同的写操作来控制:,启动和停止定时器,使能/禁能IRQ,指定单次减1计数或连续减1计数模式,处理器读状态寄存器获取当前定时器的运行信息。,处理器可通过写数据到periodl和periodh寄存器来设定定时器周期。,4.5 定时器内核,定时器可进行的基本操作如下所述:,内部计数器计数减到0,立即从周期寄存器开始重新装载。,处理器可以通过写snapl或snaph获取计数器的当前值。,当计数器计数到达0时:,如果IRQ被使能,则产生一个IRQ,(可选的)脉冲发生器输出有效持续一个时钟周期,(可选的)看门狗输出复位系统,4.5 定时器内核,定时器寄存器描述,偏移量,名称,R/W,位描述,15,4,3,2,1,0,0,status,RW,*,RUN,TO,1,control,RW,*,STOP,START,CONT,ITO,2,periodl,RW,超时周期1(位15.0),3,periodh,RW,超时周期1(位31.16),4,snapl,RW,计数器快照(位15.0),5,snaph,RW,计数器快照(位31.16),EPCS控制器结构框图,RUN,TO,STOP,START,CONT,ITO,periodl,Periodh,snapl,snaph,注:*表示该位保留,读取值未定义。,4.5 定时器内核-定时器寄存器描述,1.状态寄存器:,名称,读/写/清除,描述,TO,R/C,当内部计数器减到0时,timeout被置为1。一旦发生timeout事件,TO位保持置为状态直到被主控制器清除。向TO位写0即可清除置为状态。,RUN,R,当内部计数器运行时,RUN位为1;否则该位为0。对RUN的写操作无效。,偏移量,名称,R/W,位描述,15,4,3,2,1,0,0,status,RW,*,RUN,TO,2.控制寄存器:,名称,读/写/清除,描述,ITO,R/W,如果ITO位为1,则使能定时器中断;如果ITO位为0,则屏蔽定时器中断,CONT,R/W,连续方式位决定内部计数器减到0的操作。该位为1,则计算器连续运行,直到STOP信号将其停止。如果该位为0,则计数器在减到0后停止。当计数器减到0,不管CONT位的值如何,都会自动装载periodl和periodh寄存器中的32位计数值。,START,W,写1到START位启动内部计数器运行(减1计数),写0到起始位无效。,STOP,W,写1到停止位停止内部计数器,写0到停止位无效。如果定时器硬件配置为“关闭Start/stop control bits”,则写停止位无效。,偏移量,名称,R/W,位描述,15,4,3,2,1,0,1,control,RW,*,STOP,START,CONT,ITO,4.5 定时器内核-定时器寄存器描述,3.periodl&periodh寄存器:,偏移量,名称,R/W,位描述,15,4,3,2,1,0,2,periodl,RW,超时周期1(位15.0),3,periodh,RW,超时周期1(位31.16),存储超时周期的计数值。当以下任意情况发生时,保存在该寄存器中的32位值会装载到内部计数器中。,对periodl或periodh寄存器进行写操作;,内部计数器减到0,定时器实际周期是periol和periodh寄存器的值加1,因为内部计数器减到0时,也需要一个时钟周期。,4.5 定时器内核-定时器寄存器描述,4.snapl&snaph寄存器:,可通过对snapl或snaph寄存器的写操作(写数据任意)来获得32位内部计数器的当前值。,当对snapl或snaph执行写操作时,计数器的当前值会被复制到snapl和snaph中,不管计数器是否正在运行,这个过程都会执行,并且不改变内部计数器的运行状态。,偏移量,名称,R/W,位描述,15,4,3,2,1,0,4,snapl,RW,计数器快照(位15.0),5,snaph,RW,计数器快照(位31.16),4.5 定时器内核-定时器寄存器描述,中断操作:,只要内部计数器减到0且控制寄存器的ITO位为1,定时器内核就会产生IRQ。,用户要用以下的任意一种方式应答IRQ:,清除状态寄存的TO位,等待下一个超时事件的发生;,通过将控制寄存器的ITO位清零来禁止中断。,4.5 定时器内核-定时器寄存器描述,4.5 定时器内核,定,时,器,内,核,配,置,选,项,CFI控制器框图,Initial period:,用于预设硬件生成后的定时器周期,即perodl和periodh寄存器的值。如果不用软件更改的话,那么定时器将按照这个周期产生timeout事件。,4.5 定时器内核,定,时,器,内,核,配,置,选,项,CFI控制器框图,Preset Configurations:,可选择的预定义的硬件配置。,简单周期中断:,用于仅要求周期性IRQ发生器的系统。固定周期且不能停止定时器,但可以禁止IRQ。,完整特性:,用于产生一个具有可变周期的完整特性的定时器,可以在处理器控制下启动和停止该定时器。,看门狗:,用于需要看门狗的定时器系统,以便在系统已经停止响应的情况下复位系统。,4.5 定时器内核,定,时,器,内,核,配,置,选,项,CFI控制器框图,Writeable period:,使能:主控制器可通过写period而改变向下计数周期。,禁能:向下计数周期由Timeout Period确定,且period寄存器不在硬件中存在。,Readable snapshot:,使能:主控制器可读当前向下计数器的值。,禁能:计数器的状态仅通过状态寄存器或IRQ信号来检测。Snap寄存器不在硬件中存在。,Start/Stop control bits:,使能:主控制可通过写START和STOP位来启动和停止定时器。,禁能:定时器连续运行。,4.5 定时器内核,定,时,器,内,核,配,置,选,项,CFI控制器框图,Timeout pulse:,使能:定时器到0时,timeout_pulse输出一个时钟周期的高电平。,禁能:timeout_out信号不存在。,System reset on timeout:,使能:定时器到0时,resetrequest信号输出一个时钟周期的高电平使系统复位。,禁能:resetrequest信号不存在。,4.5 定时器内核,软件编程,Altera为NiosII处理器用户提供硬件抽象层(HAL)系统库驱动程序,允许用户使用HAL应用程序接口(API)函数来访问定时器内核。,HAL系统库支持,系统时钟驱动程序,时间标记驱动程序,软件文件,4.1 并行输入/输出(PIO)内核,4.2 SDRAM控制器内核,4.3 CFI(通用Flash)控制器内核,4.4 EPCS控制器内核,4.5 定时器内核,4.6 UART内核,4.7 JTAG_UART内核,4.8 SPI内核,4.9 DMA内核,4.10 带Avalon接口的互斥内核,4.11 带Avalon接口的邮箱内核,4.12 System ID内核,本章内容,4.6 UART内核,UART(通用异步接收器/发送器)是一个常用的字符型外围设备,NIOS II系统可以集成两种UART内核,JTAG-UART:其数据通过JTAG通讯端口与PC机进行交互,一边用于程序调试;,UART:其数据以RS232协议的形式与外界进行交互,4.6 UART内核,UART内核综述,UART内核(通用异步接收器/发送器内核)执行RS-232协议时序,并提供可调整的波特率。,用户可配置奇偶校验位、停止位和数据位,以及可选的RTS/CTS流控制信号。,内核提供一个简单的Avalon从控制器接口,该接口允许Avalon主控制器(例如NiosII处理器)通过读写寄存器与UART内核进行通讯。,4.6 UART内核,UART内核综述,UART内核的结构框图,用户可见部分为6个寄存器及外引的四根RS-232接口信号线。,RTS 请求发送,CTS 允许发送,TXD 发送数据,RXD 接收数据,4.6 UART内核,UART内核综述,RS-232接口,发送逻辑,接收逻辑,波特率生成,4.6 UART内核,UART内核综述,RS-232接口:,UART内核执行RS232异步发送和接收逻辑。UART内核通过TXD和RXD端口发送和接收串行数据。,大部分Altera FPGA系列上的I/O引脚不遵循RS232电压电平规范,如果通过RS232连接器的信号直接与FPGA相连,可能会损害器件。,解决办法:在FPGA I/O管脚和外部的RS232连接器之间加入一个外部的电压转换缓冲器,例如Maxim MAX 3237.,4.6 UART内核,UART内核综述,2.发送逻辑,:,UART发送器包括7/8/9位发送数据寄存器(Txdata)和相应的7/8/9位发送移位寄存器。,Avalon主控制器通过Avalon从控制器端口写发送数据寄存器。,在当前不进行串行移位操作时,发送移位寄存器自动从发送数据寄存器装入数据。,发送移位寄存器直接连接到TXD输出。数据最低有效位先从TXD移出。,4.6 UART内核,UART内核综述,2.发送逻辑,:,发送数据寄存器和发送移位寄存器提供,双重缓冲,。,主控制器可以在前一个字符正在移动时将新数值写入发送数据寄存器,并可通过读出状态寄存器的TRDY位,发送移位寄存器的空TMT位和发送溢出错误TOE位监视发送器的状态。,发送逻辑根据RS232规范在串行TXD数据流中自动插入数量正确的起始位,校验位和停止位。,4.6 UART内核,UART内核综述,3.接收逻辑,:,UART接收器包括7/8/9位接收数据寄存器(Rxdata)和相应的7/8/9位接收移位寄存器。,Avalon主控制器通过Avalon从控制器端口读接收数据寄存器。,每当新字符完全接收后,接收数据寄存器自动从接收移位寄存器装入数据。,接收移位寄存器和接收数据寄存器提供,双重缓冲,。,4.6 UART内核,UART内核综述,4.波特率生成,:,UART内核的内部波特率时钟来源于Avalon时钟输入。,内部波特率时钟通过时钟分频器生成。,4.6 UART内核,UART内核的寄存器描述,偏移量,寄存器名称,R/W,描述/寄存器位,15,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0,接收数据(rxdata),RO,接收数据,1,发送数据(txdata),WO,发送数据,2,状态(status),RW,eop,cts,dcts,e,rrdy,trdy,tmt,toe,roe,brk,fe,pe,3,控制(control),RW,ieop,rts,idcts,trbk,ie,irrdy,itrdy,itmt,itoe,iroe,ibrk,ife,ipe,4,除数(divisor),RW,波特率除数,5,数据包结束符(endopacket),RW,数据包结束符值,UART内核寄存器映射,发送数据(txdata),接收数据,(rxdata),状态(status),控制(control),除数(divisor),数据包结束符,(endopacket),4.6 UART内核,UART,内,核,配,置,页,Baud Rate:,波特率设置,确定复位后的默认波特率。,数据位设置,数据位:该设置确定发送寄存器,接收寄存器和数据包结束符寄存器的宽度;,停止位:该设置确定内核在每个字符后发送1个还是2个停止位。,奇偶校验:确定UART是否发送带奇偶校验的字符。,流控制,UART包含相应的硬件。,基于这些硬件,Avalon主控制器可检测CTS和发送RTS流控制信号。,流数据控制,允许Avalon主控制器当且仅当UART内核可接收新字符时写数据,UART内核有可用数据时读数据。,4.6 UART内核,软件编程,HAL系统支持,驱动程序选项,ioctl()操作,软件文件,4.1 并行输入/输出(PIO)内核,4.2 SDRAM控制器内核,4.3 CFI(通用Flash)控制器内核,4.4 EPCS控制器内核,4.5 定时器内核,4.6 UART内核,4.7 JTAG_UART内核,4.8 SPI内核,4.9 DMA内核,4.10 带Avalon接口的互斥内核,4.11 带Avalon接口的邮箱内核,4.12 System ID内核,本章内容,4.7 JTAG_UART内核,JTAG_UART内核综述,带Avalon接口的JTAG UART设备实现PC和NIOSII系统间的串行通信。,与UART不同之处:JTAG UART是通过JTAG接口来传输数据的。,JTAG UART内核通过Avalon从控制器接口连接到Avalon总线。JTAG UART内核包含2个32位寄存器(数据和控制),它们可通过Avalon
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服