NiosII外围设备SOPC技术与应用

上传人:m**** 文档编号:589730417 上传时间:2024-09-11 格式:PPT 页数:101 大小:1.41MB
返回 下载 相关 举报
NiosII外围设备SOPC技术与应用_第1页
第1页 / 共101页
NiosII外围设备SOPC技术与应用_第2页
第2页 / 共101页
NiosII外围设备SOPC技术与应用_第3页
第3页 / 共101页
NiosII外围设备SOPC技术与应用_第4页
第4页 / 共101页
NiosII外围设备SOPC技术与应用_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《NiosII外围设备SOPC技术与应用》由会员分享,可在线阅读,更多相关《NiosII外围设备SOPC技术与应用(101页珍藏版)》请在金锄头文库上搜索。

1、第第5章章 Nios II 外围设备外围设备-SOPC技术与应用北京航空航天大学出版社出版周立功 等编著LOGO主要内容本章介绍了Nios II处理器常用外围设备(Peripherals)内核的特点、配置以及软件编程,供读者在使用这些外设定制Nios II系统时查阅。这些外设都是以IP核的形式提供给用户的,用户可以根据实际需要把这些IP核集成到Nios II系统中去。主要介绍:硬件结构;内核的特性核接口;SOPC Builder中各内核的配置选项;软件编程。LOGO第5章 目录v5.1 并行输入/输出(PIO)内核v5.2 SDRAM控制器内核v5.3 CFI(通用Flash)控制器内核v5.

2、5 EPCS控制器内核v5.5 定时器内核v5.6 UART内核v5.7 JTAG_UART内核v5.8 SPI内核v5.9 DMA内核5.10 带Avalon接口的互斥内核5.11 带Avalon接口的邮箱内核5.12 System ID内核LOGO第5章 目录v5.1 并行输入/输出(PIO)内核v5.2 SDRAM控制器内核v5.3 CFI(通用Flash)控制器内核v5.5 EPCS控制器内核v5.5 定时器内核v5.6 UART内核v5.7 JTAG_UART内核v5.8 SPI内核v5.9 DMA内核5.10 带Avalon接口的互斥内核5.11 带Avalon接口的邮箱内核5.1

3、2 System ID内核LOGO5.1 并行输入/输出内核并行输入/输出内核(PIO内核)提供Avalon从控制器端口和通用I/O口间的存储器映射接口。PIO内核提供简单的I/O访问用户逻辑或外部设备,例如:控制LED读取开关量控制显示设备配置并且与片外设备通信说明:说明:1.SOPC Builder中提供了PIO内核,可以很容易将PIO内核集成到SOPC Builder生成的系统中。2.通用I/O端口既连接到片内逻辑又连接到外部设备的FPGA I/O管脚。LOGO5.1 并行输入/输出内核vPIO内核简介最多32个I/O端口CPU内核PIO内核寄存器Nios II 系统PIO内核Pio31

4、Pio30Pio29Pio3Pio2Pio1Pio0Pio7Pio6Pio5Pio5Pio3Pio2Pio1Pio0PIO内核端口数可设置每个Avalon接口的PIO内核可提供32个I/O端口且端口数可设置,用户可以添加一个或多个PIO内核。CPU通过I/O寄存器控制I/O端口的行为。I/O口可以配置为输入、输出和三态,还可以用来检测电平事件和边沿事件。CPU通过寄存器控制I/O端口行为PIO内核结构框图LOGO5.1 并行输入/输出内核vPIO内核寄存器描述偏移量寄存器名称R/W(n-1)2100数据寄数据寄存器存器读访问R读入输入引脚上的逻辑电平值写访问W向PIO输出口写入新值1方向寄存器

5、方向寄存器R/W控制每个I/O口的输入输出方向。0:输入;1:输出。2中断屏蔽寄存器中断屏蔽寄存器 R/W使能或禁止每个输入端口的IRQ。1:中断使能;0:禁止中断。3边沿捕获寄存器边沿捕获寄存器 R/W当边沿事件发生时对应位置1。注:注: 该寄存器是否存在取决于硬件的配置。如果该寄存器不存在,那么读寄存器将返回未定义的值,写寄存器无效。 写任意值到边沿捕获寄存器将清除所有位为0。 “ “ 该寄存器是否存在取决于硬件的配置。如果该寄存器不存在,那么读寄存器将返回未定义的值,写寄存器无效。”LOGO5.1 并行输入/输出内核v PIO内核配置选项双击LOGO5.1 并行输入/输出内核v PIO内

