




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、NIOS II简介江苏大学电气信息学院版权者:赵不贿主讲人:闫小喜概述 Nios II处理器架构简介 编程模型Nios II 采用流水技术和哈佛结构的通用精减指令采用流水技术和哈佛结构的通用精减指令集计算机集计算机(RISC)1.具有完整的具有完整的32位指令集、位指令集、32位数据通道和地址空间;位数据通道和地址空间;2.带有带有32个通用寄存器;个通用寄存器;3.32个外部中断;个外部中断;4.单指令的单指令的32位与位与32位乘和除的结果是位乘和除的结果是32位;对于结果是位;对于结果是64位或位或128位的乘法提供专用指令;位的乘法提供专用指令;5.带有单指令桶形带有单指令桶形(循环循
2、环)移位寄存器;移位寄存器;6.可访问各种片内外设,提供与片外存储器和外设的接口;可访问各种片内外设,提供与片外存储器和外设的接口;7.具有硬件辅助调试模块,可在具有硬件辅助调试模块,可在IDE环境下执行开始、停止、单环境下执行开始、停止、单步执行和追踪等操作;步执行和追踪等操作;8.软件集成环境基于软件集成环境基于GNU C/C+和和Eclipse IDE;9.所有所有NIOS CPU其指令集架构兼容;其指令集架构兼容;10.处理器性能超过处理器性能超过150DMIPS(每秒(每秒1亿亿5千万条整数运算指令)。千万条整数运算指令)。支持支持Nios II的的FPGACyclone 、 Cyc
3、loneII、 CycloneIII系列;系列;Stratix 、 Stratix II、 Stratix III系列;系列;HardCopy、 HardCopyII、 HardCopy Stratix器件;器件;HardCopy APEX三代。三代。Cyclone II EP2C系列片上资源系列片上资源Stratix II EP2S系列片上资源系列片上资源Nios II设计嵌入式系统的流程:设计嵌入式系统的流程:1.分析系统需要说明,包括功能需要和性能需求;分析系统需要说明,包括功能需要和性能需求;2.建立建立Quartus II工程,建立顶层实体;工程,建立顶层实体;3.调用调用SOPC
4、Bulider生成用户定制的系统模块(包括标准外设);生成用户定制的系统模块(包括标准外设);4.将将SOPC系统模块集成到硬件工程中,并添加其他模块;系统模块集成到硬件工程中,并添加其他模块;5.在顶层实体中,将这些连接起来;在顶层实体中,将这些连接起来;6.分配引脚和编译工程,生成硬件系统的配置文件分配引脚和编译工程,生成硬件系统的配置文件.sof和和.pof文件;文件;7.下载工程,验证,将配置文件下载到开发板上验证;下载工程,验证,将配置文件下载到开发板上验证;8.软件开发,可使用软件开发,可使用IDE或或SDK Shell集成开发环境;集成开发环境;9.编译软件工程,生成可执行文件编
5、译软件工程,生成可执行文件.elf;10.调试程序,将硬件配置文件下载到开发板,将可执行文件下载到调试程序,将硬件配置文件下载到开发板,将可执行文件下载到RAM,直到软硬件协同工作。直到软硬件协同工作。概述 Nios II处理器结构简介 结构与特点结构与特点 寄存器文件寄存器文件 ALU 异常控制器和中断控制器异常控制器和中断控制器 存储器和存储器和I/O组织组织 编程模型Nios II系统的特性与系统的特性与Nios II内部结构:内部结构:1.NiosII是一个可配置的软核处理器。空白是一个可配置的软核处理器。空白FPGA+IP(Nios II)2.外设配置具有很大的灵活性;外设配置具有很
6、大的灵活性;3.具有很好的性价比;具有很好的性价比;4.自定制自定制指令。指令。Nios II CPU模块图模块图Nios II 处理器型号:处理器型号:Nios II具有下列功能:具有下列功能:1.寄存器文件;寄存器文件;2.自定制指令的逻辑接口;自定制指令的逻辑接口;3.异常控制异常控制器;器;4.中断控制器;中断控制器;5.指令总线;指令总线;6.数据总线;数据总线;7.指令高指令高速缓存和数据高速缓存;速缓存和数据高速缓存;8.指令和数据的紧耦存储器接指令和数据的紧耦存储器接口;口;9.JITG调试模块。调试模块。特性特性处理器内核处理器内核Nios II/eNios II/sNios
7、 II/f性能性能DMIPS/MHz (1)0.150.74 1.16 最大最大DMIPS (2)31127 218 最大工作频率最大工作频率(fMAX)(2)200 MHz165 MHz185 MHz大致尺寸(以大致尺寸(以LE为单位)为单位)7001,400=,=8,且小于行的值,且小于行的值n 默认值:默认值:8n 描述:描述:列地址位的数目。例如,列地址位的数目。例如,SDRAM排列为排列为4096行、行、512(29)列,所以列的值为列,所以列的值为9。具体数值请查阅具体数值请查阅SDRAM数据手数据手册。册。SDRAM控制器内核控制器内核通过三态桥共用管脚n允许值:是、否n默认值:
8、否n 描述:当设为No时,所有管脚都专用于SDRAM芯片。当设为Yes时,addr,dq和dqm管脚在系统内可与三态桥共享。SDRAM控制器内核控制器内核包括系统测试台的功能存储模块n允许值:是、否n默认值:是n 描述:当打开选项时,SOPC Builder创建SDRAM芯片的功能仿真模型。该默认的存储器模型加速创建的过程和检验使用SDRAM控制器的系统。SDRAM控制器内核控制器内核n SDRAM内核配置选项Timing :根据在根据在SDRAM芯片芯片数据手册中提供的参数据手册中提供的参数来设置芯片的时序数来设置芯片的时序规范规范SDRAM控制器内核控制器内核CAS等待时间等待时间n允许值
9、:允许值:1、2、3n默认值:默认值:3n 描述:从读命令到数据输出的等描述:从读命令到数据输出的等待时间(以时钟周期计算)。待时间(以时钟周期计算)。SDRAM控制器内核控制器内核初始化刷新周期初始化刷新周期n允许值:允许值:1-8n默认值:默认值:2n 描述:复位后,该值指定描述:复位后,该值指定SDRAM控制器将执行多少个刷控制器将执行多少个刷新周期作为初始化序列的一部分。新周期作为初始化序列的一部分。SDRAM控制器内核控制器内核每隔一段时间执行一个刷新命令每隔一段时间执行一个刷新命令n允许值:允许值:-n默认值:默认值:15.625usn 描述:该值指定描述:该值指定SDRAM控制器
10、控制器多久刷新一次多久刷新一次SDRAM。典型的。典型的SDRAM每每64ms需要需要4,096刷刷新命令,通过每新命令,通过每64ms/4,096=15.625us执执行一个刷新命令来符合这个要求。行一个刷新命令来符合这个要求。SDRAM控制器内核控制器内核在初始化前、上电后延时在初始化前、上电后延时n允许值:允许值:-n默认值:默认值:100usn 描述:从稳定的时钟和电源到描述:从稳定的时钟和电源到SDRAM初始化的延时。初始化的延时。SDRAM控制器内核控制器内核刷新命令刷新命令(t_rfc)的持续时间的持续时间n允许值:允许值:-n默认值:默认值:70nsn 描述:自动刷新周期。描述
11、:自动刷新周期。SDRAM控制器内核控制器内核预充电命令预充电命令(t_rp)的持续时间的持续时间n允许值:允许值:-n默认值:默认值:20nsn 描述:预充电命令周期。描述:预充电命令周期。SDRAM控制器内核控制器内核ACTIVE到到READ或或WRITE延时延时n允许值:允许值:-n默认值:默认值:20nsn 描述:描述:ACTIVE到到READ或或WRITE延时。延时。SDRAM控制器内核控制器内核访问时间访问时间(t_ac)n允许值:允许值:-n默认值:默认值:5.5nsn 描述:时钟边沿的访问时间。该描述:时钟边沿的访问时间。该值由值由CAS的等待时间决定。的等待时间决定。SDRA
12、M控制器内核控制器内核写恢复时间写恢复时间(t_wr,无自动预充电无自动预充电)n允许值:允许值:-n默认值:默认值:14nsn 描述:如果执行了明确的预充电命描述:如果执行了明确的预充电命令,写恢复。该令,写恢复。该SDRAM控制器总是控制器总是执行明确的预充电命令。执行明确的预充电命令。SDRAM控制器内核控制器内核软件编程软件编程当通过当通过Avalon接口访问时,接口访问时,SDRAM控控制器操作起来像简单的制器操作起来像简单的SRAM存储器,没有存储器,没有可配置的软件设置,没有存储器映射的寄存可配置的软件设置,没有存储器映射的寄存器。处理器访问器。处理器访问SDRAM控制器不需要软
13、件控制器不需要软件驱动程序。驱动程序。SDRAM控制器内核控制器内核SDRAM应用应用一个带一个带32位数据总线的位数据总线的128Mbit SDRAM芯片芯片SDRAM控制器内核控制器内核SDRAM应用应用两个带两个带16位数据总线的位数据总线的64Mbit SDRAM芯片芯片SDRAM控制器内核控制器内核SDRAM应用应用两个带两个带32位数据总线的位数据总线的128Mbit SDRAM芯片芯片 并行输入并行输入/输出输出(PIO)内核内核 SDRAM控制器内核控制器内核 CFI(通用通用Flash)控制器内核控制器内核 EPCS控制器内核控制器内核 定时器内核定时器内核 UART内核内核
14、JTAG_UART内核内核SPI内核内核DMA内核内核带带Avalon接口的互斥内核接口的互斥内核带带Avalon接口的邮箱内核接口的邮箱内核System ID内核内核CFI控制器内核控制器内核对于对于Nios II处理器,处理器,Altera为为CFI控制器控制器提供硬件抽象层提供硬件抽象层(HAL)驱动程序。驱动程序驱动程序。驱动程序提供了遵循提供了遵循CFI接口规范的接口规范的Flash存储器的通存储器的通用访问函数。因此,用户不需要写任何代码用访问函数。因此,用户不需要写任何代码就可以访问遵循就可以访问遵循CFI接口规范的接口规范的Flash器件。器件。CFI控制器内核控制器内核CFI
15、控制器框图控制器框图CFI控制器内核控制器内核n CFI控制器内核设置CFI控制器框图控制器框图Attributes :用于完成用于完成Presets、size和和 Board Info这这3个选项的设定。个选项的设定。Presets :选择预设好的选择预设好的CFI Flash。Size :n地址宽度:地址宽度:Flash地址总线宽度。地址总线宽度。n数据宽度:数据宽度:Flash数据总线宽度。数据总线宽度。Board Info :用于映射CFI控制器目标系统板元件的已知芯片。CFI控制器内核控制器内核n CFI控制器内核设置CFI控制器框图控制器框图Timing:用于完成时序设置,包括建立
16、时间、等待周期、保持时间等。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存储存储器的擦除和写
17、操作。器的擦除和写操作。CFI控制器内核控制器内核 并行输入并行输入/输出输出(PIO)内核内核 SDRAM控制器内核控制器内核 CFI(通用通用Flash)控制器内核控制器内核 EPCS控制器内核控制器内核 定时器内核定时器内核 UART内核内核JTAG_UART内核内核SPI内核内核DMA内核内核带带Avalon接口的互斥内核接口的互斥内核带带Avalon接口的邮箱内核接口的邮箱内核System ID内核内核EPCS控制器内核控制器内核Altera EPCS 串行配置器件串行配置器件(EPCS1和和EPCS4),它可用于存储程序代码、非易失性程序数据和它可用于存储程序代码、非易失性程序数据
18、和FPGA配置数据。配置数据。带带Avalon接口的接口的EPCS设备控制器内核设备控制器内核(“EPCS控制器控制器”)允许)允许NiosII系统访问系统访问Altera EPCS串行配置器件。串行配置器件。Altera提供集成到提供集成到NiosII硬件硬件抽象层抽象层(HAL)系统库的驱动程序,允许用户使用系统库的驱动程序,允许用户使用HAL应用程序接口应用程序接口(API)来读取和编写来读取和编写EPCS器件。器件。EPCS控制器内核控制器内核EPCS控制器可用于:控制器可用于: 在在EPCS器件中存储程序代码。器件中存储程序代码。 存储非易失性数据。存储非易失性数据。 管理管理FPG
19、A配置数据。配置数据。EPCS控制器内核控制器内核EPCS控制器结构框图控制器结构框图Boot-LoaderROMEPCS控制器配置存储空间通用存储空间EPCS配置器件Avalon总线NiosIICPU片内外设Altera FPGA存储存储FPGA配配置数据置数据剩余空间可用于剩余空间可用于存储用户非易失存储用户非易失性数据。性数据。1KB的片的片内存储器内存储器EPCS控制器内核控制器内核软件编程软件编程Altera提供的提供的HAL Flash设备驱动程序已经设备驱动程序已经完全屏蔽了完全屏蔽了Flash的硬件访问细节,访问的硬件访问细节,访问EPCS Flash的软件编程和访问的软件编程
20、和访问CFI Flash的软件编程的软件编程完全一样。完全一样。EPCS控制器提供了硬件的底层接口和控制器提供了硬件的底层接口和HAL驱动程序。驱动程序。EPCS控制器内核控制器内核软件编程软件编程定义集成到定义集成到HAL系统库所需的驱动程序系统库所需的驱动程序的头文件和源文件。的头文件和源文件。Altera_avalon_epcs_flash_controller.h通过直接控制通过直接控制EPCS设备来进行读写操作的头文件和源文件。设备来进行读写操作的头文件和源文件。Altera_avalon_epcs_flash_controller.cepcs_commands.hepcs_comm
21、ands.c 并行输入并行输入/输出输出(PIO)内核内核 SDRAM控制器内核控制器内核 CFI(通用通用Flash)控制器内核控制器内核 EPCS控制器内核控制器内核 定时器内核定时器内核 UART内核内核JTAG_UART内核内核SPI内核内核DMA内核内核带带Avalon接口的互斥内核接口的互斥内核带带Avalon接口的邮箱内核接口的邮箱内核System ID内核内核定时器内核定时器内核定时器是挂载在定时器是挂载在Avanlon总线上的总线上的32位定时位定时器,特性如下:器,特性如下: 两种计数模式:单次减两种计数模式:单次减1和连续减和连续减1计数模式计数模式 定时器到达定时器到达
22、0时产生中断请求时产生中断请求(IRQ); 可选择设定为看门狗定时器,计算到达可选择设定为看门狗定时器,计算到达0时复位系统;时复位系统; 可选择输出周期性脉冲,在定时器计算到达可选择输出周期性脉冲,在定时器计算到达0时输出时输出脉冲;脉冲; 可由软件启动、停止或复位定时器;可由软件启动、停止或复位定时器; 可由软件使能或屏蔽定时器中断。可由软件使能或屏蔽定时器中断。定时器内核定时器内核EPCS控制器结构框图StatusControlPeriodhPeriodlSnaphSnapl控制逻辑计数器寄存器文件Timeout pulseIRQReset数据总线地址总线(看门狗)Avanlon总线从机
23、总线从机接口到内核逻辑核逻辑定时器内核定时器内核定时器的基本操作:定时器的基本操作: Avalon主控制器通过对控制寄存器执行不同的主控制器通过对控制寄存器执行不同的写操作来控制:写操作来控制: 启动和停止定时器启动和停止定时器 使能使能/禁能禁能IRQ 指定单次减指定单次减1计数或连续减计数或连续减1计数模式计数模式 处理器读状态寄存器获取当前定时器的运行信处理器读状态寄存器获取当前定时器的运行信息。息。 处理器可通过写数据到处理器可通过写数据到periodl和和periodh寄存寄存器来设定定时器周期。器来设定定时器周期。定时器内核定时器内核定时器的基本操作:定时器的基本操作: 内部计数器
24、计数减到内部计数器计数减到0,立即从周期寄存器开,立即从周期寄存器开始重新装载。始重新装载。 处理器可以通过写处理器可以通过写snapl或或snaph获取计数器的获取计数器的当前值。当前值。 当计数器计数到达当计数器计数到达0时:时: 如果如果IRQ被使能,则产生一个被使能,则产生一个IRQ (可选的)脉冲发生器输出有效持续一个时钟周期(可选的)脉冲发生器输出有效持续一个时钟周期 (可选的)看门狗输出复位系统(可选的)看门狗输出复位系统定时器内核定时器内核定时器寄存器描述偏移量名称R/W位描述15 432100statusRW*RUN TO1control RW*STOPSTARTCONTIT
25、O2periodl RW 超时周期1(位15.0)3periodh RW 超时周期1(位31.16)4snaplRW 计数器快照(位15.0)5snaphRW 计数器快照(位31.16)RUNTOSTOPSTART CONT ITOperiodlPeriodhsnaplsnaph定时器内核定时器内核n 定时器内核配置选项定时器控制器框图定时器控制器框图Initial perod:用于预设硬件生成后的定时器周期,即perodl和periodh寄存器的值。定时器内核定时器内核n 定时器内核配置选项Preset Configurations:可选择的预定义的硬件配置。可选择的预定义的硬件配置。定时器
26、控制器框图定时器控制器框图定时器内核定时器内核n 定时器内核配置选项Writeable perod:n 使能:主控制器可通过写使能:主控制器可通过写period而改变向下计数周期。而改变向下计数周期。n 禁能:向下计数周期由禁能:向下计数周期由Timeout Period确定,且确定,且period寄存器不在硬件中存在。寄存器不在硬件中存在。Readable snapshot:n 使能:主控制器可读当前向下计使能:主控制器可读当前向下计数器的值。数器的值。n 禁能:计数器的状态仅通过状态禁能:计数器的状态仅通过状态寄存器或寄存器或IRQ信号来检测。信号来检测。Snap寄存器不在硬件中存在。寄存
27、器不在硬件中存在。Start/Stop control bits:n 使能:主控制可通过写使能:主控制可通过写START和和STOP位来启动和停止定时器。位来启动和停止定时器。n 禁能:定时器连续运行。禁能:定时器连续运行。定时器控制器框图定时器控制器框图定时器内核定时器内核n 定时器内核配置选项定时器控制器框图定时器控制器框图Timeout pulse:n 使能:定时器到使能:定时器到0时,时,timeout_pulse输出一个时钟周期输出一个时钟周期的高电平。的高电平。n 禁能:禁能:timeout_out信号不存在。信号不存在。System reset on timeout:n 使能:使
28、能: 定时器到定时器到0时,时, resetrequest信号输出一个时钟周信号输出一个时钟周期的高电平使系统复位。期的高电平使系统复位。n 禁能:禁能: resetrequest信号不存信号不存在。在。定时器内核定时器内核软件编程软件编程Altera为为NiosII处理器用户提供硬件抽象层处理器用户提供硬件抽象层(HAL)系统库驱动程序,允许用户使用系统库驱动程序,允许用户使用HAL应用程应用程序接口序接口(API)函数来访问定时器内核。函数来访问定时器内核。 HAL系统库支持系统库支持 系统时钟驱动程序系统时钟驱动程序 时间标记驱动程序时间标记驱动程序1. 软件文件软件文件 并行输入并行输
29、入/输出输出(PIO)内核内核 SDRAM控制器内核控制器内核 CFI(通用通用Flash)控制器内核控制器内核 EPCS控制器内核控制器内核 定时器内核定时器内核 UART内核内核JTAG_UART内核内核SPI内核内核DMA内核内核带带Avalon接口的互斥内核接口的互斥内核带带Avalon接口的邮箱内核接口的邮箱内核System ID内核内核UART内核内核UART内核(通用异步接收器内核(通用异步接收器/发送器内核)发送器内核)执行执行RS-232协议时序,并提供可调整的波特率。协议时序,并提供可调整的波特率。用户可配置奇偶校验位、停止位和数据位,以及用户可配置奇偶校验位、停止位和数据
30、位,以及可选的可选的RTS/CTS流控制信号。流控制信号。内核提供一个简单的内核提供一个简单的Avalon从控制器接口,该从控制器接口,该接口允许接口允许Avalon主控制器(例如主控制器(例如NiosII处理器)通处理器)通过读写寄存器与过读写寄存器与UART内核进行通讯。内核进行通讯。UART内核内核波 特 率 除 数接 收 寄 存 器发 送 寄 存 器状 态 寄 存 器数 据 包 结 束 符控 制 寄 存 器移 位 寄 存 器移 位 寄 存 器clkAddrDataIRQendofpacketdataavailablereadfordatauart clkTXDRXDRTSCTSAval
31、on总 线 接 口RS232接 口UART内核的结构框图 UART内核内核RS-232接口接口 发送逻辑发送逻辑 接收逻辑接收逻辑1. 波特率生成波特率生成UART内核内核UART内核的寄存器描述偏移量寄存器名称R/W描述/寄存器位1513 12111098765432100接收数据(rxdata)RO接收数据1发送数据(txdata)WO发送数据2状态(status) RWeopctsdctserrdytrdytmt toe roe brkfepe3控制(control)RWieoprtsidctstrbkieirrdyitrdyitmt itoe iroe ibrk ifeipe4除数(d
32、ivisor) RW波特率除数5数据包结束符(endopacket) RW数据包结束符值UART内核寄存器映射发送数据(txdata)接收数据(rxdata)状态(status)控制(control)除数(divisor) 数据包结束符(endopacket) UART内核内核n UART内核配置页Baud Rate:波特率设置波特率设置数据位设置数据位设置流控制流控制流数据控制流数据控制UART内核内核软件编程软件编程 HAL系统支持系统支持 驱动程序选项驱动程序选项 Ioctl()操作操作1. 软件文件软件文件 并行输入并行输入/输出输出(PIO)内核内核 SDRAM控制器内核控制器内核
33、CFI(通用通用Flash)控制器内核控制器内核 EPCS控制器内核控制器内核 定时器内核定时器内核 UART内核内核JTAG_UART内核内核SPI内核内核DMA内核内核带带Avalon接口的互斥内核接口的互斥内核带带Avalon接口的邮箱内核接口的邮箱内核System ID内核内核JTAG_UART内核内核JTAG UART内核通过内核通过Avalon从控制器接口连接到从控制器接口连接到Avalon总线。总线。JTAG UART内核包含内核包含2个个32位寄存器(数据和位寄存器(数据和控制),它们可通过控制),它们可通过Avalon从控制器端口进行存取。从控制器端口进行存取。Avalon主
34、控制器访问寄存器来控制内核并在主控制器访问寄存器来控制内核并在JTAG连接上传输数据。连接上传输数据。JTAG UART内核提供高电平有效的中断输出,该输出在读内核提供高电平有效的中断输出,该输出在读FIFO几乎为满或写几乎为满或写FIFO几乎为空时申请一个中断。几乎为空时申请一个中断。有读写有读写FIFO也是也是JTAG UART内核与内核与UART内核的不同内核的不同点之一。点之一。FIFO可以改善可以改善JTAG连接的带宽。连接的带宽。FIFO深度可由深度可由用户设置。用户设置。JTAG_UART内核内核JTAG_UART内核内核JTAG_UART的寄存器描述偏移量偏移量寄存器名称寄存器
35、名称R/W位描述位描述3116151411109872100数据数据RWRAVAILRVALID保留保留DATA1控制控制RWWSPACE保留保留ACWIRI保留保留WRUART内核寄存器映射数据控制JTAG_UART内核内核n JTAG-UART配置选项卡JATG_UART配置选项卡配置选项卡Write FIFO:写写FIFO设置设置Read FIFO:读读FIFO设置设置 并行输入并行输入/输出输出(PIO)内核内核 SDRAM控制器内核控制器内核 CFI(通用通用Flash)控制器内核控制器内核 EPCS控制器内核控制器内核 定时器内核定时器内核 UART内核内核JTAG_UART内核内
36、核SPI内核内核DMA内核内核带带Avalon接口的互斥内核接口的互斥内核带带Avalon接口的邮箱内核接口的邮箱内核System ID内核内核SPI内核内核SPI时钟分频器*接收数据发送数据状态寄存器控制寄存器从机选择*移位寄存器移位寄存器sclkMISOMOSIss_n0ss_n1ss_n15|IRQclkDataAddr*不在从器件上出现Avalon总线从机接口SPI内核框图内核框图SPI发送逻辑发送逻辑SPI接收逻辑接收逻辑SPI内核内核SPI时钟分频器*接收数据发送数据状态寄存器控制寄存器从机选择*移位寄存器移位寄存器sclkMISOMOSIss_n0ss_n1ss_n15|IRQc
37、lkDataAddr*不在从器件上出现Avalon总线从机接口SPI内核框图内核框图主控制器模式端口配置主控制器模式端口配置名称名称方向方向描述描述MOSI输出输出输出数据到从控制器输出数据到从控制器MISO输入输入从控制器输入数据从控制器输入数据sclk输出输出所有从控制器的同步时所有从控制器的同步时钟钟ss_nM输出输出从控制器选择信号,其从控制器选择信号,其中中M为为0到到15之间的数。之间的数。SPI内核内核SPI时钟分频器*接收数据发送数据状态寄存器控制寄存器从机选择*移位寄存器移位寄存器sclkMISOMOSIss_n0ss_n1ss_n15|IRQclkDataAddr*不在从器
38、件上出现Avalon总线从机接口SPI内核框图内核框图从控制器模式端口配置从控制器模式端口配置名称名称方向方向描述描述MOSI输入输入从主控制器输入数据从主控制器输入数据MISO输出输出输出数据到主控制器输出数据到主控制器sclk输入输入同步时钟同步时钟ss_nM输入输入选择信号选择信号SPI内核内核SPI内核的寄存器描述UART内核寄存器映射内部地址寄存器名称1511109876543200rxdata接收数据接收数据 (n-1.0)1txdat发送数据发送数据 (n-1.0)2statusERRDYTRDY TMTTOEROE3controlsso IE IRRDY ITRDYITOE I
39、ROE4保留5slaveselect从控制器选择屏蔽从控制器选择屏蔽txdatstatuscontrol保留slaveselectrxdata接收数据寄存器接收数据寄存器发送数据寄存器发送数据寄存器状态寄存器状态寄存器控制寄存器控制寄存器从控制器选择寄存器从控制器选择寄存器SPI内核内核n SPI配置选项卡SPI配置选项卡Master&Slave:主控制器主控制器/从控制器设置从控制器设置Generate Select Signals:通用选择信号SPI Clock Rate:SPI时钟率Specify Delay:指定延时Data Register:数据寄存器设置Timing:时序设
40、置Waveforms:波形显示SPI内核内核软件编程软件编程Altera提供一个访问提供一个访问SPI的函数的函数alt_avalon_spi_command(),该函数为配置生成主该函数为配置生成主控制器的控制器的SPI内核提供通用访问。内核提供通用访问。 并行输入并行输入/输出输出(PIO)内核内核 SDRAM控制器内核控制器内核 CFI(通用通用Flash)控制器内核控制器内核 EPCS控制器内核控制器内核 定时器内核定时器内核 UART内核内核JTAG_UART内核内核SPI内核内核DMA内核内核带带Avalon接口的互斥内核接口的互斥内核带带Avalon接口的邮箱内核接口的邮箱内核S
41、ystem ID内核内核DMA内核内核带带Avalon接口的直接存储器存取控制器接口的直接存储器存取控制器(DMA控制器)替代控制器)替代Avalon主控制器执行储存器主控制器执行储存器对储存器或者储存器与对储存器或者储存器与IO设备间的批量数据传输。设备间的批量数据传输。当当DMA控制器执行数据传输任务时,主控制器可控制器执行数据传输任务时,主控制器可自由执行其它并行的任务。自由执行其它并行的任务。DMA内核内核状态寄存器控制寄存器源地址寄存器目的地址寄存器数据长度寄存器控制端口主控制器读端口主控制器写端口寄存器文件DMA 控制器AddrDataControlIRQAvalon从控制器端口独
42、立的Avalon主控制器端口DMA控制器结构框图控制器结构框图DMA内核内核DMA寄存器描述偏移量寄存器名称读/写31111098765432100状态 RW(2)LENWEOP REOP BUSY DONE1源地址RW读取数据的起始地址读取数据的起始地址2目的地址RW数据写入的起始地址数据写入的起始地址3长度RWDMA传输长度(以字节为单位)传输长度(以字节为单位)4-保留保留(3)5-保留保留(3)6控制RW(2) (4) (5)WCONRCON LEEN WEEN REEN I_ENGOWORDHWBYTE7-保留保留(3)DMA控制器结构框图源地址目的地址长度控制状态DMA内核内核n
43、DMA配置选项卡DMA配置选项卡Transfer Size:DMA长度寄存器的宽度Burst Transactions:允许突发传输允许突发传输FIFO Implementation:FIFO的构成DMA内核内核n DMA配置选项卡DMA配置选项卡高级选项高级选项DMA内核内核软件编程软件编程 Ioctl()操作操作1. 软件文件软件文件 并行输入并行输入/输出输出(PIO)内核内核 SDRAM控制器内核控制器内核 CFI(通用通用Flash)控制器内核控制器内核 EPCS控制器内核控制器内核 定时器内核定时器内核 UART内核内核JTAG_UART内核内核SPI内核内核DMA内核内核带带Av
44、alon接口的互斥内核接口的互斥内核带带Avalon接口的邮箱内核接口的邮箱内核System ID内核内核带带Avalon接口的互斥内核接口的互斥内核互斥内核描述偏移量偏移量 寄存器名称寄存器名称R/W位描述位描述311615100mutexRWOWNERVALUE1resetRW-RESET互斥内核描述互斥内核描述带带Avalon接口的互斥内核接口的互斥内核互斥内核配置选项硬件设计者可利用互斥内核的硬件设计者可利用互斥内核的SOPC Builder配置向导来配置向导来设定内核的硬件特性。配置向导提供以下设置:设定内核的硬件特性。配置向导提供以下设置: Initial Value复位后复位后V
45、ALUE字段的初始值。如果字段的初始值。如果Initial Value设置成非零值,还必须设定设置成非零值,还必须设定Initial Owner。 Initial Owner复位后复位后OWNER字段的初始值。当字段的初始值。当Initial Owner被设定时,此时的互斥体拥有者必须被设定时,此时的互斥体拥有者必须在互斥体被其它拥有者占用之前将互斥体释放。在互斥体被其它拥有者占用之前将互斥体释放。带带Avalon接口的互斥内核接口的互斥内核软件编程对于对于Nios处理器用户,处理器用户,Altera提供了可用来访问互斥内核硬件的提供了可用来访问互斥内核硬件的驱动程序,利用驱动程序可以直接对低
46、层的硬件进行操作。互斥内核不驱动程序,利用驱动程序可以直接对低层的硬件进行操作。互斥内核不能通过能通过HAL API或或ANSIC标准库来访问。在标准库来访问。在Nios处理器系统中,处理处理器系统中,处理器通过将它的器通过将它的cpuid控制寄存器的值写入控制寄存器的值写入mutex寄存器的寄存器的OWNER字段来字段来锁定互斥体。锁定互斥体。Altera为互斥内核提供下列驱动程序文件:为互斥内核提供下列驱动程序文件:altera_avalon_mutex_regs.haltera_avalon_mutex.haltera_avalon_mutex.c带带Avalon接口的互斥内核接口的互斥
47、内核软件编程软件编程函数名称描述altera_avalon_mutex_open( )获取互斥体的句柄,使所有其它函数可访问互斥内核。获取互斥体的句柄,使所有其它函数可访问互斥内核。altera_avalon_mutex_trylock( )尝试锁定互斥体。如果该函数不能锁定互斥体,则立即尝试锁定互斥体。如果该函数不能锁定互斥体,则立即返回。返回。altera_avalon_mutex_lock( )锁定互斥体。直至该函数成功得到互斥体才返回锁定互斥体。直至该函数成功得到互斥体才返回altera_avalon_mutex_unlock( )解除锁定互斥体。解除锁定互斥体。altera_aval
48、on_mutex_is_mine( )确定该确定该CPU是否具有互斥体。是否具有互斥体。altera_avalon_mutex_first_lock( )复位后测试互斥体是否已被释放。复位后测试互斥体是否已被释放。 并行输入并行输入/输出输出(PIO)内核内核 SDRAM控制器内核控制器内核 CFI(通用通用Flash)控制器内核控制器内核 EPCS控制器内核控制器内核 定时器内核定时器内核 UART内核内核JTAG_UART内核内核SPI内核内核DMA内核内核带带Avalon接口的互斥内核接口的互斥内核带带Avalon接口的邮箱内核接口的邮箱内核System ID内核内核带带Avalon接口
49、的邮箱内核接口的邮箱内核邮箱内核配置选项More Settings选项卡提供以下选项: Mailbox Size (bytes)指定用于邮箱消息缓冲区的字指定用于邮箱消息缓冲区的字节数。节数。Altera提供的提供的NiosII驱动程序软件使用驱动程序软件使用8字节字节来执行邮箱功能。由于邮箱一次只能传输一条消息,来执行邮箱功能。由于邮箱一次只能传输一条消息,Mailbox Size (bytes)必须至少为必须至少为12字节。字节。带带Avalon接口的邮箱内核接口的邮箱内核软件编程软件编程Altera为为NiosII处理器用户提供访问邮箱内核的处理器用户提供访问邮箱内核的驱动程序,驱动程序
50、中的函数直接操作低层硬件。驱动程序,驱动程序中的函数直接操作低层硬件。邮箱软件编程有以下特性邮箱软件编程有以下特性: 每个邮箱消息是一个每个邮箱消息是一个32位字。位字。 在共享存储器中有一个预定义的地址范围专门用于存在共享存储器中有一个预定义的地址范围专门用于存储消息。该地址范围的大小取决于等待的消息数量的储消息。该地址范围的大小取决于等待的消息数量的最大值。最大值。 邮箱软件在处理器之间执行消息邮箱软件在处理器之间执行消息FIFO。一次只有一。一次只有一个处理器可写入邮箱,且一次只有一个处理器可读取个处理器可写入邮箱,且一次只有一个处理器可读取邮箱,以保证消息的完整性邮箱,以保证消息的完整
51、性。带带Avalon接口的邮箱内核接口的邮箱内核软件编程软件编程 用于发送和接收的处理器在程序上遵守相同的邮箱消用于发送和接收的处理器在程序上遵守相同的邮箱消息协议。通常处理器将消息看作指向共享存储器结构息协议。通常处理器将消息看作指向共享存储器结构体的指针。体的指针。 用于发送的处理器可逐次提交消息,直至最大消息地用于发送的处理器可逐次提交消息,直至最大消息地址。址。 当邮箱中有消息时,用于接收的处理器可读取消息。当邮箱中有消息时,用于接收的处理器可读取消息。 读消息会将消息从邮箱中移除。读消息会将消息从邮箱中移除。带带Avalon接口的邮箱内核接口的邮箱内核软件编程软件编程Altera为邮
52、箱内核提供的驱动程序包含下列文件: altera_avalon_mailbox_regs.h altera_avalon_mailbox.h altera_avalon_mailbox.c带带Avalon接口的邮箱内核接口的邮箱内核软件编程软件编程文件文件altera_avalon_mailbox.h声明声明alt_mailbox_dev结构体以及访问邮箱内核的函数。结构体以及访问邮箱内核的函数。 函数名称描述altera_avalon_mailbox_close( )关闭邮箱句柄的使用altera_avalon_mailbox_get( )如果出现了一个值就返回消息,但不阻塞等待消息alte
53、ra_avalon_mailbox_open( )获取邮箱句柄,使所有其它函数都能访问邮箱内核altera_avalon_mailbox_pend( )等待邮箱中的消息,如果没有消息出现将阻塞(一直等)altera_avalon_mailbox_post( )发送消息到邮箱 并行输入并行输入/输出输出(PIO)内核内核 SDRAM控制器内核控制器内核 CFI(通用通用Flash)控制器内核控制器内核 EPCS控制器内核控制器内核 定时器内核定时器内核 UART内核内核JTAG_UART内核内核SPI内核内核DMA内核内核带带Avalon接口的互斥内核接口的互斥内核带带Avalon接口的邮箱内核
54、接口的邮箱内核System ID内核内核System ID内核内核System ID寄存器描述寄存器描述系统ID内核提供只读的Avalon从控制器接口。 系统ID内核寄存器映射偏移量寄存器名称R/W位描述 3100idRSOPC Builder系统ID 1timestampRSOPC Builder生成时间System ID内核内核System ID寄存器描述寄存器描述使用系统ID内核有两种基本的方法: 其一,在下载新的软件到系统之前验证系统ID。 其二,复位后检查系统ID。System ID内核内核软件编程软件编程Altera为NiosII处理器用户提供定义系统ID内核寄存器的HAL系统库头文件和一个访问程序alt_Avalon_sysid_test( ),该程序返回一个值来指示软件期望的系统ID是否匹配系统ID内核。Avalon 总线规范总线规范 Avalon 总线是一种相对简单的总线结构,主要用于连接片内处理总线是一种相对简单的总线结构,主要用于连接片内处理器与外设,以构成片上可编程系统(器与外设,以构成片上可编程系统(SOPC)。它描述了主从构件间的)。它描述了主从构件间的端口连接关系,以及构件间通讯的时序关系。端口连接关系,以及构件间通讯的时序关系。Avalo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 12我的环保小搭档 第1课时(教学设计)-部编版道德与法治二年级下册
- 建筑装饰设计施工合同
- 4少让父母为我操心(教学设计)-2024-2025学年统编版道德与法治四年级上册
- 5 茧中钻出了蚕蛾(教学设计)2023-2024学年三年级下册科学 教科版
- 1 古诗三首 四时田园杂兴(其三十一)教学设计-2023-2024学年语文五年级下册统编版
- 11开发新能源(教学设计)2023-2024学年六年级下册科学苏教版
- 2024-2025学年新教材高中数学 第四章 指数函数与对数函数 4.1 指数(4)教学实录 新人教A版必修第一册
- 13《我能行》(教学设计)-2023-2024学年统编版道德与法治二年级下册
- 2《宪法是根本法》(第2课时)教学设计-2024-2025学年道德与法治六年级上册统编版
- 7《中华民族一家亲》第1课时 教学设计-2024-2025学年道德与法治五年级上册统编版
- 幼儿行为观察与分析案例教程第2版全套教学课件
- 初中政治答题卡模板A4
- 医院会计制度科目表
- 校本研修教师手册电子模板
- 应急队伍装备参考目录和急性传染病预防控制技术资料清单
- 普通地质学-第四章-岩石课件
- 供应商满意度调查表
- 《E时代大学英语-读写教程4》教案
- 一种陆空一体垂直起降飞行汽车的制作方法
- 创新者的窘境课件
- 慢性呼吸疾病肺康复护理专家共识课件
评论
0/150
提交评论