资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第,4,章,Nios II,外围设备,本章介绍了,Nios II,处理器常用外围设备,(Peripherals),内核的特点、配置以及软件编程,供大家在使用这些外设定制,Nios II,系统时查阅。这些外设都是以,IP,核的形式提供给用户的,用户可以根据实际需要把这些,IP,核集成到,Nios II,系统中去。,主要介绍:,硬件结构;,内核的特性核接口;,SOPC Builder,中各内核的配置选项;,软件编程。,主要内容,第4章 目录,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.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,。,“,该寄存器是否存在取决于硬件的配置。,如果该寄存器不存在,,那么读寄存器将返回未定义的值,写寄存器无效。”,4.1 并行输入/输出内核,双击,PIO,内,核,配,置,选,项,4.1 并行输入/输出内核,PIO,内,核,配,置,选,项,Basic Settings,选项卡,I/O,口宽度,:可设置为,1,32,的任何整数值。,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,仅为输入端口,Output ports only,仅为输出端口,Both input and output ports,输入和输出端口,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,设备的软件访问方法,但不应该修改文件。,例,:,红色发光二极管,LEDR,在,LEDR,上输出显示,data,数据的,C/C+,语句格式为:,IOWR _ALTERA_AVALON_PIO_DATA(,LED_RED_BASE,data),或者:,4.1 并行输入/输出内核,IOWR_ALTERA_AVALON_PIO_DATA(0 x00B81090,data,),IOWR(LED_RED_BASE,0,data),;,IOWR(0 x00B81090,0,data),第4章 目录,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,控制器内核具有不同数据宽度,(8,、,16,、,32,或,64,位,),、不同内存容量和多片选择等设置。,SDRAM,控制器不支持禁能的时钟模式。,SDRAM,控制器使,cke,引脚永久地有效。,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(29)列,所以列的值为9。具体数值请查阅SDRAM数据手册。,4.2 SDRAM控制器内核,通过三态桥共用管脚,允许值:是、否,默认值:否,描述:当设为,No,时,所有管脚都专用于,SDRAM,芯片。当设为,Yes,时,,addr,dq,和,dqm,管脚在系统内可与三态桥共享。,4.2 SDRAM控制器内核,包括系统测试台的功能存储模块,允许值:是、否,默认值:是,描述:当打开选项时,,SOPC Builder,创建,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控制器内核,软件编程,当通过,Avalon,接口访问时,,SDRAM,控制器操作起来像简单的,SRAM,存储器,没有可配置的软件设置,没有存储器映射的寄存器。处理器访问,SDRAM,控制器不需要软件驱动程序。,4.2 SDRAM控制器内核,SDRAM,应用,一个带,32,位数据总线的,128Mbit SDRAM,芯片,4.2 SDRAM控制器内核,SDRAM,应用,两个带,16,位数据总线的,64Mbit SDRAM,芯片,4.2 SDRAM控制器内核,SDRAM,应用,两个带,32,位数据总线的,128Mbit SDRAM,芯片,第4章 目录,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,器件。,4.3 CFI控制器内核,CFI控制器内核综述,CFI,控制器框图,4.3 CFI控制器内核,CFI,控,制,器,内,核,设,置,CFI,控制器框图,Attributes,:,用于完成,Presets,、,size,和,Board Info,这,3,个选项的设定。,Presets,:,选择预设好的,CFI Flash,。,Size,:,地址宽度:,Flash,地址总线宽度。,数据宽度:,Flash,数据总线宽度。,Board Info,:,用于映射,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,存储器的擦除和写操作。,4.3 CFI控制器内核,第4章 目录,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,串行配置器件,(EPCS1,和,EPCS4),,它可用于存储程序代码、非易失性程序数据和,FPGA,配置数据。,带,Avalon,接口的,EPCS,设备控制器内核(“,EPCS,控制器”)允许,NiosII,系统访问,Altera EPCS,串行配置器件。,Altera,提供集成到,NiosII,硬件抽象层,(HAL),系统库的驱动程序,允许用户使用,HAL,应用程序接口,(API),来读取和编写,EPCS,器件。,4.4 EPCS控制器内核,EPCS,控制器内核综述,EPCS,控制器可用于:,在,EPCS,器件中存储程序代码。,存储非易失性数据。,管理,FPGA,配置数据。,4.4 EPCS控制器内核,EPCS控制器内核综述,EPCS,控制器结构框图,Boot-Loader,ROM,EPCS,控制器,配置存,储空间,通用存,储空间,EPCS,配置器件,Avalon,总线,NiosII,CPU,片内外设,Altera FPGA,存储,FPGA,配置数据,剩余空间可用于存储用户非易失性数据。,1KB,的片内存储器,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章 目录,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 定时器内核,定时器内核综述,定时器是挂载在,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,),定时器寄存器图,RUN,TO,STOP,START,CONT,ITO,periodl,Periodh,snapl,snaph,注:*表示该位保留,读取值未定义。,4.5 定时器内核,定,时,器,内,核,配,置,选,项,定时器配置选项页,Initial perod,:,用于预设硬件生成后的定时器周期,即,periodl,和,periodh,寄存器的值。,4.5 定时器内核,定,时,器,内,核,配,置,选,项,Preset Configurations,:,可选择的预定义的硬件配置。,定时器配置选项页,4.5 定时器内核,定,时,器,内,核,配,置,选,项,Writeable perod,:,使能:主控制器可通过写,period,而改变向下计数周期。,禁能:向下计数周期由,Timeout Period,确定,且,period,寄存器不在硬件中存在。,Readable snapshot,:,使能:主控制器可读当前向下计数器的值。,禁能:计数器的状态仅通过状态寄存器或,IRQ,信号来检测。,Snap,寄存器不在硬件中存在。,Start/Stop control bits,:,使能:主控制可通过写,START,和,STOP,位来启动和停止定时器。,禁能:定时器连续运行。,定时器配置选项页,4.5 定时器内核,定,时,器,内,核,配,置,选,项,Timeout pulse,:,使能:定时器到,0,时,,timeout_pulse,输出一个时钟周期的高电平。,禁能:,timeout_out,信号不存在。,System reset on timeout,:,使能:定时器到,0,时,,resetrequest,信号输出一个时钟周期的高电平使系统复位。,禁能:,resetrequest,信号不存在。,定时器配置选项页,4.5 定时器内核,软件编程,Altera,为,NiosII,处理器用户提供硬件抽象层,(HAL),系统库驱动程序,允许用户使用,HAL,应用程序接口,(API),函数来访问定时器内核。,HAL,系统库支持,系统时钟驱动程序,时间标记驱动程序,软件文件,第4章 目录,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,内核综述,UART,内核(通用异步接收器,/,发送器内核)执行,RS-232,协议时序,并提供可调整的波特率。用户可配置奇偶校验位、停止位和数据位,以及可选的,RTS/CTS,流控制信号。,内核提供一个简单的,Avalon,从控制器接口,该接口允许,Avalon,主控制器(例如,NiosII,处理器)通过读写寄存器与,UART,内核进行通讯。,4.6 UART内核,UART内核综述,UART内核的结构框图,4.6 UART内核,UART,内核综述,RS-232,接口,发送逻辑,接收逻辑,波特率生成,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,:,波特率设置,数据位设置,流控制,流数据控制,4.6 UART内核,软件编程,HAL,系统支持,驱动程序选项,Ioctl(),操作,软件文件,第4章 目录,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,内核综述,JTAG UART,内核通过,Avalon,从控制器接口连接到,Avalon,总线。,JTAG UART,内核包含,2,个,32,位寄存器(数据和控制),它们可通过,Avalon,从控制器端口进行存取。,Avalon,主控制器访问寄存器来控制内核并在,JTAG,连接上传输数据。,JTAG UART,内核提供高电平有效的中断输出,该输出在读,FIFO,几乎为满或写,FIFO,几乎为空时申请一个中断。,有读写,FIFO,也是,JTAG UART,内核与,UART,内核的不同点之一。,FIFO,可以改善,JTAG,连接的带宽。,FIFO,深度可由用户设置。,4.7 JTAG_UART内核,JTAG_UART内核综述,UART内核,寄存器映射,4.7 JTAG_UART内核,JTAG_UART,的寄存器描述,偏移量,寄存器名称,R/W,位描述,31,16,15,14,11,10,9,8,7,2,1,0,0,数据,RW,RAVAIL,RVALID,保留,DATA,1,控制,RW,WSPACE,保留,AC,WI,RI,保留,W,R,UART内核,寄存器映射,数据,控制,7 JTAG_UART内核,如果出现了一个值就返回消息,但不阻塞等待消息,Snap寄存器不在硬件中存在。,每隔一段时间执行一个刷新命令,描述:如果执行了明确的预充电命令,写恢复。,用户可配置奇偶校验位、停止位和数据位,以及可选的RTS/CTS流控制信号。,altera_avalon_mutex.,Altera EPCS 串行配置器件(EPCS1和EPCS4),它可用于存储程序代码、非易失性程序数据和FPGA配置数据。,altera_avalon_mutex_regs.,PIO内核提供简单的I/O访问用户逻辑或外部设备,例如:,描述:该值指定SDRAM控制器多久刷新一次SDRAM。,SDRAM控制器内核概述,11 带Avalon接口的邮箱内核,PIO内核提供简单的I/O访问用户逻辑或外部设备,例如:,2 SDRAM控制器内核,11 带Avalon接口的邮箱内核,4.7 JTAG_UART内核,JTAG-,UART,配,置,选,项,卡,JATG_UART,配置选项卡,Write FIFO,:,写,FIFO,设置,Read FIFO,:,读,FIFO,设置,4.8 SPI内核,SPI,内核综述,SPI,内核框图,SPI,发送逻辑,SPI,接收逻辑,4.8 SPI内核,SPI,内核综述,SPI,内核框图,主控制器模式端口配置,名称,方向,描述,MOSI,输出,输出数据到从控制器,MISO,输入,从控制器输入数据,sclk,输出,所有从控制器的同步时钟,ss_nM,输出,从控制器选择信号,其中,M,为,0,到,15,之间的数。,4.8 SPI内核,SPI,内核综述,SPI,内核框图,从控制器模式端口配置,名称,方向,描述,MOSI,输入,从主控制器输入数据,MISO,输出,输出数据到主控制器,sclk,输入,同步时钟,ss_nM,输入,选择信号,4.8 SPI内核,SPI,内核的寄存器描述,UART内核,寄存器映射,内部地址,寄存器名称,15,11,10,9,8,7,6,5,4,3,2,0,0,rxdata,接收数据,(n-1.0),1,txdat,发送数据,(n-1.0),2,status,E,RRDY,TRDY,TMT,TOE,ROE,3,control,sso,IE,IRRDY,ITRDY,ITOE,IROE,4,保留,5,slaveselect,从控制器选择屏蔽,txdat,status,control,保留,slaveselect,rxdata,接收数据寄存器,发送数据寄存器,状态寄存器,控制寄存器,从控制器选择寄存器,10 带Avalon接口的互斥内核,说明:中断只有高电平中断,如果希望低电平时中断,则需在该I/O输入引脚前加一个“非”门。,Memory module指定哪个存储器用作邮箱缓冲区。,I/O口宽度:可设置为132的任何整数值。,如果Initial Value设置成非零值,还必须设定Initial Owner。,11 带Avalon接口的邮箱内核,IOWR_ALTERA_AVALON_PIO_DATA(0 x00B81090,data),Altera EPCS 串行配置器件(EPCS1和EPCS4),它可用于存储程序代码、非易失性程序数据和FPGA配置数据。,3 CFI(通用Flash)控制器内核,当边沿事件发生时对应位置1。,10月-2222:18:5122:18Oct-2225-Oct-22,Specify Delay:,如果IRQ被使能,则产生一个IRQ,12、世间成事,不求其绝对圆满,留一份不足,可得无限完美。,预充电命令(t_rp)的持续时间,4.8 SPI内核,SPI,配,置,选,项,卡,SPI,配置选项卡,Master&Slave,:,主控制器,/,从控制器设置,Generate Select Signals,:,通用选择信号,SPI Clock Rate,:,SPI,时钟率,Specify Delay,:,指定延时,Data Register,:,数据寄存器设置,Timing,:,时序设置,Waveforms,:,波形显示,4.8 SPI内核,软件编程,Altera,提供一个访问,SPI,的函数,alt_avalon_spi_command(),该函数为配置生成主控制器的,SPI,内核提供通用访问。,第4章 目录,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.9 DMA内核,DMA,内核综述,带,Avalon,接口的直接存储器存取控制器(,DMA,控制器)替代,Avalon,主控制器执行储存器对储存器或者储存器与,IO,设备间的批量数据传输。当,DMA,控制器执行数据传输任务时,主控制器可自由执行其它并行的任务。,4.9 DMA内核,DMA,内核综述,DMA,控制器结构框图,4.9 DMA内核,DMA,寄存器描述,偏移量,寄存器名称,读,/,写,31,11,10,9,8,7,6,5,4,3,2,1,0,0,状态,RW,(2),LEN,WEOP,REOP,BUSY,DONE,1,源地址,RW,读取数据的起始地址,2,目的地址,RW,数据写入的起始地址,3,长度,RW,DMA,传输长度(以字节为单位),4,-,保留,(3),5,-,保留,(3),6,控制,RW,(2),(4),(5),WCON,RCON,LEEN,WEEN,REEN,I_EN,GO,WORD,HW,BYTE,7,-,保留,(3),DMA,控制器结构框图,源地址,目的地址,长度,控制,状态,4.9 DMA内核,DMA,配,置,选,项,卡,SPI,配置选项卡,Transfer Size:,DMA,长度寄存器的宽度,Burst Transactions,:,允许突发传输,FIFO Implementation,:,FIFO,的构成,4.9 DMA内核,DMA,配,置,选,项,卡,SPI,配置选项卡,高级选项,4.9 DMA内核,软件编程,Ioctl(),操作,软件文件,第4章 目录,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.10 带Avalon接口的互斥内核,互斥内核描述,偏移量,寄存器名称,R/W,位描述,31,16,15,1,0,0,mutex,RW,OWNER,VALUE,1,reset,RW,-,-,RESET,互斥内核描述,4.10带Avalon接口的互斥内核,互斥内核配置选项,硬件设计者可利用互斥内核的,SOPC Builder,配置向导来设定内核的硬件特性。配置向导提供了以下设置:,Initial Value,复位后,VALUE,字段的初始值。如果,Initial Value,设置成非零值,还必须设定,Initial Owner,。,Initial Owner,复位后,OWNER,字段的初始值。当,Initial Owner,被设定时,此时的互斥体拥有者必须在互斥体被其它拥有者占用之前将互斥体释放。,4.10带Avalon接口的互斥内核,软件编程,对于,Nios,处理器用户,,Altera,提供了可用来访问互斥内核硬件的驱动程序,利用驱动程序可以直接对低层的硬件进行操作。互斥内核不能通过,HAL API,或,ANSIC,标准库来访问。在,Nios,处理器系统中,处理器通过将它的,cpuid,控制寄存器的值写入,mutex,寄存器的,OWNER,字段来锁定互斥体。,Altera,为互斥内核提供下列驱动程序文件:,altera_avalon_mutex_regs.h,altera_avalon_mutex.h,altera_avalon_mutex.c,4.10带Avalon接口的互斥内核,软件编程,函数名称,描述,altera_avalon_mutex_open(),获取互斥体的句柄,使所有其它函数可访问互斥内核。,altera_avalon_mutex_trylock(),尝试锁定互斥体。如果该函数不能锁定互斥体,则立即返回。,altera_avalon_mutex_lock(),锁定互斥体。直至该函数成功得到互斥体才返回,altera_avalon_mutex_unlock(),解除锁定互斥体。,altera_avalon_mutex_is_mine(),确定该,CPU,是否具有互斥体。,altera_avalon_mutex_first_lock(),复位后测试互斥体是否已被释放。,硬件互斥体函数,4.11 带Avalon接口的邮箱内核,邮箱内核配置选项,Mo
展开阅读全文