6、核配置选项Basic Settings 选项卡I/OI/O口宽度口宽度:可设置为132的任何整数值。Direction中文描述Bidirectional(tri-state) ports双向(三态)端口Input ports only仅为输入端口Output ports only仅为输出端口Both input and output ports输入和输出端口LOGO5.1 并行输入/输出内核v PIO内核配置选项Basic Settings 选项卡Direction中文描述Bidirectional(tri-state) ports双向(三态)端口Input ports only仅为输入端口O

7、utput ports only仅为输出端口Both input and output ports输入和输出端口LOGO5.1 并行输入/输出内核v PIO内核配置选项Input Options 选项卡边沿捕获寄存器中断寄存器Rising Edge:上升沿Falling Edge:下降沿Either Edge: 上升或下降沿Level:输入为高电平且中断使能,则PIO内核产生一个IRQ。Edge:边沿捕获寄存器相应位为1且中断使能,则PIO内核产生一个IRQ。说明:当指定类型的边沿在输入端口出现时,边沿捕获寄存器对应位置1。说明:中断只有高电平中断,如果希望低电平时中断,则需在该I/O输入引脚

8、前加一个“非”门。LOGO5.1 并行输入/输出内核v PIO内核配置选项Simulation 选项卡当需要对外进行仿真时,要设置simulation选项卡。LOGO5.1 并行输入/输出内核v软件编程PIO内核提供了对硬件进行寄存器级访问的文件。Altera_avalon_pio_regs.h该文件定义了内核的寄存器映射并提供硬件设备访问宏定义。可通过阅读上述文件以熟悉PIO设备的软件访问方法,但不应该修改文件。LOGO第5章 目录v5.1 并行输入/输出(PIO)内核v5.2 SDRAM控制器内核v5.3 CFI(通用Flash)控制器内核v5.4 EPCS控制器内核v5.5 定时器内核v

9、5.6 UART内核v5.7 JTAG_UART内核v5.8 SPI内核v5.9 DMA内核5.10 带Avalon接口的互斥内核5.11 带Avalon接口的邮箱内核5.12 System ID内核LOGO5.2 SDRAM控制器内核vSDRAM控制器内核概述SDRAM控制器内核提供一个连接片外SDRAM芯片的Avalon接口,并可以同时连接多个SDRAM芯片。SDRAM控制器内核具有不同数据宽度(8、16、32或65位)、不同内存容量和多片选择等设置。SDRAM控制器不支持禁能的时钟模式。SDRAM控制器使cke引脚永久地有效。LOGO5.2 SDRAM控制器内核vSDRAM控制器内核概述

10、PPL(片内锁相环):通常用于调整SDRAM控制器内核与SDRAM芯片之间的相位差。Avalon三态桥:SDRAM控制器可与现有三态桥共用引脚,这用能减少I/O引脚使用,但将降低性能。 fMAX(最高时钟频率):目标FPGA的系列和整个硬件设计都会影响硬件设计可实现的最高时钟频率。LOGO5.2 SDRAM控制器内核 SDRAM内核配置选项可直接选择预定义的SDRAM芯片型号,对话框将自动改变下面两个选项卡的值来匹配指定配置。Memory Profile Memory Profile :用于指定SDRAM的结构。LOGO5.2 SDRAM控制器内核数据宽度 允许值:8、16、32、64 默认值

11、:32 描述:该值确定dq总线(数据)和dqm总线(字节使能)的宽度。具体数值请查阅SDRAM数据手册。LOGO5.2 SDRAM控制器内核结构设置片选 允许值:1、2、4、8 默认值:1 描述:独立芯片的数目在SDRAM子系统中选择。通过使用多个片选信号,SDRAM控制器可组合多个SDRAM芯片为一个存储器子系统。LOGO5.2 SDRAM控制器内核结构设置区 允许值:2、4 默认值:4 描述:区的数目,该值确定连接到SDRAM的ba总线(区地址)宽度。具体数值请查阅SDRAM数据手册。LOGO5.2 SDRAM控制器内核地址宽度设计行 允许值:11、12、13、14 默认值:12 描述:行

12、地址位的数目。该值确定addr总线的宽度。具体数值请查阅SDRAM数据手册。LOGO5.2 SDRAM控制器内核地址宽度设计列 允许值:=8,且小于行的值 默认值:8 描述:列地址位的数目。例如,SDRAM排列为4096行、512(29)列,所以列的值为9。具体数值请查阅SDRAM数据手册。LOGO5.2 SDRAM控制器内核通过三态桥共用管脚允许值:是、否默认值:否 描述:当设为No时,所有管脚都专用于SDRAM芯片。当设为Yes时,addr,dq和dqm管脚在系统内可与三态桥共享。LOGO5.2 SDRAM控制器内核包括系统测试台的功能存储模块允许值:是、否默认值:是 描述:当打开选项时,

13、SOPC Builder创建SDRAM芯片的功能仿真模型。该默认的存储器模型加速创建的过程和检验使用SDRAM控制器的系统。LOGO5.2 SDRAM控制器内核 SDRAM内核配置选项Timing Timing :根据在SDRAM芯片数据手册中提供的参数来设置芯片的时序规范LOGO5.2 SDRAM控制器内核CAS等待时间允许值:1、2、3默认值:3 描述:从读命令到数据输出的等待时间(以时钟周期计算)。LOGO5.2 SDRAM控制器内核初始化刷新周期允许值:1-8默认值:2 描述:复位后,该值指定SDRAM控制器将执行多少个刷新周期作为初始化序列的一部分。LOGO5.2 SDRAM控制器内

14、核每隔一段时间执行一个刷新命令允许值:-默认值:15.625us 描述:该值指定SDRAM控制器多久刷新一次SDRAM。典型的SDRAM每65ms需要5,096刷新命令,通过每65ms/5,096=15.625us执行一个刷新命令来符合这个要求。LOGO5.2 SDRAM控制器内核在初始化前、上电后延时允许值:-默认值:100us 描述:从稳定的时钟和电源到SDRAM初始化的延时。LOGO5.2 SDRAM控制器内核刷新命令(t_rfc)的持续时间允许值:-默认值:70ns 描述:自动刷新周期。LOGO5.2 SDRAM控制器内核预充电命令(t_rp)的持续时间允许值:-默认值:20ns 描述

15、:预充电命令周期。LOGO5.2 SDRAM控制器内核ACTIVE到READ或WRITE延时允许值:-默认值:20ns 描述:ACTIVE到READ或WRITE延时。LOGO5.2 SDRAM控制器内核访问时间(t_ac)允许值:-默认值:5.5ns 描述:时钟边沿的访问时间。该值由CAS的等待时间决定。LOGO5.2 SDRAM控制器内核写恢复时间(t_wr,无自动预充电)允许值:-默认值:15ns 描述:如果执行了明确的预充电命令,写恢复。该SDRAM控制器总是执行明确的预充电命令。LOGO5.2 SDRAM控制器内核v软件编程当通过Avalon接口访问时,SDRAM控制器操作起来像简单的

16、SRAM存储器,没有可配置的软件设置,没有存储器映射的寄存器。处理器访问SDRAM控制器不需要软件驱动程序。LOGO5.2 SDRAM控制器内核vSDRAM应用一个带32位数据总线的128Mbit SDRAM芯片LOGO5.2 SDRAM控制器内核vSDRAM应用两个带16位数据总线的65Mbit SDRAM芯片LOGO5.2 SDRAM控制器内核vSDRAM应用两个带32位数据总线的128Mbit SDRAM芯片LOGO第5章 目录v5.1 并行输入/输出(PIO)内核v5.2 SDRAM控制器内核v5.3 CFI(通用Flash)控制器内核v5.4 EPCS控制器内核v5.5 定时器内核v

17、5.6 UART内核v5.7 JTAG_UART内核v5.8 SPI内核v5.9 DMA内核5.10 带Avalon接口的互斥内核5.11 带Avalon接口的邮箱内核5.12 System ID内核LOGO5.3 CFI控制器内核vCFI控制器内核综述对于Nios II处理器,Altera为CFI控制器提供硬件抽象层(HAL)驱动程序。驱动程序提供了遵循CFI接口规范的Flash存储器的通用访问函数。因此,用户不需要写任何代码就可以访问遵循CFI接口规范的Flash器件。LOGO5.3 CFI控制器内核vCFI控制器内核综述CFI控制器框图LOGO5.3 CFI控制器内核 CFI控制器内核设

18、置CFI控制器框图Attributes Attributes :用于完成Presets、size和 Board Info这3个选项的设定。Presets Presets :选择预设好的CFI Flash。Size Size :地址宽度:Flash地址总线宽度。数据宽度:Flash数据总线宽度。Board Info Board Info :用于映射CFI控制器目标系统板元件的已知芯片。LOGO5.3 CFI控制器内核 CFI控制器内核设置CFI控制器框图TimingTiming:用于完成时序设置,包括建立时间、等待周期、保持时间等。SetupSetup:chipselect有效后,read或wr

19、ite信号有效前所需的时间。WaitWait:每次数据传输过程中,read或write信号需要保持的时间。HoldHold:write信号无效后,chipselect信号无效前所需要的时间。UnitsUnits:用于Setup、Wait和Hold值的时间单位,可以是ns、us、ms和时钟周期。LOGO5.3 CFI控制器内核v软件编程Avalon主控制器可以直接读Flash芯片。对于Nios II处理器用户,Altera提供HAL系统库驱动程序和API函数来支持对Flash存储器的擦除和写操作。LOGO第5章 目录v5.1 并行输入/输出(PIO)内核v5.2 SDRAM控制器内核v5.3 C

20、FI(通用Flash)控制器内核v5.4 EPCS控制器内核v5.5 定时器内核v5.6 UART内核v5.7 JTAG_UART内核v5.8 SPI内核v5.9 DMA内核5.10 带Avalon接口的互斥内核5.11 带Avalon接口的邮箱内核5.12 System ID内核LOGO5.5 EPCS控制器内核vEPCS控制器内核综述Altera EPCS 串行配置器件(EPCS1和EPCS5),它可用于存储程序代码、非易失性程序数据和FPGA配置数据。带Avalon接口的EPCS设备控制器内核(“EPCS控制器”)允许NiosII系统访问Altera EPCS串行配置器件。Altera提

21、供集成到NiosII硬件抽象层(HAL)系统库的驱动程序,允许用户使用HAL应用程序接口(API)来读取和编写EPCS器件。LOGO5.5 EPCS控制器内核vEPCS控制器内核综述EPCS控制器可用于:在EPCS器件中存储程序代码。存储非易失性数据。管理FPGA配置数据。LOGO5.5 EPCS控制器内核vEPCS控制器内核综述EPCS控制器结构框图Boot-LoaderROMEPCS控制器配置存储空间通用存储空间EPCS配置器件Avalon总线NiosIICPU片内外设Altera FPGA存储FPGA配置数据剩余空间可用于存储用户非易失性数据。1KB的片内存储器LOGO5.5 EPCS控

22、制器内核v软件编程Altera提供的HAL Flash设备驱动程序已经完全屏蔽了Flash的硬件访问细节,访问EPCS Flash的软件编程和访问CFI Flash的软件编程完全一样。EPCS控制器提供了硬件的底层接口和HAL驱动程序。LOGO5.5 EPCS控制器内核v软件编程定义集成到HAL系统库所需的驱动程序的头文件和源文件。Altera_avalon_epcs_flash_controller.h通过直接控制EPCS设备来进行读写操作的头文件和源文件。Altera_avalon_epcs_flash_controller.cepcs_commands.hepcs_commands.cL

23、OGO第5章 目录v5.1 并行输入/输出(PIO)内核v5.2 SDRAM控制器内核v5.3 CFI(通用Flash)控制器内核v5.4 EPCS控制器内核v5.5 定时器内核v5.6 UART内核v5.7 JTAG_UART内核v5.8 SPI内核v5.9 DMA内核5.10 带Avalon接口的互斥内核5.11 带Avalon接口的邮箱内核5.12 System ID内核LOGO5.5 定时器内核v定时器内核综述定时器是挂载在Avanlon总线上的32位定时器,特性如下:两种计数模式:单次减1和连续减1计数模式定时器到达0时产生中断请求(IRQ);可选择设定为看门狗定时器,计算到达0时复

24、位系统;可选择输出周期性脉冲,在定时器计算到达0时输出脉冲;可由软件启动、停止或复位定时器;可由软件使能或屏蔽定时器中断。LOGO5.5 定时器内核v定时器内核综述EPCS控制器结构框图StatusControlPeriodhPeriodlSnaphSnapl控制逻辑计数器寄存器文件Timeout pulseIRQReset数据总线地址总线(看门狗)Avanlon总线从机接口到内核逻辑LOGO5.5 定时器内核v定时器内核综述定时器可进行的基本操作如下所述:Avalon主控制器通过对控制寄存器执行不同的写操作来控制:启动和停止定时器使能/禁能IRQ指定单次减1计数或连续减1计数模式处理器读状态

25、寄存器获取当前定时器的运行信息。处理器可通过写数据到periodl和periodh寄存器来设定定时器周期。LOGO5.5 定时器内核v定时器内核综述定时器可进行的基本操作如下所述:内部计数器计数减到0,立即从周期寄存器开始重新装载。处理器可以通过写snapl或snaph获取计数器的当前值。当计数器计数到达0时:如果IRQ被使能,则产生一个IRQ(可选的)脉冲发生器输出有效持续一个时钟周期(可选的)看门狗输出复位系统LOGO5.5 定时器内核v定时器寄存器描述偏移量名称R/W位描述15532100statusRW*RUNTO1controlRW*STOPSTART CONT ITO2period

26、lRW超时周期1(位15.0)3periodhRW超时周期1(位31.16)5snaplRW计数器快照(位15.0)5snaphRW计数器快照(位31.16)EPCS控制器结构框图RUNTOSTOPSTART CONT ITOperiodlPeriodhsnaplsnaph注:注:* *表示表示该位保留,位保留,读取取值未定未定义。LOGO5.5 定时器内核 定时器内核配置选项CFI控制器框图Initial perodInitial perod:用于预设硬件生成后的定时器周期,即perodl和periodh寄存器的值。LOGO5.5 定时器内核 定时器内核配置选项CFI控制器框图Preset

27、ConfigurationsPreset Configurations:可选择的预定义的硬件配置。LOGO5.5 定时器内核 定时器内核配置选项CFI控制器框图Writeable perodWriteable perod: 使能:主控制器可通过写period而改变向下计数周期。 禁能:向下计数周期由Timeout Period确定,且period寄存器不在硬件中存在。Readable snapshotReadable snapshot: 使能:主控制器可读当前向下计数器的值。 禁能:计数器的状态仅通过状态寄存器或IRQ信号来检测。Snap寄存器不在硬件中存在。Start/Stop contro

28、l bitsStart/Stop control bits: 使能:主控制可通过写START和STOP位来启动和停止定时器。 禁能:定时器连续运行。LOGO5.5 定时器内核 定时器内核配置选项CFI控制器框图Timeout pulseTimeout pulse: 使能:定时器到0时,timeout_pulse输出一个时钟周期的高电平。 禁能:timeout_out信号不存在。System reset on timeoutSystem reset on timeout: 使能: 定时器到0时, resetrequest信号输出一个时钟周期的高电平使系统复位。 禁能: resetrequest信

29、号不存在。LOGO5.5 定时器内核v软件编程Altera为NiosII处理器用户提供硬件抽象层(HAL)系统库驱动程序,允许用户使用HAL应用程序接口(API)函数来访问定时器内核。1.HAL系统库支持2.系统时钟驱动程序3.时间标记驱动程序4.软件文件LOGO第5章 目录v5.1 并行输入/输出(PIO)内核v5.2 SDRAM控制器内核v5.3 CFI(通用Flash)控制器内核v5.4 EPCS控制器内核v5.5 定时器内核v5.6 UART内核v5.7 JTAG_UART内核v5.8 SPI内核v5.9 DMA内核5.10 带Avalon接口的互斥内核5.11 带Avalon接口的邮

30、箱内核5.12 System ID内核LOGO5.6 UART内核vUART内核综述UART内核(通用异步接收器/发送器内核)执行RS-232协议时序,并提供可调整的波特率。用户可配置奇偶校验位、停止位和数据位,以及可选的RTS/CTS流控制信号。内核提供一个简单的Avalon从控制器接口,该接口允许Avalon主控制器(例如NiosII处理器)通过读写寄存器与UART内核进行通讯。LOGO5.6 UART内核vUART内核综述UART内核的结构框图LOGO5.6 UART内核vUART内核综述1.RS-232接口2.发送逻辑3.接收逻辑4.波特率生成LOGO5.6 UART内核vUART内核

31、的寄存器描述偏移量寄存器名称R/W描述/寄存器位1513 12111098765532100接收数据(rxdata)RO接收数据1发送数据(txdata)WO发送数据2状态(status) RWeopctsdctserrdytrdytmt toe roe brkfepe3控制(control)RWieoprtsidctstrbkieirrdyitrdyitmt itoe iroe ibrk ifeipe5除数(divisor) RW波特率除数5数据包结束符(endopacket) RW数据包结束符值UART内核寄存器映射发送数据(txdata)接收数据(rxdata)状态(status)控制(

32、control)除数(divisor) 数据包结束符(endopacket) LOGO5.6 UART内核 UART内核配置页Baud RateBaud Rate:波特率设置数据位设置数据位设置流控制流控制流数据控制流数据控制LOGO5.6 UART内核v软件编程1.HAL系统支持2.驱动程序选项3.Ioctl()操作4.软件文件LOGO第5章 目录v5.1 并行输入/输出(PIO)内核v5.2 SDRAM控制器内核v5.3 CFI(通用Flash)控制器内核v5.4 EPCS控制器内核v5.5 定时器内核v5.6 UART内核v5.7 JTAG_UART内核v5.8 SPI内核v5.9 DM

33、A内核5.10 带Avalon接口的互斥内核5.11 带Avalon接口的邮箱内核5.12 System ID内核LOGO5.7 JTAG_UART内核vJTAG_UART内核综述JTAG UART内核通过Avalon从控制器接口连接到Avalon总线。JTAG UART内核包含2个32位寄存器(数据和控制),它们可通过Avalon从控制器端口进行存取。Avalon主控制器访问寄存器来控制内核并在JTAG连接上传输数据。JTAG UART内核提供高电平有效的中断输出,该输出在读FIFO几乎为满或写FIFO几乎为空时申请一个中断。有读写FIFO也是JTAG UART内核与UART内核的不同点之一

34、。FIFO可以改善JTAG连接的带宽。FIFO深度可由用户设置。LOGO5.7 JTAG_UART内核vJTAG_UART内核综述UART内核寄存器映射LOGO5.7 JTAG_UART内核vJTAG_UART的寄存器描述偏移量 寄存器名称R/W位描述3116151511109872100数据RWRAVAILRVALID保留DATA1控制RWWSPACE保留ACWIRI保留WRUART内核寄存器映射数据控制LOGO5.7 JTAG_UART内核 JTAG-UART配置选项卡JATG_UART配置选项卡Write FIFOWrite FIFO:写写FIFOFIFO设置设置Read FIFORea

35、d FIFO:读读FIFOFIFO设置设置LOGO5.8 SPI内核vSPI内核综述SPI内核框图SPISPI发送逻辑发送逻辑SPISPI接收逻辑接收逻辑LOGO5.8 SPI内核vSPI内核综述SPI内核框图主控制器模式端口配置主控制器模式端口配置名称方向描述MOSI输出输出数据到从控制器MISO输入从控制器输入数据sclk输出所有从控制器的同步时钟ss_nM输出从控制器选择信号,其中M为0到15之间的数。LOGO5.8 SPI内核vSPI内核综述SPI内核框图从控制器模式端口配置从控制器模式端口配置名称方向描述MOSI输入从主控制器输入数据MISO输出输出数据到主控制器sclk输入同步时钟

36、ss_nM输入选择信号LOGO5.8 SPI内核vSPI内核的寄存器描述UART内核寄存器映射内部地址寄存器名称 1511109876553200rxdata接收数据 (n-1.0)1txdat发送数据 (n-1.0)2statusERRDYTRDY TMTTOEROE3controlsso IE IRRDY ITRDYITOE IROE5保留5slaveselect从控制器选择屏蔽txdatstatuscontrol保留slaveselectrxdata接收数据寄存器接收数据寄存器发送数据寄存器发送数据寄存器状态寄存器状态寄存器控制寄存器控制寄存器从控制器选择寄存器从控制器选择寄存器LOGO

37、5.8 SPI内核 SPI配置选项卡SPI配置选项卡Master&SlaveMaster&Slave:主控制器主控制器/ /从控制器设置从控制器设置Generate Select SignalsGenerate Select Signals:通用选择信号SPI Clock RateSPI Clock Rate:SPI时钟率Specify DelaySpecify Delay:指定延时Data RegisterData Register:数据寄存器设置TimingTiming:时序设置WaveformsWaveforms:波形显示LOGO5.8 SPI内核v软件编程Altera提供一个访问SPI

38、的函数alt_avalon_spi_command(),该函数为配置生成主控制器的SPI内核提供通用访问。LOGO第5章 目录v5.1 并行输入/输出(PIO)内核v5.2 SDRAM控制器内核v5.3 CFI(通用Flash)控制器内核v5.4 EPCS控制器内核v5.5 定时器内核v5.6 UART内核v5.7 JTAG_UART内核v5.8 SPI内核v5.9 DMA内核5.10 带Avalon接口的互斥内核5.11 带Avalon接口的邮箱内核5.12 System ID内核LOGO5.9 DMA内核vDMA内核综述带Avalon接口的直接存储器存取控制器(DMA控制器)替代Avalo

39、n主控制器执行储存器对储存器或者储存器与IO设备间的批量数据传输。当DMA控制器执行数据传输任务时,主控制器可自由执行其它并行的任务。LOGO5.9 DMA内核vDMA内核综述DMA控制器结构框图LOGO5.9 DMA内核vDMA寄存器描述偏移量寄存器名称读/写31111098765532100状态 RW(2)LENWEOPREOPBUSY DONE1源地址RW读取数据的起始地址2目的地址RW数据写入的起始地址3长度RWDMA传输长度(以字节为单位)5-保留(3)5-保留(3)6控制RW(2)(5)(5) WCON RCON LEEN WEEN REENI_ENGOWORDHWBYTE7-保留

40、(3)DMA控制器结构框图源地址目的地址长度控制状态LOGO5.9 DMA内核 DMA配置选项卡SPI配置选项卡Transfer Size:Transfer Size:DMA长度寄存器的宽度Burst TransactionsBurst Transactions:允许突发传输FIFO ImplementationFIFO Implementation:FIFO的构成LOGO5.9 DMA内核 DMA配置选项卡SPI配置选项卡高级选项高级选项LOGO5.9 DMA内核v软件编程1.Ioctl()操作2.软件文件LOGO第5章 目录v5.1 并行输入/输出(PIO)内核v5.2 SDRAM控制器内

41、核v5.3 CFI(通用Flash)控制器内核v5.4 EPCS控制器内核v5.5 定时器内核v5.6 UART内核v5.7 JTAG_UART内核v5.8 SPI内核v5.9 DMA内核5.10 带Avalon接口的互斥内核5.11 带Avalon接口的邮箱内核5.12 System ID内核LOGO5.10 带Avalon接口的互斥内核v互斥内核描述偏移量偏移量寄存器名称寄存器名称R/W位描述位描述311615100mutexRWOWNERVALUE1resetRW-RESET互斥内核描述LOGO5.10带Avalon接口的互斥内核v互斥内核配置选项硬件设计者可利用互斥内核的SOPC Bu

42、ilder配置向导来设定内核的硬件特性。配置向导提供了以下设置:Initial Value复位后VALUE字段的初始值。如果Initial Value设置成非零值,还必须设定Initial Owner。Initial Owner复位后OWNER字段的初始值。当Initial Owner被设定时,此时的互斥体拥有者必须在互斥体被其它拥有者占用之前将互斥体释放。LOGO5.10带Avalon接口的互斥内核v软件编程对于Nios处理器用户,Altera提供了可用来访问互斥内核硬件的驱动程序,利用驱动程序可以直接对低层的硬件进行操作。互斥内核不能通过HAL API或ANSIC标准库来访问。在Nios处

43、理器系统中,处理器通过将它的cpuid控制寄存器的值写入mutex寄存器的OWNER字段来锁定互斥体。Altera为互斥内核提供下列驱动程序文件:altera_avalon_mutex_regs.haltera_avalon_mutex.haltera_avalon_mutex.cLOGO5.10带Avalon接口的互斥内核v软件编程函数名称描述altera_avalon_mutex_open( )获取互斥体的句柄,使所有其它函数可访问互斥内核。altera_avalon_mutex_trylock( )尝试锁定互斥体。如果该函数不能锁定互斥体,则立即返回。altera_avalon_mute

44、x_lock( )锁定互斥体。直至该函数成功得到互斥体才返回altera_avalon_mutex_unlock( )解除锁定互斥体。altera_avalon_mutex_is_mine( )确定该CPU是否具有互斥体。altera_avalon_mutex_first_lock( ) 复位后测试互斥体是否已被释放。硬件互斥体函数LOGO5.11 带Avalon接口的邮箱内核v邮箱内核配置选项More Settings选项卡提供以下选项:Memory module指定哪个存储器用作邮箱缓冲区。如果所需的共享存储器没有包含Memory module列表,那么存储器在系统中不能正确连接。Shar

45、ed Mailbox Memory Offset指定存储器中的偏移量。邮箱消息缓冲区从该偏移量处开始。LOGO5.11 带Avalon接口的邮箱内核v邮箱内核配置选项More Settings选项卡提供以下选项:Mailbox Size (bytes)指定用于邮箱消息缓冲区的字节数。Altera提供的NiosII驱动程序软件使用8字节来执行邮箱功能。由于邮箱一次只能传输一条消息,Mailbox Size (bytes)必须至少为12字节。LOGO5.11 带Avalon接口的邮箱内核v软件编程Altera为NiosII处理器用户提供访问邮箱内核的驱动程序,驱动程序中的函数直接操作低层硬件。邮箱

46、软件编程有以下特性:每个邮箱消息是一个32位字。在共享存储器中有一个预定义的地址范围专门用于存储消息。该地址范围的大小取决于等待的消息数量的最大值。邮箱软件在处理器之间执行消息FIFO。一次只有一个处理器可写入邮箱,且一次只有一个处理器可读取邮箱,以保证消息的完整性。LOGO5.11 带Avalon接口的邮箱内核v软件编程用于发送和接收的处理器在程序上遵守相同的邮箱消息协议。通常处理器将消息看作指向共享存储器结构体的指针。用于发送的处理器可逐次提交消息,直至最大消息地址。当邮箱中有消息时,用于接收的处理器可读取消息。读消息会将消息从邮箱中移除。LOGO5.11 带Avalon接口的邮箱内核v软

47、件编程Altera为邮箱内核提供的驱动程序包含下列文件:altera_avalon_mailbox_regs.haltera_avalon_mailbox.haltera_avalon_mailbox.cLOGO5.11 带Avalon接口的邮箱内核v软件编程文件文件altera_avalon_mailbox.h声明声明alt_mailbox_dev结构体以结构体以及访问邮箱内核的函数。及访问邮箱内核的函数。 函数名称描述altera_avalon_mailbox_close( )关闭邮箱句柄的使用altera_avalon_mailbox_get( )如果出现了一个值就返回消息,但不阻塞等待

48、消息altera_avalon_mailbox_open( )获取邮箱句柄,使所有其它函数都能访问邮箱内核altera_avalon_mailbox_pend( )等待邮箱中的消息,如果没有消息出现将阻塞(一直等)altera_avalon_mailbox_post( )发送消息到邮箱邮箱SPI函数LOGO第5章 目录v5.1 并行输入/输出(PIO)内核v5.2 SDRAM控制器内核v5.3 CFI(通用Flash)控制器内核v5.4 EPCS控制器内核v5.5 定时器内核v5.6 UART内核v5.7 JTAG_UART内核v5.8 SPI内核v5.9 DMA内核5.10 带Avalon接

49、口的互斥内核5.11 带Avalon接口的邮箱内核5.12 System ID内核LOGO5.12 System ID内核vSystem ID寄存器描述系统ID内核提供只读的Avalon从控制器接口。 系统ID内核寄存器映射偏移量寄存器名称R/W位描述 3100idRSOPC Builder系统ID 1timestampRSOPC Builder生成时间LOGO5.12 System ID内核vSystem ID寄存器描述使用系统ID内核有两种基本的方法:其一,在下载新的软件到系统之前验证系统ID。其二,复位后检查系统ID。LOGO5.12 System ID内核v软件编程Altera为NiosII处理器用户提供定义系统ID内核寄存器的HAL系统库头文件和一个访问程序alt_Avalon_sysid_test( ),该程序返回一个值来指示软件期望的系统ID是否匹配系统ID内核。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号